インターネットを通じて使っているサービスの安全性を高めようと,HTTPSで通信できるようにしようと頑張っているのですが,どうにもうまくいかず,いったいどこに問題があるのかと考えていたところ,そもそもHTTPSがどのような仕組みで動いているのか正確に理解していなかったということに気付きました。
そこで,HTTPSがどのように動作しているのか,詳しく見ていきたいと思います。

HTTPSとは何か?

そもそも,HTTPSとは何なのでしょうか。
Wikipediaによれば,厳密には一つの独立したプロトコルではなく,SSL/TLS(本当はTransport Layer Securityというプロトコルらしいが,元となったSecure Sockets Layerの名称で呼ばれることが多いらしく,SSL/TLSと記述しているようである。二つのプロトコルを組み合わせているように思ってしまうが,そのようなものではない)の上でHTTPを使った通信を行うもののようです(SSL/TLSはOSI参照モデルにいう第6層=プレゼンテーション層にあり,HTTPは第7層=アプリケーション層になる)。
そのため,接続時の問題を把握するためにHTTPSを理解する,ということは,SSL/TLSを理解する,ということに等しいということになります。

TLS 1.2

TLSは2018年8月10日にバージョン1.3が標準化されたそうです(IETF、「TLS 1.3」を正式リリース ~「Firefox」「Google Chrome」は最終草案に対応)。前バージョンの1.2は4年近く使われており,1.3では前バージョンから多数の変更が加えられている(らしい)ので,まずは1.2の動作から調べていき,その後,1.2と比較する形で1.3の動作を調べていこうと思います。