HSTSとは何か?WEB通信のセキュリティ強化をするための方法を解説

投稿日:2023/05/31 最終更新日:2023/05/31

HSTSとは何か?WEB通信のセキュリティ強化をするための方法を解説

HSTSとは?

HSTS(HTTP Strict Transport Security)は、ウェブサイトのセキュリティを向上させるためのHTTPヘッダーの一種です。

HSTSを使用することで、ウェブサイトの通信がHTTPS経由で行われることが保証され、中間者攻撃やデータの盗聴といったセキュリティ上のリスクを低減することができます。

かつては知らない間にHTTP経由の通信をしてしまい、情報漏洩が起こってしまったなどの事由がHSTSにより起こりにくくなります。

以下にHSTSの主な特徴と仕組みを分かりやすく解説します。

HSTSの目的

HSTSの主な目的は、ウェブサイトの通信をHTTPSプロトコルに強制することです。

HTTPでは通信内容を特定困難な文字列に置き換えることなく平文で送受信をするため、中間者攻撃の際は攻撃者側が送受信内容を簡単に知ることが出来てしまいます

そのため通信内容を特定困難な文字列に置き換えるHTTPSへ強制的に変換することでウェブサイトのセキュリティを向上させ、攻撃者によるユーザーデータの盗聴や改ざんを防くことが出来ます。

どういう動作をするか?

HSTSは、ウェブサーバーからブラウザに送信されるHTTPレスポンスヘッダーを介して設定されます。

HSTSヘッダーには、ウェブサイトがHTTPSを使用することを要求するためのポリシー情報が含まれています。

ブラウザがHSTSヘッダーを受け取ると、そのウェブサイトに対して次回の通信では自動的にHTTPSを使用するように設定されます。

これにより、ブラウザは将来のリクエストを自動的にHTTPSにリダイレクトし、HTTP経由での通信を防ぎます。

有効期間について

HSTSヘッダーには、ウェブサイトがHSTSを有効にする期間も設定できます。

この期間中、ブラウザは特定のウェブサイトに対してのみHSTSポリシーを適用します。

有効期間が終了すると、ブラウザは再びHTTP経由での通信を許可するようになります。

プリロードリストとは

HSTSの効果をさらに拡大するために、ブラウザはプリロードリストと呼ばれる特別なリストを保持しています。

プリロードリストに掲載されているウェブサイトは、ブラウザの事前設定によりHSTSが有効化されます。

これにより、初めてウェブサイトを訪れるユーザーでもHSTSの恩恵を受けることができます。

HSTSはウェブサイトのセキュリティを向上させ、通信の機密性と完全性を確保するための重要なセキュリティメカニズムです。

どれほど普及しているか?

HSTSは、ウェブサイトのセキュリティ向上を目的とした重要なセキュリティメカニズムですが、その普及状況は進行中です。

具体的な統計データに基づく最新の普及率は提供されていませんが、HSTSの採用は年々増加しており、多くの大手ウェブサイトやオンラインサービスで利用されています。

HSTSの設定方法

HSTSの設定方法は、ウェブサーバーの設定ファイルまたはウェブサーバーの管理パネルを使用して行われます。

以下に、一般的なウェブサーバーでのHSTSの設定方法を示します。

Apacheの場合

Apacheの設定ファイル(通常はhttpd.confまたはapache2.conf)に以下の行を追加します。

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

この設定は、すべてのリクエストに対してHSTSヘッダーを返し、有効期間を1年(31536000秒)に設定し、サブドメインも含めることを指定しています。

Nginxの場合

Nginxの設定ファイル(通常はnginx.confまたはsites-available/default)に以下の行を追加します。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

この設定は、すべてのリクエストに対してHSTSヘッダーを返し、有効期間を1年(31536000秒)に設定し、サブドメインも含めることを指定しています。

IISの場合

IISの管理パネルを使用して、ウェブサイトの「HTTP応答ヘッダー」のセクションで「HTTP Strict Transport Security」を追加します。有効期間やサブドメインの設定も行えます。

まとめ

これらは一般的な例ですが、実際の設定はウェブサーバーのバージョンや環境によって異なる場合があります。

そして、正しく動作させるためにはHSTSの設定を慎重に行う必要があります。

誤った設定はウェブサイトの可用性に影響を与える可能性があるため、設定変更前に注意深く確認しましょう。

重要なのは、HSTSを使用する場合には、サイトが正常にHTTPSで提供されることを確認してから設定を行うことです。

HTTPSが正常に設定されていない場合、HSTSを使用するとユーザーがサイトにアクセスできなくなる可能性がありますので注意をしてください。