SSLについて解りやすく説明
SSLについて、なかなか掴み切れない。覚えても忘れてしまう、などあると思うので、ポイントを押さえて、わかりやすく説明します。関連するデジタル署名や、公開鍵暗号方式、RSA暗号についても簡単に説明します。
SSLとは
SSL(Secure Sockets Layer)はWebサイトと、そのサイトを閲覧しているユーザとの通信を暗号化する仕組みです。ユーザーがショッピングサイトにクレジットカードを入力した際、第三者にこの情報を盗まれないようにするなどの効果があります。
サイト側は通信を暗号化するためSSL証明書を発行します。URLがhttpsで始まっているサイトはSSL通信(SSL証明書)が必要なサイトです。
SSL通信について
SSL通信の流れは以下となります。
1.ブラウザ:SSL通信をリクエストする
2.サーバー:秘密鍵で電子署名された公開鍵とSSL証明書を送付する
3.ブラウザ:電子署名を検証する(「SSL証明書に記載されたドメイン」と「通信先のドメイン」の整合を確認)
4.ブラウザ/サーバー:SSL通信を行うために共通鍵を交換する
5.ブラウザ/サーバー:ブラウザ→サーバーの共通鍵暗号化通信
6.ブラウザ/サーバー:サーバー→ブラウザの共通鍵暗号化通信
SSL通信の効果
1.改ざん防止
ブラウザとサーバーの通信が暗号化されることで、通信途中にデータが改ざんされた場合にそれを発見することができるようになります(銀行口座の番号の改ざんなど)。
2.なりすまし防止
悪意ある第三者が特定のサイトをコピーして成り済ましたとします。しかし、第三者は秘密鍵をもたないため前述のプロセスのように、SSL通信を成立させることができません。
3.第三者機関「認証局」による証明書の保証
サーバーでもクライアントでもない第三者機関が証明書の発行を保証してくれます。
サーバーの証明書の発行元を確認する手順(Cromeの場合)
・F12キーを押下
・Secutityタブを選択し「View certificate」を押下
・証明書を確認できます
4.電子署名による確認
SSL証明書は電子署名を使用します。電子署名によってユーザーは「通信先(サーバー)のドメイン」が確認できます。これと電子署名のドメインを整合することで安全性を確認できます。
デジタル署名とは
SSLに使用されるデジタル署名について説明します。デジタル署名は公開鍵暗号方式を使用して送信者を特定するために利用します。
※デジタル署名は、IPネットワーク通信での暗号化「IPsec」「SSL/TLS」「SSH」などで使用されます。
1.受信者が公開鍵と秘密鍵を生成
2.送信者が秘密鍵を使用し、自分の名前などを暗号化
3.受信者が公開されている公開鍵で複合し、送信者の名前を確認
秘密鍵が1本しかないことを利用した手法です。
公開鍵暗号方式とは
共通鍵暗号方式はRSAとも表記されることがあります。RSAは開発者3名の頭文字です。RSAは公開鍵暗号の代表的なアルゴリズムです。
特徴
・公開鍵と秘密鍵2つの鍵を使用
・公開鍵は誰でも取得できる場所に公開鍵しているが、秘密鍵は1つしかない。
・安全性が高い・公開鍵の管理が容易
・暗号化、復号に時間がかかる
手順
1.受信者が自身の秘密鍵で公開鍵を作成
2.送信者が受信者の公開鍵を受取
3.送信者が公開鍵で暗号化
4.受信者が暗号文を受取り
5.受信者が秘密鍵で暗号文を復号
共通鍵暗号方式とは
SSLとは直接関係ありませんが、公開鍵暗号方式と対をなすものとして、共通鍵暗号方式があるため簡単に説明します。共通鍵暗号方式はAESとも表記されることがあります。
AESとは「Advanced Encryption Standard」の略です。AESは共通鍵暗号の代表的なアルゴリズムです。
手順
1.送信者が共通鍵で暗号化
2.受信者が共通鍵で復号
特徴
・鍵は一つだけを使用
・暗号化、復号ともに同じ鍵を使用
・暗号化、復号にかかる時間が早い
・データ送る人の分だけ鍵が必要
・送信した鍵が第三者に盗まれる危険がある
コメント