参考サイト:
https://www.nic.ad.jp/ja/basics/terms/tls.html
https://www.geotrust.co.jp/ssl_guideline/ssl_beginners/
https://wa3.i-3-i.info/diff384security.html
TLSとは?
Transport Layer Security。
以前はSSL (Secure Sockets Layer)と呼ばれていましたが、 IETFでRFC2246として標準化される際に、 名称を変更してTLSと呼ばれるようになりました。
ただ、現在でも「SSL/TLS」と呼称されたり、「SSLサーバ証明書」などのように、 「TLS」を省いて呼称されたりすることもあります。
SSL/TLSの技術的な仕組み
1.接続を要求
2.サーバ証明書を送付
サーバ証明書と一緒に、サーバーの公開鍵も送付。
3.証明書を検証
次のようなことを検証。
・証明書が正しい「認証局」(例えばジオトラスト)から発行されているか。
・今通信しているサーバが、証明書に記載されているサーバと一致しているか。
4.サーバー証明書に含まれる公開鍵で共通鍵を暗号化
共通鍵!?
ここで、突然共通鍵が登場するのでビックリするかもしれません。
少なくとも僕はビックリしました。
ここでいう共通鍵とは、クライアント側とサーバー側で通信を行う上でのルールを意味します。
例えば、この暗号方式を使って通信をするよ、とか。
それをクライアント側で定義するわけです。
共通鍵を暗号化
そのルールを、サーバー側にそのまま送ってしまったら、盗聴された場合詰んでしまうので、それを先程入手した公開鍵で暗号化します。
5.暗号化した共通鍵を送付
6.秘密鍵で共通鍵を複合
7.共通鍵で通信
TLS と SSH の違い
TLSの説明を読んだとき、どちらにも共通鍵とか公開鍵とか出てくるもんだから、ごっちゃになってしまいました。
通信経路の確保の方法は全然違うのは分かるのですが、これらを実際に使うってなった時、どっちを使えばいいのかっていうイメージが湧かなかったのです。
結論からいうと、
TLSは、インターネットのやり取りが暗号化されます。
SSHは、他のコンピュータを遠隔操作する際のやり取りが暗号化されます。