Edited at

サーバ証明書のデジタル署名は一体何に署名しているのかわからなくなったので慌てて調べなおした

More than 1 year has passed since last update.


はじめに

openvpnの設定をやっていると、サーバ証明書って何なのかがわからなくなった。特にCAのデジタル署名がわからなくなった。

デジタル署名は何かのデータに対してハッシュ値を求めて、秘密鍵で暗号化しているのはわかっている。

しかし、一体何のデータをハッシュ化して秘密鍵で暗号化している(署名)しているのか。


対象読者

SSLとかopenvpnでデジタル署名とデジタル証明書がもはや何が違うのかがわからなくなった彷徨うヨロイの人。


こうだった

下はサーバー証明書の絵。

image.png

サーバ証明書のデータの一部(オレンジ)をそのまんまCAの秘密鍵で暗号化(CAのデジタル署名)しているだけだった。

そうだった。そんな話だった。

で、クライアントはCAの公開鍵を使ってデジタル署名を復号すると、サーバ証明書の一部のデータに対するハッシュ値が求まる(灰色と同じ値)。

そんで、クライアントはサーバ証明書を受け取っていてオレンジ部分を自分でもハッシュ化してみる。見事同じ灰色の値になったらOK。

オレンジ部分が改ざんされてたら、同じ灰色にはならないから、アウト。そんな感じだった。