セキュリティについて解説!HTTPS でサイトを保護しよう

WebサイトのURLの先頭に入っている”HTTPS”または”HTTP”の文字。これらはよく似ているように見えますが、セキュリティ上では全く違うものとして機能しています。

今回は、HTTPSについて分かりやすく説明していきます。

HTTPSとは?

HTTPSやHTTPはWebページURLの先頭に記述される文字列であり、Webブラウザに対する命令として機能しています。これらは、サイトの閲覧時に用いる通信方法を表しています。例えば、Webサイトへのアクセスは、WebブラウザがHTTPやHTTPSの命令によってページデータの保管元であるWebサーバーへ通信リクエストを送り、そのレスポンスを受けることで可能になっています。HTTPS/HTTPはWebブラウザに対する命令をしているのです。また、どのような通信手段をリクエストするかは、HTTPとHTTPSのどちらを用いているかどうかで決められています。このように、HTTPSやHTTPは、Webブラウザへ命令を出し、Webサーバーに対しどのような通信リクエストをするか決定するものです。

では、HTTPSとは具体的にどのようなものなのでしょうか?まず、HTTPSの元になっているHTTPから解説していきます。

HTTPとは?

HTTPは、”Hyper Text Transfer Protocol”の略です。直訳すると、「ハイパーテキストの通信プロトコル」となります。具体的に説明していくと、ハイパーテキストとは複数の情報を結び付けるようなシステムのことで、Webを基礎づけている大きな仕組みの一つです。Webサイト中のリンクをクリックすると別のページに移動したり、画像をクリックすると詳細ページを表示したりする機能のことです。また、通信プロトコルとは、通信を行う際の手続き上のルールを意味します。ネット上で他のコンピュータと通信するときの、あらかじめ決まっているプログラム処理などを指します。このように、HTTPとはWeb上の基礎的な仕組みであるハイパーテキストにおける、通信する際の決まった手順を意味することになります。

 HTTPSとは?

上記を踏まえ、HTTPSとはどのようなものなのか説明していきます。

HTTPSとは”Hypertext Transfer Protocol Secure”の略で、「安全なHTTP」ということになります。この「安全」とはセキュリティ上の安全性を意味しており、通信内において情報の暗号化が用いられていることを指します。例えば、サイト上に個人情報を入力する場合、もしその情報を盗み見しようとする人がいたとしても暗号化によってデータの流出が防がれ、安全に入力することができます。暗号化によってサイトを保護することでデータの安全なやり取りが可能になっているのです。このように、HTTPSとは暗号化技術の採用によってサイトを保護することでより安全になったHTTPということです。

TLSとは?

では、HTTPSは具体的にどのようにサイトを保護するのでしょうか?

HTTPSは、TLS(Transport Layer Security)プロトコルによって暗号化されています。TLSプロトコルは暗号化技術として使われているものです。HTTPをTLSで暗号化するとHTTPSになると考えることもできます。具体的には、TLSは主に暗号化・データの整合性・通信認証の3つにおいてサイトを保護する役割を担っています。暗号化によって盗聴行為などによる情報を盗むことが難しくなり、データの整合性を計ることでデータ送信中に改ざんや破壊が行われていないか確認し、通信認証によって利用者がアクセスしようとしたWebサイトのすり替えが行われていないことを保証します。このように、HTTPSを暗号化するためのTLSプロトコルは、主に暗号化・データの整合性・通信認証の3つにおいてサイトの安全性を高めています。

HTTPS を実装するには?

では、実際にHTTPSを実装するためにはどのようなことが必要になるのでしょうか?

セキュリティ証明書を取得する

まず、HTTPSを有効にするためにはセキュリティ証明書が必要になります。セキュリティ証明書とは、特定の手続きを行うことで認証局(CA: Certificate Authority) によって発行されるものです。具体的には、Webサイトアドレスの所有者であることを証明する手続きや鍵の設定などが必要になります。そうすることで、サイバー攻撃の一つである中間者攻撃(通信の盗聴や内容のすり替え)の阻止などが可能になります。また、認証局 は複数あるため、信頼できる認証局から証明書を取得することが大切です。このように、HTTPSを有効にするためにはセキュリティ証明書の発行が必要になります。

加えて、自分に必要な証明書の種類を選ぶ必要があります。セキュリティ証明書は複数種類あるためです。例えば、保護するアドレスが一つだけの際には単一証明書を選び、複数ある場合にはマルチドメイン証明書を選ぶ必要があります。自分の目的に合った証明書の種類を選びましょう。

リダイレクトを使用する

HTTPSを導入したことにより変更されたURLには、リダイレクトの機能を使いましょう。これによりページが別のアドレスに移動したことが分かり、ユーザーが正しいページに移動できます。

 HSTS を導入する

HTTPS サイトにおいてHSTS を導入することで、より安全なサイトを作ることができます。

HSTS (HTTP Strict Transport Security) とは、暗号化されていないページにおいても常にHTTPSによって通信を行うための仕組みです。これにより、安全性の面におけるユーザーのリスクを減らすことができます。具体的には、ユーザーがアドレスバーへの入力などによってhttpのサイトを表示しようとした際でも、自動的にhttpsに置き換わって通信します。また、Googleなどの検索結果においてもHTTPSを利用したURLが表示されるようになります。このように、HTTPSが自動的にリクエストされるHSTSの仕組みを導入することでより安全なサイトにすることができます。

HTTPSを利用する際によくある注意点

証明書の期限が切れている

セキュリティ証明書の期限が切れていると、サイトにアクセスした際に「安全ではありません」などのエラー表示がされてしまいます。最新の証明書を利用するようにしましょう。

証明書に誤った情報を登録している

証明書に記載されている情報が間違っていると、情報の不一致によるエラーが発生してしまいます。正しい情報を登録しましょう。

ユーザーのブラウザがSNIに対応していない

SNI(Server Name Indication)は、TLSの拡張機能です。この機能を使う際にはユーザーのブラウザが対応している必要があります。

TLSプロトコルのバージョンが古い

TLSプロトコルのバージョンが古いと、攻撃を受けやすくなります。そのため、最新のバージョンを使用するようにしましょう。

セキュリティ要素が複数含まれている

HTTPSのページに別のセキュリティ要素を含まないようにしましょう。内容を表示できなくなる可能性があります。例えば、一つのページにHTTPS要素とHTTP要素が両方ある場合があります。HTTPSのページには、HTTPS要素だけが含まれるようにしましょう。

HTTPとHTTPSでコンテンツが違う

HTTPのページとHTTPSのページの内容が同じになるように注意しましょう。

間違ったHTTPステータスコードが返ってくる

HTTPステータスコードは、ブラウザのリクエストに対するサーバーのレスポンスを表します。正しいHTTPステータスコードが返ってくることで、正しくWebサイトに通信していることが確認できます。例えば、アクセスできるページには200が返ってきますが、アクセスできないページには404や410が返ってきます。意図したHTTPステータスコードが返ってきているか確認する必要があります。このように、HTTPステータスコードが正しいか確認することで通信がどのように行われているか確かめることができます。

この記事を書いた人

野口慎平

GDX 事業責任者 兼 プルーヴ株式会社事業開発部シニアマネージャー。
新卒で大手外資系総合コンサルティングファームにビジネス&テクノロジーコンサルタント職として就職。2016年よりプルーヴ株式会社に法人営業職として入社。慶應義塾大学理工学部・同大学院 理工学研究科電子工学修了。
海外SEOとマーケティングオートメーションを軸としたデジタルマーケティングを得意とする。
Salesforce Pardot甲子園2021優秀賞受賞

取得資格:
応用情報技術者、IPAプロジェクトマネージャ、上級ウェブ解析士、IoTコーディネーター取得
Salesforce認定アドミニストレーター