1.認証の3つ(本人認証、メッセージ認証、時刻認証)
セキュリティ対策の基本として、暗号と並んで重要なのが認証です。情報処理安全確保支援士試験でももちろん大事なので、まずは全体像から理解していきましょう。
認証は、認証する対象が何かによって、以下の3つがある。
(1)本人(利用者)認証
例えば、システムを利用する人が本人であるかをパスワードを使って認証する
(2)メッセージ認証
例えば、メッセージが改ざんされていないかをMAC(message authentication code)を使って認証する。
(3)時刻認証
例えば、その時刻に存在したことをタイムスタンプを用いて認証する。
メールを例にとろう。
メールの送信者を認証するのが①、
メール本文が改ざんされていないかの認証が②、
メールを保存したりする場合に、その時刻を記録しておくのが③である。
▼認証の3つ
情報処理安全確保支援士試験で最も重要なのは、①の本人認証です。ですが、②や③も出題されています。
2.「本人認証」3つの方式
本人認証には、知識認証と所有物認証、生体認証がある。
認証のレベルは後者になるにつれて上がる。以下に整理する。
認証の方法 | 利用者確認の方法 | セキュリティレベル | 利用者確認方法の例 |
知識認証 What you know? |
本人だけが知っている「知識」で認証する | 知識ベースなので、その知識を知っていれば誰でもなりすましが可能である。 | ・ID/パスワード ・合言葉「山」「川」 ・スマホのパターンロック |
所有物認証 What you have? |
本人だけが持っている「所有物」で認証する | 所有物を盗まれた場合になり済まされる可能性があるが、知識ベースと違って所有物を持った人だけがなりすまし可能になる。 | ・電子証明書 ・ワンタイムパスワード用のトークン ・MACアドレス |
生体認証 What you are? |
本人だけにある「生体情報」で認証する | 身体的な特徴を元にするので、盗まれることや貸し借りをすることが基本的にできない。 | ・指紋認証 ・静脈パターン認証 ・虹彩認証 ・声紋認証 ・顔認証 ・網膜認証 |
実際には、これらを組み合わせた認証も増えていますよね。
たとえば、銀行ATMの場合、カード(所有物認証)とパスワード(知識認証)の2段階での認証です。
その通り。複数の認証を組み合わせることで、セキュリティレベルが高くなる。
最近では、指紋認証(生体認証)も普及しているね。
また、これらの認証技術でセキュリティを保つだけでなく、パスワードを数回間違えたら、利用できなくなるなどの、他の仕組みも組み合わせてセキュリティを高めている。
■情報処理安全確保支援士試験の過去問(H28秋SC午後Ⅱ)を見てみましょう。
Nさん:パスワードを用いる利用者認証では,ログインする人の[ a ]を確認していました。認証カードを利用する利用者認証では,認証カードの[ b ]を確認することになりますね。 R主任:そうだね。加えて,認証カードの利用時にPINを入力させることで,2種類の方法を組み合わせた[ c ]認証にすることができる。ただし,①認証対象者が不適切な行為をすると,その効果は望めない。 Nさん:認証カードを導入すると,利用者IDとパスワードを使わなくなるので,②問題点は解決しますね。 設問1(1) 本文中の に入れる適切な字句を答えよ。(実際は選択式) (2)本文中の下線①について, R主任が想定している不適切な行為を, 35字以内で具体的に述べよ。 設問2 (オリジナル問題)下線②に関して、利用者IDとパスワードを使わなくなることによって、どんな問題点が解決するか |
設問1
(1)解答は以下ですが、選択式で選ぶことができれば正解と考えてください。たとえば、cであれば、二要素としても意味は同じです。二段階では不正解です。(PWを2回入れるのは意味が違うので)
【解答例】 a 記憶 b 所持 c 複数要素
(2)
【解答例】 認証対象者が、認証カードとPINを他人に又貸しして使わせる行為
設問2
例として、以下があります(問題文の記述より)
・自身の利用者IDとパスワードを紙に書いてPCに貼り付けているケース
・利用者IDとパスワードを,他人に教えたケース
その他、簡単なパスワードを設定する、なども該当するでしょう。
3.メッセージ認証
復習ではあるが、認証には、①本人(利用者)認証、②メッセージ認証、③時刻認証の3つがある。
メッセージ認証は、メッセージ(文章)を認証するという意味。
(1)メッセージ認証の目的
まず、メッセージ認証の目的から整理しよう。
問41 メッセージ認証符号におけるメッセージダイジェストの利用目的はどれか。 ア メッセージが改ざんされていないことを確認する。 イ メッセージの暗号化方式を確認する。 ウ メッセージの概要を確認する。 エ メッセージの秘匿性を確保する。 (H23秋FE午前) |
正解はアだ。
メッセージ認証には、MAC(message authentication code)を使う。これは、ディジタル署名と同じように、メッセージにハッシュをつけて送ることで、改ざんがされていないかがわかる。
(2)メッセージ認証の仕組み
メッセージ認証に関する違う過去問で確認する。
問73 公開鍵基盤とハッシュ関数を利用したメッセージ認証の手法はどれか。 ア 受信者は,送信者の公開鍵とハッシュ関数を用いてハッシュ値を復号し,メッセージを得る。 イ 受信者は,ハッシュ関数を用いてメッセージからハッシュ値を生成し,送信者の公開鍵で復号したハッシュ値と比較する。 ウ 送信者は,自分の公開鍵とハッシュ関数を用いてメッセージからハッシュ値を生成し,メッセージとともに送信する。 エ 送信者は,ハッシュ関数を用いて送信者の秘密鍵のハッシュ値を生成し,メッセージとともに送信する。 (H18秋SW午前) |
正解はイ
4.時刻認証
まず、情報処理安全確保支援士試験の過去問(平成25SC春午後Ⅱ問2)を見てみよう。
Jさんが検討したところ,TSA (Time Stamping Authority)が発行するタイムスタンプを付与すれば,タイムスタンプの有効期間中は,電子ファイルが[ e ]及び[ f ]を証明可能であることが分かった。 設問5(1)本文中の[ e ],[ f ]に入れる証明可能なことを,それぞれ30字以内で述べよ。 |
正解は、以下である。
e タイムスタンプの時刻に存在していたこと
f タイムスタンプの時刻以降に改ざんされていないこと
また、違う過去問(H22SC秋AMⅡ問2)では、タイムスタンプの効果として、「電子文書がタイムスタンプの時刻以前に存在したことを示し、作成者が、電子文書の作成を否認することを防止する」と述べられている。
※電子署名だけでは「その時点に存在した」ことが確保されない。
過去問(H17年SU午後Ⅱ問1)詳細な説明があるので、そこからポイントを引用する。理解を深めるためには、この問題に是非チャレンジしてほしい。
①用語の整理
・TSA(Time Stamp Authority):タイムスタンプ機関
・タイムスタンプトークン:電子データのハッシュ値に時刻情報を連結し、電子署名を付与した時刻証明情報
②処理の流れ
(i)電子データのハッシュをTSAに送付する。
[電子データ]→HASHする→[電子データHASH]・・・これをTSAに送付する。
(ii)TSAでは、電子データのHASHに時刻情報を付加して電子署名をする。
【[電子データのHASH]+時刻情報】+電子署名
※電子署名の中身は、【[電子データのHASH]+時刻情報】のハッシュをTSAの秘密鍵で暗号化したもの。
できあがったものは、タイムスタンプトークンと呼ばれる。
③タイムスタンプトークンの検証
タイムスタンプトークンの中身である【[電子データのHASH]+時刻情報】が改ざんされていないかを確認する。そのために、電子署名をTSAの公開鍵で復号する。内容が一致すれば、改ざんされていないことが検証される。
せっかくなので、設問もみてみよう。
設問5 (1)公開かぎ証明書の有効期間が過ぎた後でも,領収書の保存期間内であれば,領収書に付与されたタイムスタンプを確認できる。どのような方法で確認すればよいか。50字以内で述べよ。 (2)設計書に付与されたタイムスタンプを,必要なときにいつでも検証可能にするには,どのような条件で,どのような処置を施すことが必要か。ルート証明書はいつでも入手できるものと仮定して,80字以内で述べよ。 (H17秋SU午後Ⅱ問1) |
正解は以下であるが、問題文を読まないと解くのは難しいだろう。
一度チャレンジしていただきたい。
(1)タイムスタンプ機関に,タイムスタンプトークンが存在し,改ざんされていないことを証明してもらう。
(2)認証パスを構成する証明書の有効期限が切れる前に,関連するすべての証明書と失効情報を集め,タイムスタンプトークンとこれらに新たなタイムスタンプを付与する。
5.オンラインバンキングの認証
情報処理安全確保支援士試験の過去問(H26年SC春午後1問3)では、オンラインバンキングの認証について整理されている。
ちなみにマルウェアJは、「Webインジェクト(Webインジェクション)」と言われる攻撃で、マルウェアKはMITB攻撃である。
項番 |
セキュリティ対策
|
マルウェアJの感染に起因する不正送金への対策としての評価 |
マルウェアKの感染に起因する不正送金への対策としての評価 |
1 |
利用者ID ・ パスワード認証 |
対策にならない |
対策にならない |
2 |
クライアント証明書による認証 |
対策になる |
対策にならない |
3 |
乱数表による認証 |
対策にならない |
対策にならない |
4 |
ワンタイムパスワード認証 |
対策になる |
対策にならない |
5 |
リスクベース認証 |
対策になる |
対策にならない |
6 |
送金内容認証 |
対策になる |
対策になる |
※ただし、項番5はマルウェアJにて、その内容を入力させられる可能性があり、対策になるというのは限定的であると感じる。
それぞれの詳しい内容は、過去問を見てほしい。
オンラインバンキングの被害で、1千万円以上が盗まれたケースもあるようです。丁寧な対策により、自分の身を守っていくしかないようですね・・・
http://www.nhk.or.jp/gendai/articles/3626/1.html
6.余談
(1)インターネットで申し込む際の複雑な手続き
インターネットで申し込みををすると、確認メールが来たりなにやらで面倒である。本当に意味があるのでしょうか。
BitCashを例にすると、いろいろなやりとりがある。
例えば、すぐに申し込みができず、確認メールが送られてきて、そこから申込みがスタートする。
書いたメールアドレスにメールが送られ、そこから購入手続きが始まる。メールはフリーメールのアドレスでも可能なものがほとんど。
恐らくこれは、手順を複雑にすることで、SAPM的な登録を排除するためだと思う。利用者のセキュリティを保護するものではないだろう。
生年月日を入れさせるのは?
生年月日は恐らく偽装でも可能。だが、あとで生年月日を聞かれることがある。適当に入力していると忘れてしまうので、あるいみ「嘘をつかずにきちんと入れた人しか認証しません」というメッセージになっていると思う。
また、上限額がある。
・同じメールアドレスで、連続での購入も禁止されている。
・購入金額は上限が1万円であり、ネットから購入する場合の不正購入の被害が抑えられるような対策になっていると考えられる。
なりすまし対策は何かしてますか?
利用のカード会社の「本人認証サービス」にご登録する必要あり
これは貴重ななりすまし対策である。
カード情報は、BitCashに行っていると思う。ただ、本人認証はカード会社に直接行っているので、セキュリティは高くなっている。
(2)Facebookのなりすまし
Facebookには芸能人になりすますなどの大量のなりすましが存在する模様。本人確認の方法が特になく、自己申告であるため、やむを得ないであろう。
また、伊藤理佐さんが大量にいるとか。
それと、Facebookで、知らない人が私の情報知っているのにびっくりしました。
友達になった人だけが知っているかと思ったら、そうではなかったのです。
セキュリティ設定をきちんと設定していれば問題なかったと思う。
情報セキュリティ白書2011(独立行政法人 情報処理推進機構)には、「Facebook では、各ユーザが個人情報の公開範囲をコントロールするため、適切な設定をしていないと意図せず個人情報が公開される恐れがある。」と述べられている。本人が注意して活用する必要がある。
7.その他の認証技術
(1)チャレンジ・レスポンス認証
情報処理安全確保支援士試験の過去問(H21SC秋午前Ⅱ問2)では、チャレンジ・レスポンス認証は、「利用者が入力したパスワードと、サーバから送られたランダムなデータとをクライアント側で演算し、その結果を認証用データに用いる」方式と述べています。
ネットワーク上を流れるレスポンスが毎回変わるので、リプレイアタックにも強い仕組みです。
パスワードが暗号化されるとともに、ワンタイムパスワードの役割も有する。また、ユーザ名とパスワード以外に必要な情報もない。つまり、事前に秘密鍵を共有したり証明書を準備する必要ない。よく考えられた認証方式だと思います。
なぜチャレンジレスポンス認証が必要なのか、
あまりよく分かりません。
ネットワークを介してパスワードを送信する場合、第三者による盗聴の恐れがあります。最近のWebシステムのように、SSL/TLSで暗号化されていれば安全ですが、そうでない場合もあります。そこで、無線LANのWEP方式やSMTP-AUTH、APOP、IMAPなどでは、チャレンジ・レスポンス認証という技術を利用しています。
利用者は毎回異なるパスワード(下図でいう”レスポンス”)をサーバに送ることになります。仮に第三者にこのパスワード(レスポンス)を盗聴されたとしても、パスワード(レスポンス)は1回限りのものですから、不正利用される心配がありません。
チャレンジ・レスポンス認証の、具体的な流れは以下です。
①利用者は、ユーザIDを送信する
②サーバは、チャレンジ(乱数)を生成する
③作成したチャレンジを利用者に送信する
④利用者は、チャレンジと保有するパスワードからレスポンスを作成する(※ハッシュ演算により暗号化している)
⑤サーバに対し、レスポンスを送信する
⑥サーバは、受け取ったレスポンスと自ら作成したレスポンスを比較する。両者が一致すれば、正規の利用者とみなされ、認証が成功する。
(2)MAC(message authentication code)
メッセージ認証にて、メッセージが改ざんされていないかの確認に使われる。
過去問(H18秋SU午前問27)では、MACに関して、「送信者と受信者の共通鍵を元に,メッセージにハッシュ関数を適用して生成したもの」と述べられている。
ハッシュは、送信者と受信者での共通鍵で行います。
MACによるメッセージ認証(改ざんがされていないか)の流れを、次の図とともに説明します。
①送信者と受信者は、あらかじめ共通鍵を共有しておきます。
②送信者は、メッセージのハッシュ値であるMACを計算します。
③受信者に対して、メッセージだけでなく、MACも送ります。
④受信者は、受信したメッセージからMACを計算します。
⑤この値と受信したMACを比較します。両者が一致すれば、改ざんされていないことがわかります。
過去問を見てみよう。
問48 送信者がメッセージからブロック暗号(方式)を用いて生成したメッセージ認証符号(MAC:message authentication code)をメッセージとともに送り,受信者が受け取ったメッセージからMACを生成して,送られてきたMACと一致することを確認するメッセージ認証で使用される鍵の組合せはどれか。 送信者 受信者 ア 受信者と共有している共通鍵 送信者と共有している共通鍵 イ 受信者の公開鍵 受信者の秘密鍵 ウ 送信者の公開鍵 受信者の秘密鍵 エ 送信者の秘密鍵 受信者の公開鍵 (H18年春SM午前) |
MACは共通鍵を使う。証明書を使わない。その分、簡単ではある。
一方、否認防止などはできない。
なぜ?
不正な第三者は、共通鍵を入手できないはず。
だから、送信者しかそのメッセージを作れないから、否認防止効果があるのでは?
メッセージの受信者はそのメッセージを作ることができる。ディジタル署名の場合は、送信者の秘密鍵で暗号化するため、送信者でしか作成できない。だから、否認防止が可能になる。
前置きが長くなったが、この問題の正解はアだ。
(3)CAPTCHA(キャプチャ)
過去問(H26春AP午前問36)では「人間には読み取ることが可能でも,プログラムでは読み取ることが難しいという差異を利用して,ゆがめたり一部を隠したりした画像から文字を判読させ入力させることで,人間以外による自動入力を排除する技術」と述べられています。
私のサイトから、私へメッセージをお送りいただく場合も、以下のようなCAPTCHA画面が表示されます。
ツールよる不正は投稿を防ぐためです。
(4)Oauth2.0
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にアクセスができます(下図④)。
ちなみに、Oauth1.0はセキュリティ上の欠陥があり、Oauth2.0で改良されました。
以下のサイト、実際のOAuthを体験できるので、とても分かりやすいです。
https://contents.saitolab.org/oauth/
(5)ベーシック認証とダイジェスト認証
認証にはBASIC認証(ベーシック認証)とDIGEST認証(ダイジェスト認証)があります。
前者はIDおよびパスワードがbase64で(暗号というか、)エンコードされて送られます。エンコードしているだけなので、平文のようなものです。後者は暗号化されます。なので、BASIC認証の場合、HTTPで通信する場合はパスワードが漏えいする危険があります。
DIGEST認証は、チャレンジレスポンス認証と同じやり方で通信を暗号化していると考えてください。つまり、チャレンジとレスポンスを交換して通信を暗号化します。
チャレンジレスポンス認証に関しては、以下に記載しています。
(6)FIDO
❶FIDOについて
FIDO (Fast IDentity Online)は、Onlineとあるように、(主に)インターネットと通じた認証での新しい枠組み。公開鍵を使って安全に認証をする。
ただ、何かのデバイス(FIDOクライアント)が必要。
【流れ】
利用者 ← (1) → FIDOクライアント(スマホなど) ← (2) →FIDOサーバ
ここで、(1)はローカルで認証。パスコードでも生体認証でもOK
(2)の認証は、公開鍵を使うので、認証情報がセキュアに通信される。また、利用者が仮に(1)でパスコードを使ったとしても、その情報は(2)には流れない。
https://www.itmedia.co.jp/enterprise/articles/1912/17/news028_2.html
https://www.dds.co.jp/ja/topics/9736/
インターネットに出ない場合は、FIDOではなくてもいいですよね? たとえば、銀行ATMの生体認証、企業におけるICカード認証や生体認証。
銀行ATMの生体認証、企業におけるICカード認証や生体認証は、今のままでも安全性が高いと言えるだろう。実際、オンラインバンキング(PCではなくスマホ)ではFIDOを使っているが、物理的なATMはFIDOを使っていない。
まあ、厳密には、PCがFIDOに対応していない場合が多いというのが正確な言い方かもしれない。一応、Windows HelloはFIDOに対応している。また、GoogleChromeなども、FIDO2.0でPC対応をしていくようなので、今後は普及するかも(?)しれない。
❷過去問(R1SC秋午前Ⅱ問1)
問1 認証処理のうち, FIDO (Fast IDentity Online)UAF(Universal Authentication Framework)1.1に基づいたものはどれか。
ア SaaS接続時の認証において, PINコードとトークンが表示したワンタイムパス ワードとをPCから認証サーバに送信した。
イ SaaS接続時の認証において,スマートフォンで顔認証を行った後,スマートフ ォン内の秘密鍵でディジタル署名を生成して,そのディジタル署名を認証サーバ に送信した。
ウ インターネットバンキング接続時の認証において,PCに接続されたカードリー ダを使って,利用者のキャッシュカードからクライアント証明書を読み取って,そのクライアント証明書を認証サーバに送信した。
エ インターネットバンキング接続時の認証において,スマートフォンを使い指紋 情報を読み取って,その指紋情報を認証サーバに送信した。
↓
↓
正解は、イ