プロフィール

prof_normal
prof_normal

ミアミン

ホワイトハッカーを夢みて、セキュリティアカデミーでお勉強中のミーアキャット。心配性でやさしい性格で、「みんな無事ミア?」「危険はないミア?」が口癖。ちょっとしたことですぐに「キャッ!」と動揺しがち。

nishizawa

西澤 拓海

2023年入社。セキュリティ診断業務を担当しています。趣味はピアノとギターで、休日は音楽に癒やされています。新しい知識を学ぶことが好きです。

便利な反面、セキュリティリスクも伴うSSO(シングルサインオン)認証

icon_gimon
ミアミン

西澤さんこんにちは!今日のテーマは「SSO認証」だそうですが、SSO認証というのは、ワンタイムパスワードや指紋認証、顔認証の仲間のようなものミア?

nishizawa

西澤さん

う~ん、ちょっと違いますね(笑)。SSOというのはSingle Sign-Onの略で、「SSO認証」は複数のシステムやアプリケーションにアクセスする際に、一度のログインですべてのサービスを利用できるようにする仕組みなんです。

icon_yorokobi
ミアミン

なんと、すごく便利ではないですか!パスワードをいくつも覚えて、定期的に変更するのはすごく大変ミア……。

nishizawa
西澤さん

そうですね。でもSSO認証は便利な反面、セキュリティリスクも伴います。そこで今回は、SSO認証とは何か、どのような種類があるのか、そしてセキュリティ面で気を付けるべきポイントについて詳しく解説していきます。

SSO認証とは

icon_gimon
ミアミン

たしかに、一度のログインですべてのサービスにアクセスできるということは、リスクを分散できない気もするミア。詳しく教えてください!

nishizawa
西澤さん

ご存じのとおり、通常、SNSやWebサービス、クラウドサービスなどを利用する際には、個別にID・パスワードを用意しログインの度に認証を受ける必要があります。しかしSSO認証を導入することで、最初に一度ログインするだけで以降はすべてのアプリケーションにログインすることなく利用することが可能になります。また、1つのID・パスワードで複数のサービスにログインすることが可能となり、大量のID・パスワードの管理にかかるコストを低減するとともに、パスワードの使い回しによるアカウントリスト攻撃といったセキュリティリスクを減少することができます。

img01

 

icon_normal
ミアミン

パスワードの使い回しはリスク分散どころかリスク倍増、絶対ダメ!SSO認証が広まるのもわかる気がするミア。

nishizawa
西澤さん

そうですね。テレワークやDXの浸透とともにクラウドサービスを利用する企業が増えています。それに伴いアカウント管理の手間を削減する手段として、SSO認証が注目を集めているんです。

SSO認証の代表的な技術

nishizawa
西澤さん

SSO認証を実現するための技術にはいくつかの種類があります。ここでは代表的な技術であるSAMLとOIDCについて紹介します。

SAML(Security Assertion Markup Language)

SAMLは、XMLベースの標準規格で、主に企業向けの環境で使用されます。SAMLを利用すると、アイデンティティプロバイダー(IdP)が認証情報を管理し、サービスプロバイダー(SP)に対して認証情報を提供することで、SSO認証を実現します。

OIDC(Open ID Connect)

OIDCはSSO認証を実現するための仕組みで、OAuth 2.0を認証で使用できるように拡張したプロトコルです。利用者はOIDC提供プロバイダーに登録したID情報を使って、他のOIDC対応サイトにログインすることが可能になります。
icon_aseri
ミアミン

キャッ!XML、アイデンティティプロバイダー……なんだか一気に難しくなってきたミア。

nishizawa
西澤さん

たしかにSAMLもOIDCも、詳しく説明するとすごく時間がかかるので、今回だけで両方学ぶのはちょっと大変かもしれません。


OIDCについては、Vol.16「SSO認証は本当に安全?気を付けるべきセキュリティポイントとは?~OIDC(Open ID Connect)編~」であらためて説明することにしましょう。今回はまずSAMLについて、もう少し詳しく説明しますね。

SAML認証の仕組み

nishizawa
西澤さん

SAMLは、アイデンティティプロバイダー(IdP)とサービスプロバイダー(SP)の間で認証情報を交換する仕組みです。具体的には、ユーザーがIdPで認証を行うと、IdPは認証結果や権限情報などが含まれたSAMLアサーションを生成し、これをSPに送信します。SPはこのアサーションを受け取り、ユーザーを認証します。
SAML認証の流れは、SPを起点とするかIdPを起点とするかによって、2パターンに分けられます。

①SPを起点とする場合
img02

 

②IdPを起点とする場合
img03

 

icon_normal
ミアミン

「入力したIDとパスワードを認証するだけ」だと思っていたけれど、中ではすごく複雑なやりとりが行われているミア!

nishizawa
西澤さん

そうなんです。SPを起点とするかIdPを起点とするかでも、全然違うでしょう?

SAMLのセキュリティのポイント

nishizawa
西澤さん

SAMLを使用する際には、いくつかのセキュリティリスクがあります。ここでは、代表的な攻撃例を紹介しましょう。

 

  • SAMLインジェクション
    SAMLアサーションには通常署名が付与されており、これを検証することで改ざんされていないことを確認しています。この署名の検証を回避することで任意のSAMLアサーションを挿入し、認証情報を改ざんする攻撃です。これにより、攻撃者が不正に認証されたユーザーとしてシステムにアクセスできる可能性があります。
icon_aseri
ミアミン

認証情報を改ざんする!?つまり「乗っ取り」のようなものミア!?

nishizawa
西澤さん

たしかに、SNSのアカウントを乗っ取られて勝手にIDやパスワードを変えられてしまうのに似ていますね。他の例も見てみましょう。

 

  • リプレイ攻撃
    有効なSAMLアサーションを繰り返し使用して、同じ認証情報を再利用する攻撃です。通信経路上などで有効なSAMLアサーションを窃取した攻撃者が再度使用することで、第三者に成りすますことが可能となります。
img04

 

icon_aseri
ミアミン

こちらは「成りすまし」……恐ろしいミア!

nishizawa
西澤さん

そうなんです。アイデンティティプロバイダー(IdP)とサービスプロバイダー(SP)ではこれらの攻撃を受けないように実装を行う必要があります。もう1つ紹介しましょう。

 

  • XXE(XML External Entity)攻撃
    XXEはXMLデータの入力を受け取るアプリケーションに存在する、XMLパーサーの脆弱性です。XMLには、サーバー内部/外部のリソースを読み込むための構文が存在しています。この機能を悪用することで、本来アクセスすることのできないファイルやサーバーの情報を取得することが可能です。 
icon_aseri
ミアミン

なんとなんと、「のぞき見」もされてしまうミア!

nishizawa
西澤さん

そう。SAMLアサーションではXMLが利用されていますから、SAMLを使用する場合にはXXE攻撃にも注意が必要なんです。

icon_gimon
ミアミン

やはり、便利なシステムでもリスクはあるんですね……どうやって対策すればいいミア?

nishizawa
西澤さん

利用する側としては、以下のようなポイントに気を付けてほしいですね。

 

・認証情報の適切な管理
自分の認証情報を適切に管理し、他人と共有しないようにする必要があります。また、強力なパスワードを使用することが推奨されます。
 
・正規のアイデンティティプロバイダーを使用
信頼できる正規のアイデンティティプロバイダーを使用することが重要です。不正なアイデンティティプロバイダーを使用すると、認証情報が盗まれるリスクがあります。
 
・セッション管理の強化
セッションタイムアウトを適切に設定し、長時間の無操作状態が続いた場合には自動的にログアウトするように設定することが重要です。また、重要な操作を行う際には、再認証を求めることが有効です。 
icon_yorokobi
ミアミン

なるほど、難しい対策をしなければならないのかと思いきや、昔から気を付けてきたことも多いミア。これなら今日から取り組めそうです。いろいろ教えてくれてありがとミア!

nishizawa
西澤さん

SSO認証は、多くのシステムやアプリケーションへのアクセスを簡便にする非常に便利な仕組みですが、それと同時に適切なセキュリティ対策が不可欠です。SAMLやOIDCなどの技術を理解し、セキュリティリスクを認識することで、安全にSSO認証を利用できます。クライアント側でも、認証情報の管理や正規のプロバイダーの使用、セッション管理の強化など、基本的なセキュリティ対策を徹底することが重要です。これらのポイントを押さえ、安心してSSO認証を活用しましょう。


ユービーセキュアでも、SAMLやOIDCを使用した「SSO認証に特化した診断」を行っていますから、気軽に相談してみてくださいね!

詳細はこちら