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

左門至峰による情報処理安全確保支援士試験に合格するためのサイトです。 過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。

電子証明書

 

1.電子証明書は何を証明するものなのか

情報処理技術者試験やインターネットにおける“証明書”とは何の証明書か

11d7b807
卒業証書は、「卒業したこと」を証明するもの。
運転免許証は、「運転する技能があること」を証明するもの。
インターネットの証明書は、なんだろう? 個人やサーバを証明するもの???
サーバ証明書や、クライアント証明書は、サーバであったりクライアントの証明であるが、その何を証明するのだろうか? そこがポイント。
情報処理安全確保支援士試験やインターネットにおける“証明書”とは、“公開鍵証明書”を意味する。この点に関して違和感を覚える人がいるかもしれない。しかし、インターネットの世界で安全な通信をするには公開鍵が重要な役割を持つ。公開鍵の真正性と完全性を保証するために公開鍵証明書が必要である。

過去問(H27年秋IP問83)でも、「PKIにおいて,電子証明書が正当性を証明しているものはどれか」という出題がありました。当然、正解は「公開鍵」です。

2.ディジタル証明書(電子証明書)には3つある

証明書には、ルート(CA)証明書、サーバ証明書、クライアント証明書の3つがある。
(1)ルート(CA)証明書
 認証局であるCAの公開鍵を証明する証明書
(2)サーバ証明書
 サーバの公開鍵を証明する証明書
(3)クライアント証明書
 クライアント(PC)の公開鍵を証明する証明書
ディジタル証明書の3つ
たとえば、IPAのサイトでサーバ証明書を見てみよう。試験を申し込むときは、HTTPSによるSSLの通信を行う。
ipa
HTTPSの場合、上記のように鍵のマークがつく。
ルート証明書による確認が行われ、確認ができない場合はメッセージが出るが、そうでない場合はメッセージがでない。証明書1 
これはサーバが正当であることを証明するサーバ証明書である。
利用者が不正なサーバ(サイト)でないことを確認するもの。不正なサイトにクレジット番号を入力したら困る。それを防ぐためのものである。
情報セキュリティスペシャリスト試験を目指す女性SE
サーバ証明書の目的は分かりました。たぶんクライアント証明書も同じだと思います。ルート(CA)証明書は何に使うのですか? 
確かにそうだね。認証局(CA)と通信することはないから、証明書を確認するタイミングがないね。
認証局(CA)の証明書の目的は、サーバ証明書やクライアント証明書のディジタル署名を照合するときに、CAの公開鍵が必要になる。署名の照合に関しては、ディジタル署名の記事を確認いただきたい。

3.実際の証明書を詳しく見てみよう

情報処理安全確保支援士試の対策として、詳しく理解していきましょう。
証明書の基本的な構造は、次の2つからなる。
①証明書
②ディジタル署名

証明書はX.509に準拠したフォーマットになっており、簡略化すると以下になる。

・・・
・・・
・・・
有効期限
所有者の情報(サブジェクト)
公開鍵
・・・・・
←証明書部分
※暗号化されていない
証明書のダイジェストを認証局(CA)の秘密鍵で暗号化したもの
←CAによるディジタル署名
※暗号化されている


実際に、証明書の中身を自分でも確認しよう。教科書に載っている内容と合致しているか確認すると、理解が深まる。
証明書2
証明書のパスにより、ルート証明書も確認できる。
証明書3
dcf52feb

ちなみにですが、ルート証明書が正しいかどうかは、
どうやって確認するのでしょうか?

 

ブラウザが管理している。ブラウザにウイルスが侵入したり、ブラウザを提供している会社が詐欺を働いたら、我々は騙されることになる。でも、ブラウザを信用するしかない。
でも、きちんと管理されていると思う。たとえば、ルート証明書が正しくないと分かった場合、WindowsUpdateなどにより、ルート証明書の失効リストが取得される。

4.電子証明書は誰が署名するのか

電子証明書は、元の文書である証明書部分にディジタル署名を付与したものである。
では、署名をするのは誰か?3つ証明書それぞれで考えてほしい。
情報セキュリティスペシャリスト試験を目指す女性SE

本当は即答しなければいけないんでしょうが、
ちょっと考えちゃいますね。

証明書の種類 ディジタル署名をする人
クライアント証明書  
サーバ証明書  
CA証明書  

理由を考えながら解くとよい。
例えば、サーバ証明書は誰が署名をするのか?
サーバ(またはその持ち主)が自ら署名したらどうなるか?
悪意のある人が自分で署名し、「おれのサーバ証明書は正しい」と主張することになる。
このやり方では、正規のサーバ証明なのか、悪意のあるサーバ証明書なのかが分からない。
 正解は、全て認証局であるCAが署名する。参考までに、ルート証明書は、自分で自分を署名するので、自己署名と言われる。
 一方、ディジタル署名の電子商取引などの場合は、認証局であるCAではなく、署名者本人が署名するので注意が必要である。
署名_情報セキュリティスペシャリスト試験
▼ディジタル署名と電子証明書での署名者の違い

5.CRL(Certificate Revocation List:失効リスト)

CRL(Certificate Revocation List)は,有効期限内に失効(Revocation)したディジタル証明書(Certificate)のシリアル番号のリスト(List)です。
たとえば、証明書が誰かになりすまして作成されたなどの不正が判明した場合に、その証明書の番号をCRLに登録します。CRLを認証サーバなどに登録し、失効した証明書が提示された場合には、認証を拒否します。
情報セキュリティスペシャリスト試験を目指す女性SE 

面倒な方法ですね。もっといい方法はないのですか?
残念ながらこれしかないと思います。盗まれたり偽造された証明書を強制的に取り上げたり、無効化することはできないからです。有効期限が切れれば失効リストで管理する必要はありませんが、有効期限内のものは失効リストに登録して管理するしかありません。
情報セキュリティスペシャリスト試験を目指す女性SE 

ちなみに、CRLはどこに入れるのですか?
一般的には認証サーバです。認証の問い合わせがあった際に、CRLを確認します。

問19 CRL (Certificate Revocation List)はどれか。
ア 有効期限切れになったディジタル証明書の公開鍵のリスト
イ 有効期限切れになったディジタル証明書のシリアル番号のリスト
ウ 有効期限内に失効したディジタル証明書の公開鍵のリスト
エ 有効期限内に失効したディジタル証明書のシリアル番号のリスト
(H24秋NW午前2)

正解はエ
イの有効期限が切れたものは、CRLに登録しなくても、有効期限をチェックすれば無効かどうかが分かる。

もう一問は情報処理安全確保支援士試験の過去問から。

問1 特定のCAが発行したCRL (Certificate Revocation List)に関する記述のうち,適切なものはどれか。
ア CRLには,失効された公開鍵証明書に対応する秘密鍵が登録される。
イ CRLには,有効期限内の公開鍵証明書のうち破棄されている公開鍵証明書と破棄された日時の対応が提示される。
ウ CRLは,鍵の漏えい,破棄申請の状況をリアルタイムに反映するプロトコルである。
エ 有効期限切れで無効になった公開鍵証明書は,所有者が新たな公開鍵証明書を取得するまでの間、CRLに登録される。 (H24秋SC午前2)


正解はイ

6.認証局(CA)

CAとは、スチュワーデスを意味するCabin Attendantではなく、認証局(CA:Certification Authority)のことです。

では、認証局(CA)の役割はなんでしょう。2つ覚えてください。
(1)証明書を発行すること
(2)CRL(失効リスト)を発行すること。

過去問(H21AP秋午前問39)を見てみましょう。

問39 公開鍵暗号方式を採用した電子商取引において、認証局(CA)の役割はどれか
ア 取引当事者の公開鍵に対するディジタル証明書を発行する。
イ 取引当事者のディジタル署名を管理する。
ウ 取引当事者のパスワードを管理する。
エ 取引当事者の秘密鍵に対するディジタル証明書を発行する。

正解はアです。先ほどの記事でも述べたとおり、証明書は「公開鍵の証明書」であることを強く認識しておいてください。
加えて、CRLを発行することも認証局(CA)の役割です。過去問(H28秋SG午前問29)では、「PKI(公開鍵基盤)における認証局が果たす役割」として、「失効したディジタル証明書の一覧を発行する」とあります。
601a33a7

確かベリサインなどが認証局の代表でしたっけ?
その通り。ベリサインは、公的な認証局の代表。
認証局には、公的な認証局と、企業などが独自で構築するプライベート認証局の2つがある。公的な認証局であれば、証明書の管理を全て任せられるというメリットがある反面、証明書の費用がかかるというデメリットがある。例えば、ベリサインであれば、1ユーザあたり、年間数千円の費用がかかり、大規模な企業になれば、かなりの費用になる。

■IA(発行局)とRA(登録局)
情報処理安全確保支援士試験の過去問(H27年春SC午後Ⅱ問2)には、以下の記述がある。

証明書の発行に必要なCA(認証局)の機能のうち,IA(発行局)についてはJ社本社のプライベートCAを利用し,RA(登録局)についてはK工場が担当する。

細かいところは覚えなくていいが、RA(登録局)では、証明書発行の受付をし、IA(発行局)にて証明書の発行
(および失効)を行うことをぼんやりと覚えておこう。物理的に別サーバであることもあれば、同一サーバであることもある。

■検証局(VA)

情報処理安全確保支援士の過去問(H27春SC午前2問4)では、VA(Validation Authority)の役割として、「ディジタル証明書の失効状態についての問合せに応答する」とある。

7.証明書の有効性を確認する方法

(1)サーバ側(と考えてもらえばいいであろう。)

受け取った電子証明書が正しいかどうか、本物であるかの有効性確認はどうやって行うか。
3つ答えよ。

漠然として難しい問題であるが、がんばって答えて欲しい。
3
確か、証明書にはディジタル署名がつけられていて・・・
その署名をCAの公開鍵で復号して確認したはず。
でも、3つって難しくないですか?


一つは正解。あと2つある。
情報処理安全確保支援士試験の過去問(H18SV午後1問4設問2(1))の問題文と解答を軸に解説する。
証明書が有効かどうかは次の3つで確認する。
❶署名値の照合
 ディジタル署名の照合。「証明書をハッシュしたもの」と「ディジタル署名をCAの公開鍵で復号したもの」が一致するか。これにより、公開鍵が本人のものであること(真正性)と改ざんされていないこと(完全性)が確認できる。

❷証明書の有効期限の確認
 証明書が有効期限内であるか。

❸証明書の失効確認
この設問の解答例としては、「失効情報の確認」「証明書の失効確認」と記載されている。CRL(Certificate Revocation List:失効リスト)を照合し、CRLに登録されていないか。
またはOCSP(Online Certificate Status Protocol)プロトコルを使った失効確認を行う。OCSPの方が、リアルタイム性が高いが、OCSPレスポンダと呼ばれるサーバを立て、なおかつ事前にCRLを取り込んでおかなくてはいけない。仕組みが整っていない場合が多い。
pki_ocsp_情報セキュリティスペシャリスト
●OCSPに関する過去問(H25SC春午前2問3)

問3 PKIを構成するOCSP (Online Certificate status Protocol)を利用する目的はどれか。
ア 誤って破棄してしまった秘密鍵の再発行処理の進捗状況を問い合わせる。
イ ディジタル証明書から生成した鍵情報の交換がOCSPクライアントとレスポンダの間で失敗した際,認証状態を確認する。
ウ ディジタル証明書の失効情報を問い合わせる。
工 有効期限の切れたディジタル証明書の更新処理の進捗状況を確認する。


正解はウだ。

(2)ブラウザにおける証明書の有効性確認方法

HTTPSでアクセスした場合、サーバ証明書に問題がある場合は、セキュリティ警告が表示される。
このような証明書の有効性の確認を、ブラウザが自動で実施している。

◇証明書の警告の詳細説明◇
1)「信頼されたルート証明機関」に登録されたCAから発行されているか
2)有効期限内であるか
3)証明書のCNとアクセスするURLが一致するか


実際の画面は以下である。
情報セキュリティスペシャリスト試験対策_IE6のセキュリティ警告
情報セキュリティスペシャリストを学習する剣持成子 
 
なるほど!
3)は別として、さきほどの記事の①と②が1)と2)に対応していますね。


情報処理安全確保支援士試験の過去問(H23秋SC午後I問3設問2(2))でも、この点が問われた。

(2)サーバ証明書の検証においてブラウザが確認すべき内容のうち,中間者攻撃のような攻撃への対策となるものを二つ挙げ,それぞれ35字以内で述べよ。

答えは、以下である。
①サーバ証明書のコモンネームとアクセス先のホスト名が一致すること
②サーバ証明書がブラウザで信頼する認証局から発行されていること

8.クライアント証明書

(1)クライアント証明書のインストール方法
専用Webサイトからダウンロードしてインストールしたり、郵送等で送られた証明書をダブルクリックしてインストールすることができる。

(2)格納場所
インターネットエクスプローラの場合、「ツール」「インターネットオプション」「コンテンツ」「証明書」にて「個人」のタグに入る。
また、過去問(H22SC秋午前Ⅱ問15)では、「SSLで使用する個人認証用のディジタル証明書は、ICカードなどに格納できるので、格納場所を特定のPCに限定する必要はない」と述べられている。
15863853

メールとか、ダウンロードとか、FDに入れて郵送しようが、
電子証明書なんてコピーされたらおしまいじゃないですか?
そうだね。2つの観点で考えよう。
①インストールされた証明書をコピーする
②インストールする時点の証明書をコピーする

①に関して、クライアント証明書などの場合、基本的にはエクスポートができないようになっている。
ただ、設定によってはエクスポートも可能で、その場合はコピーされたらおしまい。
ためしに、エクスポートしてみましょう。
「秘密鍵のエクスポート」ができないようになっていると思う。
これはコピーができないということだ。

②に関して、最近では、WebシステムやActiveDirectoryなどから自動配布されることが一般的だ。その場合は、その本人が1回しかインストールできない。
FDなどで証明書が郵送されてきたら、それを本人がしっかり管理しないと、盗まれたら誰でもがインストールできてしまう。あまりいい配布方法ではない。

9.証明書とCSR

企業の社会的責任のCSR(corporate social responsibility)ではなく、証明書のCSRについてである。
CSR(Certificate Signing Request)はスペルから分かるように、証明書の署名要求である。
実際には証明書を発行してもらうのだが、証明書の内容は自分で決めるため、単に「署名してください」とお願いしているだけとも考えられる。だから、署名要求(Signing Request)なのである。

過去問(H25AP秋午後問8)にこれらに関する問題があるので紹介する

〔WebサイトでHTTPSを使用するための準備〕
 HTTPSを使って通信するためには,「aを取得する必要がある。[  a  ]の申請には,識別名(Distinguished Name)が必要になる。識別名は,国コード,都道府県名,市区町村名,組織名,部署名,コモンネーム(SSL接続するサイトのFQDN)から構成される。A社では, SSL通信を行うWebサイトのURLを “https://.www.a.co.jp/member/"とし,識別名を表1のように決定した。

表1 A社の識別名
識別名を構成する項目  値
国コード(Country)   JP
都道府県名(State)  Tokyo
市区町村名(Locality)   Bunkyo-ku
組織名(Organizational Name)  A Japan K.K.
部署名(Organizational Unit)  User Support
コモンネーム(Common Name)  [   b   ]

 A社のWebサイト管理者は,識別名を決定し,コモンネームの重複がないことを確認した後,証明書署名要求(CSR : Certificate Signing Request)を生成し,認証局に申請することで[  a  ]を取得した。証明書署名要求には,識別名と[  c  ]が含まれており,認証局から取得した「aを機器に導入する際には,[  c  ]とペアを成す[  d  ]が必要になる。[  a  ]と[  d  ]を機器に導入し,HTTPSでのアクセスが可能になるよう設定した。


正解は、以下である。
a SSLサーバ証明書
b  www.a.co.jp
c 公開鍵
d 秘密鍵

10.証明書の問題(オリジナル)

社員が社外から社内システムにリモートアクセスをする環境を作ります。そのため、SSL-VPN装置(リバースプロキシサーバ)を導入しました。
セキュリティを保つ観点から、証明書を使った認証をすることにしました。社員のPCと、SSL-VPN装置に、それぞれ2つの証明書を入れます。
その証明書はなんでしょうか。また、その目的は?

情報セキュリティスペシャリスト_pki

この環境にて、どんなセキュリティを保てばいいでしょうか。
SSL通信をしますから、暗号化通信はされています。冒頭にあるように、証明書を入れますから、認証の観点で考えます。

まず、クライアントの立場で考えましょう。
クライアントは、正規のサーバに接続したいと考えます。偽装されたオンラインバンキングに接続して、IDパスワードを盗まれるという事件があるように、情報漏えいをしないためです。
そのため、サーバのサーバ証明書を確認します。ですから、SSL-VPN装置には、サーバ証明書が必要です。
では、そのサーバ証明書が正しいかを確認する必要があります。
そのためには、CAのルート証明書が必要です。
よって、クライアントPCにはルート証明書が必要です。

次に、サーバの立場で考えましょう。サーバは、不正なPCを接続させたくありません。IDパスワード認証に加え、証明書での認証をするのです。そのとき、クライアントが正規のものかを確認するために、クライアント証明書を見せてもらいます。よって、クライアントにはクライアント証明書を入れます。SSL-VPN装置は、そのクライアントが正しいかをチェックする必要があります。そのために必要なのが、CAのルート証明書です。

【解答】
①サーバ
 サーバ証明書
 CAのルート証明書

②クライアントPC
 クライアント証明書
 CAのルート証明書

11.EV SSL証明書が緑色であることによるメリット

以下は、フィッシング対策協議会のサイトですが、右側に東京三菱UFJ銀行のフィッシングサイトの情報があります。
https://www.antiphishing.jp/news/alert/mufj_20150728.html

見ていただくとわかりますが、本物そっくりです。これを偽造と判断するのは難しいでしょう。
でも、このフィッシングサイトのURLは、「http://bk.mufg.jp.●●●●.uno/~」とあります。
つまり、HTTPなのです。本来の三菱東京UFJ銀行のURLは、httpsで始まり、証明書にEV SSL証明書を使っています。ですから、Webサイトの緑のバーを見れば、正規の銀行と分かるのです。
緑だから正規だとは100%言えるわけではありまえんが、この証明書を取得する審査のハードルが高いので、不正な第三者が取得することは難しいのです。