(57)【要約】【課題】クライアント端末に接続されるセキュアエレメントであって、クライアント端末がサーバとの間で行う暗号化通信において、クライアント端末側について充分なセキュリティを確保することができるセキュアエレメント等を提供する。【解決手段】クライアント端末がサーバとの暗号化通信のために記憶する複数種類のデータや、クライアント端末がサーバとの暗号化通信のために行う複数の処理について、セキュアエレメントがクライアント端末とサーバとの間の通信の危険度に応じた、一部の種類のデータを記憶したり、一部の処理を行ったりする。【選択図】図７
2019097032.tif 000002
【特許請求の範囲】
【請求項１】
サーバとの間で暗号化通信を行うクライアント端末に接続されるセキュアエレメントであって、
前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶手段と、
前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理手段と、
を備えることを特徴とするセキュアエレメント。
【請求項２】
請求項１に記載のセキュアエレメントであって、
前記複数種類のデータは、プリマスターシークレット、マスターシークレット及びセッション鍵であることを特徴とするセキュアエレメント。
【請求項３】
請求項１又は２に記載のセキュアエレメントであって、
前記複数の処理は、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、署名の生成処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理であることを特徴とするセキュアエレメント。
【請求項４】
請求項２に記載のセキュアエレメントであって、
前記記憶手段は、前記危険度が所定のレベル以上である場合には、前記複数種類のデータを全て記憶することを特徴とするセキュアエレメント。
【請求項５】
請求項３に記載のセキュアエレメントであって、
前記処理手段は、前記危険度が第１レベルである場合には、前記複数の処理を全て行うことを特徴とするセキュアエレメント。
【請求項６】
請求項５に記載のセキュアエレメントであって、
前記処理手段は、前記危険度が前記第１レベルより低い第２レベルである場合には、前記複数の処理のうち、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理を行うことを特徴とするセキュアエレメント。
【請求項７】
請求項６に記載のセキュアエレメントであって、
前記処理手段は、前記危険度が前記第２レベルより低い第３レベルである場合には、前記複数の処理のうち、署名の生成処理を行うことを特徴とするセキュアエレメント。
【請求項８】
請求項４に記載のセキュアエレメントであって、
前記記憶手段は、前記危険度が前記所定のレベルより低い場合には、前記複数種類のデータのうち、前記セッション鍵のみを記憶することを特徴とするセキュアエレメント。
【請求項９】
サーバとの間で暗号化通信を行うとともに、セキュアエレメントが接続されたクライアント端末であって、
前記暗号化通信のために記憶する複数種類のデータのうち、前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、前記セキュアエレメントに送信して記憶させる第１制御手段と、
前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を前記セキュアエレメントに行わせる第２制御手段と、
を備えることを特徴とするクライアント端末。
【請求項１０】
サーバとの間で暗号化通信を行うクライアント端末に接続され、記憶手段と処理手段を備えるセキュアエレメントによる情報処理方法であって、
前記記憶手段が、前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶工程と、
前記処理手段が、前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理工程と、
を含むことを特徴とする情報処理方法。
【請求項１１】
サーバとの間で暗号化通信を行うクライアント端末に接続され、前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶手段を備えるセキュアエレメントに含まれるコンピュータを、
前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理手段、
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
暗号化通信にセキュアなＩＣチップを利用する技術分野に関する。
【背景技術】
【０００２】
近年、普及し始めているＩｏＴ（Internet of Things）製品は、例えば、ＩｏＴ製品が備えるセンサーで測定したデータをサーバ装置（以下、「サーバ」という場合がある）で取得すること、ＩｏＴ製品をサーバにより遠隔管理することなどを目的として利用されることがある。そのため、ＩｏＴ製品はインターネット等のネットワークを通じてサーバと接続されるが、安全に通信することが当然に求められる。安全に通信することを目的として一般的に用いられるＴＬＳ（Transport Layer Security）では、サーバと、ＩｏＴ製品等のクライアント端末（以下、「端末」という場合がある）が初めて接続される場合であっても通信できるように、公開鍵暗号を使って相手を確認しつつ共通鍵を双方で共有してから、共通鍵暗号を使って相手と暗号化したデータを送受信するという手法を採用する。
【０００３】
ＩｏＴ製品に限らず、サーバとＴＬＳ通信を行う端末は、ＴＬＳ通信を行うために鍵情報を生成する処理や鍵情報を用いた処理など、複数種類の処理を行う。ところが、端末に対する攻撃によりこうした処理に係る鍵などの情報が流出し、安全な通信を阻害されるおそれがある。
【０００４】
特許文献１には、安全な通信経路を確立することを目的として、端末にセキュリティチップを接続して、セキュリティチップがクライアント証明書を記憶したり、サーバから受信した暗号化セッション鍵を復号化して、記憶したりする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１２９１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術は、セキュリティチップに、安全な通信経路を確立するために必要な一部のデータを記憶させたり、一部の処理を実行させたりしているが、必ずしも高度なセキュリティを確保できるわけではない。
【０００７】
また一方で、セキュリティチップとされるＩＣチップが備えるＣＰＵやメモリは、一般的にＰＣ（Personal Computer）などが備えるそれらよりもロースペックのものであり、ＴＬＳ通信のための全ての処理を実行すると処理時間が長くなるという問題がある。
【０００８】
そこで、本発明は、クライアント端末に接続されるセキュアエレメントであって、クライアント端末がサーバとの間で行う暗号化通信において、クライアント端末側について充分なセキュリティを確保することができるセキュアエレメント等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、サーバとの間で暗号化通信を行うクライアント端末に接続されるセキュアエレメントであって、前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶手段と、前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理手段と、を備えることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のセキュアエレメントであって、前記複数種類のデータは、プリマスターシークレット、マスターシークレット及びセッション鍵であることを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載のセキュアエレメントであって、前記複数の処理は、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、署名の生成処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理であることを特徴とする。
【００１２】
請求項４に記載の発明は請求項２に記載のセキュアエレメントであって、前記記憶手段は、前記危険度が所定のレベル以上である場合には、前記複数種類のデータを全て記憶することを特徴とする。
【００１３】
請求項５に記載の発明は、請求項３に記載のセキュアエレメントであって、前記処理手段は、前記危険度が第１レベルである場合には、前記複数の処理を全て行うことを特徴とする。
【００１４】
請求項６に記載の発明は、請求項５に記載のセキュアエレメントであって、前記処理手段は、前記危険度が前記第１レベルより低い第２レベルである場合には、前記複数の処理のうち、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理を行うことを特徴とする。
【００１５】
請求項７に記載の発明は、請求項６に記載のセキュアエレメントであって、前記処理手段は、前記危険度が前記第２レベルより低い第３レベルである場合には、前記複数の処理のうち、署名の生成処理を行うことを特徴とする。
【００１６】
請求項８に記載の発明は、請求項４に記載のセキュアエレメントであって、前記記憶手段は、前記危険度が前記所定のレベルより低い場合には、前記複数種類のデータのうち、前記セッション鍵のみを記憶することを特徴とする。
【００１７】
請求項９に記載の発明は、サーバとの間で暗号化通信を行うとともに、セキュアエレメントが接続されたクライアント端末であって、前記暗号化通信のために記憶する複数種類のデータのうち、前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、前記セキュアエレメントに送信して記憶させる第１制御手段と、前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を前記セキュアエレメントに行わせる第２制御手段と、を備えることを特徴とする。
【００１８】
請求項１０に記載の発明は、サーバとの間で暗号化通信を行うクライアント端末に接続され、記憶手段と処理手段を備えるセキュアエレメントによる情報処理方法であって、前記記憶手段が、前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶工程と、前記処理手段が、前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理工程と、を含むことを特徴とする。
【００１９】
請求項１１に記載の発明は、サーバとの間で暗号化通信を行うクライアント端末に接続され、前記クライアント端末が前記暗号化通信のために記憶する複数種類のデータのうち、前記クライアント端末と前記サーバとの間の通信の危険度に応じた少なくとも一部の種類のデータを、当該クライアント端末の代わりに記憶する記憶手段を備えるセキュアエレメントに含まれるコンピュータを、前記クライアント端末が前記暗号化通信のために行う複数の処理のうち、前記通信の危険度に応じた少なくとも一部の処理を、当該クライアント端末の代わりに行う処理手段、として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、クライアント端末がサーバとの暗号化通信のために記憶する複数種類のデータや、クライアント端末がサーバとの暗号化通信のために行う複数の処理について、セキュアエレメントがクライアント端末とサーバとの間の通信の危険度に応じた、一部の種類のデータを記憶したり、一部の処理を行ったりすることにより、クライアント端末がサーバとの間で行う暗号化通信において、クライアント端末側について充分なセキュリティを確保することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態に係る通信システムＳの概要構成例を示すブロック図である。
【図２】本実施形態に係る端末１の概要構成例を示すブロック図である。
【図３】本実施形態に係る端末１の記憶部１２に記憶される危険度判定テーブルＴの構成例を示す図である。
【図４】本実施形態に係るセキュアエレメント１８の概要構成例を示すブロック図である。
【図５】は本実施形態に係るサーバ２の概要構成例を示すブロック図である。
【図６】本実施形態に係る端末１の制御部１１による危険度判定処理の一例を示すフローチャートである。
【図７】本実施形態に係る通信システムＳの動作例（危険度「３」の場合）を示すシーケンス図である。
【図８】本実施形態に係る通信システムＳの動作例（危険度「２」の場合）を示すシーケンス図である。
【図９】本実施形態に係る通信システムＳの動作例（危険度「１」の場合）を示すシーケンス図である。
【図１０】変形例１に係る通信システムＳの動作例を示すシーケンス図である。
【図１１】変形例２に係る端末１の記憶部１２に記憶される危険度判定テーブルＴ２の構成例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、端末とサーバを含む通信システムにおいて、端末に搭載されるＩＣチップ（「セキュアエレメント（ＳＥ）」という）に対して本発明を適用した場合の実施の形態である。
【００２３】
まず、図１等を参照して、本実施形態に係る通信システムＳと端末１の構成及び機能概要を説明する。
【００２４】
［１．通信システムＳの構成］
図１は、本実施形態に係る通信システムＳの概要構成例を示すブロック図である。通信システムＳは、端末１とセキュアエレメント１８とサーバ２−１、２−２、２−３（サーバ２−１、２−２、２−３をまとめてサーバ２という場合がある）を含んで構成され、端末１と各サーバ２は、ネットワークＮＷを介して相互にデータの送受信が可能になっている。なお、ネットワークＮＷは、例えば、ＬＡＮ（Local Area Network）、インターネット、専用通信回線（例えば、ＣＡＴＶ（Community Antenna Television）回線）、移動体通信網（基地局等を含む）、及びゲートウェイ等により構築されている。
【００２５】
端末１は、温度センサーを備えており、周囲の温度を測定して得た温度データを記録するＩｏＴデバイスである。サーバ２−１は、端末１の属するＬＡＮ外に設置されたサーバであり、端末１の保持する鍵情報を更新するサーバである。サーバ２−２は、端末１の属するＬＡＮ外に設置されたサーバであり、端末１の保持する鍵情報を更新しないサーバである。サーバ２−３は、端末１の属するＬＡＮ内に設置されたサーバである。
【００２６】
［２．端末１の構成］
図２は、本実施形態に係る端末１の概要構成例を示すブロック図である。図２に示すように、端末１は、制御部１１、記憶部１２、無線通信部１３、表示部１４、入力部１５、ＳＥ（セキュアエレメント）インターフェース１６等を備えて構成され、これらの構成要素はバス１７を介して相互に接続される。また、セキュアエレメント１８は、ＳＥインターフェース１６に接続されており、端末１とデータの送受信が可能となっている。
【００２７】
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、及びＲＡＭ（Random Access Memory）等により構成される。記憶部１２は、例えばフラッシュメモリ等の不揮発性メモリにより構成される。上記ＲＯＭまたは記憶部１２には、ＯＳ（Operating System）及びミドルウェアが記憶される。また、記憶部１２には、端末１にインストールされたアプリケーションソフトウェア（アプリケーションプログラム言語から構成されるソフトウェア）等が記憶される。
【００２８】
また、記憶部１２には危険度判定テーブルＴが記憶される。図３は、危険度判定テーブルＴの概要構成例を示す図である。危険度判定テーブルＴには、「接続するサーバのアドレス」と、これに対応する「危険度」を示す情報が規定されている。具体的には、「鍵情報を更新する外部サーバのアドレス」と対応付けて「３（高）」が規定され、「その他の外部サーバのアドレス」と対応付けて「２（中）」が規定され、「同一ＬＡＮ内のサーバのアドレス」と対応付けて「１（低）」が規定されている。なお、例えば、サーバ２−１は、「鍵情報を更新する外部サーバ」に該当し、サーバ２−２は、「その他の外部サーバ」に該当し、サーバ２−３は、「同一ＬＡＮ内のサーバ」に該当する。
【００２９】
更に、記憶部１２には、サーバ２−１との通信に利用するクライアント証明書、サーバ２−２との通信に利用するクライアント証明書、クライアント秘密鍵、サーバ２−３との通信に利用するクライアント証明書、サーバ公開鍵が記憶される。
【００３０】
無線通信部１３は、アンテナを有し、無線ＬＡＮルータ（又は移動体通信網における基地局）との間で行われる無線通信を制御する。表示部１４は、例えば液晶パネルを有し、液晶パネルの表示制御を行うことにより、操作画面等を表示する。入力部１５は、ユーザからの操作指示を受け付ける操作ボタンを有し、操作指示に応じた信号を制御部１１に出力する。ＳＥインターフェース１６は、制御部１１とセキュアエレメント１８との間のインターフェースを担う。
【００３１】
［３．セキュアエレメント１８の構成］
図４は、本実施形態に係るセキュアエレメント１８の概要構成例を示すブロック図である。図４に示すように、セキュアエレメント１８は、耐タンパー性を備えたＩＣチップであり、ＣＰＵ１８１、ＲＡＭ１８２、フラッシュメモリ１８３、及びＩ／Ｏ回路１８４等を備え、これらの構成要素はバス１８５を介して相互に接続される。
【００３２】
ＲＡＭ１８２には、例えばＯＳ、ミドルウェア、各種アプリケーションが機能するうえで一時的に必要となるデータが記憶される。
【００３３】
フラッシュメモリ１８３は、例えばＮＯＲ型フラッシュメモリであって、ＯＳ、ミドルウェア及びアプリケーション等を記憶する。
【００３４】
また、フラッシュメモリ１８３は、サーバ２−１との通信に利用するサーバ公開鍵、クライアント秘密鍵、サーバ２−２との通信に利用するサーバ公開鍵、サーバ２−３との通信に利用するクライアント秘密鍵が記憶される。
【００３５】
Ｉ／Ｏ回路１８４は、ＩＳＯ７８１６等によって定められた、Ｃ１〜Ｃ８の８個の接続端子を有する。ここで、Ｃ１端子は電源端子（ＶＣＣ）であり、Ｃ５端子はグランド端子（ＧＮＤ）である。また、Ｃ２端子は、リセット端子（ＲＳＴ）であり、Ｃ３端子は、クロック端子（ＣＬＫ）である。また、Ｃ７端子は、ＣＰＵ１８１と制御部１１との間の通信のために用いられる。
【００３６】
ＣＰＵ１８１は、制御部１１からコマンドを受信すると、当該コマンドに応じた処理を実行し、コマンドに対する応答を制御部１１に対して行う。なお、ＣＰＵ１８１は、端末１の制御部１１に含まれるＣＰＵより処理速度が遅いものが使用されている。
【００３７】
［４．サーバ２の構成］
次に、サーバ２の構成について説明する。図５に示すように、サーバ２は、大別して、制御部２１１、記憶部２１２、通信部２１３、表示部２１４及び操作部２１５を含んで構成されている。
【００３８】
記憶部２１２は、例えばハードディスクドライブ等により構成されており、ＯＳ（Operating System）、サービス提供プログラム、及び各種データを記憶する。
【００３９】
通信部２１３は、ネットワークＮＷに接続して、端末１等との通信状態を制御する。
【００４０】
表示部２１４は、例えば、液晶ディスプレイ等により構成されており、文字や画像等の情報を表示するようになっている。
【００４１】
操作部２１５は、例えば、キーボード、マウス等により構成されており、オペレータからの操作指示を受け付け、その指示内容を指示信号として制御部２１１に出力するようになっている。
【００４２】
制御部２１１は、ＣＰＵ、ＲＯＭ、ＲＡＭ等により構成されている。そして、ＣＰＵが、ＲＯＭや記憶部２１２に記憶された各種プログラムを読み出し実行することにより各種機能を実現する。
【００４３】
［５．通信システムＳの動作］
次に、通信システムＳにおいて、端末１がサーバ２に接続して、暗号化通信（ＴＬＳ通信）を行う際のフローについて説明する。まずは、図６を用いて、端末１が通信の危険度を判定する処理について説明し、次いで、図７−図９を用いて、危険度に応じたハンドシェイク（通信データを共通鍵により暗号化して通信を行うための事前処理）について説明する。
【００４４】
［５．１．端末１の動作］
図６を用いて、端末１がサーバ２に接続する際に行う危険度判定処理について説明する。なお、図６は、端末１の制御部１１による危険度判定処理の一例を示すフローチャートである。
【００４５】
端末１の制御部１１は、サーバ２に接続を開始する際、接続するサーバ２のアドレスを取得する（ステップＳ１）。
【００４６】
次に、制御部１１は、危険度判定テーブルＴを参照し、ステップＳ１の処理で取得したアドレスに基づいて危険度を判定し（ステップＳ２）、危険度判定処理を終了する。
【００４７】
すなわち、制御部１１は、危険度判定処理により、接続するサーバ２に応じて、端末１とサーバ２の間の通信の危険度が「１」〜「３」の何れであるかを判定する。
【００４８】
［５．２．危険度「３」である場合の通信システムＳの動作］
次に、図７を用いて、危険度判定処理により危険度が「３」と判定された場合における通信システムＳの動作フローについて説明する。
【００４９】
まず、端末１の制御部１１は、後述するマスターシークレットを生成するための乱数Ａを生成する（ステップＳ１０１Ｂ）。次いで、制御部１１は、ステップＳ１０１Ｂで生成した乱数Ａを含むメッセージ「Client Hello」をサーバ２に送信する（ステップＳ１０２Ｂ）。また、制御部１１は、ステップＳ１０１で生成した乱数Ａをセキュアエレメント１８に送信する（ステップＳ１０３Ｂ）。
【００５０】
メッセージ「Client Hello」を受信したサーバ２の制御部２１１は、後述するマスターシークレットを生成するための乱数Ｂを生成する（ステップＳ１０１Ａ）。次いで、制御部１１は、ステップＳ１０１Ａで生成した乱数Ｂを含むメッセージ「Server Hello」を端末１に送信する（ステップＳ１０２Ａ）。
【００５１】
メッセージ「Server Hello」を受信した端末１の制御部１１は、メッセージ「Server Hello」に含まれる乱数Ｂをセキュアエレメント１８に送信する（ステップＳ１０４Ｂ）。
【００５２】
次に、セキュアエレメント１８のＣＰＵ１８１は、プリマスターシークレットと呼ばれる乱数を生成する（ステップＳ１０１Ｃ）。次いで、ＣＰＵ１８１は、ステップＳ１０１Ｃで生成したプリマスターシークレットを、サーバ公開鍵により暗号化し（ステップＳ１０２Ｃ）、端末１に送信する（ステップＳ１０３Ｃ）。なお、ＣＰＵ１８１は、プリマスターシークレットをフラッシュメモリ１８３に記憶させておく。
【００５３】
一方、サーバ２の制御部２１１は、ステップＳ１０２Ａの終了後、メッセージ「Certificate Request」を端末１に送信する（ステップＳ１０３Ａ）。メッセージ「Certificate Request」は、端末１に対してクライアント認証用の証明書（クライアント証明書）の送信を要求するメッセージである。次いで、制御部２１１は、メッセージ「Server Hello Done」を端末１に送信する（ステップＳ１０４Ａ）。端末１はこれを受けると、メッセージを送信する側になる。
【００５４】
端末１の制御部１１は、メッセージ「Certificate Request」に対して、クライアント証明書を含むメッセージ「Client Certficate」をサーバ２に送信する（ステップＳ１０５Ｂ）。なお、クライアント証明書は予め端末１の記憶部１２に記憶しておくものとする。
【００５５】
これに対して、サーバ２の制御部２１１は、メッセージ「Client Certficate」を端末１から受信すると、これに含まれるクライアント証明書を検証し、クライアント公開鍵を取得する（ステップＳ１０５Ａ）。
【００５６】
また、制御部１１は、セキュアエレメント１８から、暗号化されたプリマスターシークレットを受信すると、当該暗号化されたプリマスターシークレットを含むメッセージ「Client Key Exchange」をサーバ２に送信する（ステップＳ１０６Ｂ）。これに対して、サーバ２の制御部２１１は、暗号化されたプリマスターシークレットをサーバ秘密鍵で復号化して、プリマスターシークレットを取得する（ステップＳ１０６Ａ）。
【００５７】
端末１の制御部１１は、ステップＳ１０６Ｂの終了後、署名作成用データをセキュアエレメント１８に送信する（ステップＳ１０７Ｂ）。なお、署名作成用データは、例えば、それまでにサーバ２との間でやり取りしたコマンドの総ハッシュ値である。
【００５８】
これに対して、セキュアエレメント１８のＣＰＵ１８１は、署名作成用データとクライアント秘密鍵を用いて署名を生成し（ステップＳ１０４Ｃ）、端末１に送信する（ステップＳ１０５Ｃ）。
【００５９】
また、ＣＰＵ１８１は、ステップＳ１０３Ｂで受信した乱数Ａ、ステップＳ１０４Ｂで受信した乱数Ｂ、ステップＳ１０１Ｃで生成したプリマスターシークレットを用いて、マスターシークレットを生成し（ステップＳ１０６Ｃ）、次いで、セッション鍵を生成する（ステップＳ１０７Ｃ）。このとき、ＣＰＵ１８１は、セッション鍵を生成したことを端末１に報告する。なお、ＣＰＵ１８１は、マスターシークレット及びセッション鍵をフラッシュメモリ１８３に記憶させておく。
【００６０】
一方、端末１の制御部１１は、セキュアエレメント１８から署名を受信すると、当該署名を含むメッセージ「Certificate Verify」をサーバ２に送信する（ステップＳ１０８Ｂ）。また、制御部１１は、セキュアエレメント１８からセッション鍵を生成したことの報告を受けると、メッセージ「Client Finished」をサーバ２に送信する（ステップＳ１０９Ｂ）。
【００６１】
他方、サーバ２の制御部２１１は、端末１からメッセージ「Certificate Verify」を受信すると、これに含まれる署名の検証を、ステップＳ１０５Ａの処理で取得したクライアント公開鍵を用いて行う。
【００６２】
次いで、制御部２１１は、ステップＳ１０２Ｂで受信した乱数Ａ、ステップＳ１０１Ａで生成した乱数Ｂ、ステップＳ１０６Ａで取得したプリマスターシークレットを用いて、マスターシークレットを生成し（ステップＳ１０８Ａ）、次いで、セッション鍵を生成する（ステップＳ１０９Ａ）。そして、制御部２１１は、メッセージ「Server Finished」を端末１に送信する（ステップＳ１１０Ａ）。
【００６３】
以降、端末１とサーバ２はセッション鍵（共通鍵）を用いてデータを暗号化して通信を行う。但し、端末１は、セッション鍵をセキュアエレメント１８に記憶させているので、サーバ２から暗号化データを受信した際には、暗号化データをセキュアエレメント１８に送信し、セキュアエレメント１８にセッション鍵で復号化してもらったデータを受信する。また、端末１がサーバ２にデータ（例えば、温度データ）を送信する際には、当該データをセキュアエレメント１８に送信し、セキュアエレメント１８にセッション鍵で暗号化してもらった暗号化データを受信して、これをサーバ２に送信する。
【００６４】
［５．３．危険度「２」である場合の通信システムＳの動作］
次に、図８を用いて、危険度判定処理により危険度が「２」と判定された場合における通信システムＳの動作フローについて説明する。但し、一部の処理を除き、危険度判定処理により危険度が「３」と判定された場合における通信システムＳの動作フローと同様であるため、ここでは相違点を中心に説明する。なお、図８では、図７の処理内容と同様の処理について図７と同じ符号（ステップ番号）を付している。
【００６５】
危険度が「３」の場合と危険度が「２」の場合の相違点は、危険度が「３」の場合、セキュアエレメント１８のＣＰＵ１８１が署名を生成（ステップＳ１０４Ｃ）するのに対して、危険度が「２」の場合、端末１の制御部１１が署名を生成する点である。
【００６６】
すなわち、端末１の制御部１１は、ステップＳ１０６Ｂの終了後、署名作成用データとクライアント秘密鍵を用いて署名を生成し（ステップＳ２０１Ｂ）、端末１に送信する（ステップＳ１０８Ｂ）。
【００６７】
一方、セキュアエレメント１８のＣＰＵ１８１は、ステップＳ１０３Ｃの終了後、ステップＳ１０６Ｃに移行する。
【００６８】
このように、危険度判定処理により危険度が「２」と判定された場合、署名生成をセキュアエレメント１８のＣＰＵ１８１ではなく、端末１の制御部１１で行うため、危険度判定処理により危険度が「３」と判定された場合と比較して、署名生成に要する処理時間を短縮することができる。なお、危険度が「２」と判定された場合、フラッシュメモリ１８３に記憶されるのは、プリマスターシークレット、クライアント秘密鍵、マスターシークレット及びセッション鍵のうち、プリマスターシークレット、マスターシークレット及びセッション鍵の３つのデータである。
【００６９】
［５．４．危険度「１」である場合の通信システムＳの動作］
次に、図９を用いて、危険度判定処理により危険度が「１」と判定された場合における通信システムＳの動作フローについて説明する。但し、一部の処理を除き、危険度判定処理により危険度が「３」と判定された場合における通信システムＳの動作フローと同様であるため、ここでは相違点を中心に説明する。なお、図９では、図７の処理内容と同様の処理について図７と同じ符号（ステップ番号）を付している。
【００７０】
危険度が「３」の場合と危険度が「１」の場合の相違点は、危険度が「３」の場合、セキュアエレメント１８のＣＰＵ１８１が、プリマスターシークレットの生成及び暗号化（ステップＳ１０１Ｃ、ステップＳ１０２Ｃ）、及び、マスターシークレットの生成（ステップＳ１０６Ｃ）及びセッション鍵の生成（ステップＳ１０７Ｃ）を行うのに対して、危険度が「１」の場合、端末１の制御部１１がこれらの処理を行う点である。
【００７１】
すなわち、端末１の制御部１１は、ステップＳ１０１Ｂの処理で乱数Ａを生成し、サーバ２から乱数Ｂを受信すると、プリマスターシークレットと呼ばれる乱数を生成し（ステップＳ３０１Ｂ）、次いでこれをサーバ公開鍵により暗号化する（ステップＳ３０２Ｂ）。そして、制御部１１は、当該暗号化されたプリマスターシークレットを含むメッセージ「Client Key Exchange」をサーバ２に送信する（ステップＳ１０６Ｂ）。
【００７２】
また、端末１の制御部１１は、プリマスターシークレットを生成すると、ステップＳ１０１Ｂで生成した乱数Ａ、ステップＳ１０２Ａで受信した乱数Ｂ、ステップＳ３０１Ｂで生成したプリマスターシークレットを用いて、マスターシークレットを生成し（ステップＳ３０３Ｂ）、次いで、セッション鍵を生成する（ステップＳ３０４Ｂ）。そして、制御部１１は、当該セッション鍵を記憶部１２に記憶させる。
【００７３】
一方、セキュアエレメント１８のＣＰＵ１８１は、端末１から署名作成用データを受信するまで待機しており、署名作成用データを受信すると、ステップＳ１０４Ｃ及びステップＳ１０５Ｃを実行する。
【００７４】
このように、危険度判定処理により危険度が「１」と判定された場合、プリマスターシークレットの生成及び暗号化や、マスターシークレット及びセッション鍵の生成をセキュアエレメント１８のＣＰＵ１８１ではなく、端末１の制御部１１で行うため、危険度判定処理により危険度が「３」や「２」と判定された場合と比較して、これらの処理に要する処理時間を短縮することができる。
【００７５】
以上説明したように、本実施形態のセキュアエレメント１８は、サーバ２との間で暗号化通信を行う端末１（「クライアント端末」の一例）に接続され、フラッシュメモリ１８３（「記憶手段」の一例）が、端末１が暗号化通信のために記憶するプリマスターシークレット、マスターシークレット、セッション鍵（「複数種類のデータ」の一例）のうち、端末１とサーバ２との間の通信の危険度に応じた少なくとも一部の種類のデータを、端末１の代わりに記憶し、ＣＰＵ１８１（「処理手段」の一例）が、端末１が暗号化通信のために行うプリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、署名の生成処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理（「複数の処理」の一例）のうち、通信の危険度に応じた少なくとも一部の処理を、端末１の代わりに行う。
【００７６】
したがって、本実施形態のセキュアエレメント１８によれば、端末１がサーバ２との暗号化通信のために記憶するプリマスターシークレット、マスターシークレット及びセッション鍵や、端末１がサーバ２との暗号化通信のために行うプリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、署名の生成処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理について、セキュアエレメント１８が端末１とサーバ２との間の通信の危険度に応じた、一部の種類のデータを記憶したり、一部の処理を行ったりすることにより、端末１がサーバ２との間で行う暗号化通信において、端末１側について充分なセキュリティを確保することができる。
【００７７】
また、ＣＰＵ１８１は、危険度が「３（高）」である場合には、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、署名の生成処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理を行う。
【００７８】
更に、セキュアエレメント１８のフラッシュメモリ１８３は、危険度が「３（高）」又は「２（中）」（「所定のレベル以上」の一例）である場合には、プリマスターシークレット、マスターシークレット及びセッション鍵を記憶する。また、ＣＰＵ１８１は、危険度が「２（中）」である場合には、プリマスターシークレットの生成処理、当該プリマスターシークレットの暗号化処理、マスターシークレットの生成処理、及び、セッション鍵の生成処理を行う。
【００７９】
更にまた、ＣＰＵ１８１は、危険度が「１（低）」である場合には、署名の生成処理を行う。
【００８０】
このように、本実施形態のセキュアエレメント１８は、危険度が高いほど、暗号化通信のために記憶するデータを多く記憶し、また、危険度が高いほど、暗号化通信のために行う処理を多く行う。これにより、端末１がサーバ２との間で行う暗号化通信において、端末１側について充分なセキュリティを確保することができる。また、セキュアエレメント１８のＣＰＵ１８１は、端末１側について必要以上にセキュリティを確保しないため、端末１の制御部１１と比較して処理速度の落ちるセキュアエレメント１８のＣＰＵ１８１が不要な処理を行うことによる時間の無駄を削減することができる。
【００８１】
［６．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
【００８２】
［６．１．変形例１］
次に、図１０を用いて、危険度判定処理により危険度が「１」と判定された場合における通信システムＳの動作の変形例１について説明する。変形例１では、図１０に示すように、図９におけるセキュアエレメント１８のＣＰＵ１８１が行う署名生成を、図８と同様に、端末１の制御部１１が行うものである。なお、図１０では、図８、図９の処理内容と同様の処理について図８、図９と同じ符号（ステップ番号）を付している。
【００８３】
変形例１は、危険度判定処理により危険度が「２」と判定された場合（図８参照）と、危険度判定処理により危険度が「１」と判定された場合（図９参照）の組み合わせ例であるが、端末１の制御部１１はステップＳ３０４Ｂの処理で生成したセッション鍵を、セキュアエレメント１８に送信して、記憶させる。つまり、端末１の制御部１１はセッション鍵の生成までの処理を行うが、セッション鍵は端末１の記憶部１２ではなくセキュアエレメント１８に記憶される。なお、変形例１において危険度が「１」（「所定のレベルより低い」の一例）と判定された場合、フラッシュメモリ１８３に記憶されるのは、プリマスターシークレット、マスターシークレット及びセッション鍵のうち、セッション鍵だけである。
【００８４】
なお、変形例１では、図１０の処理を危険度が「１」と判定された場合における例として説明したが、例えば、危険度判定処理において危険度を「１」〜「４」の４段階で判定することとし（危険度判定テーブルＴも危険度「４」の行を追加しておくこととする）、図７の処理を危険度が「４」と判定された場合に実行し、図８の処理を危険度が「３」と判定された場合に実行し、図９の処理を危険度が「２」と判定された場合に実行し、図１０の処理を危険度が「１」と判定された場合に実行することとしてもよい。
【００８５】
［６．２．変形例２］
上記実施形態では、図６の危険度判定処理における危険度判定に、図３の危険度判定テーブルＴを参照することとしたが、これに代えて、図１１の危険度判定テーブルＴ２を参照することとしてもよい。図１１は、危険度判定テーブルＴ２の概要構成例を示す図である。危険度判定テーブルＴ２には、「通信の目的」と、これに対応する「危険度」を示す情報が規定されている。具体的には、「端末ソフトウェアの更新」と対応付けて「３（高）」が規定され、「温度データの送信」と対応付けて「２（中）」が規定され、「テストデータの送信」と対応付けて「１（低）」が規定されている。
【００８６】
［６．３．変形例３］
上記実施形態では、端末１とサーバ２の間の通信の危険度を端末１の制御部１１が判定することとしたが、サーバ２の制御部２１１やセキュアエレメント１８のＣＰＵ１８１が判定することとしてもよい。
【００８７】
サーバ２の制御部２１１が危険度を判定する場合であれば、危険度判定テーブルＴの代わりに、例えば、「接続するクライアント端末のアドレス」と危険度を３段階（「３（高）」、「２（中）」、「１（低）」）で規定する危険度判定テーブル（図示しない）を記憶部２１２に記憶させる。このとき、危険度判定テーブルは、例えば、「鍵情報の更新対象である外部端末のアドレス」と対応付けて「３（高）」を規定し、「その他の外部端末のアドレス」と対応付けて「２（中）」を規定し、「同一ＬＡＮ内の端末のアドレス」と対応付けて「１（低）」を規定するようにする。そして、制御部２１１は、端末１と接続する際に、端末１のアドレスを取得し、当該危険度判定テーブルを参照して危険度を判定することとする。
【００８８】
また、セキュアエレメント１８のＣＰＵ１８１が危険度を判定する場合であれば、危険度判定テーブルＴをフラッシュメモリ１８３に記憶させておき、端末１がサーバ２に接続する際に、制御部１１がセキュアエレメント１８に危険度判定処理を依頼し、判定結果を受け取ることとする。具体的には、制御部１１は、サーバ２と接続する際に、サーバ２のアドレスを取得し、当該アドレスとともに危険度判定処理の依頼をセキュアエレメント１８に対して行う。そして、セキュアエレメント１８のＣＰＵ１８１は、フラッシュメモリ１８３に記憶させている危険度判定テーブルＴを参照して、端末１から受け取ったアドレスに基づいて危険度判定を行い、危険度を端末１に返信する。
【００８９】
［６．４．変形例４］
上記実施形態では、端末１が温度センサーを備えており、端末１が温度データをサーバ２に送信する通信システムＳについて説明したが、例えば、端末１の代わりである水道メーターに通信機能を持たせるとともにセキュアエレメントを設け、サーバ２に水道使用量データを送信する通信システムとしてもよい。そして、例えば、水道メーターが水道使用量データを送信する場合には危険度「低」として通信を行い、水道メーターのソフトウェアをアップデートするための通信を行う場合には危険度「高」として通信を行うこととしてもよい。
【００９０】
また、セキュアエレメントとしてのＵＳＩＭカードを備えるスマートフォンとサーバ２の通信システムにおいて、スマートフォンがブラウザでｗｅｂページを表示するための通信を行う場合には危険度「低」として通信を行い、スマートフォンのファームウェアのアップデートや、クレジット決済に係る通信を行う場合には危険度「高」として通信を行うこととしてもよい。
【００９１】
なお、上記実施形態では、危険度を３段階に分けることとしたが、用途やセキュリティポリシーに従い、４段階以上に分けてもよいし、２段階にしてもよい。
【符号の説明】
【００９２】
１  端末
１１  制御部
１２  記憶部
１３  無線通信部
１４  表示部
１５  入力部
１６  ＳＥインターフェース
１７  バス
１８  セキュアエレメント
１８１  ＣＰＵ
１８２  ＲＡＭ
１８３  フラッシュメモリ
１８４  Ｉ／Ｏ回路
１８５  バス
２  サーバ
【図１】
2019097032.tif 000003
【図２】
2019097032.tif 000004
【図３】
2019097032.tif 000005
【図４】
2019097032.tif 000006
【図５】
2019097032.tif 000007
【図６】
2019097032.tif 000008
【図７】
2019097032.tif 000009
【図８】
2019097032.tif 000010
【図９】
2019097032.tif 000011
【図１０】
2019097032.tif 000012
【図１１】
2019097032.tif 000013