はじめに

SSL/TLSは安全な通信を行うために欠かせない技術です。
本記事の内容が少しでも読者のお役に立てれば幸いです。
SSL/TLSとは?
SSL/TLS(Secure Sockets Layer/Transport Layer Security)はデータの暗号化により通信に対するセキュリティリスクからデータを守るための暗号化プロトコルです。
顧客情報、クレジットカード情報など重要なデータを暗号化することで、安全な通信を行うことができます。
あくまで、通信に対する対策であり、PCそのもののセキュリティ対策にはならないことに留意してください。
※SSLとTLSの違いについて
SSLのバージョンアップの過程で、名称変更されたものがTLSです。
1996年にリリースされたSSL3.0、1999年にリリースされたTLS1.0を境に名称が変わっています。以下のサイトに詳しく書かれていますので興味がある方は参照ください。
セキュリティリスク
ここで、SSL/TLSで対策できるセキュリティリスクにはどのようなものがあるか見ていきましょう。
対策に記載されている「暗号化」、「MAC」、「電子署名」はいずれもSSL/TLSの機能です。詳しい内容は後述します。
種類 | 内容 | 対策 |
---|---|---|
盗聴 | 送る想定のない相手にデータを盗まれること。 | 暗号化 |
改ざん | 通信データを改ざん、破壊すること。 | MAC |
なりすまし | 正規の通信相手のふりをして、攻撃者が通信に介入すること。 | 電子署名 |
SSL/TLSの機能
暗号化
送信者、受信者の間でルール(アルゴリズム)を取り決め、元のデータを不可読な状態に変換して通信を行います。
これにより通信路上では「送信者、受信者以外は読めないデータ」となります。(盗聴対策)
暗号化の方式には大きく「共通鍵暗号方式」と「公開鍵暗号方式」があります。
また、これらを組み合わせた「ハイブリット暗号方式」があります。
これらについては、仕組みが複雑でこれだけで1記事かけるボリュームがあるため本記事では概要程度に留めます。
- 共通鍵暗号方式
送信者と受信者が同じ鍵(秘密鍵)を共有してデータを暗号化、復号化する方式です。共通鍵暗号方式は「高速な暗号化、通信」がメリットですが、「通信する相手の数だけ鍵が必要」、「鍵の配送時に盗聴される可能性がある」などの課題があります。
- 公開鍵暗号方式
送信者と受信者で異なる2つの鍵(公開鍵と秘密鍵)を使用してデータを暗号化、復号化します。公開鍵は誰にでも公開され、秘密鍵は所有者(受信者)のみが保持する鍵となります。データを暗号化するためには、公開鍵を使用し、復号化するためには対応する秘密鍵を使用します。公開鍵暗号方式のメリットは「鍵の配送が不要なため盗聴のリスクがない」、「管理する鍵の数が少なくて済む」ことが挙げられます。一方で「別々の鍵を使用するため通信に時間がかかること」が課題です。
- ハイブリット暗号方式
公開鍵暗号方式と共通鍵暗号方式の双方のメリットを取り入れた暗号化方式です。鍵の交換は公開鍵暗号方式で行い(盗聴対策)、メッセージのやり取り自体は共通鍵暗号方式で行います(通信速度対策)。
MAC
MACは、メッセージの完全性と認証を確保するために使用されるハッシュ関数です。
送信者は関数(MAC関数)を用いて、共通鍵と送信メッセージを計算した値(MAC値)を送信します。受信者は受け取ったデータから送信者と同じMAC関数を用いて計算を行います。算出された値と、送信者から受け取ったMAC値が等しければ改ざんされていないとします。(改ざん対策)
電子署名
特定の者のみが保有する暗号化鍵(秘密鍵)を使用してデータを暗号化することで、情報の送信やを特定します。(なりすまし対策)
SSL/TLS通信の種類
SSL/TLSは通常、他のプロトコルと組み合わせて使用する技術です。
具体的にはHTTPプロトコルをSSL/TLSと組み合わせることでHTTPSプロトコルとなります。
プロトコル | 内容 |
---|---|
HTTPS(Hypertext Transfer Protocol Secure) | ブラウザとサーバー間の通信をSSL/TLSを使用して安全に行うプロトコル。TCPポートは443。 |
SMTPS(Simple Mail Transfer Protocol Secure | メールクライアントとメールサーバー間の電子メールの送受信をSSL/TLSを使用して安全に行うためのプロトコル。TCPポートは465。 |
FTPS(File Transfer Protocol Secure) | ファイルのアップロードやダウンロードをSSL/TLSを使用して安全に行うためのプロトコル。 TCPポートは990。 |
LDAPS(Lightweight Directory Access Protocol Secure) | ディレクトリサービスへの接続をSSL/TLSを使用して安全に行うためのプロトコル。 TCPポートは636。 |
終わりに
本記事はここまでとなります。
最後にSSL/TLSを学ぶのに役立つ教材をご紹介します。気になった方は是非一度、覗いてみてください!

- SSLをはじめよう ~「なんとなく」から「ちゃんとわかる!」
ご覧いただきありがとうございました。ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミングについて定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです!🐢
コメント