情報処理安全確保支援士(情報セキュリティスペシャリスト) - SE娘の剣 -

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

4.認証

メッセージ認証にて、メッセージが改ざんされていないかの確認に使われる。
過去問(H18秋SU午前問27)では、MACに関して、「送信者と受信者の共通鍵を元に,メッセージにハッシュ関数を適用して生成したもの」と述べられている。
ハッシュは、送信者と受信者での共通鍵で行います。

MACによるメッセージ認証(改ざんがされていないか)の流れを、次の図とともに説明します。
①送信者と受信者は、あらかじめ共通鍵を共有しておきます。
②送信者は、メッセージのハッシュ値であるMACを計算します。
③受信者に対して、メッセージだけでなく、MACも送ります。
④受信者は、受信したメッセージからMACを計算します。
⑤この値と受信したMACを比較します。両者が一致すれば、改ざんされていないことがわかります。
MAC_message_authentication_code_情報セキュリティスペシャリスト試験
過去問を見てみよう。
問48 送信者がメッセージからブロック暗号(方式)を用いて生成したメッセージ認証符号(MAC:message authentication code)をメッセージとともに送り,受信者が受け取ったメッセージからMACを生成して,送られてきたMACと一致することを確認するメッセージ認証で使用される鍵の組合せはどれか。

     送信者             受信者
ア 受信者と共有している共通鍵   送信者と共有している共通鍵
イ 受信者の公開鍵       受信者の秘密鍵
ウ 送信者の公開鍵       受信者の秘密鍵
エ 送信者の秘密鍵       受信者の公開鍵  (H18年春SM午前)
MACは共通鍵を使う。証明書を使わない。その分、簡単ではある。
一方、否認防止などはできない。
601a33a7 
なぜ?
不正な第三者は、共通鍵を入手できないはず。
だから、送信者しかそのメッセージを作れないから、否認防止効果があるのでは?
メッセージの受信者はそのメッセージを作ることができる。ディジタル署名の場合は、送信者の秘密鍵で暗号化するため、送信者でしか作成できない。だから、否認防止が可能になる。
前置きが長くなったが、この問題の正解はアだ。

リスクベースというのは、「リスクの大きさに基づいて追加の認証をする」と考えてください。
リスクベース認証について過去問では、「普段と異なる環境からのアクセスと判断した場合,追加の本人認証をすることによって,一定の利便性を保ちながら,不正アクセスに対抗し安全性を高める(H28秋AP午前Ⅱ問40)」、「利用者のIPアドレスなどの環境を分析し,いつもと異なるネットワークからのアクセスに対して追加の認証を行う(H28秋SC午前Ⅱ問6)」とあります。
たとえば、いつものIPアドレスとは違ったり、ブラウザを変えてアクセスすると、以下のように(ゆうちょの例)、追加で質問がなされます。(通常は、このような合言葉の質問はありません。)
 
aikotoba



Facebookには芸能人になりすますなどの大量のなりすましが存在する模様。本人確認の方法が特になく、自己申告であるため、やむを得ないであろう。
また、伊藤理佐さんが大量にいるとか。
d18680c9
それと、Facebookで、知らない人が私の情報知っているのにびっくりしました。
友達になった人だけが知っているかと思ったら、そうではなかったのです。
運用が大事だね。きちんと設定していれば問題なかったと思う。
情報セキュリティ白書2011(独立行政法人 情報処理推進機構)には、「Facebook では、各ユーザが個人情報の公開範囲をコントロールするため、適切な設定をしていないと意図せず個人情報が公開される恐れがある。」と述べられている。本人が注意して活用する必要がある。

もう一問、過去問(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。

過去問(H26春AP午前問36)では「人間には読み取ることが可能でも,プログラムでは読み取ることが難しいという差異を利用して,ゆがめたり一部を隠したりした画像から文字を判読させ入力させることで,人間以外による自動入力を排除する技術」と述べられています。

私のサイトから、私へメッセージをお送りいただく場合も、以下のようなCAPTCHA画面が表示されます。
ツールよる不正は投稿を防ぐためです。
captcha_情報セキュリティスペシャリスト

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に入るのは、「時刻同期」だ。

Oauth(Open Authorization)とは、複数のシステム(Webサービス)間で、APIを使ってアプリケーションを連携させる仕組みです。
言葉がオープンな(Open)な許可(Authorization)が意味するように、安全に連携させるアプリケーションを許可します。
一方のOpenIDの場合は、認証の許可だけになります。
※シングルサインオンの仕組みではないのですが、他との比較に関して、ここに書くのが分かりやすいだろうと判断しました。

過去問(H27秋SC午前2)を見てみましょう。
問17 OAuth 2.0において, WebサービスAの利用者Cが, WebサービスBにリソースDを所有している。利用者Cの承認の下, WebサービスAが,リソースDへの限定的なアクセス権限を取得するときのプロトコルOAuth 2.0の動作はどれか。
ア WebサービスAが,アクセストークンを発行する。
イ WebサービスAが,利用者Cのディジタル証明書をWebサービスBに送信する。
ウ WebサービスBが,アクセストークンを発行する。
エ WebサービスBが,利用者Cのディジタル証明書をWebサービスAに送信する。
正解はウです。以下に図にしてみました。
利用者は、WebサービスAを利用します。これは、知名度があまり高くないサービスとしましょう。このサービスには、マッシュアップとして、WebサービスBのリソースDが組み込まれています。リソースとは少し違いますが、SNSのコメント機能が組み込まれてることを思い浮かべてください。
このとき、利用者Cは、WebサービスAにユーザIDやパスワードを渡すのは危険だと考えるでしょう(下図①)。それに、WebサービスA側としても、余分な処理が増えます。そこで、Oauthを使い、APIとして連携します。利用者にはWebサービスBからのメッセージでログインをさせ(下図③)、WebサービスAにはトークンを払い出します(下図③)。トークンは、許可証みたいなものです。セキュリティの観点から、WebサービスA側には、利用者のIDやパスワード情報は渡しません。
こういう仕組みで、利用者Cは、WebサービスAのリソースDにアクセスができます(下図④)。
no title


ちなみに、Oauth1.0はセキュリティ上の欠陥があり、Oauth2.0で改良されました。

スポンサードリンク

↑このページのトップヘ