HTTPS(Hyper Text Transfer Protocol over SSL)とは、HTTP(Hyper Text Transfer Protocol)による通信を安全に行うために、HTTPをSSL(Secure Sockets Layer)/TLS(Transport Layer Security)上で行うプロトコルである。
HTTPS(Hyper Text Transfer Protocol over SSL)とは、HTTP(Hyper Text Transfer Protocol)による通信を安全に行うために、HTTPをSSL(Secure Sockets Layer)/TLS(Transport Layer Security)上で行うプロトコルである。
HTTPSは、SSL/TLSを用いてHTTPメッセージを認証、暗号化することで、経路上での通信内容が盗聴や改ざん、なりすましに遭うことを防ぐ。HTTPSで通信されているかどうかはブラウザのURLバーで鍵マークの表示や、URIスキームが「https://」になっていることで見分けることができる。
HTTPSに対するよくある誤解として、「HTTPSを使用しているWebサイトは安全である」というものと、「HTTPSは常に公開鍵暗号を用いて通信を行っている」というものがある。
HTTPSでは、サーバとクライアント間を「トランスポート」レイヤー上での通信の暗号化を行い、IP(Internet Protocol)やポート番号などのトランスポートレイヤーより下のレイヤーでの暗号化や通信の秘匿は行わない。このため、通信が盗聴されると「どこにHTTPSを用いて通信を行っているか」を読み取られてしまう。また、経路上での通信が困難であっても、Webサイト上に脆弱(ぜいじゃく)性があったり、管理が不足したりしている場合は、重要な情報が流出することもある。HTTPSが行うのは、サーバの認証と、トランスポートレイヤー上での暗号化のみであることを意識して使用する必要がある。
またHTTPSでは、常に公開鍵で暗号化されているわけではなく、認証を行った後に、共通鍵を生成し、以降は共通鍵を用いて暗号化を行っている。これは、全ての通信を、公開鍵を用いて暗号で行うと、コストが大きくなり過ぎるためである。
一部のブラウザでは、デバッグなどに用いるためにこの通信に用いた公開鍵を保存する機能もあり、キャプチャーしたパケットからこの公開鍵を用いて通信内容を復号することもできる。
■POP before SMTP
■SSH(Secure Shell)
【2004/1/1】初版公開。
【2019/4/15】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。
Copyright © ITmedia, Inc. All Rights Reserved.