HTTPSとは

HTTPSは、ウェブブラウザとウェブサーバー間の通信を暗号化し、盗聴や改ざんを防ぐためのセキュリティプロトコルであり、HTTP(HyperText Transfer Protocol)にSSL/TLS(Secure Sockets Layer / Transport Layer Security)を組み合わせた通信方式のことです。

HTTPSの概要とセキュリティの必要性

HTTPS(Hypertext Transfer Protocol Secure)は、インターネット上でのデータ通信の機密性完全性、および認証を確保するために不可欠なプロトコルです。

従来のHTTP通信は平文(暗号化されていない状態)で行われるため、通信経路の途中で悪意のある第三者によってデータが盗聴されたり、内容が改ざんされたりするリスクがありました。特に、ログイン情報、クレジットカード番号、個人情報といった機密性の高いデータを扱う際に、これは深刻な脅威となります。

HTTPSは、このHTTP通信を、SSL/TLSという暗号化プロトコルの層を通して行うことで、安全性を確立します。現在、ウェブサイトの多くがセキュリティ強化と信頼性確保のため、HTTPSへの移行を完了しており、主要なウェブブラウザはHTTPS接続ではないサイトに対して警告を表示するようになっています。

主な目的は、クライアント(ブラウザ)とサーバー間の通信経路を保護し、ユーザーが安心して機密情報を送受信できる環境を提供することです。

HTTPSの技術的仕組みと主要な機能

HTTPS通信は、クライアントとサーバーが接続を確立する際に、SSL/TLSプロトコルによって以下のセキュリティ機能が実装されます。

1. 暗号化(機密性の確保)

SSL/TLSは、共通鍵暗号方式公開鍵暗号方式を組み合わせて使用します。

  • 公開鍵暗号方式: 最初に、クライアントとサーバーが共通鍵を安全に共有するために用いられます。これにより、共通鍵自体が盗聴されるリスクを排除します。
  • 共通鍵暗号方式: 通信が開始された後、大量のデータ通信を高速に行うために使用されます。共通鍵を用いて通信データを暗号化・復号化することで、もし第三者がデータを傍受しても、内容を解読できなくなります。

2. 認証(信頼性の確保)

サーバーは、SSL/TLSサーバー証明書をクライアントに提示することで、自身の正当性を証明します。

  • デジタル証明書: この証明書は、信頼できる第三者機関である認証局(CA)によって発行され、サーバーの公開鍵、ドメイン名、証明書の発行者などの情報が含まれています。
  • 認証プロセス: クライアント(ブラウザ)は、受け取った証明書をCAの公開鍵で検証し、その証明書が改ざんされていないこと、および接続先が主張するドメインの所有者であることを確認します。これにより、ユーザーはフィッシングサイトなどの偽サイトではないことを確認できます。

3. 完全性(改ざんの防止)

SSL/TLSは、送信されたデータが通信途中で改ざんされていないことを保証するために、メッセージ認証コード(MAC)を使用します。

  • ハッシュ値の付与: 送信データに一意のハッシュ値(ダイジェスト)を付与し、受信側で同じハッシュ値を計算して比較します。
  • 検証: 2つのハッシュ値が一致しない場合、データが改ざんされたと判断し、その通信を破棄します。

HTTPS通信の確立プロセス(TLSハンドシェイク)

ブラウザがHTTPSサイトにアクセスする際、接続確立のために以下のようなTLSハンドシェイクと呼ばれる手順が実行されます。

  1. クライアントハロー: クライアントが、自身がサポートするTLSのバージョン、暗号スイート(使用可能な暗号化アルゴリズムの組み合わせ)などをサーバーに送信します。
  2. サーバーハローと証明書: サーバーが最適な暗号スイートを選択し、自身のSSL/TLS証明書をクライアントに送信します。
  3. 鍵交換: クライアントは証明書を検証した後、共通鍵暗号に必要な秘密情報を生成し、サーバーの公開鍵で暗号化して送信します。
  4. 共通鍵の生成と暗号化通信開始: サーバーとクライアントの両方が共通鍵を生成し、以降のデータ通信はこの共通鍵を用いた暗号化通信に切り替わります。

関連用語

暗号 | 今更聞けないIT用語集
ハッシュ値 | 今更聞けないIT用語集
ソフトウェアエンジニアリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。