SSLとは
SSL(secure sockets layer)とは
SSLはインターネット上でデータを安全にやりとりするプロトコル。
接続相手のサーバーが信頼できるかどうかを確かめたうえで,データを暗号化してやりとりする。
SSLを使うと何ができるか
「データの暗号化」と「通信相手の認証」確認ができる。
データ暗号化とは
インターネットでやりとりするデータを暗号化し,万一データが見られても内容がわからないようにする。
相手認証の機能とは
通信相手が信頼のおけるサーバーかどうかを確かめる機能。
クライアントがサーバーから「サーバー証明書」と呼ばれる情報を受け取り,そのサーバー証明書を検証することで,通信相手のサーバーが信頼できるかどうかを判断する。
暗号の仕組み
暗号化の流れ
- 送信側の流れ
アプリケーション(webブラウザ)-->SSL(暗号化)-->TCP(TCPはTCPパケットにSSLのデータであることを示す443番port宛と明記)-->IP-->イーサネット-->回線へ - 受信側の流れ
回線-->イーサネット-->IP-->TCP-->SSL(暗号化されたデータを復号)-->アプリケーション(webサーバソフト)へ
暗号方式
「共通鍵暗号」と「公開鍵暗号」という二つの暗号方式を組み合わせて利用している。
相手認証の仕組み
クライアントはサーバーからの「サーバー証明書」を受け取り,証明書を検証することで,信頼できるかどうかを判断する。サーバー証明書は,サーバーの管理者が,「認証局」と呼ばれる組織に申請して発行してもらう。そしてサーバ証明書には認証局の署名(認証局の秘密鍵で暗号化したデータ)を施した認証局の証明書も送付される。その際、一番上位に位置する「ルート認証局の証明書が必ず送付される。
クライアントは「ルート認証局が信頼できるか」確認する。
確認の方法は、以下。
パソコンにはあらかじめ,信頼できるルート認証局 の証明書(自己証明書)が複数インストールされている (*1) 。クライアントは,そのあらかじめ入っている証明書と,サーバーから受信した証明書が一致するかを確認し,一致したら受信した証明書は信頼できると判断する。
*1 ルート認証局の証明書
ルート認証局が自分自身に対して発行した証明書のことをルート証明書という。Webブラウザやメールクライアントには監査基準(WebTrust等)を満たしたルート証明書が予め搭載されている。
証明書は誰でも発行することができるが信頼性を持たせるため信頼のできる第三者機関から発行された証明書を使用することが必要となる。
信頼性のない(Webブラウザにプレインストールされていない)ルート証明書の場合、Webブラウザからセキュリティ警告が発せられる。
参考サイト
図解で学ぶネットワークの基礎:SSL編 - イントロ:Webアクセスに欠かせない,情報の秘密を守るしくみ:ITpro
ルート認証局の信頼性 | SSL・電子証明書ならGMOグローバルサイン
https://www.jp.websecurity.symantec.com/welcome/pdf/wp_sslandroot-certificate.pdf