TLSの仕組み

TLSについてきちんとわかっていなかったため簡単にですがまとめました。

TLS(Transport Layer Security)とはTCP/IPを使った通信で、セキュアなチャンネルを利用できるようにする仕組みです。同じような意味でSSL(Secure Sockets Layer)と言うものを聞くことがりますが、SSLはTLSの前世代の規格となっており、TLSはSSLを元に作られています。(下位互換性はありませんが)SSLという言葉の方が浸透しているためTLSではなく、SSLサーバ証明書などのようにTLSを省いて呼称されたりすることもあります。SSL/TLSを利用するためにはサーバにSSLサーバ証明書を導入します。

TLSの役割としては主に3つあります。
- ウェブサイト所有者の確認
- 通信データの暗号化
- 改ざんの検出

TLSではこの役割を果たすためにSSLサーバ証明書というものがあります。SSLサーバ証明書とは信頼のおける第三者機関=認証局が発行する電子的な証明書となっており、通信のデータ暗号化をするための公開鍵というものを含んでいます。

ではTLSの役割について説明していきます。

- ウェブサイト所有者の確認
ウェブサイトの運営者が証明書に表示されているドメインの所有者であることを証明し、なりすましなどを防ぎます。これによりサイト訪問者が「情報の送信先」を確認し、重要な情報を安心して送ることができます。サーバとクライアントがSSL/TLSによる通信を始めるときは、まずサーバがSSLサーバ証明書をクライアントに送信します。これによりクライアントは証明書が正しい認証局から発行されているか、今通信しているサーバが証明書に記載されているサーバと一致しているか、を確認します。

- 通信データの暗号化
上記のウェブサイト所有者の確認の際に送られる証明書には公開鍵というものが含まれています。クライアントでは公開鍵を用いて共通鍵を暗号化して、サーバに送信します。サーバでは公開鍵とペアとなる秘密鍵を用いて共通鍵を復号します。これは共通鍵暗号方式と呼ばれる暗号・復号の仕組みでこれ以降は共通鍵を用いて安全にデータのやりとりを行うことができます。

- 改ざんの検出
改ざんの検出はハッシュ関数を用いて行っています。クライアントではデータを送る際にハッシュ関数を用いてハッシュ値を求めます。これをデータと合わせて暗号化を行い送信します。サーバでは復号を行いデータとハッシュ値を取り出し、自身でデータのハッシュ値を計算して送られてきているハッシュ値と比較を行いデータが改ざんされていないかを検証します。

この記事が気に入ったらサポートをしてみませんか?