みかでたぶろぐ

令和を生き抜くブログ

情報安全確保支援士の勉強まとめ~サーバ証明書~

完全に自分用だが、勉強した内容をアウトプットすることで記憶していくスタイル。
情報安全確保支援士の勉強する中で公開鍵基盤に関する内容が複雑でわからなかった。
特にサーバ証明書について、参考書には書かれている内容が少なくわかりづらかったので、自分のブラウザなどで見れる範囲の情報を足しつつまとめてみた。

サーバ証明書の中身

サーバのドメインサーバ証明書を発行した認証局など基本的な情報が入っている。
サーバ証明書で検証に使われる重要な項目は公開鍵拇印(メッセージダイジェスト)になる。
https通信ではこのサーバ証明書をブラウザで受信することで、通信の秘匿性が保たれているか検証している。

例として、Qiitaの証明書を見ると以下の通りとなっている。

f:id:mikadeta:20210126210240p:plainf:id:mikadeta:20210126210248p:plain

f:id:mikadeta:20210126210335p:plain

証明書のパスも見ることが出来る。
ルート認証局の下に3つの中間認証局になって、Amazonサーバ証明書を発行している。

f:id:mikadeta:20210126210804p:plain

ちなみに、サーバ証明書を見る方法としては
https接続しているブラウザの鍵マークをクリックすると中身を見ることが出来る。

f:id:mikadeta:20210126211000p:plain

サーバ証明書の作られ方

サーバAの証明書を作る時の手順をステップごとに見ていく。

サーバAでの作業
①「サーバAの秘密鍵」を作成(OpenSSLなどを使用して作成することができる)
②「サーバAの秘密鍵」をもとに作成した「サーバAの公開鍵」を含んだ「サーバAのCSR」を作成
CSRはサーバのドメインや所有者などの、認証局サーバ証明書を作成するために必要な情報が乗っているファイル。
③「サーバAのCSR」を中間認証局に送信
中間認証局での作業
④中間認証局で「サーバAのCSR」をハッシュ関数でメッセージダイジェストにする。
⑤メッセージダイジェストに「中間認証局秘密鍵」で暗号化し、電子署名を作りサーバ証明書となる。
⑥サーバAにサーバ証明書を送付する。
サーバAでの作業
サーバ証明書をサーバ側で設定することで、https通信可能になる。
 

重要なポイント

サーバ証明書電子署名「中間認証局秘密鍵で暗号化されている。
サーバ証明書には「サーバAの公開鍵」がくっついている。

 

サーバ証明書を利用した通信方法

 

中間認証局が一つの場合としてこれまたステップを追って書いてみる。
クライアント側の作業
①クライアントからサーバAにアクセスする。
サーバ側の作業
②サーバAからクライアントにサーバ証明書と中間証明書を送信する。
クライアント側の作業
③受信した中間証明書から中間認証局の公開鍵を取得

サーバ証明書電子署名を「中間認証局の公開鍵」で復号化しメッセージダイジェスト(拇印)にする。
サーバ証明書電子署名は「中間認証局秘密鍵」で暗号化されている。

⑤復号化で出来た「サーバAのメッセージダイジェスト」と、サーバ証明書からハッシュ関数により導出した「サーバAのメッセージダイジェスト」が一致しているかチェックする。


ルート証明書からルート認証局の公開鍵を取得 
ルート証明書はクライアントにもともと配布されている。

⑦中間証明書のデジタル署名をルート認証局の公開鍵で復号化しメッセージダイジェストにする 
★中間証明書の電子署名は「一つ上位の認証局秘密鍵」で暗号化されている。今回は中間認証局を一つとしているのでルート認証局の公開鍵で復号化できる。

⑧復号化で出来た「中間証明書のメッセージダイジェスト」と、中間証明書からハッシュ関数により導出した「中間証明書のメッセージダイジェスト」が一致しているかチェックする。
⑨クライアントから通信する内容は「サーバAの公開鍵」で暗号化し、サーバAに送信
⑩サーバAでは受信したデータを「サーバAの秘密鍵」で復号化し、解析する。
 
クライアントで保持しているルート証明書は以下で見ることができる。
GoogleChrome→設定→プライバシーとセキュリティ→証明書の管理→信頼されたルート証明書
InternetExploerやEdgeでも見方は検索すれば出てきます。

f:id:mikadeta:20210126211721p:plain

f:id:mikadeta:20210126211748p:plain

 

単語リスト

勉強するうえで出てきた単語と、初心者が認識/イメージした意味

単語 意味
メッセージダイジェスト ファイルをハッシュ化したもの
ハッシュ化 ファイルを文字列(2048byteとか長さは関数による)に変換すること。ハッシュ関数によって、文字列に変換している。少しでも違うファイルであると、異なる文字列に変換されるため改ざんされているかをチェックできる。またハッシュ化後の文字列から元のファイルを作成することはできない。
秘密鍵 公開鍵基盤の秘密鍵。作成したサーバに保存されている。公開鍵で暗号化したものを複合化するためのカギとなる。また、秘密鍵で暗号化したものは公開鍵で復号化できる。実態は数字、文字列の羅列。作り方によって桁数が異なる。
公開鍵 公開鍵基盤の公開鍵。公開する鍵だから公開鍵。秘密鍵で暗号化したものを複合化するためのカギとなる。実態は数字、文字列の羅列。作り方によって桁数が異なる。

デジタル署名

電子署名

メッセージダイジェストを暗号化したもの
CSR サーバ証明書を作成するときに必要な情報を記載したファイル。認証局CSRファイルをもとにサーバ証明書を作成する。
ルート認証局 認証局の最上位の認証局。ツリーの一番上にいる認証局というイメージ
ルート証明書 ルート認証局自身の証明書。 ルート認証局の情報や署名、公開鍵が入っている。
中間認証局 ルート認証局から委任を受けた認証局
中間証明書 中間認証局の証明書。上位の認証局が発行する。中間認証局の情報、署名、公開鍵などが入っている。
サーバ証明書 中間認証局orルート認証局が発行する証明書。サーバの情報、署名、公開鍵などが入っている。

 

より深く理解するには

参考書を読んでいると、サーバ証明書にどのような項目がや作り方がイメージしづらかったためいろいろ調べて出した結果。
試験的には不要だと思うが、中身を見ていったほうが確実に理解は深まる。
無料でサーバ証明書を作る方法として、認証局を自分でやってしまうオレオレ証明書を作ることが出来る。
GCPの永年無料枠で十分できる内容なので、理解をさらに深める意味でもやってみてよいと思う。