【セキュリティ】証明書とSSL/TLSの仕組みについて分かりやすく解説します




この記事では、セキュリティを考える上で重要な「証明書」と「SSL/TLS」について解説します。これらの仕組みを理解する上で、公開鍵暗号を理解していることが必要になります。不安な方は下記記事で確認いただければと思います。

【セキュリティ】共通鍵暗号・公開鍵暗号の仕組みについて解説します

2019年10月29日

証明書とはなにか

証明書とは「送信者の身元を証明するファイル」のことです。

他の記事で紹介した「署名」の技術では、第三者証明(どこから送られたか)を行うことが出来ましたが、そもそも送ってきた相手がなりすましているケースも考えられます。

軽くおさらいをすると「署名」では、送信者側が秘密鍵で平文のハッシュ値を暗号化し、受信者側が平文から計算したハッシュ値と、送られてきた暗号化されたハッシュ値を公開鍵で復号して比較することで改ざんや第三者証明を行っていました。

しかし、そもそも送信者側が名乗っている「Aさん」が本当にAさんであるかどうかは確認ができないこともあります。例えば、銀行のウェブサイトになりすまして、個人情報を抜き取るようなサイトも存在しています。

そこで、「情報の送信者が誰であるか」ということを証明できる仕組みが必要になります。

公開鍵基盤(PKI)

公開鍵基盤の仕組み

そこで、第三者に身元を証明してもらう仕組みである「公開鍵基盤(PKI)」が使われます。「証明書」とはこの基盤の中で、第三者機関である「認証局(CA: Certificate Authority)」に発行してもらうものです。

 

公開鍵基盤(PKI)の仕組み

①送信者(ウェブサイト運営者など)は認証局に対して、公開鍵の送付と申請を行う

②認証局で送信者の身元確認が出来た場合、証明書を送信者に送る

③送信者は受信者にデータを送る際、まず証明書を送信する

④受信者は受け取った証明書が本物かどうか認証局に確認をする

⑤認証局で本物だと確認できたら、登録されている送信者の公開鍵を送る

以上の流れによって、受信者は送信者がなりすましをしていないという事実と、送信者の公開鍵を安全に手に入れることができます。

さて、⑤まで終了したときの状況を確認してみます。

  • 送信者は秘密鍵と公開鍵を手元に持っている
  • 受信者は送信者の公開鍵を手元に持っている

という状況です。ここからSSL/TLSへと接続します。

SSL/TLS

SSLの仕組み

公開鍵基盤の利用によって、受信者は送信者の身元を確認するとともに、送信者の公開鍵を手元に取得することが出来ました。つまり、上のハイブリッド暗号の図でいうと①が完了した状態になります。

ここからハイブリッド暗号通信を行うことによって、機密性を保ったまま通信できます。また、共通鍵(セッションキー)によるメッセージ認証コードを利用した改ざん検出も行っています。

通信の手順

①受信者は共通鍵(セッションキー)を作成

②送信者の公開鍵で共通鍵を暗号化

③暗号化された共通鍵を送信者に送付

④秘密鍵で共通鍵に復号する

これ以降は、共通鍵暗号で通信を行うことで、セキュアにやりとりができます。

SSL/TLSの仕組みは、他のプロトコルと組み合わせて利用することが出来ます。一番有名なのはHTTPとの組み合わせである「HTTPS」でしょう。URLが「https://」からはじまるものは、このSSL/TSL通信を行っています。

その他にも、電子メールのプロトコルである「SMTP」や「POP」と組み合わせた「SMTPS」や「POPS」なども利用されています。

さいごに

ウェブブラウザのChromeでは、SSL/TLSを使用していない「http://」から始まるURLのサイトにアクセスするとき、警告の画面が出るようになりました。

企業はもちろん、個人でサイトを運営する場合でもセキュリティについて考慮しなければいけない時代になっていることをひしひしと感じます。

今後量子コンピューターが実用化されたときに、どうなるかは分かりませんが、少なくとも暗号化技術やSSL/TSLは当たり前のように使われているので、これらが有用性ゼロになることは無いかと思います。

この記事や他のページを通して、少しでもイメージをつかんでいただけたのなら幸いです。