SSH、SSL/TLS メモ

SSH、SSL/TLSは分かりづらいのでメモ

SSH

1.ユーザーがサーバーに公開鍵を渡しておく。

2.ユーザーが秘密鍵を使って署名を作成、その署名をサーバー側が公開鍵を使って検証する。

3.公開鍵はユーザーも持っていて(秘密鍵に含まれる)ユーザーと公開鍵の対応が適切かどうかも判断。

公開鍵送付>公開鍵照合>署名送付>署名検証
という流れ。

SSL/TLS

1.サーバーはユーザーに公開鍵を送付

2.ユーザーは公開鍵を使って共通鍵を暗号化しサーバーに送付

3.サーバーは暗号化された共通鍵を秘密鍵で復号

4.サーバーとユーザーは一致した共通鍵を使って暗号通信

基本的にSSLの通信は共通鍵暗号となる。

この方法では、サーバーがユーザーに送る公開鍵が正しいかどうかチェックする必要がある。

1.サーバーは通信用公開鍵と署名を送付
(ここでの署名は通信用公開鍵のハッシュを署名用の秘密鍵で暗号化したもの)
(そもそも署名とはハッシュ化し秘密鍵で暗号化すること)
(認証局は署名用の秘密鍵を保持している)
(ここで渡すものがSSLサーバー証明書となる)

2.ユーザーは署名を署名用公開鍵で復号化しハッシュを得る

3.受け取った通信用公開鍵のハッシュを生成、比較し一致すれば公開鍵が正しいと判断

実際、通信用公開鍵と署名を入れ替えられてしまう恐れがあるため、通信用公開鍵+ドメイン名などの情報ファイル(CSR)に対して署名する。さらに、認証局自体の正当性チェックのための中間CA証明書もあり、通信用公開鍵+署名+中間CA証明書が初回リクエストでのサーバーから返すものとなる。

認証>通信用の公開鍵、秘密鍵が使い捨てで生成される。

サーバーでのSSL設定手順。

1.サーバーで秘密鍵からCSR作成。

2.CSRを認証局に渡しSSLサーバー証明書の発行を依頼

3.ドメイン認証

4.SSLサーバー証明書と中間CA証明書が届き、サーバーに設置