情報処理安全確保支援士 - SE娘の剣 -

情報処理安全確保支援士(情報セキュリティスペシャリスト)試験に合格するためのサイトです。
過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。
また、情報処理安全確保支援士(情報セキュリティスペシャリスト)を楽しく学べるように工夫したいと思います。

カテゴリ:4.認証 > 4.6 シングルサインオン

1.シングルサインオンとは
 シングルサインオンとは、一つの認証情報(ID/パスワードなど)で、複数のシステムにログインできるようにすることです。
 過去問(H20SW午後1)に、シングルサインオンの目的に関する記述があるので、紹介します。
業務活動の統制の観点から,各社内システムのセキュリティ確保の問題が重要視されており,全社的に統一された認証情報の管理,統一されたアクセス制御の実施が望まれている。また,利用者である社員からも,個々のシステムを利用する際に,その都度IDとパスワードの入力を求められることの不便さを訴えられている。
情報システム部門では,こうした要求に応じるためにシングルサインオンの導入によって,利用者の利便性向上と統一的なセキュリティ管理を図ることにした。
ここにありますように、シングルサインオンの目的は、次の2つと考えられます。
①統一的なセキュリティ管理
②利用者の利便性の向上

2.シングルサインオンのデメリット
こちらも、過去問(H20SUPM2問1)から引用します。
シングルサインオンの機能を導入することにした。この機能を導入することで、利用者の利便性は向上するが、万が一、利用者IDとパスワードが流出したり破られたりしてしまうと、シングルサインオンできるすべての業務アプリを簡単に不正利用されてしまうというリスクが伴う。
これは、シングルサインオンに限ったことではなく、IDパスワードを使いまわしている場合にも、同じことが言えます。

3.シングルサインオンの2つの方式
シングルサインオンには、2つの方式があります。
①クッキーを使ったシングルサインオン
 クッキーを使ったシングルサインオンは、「サーバごとの認証情報を含んだクッキーをサーバで作成し、各クライアント上で保存・管理する。(H18NW問47を一部修正)」方式である。

②リバースプロキシを使ったシングルサインオン
 リバースプロキシを使ったシングルサインオンは、シングルサインオン用に別途リバースプロキシサーバを立て、このサーバが代理で認証を行う方式である。
過去問(H22SC秋AM2問1)では、「リバースプロキシを使ったシングルサインオンの場合、利用者認証においてパスワードの代わりにディジタル証明書を用いることができる」と述べられている。

「認証情報に加え、属性情報とアクセス制御情報を異なるドメインに伝達するためのWebサービスプロトコル(H20SW午前 問79)」は何か?

 例えば、通販の申し込みサイトと決済サイトが別会社で運営されている場合、ドメインが異なるので、クッキーによるシングルサインオンはできない。そこで、利便性を目的としたSSOの技術の一つに、SAML(Security Assertion Markup Language)がある。
 各WebサイトがSAMLプロトコルに対応していれば、サイト間で認証情報を引き継ぐことができる。つまり、異なるドメイン(= 異なるWebサイト)でのシングルサインオンが可能になる。正解はSAML。
 SAMLについて、別の過去問では、「標準化団体OASISが, Webサイト間で認証,属性及び認可の情報を安全に交換するために策定したフレームワーク(H24SC秋午前2問11)」、「SAMLは、認証、許可などの情報を安全に交換するためのフレームワークである(H29SC春午後1問2)」と述べている。

過去問に詳しい解説がある。以下の記事と合わせて確認してほしい。
http://sc.seeeko.com/archives/4569249.html
F氏:私は,SAML (Security Assertion Markup Language)2.0という標準技術を使ったID連携のシステム構築の経験があります。SAML 2.0では,異なる製品間の相互運用性について,技術標準を策定する団体が主導して試験を行い,検証結果を公表しています。
E君:相互運用性が高い技術であれば,X社の技術標準として採用しやすいですね。
F氏:そうですね。仕組みについてご説明します。図5が,SAML 2.0を使ってSSOを実現する場合のメッセージフローです。この図にあるSP (サーピスプロバイダ)は,認証された利用者に対して業務アプリケーションなどのサービスを提供する側の機能で,IDP(IDプロバイダ)は,利用者認証の結果をSPに提供する機能です。利用者がSP上のWebアプリケーションを利用する場合に,SPが利用者に対してWebアプリケーションのサービスを提供してよいかを判定する必要がありますが,この判定のためにSPは[ a ]をプラウザ経由でIDPから受け取ります。
sso















図5 SAML 2.0によるSSOのメッセージフロー

E君:なるほど,分かりました。
F氏:Y社にもSAML 2.0のSPを導入したとします。この場合,X社の利用者が,X社情報システム群の認証サーバ,つまり,IDPで一度認証を受ければ,[ b ]するまでは,X社とY社のWebアプリケーションは,利用者が個別にサインオンしなくても利用可能となります。

設問1 ID連携技術について,本文中及び図5中の[ a ],[ b ]に入れる適切な字句を,それぞれ10字以内で答えよ。また,図5中の[ c ]には,ブラウザにおける動作を示す適切な字句を8字以内で答えよ。

試験センターの解答例は以下だ。
設問1  
a 認証アサーション(または認証トークン)
b サインオフ
c リダイレクト

もう一問、過去問(H22秋SC午後Ⅱ問2)を解いてみよう。
SAMLとは,記述言語として[ d ]を用いて,認証及び[ e ]に関する情報を交換するための標準規格である。今回, A社で採用したSAML型SSOシステムにおける認証及び[ e ]を実現するプロトコルは,図9のとおりである。 Webアプリ上には,SP(サービスプロバイダ)と呼ばれるモジュールが稼働しており,IdP(Idプロバイダ)と呼ばれるWebアプリと連携して,利用者認証を行う。IdPにおいては,様々な認証方式を採用できるが,A社では,入力フォームを活用した,利用者IDとパスワードを用いる方式を採用し,図8の統合認証システムにおけるLDAPサーバと連携させることにした。
22




















次は,  A社で採用したSAML型SSOシステムのプロトコルの動作概要である。ここで,各主体は,ほかの主体の公開鍵証明書を保持しているとする。
(a)利用者のブラウザは, Webアプリにサービスを要求する際,SP用のクッキーがあれば,それを提示する。提示したクッキーが有効であることが検証された場合は(f)に進む。
(b)SPは, SAMLRequestメッセージをエンコーディングした上でURIに含め,サービス要求をldPにリダイレクトする。
(c)利用者は,利用者IDとパスワードを入力し,認証を受ける。
(d)ldPは,利用者IDなどの属性を暗号化及びディジタル署名したSAMLResponseメッセージを発行し,ブラウザ上のJavaScriptを用いて,それをSPに転送する。
(e)SPは,SAMLResponseメッセージのディジタル署名などを検証し,有効であれば,SP用のクッキーを発行する。
(f)SPが稼働するWebアプリは,該当するサービスを提供する。

設問
8412ebbb
あれ、さっきとはSPとIdPの位置が逆だ。
これでいいのかな?




図の上での配置は逆だが、内容は一緒だよ。よく見てみよう。
試験センターの解答例は以下だ。
d XML
e 認可

SAMLに関する詳細な出題は、H29春SC午後Ⅰ問3にもある。
SPやIdpがどれかは必須のように問われているので、理屈を理解しておきましょう。

もう一問(H29春SC午後1問3)見てみましょう。
〔SAMLを用いた認証連携と接続元制限方式の概要]
SAMLは,認証,認可などの情報を安全に交換するためのフレームワークである。SAMLを用いることによって,利用者にサービスを提供するサービスプロバイダ(以下,SPという)と,IDプロバイダ(以下, IdPという)との間で利用者の認証結果などの情報を安全に連携することができる。SAMLには複数の処理方式が存在する。今回F社で導入を検討している方式のシーケンスを図1に示す。図1中の各通信のプロトコルは, IdPとLDAPサーバ間はLDAPであり,それ以外はHTTP over TLSである。

idp
図1 導入を検討している方式のシーケンス

 SAMLを用いた認証連携を行うためには,事前にldPとSPとの間で様々な情報を共有することによって,信頼関係を構築しておく必要がある。事前に共有する情報としては,通信の方式や連携する属性情報などが記述されたメタデータ,[ e:処理1 ]で生成して送出するURL,[ f:処理4 ]において必要なIdPのディジタル証明書などがある。
 図1中の処理1~4の処理内容を表1に示す。

表1 処理内容
処理番号処理内容
処理1・IdPに認証を要求するSAML Request を生成する。
・SAML Request をエンコードする。
・エンコード結果をIdPのログイン画面のURLと組み合わせて,リダイレクト先URLを生成する。
処理2 ・URL内の[ g:ウ:クエリ文字列 ]からSAML Request を取得する。
・信頼関係が構築されたSPからの認証要求であることを検証する。
処理3・利用者の認証が成功した場合,認証結果やSPとの間で連携する属性情報,有効期間,それらの情報に対するディジタル署名を含めたSAML Response を生成する。
処理4 ・SAML Response に含まれるディジタル署名を検証することによって,ディジタル署名が[ h:IdP ]によって署名されたものであること,及びデータの[ i:改ざん ]がないことを確認する。
・SAML Response 内の属性情報も検証することによって,サービスを提供すべきか決定する。
まず、先に正解を言うと、
a:SP
b:利用者端末のブラウザ
c:IdP
d:LDAPサーバ

情報セキュリティスペシャリスト試験を目指す女性SE 
 
問題文の3つで、すべて違うじゃないですかー
そうですね。ブラウザからSPに「サービス要求」が通信の始まり
これだけ覚えておけば、間違えないでしょう。
また、この問題の場合、表1などを読めば、答えがわかるようにもなっていますので、知らなくても問題文から解答できます。

複数の大学で、共同のe-Learningシステムを利用する場合、IDの管理をどうするか。これが課題となる。
共同のe-Learningシステム用にIDを作成すると、学生はIDが増えて煩雑だ。かといって、自分の大学のID情報を、他大学に教えることもできない。
そこで、SAML。以下がイメージ図だ。
素材3_4_SAMLの事例(学術認証フェデレーション)










補足する。

1.SPについて
提供するサービス(メールや学内システム、eラーニングなど)のサーバがあるだろう。当然だ。
そこに、SPのモジュールを組み込むことで、認証画面をつける。このモジュール、多くはShibboleth(シボレスと読む)だ。
設定は以下。
https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=12158264

2.IDPについて
認証の窓口となるサーバ。ADサーバやLDAPサーバそのものではない。SAMLの仕組みを使って、SPと認証サーバをつなぐための仕組みだ。
構築としては、WindowsやLinuxのサーバを立てて、IdPをインストールする。こちらも、多くはShibboleth(IdP)だ。
設定は以下
https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=12158257

3.認証サーバ
従来の、大学にある認証サーバ。ActiveDirectoryやLDAPなどのサーバが多いだろう。IdPからの問い合わせ(LADPかKerberos)に対して、認証結果や属性(学部など)を返す。
この仕組み、便利ですね。
でも、便利すぎて、セキュリティ面で色々と疑問があります。


話が変わるが、大学での無線LANのローミング基盤はeduroam。

db2fc28c
ケルベロスって、ギリシャ神話の門番でしたっけ。
門番が許可した人だけを中に入れた、つまりケルベロスによる認証だったわけですね。



Kerberos認証というのはシングルサインオンに限った仕組みではないが、結果的にシングルサインオンと同様の機能を持つ。
私が解説するよりも、過去問(H22SC秋午後2問2)にてきれいに整理されているので、紹介する。
前半の図が、Kerberosを使わない場合で、後半の図が使った場合。あきらかに、認証が便利になっている。
A社は, PC端末,ファイルサーバ及び一部のWebアプリにおける認証の仕組み,並びにディレクトリとして,c社製ディレクトリシステム(以下,C-DIRという)を,導入している。C-DIRでは,利用者. PC端末,プリンタ及びサーバから構成されるドメインという管理単位を定め,ドメインコントローラ(以下,DCという)によって管理する。また, DCでは, C-DIRのディレクトリに保持されるアカウント情報を用いて認証を行う。認証には,C社独自仕様のチャレンジレスポンス認証(以下, C-CR認証という),又はKerberos認証を利用することが可能である。
 C-CR認証では,図3に示すプロトコルの(b)-1~(b)-4において,DCが生成した疑似乱数をチャレンジとし,それを受信したクライアントで,利用者ID,パスワード及びチャレンジの連結をハッジュ化したレスポンスをDCに返信し,アクセス許可を受ける。
k1






















他方, Kerberos認証では,図4に示すように,クライアントが, DCにおける認証後,有効期限付のチケットが発行され,それをサーバに提示し,アクセス許可を受ける。
k2














C-CR認証の場合,クライアントはサーバヘの接続のたびにDCにおいて認証を行う必要があるが,  Kerberos認証の場合,有効期限内であればチケットをサーバに提示するだけでサービスを受けられる。A社では,トラフィックが少なくなるなどのメリットが多いKerberos認証だけを利用している。また, Kerberos認証において、②有効期限切れのチケットが悪用されないように,DCとサーバを[  a  ]させて運用している。

設問2 (2)本文中の下線②を実現するために,[ a ]に入れる適切な字句を10字以内で答えよ。
これは、Windowsにて、AD(AcriveDirecory)の認証が終わると、AD配下の各サーバにアクセスする際に、再認証が不要という仕組みだ。日頃利用されている人が多いだろうから、理解がしやすいだろう。
aに入るのは、「時刻同期」だ。

SPNEGO(Simple and Protected GSS-API Negotiation Mechanism)ですが、IBMのサイトには「SPNEGO は、HTTP 経由でクライアントから Web サーバーへ資格情報を交換するために Microsoft によって定義されたプロトコル」とあります。
https://www.ibm.com/support/knowledgecenter/ja/SS9H2Y_7.5.0/com.ibm.dp.doc/spnego_protocol.html

過去問(H30秋SC午後Ⅱ問1)をみてみましょう。

・認証サーバB1をバージョンアップし,新バージョンで提供されたSPNEGOプロトコルによって,認証サーバB1が認証サーバA1と通信し,認証サーバA1が発行するトークンを用いて利用者認証を行うようにする。

設問3 〔ID管理及び利用者認証の検討〕について,(1),(2)に答えよ。
 (1)各認証サーバ及び各SaaSをSAML2.0プロトコルやSPNEGOプロトコルで通信させることによって,X社の従業員にはどのような利便性が提供されるか。30字以内で述べよ。

解答例:一度のログインで全システムにアクセスできるという利便性

■別の過去問も参考にして、理解を深めましょう。
SPNEGO(エスピーネゴ)のフルスペルは以下です。
RFC 4178 The Simple and Protected Generic Security Service Application Program Interface (GSS-API)Negotiation Mechanism

・ブラウザではSPNEGOを有効にする設定が必要。
まず、ブラウザが対応していることが大前提です。設定方法は以下に記載があります。
https://www.ibm.com/support/knowledgecenter/ja/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tsec_SPNEGO_configweb_new.html

・SPNEGON動作
過去問(H26秋SC午後Ⅱ問1」)を見てみましょう。
「PCのブラウザは, SPNEGOによるシングルサインオン(以下, SSOという)を利用する設定が行われており,前述のHTTP応答を受信すると,日本DSにTGTを提示してSTを受け取り,そのSTを日本認証サーバに提示して日本の社内システム(以下,日本社内システムという)における利用者認証が成功する。」
TGT (Ticket Granting Ticket)は、認証サーバ(KDC)への認証が成功すると配布されるチケット。ST (Service Ticket) は、各サーバへアクセスするために、TGSから発行されるチケットです。
※以下が分かりやすいです。
https://miya1beginner.com/windows-server-2016-active-directory%E3%81%AE%E6%A7%8B%E7%AF%89-kerberos%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%81%AB%E3%82%88%E3%82%8B%E8%AA%8D%E8%A8%BC%E3%83%95%E3%83%AD%E3%83%BC

ここで、「前途のHTTP応答」に関しては、以下の記述があります。
「日本認証サーバは,認証していないブラウザからのHTTP要求に対して, HTTPステータスコード401, Negotiateの値をもつWWW-Authenticateヘッダ,並びにID及びパスワードの入力画面を含むHTTP応答を返す。そうすると,ブラウザは,日本認証サーバのアクセスに必要なサービスチケット(以下,STという)の提示,又はフォーム認証によるIDとパスワードの入力のどちらかを行う。」

・SPNEGOは認証の仕組みですが、この場合ではSTを使っていることから、Kerberosを使っている。つまり、SPNEGO自体は認証をするのではなく、KerverosやNTLMなどの認証の仕組みを選択して認証をさせているのである。

スポンサードリンク

↑このページのトップヘ