5分でわかるSSL通信 SHA-1、SHA-2の違いとは?

ユーザーが安全にWebサイトを利用できるよう、経路上での盗聴を防ぐ“暗号化”とデータ通信途中の“改ざん検知”を同時に実現するために使用されている技術が“SSL通信”です。ここでは、それがどのような仕組みによって実現されているか。そして、SHA-1SHA-2といった技術がどういったものかについて知っていきましょう。

そもそも、SSLってなんだろう?

image1

SSL(Secure Sockets Layer)とは、インターネット上で通信を暗号化する技術のこと。インターネット上でやり取りされている個人情報(名前、住所、電話番号、クレジットカード番号など)を安全に送受信するための通信プロトコルです。

普段私たちがインターネットを利用する際には、Webブラウザを利用してWebサイトを閲覧します。その時、主に使っているのはHTTPというプロトコルです。多くのWebサイトのURLは「http://」から始まりますが、これはHTTPを使ってそのWebサイト(サーバ)にアクセスすることを表しているのです。しかし、このHTTPの通信は情報を保護することを全く考慮せずに作られた仕様であるため、ネットワークの経路上でちょっと悪さをすれば、どんなやり取りをしているかを誰でも盗み見することができます。

それを防ぐために作られたのがSSLという仕組みです。SSLが利用されているページは、URLの「http://」の部分が「https://」となっています。SSLを使用したWebサイトには、“電子証明書”と呼ばれるサイトの身分証明書のようなものが発行されており、それを使用することで、そのサイトが「信頼できるものである」と証明します。電子証明書は、VerisignSymantecのような認証局によって発行されています。

どのような仕組みでSSL通信を行うのか?

image2

電子証明書には、情報を暗号化するのに必要な“公開鍵”が含まれています。この電子証明書をWebウェブサーバーにインストールすることにより、SSL通信が利用できるようになるのです。

ユーザーがWebブラウザからWebサイトにSSLを使用してアクセスすると、Webサーバからは公開鍵を付与したSSLサーバ証明書がWebブラウザに送付されます。Webブラウザでは、あらかじめインストールされたルート証明書(※)でSSLサーバ証明書を検証し、信頼できる認証局から発行された証明書かどうかをチェックするのです。

そのサーバ証明書が正規のものであるかをチェックする際には、ハッシュ関数が使用されます。具体的には、サーバ証明書に付与された署名(サーバ証明書をハッシュ化し、認証局の公開鍵で暗号化したもの)を復号した内容と、Webサーバから受信したSSLサーバ証明書をハッシュ化した値を比較するのです。この値が一致すれば、信頼のおける認証局から署名を受けた正規のWebサイトであることがわかります。

そして、このハッシュ化を行う際に用いられる技術が、SHA-1、SHA-2と呼ばれるハッシュ化アルゴリズムなのです。それぞれどのようなものか、順に見ていきましょう。

注釈
※…認証局が発行するデジタル証明書。Webサーバに置かれている証明書との突合を行うため、暗号通信を利用するWebブラウザにはこの証明書があらかじめ組みこまれています。

 

次のページ:
SHA-1、SHA-2のアルゴリズム

 

この記事を書いた人:ぞの

img_zono

Webアプリケーションエンジニアとして様々な現場に参画し、多種多様な言語を習得。エンジニアとしての強みは汎用性の高さと、メンバーとコミュニケーションを取り合いながら円滑に案件を進められること。趣味は音楽と将棋。Ruby愛好家。Twitter : @zono1009

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。