【文献】
瀬戸 洋一,エンジニアのための情報セキュリティ入門 第11回 認証技術,月刊自動認識,日本,日本工業出版株式会社,2012年 5月10日,第25巻 第6号,p.67−72
(58)【調査した分野】(Int.Cl.,DB名)
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成されるSSL通信システムで実行される通信方法であって、
前記クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取る過程、
前記サーバが、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取る過程、
前記クライアントが、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取る過程、
前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、SSL通信方法。
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記クライアントで実行されるSSL通信方法であって、
前記クライアントが実行する、
その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取る過程、
前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、SSL通信方法。
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記サーバで実行されるSSL通信方法であって、
前記サーバが実行する、
前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取り、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、
前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、SSL通信方法。
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第2暗号化復号化手段と、を有しているものと、
の組合せにより、SSL暗号化通信システムを構成するための、前記ネットワークに接続可能とされたクライアントであって、
前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、
共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、
前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、
前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、
共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第2暗号化復号化手段と、
を備えており、
前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、前記サーバ解生成手段で前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取るようになっており、
前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記クライアント認証手段が前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段は、前記クライアントが持つ共通鍵を暗号化するようになっているとともに、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記サーバとの間で共通鍵方式の暗号化通信を行うようになっている、
クライアント。
前記サーバは、前記サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第1暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で2つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第1暗号化復号化手段により、前記サーバ証明書及び前記SSL証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記SSL証明書を、前記クライアントに送信するようになっているとともに、
前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第1暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第1暗号化復号化手段を備えており、
前記クライアント解生成手段は、前記クライアントが暗号化された前記サーバ証明書及び前記SSL証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記SSL証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で2つ目或いはそれ以降の解を生成するようになっているとともに、
前記クライアント第1暗号化復号化手段は、前記クライアント解生成手段が生成した前記2つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記SSL証明書を復号化するようになっている、
請求項4記載のクライアント。
前記サーバは、前記サーバ第1暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっており、
前記クライアント第1暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段は、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっている、
請求項5記載のクライアント。
前記サーバ第1暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっており、
前記クライアントでは、前記クライアント第1暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段が、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっている、
請求項8記載のサーバ。
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記クライアントとして、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータに、
その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取る過程、
前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、
を実行させるためのコンピュータプログラム。
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記サーバとして、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータに、
前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取り、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、
前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を実行させるためのコンピュータプログラム。
前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、クライアントを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、
前記アプリケーションで生成された平文を暗号化してから前記サーバに送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記サーバから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
請求項10記載のコンピュータプログラム。
前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、サーバを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、
前記アプリケーションで生成された平文を暗号化してから前記クライアントに送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記クライアントから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
請求項11記載のコンピュータプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上の説明によればSSL通信には、悪意の第三者が付け入る隙が無いようにも思われる。しかしながら、実際にはSSL通信でも悪意の第三者による盗聴が発生しており、例えばインターネットバンキングではユーザの口座の金銭がそのユーザの預かり知らない第三者の口座に勝手に送金される等の被害が頻繁に生じている。
そのようなことが生じる原因は複数あるが、例えば、クライアントにある上述したSSL証明書が例えばハッキングや、コンピュータウィルスを用いる等の手法によって改竄されることがその一因となる。また、ルート証明書には通常有効期限があるにもかかわらず、多くのユーザは自らのクライアントにおいてルート証明書の更新をしていない。そうすると、クライアント内にあるルート証明書は改竄されたのと同様の状態となることがあり得る。サーバの管理者は、サーバ証明書、SSL証明書に対する第三者からの攻撃に十分に備えるだけの技術を備えていることが多く、また、サーバの管理者はルート証明書の更新を正しく行うのが通常なので、上述の如き問題は主にクライアント側の問題となる。
クライアントにおけるルート証明書が改竄された場合には、悪意のある第三者は、改竄されたSSL証明書によって自らの正当性がクライアントにおいて認証されるような偽のサーバ証明書を自ら作り、ユーザが正当なサーバへとSSL通信の要求を行ったときに、正当なサーバになりすまして、クライアントと正当なサーバとの間に入り込んでその要求を受取る。そしてその正当なサーバになりすました偽のサーバは、自らが作った、偽のサーバ証明書をクライアントへと送信する。そうするとクライアントは、改善されたルート証明書を使ってその偽のサーバ証明書を正当なものと判断し、ひいては偽のサーバを正当なものと認証する。そうすると、クライアントは自らが持つ共通鍵を偽のサーバ証明書に含まれていた偽の公開鍵で暗号化して、偽のサーバへと送信する。それを受取った偽のサーバは自らが持つ上述の偽の公開鍵と対となった秘密鍵でその暗号化された共通鍵を復号化する。これをもって、クライアントが持っていた共通鍵は、悪意の第三者の手に渡るのである。以降においては、そのクライアントとサーバとの間の通信が仮に共通鍵による暗号化通信であったとしても、その暗号化通信のために必要な共通鍵を所有している悪意の第三者は、その解読を自由に行えるようになる。
このような、クライアントとサーバの間に悪意の第三者が入り込んで行う攻撃を中間者攻撃(man-in-the-middle attack:MITMA)と称するが、他の暗号化通信の場合と同様、SSLの場合にもこれを防げていない。
【0006】
そもそも暗号化通信の分野では、送信者と受信者が同じ鍵を持つ(つまり、共通鍵方式の通信を行う。)というのが基本であり、同じ鍵をどうやって共有するのかという点が古くから問題となっている。かかる問題は鍵の配送問題などと称されるが、SSL通信でもこの鍵の配送問題は解決されていないのである。
上述したようにSSL通信では最終的に共通鍵方式の通信を行うが、それに先立って、クライアントが持つ共通鍵をどうやって安全にサーバに配送するのかという点が問題となる。SSL通信では上述のように、秘密鍵方式の暗号化通信を初段に用い、且つサーバ証明書とルート証明書とを用いた認証技術を組合せることで、クライアントが持つ共通鍵を安全にサーバに配送せんとしているが、その試みは上述のように、完璧に成し遂げられているとは言えないのである。
【0007】
本願発明は、第三者による攻撃、特にはMITMAによる攻撃に強いSSL通信の技術を提案するものである。
【課題を解決するための手段】
【0008】
上述の如き問題は、以下のことが原因で生じると出願人は考えている。
つまり従来のSSL通信では、サーバ証明書等を用いてクライアントがサーバの適正さの認証を行っている。しかしながら、上述のようにクライアントは悪意ある第三者からの攻撃を完全に防ぐのは難しい。他方、従来のSSL通信ではサーバは、クライアントの適正さの認証を行っていない。これこそが、上述の問題が発生する原因だと本願発明者は考えている。
クライアントよりは、第三者からの攻撃に強いサーバの方がかかる認証を正しく行える可能性が高いと思われるし、また、サーバの方がクライアントよりも相手方の認証を正しく行える可能性が高いかどうかをひとまず置くとしても、クライアントとサーバの双方が相手方の認証を行った方が通信の安全性が高まるのは自明であろう。したがって、サーバにおいても、クライアントの認証を行うべきだというのが本願発明者の考えである。しかしながら、従来のSSLは、サーバ証明書、ルート証明書等を用いてサーバの認証を行うという方向で長年発展してきているため、かかる仕組みを変える或いは壊すのはあまりにも手間、コストがかかる。他方、かかる仕組みに簡単に応用することができるサーバにおけるクライアントの認証の仕組みというのは今のところ提案されていない。
本願発明者が提案する本願発明は、そのような仕組みに関する。
【0009】
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成されるSSL通信システムで実行されるSSL通信方法である。かかる通信方法は、現在普及しているSSL通信の進化版或いは改良版と捉えることができる。なお、本願におけるネットワークは、典型的にはインターネットである。
そして、本願発明は、以下の過程を含む。
本願発明は、前記クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取る過程、前記サーバが、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取る過程、前記クライアントが、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取る過程、前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、を含んでいる。
本願発明における上述の過程のうちの最後の過程、つまり、「以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程」は、現在のSSL通信の場合における(3)の処理に相当する。
また、本願発明に含まれる各過程のうち、最後の過程の前に位置する「前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取る過程、」、「前記クライアントが、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、」、「前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、」、「前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、」、「前記サーバが、前記暗号化された共通鍵を受取る過程、」、「前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、」という過程は、現在のSSL通信の場合における(2)のb〜eに相当する。
現在のSSL通信と共通する上述の過程は、必ずしもそうする必要はないが、現在用いられているSSL通信における処理を、完全に踏襲することが可能である。特に、現在非常に大きな金銭が動くビジネスとして大きく広まっている公開鍵が埋め込まれたサーバ証明書、或いはサーバ証明書の正当性を判断するためのSSL証明書(ルート証明書を含む)をそのまま使用するということまで考慮すれば、本願発明は、現在のSSL通信と親和性が高く、現在のSSL通信に応用するのが容易である。
他方、本願発明は、そのセキュリティ性が高い。その理由について説明する。
【0010】
この発明では、クライアントとサーバとで、解生成手段が用いられるというのが特徴的である。クライアントとサーバとで用いられる解生成手段は同じものでも同じものでなくても構わないが、少なくとも、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできるものである。解生成手段には、例えば、ワンタイムパスワードの技術を流用することができる。ワンタイムパスワードには、2つの解生成手段で生成されたワンタイムパスワードの同じ順番で生成されたもの同士を比較した場合に両者が同じになるもの、2つの解生成手段で同じ時刻で生成されたもの同士を比較した場合に両者が同じになるもの等の幾つかの方式があるが、ワンタイムパスワードの技術を流用するのであれば、この発明で用いられる解生成手段はそれらのどれでも構わない。
本願発明では、クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介してサーバに送信する。その解はサーバにより受取られる。この解は、サーバにおけるクライアントの認証に使用される。
具体的には、サーバは、クライアントから解を受取ると、その解生成手段でクライアントの解生成手段で解が生成されたのと同一条件下で解を生成させる。そして、サーバの解生成手段で生成した解と、クライアントから受取った解とを比較して、両者が一致した場合には、クライアントを正当なものと認証する。上述したように、サーバとクライアントにある解生成手段は、少なくとも、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできるものである。したがって、解を生成する際の条件が、サーバとクライアントとの間で、或いはサーバの解生成手段とクライアントの解生成手段との間で共有されているのであれば、サーバの解生成手段とクライアントの解生成手段とは、同じ解を生成することができ、言葉を変えれば生成される解を同期させることができる。
本願発明では、そのような解の同期がなされていれば、クライアントは正当なものであると認証するわけである。
サーバにおけるクライアントの正当性の認証は、従来のSSL通信の場合と同様に、サーバ証明書とSSL証明書とによって行える。解生成手段という簡単な仕組みをサーバとクライアントに配し、サーバによるクライアントの認証をも行うことにより、SSL通信は、サーバとクライアントとが双方向で相手方を認証できるものに進化する。しかも、サーバとクライアントとがどのような条件下で解を生成するのかということは、基本的に悪意の第三者にはわからない。したがって、本願のこのSSL通信による暗号化通信は、従来よりもより安全性の高いものとなる。
【0011】
本願発明は、クライアントで実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
その方法は例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記クライアントで実行されるSSL通信方法である。
そしてこの通信方法は、前記クライアントが実行する、以下の過程を含む。
その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取る過程、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、である。
【0012】
本願発明は、サーバで実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
その方法は例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記サーバで実行されるSSL通信方法である。
そしてこの通信方法は、前記サーバが実行する、以下の過程を含む。
その過程は、前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取り、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、である。
【0013】
本願発明は、サーバとの組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされたクライアントと捉えることもできる。かかるクライアントの効果は上記のとおりである。
クライアントは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第2暗号化復号化手段と、を有しているものと、の組合せにより、SSL暗号化通信システムを構成するための、前記ネットワークに接続可能とされたクライアントである。
そして、クライアントは、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第2暗号化復号化手段と、を備えている。
そして、このクライアントは、前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、前記サーバ解生成手段で前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取るようになっており、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記クライアント認証手段が前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段は、前記クライアントが持つ共通鍵を暗号化するようになっているとともに、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記サーバとの間で共通鍵方式の暗号化通信を行うようになっている。
【0014】
かかるクライアントは、以下のようなものとすることができる。
その場合、前記サーバは、前記サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第1暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で2つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第1暗号化復号化手段により、前記サーバ証明書及び前記SSL証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記SSL証明書を、前記クライアントに送信するようになっている。
そして、そのようなサーバと組合せて用いられるクライアントは、前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第1暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第1暗号化復号化手段を備えており、前記クライアント解生成手段は、前記クライアントが暗号化された前記サーバ証明書及び前記SSL証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記SSL証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で2つ目或いはそれ以降の解を生成するようになっているとともに、前記クライアント第1暗号化復号化手段は、前記クライアント解生成手段が生成した前記2つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記SSL証明書を復号化するようになっている。
このクライアントでは、サーバ証明書及びSSL証明書は、サーバからクライアントへ送られるときに、暗号化された状態で送られる。これにより、このサーバ及びクライアントを用いて実行される暗号化通信は、より第三者による盗聴の可能性が低いものとなる。その理屈について説明する。
この場合のサーバは、サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第1暗号化復号化手段を備えている。また、この場合のサーバでは、クライアントが正当だとの認証がサーバ認証手段で行われた場合に、サーバのサーバ解生成手段で予め定められた条件下で2つ目或いはそれ以降の解が生成されるようになっている。サーバ第1暗号化復号化手段は、上記解を用いてサーバ証明書及びSSL証明書を暗号化する。
他方、この場合のクライアントは、クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合にはサーバ第1暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第1暗号化復号化手段を備えている。クライアントが暗号化されたサーバ証明書及びSSL証明書をサーバから受取った場合、クライアント解生成手段は、サーバでサーバ証明書及び前記SSL証明書を暗号化するときに用いられた解がサーバ解生成手段で生成されたときと同じ条件下で2つ目或いはそれ以降の解を生成するようになっている。そして、それにより生成された解を用いて、クライアント第1暗号化復号化手段は、暗号化されたサーバ証明書及びSSL証明書を復号化する。
上述のように、クライアント解生成手段で生成される解は、サーバ証明書及びSSL証明書を暗号化するためにサーバ解生成手段で生成された解と同条件下で生成されたものであるから、サーバ解生成手段でサーバ証明書及びSSL証明書を暗号化するために生成された解と、クライアント第1暗号化復号化手段で暗号化されたサーバ証明書及びSSL証明書を復号化するためにクライアント解生成手段で生成される解とは同じものとなる。他方、クライアント第1暗号化復号化手段は、同じ解が用いられる場合にはサーバ第1暗号化復号化手段で暗号化されたデータを復号化することができるようになっているので、暗号化された解との同一性が担保された解を用いる限り、クライアント第1暗号化復号化手段は、暗号化されたサーバ証明書及びSSL証明書を復号化することができる。これは、第三者による何らかの妨害がない限り、保証される。
ところで、サーバにおけるサーバ第1暗号化復号化手段による暗号化、及びクライアントにおけるクライアント第1暗号化復号化手段による復号化はともに、解によってその結果が変わる。つまり、これら暗号化と復号化には解依存性がある。したがって、第三者が、暗号化された状態でネットワーク上を送信されているサーバ証明書及びSSL証明書の内容を知ろうと思うのであれば、その解の内容を知る必要がある。しかしながら、上述のように、暗号化、復号化の際に用いられる上述の解は、サーバ又はクライアントの中にのみ存在し、ネットワーク上を送信されない。したがって、悪意のある第三者は、暗号化、復号化の際に用いられる上述の解を知ることができず、結果として、暗号化された状態でネットワーク上を送信されているサーバ証明書及びSSL証明書の内容を知ることができない。従来のSSL通信における悪意のある第三者によるサーバ証明書及びSSL証明書の改竄の典型的なものは、送信途中のサーバ証明書及びSSL証明書を盗むことによるものである。それを防げるため、この発明による暗号化通信の強度は極めて高いと言える。
なお、この発明では、上述のように、サーバにおけるサーバ第1暗号化復号化手段による暗号化、及びクライアントにおけるクライアント第1暗号化復号化手段による復号化はともに、解依存性がある。かかる解依存性を上記暗号化、復号化に持たせるには、解を例えば、暗号化、復号化の際の鍵として用いることができる。
本願発明では、サーバとクライアントとが、クライアントからサーバに送られた解の後に、どのような条件下で生成された解(例えば、幾つめの解)をサーバ証明書及びSSL証明書の暗号化と復号化に用いるかは、サーバとクライアントの間で最初から決定しておけばよい。例えば、クライアントからサーバに送られた解の次に両者で発生された解を用いるとか、5番目に発生した解を用いるとか、そういう取極めを両者の間で予めしておくことができる。暗号化と復号化とに、共通の複数の解を用いることも可能であり、それにより第三者にサーバ証明書及びSSL証明書を盗まれる可能性をより低くすることができるようになる。
サーバからクライアントへ、暗号化した状態でサーバ証明書及びSSL証明書を送るようにする場合には、更に暗号化していない状態のサーバ証明書をもサーバからクライアントへ送るようにすることができる。
その場合、前記サーバは、前記サーバ第1暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっている。この場合、前記クライアント第1暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段は、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっていてもよい。第三者の攻撃がなければ、暗号化されてサーバからクライアントへ送られたサーバ証明書と暗号化しないでサーバからクライアントへ送られたサーバ証明書とは一致するはずである。両者が一致した場合にのみクライアント認証手段がサーバ証明書の正当性の認証を改めて行うこととすれば、第三者による改竄のないサーバ証明書のみをクライアントは認証の対象とすることができるようになる。なお、この場合には、暗号化していないサーバ証明書に加えて暗号化していないSSL証明書をもサーバからクライアントへ送り、且つ暗号化してサーバからクライアントへ送られたサーバ証明書とSSL証明書のすべてが、暗号化せずにサーバからクライアントへ送られたサーバ証明書とSSL証明書のすべてと一致した場合のみ、クライアント認証手段がサーバ証明書の適正さについての認証を実行するようになっていても構わない。
【0015】
本願発明は、クライアントとの組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされたサーバと捉えることもできる。かかるサーバの効果は上記のとおりである。
サーバは例えば、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第2暗号化復号化手段と、を有しており、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第2暗号化復号化手段と、を有している、前記ネットワークに接続可能とされたクライアントと、の組合せにより、SSL暗号化通信システムを構成するための、前記ネットワークに接続可能とされたサーバである。
そして、このサーバは、前記クライアントの正当性を認証するためのサーバ認証手段を備えており、前記クライアントは、前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバ解生成手段は、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取ったときに、前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成するようになっているとともに、前記サーバ認証手段は、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するようになっており、前記クライアントが正当だとの認証が前記サーバ認証手段で行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信するようになっており、前記クライアントは、前記サーバ証明書及び前記SSL証明書を受取るとともに、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記クライアント認証手段により前記サーバから送られてきた前記サーバ証明書が正当か否か判定し、前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段で、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記クライアントとの間で共通鍵方式の暗号化通信を行うようになっている。
【0016】
かかるサーバは、以下のようなものとすることができる。
この場合のサーバは、前記サーバ解生成手段で生成された解を用いた暗号化と復号化を行うことができるサーバ第1暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で2つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第1暗号化復号化手段により、前記サーバ証明書及び前記SSL証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記SSL証明書を、前記クライアントに送信するようになっている。
かかるサーバは、前記クライアントは、前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第1暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第1暗号化復号化手段を備えており、前記クライアント解生成手段は、クライアントが暗号化された前記サーバ証明書及び前記SSL証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記SSL証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で2つ目或いはそれ以降の解を生成するようになっているとともに、前記クライアント第1暗号化復号化手段は、前記クライアント解生成手段が生成した前記2つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記SSL証明書を復号化するようになっている、クライアントと組合せて用いられる。
かかるサーバは、上述したサーバ証明書及びSSL証明書を暗号化してサーバからクライアントに送る場合におけるサーバであり、その効果は既に述べたとおりである。
この場合のサーバは、前記サーバ第1暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっていてもよい。この場合、前記クライアントでは、前記クライアント第1暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段が、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっていてもよい。これは、サーバからクライアントへ、暗号化した状態でサーバ証明書及びSSL証明書を送るようにするのに加えて、更に暗号化していない状態のサーバ証明書をもサーバからクライアントへ送るようにすることに相当する。これによる効果は既に述べた通りである。
【0017】
本願発明は、汎用のコンピュータを、本願発明のクライアントとして機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
そのコンピュータプログラムは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記クライアントとして、コンピュータを機能させるためのコンピュータプログラムである。
そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記SSL証明書を受取る過程、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、である。
【0018】
本願発明は、汎用のコンピュータを、本願発明のサーバとして機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
そのコンピュータプログラムは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのSSL証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記サーバとして、コンピュータを機能させるためのコンピュータプログラムである。
そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
その過程は、前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記SSL証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記SSL証明書を受取り、前記サーバから送られてきた前記SSL証明書と、前記クライアントが持っていた前記SSL証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、である。
【0019】
コンピュータを本願発明のクライアントとして機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、クライアントを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記サーバに送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記サーバから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
現在のSSL通信のコンピュータプログラムは、アプリケーションと、TCP/IPとの間で暗号化と復号化とを行うようになっている。上述の如きコンピュータプログラムであれば、現在のSSL通信用のコンピュータプログラムに置換するのが容易である。
【0020】
コンピュータを本願発明のサーバとして機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、サーバを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記クライアントに送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記クライアントから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
これによっても、本願発明の上記コンピュータプログラムで、現在のSSL通信用のコンピュータプログラムを置換するのが容易になる。
【発明を実施するための形態】
【0022】
以下、本発明の第1〜第3実施形態について説明する。各実施形態の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。
【0023】
≪第1実施形態≫
図1に、第1実施形態のSSL通信システムの全体構成を概略で示す。
SSL通信システムは、複数のクライアント100−1〜100−N(以後、単に、「クライアント100」と記載する場合もある。)、及びサーバ200を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
【0024】
クライアント100は、コンピュータを含んでいるか、汎用のコンピュータにより構成されている。
【0025】
次に、クライアント100の構成を説明する。各クライアント100−1〜100−Nの構成は、本願発明との関連でいえば同じである。
クライアント100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク400を介しての通信が可能なものであり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められ、それが可能であるのであればそれ以外の仕様は特に問わない。
例えば、クライアント100がスマートフォンかタブレットなのであれば、スマートフォンとしてのクライアント100は例えば、Apple Japan合同会社が製造、販売を行うiPhoneで良いし、タブレットとしてのクライアント100は例えば、Apple Japan合同会社が製造、販売を行うiPadでよい。以下、これには限られないが、クライアント100がスマートフォンであることとして話を進める。
【0026】
クライアント100の外観の一例を
図2に示す。
クライアント100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。クライアント100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をクライアント100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるクライアント100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、クライアント100がノート型パソコン、デスクトップ型パソコンである場合には、入力装置102はキーボードや、マウス等になるであろう。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
【0027】
クライアント100のハードウェア構成を、
図3に示す。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112、或いはRAM113に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ハードウェアはHDD(hard disk drive)その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のクライアントとしてこのクライアント100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、クライアント100にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのクライアント100へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムとしては、これに限られず、クライアント100がスマートフォンであれば、クライアント100をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。クライアント100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっている。また、周知のようにディスプレイ101に画像を表示するための画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。インターフェイス114は、また、インターネットであるネットワーク400を介して外部と通信を行うための公知の手段である送受信機構(図示を省略)に接続されており、それにより、クライアント100は、ネットワーク400を介してデータを送信することと、ネットワーク400を介してデータを受信することとが可能になっている。かかるネットワーク400を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、クライアント100がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク400から受取ったデータは、インターフェイス114により受取られるようになっており、インターフェイス114から送受信機構にわたされたデータは、送受信機構によって、ネットワーク400を介して外部、例えば、サーバ200に送られるようになっている。
【0028】
CPU111がコンピュータプログラムを実行することにより、クライアント100内部には、
図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、クライアント100を本願発明のクライアントとして機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、クライアント100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
クライアント100内には、本願発明の機能との関係で、アプリケーション121と、暗号化復号化部122と、送受信部123とが生成される。
もっとも、これらのうちアプリケーション121は、公知のブラウザのソフトウェア、電子メールのソフトウェア等であり、また、送受信部123はネットワーク400を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。
アプリケーション121は、クライアント100からサーバ200に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またサーバ200からクライアント100へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション121は上で例示したものに限られない。アプリケーション121はインターフェイス114と接続されており、インターフェイス114を介して受取る入力装置102からの操作内容に関するデータにしたがって動作する。アプリケーション121はその動作の結果、暗号化してネットワーク400を介してサーバ200に送るべき平文のデータを生成する。このデータは暗号化復号化部122に送られるようになっている。アプリケーション121は、また、動作の結果、例えば上述した画像データを生成する。画像データはインターフェイス114に送られ、そこからディスプレイ101に送られるようになっている。
また、送受信部123は、サーバ200等とネットワーク400を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部123は、少なくともTCP/IPを用いてネットワーク400を介しての通信を行えるようになっている。送受信部123は、送受信機構がネットワーク400から受取ったデータをインターフェイス114を介して受取る。送受信部123は、インターフェイス114を介して送受信機構から受取ったデータを暗号化復号化部122へ送るようになっている。また、送受信部123は、暗号化復号化部122からデータを受取る場合がある。送受信部123はその暗号化復号化部122から受取ったデータをインターフェイス114に送り、送受信機構からネットワーク400を介してサーバ200へ送るようになっている。
【0029】
暗号化復号化部122は、簡単にいうと、送受信部123から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション121から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ200とクライアント100の互いの認証のために必要な処理を行うものである。つまり、暗号化復号化部122は、本願発明におけるクライアント100とサーバ200の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをクライアントとして機能させるためのコンピュータプログラムにより、クライアント100内に生成されるものであると言える。
また、暗号化復号化部122には、入力装置102から入力された操作内容についてのデータが、インターフェイス114を介して入力される場合がある。
【0030】
暗号化復号化部122の中には入力部122A、主制御部122B、クライアント解生成部122C、解データ記録部122D、クライアント第1暗号化復号化部122E、クライアント第2暗号化復号化部122F、出力部122G、認証部122H、及び公開鍵暗号化部122Iが生成される(
図5)。
【0031】
入力部122Aは、インターフェイス114又はアプリケーション121からデータを受取るものである。インターフェイス114を介して入力装置102から操作内容についてのデータが入力された場合には、入力部122Aは、それを主制御部122Bに送るようになっている。また、入力部122Aには後述するように、サーバ200から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス114、送受信部123を介して送られてくることがある。そのデータを受取ったら入力部122Aは、それをクライアント第2暗号化復号化部122Fに送るようになっている。入力部122Aには、また、後述するように、サーバ200から暗号化された状態で送られてきたサーバ証明書及びSSL証明書のデータが、インターフェイス114、送受信部123を介して入力される場合がある。かかるデータを受取ったら入力部122Aは、それをクライアント第1暗号化復号化部122Eに送るようになっている。入力部122Aはまた、アプリケーション121から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからサーバ200に送られることを意図したものであるが、このデータを受取ったら入力部122Aは、そのデータをクライアント第2暗号化復号化部122Fに送るようになっている。
【0032】
主制御部122Bは、暗号化復号化部122全体の制御を行うものである。主制御部122Bは上述のように、入力部122Aから操作内容についてのデータを受取る場合があり、それを受取った場合には、それに基づいた指示を適宜暗号化復号化部122内の機能ブロックに送るようになっている。例えば、あるデータを受取った場合、主制御部122Bは、クライアント解生成部122Cに対して解を生成せよとの指示を送るようになっている。
また、主制御部122Bは、予めインストールされた、SSL証明書を保持している。SSL証明書は、従来からのものと同じでよく、認証局の情報が記載され、その認証局の公開鍵が埋め込まれており、またそのSSL証明書の正当性を証明するための、そのSSL証明書を発行した認証局の電子署名(SSL証明書がルート証明書である場合には、ルート認証局自体の電子署名)が付されている。SSL証明書は、後述するようなタイミングで認証部122Hに送られるようになっている。SSL証明書は、アプリケーション(例えばブラウザ)にプリインストールされているか、或いは各ユーザが自分でアプリケーションに組込む。なお、主制御部122Bに存在するSSL証明書は、従来のSSL通信の場合と同様1つとは限らない。
主制御部122Bは、また、共通鍵を生成できるようになっている。共通鍵は、必要になる都度主制御部122Bが生成する。主制御部122Bが共通鍵を生成する方法は、周知又は公知技術によれば良い。主制御部122Bは、生成した共通鍵を、公開鍵暗号化部122Iに送るようになっている。この実施形態における主制御部122Bは、後述のように認証部122Hから公開鍵を受取る場合がある。公開鍵を受取った主制御部122Bは、共通鍵を、公開鍵とともに公開鍵暗号化部122Iに送るようになっている。なお、主制御部122Bは、共通鍵を必要となる度に生成するのではなく、1つの固定の共通鍵を持っており必要となる度に公開鍵暗号化部122Iに送るようになっていても構わない。
【0033】
クライアント解生成部122Cは、解を連続して生成することのできるものとされている。解は、数字、文字、記号の少なくとも1つの羅列である。後述するように、サーバ200にはサーバ解生成部が存在し、サーバ解生成部も連続して解を生成するようになっているが、サーバ解生成部が生成する解と、クライアント解生成部122Cが生成する解とを比較した場合、共通条件下で生成された解同士を比較すれば両者は常に一致するようになっている。簡単に言えば、クライアント解生成部122Cと、サーバ解生成部とは同期されており、或いはクライアント解生成部122Cで生成される解と、サーバ解生成部で生成される解とは同期されている。それが可能な限り、クライアント解生成部122C及びサーバ解生成部で解を生成する方法はどのようなものでもよい。
クライアント解生成部122Cとサーバ解生成部で解を生成する方法が、上述の条件が充足される限りどのようなものでもよいのは既に述べたとおりである。そのような技術は既に、ワンタイムパスワードの生成の技術として完成し、実用されている。クライアント解生成部122C及びサーバ解生成部では、そのような技術を流用することができる。サーバ解生成部でも同じであるからクライアント解生成部122Cについてのみに言及するが、より詳細には、クライアント解生成部122Cは、例えば、ある初期値に対して決められた演算を行うことで解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て…、という処理を繰り返すことで、連続して解を生成するものとすることができる。このような技術は、擬似乱数を生成するための技術として周知である。
解を生成するより具体的な方法について説明する。
解を生成するには、ある初期値(以下の、(a)、(c)のように2つ以上の場合もある)を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期値依存性のある擬似乱数となる。
上述の解を作るのに使われる関数の例として、以下の(a)〜(c)を挙げる。以下の(a)〜(c)はいずれも、N番目の解であるX
Nを作るための式である。また、P、Q、R、Sは自然数である。
(a)(X
N)=(X
N−1)
P+(X
N−2)
Q
(b)(X
N)=(X
N−1)
P
(c)(X
N)=(X
N−1)
P(X
N−2)
Q(X
N-3)
R(X
N−4)
S
(a)は、過去の解2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解2つを用い、それらをP乗とQ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。
(b)は、過去の解1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい解とするものである。
(c)は、過去の解4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
上述の(a)〜(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)〜(c)を順番に用いる等の変化を加えることも可能である。また、上述の解に、時間依存性を与えれば、つまりそのときの時刻に合わせた変化を加えるようにすることもできる。
いずれにせよ、サーバ200にあるサーバ解生成部と、クライアント解生成部122Cとは、上述の如く、解を同期させられるようにされている。
これには限られないが、この実施形態のクライアント解生成部122Cは上記(a)のアルゴリズムを用いて解を生成することとしている。その場合、新しい解を生成するには、初期値乃至過去の解が必要となる。解データ記録部122Dには当初初期値が記録されており、クライアント解生成部122Cが新しい解を生成するたびに、初期値が新しい解により上書きされ、その新しい解が更に新しい解により上書きされるようになっている。解データ記録部122Dには、このように初期値又は解が記録されており、クライアント解生成部122Cは新しい解を生成するたびに、解データ記録部122Dから新しい解を読みだすようになっている。
クライアント解生成部122Cは、また、解を生成した場合、それをクライアント第1暗号化復号化部122E又は出力部122Gに送るようになっている。
【0034】
クライアント第1暗号化復号化部122Eは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも復号化の処理を行えれば足りる。クライアント第1暗号化復号化部122Eは、サーバ200の後述するサーバ第1暗号化復号化部で暗号化されたデータを少なくとも復号化できるようになっている。クライアント第1暗号化復号化部122Eでの暗号化、復号化には、解が使われる。上述のようにクライアント解生成部122Cで生成された解はクライアント解生成部122Cからクライアント第1暗号化復号化部122Eに送られるが、その解はクライアント第1暗号化復号化部122Eで上述の復号化が行われる際に使用される。他方、クライアント第1暗号化復号化部122Eには、入力部122Aから暗号化されたサーバ証明書及びSSL証明書のデータが送られてくる。このサーバ証明書及びSSL証明書のデータは、後述するようにサーバ200から送られてくるものであり、これも後述するようにサーバ200のサーバ第1暗号化復号化部で暗号化されたものである。後述するように、クライアント第1暗号化復号化部122Eは、この暗号化されたサーバ証明書及びSSL証明書のデータを、解を用いて復号化することができるようになっている。
クライアント第1暗号化復号化部122Eは、復号化したサーバ証明書及びSSL証明書のデータを、認証部122Hに送るようになっている。
【0035】
認証部122Hは、サーバ200が正当なものかの認証、言い換えれば、サーバ200から送られてきたサーバ証明書が正当なものかの認証を行う。かかる認証には、主制御部122Bから受取った元々クライアント100内にあったSSL証明書と、クライアント第1暗号化復号化部122Eから受取った、元々はサーバ200にあったサーバ証明書とSSL証明書とが用いられる。
かかる認証をどのように行うかについては追って説明を行うこととするが、いずれにせよかかる認証の方法は既存のSSL通信における、SSL証明書を用いたサーバ証明書の認証の方法に倣うことができ、この実施形態ではそうしている。かかる部分を変えなければ、この実施形態のSSL通信システムで実行される暗号化通信は、SSL通信に僅かな変更を加えるだけで実施できるものとなる。
認証部122Hは、サーバ証明書が正当なものであると認証したら、そのサーバ証明書に含まれていた公開鍵をサーバ証明書から取出し、主制御部122Bに送るようになっている。
【0036】
公開鍵暗号化部122Iは、公開鍵を用いた暗号化を行うものである。上述したように、公開鍵暗号化部122Iは、主制御部122Bから公開鍵と共通鍵とを受取るようになっている。これらを受け取ったら公開鍵暗号化部122Iは、共通鍵を公開鍵で暗号化するようになっている。
従来のSSL通信においても、クライアントは自らが持つ共通鍵を公開鍵を用いて暗号化してサーバに送るようになっている。公開鍵暗号化部122Iは、その従来から存在するSSL通信における機能を用いて実現することができる。
なお、公開鍵暗号化部122Iは、暗号化した共通鍵のデータを出力部222Gに送るようになっている。
【0037】
クライアント第2暗号化復号化部122Fは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、主制御部122Bから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション121から入力部122Aを介して送られてきた平文のデータであり、また復号化の対象となるのは、サーバ200から、ネットワーク400、送受信機構、インターフェイス114、入力部122Aを介して送られてきた暗号化されたデータである。
クライアント第2暗号化復号化部122Fで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよく、例えばSSLの本願の背景技術で述べた(3)の通信で用いられている公知或いは周知の手法をこれに応用することができる。例えば、クライアント第2暗号化復号化部122Fは、DES暗号法を実行するものとすることができる。
クライアント第2暗号化復号化部122Fは、アプリケーション121から送られてきたデータを暗号化したものを出力部122Gに送るようになっているとともに、サーバ200から送られてきた暗号化されたデータを復号化したものを出力部122Gに送るようになっている。
【0038】
出力部122Gは、暗号化復号化部122内で生成されたデータを外部に出力するためのものである。
出力部122Gには、クライアント解生成部122Cから解が送られてくる場合があり、またクライアント第2暗号化復号化部122Fから、アプリケーション121から送られてきたデータをクライアント第2暗号化復号化部122Fで暗号化したものと、サーバ200から送られてきた暗号化されたデータをクライアント第2暗号化復号化部122Fで復号化したものとが送られてくる場合がある。
出力部122Gは、これらのうち、解と、アプリケーション121から送られてきたデータをクライアント第2暗号化復号化部122Fで暗号化したものとを送受信部123を介してインターフェイス114に送るようになっている。インターフェイス114に送られたこれらデータは、送受信機構、ネットワーク400を介してサーバ200に送られるようになっている。出力部122Gは、また、公開鍵暗号化部122Iから、暗号化された共通鍵のデータを受取る場合がある。公開鍵暗号化部122Iから送られてきた暗号化された共通鍵のデータは、上述の解等と同じようにしてサーバ200に送られる。
出力部122Gは、また、サーバ200から送られてきた暗号化されたデータをクライアント第2暗号化復号化部122Fで復号化したものをアプリケーション121に送るようになっている。それらデータは、アプリケーション121で使用される。
【0039】
次に、サーバ200の構成について説明する。
サーバ200は、ハードウェアとして見た場合には、既存の公知又は周知のサーバで構わない。また、そのハードウェア構成も一般的なものでよく、大雑把に言えば、CPU111、ROM112、RAM113、インターフェイス114をバス116で接続するという、クライアント100のハードウェア構成を踏襲することができる。もっとも、サーバ200は通常、HDDその他の大容量記録装置を有するのが一般的であろう。
サーバ200が備えるCPU、ROM、RAM、インターフェイス、バス、及び大容量記録装置の構成、機能は、クライアント100におけるそれらの構成、機能と変わらない。また、サーバ200が備えるインターフェイスには、クライアント100が備えていたのと同様の、サーバ200外の機器とネットワーク400を介しての通信を行うための送受信機構が接続されている。サーバ200が備えるインターフェイスには、クライアント100が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
【0040】
サーバ200の内部におけるROM、大容量記録装置等に記録されていたコンピュータプログラムを実行することによって、サーバ200の内部には以下に説明するような機能ブロックが生成される。なお、以下の機能ブロックは、サーバ200を本願発明のサーバとして機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、サーバ200にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。また、上記コンピュータプログラムのサーバ200へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、クライアント100の場合と同様である。
サーバ200内には、本願発明の機能との関係で、アプリケーション221と、暗号化復号化部222と、送受信部223とが生成される(
図6)。
もっとも、これらのうちアプリケーション221は、クライアント100のブラウザに所望の画像を表示させるための公知のソフトウェア、クライアント100を操作するユーザの意思決定に基いてインターネットバンキングでの決済を実行するソフトウェア等であり、また、送受信部223はネットワーク400を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。この事情は、クライアント100の場合と同様である。
アプリケーション221は、サーバ200からクライアント100に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またクライアント100からサーバ200へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション221は上で例示したものに限られない。アプリケーション221はインターフェイスと接続されており、インターフェイスを介して受取る入力装置からの操作内容に関するデータにしたがって、或いは予め作成されたプログラムにしたがって自動的に動作する。アプリケーション221はその動作の結果、暗号化してネットワーク400を介してクライアント100に送るべき平文のデータを生成する。このデータは暗号化復号化部222に送られるようになっている。アプリケーション221は、また、動作の結果、例えば画像データを生成する場合がある。画像データはインターフェイスに送られ、そこから、サーバ200の備える図外のディスプレイに送られて画像を表示する。
また、送受信部223は、クライアント100等とネットワーク400を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部223は、少なくともTCP/IPを用いてネットワーク400を介しての通信を行えるようになっている。送受信部223は、送受信機構がネットワーク400から受取ったデータをインターフェイスを介して受取る。送受信部223は、インターフェイスを介して送受信機構から受取ったデータを暗号化復号化部222へ送るようになっている。また、送受信部223は、暗号化復号化部222からデータを受取る場合がある。送受信部223はその暗号化復号化部222から受取ったデータをインターフェイスに送り、送受信機構からネットワーク400を介してクライアント100へ送るようになっている。
【0041】
暗号化復号化部222は、簡単にいうと、送受信部223から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション221から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ200とのクライアント100との互いの認証のために必要な処理を行うものである。つまり、暗号化復号化部222は、本願発明におけるクライアント100とサーバ200の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをサーバとして機能させるためのコンピュータプログラムにより、サーバ200内に生成されるものであると言える。
また、暗号化復号化部222には、入力装置から入力された操作内容についてのデータが、インターフェイスを介して入力される場合がある。
【0042】
暗号化復号化部222の中には入力部222A、主制御部222B、サーバ解生成部222C、解データ記録部222D、サーバ第1暗号化復号化部222E、サーバ第2暗号化復号化部222F、出力部222G、認証部222H、秘密鍵復号化部222Iが生成される(
図7)。
【0043】
入力部222Aは、インターフェイス又はアプリケーション221からデータを受取るものである。入力部222Aには後述するように、クライアント100から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス、送受信部223を介して送られてくることがある。そのデータを受取ったら入力部222Aは、それをサーバ第2暗号化復号化部222Fに送るようになっている。入力部222Aには、また、後述するように、クライアント100から送られてきた解のデータが、インターフェイスを介して入力される場合がある。かかるデータを受取ったら入力部222Aは、それを主制御部222Bに送るようになっている。入力部222Aには、また、後述するように、クライアント100から送られてきた暗号化された共通鍵のデータが、インターフェイスを介して入力される場合がある。かかるデータを受取ったら入力部222Aは、それを主制御部222Bに送るようになっている。入力部222Aはまた、インターフェイスを介してアプリケーション221から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからクライアント100に送られることを意図したものであるが、このデータを受取ったら入力部222Aは、そのデータをサーバ第2暗号化復号化部222Fに送るようになっている。
【0044】
主制御部222Bは、暗号化復号化部222全体の制御を行うものである。主制御部222Bは上述のように、入力部222Aから、クライアント100から送られてきた解のデータを受取る場合があり、それを受取った場合には、それを認証部222Hへ送るようになっているとともに、サーバ解生成部222Cに対して解を生成せよとの指示を送るようになっている。主制御部222Bは、また、認証部222Hから後述する認証データを受取ることがあり、それを受取った場合には、サーバ解生成部222Cに対して解を生成せよとの指示を送るようになっている。
主制御部222Bは、サーバ証明書と、SSL証明書とを保有している。これらは、通常は、サーバ200の管理者が、サーバ証明書、或いはSSL証明書を発行する認証局から入手し、サーバ200にインストールする。サーバ証明書、SSL証明書とも、現在のSSL通信で用いられている通常のものでよく、この実施形態ではそうされている。SSL証明書はクライアント100の説明の中で説明した通りのものであり、サーバ証明書は、サーバ200の情報が記載され、そのサーバの公開鍵が埋め込まれており、またそのサーバ証明書の正当性を証明するための、そのサーバ証明書を発行した認証局の電子署名が付されている。サーバ証明書は1つであるが、SSL証明書は1つとは限らない。これも従来からのSSL通信の場合と同様である。主制御部222Bは、サーバ証明書及びSSL証明書を後述のタイミングでサーバ第1暗号化復号化部222Eに送るようになっている。
【0045】
サーバ解生成部222Cは、クライアント解生成部122C同様に、解を連続して生成することのできるものとされている。サーバ解生成部222Cで連続して生成される解のそれぞれは、共通条件下においてクライアント解生成部122Cで連続して生成される解と一致するようになっている。この実施形態では、サーバ解生成部222Cで解を連続して生成する方法と、クライアント解生成部122Cで解を連続して生成する方法とは共通である。
解データ記録部222Dには、新たな解を生成するためのデータ、つまり、クライアント100の解データ記録部122Dに記録されていたのと同様の初期値、或いは過去の解のデータが記録されている。もっとも、サーバ200は、多数のクライアント100の認証を行う必要がある。したがって、サーバ200は、各クライアント100を識別するためのデータ(この実施形態では各クライアント100のIPアドレスを、各クライアント100を識別するためのデータとして利用することとしているが、他のデータ例えば各クライアント100が販売された段階から各クライアント100に割り振られている、クライアント100の販売業者や認証を行うための組織等により厳格に管理されている各クライアント100にユニークな識別子等を、かかるデータとして利用することもできる。)と各クライアント100毎の新たな解を生成するためのデータとを、互いに紐付けた状態で記録している。つまり、この実施形態では、各クライアント100のクライアント解生成部122Cで連続して生成される解の列はそれぞれ異なるものとなっているが、サーバ200の側では、各クライアント100で生成されるそれぞれ異なる解の列と同じ解の列を、各クライアント100に対応して生成することができるようになっている。言い換えれば、サーバ200にあるサーバ解生成部222Cと、各クライアント100にあるクライアント解生成部122Cのそれぞれとは、解を同期させられるようにされている。
サーバ解生成部222Cは、解を生成した場合、それをサーバ第1暗号化復号化部222Eか又は認証部222Hに送るようになっている。サーバ解生成部222Cが解を認証部222Hに送るときには、解データ記録部222Dに記録されていたものであり、その解を生成する際に参照された、クライアント100を特定するためのデータをも認証部222Hに送るようになっている。
【0046】
サーバ第1暗号化復号化部222Eは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも暗号化の処理を行えれば足りる。サーバ第1暗号化復号化部222Eが暗号化したデータは、クライアント100の少なくともクライアント第1暗号化復号化部122Eで復号化できるようになっている。サーバ第1暗号化復号化部222Eでの暗号化、復号化には、クライアント第1暗号化復号化部122Eでの暗号化、復号化の場合と同様に、解が使われる。上述のようにサーバ解生成部222Cで生成された解はサーバ解生成部222Cからサーバ第1暗号化復号化部222Eに送られるが、その解はサーバ第1暗号化復号化部222Eで上述の暗号化が行われる際に使用される。他方、サーバ第1暗号化復号化部222Eには、主制御部222Bからサーバ証明書及びSSL証明書のデータが送られてくる。このサーバ証明書及びSSL証明書のデータは、後述するようにクライアント100に送られるものであり、サーバ第1暗号化復号化部222Eにて暗号化される。この暗号化されたサーバ証明書及びSSL証明書のデータが、後述するように、クライアント第1暗号化復号化部122Eで復号化され、サーバ証明書及びSSL証明書のデータに戻されるのである。
サーバ第1暗号化復号化部222Eは、暗号化したサーバ証明書及びSSL証明書のデータを出力部222Gに送るようになっている。
【0047】
秘密鍵復号化部222Iは、秘密鍵を用いて復号化を行うものである。上述のサーバ証明書に埋め込まれた公開鍵と対になった秘密鍵を秘密鍵復号化部222Iは備えている。
秘密鍵復号化部222Iには、主制御部222Bから、クライアント100から送られてきた、公開鍵で暗号化された共通鍵のデータが送られてくる場合がある。秘密鍵復号化部222Iは、秘密鍵を用いて暗号化された共通鍵のデータを復号化して元の共通鍵のデータに戻せるようになっている。
従来のSSL通信においても、クライアントは自らが持つ共通鍵を公開鍵を用いて暗号化してサーバに送るようになっている。そして、サーバはその暗号化された共通鍵を秘密鍵を用いて復号化するようになっている。したがって、秘密鍵復号化部222Iは、その従来から存在するSSL通信における機能を用いて実現することができる。
秘密鍵復号化部222Iは、上記復号化の処理によって得られた共通鍵のデータを、サーバ第2暗号化復号化部222Fに送るようになっている。
【0048】
サーバ第2暗号化復号化部222Fは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、秘密鍵復号化部222Iから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション221から入力部222Aを介して送られてきた平文のデータであり、また復号化の対象となるのは、クライアント100から、ネットワーク400、送受信機構、インターフェイス、入力部222Aを介して送られてきた暗号化されたデータである。
サーバ第2暗号化復号化部222Fで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよいが、同じ共通鍵を用いた場合には、ここで暗号化されたデータはクライアント第2暗号化復号化部122Fで復号化でき、クライアント第2暗号化復号化部122Fで暗号化されたデータは、ここで復号化できるものとされる。
サーバ第2暗号化復号化部222Fは、アプリケーション221から送られてきたデータを暗号化したものを出力部222Gに送るようになっているとともに、クライアント200から送られてきた暗号化されたデータを復号化したものを出力部222Gに送るようになっている。
【0049】
認証部222Hは、クライアント100が正当か否かの判断、つまりクライアント100の認証を行うためのものである。上述したように、認証部222Hには主制御部222Bから、クライアント100から送られてきた解のデータが送られてくる。また、解データ記録部222Dから解のデータと、その解を生成する際に参照されたクライアント100を特定するためのデータが認証部222Hに送られる。認証部222Hは、これら3つのデータを用いてクライアント100が正当か否かについての判断を行い、クライアント100が正当であると認証したときに認証データを生成する。なお、具体的な認証の方法については追って説明する。
かかる認証が行われた場合には、認証部222Hは認証データを生成し、その認証データを主制御部222Bに送るようになっている。
【0050】
出力部222Gは、暗号化復号化部222内で生成されたデータを外部に出力するためのものである。
出力部222Gには、サーバ第2暗号化復号化部222Fから、アプリケーション221から送られてきたデータをサーバ第2暗号化復号化部222Fで暗号化したものと、クライアント100から送られてきた暗号化されたデータをサーバ第2暗号化復号化部222Fで復号化したものとが送られてくる場合がある。
出力部222Gは、これらのうち、アプリケーション221から送られてきたデータをサーバ第2暗号化復号化部222Fで暗号化したものを、送受信部223を介してインターフェイスに送るようになっている。インターフェイスに送られたこれらデータは、送受信機構、ネットワーク400を介してクライアント100に送られるようになっている。出力部222Gは、また、サーバ第1暗号化復号化部222Eから、暗号化されたサーバ証明書及びSSL証明書のデータを受取る場合がある。このデータも、上記の場合と同様に、クライアント100に送られるようになっている。
出力部222Gは、また、クライアント100から送られてきた暗号化されたデータをサーバ第2暗号化復号化部222Fで復号化したものをアプリケーション221に送るようになっている。それらデータは、アプリケーション221で使用される。
【0051】
次に、クライアント100とサーバ200を含んでなるこのSSL通信システムの使用方法、及び動作について説明する。
かかる説明には、主に
図8を用いる。
【0052】
まず、ユーザは、自らのクライアント100を操作し、クライアント100とサーバ200との間での通信を試みる。例えば、ユーザは、サーバ200に接続して、サーバ200が提供するウェブサイトを閲覧しようとする。
そのために、ユーザはまず、クライアント100上のアプリケーション121を立ち上げる(S1001)。ウェブサイトを閲覧するためのアプリケーション121であれば、通常は周知のブラウザを立ち上げることになろう。ユーザは、入力装置102を適宜操作してブラウザを立ち上げる。ブラウザを立ち上げるための操作内容は、入力装置102からインターフェイス114を介してアプリケーション121に送られる。それによりアプリケーション121が動作し、画像データがインターフェイス114を介してディスプレイ101に送られることにより、ブラウザがクライアント100のディスプレイ101上に表示される。
【0053】
その状態でユーザは、サーバ200が提供するウェブサイトを閲覧しようとする。通常は、サーバ200のウェブアドレス(URL)をブラウザ上で指定することにより、クライアント100はサーバ200との通信を開始する。このとき、クライアント100は、まず、クライアント100の認証に必要な処理を始める。具体的には、サーバ200のウェブアドレスをユーザがブラウザ上で指定すると、その操作内容のデータが入力装置102からインターフェイス114を介して、入力部122Aに送られてくる。この操作内容のデータは入力部122Aから、主制御部122Bに送られる。これを受取った主制御部122Bは、クライアント解生成部122Cに解を生成せよとの指示を送る。クライアント解生成部122Cは、解を生成する(S1002)。
クライアント解生成部122Cが解を生成する方法は上述した通りである。クライアント解生成部122Cが解を生成するのが初めてなのであれば、クライアント解生成部122Cは解データ記録部122Dから初期値を読出し、また、解を生成するのが初めてでないのであれば、クライアント解生成部122Cは解データ記録部122Dから過去に生成した解を読みだす。そのいずれかに基いて、クライアント解生成部122Cは新たな解を生成する。生成された解は、クライアント解生成部122Cから、出力部122Gへ送られる。
【0054】
出力部122Gは、受取った解を送受信部123に送る。送受信部123は、解のデータにTCP/IPの規則にのっとってヘッダを付すなどの所定の処理を行う。このときヘッダには、クライアント100を他のクライアント100から識別するための情報となるクライアント100のIPアドレスや、サーバ200のウェブアドレス等が含まれる。SSLの通信では、ウェブアドレスに続けて相手方のポート番号として決まった数字(一般には443)の記載を行うことによりそのヘッダを含むデータがSSLによる通信を求めるものであることを示すといった共通ルールがあるが、この暗号化通信でもそのようなルールに従ってもよい。いずれにせよ、そのようなヘッダが付された解のデータは、送受信部123から、インターフェイス114を介して、送受信機構に送られる。
解のデータは、送受信機構から、ネットワーク400を介して、サーバ200に送られる(S1003)。なお、解のデータをクライアント100で暗号化してからサーバ200に送ることも可能であるが、この実施形態では暗号化しないままで解をサーバ200に送ることとしている。
【0055】
解は、サーバ200によって受取られる(S2001)。具体的には、解を含むデータは、サーバ200の送受信機構によって受取られ、インターフェイスから、送受信部223に送られる。送受信部223は、そこから解のデータと、ヘッダに含まれていたその解を送ってきたクライアント100のIPアドレスとを入力部222Aへと送る。それらは、入力部222Aから、主制御部222Bへと送られる。
主制御部222Bは、互いに紐付けた状態で解及びIPアドレスのデータを認証部222Hに送る。
他方、主制御部222Bは、そのIPアドレスのデータをサーバ解生成部222Cに送るとともに、サーバ解生成部222Cに解を生成せよとの指示を送る。これを受けたサーバ解生成部222Cは、解を生成する(S2002)。サーバ解生成部222Cは、解データ記録部222Dに記録されている各クライアント100についての新たな解を生成するためのデータ(初期値か過去の解のデータ)のうち、主制御部222Bから受取ったIPアドレスと紐付けられていたものを読みだす。そして、その初期値か過去の解のデータを用いて、既に述べた方法で新たな解を生成する。サーバ解生成部222Cは、生成した解と、その解を送ってきたクライアント100を特定するIPアドレスとをそれらを互いに紐付けた状態で認証部222Hへと送る。
【0056】
認証部222Hには、上述のように、主制御部222Bから送られてきた解及びIPアドレスが存在する。他方、認証部222Hには、サーバ解生成部222Cから送られてきた解及びIPアドレスが存在する。ここで、IPアドレスが必要となるのは、短時間の間に複数のクライアント100から多数の解が送られて来た場合には、認証部222Hにおいて行われる、後述する、主制御部222Bから送られてきた解とサーバ解生成部222Cから送られてきた解との対比を行うにあたり、どの解とどの解を対比すべきかが不明となることがあり得るからである。これには限られないが、この実施形態では、同じIPアドレスに紐付けられている主制御部222Bから送られてきた解と、サーバ解生成部222Cから送られてきた解とを比較することにより、その解を送ってきたクライアント100が正当なものであるか否かの認証を行うこととしている。
上述したように、サーバ解生成部222Cで生成される解は、各クライアント100のクライアント解生成部122Cで生成される解と同期させられている。したがって、クライアント100が正当なものであれば、対比の対象となる上述の2つの解は一致するはずである。両者が一致した場合には、認証部222Hは、その解を送ってきたクライアント100が正当なものであると認証し、その旨を示す認証データを生成する(S2003)。
認証データは、それにより認証されたクライアント100のIPアドレスと紐付けた状態で、主制御部222Bへと送られる。2つの解が一致しなかったら、認証部222Hはクライアント100が正当でないという旨を主制御部222Bへ通知し、そこでクライアント100とサーバ200の間の通信を打ち切ることが可能であり、この実施形態ではそうしている。このときサーバ200はそのクライアント100に、クライアント100が認証されなかったということを通知するようになっていてももちろん良い。
【0057】
主制御部222Bは、認証データとIPアドレスとを受取った場合には、そのIPアドレスと紐付けた状態で、主制御部222Bが有するサーバ証明書及びSSL証明書をサーバ第1暗号化復号化部222Eへ送る。
他方、主制御部222Bは、サーバ証明書及びSSL証明書を、上記IPアドレスと紐付けた状態でサーバ第1暗号化復号化部222Eに送るとともに、新たな解を生成せよとの指示をサーバ解生成部222Cに送る。サーバ解生成部222Cは、少なくとも1つの解を生成する(S2004)。生成された解は、その解を生成する指示のきっかけとなったIPアドレスとともにサーバ第1暗号化復号化部222Eに送られる。ここで、サーバ解生成部222Cでどのような条件で解を生成するのか、例えば幾つの解を生成するのか、またそのうちのどれを(例えば、2番目に生成されたものを、或いは100番目に生成されたものを)サーバ第1暗号化復号化部222Eに送るのかは、予め決定されており、その情報はクライアント100と共有されている。
上述したように、サーバ第1暗号化復号化部222Eは、受取ったサーバ証明書及びSSL証明書のデータを暗号化する(S2005)。かかる暗号化には、サーバ解生成部222Cから送られてきた解が使われる。サーバ証明書及びSSL証明書を暗号化する際に用いる解は、それらに互いに紐付けられたIPアドレスが同じものを選択すればよい。ここで、サーバ第1暗号化復号化部222Eで行われる暗号化は、暗号化の結果得られるデータが解に依存したものとなる。解の使い方は暗号化の結果得られるデータが解に依存する限りどのようなものでも良いが、例えば解を暗号化の鍵として用いてもよい。なお、このときそのサーバ証明書及びSSL証明書のデータと紐付けられていたIPアドレスのデータは暗号化しない。
暗号化されたサーバ証明書及びSSL証明書のデータは、暗号化される前のサーバ証明書及びSSL証明書のデータと紐付けられていたIPアドレスのデータとともに出力部222Gへと送られる。
【0058】
出力部222Gは、それらデータを送受信部223へと送る。送受信部223は、暗号化されたサーバ証明書及びSSL証明書のデータに対して、その送信先を示すヘッダを付す。その送信先は、上述のIPアドレスにより特定可能である。ヘッダを付された暗号化されたサーバ証明書及びSSL証明書のデータは、送受信部223からインターフェイスに送られ、更には送受信機構から、ネットワーク400を介してクライアント100へと送られる(S2006)。
【0059】
クライアント100は、暗号化されたサーバ証明書及びSSL証明書のデータを受取る(S1004)。暗号化されたサーバ証明書及びSSL証明書のデータは、クライアント100の送受信機構で受取られ、インターフェイス114を介して、送受信部123に送られる。送受信部123は、そのデータを、入力部122Aに送る。
入力部122Aは、暗号化されたサーバ証明書及びSSL証明書のデータをクライアント第1暗号化復号化部122Eへと送る。他方、入力部122Aは、暗号化されたサーバ証明書及びSSL証明書のデータを受取った旨の通知を主制御部122Bへ送る。これを受取った主制御部122Bは、クライアント解生成部122Cに対して新たな解を生成せよとの指示を送る。
【0060】
この指示を受取ったクライアント解生成部122Cは新たな解を少なくとも1つ生成する(S1005)。そして、生成された解はクライアント解生成部122Cからクライアント第1暗号化復号化部122Eに送られる。
ここで、クライアント解生成部122Cでどのような条件下で解を生成するのか、例えば幾つの解を生成するのか、また、そしてそのうちのどれを(例えば、2番目に生成されたものを、或いは100番目に生成されたものを)クライアント第1暗号化復号化部122Eに送るのかは、予め決定されており、その情報はサーバ200と共有されている。クライアント解生成部122Cは、共通の条件下ではサーバ解生成部222Cと共通の解を連続して生成できるものとなっているのであるから、結果として、サーバ第1暗号化復号化部222Eが共通鍵のデータを暗号化するのに使用する解としてサーバ解生成部222Cが生成してサーバ第1暗号化復号化部222Eに送った解とまったく同じ解が、クライアント解生成部122Cからクライアント第1暗号化復号化部122Eへと送られることになる。
この解を用いて、クライアント第1暗号化復号化部122Eは、暗号化されたサーバ証明書及びSSL証明書のデータを復号化して、暗号化されていないサーバ証明書及びSSL証明書のデータに戻す(S1006)。クライアント第1暗号化復号化部122Eにおける復号化の処理は、解に依存するものであり、且つ同じ解を用いた場合には、サーバ解生成部222Cで暗号化されたデータを復号化して元の平文のデータに戻すことが可能な処理である。したがって、暗号化された共通鍵のデータは、サーバ200の主制御部222Bが生成した通りのサーバ証明書及びSSL証明書のデータに戻る。
クライアント第1暗号化復号化部122Eは、サーバ証明書及びSSL証明書を認証部122Hへ送る。他方、サーバ証明書及びSSL証明書を受取った認証部122Hは、主制御部122BにSSL証明書を送れとの指示を送り、主制御部122Bから、元々主制御部122Bが持っていたSSL証明書を受取る。
【0061】
この状態で、認証部122Hは、サーバ200が適正か否かの或いはサーバ証明書が適正か否かの認証の処理を行う(S1007)。
かかる処理は、従来のSSL通信で行われていたサーバ証明書の適正性の認証と同様の処理として実行することができる。
例えば、クライアント100が持っていたSSL証明書と、サーバ200から送られてきたSSL証明書とが、完全に一致したものであったとする。この状態で、サーバ200は、自己が所有していたSSL証明書或いはそれに付されていた公開鍵は適正なものであると判断している。ここで、クライアント100の認証部122Hは、サーバ証明書の例えば全体に対してハッシュを行って得たそのハッシュ値と、サーバ証明書に付されていた電子署名をSSL証明書に付されていた公開鍵で復号化したもの(得られた値)とを比較する。サーバ証明書に付されている電子署名は、そのサーバ証明書を発行した認証局が、サーバ証明書の例えば全体に対してハッシュを行って得たハッシュ値をその認証局が有する秘密鍵で暗号化したものとされている。したがって、電子署名を含めてそのサーバ証明書に、そのサーバ証明書が認証局で発行されて以降、悪意の第三者による改竄を含むいかなる変更もなかった場合には、上述の2つの値は必ず一致する。これにより、サーバ証明書は適正なものであると認証されるのである。
実際のSSL通信では、自己のSSL証明書(ルート証明書)に自己の電子署名を行うことによりそのSSL証明書の適正性を証明できるとされるルート認証局を頂点として、認証局にはその信用性の度合いにより様々なレベルのものがあり、SSL証明書にもその信用性の度合いにより様々なレベルのものがある。SSL通信のかかる認証では、場合により複数のSSL証明書を多段に用い、クライアント100の認証部122Hが信用できるとしているSSL証明書を用いて、サーバ証明書の適正さを認証する。本願の認証部122Hも、そのような処理を実行することができる。
いずれにせよ、認証部122Hがサーバ証明書を適正なものだと認証した場合には、認証部122Hは、サーバ証明書からそれに埋め込まれていた公開鍵を抜き出してそれを主制御部122Bに送る。主制御部122Bは、その公開鍵を、主制御部122Bが持っていた共通鍵とともに、公開鍵暗号化部122Iに送る。
他方、主制御部122Bは、共通鍵のデータをクライアント第2暗号化復号化部122Fに送る。この共通鍵は、もちろん暗号化されていない。これにより、クライアント第2暗号化復号化部122Fは、共通鍵方式の暗号化通信を行うために必要となる共通鍵を持った状態となる。
【0062】
共通鍵と公開鍵とを受取った公開鍵暗号化部122Iは、従来のSSL通信の場合と同様に、共通鍵を公開鍵を用いて暗号化する(S1008)。
暗号化された共通鍵は、公開鍵暗号化部122Iから出力部122Gへと送られる。
【0063】
暗号化された共通鍵のデータは、出力部122Gで必要に応じてヘッダを付された上で、インターフェイス114から送受信機構に送られ、ネットワーク400を介してサーバ200に送られる(S1009)。
サーバ200は、その送受信機構で暗号化された共通鍵のデータを受取る(S2007)。暗号化された共通鍵のデータは、インターフェイス、送受信部223を経て、入力部222Aへ送られ、入力部222Aから主制御部222Bを経て、秘密鍵復号化部222Iへと送られる。
上述したように、秘密鍵復号化部222Iは、秘密鍵を有しており、その秘密鍵と対になった公開鍵で暗号化されたデータを復号化できるようなものとされている。そして、暗号化された共通鍵を暗号化するときに用いられた公開鍵、つまりサーバ200からクライアント100へ送られたサーバ証明書に埋め込まれていた公開鍵は、サーバ200における秘密鍵復号化部222Iが持っていた秘密鍵と対になったものなのであるから、秘密鍵復号化部222Iは、主制御部222Bから受取った暗号化された共通鍵を復号化することができる。
秘密鍵復号化部222Iは秘密鍵を用いて暗号化されていた共通鍵を復号化する(S2008)。
復号化された共通鍵は、秘密鍵復号化部222Iからサーバ第2暗号化復号化部222Fへと送られる。
【0064】
以上の処理により、サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとは、共通の共通鍵を持った状態となる。
【0065】
サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとが、共通の共通鍵を持った状態となったのであれば、サーバ200とクライアント100とは、従来のSSL通信の上記(3)の過程で実行していたと同様の暗号化通信を行えるようになる。
かかる暗号化通信は、必要に応じてクライアント100からサーバ200に、或いはサーバ200からクライアント100に、暗号化したデータが送られることにより実現される(S1010、S2009)。
例えば、クライアント100のアプリケーション121で、暗号化してサーバ200に送るべきデータが生成され、そのデータがアプリケーション121から、暗号化復号化部122に送られる。暗号化復号化部122の入力部122Aがそのデータを受取ると、そのデータはクライアント第2暗号化復号化部122Fに送られ、そこで共通鍵を用いて暗号化される。暗号化されたそのデータは、出力部122Gから、送受信部123へ送られ、上述のようなヘッダを付す処理が必要に応じて行われた上で、インターフェイス114から送受信機構に送られ、そこからネットワーク400を介して、サーバ200に送られる。
サーバ200は、その送受信機構でそのデータを受取る。そのデータは、サーバ200の送受信機構からインターフェイスに送られ、そして送受信部223を経て、入力部222Aに送られる。その暗号化されたデータは、サーバ第2暗号化復号化部222Fで共通鍵を用いて復号化され、出力部222Gへと送られる。出力部222Gは復号化されたそのデータを、アプリケーション221に送り、アプリケーション221はそのデータを適宜用いる。
他方、サーバ200のアプリケーション221が、暗号化してクライアント100に送るべき平文のデータを生成する場合がある。アプリケーション221がそのようなデータを生成した場合、そのデータは、暗号化復号化部222中の入力部222Aに送られる。そのデータは、入力部222Aからサーバ第2暗号化復号化部222Fへと送られ、そこで共通鍵を用いて暗号化される。サーバ第2暗号化復号化部222Fで暗号化されたそのデータは、出力部222Gを介して送受信部223に送られる。送受信部223では、その暗号化されたデータにヘッダを付す上述の如き処理が必要に応じて行われる。かかる処理が行われたそのデータは、送受信部223からインターフェイスを介してサーバ200の送受信機構に送られ、そこからネットワーク400を介してクライアント100に送られる。
クライアント100は、その送受信機構でそのデータを受取る。そのデータは、クライアント100の送受信機構からインターフェイス114に送られ、そして送受信部123を経て、入力部122Aに送られる。その暗号化されたデータは、クライアント第2暗号化復号化部122Fで共通鍵を用いて復号化され、出力部122Gへと送られる。出力部122Gは復号化されたそのデータを、アプリケーション121に送り、アプリケーション121はそのデータを適宜用いる。
以上のようにして、サーバ200とクライアント100との間で共通鍵を用いた共通鍵方式の暗号化通信が行われる。
上述の暗号化通信において暗号化、復号化が行われるのは、サーバ200においては、アプリケーション221と、TCP/IPの通信を行う送受信部223との間にある暗号化復号化部222であり、クライアント100においては、アプリケーション121と、TCP/IPの通信を行う送受信部123との間にある暗号化復号化部122である。アプリケーションと、TCP/IPとの間で暗号化と復号化の処理を実行するというのは、従来からのSSL通信のプロトコルに共通するものであるので、この実施形態の発明を既存のSSL通信に応用するのは比較的簡単である。もっとも、本願発明は、暗号化と復号化の処理を必ずしも、アプリケーションと、TCP/IPとの間で行うには及ばない。
通信を行う必要がなくなれば、サーバ200とクライアント100との間の暗号化通信が終了する。
【0066】
≪第2実施形態≫
第2実施形態におけるSSL通信システムについて説明する。
第2実施形態におけるSSL通信システムは、概ね第1実施形態におけるそれと同様である。異なるのは、第1実施形態におけるSSL通信システムにおけるクライアント100とサーバ200との間の通信では、サーバ200からクライアント100へとサーバ証明書及びSSL証明書を送る際に、サーバ証明書及びSSL証明書が暗号化されていたのに対して、第2実施形態ではサーバ証明書及びSSL証明書は暗号化されずにサーバ200からクライアント100へ送信されるという点である。
【0067】
かかる相違点に基いて、サーバ200とクライアント100にも多少の変更がある。ハードウェア構成の点ではサーバ200もクライアント100も第1実施形態の場合と変わらないが、その内部に生成される機能ブロックの点で、両者の間には多少の違いが存在している。
その違いは、第2実施形態におけるクライアント100の暗号化復号化部122の中には、第1実施形態の場合に存在したクライアント第1暗号化復号化部122Eが存在せず、第2実施形態におけるサーバ200の暗号化復号化部222の中には、第1実施形態の場合に存在したサーバ第1暗号化復号化部222Eが存在しない、という点である(
図9、
図10)。
【0068】
第2実施形態のSSL通信システムの使用方法、動作について説明する。
かかるSSL通信システムで実行される方法は、概ね第1実施形態の場合と同じであるので、その差分を中心として説明することにする(
図11)。もっともその差分は、第2実施形態では、第1実施形態において存在したクライアント100におけるS1005、及びS1006の処理が存在せず、第1実施形態において存在したサーバ200におけるS2004、及びS2005の処理が存在しないというものである。
具体的に説明する。
クライント100で実行される、第1実施形態におけるS1001〜S1003の処理、及びサーバ200で実行される、第1実施形態におけるS2001〜S2003までの処理は、第2実施形態でも同じである。
第2実施形態でも、サーバ200の認証部222Hで、クライアント100が正当であるとの認証が行われる(S2003)。かかる認証が行われると、第2実施形態でも、第1実施形態の場合と同様に認証データが生成される。
第1実施形態の場合、認証部222Hが認証データを生成すると、それは主制御部222Bに送られ、続けて新たな解の生成(S2004)の処理、新たな解を用いた共通鍵の暗号化(S2005)の処理が行われた。しかしながら、第2実施形態の場合には、主制御部222Bは、認証データを受取ると、認証データに付されていたクライアント100のIPアドレスのデータと紐付けた状態で、サーバ証明書及びSSL証明書を、暗号化することなくそのまま出力部222Gへと送るようになっている。
IPアドレスのデータと紐付けられたサーバ証明書及びSSL証明書のデータは、出力部222Gから、送受信部223へと送られる。サーバ証明書及びSSL証明書のデータは、必要に応じて第1実施形態の場合と同様にしてヘッダが付されてから、インターフェイスを介して送受信機構に送られ、そこからネットワーク400を介してクライアント100へと送られる(S2006A)。
【0069】
クライアント100は、サーバ証明書及びSSL証明書のデータを受取る(S1004A)。サーバ証明書及びSSL証明書のデータは暗号化されていない。
サーバ証明書及びSSL証明書のデータは、送受信機構から、インターフェイス114を介して主制御部122Bへと送られる。主制御部122Bは、入力部122Aから受取ったサーバ証明書及びSSL証明書を、元々自己が持っていたSSL証明書とともに認証部122Hと送る。
この状態で、認証部122Hは、サーバ200の或いはサーバ証明書が適正か否かの認証の処理を行う(S1007)。
以後の処理は、第1実施形態と同じである。
【0070】
≪第3実施形態≫
第3実施形態におけるSSL通信システムについて説明する。第3実施形態におけるSSL通信システムの構成及び動作は概ね第1実施形態におけるSSL通信システムにおけるそれらと同じである。第3実施形態のSSL通信システムが第1実施形態におけるSSL通信システムと異なるのは、第1実施形態では、サーバ200からクライアント100に暗号化された状態のサーバ証明書及びSSL証明書が送られるようになっていたが、第3実施形態にはそれに加えて、第2実施形態のときのように、暗号化されていないサーバ証明書及びSSL証明書が送られるようになっている、という点である。
【0071】
第3実施形態におけるクライアント100とサーバ200のハードウェア構成は第1実施形態の場合と変わらず、また、第3実施形態におけるクライアント100とサーバ200の中に生成される機能ブロックも、第1実施形態の場合と変わらない。
もっとも、上述の変更点に基づき、第3実施形態におけるクライアント100及びサーバ200の中に生成される機能ブロックの機能は、第1実施形態の場合と若干異なる点がある。その点については後述する。
【0072】
第3実施形態のSSL通信システムの使用方法、動作について説明する。
かかるSSL通信システムで実行される方法は、概ね第1実施形態の場合と同じであるので、その差分を中心として説明することにする(
図12)。
まず、クライント100で実行される、第1実施形態におけるS1001〜S1003の処理、及びサーバ200で実行される、第1実施形態におけるS2001〜S2005までの処理は、第3実施形態でも同じである。
第3実施形態でも、サーバ第1暗号化復号化部222Eで、サーバ証明書及びSSL証明書のデータが暗号化される(S2005)。第1実施形態では、この後、暗号化されたサーバ証明書及びSSL証明書のデータが暗号化される前のサーバ証明書及びSSL証明書のデータと紐付けられていたIPアドレスのデータとともに出力部222Gへと送られたが、第3実施形態では、暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータとが、暗号化される前のサーバ証明書及びSSL証明書のデータと紐付けられていたIPアドレスのデータとともに出力部222Gへと送られる。
【0073】
これにより、第1実施形態では、サーバ200からクライアント100に暗号化された状態のサーバ証明書及びSSL証明書のみが送られるようになっていたのに対して、第3実施形態ではそれに加えて、暗号化されていないサーバ証明書及びSSL証明書のデータがサーバ200からクライアント100へ送られる。
具体的には、出力部222Gに送られた、暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータと、暗号化される前のサーバ証明書及びSSL証明書のデータと紐付けられていたIPアドレスのデータは、出力部222Gから送受信部223へ送られる。暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータは、必要に応じて第1実施形態の場合と同様にしてヘッダが付されてからインターフェイスを介して送受信機構に送られ、そこからネットワーク400を介してクライアント100へと送られる(S2006B)。
【0074】
クライアント100は、暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータとを受取る(S1004B)。
暗号化されたサーバ証明書及びSSL証明書のデータは、クライアント第1暗号化復号化部122Eへと送られ、第1実施形態の場合と同様のS1005の処理によってクライアント解生成部122Cで生成された解を用いて第1実施形態の場合と同様にして復号化される(S1006)。
他方、暗号化されていないサーバ証明書及びSSL証明書のデータは、送受信機構からインターフェイス114、及び送受信部123を経て入力部122Aへ送られ、入力部122Aから主制御部122Bを経て、認証部122Hへと送られる。
この状態で、認証部122Hには、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書及びSSL証明書と、サーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書及びSSL証明書とが、ともに存在することになる。いずれのサーバ証明書及びSSL証明書も、平文になっている。認証部122Hは、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書を対比し、また、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたSSL証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたSSL証明書とを対比する(S1011)。
認証部122Hは、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書とが互いに一致し、且つ、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたSSL証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたSSL証明書とが互いに一致した場合にのみ、それらサーバ証明書及びSSL証明書に、それらがサーバ200からクライアント100に送られる間にいかなる改竄もなかった、と判定する。
そのようなポジティブな判定がなされた場合にのみ、第3実施形態における認証部122Hは、サーバ証明書の認証についての第1実施形態におけるS1007の過程に進むことになる。もちろん上記のポジティブな判定がなされなかったら、サーバ200とクライアント100との間の通信はそこで終了する。
以後の処理は、第1実施形態と同じである。
【0075】
なお、この実施形態では、S2006Bの処理で、暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータとは、同時にサーバ200からクライアント100に送られることになっていたが、これらは必ずしも同時に、サーバ200からクライアント100へ送られる必要はない。S1011の処理が行われる時点で認証部122Hに、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書及びSSL証明書と、サーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書及びSSL証明書とが、ともに存在する状態が作れるのであれば、暗号化されたサーバ証明書及びSSL証明書のデータと、暗号化されていないサーバ証明書及びSSL証明書のデータとの一方が他方よりも先にサーバ200からクライアント100に送られても構わない。
また、この実施形態では上述のように、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書とが互いに一致し、且つ、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたSSL証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたSSL証明書とが互いに一致することが、認証部122Hが、サーバ証明書及びSSL証明書に対していかなる改竄もなかった、と判定するための条件となっていた。しかしながら、ここで認証部122Hが確認を行うべき最低限は、サーバ証明書に改竄がないことなのであるから、認証部122Hは、暗号化されてサーバ200から送られて来た後にクライアント第1暗号化復号化部122Eで復号化されたサーバ証明書とサーバ200からクライアント100へ暗号化されることなく送られてきたサーバ証明書とが互いに一致することのみを、認証部122Hが、サーバ証明書に対していかなる改竄もなかった、と判定するための条件とすることも可能である。この場合には、暗号化しないでサーバ200からクライアント100に送信する対象を、サーバ証明書及びSSL証明書から、サーバ証明書のみとすることも当然に可能である。