(57)【要約】  セキュア装置は、セキュア領域（１２０）にＣＰＵ（１２１）および不揮発性メモリ（１２８）を有する。不揮発性メモリ（１２８）は、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、セキュリティ処理で用いるセキュリティ情報とを格納する。ＣＰＵ（１２１）は、複数種類のプログラムのうち第１プログラムを実行して第１外部装置との間で第１セキュリティ処理を実行することで、前記第１外部装置から機密情報を取得する。また、ＣＰＵ（１２１）は、複数種類のプログラムのうち第１プログラムと異なる第２プログラムを実行して第２外部装置との間で第２セキュリティ処理を実行することで、機密情報を、第２外部装置に送信するための機密情報に変換する。
2017122361.tif 000002
【特許請求の範囲】
【請求項１】
セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報とを格納し、
前記プロセッサは、前記複数種類のプログラムのうち第１プログラムを実行して第１外部装置との間で第１セキュリティ処理を実行することで、前記第１外部装置から機密情報を取得し、
前記プロセッサは、前記複数種類のプログラムのうち前記第１プログラムと異なる第２プログラムを実行して第２外部装置との間で第２セキュリティ処理を実行することで、前記機密情報を、前記第２外部装置に送信するための機密情報に変換する
ことを特徴とするセキュリティ装置。
【請求項２】
前記メモリは、前記セキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、前記セキュア度の情報に対する要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力することを特徴とする請求項１に記載のセキュリティ装置。
【請求項３】
前記セキュリティ情報は、前記外部装置との間で相互認証を実行する場合に使用する情報であり、前記セキュリティ処理は、前記外部装置と前記セキュリティ装置との相互認証処理と、セッション鍵を生成する処理と、前記機密情報を復号および暗号化するコンテンツ鍵を生成する処理を含むことを特徴とする請求項１に記載のセキュリティ装置。
【請求項４】
前記セキュア領域の外部に外部メモリを有し、
前記メモリは、ユニークなマスタ鍵を格納し、
前記プロセッサは、前記マスタ鍵を用いて、前記複数種類のプログラムの一部または全部を暗号化し、暗号化したプログラムを前記外部メモリに格納することを特徴とする請求項１に記載のセキュリティ装置。
【請求項５】
前記メモリは、前記プロセッサおよび前記メモリの性能に関する情報を格納し、
前記プロセッサは、前記性能に関する問い合わせを受け付けた場合に、前記性能に関する情報を暗号化して出力することを特徴とする請求項１に記載のセキュリティ装置。
【請求項６】
セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定の処理を実行する複数種類のプログラムと、前記セキュア領域を有するセキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、外部装置から前記セキュア度の情報の要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力する
ことを特徴とするセキュリティ装置。
【請求項７】
コンピュータが実行する制御方法であって、
前記コンピュータは、セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報とを格納し、
前記プロセッサは、前記複数種類のプログラムのうち第１プログラムを実行して第１外部装置との間で第１セキュリティ処理を実行することで、前記第１外部装置から機密情報を取得し、
前記プロセッサは、前記複数種類のプログラムのうち前記第１プログラムと異なる第２プログラムを実行して第２外部装置との間で第２セキュリティ処理を実行することで、前記機密情報を、前記第２外部装置に送信するための機密情報に変換する
処理を実行することを特徴とする制御方法。
【請求項８】
コンピュータが実行する制御方法であって、
セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定の処理を実行する複数種類のプログラムと、前記セキュア領域を有するセキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、外部装置から前記セキュア度の情報の要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力する
処理を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ装置等に関する。
【背景技術】
【０００２】
近年、通信機能、センサ機能、プロセッサ機能等を備えたＩｏＴ（Internet  of  Things）機器を用いて、様々な情報をサーバに蓄積し、蓄積したデータを解析することで付加価値を生むシステムが考案されている。【０００３】
例えば、車にＩｏＴ機器を搭載し、ＩｏＴ機器から車の位置情報を収集して分析することで、渋滞情報を配信することができる。健康器具にＩｏＴ機器を搭載し、ユーザの歩数、血圧、体温等を収集して分析することで、ある場所に住む人間全体の健康状態と、ユーザの健康状態とを比較し、病気にかかる確率を割り出すことができる。また、ホームサーバにＩｏＴ機器を搭載し、ホームサーバでユーザが視聴する映像情報を収集して分析することで、年齢別、性別、居住地域別の視聴傾向を把握することができる。【０００４】
ここで、各ＩｏＴ機器とサーバとを接続するＩｏＴネットワークシステムには、様々な接続形態がある。図７は、従来のＩｏＴネットワークシステムの一例を示す図である。図７に示すように、このＩｏＴネットワークシステムは、サーバ１０と、ＯＮＵ（Optical  Network  Unit）１５と、ルータ１６と、放送局２０と、端末装置３０と、ＨＤＤ（Hard  Disk  Drive）４０とを有する。【０００５】
サーバ１０は、ＤＢ（Data  Base）１０ｂに接続される。端末装置３０は、ＣＡＳ（Conditional  Access  Systems）カード３５が挿入されており、ＩｏＴ機器３０ａ，３０ｂを有する。ＨＤＤ４０は、ＩｏＴ機器４０ａを有する。端末装置３０は、アンテナ６ａを介して、放送局から電波を受信する。また、端末装置３０は、ホームネットワーク５を介して、ルータ１６、ＨＤＤ４０に接続される。【０００６】
図７に示すＩｏＴネットワークシステムでは、端末装置３０は、２つのネットワークに接続されている。１つは放送網であり、端末装置３０は、放送電波およびアンテナ６ａを経由して、映像番組を放送局２０から受信する。もう一つはインターネット網であり、端末装置３０は、光網、ＯＮＵ１５、ルータ１６、ホームネットワーク５を経由して、サーバ１０との間でデータを送受信する。ホームネットワーク５は、Ethernet（登録商標）網の一例である。【０００７】
端末装置３０のユーザは、映像情報を放送網経由或いはインターネット経由で視聴することができる。端末装置３０のユーザは、映像情報を、ＨＤＤ４０に蓄積しておくことで、自身の好きなタイミングで、映像情報を視聴することができる。【０００８】
例えば、端末装置３０のＩｏＴ機器３０ａ，３０ｂは、視聴情報、個人情報等を、インターネット経由でサーバ１０に送信する。個人情報には、ユーザの年齢、性別、住所等が含まれる。サーバ１０は、端末装置３０のＩｏＴ機器３０ａ，３０ｂやその他のＩｏＴ機器から受信した視聴情報、個人情報等を、ＤＢ１０ｂに蓄積し、ＤＢ１０ｂに蓄積された視聴情報、個人情報等を解析し、年齢別、性別、居住地域の視聴傾向を把握する。なお、ここでは説明を省略するが、サーバ１０がＩｏＴ機器から各種の情報を収集することで、上記のように、渋滞情報や、病気にかかる確率なども算出することもできる。【０００９】
図８は、従来の端末装置の構成を示す機能ブロック図である。図８に示すように、端末装置３０は、ＬＳＩ（Large-Scale  Integration）３１と、メインＣＰＵ（Central  Processing  Unit）３２と、メインＲＡＭ（Random  Access  Memory）３３、外部不揮発性メモリ３４、通信用ハード３５を有する。各装置３１〜３５は、バス３６に接続される。ＬＳＩは、グラフィックプロセッサ３１ａ、ビデオデコーダー３１ｂ、チューナー３１ｃを有し、ＩＦ３１ｄによって、バス３６に接続される。図８に示すように、従来の端末装置３０のＬＳＩ３１には、メインＣＰＵ３２が含まれておらず、バス３６を介して、データをやり取りする。端末装置３０は、メインＣＰＵ３２がプログラムをメインＲＡＭ３３に読み出して、後述する処理を実行する。【００１０】
例えば、端末装置３０には、所定のプロトコルスタックが実装される。図９は、プロトコルスタックの一例を示す図である。図９に示すように、プロトコルスタックは、一般的に、物理層、リンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層に分けられる。なお、各層は、余り厳密に適用されておらず、各層の境目は曖昧である。【００１１】
例えば、放送網関連のプロトコルスタックは、放送網層、ＭＰＥＧ（Moving  Picture  Experts  Group）−ＴＳ（Transport  Stream）層、セクション層、ＰＥＳ層、番組情報層、セキュリティＣＡＳ層、圧縮映像層、圧縮音声層を含む。放送網関連のプロトコルスタックには、ネットワーク層に対応する層は基本的に存在しない。【００１２】
例えば、インターネット網関連のプロトコルスタックは、Ethernet層、ＩＰ（Internet  Protocol）層、ＴＣＰ（Transmission  Control  Protocol）層またはＵＤＰ（User  Datagram  Protocol）層を含む。また、インターネット網関連のプロトコルスタックは、ＨＴＴＰ（HyperText  Transfer  Protocol）層、ＤＴＣＰ（Digital  Transmission  Content  Protection）−ＩＰセキュリティ層、ＨＴＭＬ（HyperText  Markup  Language）５層を含む。また、インターネット網関連のプロトコルスタックは、ＳＭＴＰ（Simple  Mail  Transfer  Protocol）メール層、ＤＲＭ（Digital  Rights  Management）層、認証層、ＴＬＳ（Transport  Layer  Security）層を含む。【００１３】
各装置間で同じプロトコルを使用することで、各層の間で、情報の授受が可能になる。例えば、図７に示したＨＤＤ４０と端末装置３０との間で、Ethernet層を共有することで、物理層とリンク層での情報を共有することができる。【００１４】
放送網関連のプロトコルスタックについて説明する。放送網層において、放送網からの信号がチューナーによりチャンネルの情報が選択される。ＭＰＥＧ−ＴＳ層において、選択されたチャンネルの情報は、１８８バイト固定長のデジタルパケット形式に変換され、出力される。各パケットの先頭部分に識別番号があり、識別番号を参照することで、パケットが映像情報か音声情報か番組情報かを識別することができる。識別子を用いることで、各種の時分割多重伝送が可能となる。【００１５】
セクション層は、情報を伝送する役割を担う。セクション層では、音声や映像等のストリームからストリームに含まれる映像の番組名、俳優名、番組のあらすじ等の情報を抽出する処理を行う。また、セクション層は、ＣＡＳ関連の情報を取り扱う。ＣＡＳ関連の情報には、暗号化されたＭＰＥＧ圧縮映像ストリームや、暗号化された圧縮音声ストリームを復号する場合に用いる鍵情報が、暗号化された状態で含まれる。【００１６】
ＰＥＳ層は、音声や映像などのストリーム類を伝送する役割を担う。ＰＥＳ層で伝送されるストリームには、ＭＰＥＧ圧縮映像とＭＰＥＧ圧縮音声が存在する。【００１７】
暗号化された鍵情報を復号するためのマスタ鍵は、図７に示したＣＡＳカード３５が保持する。セキュリティＣＡＳ層は、暗号化された鍵情報を、ＣＡＳカード３５に伝送すると、ＣＡＳカード３５はマスタ鍵を利用して鍵情報を復号する。番組情報層は、番組情報を用いて、各種の処理を実行する。番組情報には、番組名、俳優名、番組のあらすじ等の情報が含まれる。圧縮映像層は、暗号化されたＭＰＥＧ圧縮映像ストリームを復号する処理を行う。圧縮音声層は、暗号化された圧縮音声ストリームを復号する処理を行う。【００１８】
図９に示す、端末装置３０のＯＳ（Operating  System）上で動作する各種のアプリケーションプログラム（Apply）は、各層が実行する処理を制御する。アプリケーションプログラムは、チューナーのチャンネル選択、チューナーから出力される音声や映像等が時分割されたＭＰＥＧ−ＴＳの各要素の抽出を行う。ＭＰＥＧ−ＴＳの各要素には、音声、映像、番組情報、ＣＡＳ関連の情報が含まれる。アプリケーションプログラムは、ＣＡＳカード３５に対して、暗号化された鍵情報を伝送し、復号された鍵情報を取得する。アプリケーションプログラムは、鍵情報を用いて映像や音声を復号し、ＭＰＥＧ圧縮された映像や音声の伸長処理を制御する。アプリケーションプログラムは、番組情報を抽出し、番組に関する情報を端末装置３０のモニタに表示する。【００１９】
次に、インターネット関連のプロトコルスタックについて説明する。インターネット関連のプロトコルスタックでは、物理層およびデータリンク層にEthernet層が利用される。Ethernet層の上にＩＰ層が存在する。ＩＰ層は、ＵＤＰ層またはＴＣＰ層に分けられる。ＵＤＰ／ＴＣＰ層の上に、ＨＴＴＰ層が存在し、ＨＴＴＰ層の上に具体的なアプリケーション層が存在する。例えば、ＨＴＴＰ層を利用して、ＨＴＭＬ５層などのインターネットブラウザ・アプリケーションプログラムが動作する。ＨＴＭＬ５層の上にＳＭＰＴメール層が存在し、各種メール・アプリケーションプログラムが動作する。ＴＬＳ層は、インターネット上で各端末装置の認証処理を実行する。上記のＨＴＴＰ層、ＨＴＭＬ５層、ＳＭＴＰメール層は、セキュリティに関する処理を行う層である。【００２０】
ＤＴＣＰ−ＩＰセキュリティ層、ＤＲＭ層、認証層、ＴＬＳ層は、セキュリティに関する処理を行う層である。【００２１】
ＤＲＭ層は、サーバ１０と端末装置３０との間で、暗号化されたインターネット・コンテンツのコンテンツ鍵のセキュアな授受を行うための層である。ＤＲＭ層は、端末装置３０とサーバ１０との間で公開鍵・秘密鍵を利用した認証処理を行う。ＤＲＭ層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。ＤＲＭ層は、セッション鍵を利用した暗号化データの授受を行う。ＤＲＭ層の処理では、一般的に、セッション鍵で暗号化されたコンテンツ鍵を端末装置３０がサーバ１０から受け取り、端末装置３０側で、コンテンツ鍵を復号する。その後、端末装置３０は、暗号化されたコンテンツ情報を、コンテンツ鍵で復号する。ＤＲＭ層は、コンテンツ情報をセキュアに共有する場合に利用される。【００２２】
ＴＬＳ層は、サーバ１０と端末装置３０との間で相互認証を行う代表的なプロトコルである。ＴＬＳ層は、端末装置３０とサーバ１０との間で公開鍵・秘密鍵を利用した認証処理を行う。ＴＬＳ層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。ＴＬＳ層は、セッション鍵を利用した暗号化データの授受を行う。ＴＬＳ層は、個人情報等の一般的な情報をセキュアに送受信する場合に利用されるのが普通である。【００２３】
ＤＴＣＰ−ＩＰセキュリティ層は、ホームネットワーク５を介してコンテンツ情報をセキュアに送受信する場合に用いられる。ここでは、端末装置３０が、ホームネットワーク５を介して、セキュアにコンテンツ情報を、ＨＤＤ４０に送信する場合を例にして説明する。【００２４】
ＤＴＣＰ−ＩＰセキュリティ層は、ＴＣＰ層を利用して、端末装置３０とＨＤＤ４０との間で公開鍵・秘密鍵を利用した認証処理を行う。ＤＴＣＰ−ＩＰセキュリティ層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。ＤＴＣＰ−ＩＰセキュリティ層は、セッション鍵をベースにして、コンテンツ鍵を生成する。ＤＴＣＰ−ＩＰセキュリティ層は、コンテンツ鍵で暗号化されたコンテンツをＨＴＴＰ層で送受信する。ＨＤＤ４０は、ＨＴＴＰ層から受信した暗号化されたコンテンツ情報を復号子、別の鍵で再度暗号化した上で、コンテンツ情報を蓄積する。【００２５】
図１０は、端末装置がホームネットワークを介してコンテンツをセキュアに伝送する例を示す図である。図１０に示す例では、端末装置３０が、インターネット網を経由して、暗号化されたコンテンツ情報をサーバ１０から受信する。端末装置３０は、コンテンツ情報を復号鍵で復号した後、暗号鍵でコンテンツ情報を再度暗号化し、ホームネットワーク５を介して、暗号化したコンテンツ情報をＨＤＤ４０に伝送する。ＨＤＤ４０は、コンテンツ情報を復号し、復号したコンテンツ情報を、暗号鍵で再度暗号化した上で記憶部４１に蓄積する。【００２６】
端末装置３０は、ＤＲＭ層で定義されるプロトコルに従って、ＤＲＭ処理を実行する。端末装置３０は、ＤＲＭ処理として、相互認証、セッション鍵の生成、コンテンツ鍵受信を順に行う。端末装置３０は、サーバ１０から暗号化されたコンテンツ情報を受信し、受信したコンテンツ情報を、復号する。端末装置３０は、復号したコンテンツ情報を、ホームネットワーク５用に再暗号化する。端末装置３０は、ＤＴＣＰ−ＩＰセキュリティ層で定義されるプロトコルに従って、暗号化する際の暗号鍵を以下のように生成する。【００２７】
端末装置３０は、ＨＤＤ４０との間で、公開鍵・秘密鍵ペアを利用した相互認証を行う。端末装置３０は、端末装置３０内の乱数発生器を利用したセッション鍵を生成し、ＨＤＤ４０と共有する。端末装置３０は、コンテンツ鍵でコンテンツ情報を再暗号化し、ＨＴＴＰ層で再暗号化したコンテンツ情報をＨＤＤ４０に送信する。【００２８】
ＨＤＤ４０は、再暗号化されたコンテンツ情報を受信する。ＨＤＤ４０は、端末装置３０との間で共有したセッション鍵をベースにして、コンテンツ鍵を共有し、コンテンツ鍵を用いて、再暗号化されたコンテンツ情報を復号する。ここで、コンテンツ情報を暗号化しないで、記憶部４１に格納すると、盗難される恐れがある。このため、ＨＤＤ４０は、ＨＤＤ４０上の乱数生成器で生成した暗号鍵でコンテンツ情報を暗号化し、暗号化したコンテンツ情報を、記憶部４１に蓄積する。ＨＤＤ４０は、暗号鍵をＨＤＤ４０上の秘密の場所に保存し、コンテンツ情報を視聴する場合には、秘密の場所に保存した暗号鍵を持ち手、記憶部４１に蓄積したコンテンツ情報を復号する。【００２９】
例えば、端末装置３０がコンテンツ視聴の要求を受け付けた場合には、端末装置３０は、ＤＴＣＰ−ＩＰセキュリティ層のプロトコルに従い、ＨＤＤ４０からコンテンツ情報をセキュアに受信し、表示する。【００３０】
ここで、上記のＤＲＭ層、ＤＴＣＰ−ＩＰセキュリティ層等のプロトコルに従って処理を実行する場合に、鍵類、乱数生成などの処理内容が漏洩し、改竄されると機密情報が漏洩する場合がある。この問題を解消するために、従来技術では、例えば、端末装置３０に搭載するアプリケーションプログラム、Ethernet関連プログラム、ＴＣＰ／ＩＰプログラム、ＤＴＣＰ−ＩＰプログラム、ＤＲＭプログラムを難読化することで、機密情報が漏洩することを抑止している。難読化とは、プログラムをわざと限りなく複雑にし、ハッキングの前提であるプログラム解析を限りなく複雑にするものである。
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】国際公開第２０１４／０４９８３０号
【発明の概要】
【発明が解決しようとする課題】
【００３２】
しかしながら、上述した従来技術では、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができないという問題がある。【００３３】
例えば、従来技術では、各種のプログラムを難読化して、機密情報を漏洩することを抑止しているが、難読化しても十分な時間をかければ解析可能であり、機密情報をのぞき見ることや、改竄することは可能である。【００３４】
また、従来技術では、基本的に、端末装置３０のメインＣＰＵ３２が、各セキュリティプログラムをそれぞれ読み出して機密情報を処理している。例えば、端末装置３０のメインＣＰＵ３２に対して、外部からの操作等が可能であるため、メインＣＰＵ３２が不正に操作された場合には、セキュリティプログラムを実行する際に、機密情報が漏洩する場合がある。【００３５】
また、既存の各セキュリティプロトコルを廃止して、セキュリティ強度の強い新たなプロトコル等を提案することも考えられるが、上述した各種のセキュリティプロトコルは、既に広く利用されているため、新たなプロトコルを導入することは難しい。【００３６】
１つの側面では、本発明は、効率的かつ安全にセキュリティ方式を切り替えて、機密情報の処理をすることができるセキュリティ装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３７】
第１の案では、セキュア装置は、セキュア領域内にプロセッサとメモリとを有する。メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、セキュリティ処理で用いるセキュリティ情報とを格納する。プロセッサは、複数種類のプログラムのうち第１プログラムを実行して第１外部装置との間で第１セキュリティ処理を実行することで、第１外部装置から機密情報を取得する。プロセッサは、複数種類のプログラムのうち第１プログラムと異なる第２プログラムを実行して第２外部装置との間で第２セキュリティ処理を実行することで、機密情報を、第２外部装置に送信するための機密情報に変換する。
【発明の効果】
【００３８】
効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。
【図面の簡単な説明】
【００３９】
【図１】図１は、本実施例に係るネットワークシステムの一例を示す図である。
【図２】図２は、本実施例に係る端末装置の構成を示す機能ブロック図である。
【図３】図３は、セキュア領域のＣＰＵが実行するＤＲＭ処理の一例を示すフローチャートである。
【図４】図４は、セキュア領域のＣＰＵが実行するＤＴＣＰ−ＩＰ処理の一例を示すフローチャートである。
【図５】図５は、セキュア領域がコンテンツ視聴要求を受け付けた場合の処理手順を示すフローチャートである。
【図６】図６は、性能情報の要求を受け付けた場合の処理手順を示すフローチャートである。
【図７】図７は、従来のＩｏＴネットワークシステムの一例を示す図である。
【図８】図８は、従来の端末装置の構成を示す機能ブロック図である。
【図９】図９は、プロトコルスタックの一例を示す図である。
【図１０】図１０は、端末装置がホームネットワークを介してコンテンツをセキュアに伝送する例を示す図である。
【発明を実施するための形態】
【００４０】
以下に、本願の開示するセキュリティ装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００４１】
図１は、本実施例に係るネットワークシステムの一例を示す図である。図１に示すように、このネットワークシステムは、端末装置１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ、サーバ２００を有する。端末装置１００ａ〜１００ｃと、サーバ２００とは、インターネット網６を介して相互に接続される。また、サーバ２００は、ＤＢ２００ａに接続される。端末装置１００ａ，１００ｄ，１００ｅは、ホームネットワーク５を介して相互に接続される。【００４２】
端末装置１００ａ〜１００ｅは、ＰＣ（Personal  Computer）、携帯電話、スマートフォン、センサ、ＩｏＴ機器等に対応する。以下の説明では、端末装置１００ａ〜１００ｅをまとめて適宜、端末装置１００と表記する。端末装置１００は、単数または複数のＩｏＴ機器１１０を備える。また、端末装置１００は、セキュア領域１２０を有する。セキュア領域１２０は、耐タンパー性の領域であり、セキュア領域１２０に含まれるハードウェアやソフトウェアを覗き見することや、改竄することは困難である。セキュア領域１２０は、セキュリティ装置に対応する。【００４３】
端末装置１００は、既存のプロトコルスタックに基づいて、サーバ１０や他の端末装置との間でデータ通信を実行する場合に、セキュリティに関連する処理のみ、セキュア領域１２０に含まれるＣＰＵに処理の実行を依頼する。例えば、セキュア領域１２０に含まれるＣＰＵは、セキュリティＣＡＳ層、ＤＴＣＰ−ＩＰセキュリティ層、ＤＲＭ層、認証層、ＴＬＳ層で定義されるプロトコルの処理を、セキュア領域１２０外のＣＰＵと独立して実行する。【００４４】
サーバ２００は、端末装置１００から各種の情報を受信して、ＤＢ２００ａに登録する。また、サーバ２００は、端末装置１００からの要求に応じて、ＤＢ２００ａに格納された情報を、要求元の端末装置１００に送信する。本実施例では一例として、サーバ２００は、コンテンツ情報を、端末装置１００に送信する場合について説明する。【００４５】
図２は、本実施例に係る端末装置の構成を示す機能ブロック図である。図２に示すように、端末装置１００は、セキュア領域１２０と、メインＣＰＵ１５１と、メインＲＡＭ１５２と、外部不揮発性メモリ１５３と、通信用ハード１５４とを有する。各装置１２０、１５１，１５２，１５３，１５４は、バス１６０を介して相互に接続される。【００４６】
セキュア領域１２０は、ＣＰＵ１２１、秘密検証回路１２２、Trusted  Time回路１２３、共通暗号回路１２４、非対称暗号回路１２５、ハッシュ回路１２６、乱数生成回路１２７、不揮発性メモリ１２８、揮発性メモリ領域１２９を有する。【００４７】
ＣＰＵ１２１は、不揮発性メモリ１２８に格納された各種のプログラムを、揮発性メモリ領域１２９に読み出して、各種の処理を実行する装置である。ＣＰＵ１２１は、ＩＦ１３０を介して、メインＣＰＵ１５１からコマンドを受け付け、コマンドに対応するプログラムを実行する。ＣＰＵ１２１が、メインＣＰＵから受け付けるコマンドは、管理者によって予め定義されている。ＣＰＵ１２１は、定義されていないコマンドを受け付けた場合には、受け付けたコマンドを消去する等の処理を実行することで、定義されていないコマンドを実行しないようにする。ＣＰＵ１２１が実行する処理の具体的な説明は後述する。【００４８】
秘密検証回路１２２は、予め管理者等により決められた秘密の入力信号を受け付けると、秘密検証回路１２２を介した情報の入力を許容するインタフェースである。例えば、初期設定時に、秘密検証回路１２２は、セキュア領域識別番号、マスタ鍵の入力を受け付け、受け付けたセキュア領域識別番号、マスタ鍵の情報を、不揮発性メモリ１２８に格納する。セキュア領域識別番号は、セキュア領域１２０を一意に識別する情報であり、唯一無二の番号である。マスタ鍵は、各種の情報を暗号化する場合に用いられる鍵であり、唯一無二の鍵である。【００４９】
また、秘密検証回路１２２は、初期設定時に、予め管理者に選定された必要最低限のプログラム群の情報を受け付け、受け付けたプログラム群の情報を、不揮発性メモリ１２８に格納する。例えば、必要最低限のプログラム群には、ダウンロードルーチン、プログラム蓄積ルーチン、蓄積プログラム管理データ作成ルーチンが含まれる。【００５０】
ダウンロードルーチンは、工場出荷後に新規のプログラムをダウンロードする手順を定義したプログラムである。プログラム蓄積ルーチンは、外部装置からダウンロードしたプログラムを、不揮発性メモリ１２８に蓄積する手順を定義したプログラムである。【００５１】
蓄積プログラム管理データ作成ルーチンは、不揮発性メモリ１２８に格納された各プログラムやルーチンを読み出す手順を定義したプログラムである。例えば、ＣＰＵ１２１は、不揮発性メモリ１２８に格納されたプログラムが更新される場合や、新たなプログラムを不揮発性メモリ１２８に格納する場合に、蓄積プログラム管理データ作成ルーチンを読み出し実行し、蓄積プログラム管理データを生成する。ＣＰＵ１２１は、蓄積プログラム管理データを、不揮発性メモリ１２８に格納する。【００５２】
蓄積プログラム管理データは、不揮発性メモリ１２８に蓄積されたプログラムやルーチンの名称、版数、プログラム実行時に使用される不揮発性メモリ１２８の容量、不揮発性メモリ１２８のデータ領域の場所が記載される。かかるデータ領域には、各種の鍵情報、証明書、各種ログ情報、個人情報、ハッシュ値が記載される。【００５３】
ここでは、必要最低限のプログラム群を、秘密検証回路１２２を介して、不揮発性メモリ１２８に格納する例を示したが、セキュア領域１２０を製造する過程において、必要最低限のプログラム群を不揮発性メモリ１２８に、予め格納しておいてもよい。【００５４】
Trusted  Time回路１２３は、セキュア領域１２０内で独立して時間を計るタイマである。例えば、Trusted  Time回路１２３は、ＣＰＵ１２１からの要求に応じて、時間情報を、ＣＰＵ１２１に出力する。Trusted  Time回路１２３は、セキュア領域１２０に電源が投入された時点で、メインＣＰＵ１５１にアクセスし、時間情報を取得し、Trusted  Time回路１２３の時刻情報を更新する。【００５５】
共通暗号回路１２４は、ＣＰＵ１２１からの要求に応じて、共通鍵による暗号方式に基づき、情報の暗号化または復号を実行する回路である。共通鍵による暗号方式は、例えば、ＡＥＳ（Advanced  Encryption  Standard）、ＤＥＳ（Data  Encryption  Standard）、３−ＤＥＳなどに対応する。【００５６】
非対称暗号回路１２５は、ＣＰＵ１２１からの要求に応じて、公開鍵／秘密鍵等による非対称鍵の暗号方式に基づき、情報の暗号化または復号を実行する回路である。非対称鍵の暗号方式は、例えば、ＲＳＡ（Rivest  Shamir  Adleman）、楕円暗号などに対応する。【００５７】
ハッシュ回路１２６は、ＣＰＵ１２１から情報の入力を受け付けた場合に、情報のハッシュ値を計算し、ハッシュ値をＣＰＵ１２１に通知する回路である。【００５８】
乱数生成回路１２７は、ＣＰＵ１２１からの要求に応じて、乱数を生成する回路である。【００５９】
不揮発性メモリ１２８は、セキュア領域識別番号、マスタ鍵、必要最低限のプログラム群を格納する記憶装置である。また、ＣＰＵ１２１は、上記のダウンロードルーチンを実行してダウンロードした各種のプログラム群を、プログラム蓄積ルーチンによって、不揮発性メモリ１２８に蓄積する。【００６０】
例えば、不揮発性メモリ１２８に蓄積されるプログラム群には、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のセキュリティプログラムが含まれる。外部装置は、インターネット網６を介して端末装置１００と接続するサーバ２００、ホームネットワーク５を介して端末装置１００と接続する他の端末装置１００に対応する。所定のセキュリティ方式は、例えば、セキュリティＣＡＳ層、ＤＴＣＰ−ＩＰセキュリティ層、ＤＲＭ層、認証層、ＴＬＳ層で定義されるプロトコルに基づく方式である。【００６１】
セキュリティプログラムは、基本的に、外部装置との間で相互認証を行う機能、セッション鍵を生成し外部装置と共有する機能、データを暗号化する機能を有する。【００６２】
例えば、セキュリティプログラムが、ＤＲＭ層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムＡ」である場合には、下記の機能を有する。セキュリティプログラムＡは、公開鍵、秘密鍵のペアを用いて、サーバ２００との間で相互認証を行う機能を有する。セキュリティプログラムＡは、セッション鍵を生成する機能を有する。セキュリティプログラムＡは、コンテンツ鍵Ａをサーバ２００から受信する機能を有する。例えば、サーバ２００から受信するコンテンツ情報は、コンテンツ鍵Ａで暗号化されている。【００６３】
例えば、セキュリティプログラムが、ＤＴＣＰ−ＩＰセキュリティ層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムＢ」である場合には、下記の機能を有する。セキュリティプログラムＢは、公開鍵、秘密鍵のペアを用いて、ホームネットワーク５に接続された外部装置との間で相互認証を行う機能を有する。セキュリティプログラムＢは、乱数発生回路１２７を利用して、セッション鍵を生成し、外部装置と共有する機能を有する。セキュリティプログラムＢは、セッション鍵を用いて、コンテンツ鍵Ｂを生成する機能を有する。【００６４】
更に、セキュリティプログラムＢは、例えば、他のセキュリティプログラム（セキュリティプログラムＡ）が使用したコンテンツ鍵Ａを用いて、コンテンツ情報を復号する機能を有する。セキュリティプログラムＢは、コンテンツ鍵Ａを用いて復号したコンテンツ情報を、コンテンツ鍵Ｂを用いて再度暗号化する機能を有する。【００６５】
ここでは説明の便宜上、セキュリティプログラムＡ，Ｂについて説明したが、不揮発性メモリ１２８には、他のセキュリティプログラムが蓄積されていても良い。例えば、ＴＬＳ層、セキュリティＣＡＳ層、認証層等で定義されるプロトコルに基づくセキュリティプログラムが、不揮発性メモリ１２８に蓄積される。【００６６】
不揮発性メモリ１２８は、上記のプログラム群の他に、各プログラム群のハッシュ値が、プログラムを識別する情報と対応付けて格納される。ハッシュ値は、ハッシュ回路１２６によって計算される。【００６７】
不揮発性メモリ１２８に格納されたプログラム群の一部は、外部不揮発性メモリ１５３に格納されていても良い。例えば、ＣＰＵ１２１は、不揮発性メモリ１２８に格納されたプログラム群の一部を、マスタ鍵で暗号化して、メインＣＰＵ１５１に出力し、外部不揮発性メモリ１５３に格納することを依頼する。ＣＰＵ１２１は、外部不揮発性メモリ１５３のプログラムを利用する場合には、メインＣＰＵ１５１に依頼して、外部不揮発性メモリ１５３の暗号化されたプログラムを取得し、マスタ鍵で復号する。ＣＰＵ１２１は、マスタ鍵で復号したプログラムのハッシュ値が、不揮発性メモリのハッシュ値と一致した場合に、復号したプログラムを実行する。【００６８】
不揮発性メモリ１２８は、セキュア領域１２０の性能情報を格納する。性能情報は、ＣＰＵ１２１の処理速度、ＣＰＵ１２１の処理ビット数、サポートする暗号方式、乱数生成回路１２７の有無、ハッシュ回路１２６の有無、ハッシュ回路１２６が行うハッシュ演算の種別の情報を含む。性能情報は、セキュア領域１２０のセキュア度情報、揮発性メモリ領域１２９のメモリ容量と、揮発性メモリ領域１２９の未使用容量、外部不揮発性メモリ１５３の利用可否、セキュア領域１２０が許容する外部不揮発性メモリ１５３のメモリ容量の情報を含む。性能情報は、Trusted  Time回路１２３のクロックのサポート可否、セキュア領域１２０に搭載したＯＳの種別、セキュア領域１２０のグレードの情報を含む。【００６９】
性能情報に含まれるセキュア度情報は、セキュア領域１２０が論理的および物理的にどの程度セキュアであるかの度合いを示す情報である。例えば、論理的なセキュア度は、ＣＰＵ１２１が、メインＣＰＵ１５１等から受け付ける命令の種別等により特定される。例えば、ＣＰＵ１２１が受け付ける命令数が多いほど、論理的なセキュア度が低下する。【００７０】
また、セキュア度として、例えばメインＣＰＵ１５１とＣＰＵ１２１を物理的に同じＣＰＵとし、メインＣＰＵとして動作する場合はノーマルモード、ＣＰＵ１２１として動作する場合は、セキュアモードとすることも可能である。ＣＰＵがセキュアモードで動作する場合は、セキュアなメモリ領域をふくむ全メモリ領域にアクセス可能とし、ＣＰＵがノーマルモードの場合は、セキュアなメモリ領域はアクセス不可能にする。この場合、ＣＰＵは物理的に同じであるが、論理的に区別される。物理的に違うＣＰＵの方が当然セキュア度は向上する。セキュア度は、このように物理的に違うＣＰＵか単に論理的に違うＣＰＵかで規定することも可能である。既存のＣＰＵで、このようなアーキテクチャーを採用しているのは、ＡＲＭプロセッサなどである。ＡＲＭプロセッサは、ノーマルモードとトラステッドモードがあり、トラステッドモードの時は、全メモリ空間をアクセス可能であるが、ノーマルモードの時にアクセス出来るメモリ空間は制限される。ＡＲＭプロセッサはモードを切り替えつつ動作する。【００７１】
物理的なセキュア度は、電磁波解析、電力解析攻撃に関する実験を行い、特定される。例えば、セキュア領域１２０を製造する工場の管理者が、論理的なセキュア度、物理的なセキュア度考慮して、セキュア領域１２０に設定するセキュア度情報を生成し、不揮発性メモリ１２８に格納する。【００７２】
また、管理者は、性能情報に含まれるグレード以外の要素を基にして、セキュア領域１２０のグレードを判断し、不揮発性メモリ１２８に格納しても良い。【００７３】
揮発性メモリ領域１２９は、ＣＰＵ１２１が、不揮発性メモリ１２８に格納されたプログラムを読み出して実行する領域である。また、ＣＰＵ１２１が処理を行う場合に用いる情報を、一時的に格納する領域である。【００７４】
ＩＦ１３０は、セキュア領域１２０内のＣＰＵ１２１と、セキュア領域１２０外のメインＣＰＵ１５１との間で授受される情報を中継するインタフェースである。【００７５】
メインＣＰＵ１５１は、メインＲＡＭ１５２に格納されたプログラムを実行して、各種の情報を実行する処理部である。例えば、メインＣＰＵ１５１は、Ethernet層、ＩＰ層、ＴＣＰ／ＵＤＰ層、ＨＴＴＰ層のプロトコルに基づいて、インターネット網６を介したサーバ１０との接続、ホームネットワーク５を介した他の端末装置１００との接続を行う。【００７６】
メインＣＰＵ１５１は、セキュリティＣＡＳ層、ＤＴＣＰ−ＩＰセキュリティ層、ＤＲＭ層、認証層、ＴＬＳ層のプロトコルに基づく処理を、セキュア領域１２０内のＣＰＵ１２１に依頼する。メインＣＰＵ１５１は、ＣＰＵ１２１が、インターネット網６を介してサーバ１０とやり取りする暗号情報を中継する。メインＣＰＵ１５１は、ＣＰＵ１２１が、ホームネットワーク５を介して他の端末装置１００とやり取りする暗号情報を中継する。【００７７】
メインＣＰＵ１５１は、セキュア領域１２０内のＣＰＵ１２１から外部不揮発性メモリ１５３に格納された情報の読み出し要求を受け付けた場合には、対象となる情報を、外部不揮発性メモリ１５３から読み出し、読み出した情報をＣＰＵ１２１に出力する。【００７８】
メインＲＡＭ１５２は、例えば、Ethernet処理プログラム、ＩＰ処理プログラム、ＴＣＰ／ＵＤＰ処理プログラム、ＨＴＴＰ処理プログラムを格納する。Ethernet処理プログラムは、Ethernet層のプロトコルにより動作するプログラムである。ＩＰ処理プログラムは、ＩＰ層のプロトコルにより動作するプログラムである。ＴＣＰ／ＵＤＰ処理プログラムは、ＴＣＰ層またはＵＤＰ層のプロトコルにより動作するプログラムである。ＨＴＴＰ処理プログラムは、ＨＴＴＰ層のプロトコルにより動作するプログラムである。【００７９】
外部不揮発性メモリ１５３には、例えば、不揮発性メモリ１２８のプログラム群の一部が、暗号化された状態で格納されている。また、Ethernet処理プログラム、ＩＰ処理プログラム、ＴＣＰ／ＵＤＰ処理プログラム、ＨＴＴＰ処理プログラムを格納していても良い。【００８０】
通信用ハード１５４は、ホームネットワーク５、インターネット網６を介して外部装置からデータを受信し、受信した情報をメインＣＰＵ１５１に出力する。通信用ハード１５４は、メインＣＰＵ１５１から送信依頼を受け付けたデータを、ホームネットワーク５、インターネット網６を介して外部装置に出力する。また、通信用ハード１５４は、放送網を介して図示を省略する放送局から情報を受信し、受信した情報を、メインＣＰＵ１５１に出力する。【００８１】
続いて、セキュア領域１２０に電源が投入された場合に、ＣＰＵ１２１が実行する処理の一例について説明する。一例として、不揮発性メモリ１２８には、管理データ呼び出しルーチン、プログラム選択＆起動ルーチン、プログラム停止ルーチン、セキュア領域用外部コミュニケーションルーチンが格納されているものとする。ＣＰＵ１２１は、上記のダウンロードルーチン、プログラム蓄積ルーチン等を実行し、上記プログラムを、不揮発性メモリ１２８に格納しておく。【００８２】
セキュア領域１２０に電源が投入されると、ＣＰＵ１２１は、不揮発性メモリ１２８から管理データ呼び出しルーチンを起動し、セキュア領域１２０が管理するプログラムやルーチン群に関連するデータを、不揮発性メモリ１２８から読み出す。例えば、ＣＰＵ１２１は、プログラム選択＆起動ルーチンを起動し、読み出したデータを基にして、所定のプログラムやルーチンを選択し、選択したプログラムやルーチンを起動する。【００８３】
ＣＰＵ１２１は、プログラムが使用されてないことを検出すると、プログラム停止ルーチンを起動し、使用されなくなったプログラムを停止する。ＣＰＵ１２１は、使用されなくなったプログラムが使用していた揮発性メモリ領域１２９を解放する。【００８４】
ＣＰＵ１２１が起動するプログラムの中には、セキュア領域１２０外のメインＣＰＵ１５１と連携するものが存在する。例えば、セキュア領域用外部コミュニケーションルーチンは、メインＣＰＵ１５１と連携するプログラムである。ＣＰＵ１２１は、セキュア領域用外部コミュニケーションルーチンを起動して、メインＣＰＵ１５１との間で情報を授受する。なお、ＣＰＵ１２１に情報漏洩等の不正な処理を実行させることを抑止するために、セキュア領域用外部コミュニケーションルーチンは、メインＣＰＵ１５１から受け付けるコマンドの種別を予め定義しておく。【００８５】
例えば、ＣＰＵ１２１がプログラム蓄積ルーチンを起動して、外部不揮発性メモリ１５３にプログラムやデータを蓄積する場合には、セキュア領域用外部コミュニケーションルーチンに従い、メインＣＰＵ１５１にプログラムやデータの蓄積を依頼する。ＣＰＵ１２１が、セキュア領域１２０内のその他のプログラムを起動して、メインＣＰＵ１５１に各種の依頼を行う場合にも、セキュア領域用外部コミュニケーションルーチンに従う。【００８６】
また、セキュア領域用外部コミュニケーションルーチンは、ＣＰＵ１２１がメインＣＰＵ１５１から命令を受け付けた場合の手順も定義する。例えば、ＣＰＵ１２１がメインＣＰＵ１５１から受け付ける命令は、特定のプログラムのダウンロード命令、セキュア領域識別番号の呼び出し命令、セキュア領域１２０の性能情報の読み出し命令などが含まれる。【００８７】
続いて、端末装置１００が、セキュア領域１２０を用いて、コンテンツ情報をサーバ２００から受信する処理、および、セキュア領域１２０を用いて、コンテンツ情報を、ホームネットワーク５に接続されたＨＤＤに蓄積する処理の一例について説明する。【００８８】
端末装置１００は、ユーザから特定のコンテンツを視聴する旨のコマンドを受け付けると、メインＣＰＵ１５１は、インターネット網６を介して、サーバ２００と接続する。例えば、メインＣＰＵ１５１が、サーバ２００と接続する場合には、下記の処理を実行する。メインＣＰＵ１５１は、ＴＣＰパケットを生成し、ＴＣＰパケットをＩＰパケットに埋め込み、ＩＰパケットをEthernetパケットに埋め込む。メインＣＰＵ１５１は、ＴＣＰプログラム、ＩＰプログラム、Ethernetプログラムを実行して、サーバ２００と接続する。【００８９】
メインＣＰＵ１５１は、サーバ２００との接続が完了すると、セキュア領域１２０にＤＲＭ層に対応する処理の依頼を要求する。セキュア領域１２０のＣＰＵ１２１は、ＤＲＭ層に対応する処理の依頼を受け付けると、不揮発性メモリ１２８から、セキュリティプログラムＡを読み出し起動する。【００９０】
セキュリティプログラムＡを起動したＣＰＵ１２１は、下記のＤＲＭ処理を行う。図３は、セキュア領域のＣＰＵが実行するＤＲＭ処理の一例を示すフローチャートである。図３に示すように、セキュア領域１２０のＣＰＵ１２１は、セキュリティプログラムＡで利用する情報を取得する（ステップＳ１０）。例えば、セキュリティプログラムＡで利用する情報は、ＤＲＭＩＤ、ＤＲＭ証明書、セキュア領域１２０の公開鍵／秘密鍵、サーバ２００の公開鍵、サーバ２００で動作するＤＲＭのＤＲＭＩＤ等が含まれる。【００９１】
ＣＰＵ１２１は、サーバ２００との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する（ステップＳ１１）。例えば、ＣＰＵ１２１は、相互認証を実行する際に、乱数生成回路１２７を用いて乱数を発生させる。ＣＰＵ１２１は、乱数、ＤＲＭＩＤ、公開鍵／秘密鍵ペアを利用して、サーバ２００と認証を開始する。サーバ２００は、サーバ２００の乱数、ＤＲＭＩＤ、公開鍵／秘密鍵ペアを利用して応答する。【００９２】
ＣＰＵ１２１は、サーバ２００との相互認証に成功したか否かを判定する（ステップＳ１２）。ＣＰＵ１２１は、サーバ２００との相互認証に失敗した場合には（ステップＳ１２，Ｎｏ）、処理を終了する。例えば、ＣＰＵ１２１は、エラーをメインＣＰＵ１５１に出力する。【００９３】
ＣＰＵ１２１は、サーバ２００との相互認証に成功した場合には（ステップＳ１２，Ｙｅｓ）、ステップＳ１３に移行する。ＣＰＵ１２１は、乱数生成回路１２７を利用してセッション鍵を生成し、セッション鍵をサーバ２００との間で共有する（ステップＳ１３）。【００９４】
ＣＰＵ１２１は、サーバ２００からセッション鍵で暗号化されたコンテンツ鍵Ａを取得し、セッション鍵で復号することで、コンテンツ鍵Ａを取得する（ステップＳ１４）。【００９５】
ＣＰＵ１２１は、メインＣＰＵ１５１に対して、コンテンツ鍵Ａを取得した旨を通知する（ステップＳ１５）。メインＣＰＵ１５１は、コンテンツ鍵Ａを取得した旨の通知を受けると、サーバ２００に対してコンテンツ情報の伝送を依頼する。サーバ２００は、コンテンツの伝送の依頼を受け付けると、コンテンツ情報をコンテンツ鍵Ａで暗号化して、端末装置１００に送信する。例えば、コンテンツ情報は、ＲＴＰ（Real-time  Transport  Protocol）パケットの中にＭＰＥＧ圧縮されて、端末装置１００に伝送される。メインＣＰＵ１５１は、暗号化されたコンテンツ情報をＣＰＵ１２１に出力する。【００９６】
ＣＰＵ１２１は、暗号化されたコンテンツ情報を取得し、コンテンツ鍵Ａで復号する（ステップＳ１６）。なお、ステップＳ１６において、ＣＰＵ１２１は、コンテンツ鍵Ａの情報を、メインＣＰＵ１５１に通知して、暗号化されたコンテンツ情報の復号を、メインＣＰＵ１５１に依頼しても良い。【００９７】
上記のように、セキュア領域１２０のＣＰＵ１２１は、図３に示したＤＲＭ処理を実行することで、サーバ２００との相互認証、セッション鍵の生成及び共有、コンテンツ鍵Ａの取得、コンテンツ情報の復号を実行する。【００９８】
続いて、セキュア領域１２０のＣＰＵ１２１は、図３のＤＲＭ処理を実行した後に、不揮発性メモリ１２８から、セキュリティプログラムＢを読み出し起動する。セキュリティプログラムＢを起動したＣＰＵ１２１は、下記のＤＴＣＰ−ＩＰ処理を実行する。【００９９】
図４は、セキュア領域のＣＰＵが実行するＤＴＣＰ−ＩＰ処理の一例を示すフローチャートである。図４では一例として、端末装置１００が、ホームネットワーク５に接続されたＨＤＤに、サーバ２００から受信したコンテンツ情報を蓄積する場合について説明する。例えば、ＨＤＤを、図１０に示したＨＤＤ４０とする。【０１００】
図４に示すように、セキュア領域１２０のＣＰＵ１２１は、ＨＤＤ４０との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する（ステップＳ２０）。【０１０１】
ＣＰＵ１２１は、ＨＤＤ４０との相互認証に成功したか否かを判定する（ステップＳ２１）。ＣＰＵ１２１は、ＨＤＤ４０との相互認証に失敗した場合には（ステップＳ２１，Ｎｏ）、処理を終了する。例えば、ＣＰＵ１２１は、エラーをメインＣＰＵ１５１に出力する。【０１０２】
ＣＰＵ１２１は、ＨＤＤ４０との相互認証に成功した場合には（ステップＳ２１，Ｙｅｓ）、ステップＳ２２に移行する。ＣＰＵ１２１は、乱数生成回路１２７を利用してセッション鍵を生成し、セッション鍵をＨＤＤ４０との間で共有する（ステップＳ２２）。【０１０３】
ＣＰＵ１２１は、セッション鍵を利用してコンテンツ鍵Ｂを生成し、コンテンツ鍵Ｂを暗号化する（ステップＳ２３）。ＣＰＵ１２１は、暗号化したコンテンツ鍵ＢをＨＤＤに送信することをメインＣＰＵ１５１に依頼する（ステップＳ２４）。【０１０４】
ＣＰＵ１２１は、ＤＲＭ処理によりコンテンツ鍵Ａで復号したコンテンツ情報を、コンテンツ鍵Ｂによって暗号化し、暗号化したコンテンツ情報をＨＤＤ４０に送信することをメインＣＰＵ１５１に依頼する（ステップＳ２５）。なお、ステップＳ２６において、ＣＰＵ１２１は、コンテンツ鍵Ｂの情報を、メインＣＰＵ１５１に通知して、コンテンツ情報の暗号化を、メインＣＰＵ１５１に依頼しても良い。メインＣＰＵ１５１は、コンテンツ鍵を基にして、コンテンツ情報を暗号化し、暗号化したコンテンツ情報をＨＤＤに伝送する。【０１０５】
次に、セキュア領域１２０に新たなプログラムをダウンロードする場合の処理について説明する。新規にダウンロードするプログラムは、例えば、上述したセキュリティプログラムＡ、セキュリティプログラムＢに対応する。以下では、一例として、セキュリティプログラムＡをダウンロードする場合の処理について説明する。【０１０６】
セキュア領域１２０のＣＰＵ１２１は、メインＣＰＵ１５１からセキュリティプログラムＡのダウンロード命令を受け付ける。ＣＰＵ１２１は、不揮発性メモリ１２８に格納された管理データ読み出しルーチンによって、ダウンロードルーチンがあることを確認する。ＣＰＵ１２１は、プログラムコードや関連情報の場所を確認する。ＣＰＵ１２１は、プログラム蓄積ルーチンによって、ダウンロードルーチンを、揮発性メモリ領域１２９に読み出す。ＣＰＵ１２１は、ダウンロードルーチンを揮発性メモリ領域１２９に読み出した場合に、ダウンロードルーチンのハッシュ値を計算し、予め算出しておいたハッシュ値と比較することで、ダウンロードルーチンが改竄されているか否かを確認する。ダウンロードルーチンが改竄されている場合には、ダウンロードを中断する。【０１０７】
ＣＰＵ１２１は、ダウンロードルーチンが改竄されていない場合には、ダウンロードルーチンを起動し、関連情報を使って、サーバ２００と接続する。関連情報は、ダウンロードプログラム用の識別番号、公開鍵／秘密鍵ペア、サーバ２００の公開鍵、サーバ２００のＵＲＬ（Uniform  Resource  Locator）が含まれる。なお、ＣＰＵ１２１は、メインＣＰＵ１５１を介して、サーバ２００と接続する。メインＣＰＵ１５１は、既存のEthernet層、ＩＰ層、ＴＣＰ層のプロトコルに従って、サーバ２００と接続する。【０１０８】
ダウンロードルーチンを起動中のＣＰＵ１２１は、サーバ２００と接続すると、サーバ２００との間で、互いの公開鍵、秘密鍵ペアで相互認証を行う。ＣＰＵ１２１は、乱数生成回路１２７で乱数を生成してセッション鍵を生成し、サーバ２００との間で共有する。また、ＣＰＵ１２１は、サーバ２００からセッション鍵で暗号化されたコンテンツ鍵を受信し、セッション鍵を使用して、コンテンツ鍵を取得する。【０１０９】
ダウンロードルーチンを起動中のＣＰＵ１２１は、サーバ２００から、コンテンツ鍵で暗号化されたセキュリティプログラムＡと、セキュリティプログラムＡの関連情報を取得する。ＣＰＵ１２１は、暗号化された情報をコンテンツ鍵によって復号する。ＣＰＵ１２１は、プログラム蓄積ルーチンを起動して、復号したセキュリティプログラムＡと関連情報を、不揮発性メモリ１２８に蓄積する。ＣＰＵ１２１は、セキュリティプログラムＡおよび関連情報のハッシュ値を計算し、セキュリティプログラムＡと対応付けて、不揮発性メモリ１２８に格納する。ＣＰＵ１２１は、セキュリティプログラムＡの版数、動作に必要な揮発性メモリ領域１２９の容量、不揮発性メモリ１２８のデータ領域の場所を、蓄積プログラム管理データに記載する。【０１１０】
ダウンロードルーチンを起動中のＣＰＵ１２１は、ダウンロードが終了すると、メインＣＰＵ１５１に対して、ダウンロードの終了報告を行う。メインＣＰＵ１５１は、終了報告を受け付けると、ＣＰＵ１２１に対して、ダウンロードルーチンの停止命令を出力する。ＣＰＵ１２１は、停止命令を受け付けると、ダウンロードルーチンを停止し、停止報告を、メインＣＰＵ１５１に出力する。【０１１１】
ところで、ダウンロードルーチンを起動中のＣＰＵ１２１が、サーバ２００から性能情報の要求を受け付けた場合には、コンテンツ鍵によって性能情報を暗号化し、暗号化した性能情報を、サーバ２００に通知する。例えば、サーバ２００は、セキュリティプログラムＡを実行可能な基準性能情報を有している。サーバ２００は、性能情報と基準性能情報とを比較して、セキュア領域１２０の性能情報が基準性能情報を上回っている場合に、セキュリティプログラムＡをコンテンツ鍵で暗号化し、暗号化したコンテンツ情報をＣＰＵ１２１に伝送する。これに対して、サーバ２００は、セキュア領域１２０の性能情報が基準性能情報を上回っていない場合には、セキュリティプログラムＡを実行する性能がない旨の情報を、ＣＰＵ１２１に通知する。ＣＰＵ１２１は、セキュリティプログラムＡを実行する性能がない旨の情報を受信した場合には、メインＣＰＵ１５１に対して、ダウンロードに失敗した旨の情報を通知する。【０１１２】
ここで、サーバ２００は、基準性能情報の異なる複数のセキュリティプログラムＡ１、Ａ２、Ａ３を有し、セキュア領域１２０の性能情報で実行可能なセキュリティプログラムを選択し、選択したセキュリティプログラムを伝送しても良い。例えば、セキュア領域１２０の性能情報が、セキュリティプログラムＡ１の基準性能情報を、上回っているとする。この場合には、サーバ２００は、セキュリティプログラムＡ１を、コンテンツ鍵で暗号化して、ＣＰＵ１２１に伝送する。【０１１３】
次に、本実施例に係るセキュア領域１２０がコンテンツ視聴要求を受け付けた場合の処理手順について説明する。図５は、セキュア領域がコンテンツ視聴要求を受け付けた場合の処理手順を示すフローチャートである。【０１１４】
図５に示すように、セキュア領域１２０のＣＰＵ１２１は、メインＣＰＵ１５１からコンテンツ情報の視聴要求を受け付ける（ステップＳ３０）。ＣＰＵ１２１は、メインＣＰＵ１５１を介して、サーバ２００との接続を確立する（ステップＳ３１）。【０１１５】
ＣＰＵ１２１は、セキュリティプログラムＡ（ＤＲＭプログラム）を読み出して実行する（ステップＳ３２）。ＣＰＵ１２１は、ＤＲＭ処理を実行する（ステップＳ３３）。ステップＳ３３に示すＤＲＭ処理は、図３に示した処理に対応する。【０１１６】
ＣＰＵ１２１は、暗号化されたコンテンツ情報を、コンテンツ鍵Ａを用いて復号し、コンテンツ情報を取得する（ステップＳ３４）。なお、ステップＳ３４の処理は、ＣＰＵ１２１の代わりに、メインＣＰＵ１５１が実行しても良い。メインＣＰＵ１５１が実行する場合には、メインＣＰＵ１５１は、コンテンツ鍵ＡをＣＰＵ１２１から取得し、コンテンツ鍵Ａを用いて、サーバ２００により暗号化されたコンテンツ情報を復号する。【０１１７】
ＣＰＵ１２１は、プログラムＢ（ＤＴＣＰ−ＩＰプログラム）を読み出して実行する（ステップＳ３５）。ＣＰＵ１２１は、ＤＴＣＰ−ＩＰ処理を実行する（ステップＳ３６）。ステップＳ３６に示すＤＴＣＰ−ＩＰ処理は、図４に示した処理に対応する。【０１１８】
ＣＰＵ１２１は、コンテンツ鍵Ａで復号したコンテンツ情報を、コンテンツ鍵Ｂによって再暗号化してＨＤＤに送信する（ステップＳ３７）。なお、ステップＳ３７の処理は、ＣＰＵ１２１の代わりに、メインＣＰＵ１５１が実行しても良い。メインＣＰＵ１５１が実行する場合には、メインＣＰＵ１５１は、コンテンツ鍵ＢをＣＰＵ１２１から取得し、コンテンツ鍵Ｂを用いて、コンテンツ情報を暗号化する。【０１１９】
続いて、セキュア領域１２０のＣＰＵ１２１が性能情報の要求を受け付ける場合の処理手順の一例について説明する。図６は、性能情報の要求を受け付けた場合の処理手順を示すフローチャートである。図６に示すように、ＣＰＵ１２１は、管理データ呼び出しルーチンを実行し、各種のプログラムを読み出す（ステップＳ４１）。【０１２０】
ＣＰＵ１２１は、外部コミュニケーションルーチンを実行する（ステップＳ４２）。ＣＰＵ１２１は、性能情報の呼び出し命令を受け付けたか否かを判定する（ステップＳ４３）。ＣＰＵ１２１は、性能情報の読み出し命令を受け付けていない場合には（ステップＳ４３，Ｎｏ）、処理を終了する。【０１２１】
一方、ＣＰＵ１２１は、性能情報の読み出し命令を受け付けた場合には（ステップＳ４３，Ｙｅｓ）、共通鍵を用いて、性能情報を暗号化する（ステップＳ４４）。例えば、ＣＰＵ１２１は、セキュリティプログラムＡによって、サーバ２００とコンテンツ鍵を共有しており、サーバ２００から、性能情報を要求されている場合には、コンテンツ鍵Ａ（共通鍵）によって、性能情報を暗号化する。ＣＰＵ１２１は、暗号化した性能情報を出力する（ステップＳ４５）。【０１２２】
ところで、上記の説明では、セキュア領域１２０のＣＰＵ１２１が、セキュリティプログラムＡを実行する際に、「公開鍵／秘密鍵」による相互認証、一時鍵（コンテンツ鍵）の共有、データの暗号化を行う場合について説明した。しかし、同様の処理を、「共通鍵」を用いて実行することもできる。この場合には、セキュア領域１２０と、サーバ２００とが共通鍵を共有していることが前提となる。【０１２３】
セキュア領域１２０のＣＰＵ１２１が、サーバ２００との間で共通鍵を用いて行う相互認証について説明する。まず、ＣＰＵ１２１が、サーバ２００を認証する処理について説明する。ＣＰＵ１２１は、乱数生成回路１２７を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ２００の識別番号を、共通鍵で暗号化して、サーバ２００に送信する。【０１２４】
サーバ２００は、ＣＰＵ１２１から受信した暗号化された情報を共通鍵で復号する。サーバ２００は、セキュア領域１２０およびサーバ２００のみが知る秘密の演算を乱数に施す。サーバ２００は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ２００の識別番号を、共通鍵で暗号化して、ＣＰＵ１２１に送信する。【０１２５】
ＣＰＵ１２１は、サーバ２００から受信した暗号化された情報を共通鍵で復号する。ＣＰＵ１２１は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、サーバ２００を認証する。【０１２６】
続いて、サーバ２００が、ＣＰＵ１２１を認証する処理について説明する。サーバ２００は、サーバ２００の乱数生成回路を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ２００の識別番号を、共通鍵で暗号化して、セキュア領域１２０に送信する。【０１２７】
ＣＰＵ１２１は、サーバ２００から受信した暗号化された情報を共通鍵で復号する。ＣＰＵ１２１は、セキュア領域１２０およびサーバ２００のみが知る秘密の演算を乱数に施す。ＣＰＵ１２１は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ２００の識別番号を、共通鍵で暗号化して、サーバ２００に送信する。【０１２８】
サーバ２００は、セキュア領域１２０から受信した暗号化された情報を共通鍵で復号する。サーバ２００は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、セキュア領域１２０を認証する。【０１２９】
次に、セキュア領域１２０のＣＰＵ１２１が、サーバ２００との間で一時鍵を共有する処理について説明する。ＣＰＵ１２１およびサーバ２００は、相互認証に成功した後に、乱数生成した一時鍵を、秘密の共有鍵で暗号化し、サーバ２００に伝送する。サーバ２００は、暗号化された一時鍵を、秘密の共有鍵で復号する。かかる処理を実行することで、一時鍵を、ＣＰＵ１２１とサーバ２００との間で共有することができる。例えば、サーバ２００は、一時鍵を用いて、コンテンツ情報を暗号化して、セキュア領域１２０に送信する。セキュア領域１２０のＣＰＵ１２１は、暗号化されたコンテンツ情報を一時鍵で復号する。【０１３０】
次に、本実施例に係るセキュア領域１２０の効果について説明する。改竄や覗き見が困難なセキュア領域１２０にＣＰＵ１２１および不揮発性メモリ１２８を有し、不揮発性メモリ１２８に、セキュリティ方式の異なる複数のプログラムを蓄積する。ＣＰＵ１２１は、不揮発性メモリ１２８に蓄積されたセキュリティプログラムを実行し、あるセキュリティプログラムで得た機密情報を、他のセキュリティプログラムにより引き継いで処理を行う。これにより、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。【０１３１】
例えば、セキュア領域１２０のＣＰＵ１２１はセキュリティプログラムＡを実行して、サーバ２００から暗号化されたコンテンツ情報（機密情報に相当）をセキュアに受信し、コンテンツ鍵Ａを用いて、コンテンツ情報を復号する。ＣＰＵ１２１は、セキュリティプログラムＢを実行して、コンテンツ鍵Ｂによってコンテンツ情報を暗号化し、ＨＤＤに伝送する。このため、機密情報の処理は、セキュア領域１２０の内部で実施され、外部に出力される機密情報は、暗号化された状態となるため、機密情報の内容が外部に漏れることなく、機密情報を処理することができる。【０１３２】
また、セキュア領域１２０は、複数のセキュリティプログラムを有しており、ＣＰＵ１２１は、メインＣＰＵ１５１からセキュリティプログラムの選択を受け付け、選択されたセキュリティプログラムを実行する。このため、メインＣＰＵ１５１は、接続先の外部装置に合わせたセキュリティ処理を、セキュア領域１２０に委託することができる。また、各セキュリティプログラムは、既存のセキュリティＣＡＳ層、ＤＴＣＰ−ＩＰセキュリティ層、ＤＲＭ層、認証層、ＴＬＳ層で定義されるプロトコルに基づく方式であるため、既存のＩｏＴ機器に特別なプログラムやハードウェアを設置しなくても、機密情報をセキュアに処理することができる。【０１３３】
また、セキュア領域１２０は、不揮発性メモリ１２８に性能情報を格納し、各種のプログラムをダウンロードする場合や更新する場合に、サーバ２００等の外部装置からの要求に応じて、性能情報をサーバ２００に通知する。サーバ２００は、性能情報を基にして、ダウンロード対象となるプログラムに見合った性能情報である場合に、プログラムをセキュア領域１２０に送信する。このため、セキュア領域１２０は、性能に見合ったプログラムをダウンロードでき、プログラムを適切に実行することができる。
【符号の説明】
【０１３４】
１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ  端末装置
１２０    セキュア領域
１２１    ＣＰＵ
１２２    秘密検証回路
１２３    Trusted  time回路
１２４    共通暗号回路
１２５    非対称暗号回路
１２６    ハッシュ回路
１２７    乱数生成回路
１２８    不揮発性メモリ
１２９    揮発性メモリ領域
１５１    メインＣＰＵ
１５２    メインＲＡＭ
１５３    外部不揮発性メモリ
１５４    通信用ハード
２００    サーバ
【図１】
2017122361.tif 000003
【図２】
2017122361.tif 000004
【図３】
2017122361.tif 000005
【図４】
2017122361.tif 000006
【図５】
2017122361.tif 000007
【図６】
2017122361.tif 000008
【図７】
2017122361.tif 000009
【図８】
2017122361.tif 000010
【図９】
2017122361.tif 000011
【図１０】
2017122361.tif 000012
【国際調査報告】
2017122361.tif 000013
2017122361.tif 000014