怒り狂ってSSL/TLS

  • 投稿日:
  • by
  • カテゴリ:

SSL/TLS導入ガイドブック
著者:井上孝司 三木秀治
分類:入門書、技術書
総合評価  :★★★★
内容     :★★★★
分かりやすさ:★★★★
図       :★★

まず、

なんで今週のコナンやらないんだよー(TVの話)
しかも、サンデーも今週休みだしー
かなり怒り狂っているので、「書いてやるー!!」という勢いで書いてます。

~前置き終わり
この本はSSL/TLSという暗号通信技術の本です。
本の内容はかなり広範囲で、暗号技術の基本から発展、実践となっています

もちろんこのサイトにはSSLなんてめんどくさい技術は使っていないわけで、
この本を読みながらだったら、簡単に導入できそうな気がするので、気が向いたらやってみてもいいかなぁと思っています

なんかすごい意気込みで書き始めたけど、まだ書き足りないので続きを・・・・↓

//////////////////////////////////////////////////////////////////////////////
SSLは個別のアプリケーションごとに設定される。SSLはトランスポート層より上位には関与していない
またそのため、SSLはOSなどに関係なくアプリケーションが対応しているだけでいい。

一方、IPsecはパケットに対して行うので、HTTPだろうがPOPだろうが関係なく暗号化される。そのため、OSやルータが対応していないといけない

HELLO REQUEST
サーバー
次のメッセージの送信を促す
Client Hello
クライアント
SSLのバージョン
現在時刻
client random(鍵の生成)
セッションID
利用可能な暗号化・ハッシュアルゴリズム
利用可能な圧縮アルゴリズム

ServerHello
サーバー
SSLのバージョン
現在時刻
server random(鍵の生成)
セッションID
利用する暗号化・ハッシュアルゴリズム
利用する圧縮アルゴリズム


通信相手のサーバーが本物かどうかを確かめる
(DNSののっとりに対応)
Server Contificate
サーバー
証明書の送信
Server Key Exchange
サーバ
サーバーが固有の証明書を持たない場合に鍵を使って認証する
Server Hello done
サーバー
送るべき情報の送信が完了したことを示す
クライアントはこの後、証明書の確認を行う

暗号化
Client Key Exchange
クライアント
プレマスターシークレットと呼ばれる鍵の元を証明書に含まれる公開鍵で暗号化して送信、サーバー側はそれを復元できるかどうかでクライアントが本人かどうか確認できる。
client random、server random、プレマスターシークレットの三つを使って
データの暗号化に使う共通鍵
データの認証コードを暗号化するための共通鍵
CBCモードの暗号化で使用する初期ベクタ(IV)

Change Cipher Spec
クライアント
暗号化通信を行う宣言

Finished
クライアント
セッション確立完了

Change Cipher Spec
サーバー
暗号化通信を行う宣言

Finished
サーバー
新しいセッションIDを送信する


SSLの終了
close notify
SSLの終了を相手に伝える
(終了時の第三者の割り込みを避けるため)