SSLの仕組みを学んで常時SSL化したサイトを構築する

SSLとは

SSLはセキュリティを重視した通信プロトコルです。データの盗聴を防ぐ暗号化、なりすましを防ぐ認証、情報の改ざんを防ぐ改ざん検出の機能を提供しています。

どのような仕組みでセキュリティを確保しているのか

前項で説明しましたが、SSLは下記3つの機能を提供しています。

  • 1.データの盗聴を防ぐ暗号化
  • 2.なりすましを防ぐ認証
  • 3.情報の改ざんを防ぐ改ざん検出

次項からこれらの機能を詳しく説明していきます。

1.データの盗聴を防ぐ暗号化

通信はすべて盗聴可能です。通常であれば特に問題はありませんが、ショッピングサイトで送信するクレジットカードの情報や個人情報を盗聴されてしまうと悪用される危険があります。

これをどのようにして盗聴されないようにするのでしょうか。これを実現するのが公開鍵暗号化方式による情報の暗号化です。

公開鍵暗号化方式とは、データを暗号化する公開鍵とデータを復号(解読)する秘密鍵を使って通信する暗号化方式です。公開鍵と秘密鍵はペアになっています。

公開鍵はサーバにデータを送信する全てのユーザーが取得でき、ユーザーはデータをサーバに送信する場合その鍵を使ってデータを送信します。秘密鍵は世界に一つしかなくサーバが保持しています。

サーバは秘密鍵を使ってユーザから送られてきたデータを復号します。このようにして盗聴されない通信を可能にしています。

2.情報の改ざんを防ぐ改ざん検出

荷物を遠くの人に配送する時、荷物が破損したり中身を変えられたりする可能性があります。データも同様にデータを離れたサーバに送る時、データが破損したり、改ざん(書き換えられる)される可能性があります。SSLはこのような改ざんを検知する機能が備わっています。

その機能はデータを送信する際にハッシュ関数を使ってハッシュ値(メッセージダイジェスト値)を生成しデータに添付します。ハッシュ値は固定長(32文字、40文字など)の疑似乱数(人間には理解できない意味不明な文字列)で構成されています。

ハッシュ関数はどんな大きなデータもそのハッシュ値に変換し生成します。生成される前のデータが同じであれば同じハッシュ値が生成されますが、生成される前のデータが1文字でも違うと全く違うハッシュ値が生成されます。

サーバは受け取ったデータをハッシュ関数を使ってハッシュ値を生成します。そして添付されたハッシュ値と生成したハッシュ値を比較し一致すれば改ざんされていないと判断します。このようにしてデータの改ざんを検知します。

特徴をまとめると

  • ハッシュ値は固定長の疑似乱数
  • ハッシュ関数はどんなデータもハッシュ値に変換する
  • ハッシュ関数はデータが1文字でも違う変わると全く違うハッシュ値を生成する

3.なりすましを防ぐ認証

なりすましとは、他人が受信者になりすます行為です。よくあるなりすまし行為に「フィッシング詐欺」があります。いくら情報が暗号化されてもサーバ側が悪意のあるもの(詐欺業者など)であれば情報は悪用されます。

それでは暗号化に意味がありません。これを防ぐために第三者機関が受信者であるサイト運営者の身元を確認し、安全を保障することでそのような行為を防ぐことができます。

サイト運営者はサイトが安全であることを証明するために認証局(第三者機関)に安全かどうか認証してもらう必要があります。そこでサイト運営者はCSR(証明書署名要求)を認証局に提出します。

CSRとは電子署名した身元情報と公開鍵をまとめたもので、電子署名とは本人であることを証明するもので電子的なハンコやサインようなものです。認証局はこのCSRから安全なサイトか審査します。

審査後、合格であればSSLサーバ証明書(電子証明書)を発行しサイト運営者に送信します。サイト運営者はSSLサーバ証明書をサーバにインストールしSSL対応のウェブサイトを公開することができます。

電子署名の仕組み
先ほど説明したように電子署名とはこの文章を書いたものが本人であることを証明するもので電子的なハンコやサインようなものです。その仕組みは公開鍵暗号化方式の手順を逆にして実現しています。暗号化では公開鍵で暗号化し秘密鍵を使って復号しました。電子署名では秘密鍵で暗号化し公開鍵で復号します。CSRを作成する手順としてサイト運営者は公開鍵と秘密鍵のペアを生成します。生成した秘密鍵を使ってCSR(身元情報と公開鍵)生成します。その際電子文書(身元情報など)がハッシュ値に変換され、そのハッシュ値が秘密鍵で暗号化されます。この暗号化が電子署名にあたります。認証局は電子署名されたCSRを公開鍵で復号し、ハッシュ値を比較、一致すればサイト運営者が書いた電子文章であることを認めます。

このようにSSLはさまざまなアルゴリズムのパッケージで盗聴されない安全な通信を確保しています。

常時SSL化の流れ

Googleではユーザーの個人情報を保護の観点から常時SSL化を支持しています。そして常時SSLがGoogleの検索順位を優遇する一つの要素であり、一般的に常時SSL化はSEO対策の一つとして認識されています。このような流れから現在常時SSLが急速に広まってきました。

個人サイトでのSSL化

SSL化するためには認証局の審査に合格する必要があり、認証にはお金がかかりました。信用性の高い認証機関であれば価格も高額になり個人ではなかなか取得できませんでした。しかし、現在では低価格のものや無料できるものも存在し、個人でも気軽にSSL化できる環境が整いつつあります。

無料SSLでサイト構築

今回はSSLの仕組みを学びましたが、次回では実際に無料でできるSSLを使って常時SSL化したサイトを構築していきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする