情報処理安全確保支援士試験 午後問題から学ぶ【FIDO】

情報処理安全確保支援士試験の午後問題には、情報セキュリティに関する最新の動向を反映した題材が採用されています。

キーワードに加え、設計やインシデント対応能力をシミュレーションできる良い学びの場ですので、情報処理安全確保支援士試験合格はもちろん、情報処理安全確保支援士となった後も能力向上のために学習していきましょう。

今回は、「クラウドサービスの利用における認証方式の強化」を題材にした「FIDO」を解説していきます。

「FIDO」とは

FIDO(Fast IDentity Online、ファイド)は、公開鍵認証方式を応用したオンライン経由で認証を行う仕組みのことで、パスワード認証による安全性の確保に限界が見えている状況で、パスワードレス認証の一つとして注目されているものです。

FIDOでは、オンライン認証基盤の一つとして生体認証を利用するケースがあります。

デバイス側で生体認証を使った本人認証を行い、サーバ側ではそのデバイス認証を行うというもので、生体情報サーバ側には渡らないことでセキュリティ上の脅威を回避することができます。

具体的には、あらかじめデバイス認証用の鍵ペアを生成して、サーバ側には公開鍵を登録しておきます。そして、デバイスに格納した秘密鍵のロック解除を生体認証で行うという仕組みになります。

WebAuthn(Web Authentication API)

WebAuthnとは、FIDOの仕組みをWebで実装する規格で、JavaScriptで使用するためのAPIです。

FIDOを実現するには、WebブラウザとWebサイトの双方が対応する必要がありますが、Web標準化とすることでサービスに採用されることが多くなってくると考えられます。

平成31年度春期情報処理安全確保支援士試験での「FIDO」

「クラウドサービスの利用における認証方式の強化」を題材に「FIDO」の問題が出題されました。採点講評によると、正答率は低かったようです。

それでは「FIDO」の問題となった部分を見ていきましょう。

 情報システム部長からメールサービスPの認証方式の強化について、次の2点が要求された。

要求1 U社以外の無線LANに接続したとしても手口Gを防ぐこと

要求2 手口Gに限らず、偽サイトにアクセスしてしまったときにフィッシングの手口によるメールサービスPへの不正アクセスを防ぐこと

 Tさんが確認したところ、メールサービスPは、単体ではパスワード認証にしか対応していないが、認証連携の機能があることが分かった。認証連携機能を使えば、メールサービスPにアクセスしようとしたときに、他のID管理サービスにリダイレクトされ、そこで認証が行われ、認証に成功すると、メールサービスPにアクセスできるようになる。そこで、X社が提供するクラウドサービス型ID管理サービス(以下、IDaaS-Xという)が対応している、より強力な認証方式を利用することにした。IDaaS-Xでは、認証サーバXを使って利用者を認証する。

 IDaaS-Xが対応している、より強力な認証方式には、次の2種類がある。

・ワンタイムパスワード(以下、OTPという)認証方式

 TOTP(Time-based One-Time Password algorithm)用のスマートフォンアプリケーションプログラム(以下、TOTPという)を利用した認証方式

・パスワードレス認証方式

 WebAuthn(Web Authentication API)対応のWebブラウザ及び生体認証対応のオーセンティケータを搭載したデバイスを利用した認証方式

 Tさんは二つの認証方式について、要求1及び要求2を満たすことができるかを検討した。

(略)

 次に、Tさんは、パスワードレス認証方式を検討した。IDaaS-Xにおけるオーセンティケータ登録処理を図5に、認証処理を図6に示す。

f:id:aolaniengineer:20191227154530p:plain

f:id:aolaniengineer:20191227154607p:plain

設問2(2)図5及び図6中の(c)〜(f)に入れる適切な字句を、解答群の中から選び、記号で答えよ。

 解答群

 ア 公開鍵A  イ 公開鍵K  ウ 秘密鍵A  エ 秘密鍵K

正解:(C)ウ (d)ア (e)エ (f)イ

【出典:情報処理安全確保支援士試験 平成31年度春期午後1問2(一部、省略部分あり)】

設問2(2) 

まずは、図5の(c)と(d)を考えます。

図5は、オーセンティケータを認証サーバXに登録する処理です。

注1)に「オーセンティケータには、搭載されたデバイスごとにユニークな公開鍵A、秘密鍵A、及び証明書Aが組み込まれている」とあります。

したがって、オーセンティケータでディジタル署名して認証サーバXで検証するには、この公開鍵A、秘密鍵Aを利用することを理解します。

ディジタル署名では、送信者側が使用するのは秘密鍵、受信者側が使用するのは公開鍵です。

(c)で署名Lを生成し、(d)で署名Lを検証とあり、それぞれ、秘密鍵A、公開鍵Aとなります。

次に、図6の(e)と(f)を考えます。

図6は、パスワードレス認証方式の認証処理ということで、利用者の認証になります。

利用者を識別するための情報は、図5の登録処理で、オーセンティケータ側で公開鍵K、秘密鍵Kを生成して登録されています。

したがって、オーセンティケータでディジタル署名して認証サーバXで検証するには、今度は利用者の認証になりますので、この公開鍵K、秘密鍵Kを利用することを理解します。

同じく、ディジタル署名では、送信者側が使用するのは秘密鍵、受信者側が使用するのは公開鍵です。

(e)で署名Mを生成し、(f)で署名Mを検証とあり、それぞれ、秘密鍵K、公開鍵Kとなります。