Open棟梁Project - マイクロソフト系技術情報 Wiki -[[戻る>暗号化]] * 目次 [#k18e8d3f] #contents *概要 [#e023d9a6] 「デジタル署名」の検証は、「送信側の公開鍵」を拠り所にしていると言えるが、提供される「送信側の公開鍵」の出所が、正規の出所か、検証できない(場合がある)という問題がある。~ このため、この問題を解決するための、「認証局」と呼ばれる、信頼のおける第三者が発行した「デジタル証明書」を使用して「送信側の公開鍵」が信頼できるものであるかを検証する機構がある。 **デジタル証明書 [#d1464251] この「デジタル証明書」には以下のものがある。 ***デジタル証明書の種類 [#ja5c8e1b] -認証局の自己証明書~ 認証局が自身で発行したもの。 -送信側の証明書~ 送信側が認証局に依頼して発行してもらったもの。 ***デジタル証明書に含まれる情報 [#ubbadfc4] これらの「デジタル証明書」には、以下の情報が含まれる。 -認証局の自己証明書~ 「認証局のメッセージ( + 認証局の公開鍵)」、「認証局によるデジタル署名」 -送信側の証明書~ 「送信側のメッセージ( + 送信側の公開鍵)」、「認証局によるデジタル署名」~ ※ 証明書におけるメッセージとは、発行者や有効期限などの情報を指し、~ CSR(証明書発行要求:Certificate Signing Request)に格納される。 ***デジタル証明書の発行 [#c6a66502] #ref(CertificateIssuance.png,left,nowrap,デジタル証明書の発行) -「認証局の自己証明書」は通常、事前にクライアントPCに配布されている。 -このため、「認証局の自己証明書」中の「認証局の公開鍵」を使用して、「送信側の証明書」を検証する。 -これにより、「送信側の証明書」に含まれる「送信側の公開鍵」が「認証局」により、 --信頼できるものであるとされていることが確認でき、 --以降、送信側のメッセージ・署名を(安全に)検証できる。 「デジタル証明書」は、このような方式により成り立っているので、その信頼性は「認証局」の信頼性に依存する。 ***デジタル証明書の利用 [#eea7c79b] #ref(UseOfCertificate.png,left,nowrap,デジタル証明書の利用) +証明書の検証 ++「送信側の証明書」の送付 ++「認証局の公開鍵」を使用して「送信側の証明書」を検証する。 +メッセージの検証 +秘密鍵を使用してメッセージに署名を付与 ++メッセージ+署名の送付 ++送信側の公開鍵を使用して、署名からメッセージを検証する。 ***秘密鍵付きの証明書の受け渡し [#cf97dd12] 他者(上記、上記の図の場合、受信側に該当する)に証明書を渡す場合は、秘密鍵は渡されない。~ 秘密鍵付きの証明書の受け渡しを行う場合は次の手順に従う。 +送信側は、秘密鍵付きの証明書をパスワードで暗号化してpfxファイルとしてエクスポートする。 +②エクスポートしたpfxファイルを渡す。 +受け取ったpfxファイルをパスワードで復号化してインポートする。 この一連の操作は、Windowsの証明書スナップインなどで確認できる。 ***ルートの認証局と中間の認証局 [#s03d489a] なお、「認証局」が「ルートの認証局」と「中間の認証局」に分かれる場合は、次のようになる。 -「ルートの認証局の自己証明書」:~ 「ルートの認証局のメッセージ(+ルート認証局の公開鍵)」、「ルートの認証局によるデジタル署名」 >>>↓ 証明書の発行 & 検証 -「中間の認証局の自己証明書」:~ 「中間の認証局のメッセージ(+中間の認証局の公開鍵)」、「ルートの認証局によるデジタル署名」 >>>↓ 証明書の発行 & 検証 -「送信側の証明書」:~ 「送信側のメッセージ(+送信側の公開鍵)」、「中間の認証局によるデジタル署名」 *証明書の種類 [#y547ccd7] 「デジタル証明書」の主要な利用例として、 **サーバー証明書 [#ife3996e] ***目的 [#he960173] サーバーのユーザが、サーバーの提供者の正当性を検証できるよう、~ サーバーに「サーバー証明書」を埋め込む。 ***用途 [#i259684a] 以下で利用されている。 -各種Webサービス --HTTPS --RDP --,etc. ***SSL暗号化通信 [#g61fa2d8] また、SSLは、「[[ハイブリッド・暗号化>暗号化アルゴリズム#z7306cb4]]」を使用しているが、~ このうちの「公開鍵・暗号化方式」で使用する鍵に「SSLサーバ証明書」に同梱されている秘密鍵・公開鍵を使用している。 -ITpro > selfup --図解で学ぶネットワークの基礎:SSL編~ http://itpro.nikkeibp.co.jp/article/COLUMN/20071002/283518/ --Lesson4 : 相手が信頼できることを確かめる「サーバ証明書」とは?~ http://itpro.nikkeibp.co.jp/article/COLUMN/20071012/284426/ **クライアント証明書 [#c42748a0] ***目的 [#wccd2d31] ユーザーが別のユーザーの正当性を検証できるよう、~ ユーザのメッセージに「クライアント証明書」を埋め込む。 ***用途 [#i259684a] 以下で利用されている。 -電子メールメッセージ -Webサービス(HTTPS) **コード サイニング証明書 [#oa4d84a6] ***目的 [#xfcb1c46] プログラム配布先のユーザが、プログラムの開発元の正当性を検証できるよう、~ 開発したソフトウェアの実行モジュールに「コードサイニング証明書」を埋め込む。 ***用途 [#u14e42c0] -ActiveX -ClickOnce -デバイスドライバ -EXE、DLL *証明書生成の方法 [#eaac5253] **[[IIS]] [#w27bbd9d] [[IIS]]を使用して「[[証明書チェーンがない自己署名証明書>#fa5e8e29]]」を生成できる。 **[[証明書サービス (AD CS)]] [#ied27823] [[証明書サービス (AD CS)]]を使用して「[[証明書チェーンがある自己署名証明書>#w98fecbe]]」を生成できる。 **makecert.exe [#n992aec2] Windows SDK (旧Platform SDK)に同梱されているツール。 *自己署名証明書 [#t094cf0c] 「SSL等のPKIにおいてクライアント側で検証できない(認証パスを辿れない)サーバ証明書。」 全般のことを言い、正規の認証局から取得していない証明書全般を指す。 -オレオレ証明書とは - はてなキーワード~ http://d.hatena.ne.jp/keyword/%A5%AA%A5%EC%A5%AA%A5%EC%BE%DA%CC%C0%BD%F1 自己署名証明書には以下の様な種類がある。 **証明書チェーンがない自己署名証明書 [#fa5e8e29] このタイプの自己署名証明書は証明書チェーンが無いため、~ 自身の秘密鍵をエクスポートして、クライアントにインポートさせる必要がある。 **証明書チェーンがある自己署名証明書 [#w98fecbe] 企業内で独自認証局を運用しており、~ 独自認証局から発行した自己署名証明書は証明書チェーンを持っている。 ***タイプ1 [#x031ffa6] 各クライアントは独自認証局の証明書の公開鍵をインポートしている。 -手動のインポート -[[AD CS>証明書サービス (AD CS)]]の機能を使用してインポート -[[Active Directory]]の[[GPO]]を使用してインポート --AD CS ポリシー設定~ https://technet.microsoft.com/ja-jp/library/cc725911.aspx ***タイプ2 [#mc51d147] この独自認証局は正規の認証局から、中間認証局の証明書を取得している。~ この場合、中間CA証明書、クロスルート設定用証明書がサーバ側に設定されていれば、~ 独自認証局の公開鍵のインポートは不要。 -中間CA証明書はなぜ必要なのでしょうか Symantec~ https://knowledge.symantec.com/jp/support/bms-support/index?vproductcat=BMS&vdomain=VERISIGN.JP&page=content&id=SO22877&actp=RSS&viewlocale=ja_JP&locale=ja_JP&redirected=true *参考 [#l5552d40] -PKI基礎講座(1):PKIの基礎を理解しよう! - @IT~ http://www.atmarkit.co.jp/ait/articles/0011/02/news001.html -[[証明書失効リスト (CRL)]] -[[証明書サービス (AD CS)]]