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

5.PKI

PKIとは何か。本質的な理解をするのであれば、まずはその言葉を正確に理解することが大事である。当然ながらPKIはフィンランド語ではなく、英語であり、フルスペルはPublic Key Infrastructureである。これを日本語訳すると、公開鍵基盤という意味になる。つまり、PKIとは、公開鍵を利用したセキュリティの枠組み。PKIによって、機密性、完全性、真正性、否認防止性を保つことが可能になる。
dcf52feb

PKIっていうのは概念なのでしょうか?「基盤」という言葉を使っていますが、どこからどこまでがPKIなのかよく分かりません。




公開鍵に関する「概念」と考えてもいい。まずは、過去問(H21NW午後Ⅱ問1)を確認する。 
〔認証基盤の構築〕
EAP-TLS方式の実現にはPKI(公開鍵基盤)と呼ばれる認証基盤の構築が必要であり,認証局の設置,電子証明書の発行と配布,及び社員の異動や有効期限切れに伴う電子証明書のメンテナンスが必要 になる。C君は,電子証明書の初期配布やその後のメンテナンスを容易に行えるように配慮して,認証基盤を構築することにした。
認証サーバとしては,認証局機能とRADIUS機能の両方の機能を備えたアプライアンス型の認証サーバ製品を使い,プライベート認証局 を設置することにした。
 この過去問になるように、PKIは公開鍵の認証基盤であり、PKIを構成する要素は、認証局と証明書の2つだとシンプルに考えればよい。また、証明書を運用するのに必要な技術がディジタル署名である。 

7a536a8aすいません。
そもそも、ディジタル署名ってなんですか?
そこからお願いします。




「署名」とは「サイン」のことである。契約書にサインする場合や、クレジットカードで買い物をしたときにサインをする。あれと同じだ。
in2

左は、署名(手書きで名前を書く)と、捺印(印鑑を押す)の様子を図にしてみた。











ディジタル署名は、文字通りディジタルな署名であり、ITの世界の署名である。
機能や目的も全く同じと考えてよい。
では、ここで問題。
ディジタル署名の目的を述べよ。
ヒントは以下の①~③である。
「通信販売の電子商取引では、受発注における[ ① ]、[ ② ]、[ ③ ]によって販売業者又は利用者に被害が及ぶ危険性がある。この三つの防止に適用できるセキュリティ技術(H20秋FE午前 問64)」
ディジタル署名の目的は以下の3つである。
①改ざん防止(完全性)
②なりすまし防止(真正性)
③否認防止

参考ではあるが、情報処理技術者試験では、「デジタル署名」ではなく「ディジタル署名」と記載される。

6b2fb508 

日常生活の署名(サインや押印)のIT版がディジタル署名と言われてますよね。本当に同じなんですか?なんか、全く別物にしか思えないんですけど。



実際に比較してみるのがいいでしょう。
 セキュリティサインや押印ディジタ
ル署名
備考
真正性サインを筆跡鑑定すれば、本人がサインしたことが分かる
完全性
(or△)
契約書を修正するには、修正印が必要になる。
※ただ、契約書の修正は跡が残るが、追加だけであれば、できそうな気がして△かもしれないと思っている
否認防止サインは他人ができない
暗号化××書類にサインする場合、書類そのものは暗号化されていない
このように、セキュリティ機能はほぼ同じです。
ここで大事なのは、実際の署名と、ディジタル署名が厳密に同じかどうかではありません。身近な技術と比較しながら覚えることで、ディジタル署名の本質を理解することです!

情報処理技術者試験やインターネットにおける“証明書”とは何の証明書か
11d7b807
卒業証書は、「卒業したこと」を証明するもの。
運転免許証は、「運転する技能があること」を証明するもの。
インターネットの証明書は、なんだろう? 個人やサーバを証明するもの???



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

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

ディジタル署名は、元データのハッシュ値を、署名鍵で暗号化します。ディジタル証明書の場合ですと、署名鍵は「CA(認証局)の秘密鍵」です。ディジタル署名が正規なものかを検証する方法は、以下です。
①受け取ったデータをハッシュする。
②ディジタル署名を検証鍵で復号する。
③上記の①と②が一致するかを確認する。(一致すれば正規の署名)
pki
過去問(H19SW午後Ⅰ問3)に、ディジタル署名の検証方法が述べられています。下図と照らし合わせながら見てください。
署名の検証時 には,その署名のデータを[ c ]で復号して元のデータと比較し,一致すれば元のデータが偽造や改ざんされていないことが確認できる

480 
929c854c
cには、「CAの公開鍵」が入りますね。
サーバ証明書の場合、CAの証明書から公開鍵を取り出し、検証するからです。
証明書に限っていえば、それで正解です。
でも、これはディジタル署名全般の話なので、「署名者の公開鍵」が正解です。
証明書の場合は、署名したのがCA(認証局)だから、「CAの公開鍵」。
この場合、署名者が誰か特定されていないません。署名者の秘密鍵で暗号化されたデータを復元するので、秘密鍵の対となる「署名者の公開鍵」が答えです。

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

証明書の基本的な構造は、次の2つからなる。
①証明書
②ディジタル署名

証明書はX.509に準拠したフォーマットになっており、簡略化すると以下になる。
・・・
・・・
・・・
有効期限
所有者の情報(サブジェクト)
公開鍵
・・・・・
←証明書部分
※暗号化されていない
証明書のダイジェストを認証局(CA)の秘密鍵で暗号化したもの
←CAによるディジタル署名
※暗号化されている


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




















証明書のパスにより、ルート証明書も確認できる。
証明書3




















dcf52feb


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


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

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

本当は即答しなければいけないんでしょうが、
ちょっと考えちゃいますね。
証明書の種類ディジタル署名をする人
クライアント証明書
サーバ証明書
CA証明書

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

証明書には、CA(認証局)のディジタル署名が付与されている。
では、CAのディジタル署名とはいったい何か。
以下の[ ア ][ イ ][ ウ ]に入れる字句を答えよ。

CAのディジタル署名とは、[ ア ]の[ イ ]鍵で[ ウ ]を暗号化したもの。
15863853
えーーと
難しいですね。
[ ア:クライアント ]の[ イ:秘密 ]鍵で[ ウ:証明書のダイジェスト ]を暗号化したものかな?


シンプルな問題だけど、なかなか答えられない人が多い。
もし、クライアントの秘密鍵で署名するのであれば、私の証明書を私の鍵で署名するってことになる。じゃあ私の証明書と、誰かが不正に署名した証明書、どちらが本物かを区別できるかな?
だから、署名するのは公の機関であるCAがすべきである。
答えは、
[ ア:CA ]の[ イ:秘密 ]鍵で[ ウ:証明書のダイジェスト ]を暗号化したもの。

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

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

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

正解はイ

このページのトップヘ