この季節になりますとクラウド出面管理DMENの管理サーバーに仕込んでいるSSL証明書を更新しなければなりません。
年に一回の仕事なので、思い出さなければならないことが多く、意外に厄介なので、このサブサイトに備忘としてサーバーのSSL化の手順をアップしておきます。
その前にSSLとはなにか、ということについて基本情報を整理しておきます。
1,SSLとは
SSLとはSecure Socked Layerの略でインターネット上でデータを暗号化して送受信する仕組み(プロトコル)です。
暗号化は言うまでもなく送信者(クライアント)、受信者(サーバー)間の通信の秘匿性を確保するために行うわけですが、この暗号化の手順について当事者同士で承認をとる必要があります。
この承認手順をデジタル認証といいますが、このデジタル認証を最初から実装しているのがTLS(Transport Layer Security)でSSLの後継規格になります。
なので、デジタル認証全体のなかでSSLという言葉が随所で使われています。
SSL証明書という用語もその一つです。
2,SSLと鍵交換
SSLの暗号化の基礎になっているのが暗号化です。
送信データを暗号化するためには暗号アルゴリズムでデータを改変する必要があります。
この暗号アルゴリズムをサポートしているデータファイルを鍵といいます。
暗号化されたデータをもとに戻す作業を復号といいますが、この復号の際にも鍵が用いられます
この鍵を送信側、受信側双方が持ち送信側がデータの暗号化、受信側が復号を行う。
この手順を鍵交換といいます。
鍵交換には共通鍵方式と、公開鍵方式があります。
共通鍵方式は送信側、受信側が同じ鍵を持って暗号化と復号を行う方式です。
シンプルで手軽な鍵交換方式ではありますが、鍵を持っているコンピュータであればだれでもデータの復号ができるというリスクを持っています。
シンプルさゆえの処理速度の速さなどから無線LANの暗号方式に利用されています。
3,公開鍵方式
公開鍵方式は受信側が秘密鍵を持ち、送信側が公開鍵を持つという鍵交換方式です。
送信(クライアント)側が公開鍵で暗号化します。 鍵は公開されているので、 誰でも送信ができます。
暗号化されたデータは、 公開鍵では復号できません。
これを復号化できるのは秘密鍵だけです。
誰でも暗号化して送信できるわけですが、 復号化して読むことができるのは秘密鍵を持っている正規の受信者(サーバー)だけということになります。
ところ変わって、サーバー側がデータを送信(返信)する場合は秘密鍵で暗号化するわけですが、これは公開鍵でないと復号化できない仕組みです。
公開鍵は誰でも入手できるので誰でも読めるといえば読めるが、 そのデータが誰の秘密鍵で暗号化されているかを知る人以外は現実的には返信データの複合は無理です。
この秘密鍵は一個しかなく、 それを持っているのはサーバー本人だけということが非常に重要です。
サーバー本人しか持っていない秘密鍵で暗号化された文書は本人でないと作れない。 したがってこれは、 「署名」 と同じ効果があります。
ネットでやりとりされるデータにはサインもできないしハンコも押せないが、 公開鍵暗号を使えばそのサーバーが作成したデータであることを結果的に証明することができるわけです。
4,デジタル証明書とデジタル署名
ただし、この公開鍵方式にも弱点があります。
秘密鍵を持つサーバーが当の本人であることは署名によって担保できるのですが、そのサーバーがどこまで信用できるのかが担保しきれないのです。
そこで利用されているのがデジタル証明書によるデジタル署名です。
これは一言でいうならばサーバー本人がデジタル空間でお墨付きをもらったうえで公開鍵を発行する、という手順です。
お墨付きを与えるのが認証局といわれる組織や企業です。
例)シマンテック(Symantec)※旧ベリサイン、サイバートラスト(cybertrust)、日本レジストリサービス 等
概要が以下のイラストになります
① Webサーバ側が公開鍵方式の手順で公開鍵と秘密鍵を生成します。
② 公開鍵が正しいことを証明するために、公開鍵と各種証明書を認証局に送信して、デジタル証明書(=SSL証明書)の発行を依頼します。
③ 認証局は公開鍵や所有者情報と、これらをハッシュ値にした上でWebサーバ側に秘密鍵で暗号化したデジタル署名つきのデジタル証明書を発行します。デジタル証明書を受け取ったWebサーバは、デジタル証明書をインストールします。
④ クライアントPCからWebサーバに対して接続要求を行います。
⑤ 接続要求を行ったクライアントPCに対して、Webサーバはデジタル証明書をクライアントPCに送付する。
⑥ クライアントPCは、受信したデジタル証明書が認証局から発行されたものかどうかを確認するために、認証局の公開鍵を使用して、秘密鍵で暗号化されたデジタル署名部分の復号を行う。そして、同じハッシュ結果なら正当な公開鍵であると判断します。
※ 認証局の公開鍵を含んだデジタル証明書は、代表的な認証局のデジタル証明書の場合、クライアントPCのブラウザにインストールされている。インストールされていない場合、ブラウザで警告表示される
いうまでもなく認証局はフィッシングサイトなど悪意のあるサーバーや公序良俗に反するサーバーに対してお墨付き(認証)を与えません。
この手順により、クライアントは通信相手のサーバーを信用して通信を行うことができるわけです。
ここまで触れてきた、鍵や証明書の実体はコンピュータのデータファイルです。
サ-バー側の要所要所に実装してこの鍵交換方式を実現することになります。 実際の導入方法について次回のブログで説明します。
Comments