JP6589996B2 - セキュリティ装置および制御方法 - Google Patents

セキュリティ装置および制御方法 Download PDF

Info

Publication number
JP6589996B2
JP6589996B2 JP2017561495A JP2017561495A JP6589996B2 JP 6589996 B2 JP6589996 B2 JP 6589996B2 JP 2017561495 A JP2017561495 A JP 2017561495A JP 2017561495 A JP2017561495 A JP 2017561495A JP 6589996 B2 JP6589996 B2 JP 6589996B2
Authority
JP
Japan
Prior art keywords
information
security
program
cpu
external device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017561495A
Other languages
English (en)
Other versions
JPWO2017122361A1 (ja
Inventor
清之 小檜山
清之 小檜山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2017122361A1 publication Critical patent/JPWO2017122361A1/ja
Application granted granted Critical
Publication of JP6589996B2 publication Critical patent/JP6589996B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、セキュリティ装置等に関する。
近年、通信機能、センサ機能、プロセッサ機能等を備えたIoT(Internet of Things)機器を用いて、様々な情報をサーバに蓄積し、蓄積したデータを解析することで付加価値を生むシステムが考案されている。
例えば、車にIoT機器を搭載し、IoT機器から車の位置情報を収集して分析することで、渋滞情報を配信することができる。健康器具にIoT機器を搭載し、ユーザの歩数、血圧、体温等を収集して分析することで、ある場所に住む人間全体の健康状態と、ユーザの健康状態とを比較し、病気にかかる確率を割り出すことができる。また、ホームサーバにIoT機器を搭載し、ホームサーバでユーザが視聴する映像情報を収集して分析することで、年齢別、性別、居住地域別の視聴傾向を把握することができる。
ここで、各IoT機器とサーバとを接続するIoTネットワークシステムには、様々な接続形態がある。図7は、従来のIoTネットワークシステムの一例を示す図である。図7に示すように、このIoTネットワークシステムは、サーバ10と、ONU(Optical Network Unit)15と、ルータ16と、放送局20と、端末装置30と、HDD(Hard Disk Drive)40とを有する。
サーバ10は、DB(Data Base)10bに接続される。端末装置30は、CAS(Conditional Access Systems)カード35が挿入されており、IoT機器30a,30bを有する。HDD40は、IoT機器40aを有する。端末装置30は、アンテナ6aを介して、放送局から電波を受信する。また、端末装置30は、ホームネットワーク5を介して、ルータ16、HDD40に接続される。
図7に示すIoTネットワークシステムでは、端末装置30は、2つのネットワークに接続されている。1つは放送網であり、端末装置30は、放送電波およびアンテナ6aを経由して、映像番組を放送局20から受信する。もう一つはインターネット網であり、端末装置30は、光網、ONU15、ルータ16、ホームネットワーク5を経由して、サーバ10との間でデータを送受信する。ホームネットワーク5は、Ethernet(登録商標)網の一例である。
端末装置30のユーザは、映像情報を放送網経由或いはインターネット経由で視聴することができる。端末装置30のユーザは、映像情報を、HDD40に蓄積しておくことで、自身の好きなタイミングで、映像情報を視聴することができる。
例えば、端末装置30のIoT機器30a,30bは、視聴情報、個人情報等を、インターネット経由でサーバ10に送信する。個人情報には、ユーザの年齢、性別、住所等が含まれる。サーバ10は、端末装置30のIoT機器30a,30bやその他のIoT機器から受信した視聴情報、個人情報等を、DB10bに蓄積し、DB10bに蓄積された視聴情報、個人情報等を解析し、年齢別、性別、居住地域の視聴傾向を把握する。なお、ここでは説明を省略するが、サーバ10がIoT機器から各種の情報を収集することで、上記のように、渋滞情報や、病気にかかる確率なども算出することもできる。
図8は、従来の端末装置の構成を示す機能ブロック図である。図8に示すように、端末装置30は、LSI(Large-Scale Integration)31と、メインCPU(Central Processing Unit)32と、メインRAM(Random Access Memory)33、外部不揮発性メモリ34、通信用ハード35を有する。各装置31〜35は、バス36に接続される。LSIは、グラフィックプロセッサ31a、ビデオデコーダー31b、チューナー31cを有し、IF31dによって、バス36に接続される。図8に示すように、従来の端末装置30のLSI31には、メインCPU32が含まれておらず、バス36を介して、データをやり取りする。端末装置30は、メインCPU32がプログラムをメインRAM33に読み出して、後述する処理を実行する。
例えば、端末装置30には、所定のプロトコルスタックが実装される。図9は、プロトコルスタックの一例を示す図である。図9に示すように、プロトコルスタックは、一般的に、物理層、リンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層に分けられる。なお、各層は、余り厳密に適用されておらず、各層の境目は曖昧である。
例えば、放送網関連のプロトコルスタックは、放送網層、MPEG(Moving Picture Experts Group)−TS(Transport Stream)層、セクション層、PES層、番組情報層、セキュリティCAS層、圧縮映像層、圧縮音声層を含む。放送網関連のプロトコルスタックには、ネットワーク層に対応する層は基本的に存在しない。
例えば、インターネット網関連のプロトコルスタックは、Ethernet層、IP(Internet Protocol)層、TCP(Transmission Control Protocol)層またはUDP(User Datagram Protocol)層を含む。また、インターネット網関連のプロトコルスタックは、HTTP(HyperText Transfer Protocol)層、DTCP(Digital Transmission Content Protection)−IPセキュリティ層、HTML(HyperText Markup Language)5層を含む。また、インターネット網関連のプロトコルスタックは、SMTP(Simple Mail Transfer Protocol)メール層、DRM(Digital Rights Management)層、認証層、TLS(Transport Layer Security)層を含む。
各装置間で同じプロトコルを使用することで、各層の間で、情報の授受が可能になる。例えば、図7に示したHDD40と端末装置30との間で、Ethernet層を共有することで、物理層とリンク層での情報を共有することができる。
放送網関連のプロトコルスタックについて説明する。放送網層において、放送網からの信号がチューナーによりチャンネルの情報が選択される。MPEG−TS層において、選択されたチャンネルの情報は、188バイト固定長のデジタルパケット形式に変換され、出力される。各パケットの先頭部分に識別番号があり、識別番号を参照することで、パケットが映像情報か音声情報か番組情報かを識別することができる。識別子を用いることで、各種の時分割多重伝送が可能となる。
セクション層は、情報を伝送する役割を担う。セクション層では、音声や映像等のストリームからストリームに含まれる映像の番組名、俳優名、番組のあらすじ等の情報を抽出する処理を行う。また、セクション層は、CAS関連の情報を取り扱う。CAS関連の情報には、暗号化されたMPEG圧縮映像ストリームや、暗号化された圧縮音声ストリームを復号する場合に用いる鍵情報が、暗号化された状態で含まれる。
PES層は、音声や映像などのストリーム類を伝送する役割を担う。PES層で伝送されるストリームには、MPEG圧縮映像とMPEG圧縮音声が存在する。
暗号化された鍵情報を復号するためのマスタ鍵は、図7に示したCASカード35が保持する。セキュリティCAS層は、暗号化された鍵情報を、CASカード35に伝送すると、CASカード35はマスタ鍵を利用して鍵情報を復号する。番組情報層は、番組情報を用いて、各種の処理を実行する。番組情報には、番組名、俳優名、番組のあらすじ等の情報が含まれる。圧縮映像層は、暗号化されたMPEG圧縮映像ストリームを復号する処理を行う。圧縮音声層は、暗号化された圧縮音声ストリームを復号する処理を行う。
図9に示す、端末装置30のOS(Operating System)上で動作する各種のアプリケーションプログラム(Apply)は、各層が実行する処理を制御する。アプリケーションプログラムは、チューナーのチャンネル選択、チューナーから出力される音声や映像等が時分割されたMPEG−TSの各要素の抽出を行う。MPEG−TSの各要素には、音声、映像、番組情報、CAS関連の情報が含まれる。アプリケーションプログラムは、CASカード35に対して、暗号化された鍵情報を伝送し、復号された鍵情報を取得する。アプリケーションプログラムは、鍵情報を用いて映像や音声を復号し、MPEG圧縮された映像や音声の伸長処理を制御する。アプリケーションプログラムは、番組情報を抽出し、番組に関する情報を端末装置30のモニタに表示する。
次に、インターネット関連のプロトコルスタックについて説明する。インターネット関連のプロトコルスタックでは、物理層およびデータリンク層にEthernet層が利用される。Ethernet層の上にIP層が存在する。IP層は、UDP層またはTCP層に分けられる。UDP/TCP層の上に、HTTP層が存在し、HTTP層の上に具体的なアプリケーション層が存在する。例えば、HTTP層を利用して、HTML5層などのインターネットブラウザ・アプリケーションプログラムが動作する。HTML5層の上にSMPTメール層が存在し、各種メール・アプリケーションプログラムが動作する。TLS層は、インターネット上で各端末装置の認証処理を実行する。上記のHTTP層、HTML5層、SMTPメール層は、セキュリティに関する処理を行う層である。
DTCP−IPセキュリティ層、DRM層、認証層、TLS層は、セキュリティに関する処理を行う層である。
DRM層は、サーバ10と端末装置30との間で、暗号化されたインターネット・コンテンツのコンテンツ鍵のセキュアな授受を行うための層である。DRM層は、端末装置30とサーバ10との間で公開鍵・秘密鍵を利用した認証処理を行う。DRM層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。DRM層は、セッション鍵を利用した暗号化データの授受を行う。DRM層の処理では、一般的に、セッション鍵で暗号化されたコンテンツ鍵を端末装置30がサーバ10から受け取り、端末装置30側で、コンテンツ鍵を復号する。その後、端末装置30は、暗号化されたコンテンツ情報を、コンテンツ鍵で復号する。DRM層は、コンテンツ情報をセキュアに共有する場合に利用される。
TLS層は、サーバ10と端末装置30との間で相互認証を行う代表的なプロトコルである。TLS層は、端末装置30とサーバ10との間で公開鍵・秘密鍵を利用した認証処理を行う。TLS層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。TLS層は、セッション鍵を利用した暗号化データの授受を行う。TLS層は、個人情報等の一般的な情報をセキュアに送受信する場合に利用されるのが普通である。
DTCP−IPセキュリティ層は、ホームネットワーク5を介してコンテンツ情報をセキュアに送受信する場合に用いられる。ここでは、端末装置30が、ホームネットワーク5を介して、セキュアにコンテンツ情報を、HDD40に送信する場合を例にして説明する。
DTCP−IPセキュリティ層は、TCP層を利用して、端末装置30とHDD40との間で公開鍵・秘密鍵を利用した認証処理を行う。DTCP−IPセキュリティ層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。DTCP−IPセキュリティ層は、セッション鍵をベースにして、コンテンツ鍵を生成する。DTCP−IPセキュリティ層は、コンテンツ鍵で暗号化されたコンテンツをHTTP層で送受信する。HDD40は、HTTP層から受信した暗号化されたコンテンツ情報を復号子、別の鍵で再度暗号化した上で、コンテンツ情報を蓄積する。
図10は、端末装置がホームネットワークを介してコンテンツをセキュアに伝送する例を示す図である。図10に示す例では、端末装置30が、インターネット網を経由して、暗号化されたコンテンツ情報をサーバ10から受信する。端末装置30は、コンテンツ情報を復号鍵で復号した後、暗号鍵でコンテンツ情報を再度暗号化し、ホームネットワーク5を介して、暗号化したコンテンツ情報をHDD40に伝送する。HDD40は、コンテンツ情報を復号し、復号したコンテンツ情報を、暗号鍵で再度暗号化した上で記憶部41に蓄積する。
端末装置30は、DRM層で定義されるプロトコルに従って、DRM処理を実行する。端末装置30は、DRM処理として、相互認証、セッション鍵の生成、コンテンツ鍵受信を順に行う。端末装置30は、サーバ10から暗号化されたコンテンツ情報を受信し、受信したコンテンツ情報を、復号する。端末装置30は、復号したコンテンツ情報を、ホームネットワーク5用に再暗号化する。端末装置30は、DTCP−IPセキュリティ層で定義されるプロトコルに従って、暗号化する際の暗号鍵を以下のように生成する。
端末装置30は、HDD40との間で、公開鍵・秘密鍵ペアを利用した相互認証を行う。端末装置30は、端末装置30内の乱数発生器を利用したセッション鍵を生成し、HDD40と共有する。端末装置30は、コンテンツ鍵でコンテンツ情報を再暗号化し、HTTP層で再暗号化したコンテンツ情報をHDD40に送信する。
HDD40は、再暗号化されたコンテンツ情報を受信する。HDD40は、端末装置30との間で共有したセッション鍵をベースにして、コンテンツ鍵を共有し、コンテンツ鍵を用いて、再暗号化されたコンテンツ情報を復号する。ここで、コンテンツ情報を暗号化しないで、記憶部41に格納すると、盗難される恐れがある。このため、HDD40は、HDD40上の乱数生成器で生成した暗号鍵でコンテンツ情報を暗号化し、暗号化したコンテンツ情報を、記憶部41に蓄積する。HDD40は、暗号鍵をHDD40上の秘密の場所に保存し、コンテンツ情報を視聴する場合には、秘密の場所に保存した暗号鍵を持ち手、記憶部41に蓄積したコンテンツ情報を復号する。
例えば、端末装置30がコンテンツ視聴の要求を受け付けた場合には、端末装置30は、DTCP−IPセキュリティ層のプロトコルに従い、HDD40からコンテンツ情報をセキュアに受信し、表示する。
ここで、上記のDRM層、DTCP−IPセキュリティ層等のプロトコルに従って処理を実行する場合に、鍵類、乱数生成などの処理内容が漏洩し、改竄されると機密情報が漏洩する場合がある。この問題を解消するために、従来技術では、例えば、端末装置30に搭載するアプリケーションプログラム、Ethernet関連プログラム、TCP/IPプログラム、DTCP−IPプログラム、DRMプログラムを難読化することで、機密情報が漏洩することを抑止している。難読化とは、プログラムをわざと限りなく複雑にし、ハッキングの前提であるプログラム解析を限りなく複雑にするものである。
国際公開第2014/049830号
しかしながら、上述した従来技術では、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができないという問題がある。
例えば、従来技術では、各種のプログラムを難読化して、機密情報を漏洩することを抑止しているが、難読化しても十分な時間をかければ解析可能であり、機密情報をのぞき見ることや、改竄することは可能である。
また、従来技術では、基本的に、端末装置30のメインCPU32が、各セキュリティプログラムをそれぞれ読み出して機密情報を処理している。例えば、端末装置30のメインCPU32に対して、外部からの操作等が可能であるため、メインCPU32が不正に操作された場合には、セキュリティプログラムを実行する際に、機密情報が漏洩する場合がある。
また、既存の各セキュリティプロトコルを廃止して、セキュリティ強度の強い新たなプロトコル等を提案することも考えられるが、上述した各種のセキュリティプロトコルは、既に広く利用されているため、新たなプロトコルを導入することは難しい。
1つの側面では、本発明は、効率的かつ安全にセキュリティ方式を切り替えて、機密情報の処理をすることができるセキュリティ装置および制御方法を提供することを目的とする。
第1の案では、セキュア装置は、セキュア領域内にプロセッサとメモリとを有する。メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、セキュリティ処理で用いるセキュリティ情報とを格納する。プロセッサは、複数種類のプログラムのうち第1プログラムを実行して第1外部装置との間で第1セキュリティ処理を実行することで、第1外部装置から機密情報を取得する。プロセッサは、複数種類のプログラムのうち第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、機密情報を、第2外部装置に送信するための機密情報に変換する。
効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。
図1は、本実施例に係るネットワークシステムの一例を示す図である。 図2は、本実施例に係る端末装置の構成を示す機能ブロック図である。 図3は、セキュア領域のCPUが実行するDRM処理の一例を示すフローチャートである。 図4は、セキュア領域のCPUが実行するDTCP−IP処理の一例を示すフローチャートである。 図5は、セキュア領域がコンテンツ視聴要求を受け付けた場合の処理手順を示すフローチャートである。 図6は、性能情報の要求を受け付けた場合の処理手順を示すフローチャートである。 図7は、従来のIoTネットワークシステムの一例を示す図である。 図8は、従来の端末装置の構成を示す機能ブロック図である。 図9は、プロトコルスタックの一例を示す図である。 図10は、端末装置がホームネットワークを介してコンテンツをセキュアに伝送する例を示す図である。
以下に、本願の開示するセキュリティ装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例に係るネットワークシステムの一例を示す図である。図1に示すように、このネットワークシステムは、端末装置100a,100b,100c,100d,100e、サーバ200を有する。端末装置100a〜100cと、サーバ200とは、インターネット網6を介して相互に接続される。また、サーバ200は、DB200aに接続される。端末装置100a,100d,100eは、ホームネットワーク5を介して相互に接続される。
端末装置100a〜100eは、PC(Personal Computer)、携帯電話、スマートフォン、センサ、IoT機器等に対応する。以下の説明では、端末装置100a〜100eをまとめて適宜、端末装置100と表記する。端末装置100は、単数または複数のIoT機器110を備える。また、端末装置100は、セキュア領域120を有する。セキュア領域120は、耐タンパー性の領域であり、セキュア領域120に含まれるハードウェアやソフトウェアを覗き見することや、改竄することは困難である。セキュア領域120は、セキュリティ装置に対応する。
端末装置100は、既存のプロトコルスタックに基づいて、サーバ10や他の端末装置との間でデータ通信を実行する場合に、セキュリティに関連する処理のみ、セキュア領域120に含まれるCPUに処理の実行を依頼する。例えば、セキュア領域120に含まれるCPUは、セキュリティCAS層、DTCP−IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルの処理を、セキュア領域120外のCPUと独立して実行する。
サーバ200は、端末装置100から各種の情報を受信して、DB200aに登録する。また、サーバ200は、端末装置100からの要求に応じて、DB200aに格納された情報を、要求元の端末装置100に送信する。本実施例では一例として、サーバ200は、コンテンツ情報を、端末装置100に送信する場合について説明する。
図2は、本実施例に係る端末装置の構成を示す機能ブロック図である。図2に示すように、端末装置100は、セキュア領域120と、メインCPU151と、メインRAM152と、外部不揮発性メモリ153と、通信用ハード154とを有する。各装置120、151,152,153,154は、バス160を介して相互に接続される。
セキュア領域120は、CPU121、秘密検証回路122、Trusted Time回路123、共通暗号回路124、非対称暗号回路125、ハッシュ回路126、乱数生成回路127、不揮発性メモリ128、揮発性メモリ領域129を有する。
CPU121は、不揮発性メモリ128に格納された各種のプログラムを、揮発性メモリ領域129に読み出して、各種の処理を実行する装置である。CPU121は、IF130を介して、メインCPU151からコマンドを受け付け、コマンドに対応するプログラムを実行する。CPU121が、メインCPUから受け付けるコマンドは、管理者によって予め定義されている。CPU121は、定義されていないコマンドを受け付けた場合には、受け付けたコマンドを消去する等の処理を実行することで、定義されていないコマンドを実行しないようにする。CPU121が実行する処理の具体的な説明は後述する。
秘密検証回路122は、予め管理者等により決められた秘密の入力信号を受け付けると、秘密検証回路122を介した情報の入力を許容するインタフェースである。例えば、初期設定時に、秘密検証回路122は、セキュア領域識別番号、マスタ鍵の入力を受け付け、受け付けたセキュア領域識別番号、マスタ鍵の情報を、不揮発性メモリ128に格納する。セキュア領域識別番号は、セキュア領域120を一意に識別する情報であり、唯一無二の番号である。マスタ鍵は、各種の情報を暗号化する場合に用いられる鍵であり、唯一無二の鍵である。
また、秘密検証回路122は、初期設定時に、予め管理者に選定された必要最低限のプログラム群の情報を受け付け、受け付けたプログラム群の情報を、不揮発性メモリ128に格納する。例えば、必要最低限のプログラム群には、ダウンロードルーチン、プログラム蓄積ルーチン、蓄積プログラム管理データ作成ルーチンが含まれる。
ダウンロードルーチンは、工場出荷後に新規のプログラムをダウンロードする手順を定義したプログラムである。プログラム蓄積ルーチンは、外部装置からダウンロードしたプログラムを、不揮発性メモリ128に蓄積する手順を定義したプログラムである。
蓄積プログラム管理データ作成ルーチンは、不揮発性メモリ128に格納された各プログラムやルーチンを読み出す手順を定義したプログラムである。例えば、CPU121は、不揮発性メモリ128に格納されたプログラムが更新される場合や、新たなプログラムを不揮発性メモリ128に格納する場合に、蓄積プログラム管理データ作成ルーチンを読み出し実行し、蓄積プログラム管理データを生成する。CPU121は、蓄積プログラム管理データを、不揮発性メモリ128に格納する。
蓄積プログラム管理データは、不揮発性メモリ128に蓄積されたプログラムやルーチンの名称、版数、プログラム実行時に使用される不揮発性メモリ128の容量、不揮発性メモリ128のデータ領域の場所が記載される。かかるデータ領域には、各種の鍵情報、証明書、各種ログ情報、個人情報、ハッシュ値が記載される。
ここでは、必要最低限のプログラム群を、秘密検証回路122を介して、不揮発性メモリ128に格納する例を示したが、セキュア領域120を製造する過程において、必要最低限のプログラム群を不揮発性メモリ128に、予め格納しておいてもよい。
Trusted Time回路123は、セキュア領域120内で独立して時間を計るタイマである。例えば、Trusted Time回路123は、CPU121からの要求に応じて、時間情報を、CPU121に出力する。Trusted Time回路123は、セキュア領域120に電源が投入された時点で、メインCPU151にアクセスし、時間情報を取得し、Trusted Time回路123の時刻情報を更新する。
共通暗号回路124は、CPU121からの要求に応じて、共通鍵による暗号方式に基づき、情報の暗号化または復号を実行する回路である。共通鍵による暗号方式は、例えば、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、3−DESなどに対応する。
非対称暗号回路125は、CPU121からの要求に応じて、公開鍵/秘密鍵等による非対称鍵の暗号方式に基づき、情報の暗号化または復号を実行する回路である。非対称鍵の暗号方式は、例えば、RSA(Rivest Shamir Adleman)、楕円暗号などに対応する。
ハッシュ回路126は、CPU121から情報の入力を受け付けた場合に、情報のハッシュ値を計算し、ハッシュ値をCPU121に通知する回路である。
乱数生成回路127は、CPU121からの要求に応じて、乱数を生成する回路である。
不揮発性メモリ128は、セキュア領域識別番号、マスタ鍵、必要最低限のプログラム群を格納する記憶装置である。また、CPU121は、上記のダウンロードルーチンを実行してダウンロードした各種のプログラム群を、プログラム蓄積ルーチンによって、不揮発性メモリ128に蓄積する。
例えば、不揮発性メモリ128に蓄積されるプログラム群には、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のセキュリティプログラムが含まれる。外部装置は、インターネット網6を介して端末装置100と接続するサーバ200、ホームネットワーク5を介して端末装置100と接続する他の端末装置100に対応する。所定のセキュリティ方式は、例えば、セキュリティCAS層、DTCP−IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルに基づく方式である。
セキュリティプログラムは、基本的に、外部装置との間で相互認証を行う機能、セッション鍵を生成し外部装置と共有する機能、データを暗号化する機能を有する。
例えば、セキュリティプログラムが、DRM層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムA」である場合には、下記の機能を有する。セキュリティプログラムAは、公開鍵、秘密鍵のペアを用いて、サーバ200との間で相互認証を行う機能を有する。セキュリティプログラムAは、セッション鍵を生成する機能を有する。セキュリティプログラムAは、コンテンツ鍵Aをサーバ200から受信する機能を有する。例えば、サーバ200から受信するコンテンツ情報は、コンテンツ鍵Aで暗号化されている。
例えば、セキュリティプログラムが、DTCP−IPセキュリティ層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムB」である場合には、下記の機能を有する。セキュリティプログラムBは、公開鍵、秘密鍵のペアを用いて、ホームネットワーク5に接続された外部装置との間で相互認証を行う機能を有する。セキュリティプログラムBは、乱数発生回路127を利用して、セッション鍵を生成し、外部装置と共有する機能を有する。セキュリティプログラムBは、セッション鍵を用いて、コンテンツ鍵Bを生成する機能を有する。
更に、セキュリティプログラムBは、例えば、他のセキュリティプログラム(セキュリティプログラムA)が使用したコンテンツ鍵Aを用いて、コンテンツ情報を復号する機能を有する。セキュリティプログラムBは、コンテンツ鍵Aを用いて復号したコンテンツ情報を、コンテンツ鍵Bを用いて再度暗号化する機能を有する。
ここでは説明の便宜上、セキュリティプログラムA,Bについて説明したが、不揮発性メモリ128には、他のセキュリティプログラムが蓄積されていても良い。例えば、TLS層、セキュリティCAS層、認証層等で定義されるプロトコルに基づくセキュリティプログラムが、不揮発性メモリ128に蓄積される。
不揮発性メモリ128は、上記のプログラム群の他に、各プログラム群のハッシュ値が、プログラムを識別する情報と対応付けて格納される。ハッシュ値は、ハッシュ回路126によって計算される。
不揮発性メモリ128に格納されたプログラム群の一部は、外部不揮発性メモリ153に格納されていても良い。例えば、CPU121は、不揮発性メモリ128に格納されたプログラム群の一部を、マスタ鍵で暗号化して、メインCPU151に出力し、外部不揮発性メモリ153に格納することを依頼する。CPU121は、外部不揮発性メモリ153のプログラムを利用する場合には、メインCPU151に依頼して、外部不揮発性メモリ153の暗号化されたプログラムを取得し、マスタ鍵で復号する。CPU121は、マスタ鍵で復号したプログラムのハッシュ値が、不揮発性メモリのハッシュ値と一致した場合に、復号したプログラムを実行する。
不揮発性メモリ128は、セキュア領域120の性能情報を格納する。性能情報は、CPU121の処理速度、CPU121の処理ビット数、サポートする暗号方式、乱数生成回路127の有無、ハッシュ回路126の有無、ハッシュ回路126が行うハッシュ演算の種別の情報を含む。性能情報は、セキュア領域120のセキュア度情報、揮発性メモリ領域129のメモリ容量と、揮発性メモリ領域129の未使用容量、外部不揮発性メモリ153の利用可否、セキュア領域120が許容する外部不揮発性メモリ153のメモリ容量の情報を含む。性能情報は、Trusted Time回路123のクロックのサポート可否、セキュア領域120に搭載したOSの種別、セキュア領域120のグレードの情報を含む。
性能情報に含まれるセキュア度情報は、セキュア領域120が論理的および物理的にどの程度セキュアであるかの度合いを示す情報である。例えば、論理的なセキュア度は、CPU121が、メインCPU151等から受け付ける命令の種別等により特定される。例えば、CPU121が受け付ける命令数が多いほど、論理的なセキュア度が低下する。
また、セキュア度として、例えばメインCPU151とCPU121を物理的に同じCPUとし、メインCPUとして動作する場合はノーマルモード、CPU121として動作する場合は、セキュアモードとすることも可能である。CPUがセキュアモードで動作する場合は、セキュアなメモリ領域をふくむ全メモリ領域にアクセス可能とし、CPUがノーマルモードの場合は、セキュアなメモリ領域はアクセス不可能にする。この場合、CPUは物理的に同じであるが、論理的に区別される。物理的に違うCPUの方が当然セキュア度は向上する。セキュア度は、このように物理的に違うCPUか単に論理的に違うCPUかで規定することも可能である。既存のCPUで、このようなアーキテクチャーを採用しているのは、ARMプロセッサなどである。ARMプロセッサは、ノーマルモードとトラステッドモードがあり、トラステッドモードの時は、全メモリ空間をアクセス可能であるが、ノーマルモードの時にアクセス出来るメモリ空間は制限される。ARMプロセッサはモードを切り替えつつ動作する。
物理的なセキュア度は、電磁波解析、電力解析攻撃に関する実験を行い、特定される。例えば、セキュア領域120を製造する工場の管理者が、論理的なセキュア度、物理的なセキュア度考慮して、セキュア領域120に設定するセキュア度情報を生成し、不揮発性メモリ128に格納する。
また、管理者は、性能情報に含まれるグレード以外の要素を基にして、セキュア領域120のグレードを判断し、不揮発性メモリ128に格納しても良い。
揮発性メモリ領域129は、CPU121が、不揮発性メモリ128に格納されたプログラムを読み出して実行する領域である。また、CPU121が処理を行う場合に用いる情報を、一時的に格納する領域である。
IF130は、セキュア領域120内のCPU121と、セキュア領域120外のメインCPU151との間で授受される情報を中継するインタフェースである。
メインCPU151は、メインRAM152に格納されたプログラムを実行して、各種の情報を実行する処理部である。例えば、メインCPU151は、Ethernet層、IP層、TCP/UDP層、HTTP層のプロトコルに基づいて、インターネット網6を介したサーバ10との接続、ホームネットワーク5を介した他の端末装置100との接続を行う。
メインCPU151は、セキュリティCAS層、DTCP−IPセキュリティ層、DRM層、認証層、TLS層のプロトコルに基づく処理を、セキュア領域120内のCPU121に依頼する。メインCPU151は、CPU121が、インターネット網6を介してサーバ10とやり取りする暗号情報を中継する。メインCPU151は、CPU121が、ホームネットワーク5を介して他の端末装置100とやり取りする暗号情報を中継する。
メインCPU151は、セキュア領域120内のCPU121から外部不揮発性メモリ153に格納された情報の読み出し要求を受け付けた場合には、対象となる情報を、外部不揮発性メモリ153から読み出し、読み出した情報をCPU121に出力する。
メインRAM152は、例えば、Ethernet処理プログラム、IP処理プログラム、TCP/UDP処理プログラム、HTTP処理プログラムを格納する。Ethernet処理プログラムは、Ethernet層のプロトコルにより動作するプログラムである。IP処理プログラムは、IP層のプロトコルにより動作するプログラムである。TCP/UDP処理プログラムは、TCP層またはUDP層のプロトコルにより動作するプログラムである。HTTP処理プログラムは、HTTP層のプロトコルにより動作するプログラムである。
外部不揮発性メモリ153には、例えば、不揮発性メモリ128のプログラム群の一部が、暗号化された状態で格納されている。また、Ethernet処理プログラム、IP処理プログラム、TCP/UDP処理プログラム、HTTP処理プログラムを格納していても良い。
通信用ハード154は、ホームネットワーク5、インターネット網6を介して外部装置からデータを受信し、受信した情報をメインCPU151に出力する。通信用ハード154は、メインCPU151から送信依頼を受け付けたデータを、ホームネットワーク5、インターネット網6を介して外部装置に出力する。また、通信用ハード154は、放送網を介して図示を省略する放送局から情報を受信し、受信した情報を、メインCPU151に出力する。
続いて、セキュア領域120に電源が投入された場合に、CPU121が実行する処理の一例について説明する。一例として、不揮発性メモリ128には、管理データ呼び出しルーチン、プログラム選択&起動ルーチン、プログラム停止ルーチン、セキュア領域用外部コミュニケーションルーチンが格納されているものとする。CPU121は、上記のダウンロードルーチン、プログラム蓄積ルーチン等を実行し、上記プログラムを、不揮発性メモリ128に格納しておく。
セキュア領域120に電源が投入されると、CPU121は、不揮発性メモリ128から管理データ呼び出しルーチンを起動し、セキュア領域120が管理するプログラムやルーチン群に関連するデータを、不揮発性メモリ128から読み出す。例えば、CPU121は、プログラム選択&起動ルーチンを起動し、読み出したデータを基にして、所定のプログラムやルーチンを選択し、選択したプログラムやルーチンを起動する。
CPU121は、プログラムが使用されてないことを検出すると、プログラム停止ルーチンを起動し、使用されなくなったプログラムを停止する。CPU121は、使用されなくなったプログラムが使用していた揮発性メモリ領域129を解放する。
CPU121が起動するプログラムの中には、セキュア領域120外のメインCPU151と連携するものが存在する。例えば、セキュア領域用外部コミュニケーションルーチンは、メインCPU151と連携するプログラムである。CPU121は、セキュア領域用外部コミュニケーションルーチンを起動して、メインCPU151との間で情報を授受する。なお、CPU121に情報漏洩等の不正な処理を実行させることを抑止するために、セキュア領域用外部コミュニケーションルーチンは、メインCPU151から受け付けるコマンドの種別を予め定義しておく。
例えば、CPU121がプログラム蓄積ルーチンを起動して、外部不揮発性メモリ153にプログラムやデータを蓄積する場合には、セキュア領域用外部コミュニケーションルーチンに従い、メインCPU151にプログラムやデータの蓄積を依頼する。CPU121が、セキュア領域120内のその他のプログラムを起動して、メインCPU151に各種の依頼を行う場合にも、セキュア領域用外部コミュニケーションルーチンに従う。
また、セキュア領域用外部コミュニケーションルーチンは、CPU121がメインCPU151から命令を受け付けた場合の手順も定義する。例えば、CPU121がメインCPU151から受け付ける命令は、特定のプログラムのダウンロード命令、セキュア領域識別番号の呼び出し命令、セキュア領域120の性能情報の読み出し命令などが含まれる。
続いて、端末装置100が、セキュア領域120を用いて、コンテンツ情報をサーバ200から受信する処理、および、セキュア領域120を用いて、コンテンツ情報を、ホームネットワーク5に接続されたHDDに蓄積する処理の一例について説明する。
端末装置100は、ユーザから特定のコンテンツを視聴する旨のコマンドを受け付けると、メインCPU151は、インターネット網6を介して、サーバ200と接続する。例えば、メインCPU151が、サーバ200と接続する場合には、下記の処理を実行する。メインCPU151は、TCPパケットを生成し、TCPパケットをIPパケットに埋め込み、IPパケットをEthernetパケットに埋め込む。メインCPU151は、TCPプログラム、IPプログラム、Ethernetプログラムを実行して、サーバ200と接続する。
メインCPU151は、サーバ200との接続が完了すると、セキュア領域120にDRM層に対応する処理の依頼を要求する。セキュア領域120のCPU121は、DRM層に対応する処理の依頼を受け付けると、不揮発性メモリ128から、セキュリティプログラムAを読み出し起動する。
セキュリティプログラムAを起動したCPU121は、下記のDRM処理を行う。図3は、セキュア領域のCPUが実行するDRM処理の一例を示すフローチャートである。図3に示すように、セキュア領域120のCPU121は、セキュリティプログラムAで利用する情報を取得する(ステップS10)。例えば、セキュリティプログラムAで利用する情報は、DRMID、DRM証明書、セキュア領域120の公開鍵/秘密鍵、サーバ200の公開鍵、サーバ200で動作するDRMのDRMID等が含まれる。
CPU121は、サーバ200との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する(ステップS11)。例えば、CPU121は、相互認証を実行する際に、乱数生成回路127を用いて乱数を発生させる。CPU121は、乱数、DRMID、公開鍵/秘密鍵ペアを利用して、サーバ200と認証を開始する。サーバ200は、サーバ200の乱数、DRMID、公開鍵/秘密鍵ペアを利用して応答する。
CPU121は、サーバ200との相互認証に成功したか否かを判定する(ステップS12)。CPU121は、サーバ200との相互認証に失敗した場合には(ステップS12,No)、処理を終了する。例えば、CPU121は、エラーをメインCPU151に出力する。
CPU121は、サーバ200との相互認証に成功した場合には(ステップS12,Yes)、ステップS13に移行する。CPU121は、乱数生成回路127を利用してセッション鍵を生成し、セッション鍵をサーバ200との間で共有する(ステップS13)。
CPU121は、サーバ200からセッション鍵で暗号化されたコンテンツ鍵Aを取得し、セッション鍵で復号することで、コンテンツ鍵Aを取得する(ステップS14)。
CPU121は、メインCPU151に対して、コンテンツ鍵Aを取得した旨を通知する(ステップS15)。メインCPU151は、コンテンツ鍵Aを取得した旨の通知を受けると、サーバ200に対してコンテンツ情報の伝送を依頼する。サーバ200は、コンテンツの伝送の依頼を受け付けると、コンテンツ情報をコンテンツ鍵Aで暗号化して、端末装置100に送信する。例えば、コンテンツ情報は、RTP(Real-time Transport Protocol)パケットの中にMPEG圧縮されて、端末装置100に伝送される。メインCPU151は、暗号化されたコンテンツ情報をCPU121に出力する。
CPU121は、暗号化されたコンテンツ情報を取得し、コンテンツ鍵Aで復号する(ステップS16)。なお、ステップS16において、CPU121は、コンテンツ鍵Aの情報を、メインCPU151に通知して、暗号化されたコンテンツ情報の復号を、メインCPU151に依頼しても良い。
上記のように、セキュア領域120のCPU121は、図3に示したDRM処理を実行することで、サーバ200との相互認証、セッション鍵の生成及び共有、コンテンツ鍵Aの取得、コンテンツ情報の復号を実行する。
続いて、セキュア領域120のCPU121は、図3のDRM処理を実行した後に、不揮発性メモリ128から、セキュリティプログラムBを読み出し起動する。セキュリティプログラムBを起動したCPU121は、下記のDTCP−IP処理を実行する。
図4は、セキュア領域のCPUが実行するDTCP−IP処理の一例を示すフローチャートである。図4では一例として、端末装置100が、ホームネットワーク5に接続されたHDDに、サーバ200から受信したコンテンツ情報を蓄積する場合について説明する。例えば、HDDを、図10に示したHDD40とする。
図4に示すように、セキュア領域120のCPU121は、HDD40との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する(ステップS20)。
CPU121は、HDD40との相互認証に成功したか否かを判定する(ステップS21)。CPU121は、HDD40との相互認証に失敗した場合には(ステップS21,No)、処理を終了する。例えば、CPU121は、エラーをメインCPU151に出力する。
CPU121は、HDD40との相互認証に成功した場合には(ステップS21,Yes)、ステップS22に移行する。CPU121は、乱数生成回路127を利用してセッション鍵を生成し、セッション鍵をHDD40との間で共有する(ステップS22)。
CPU121は、セッション鍵を利用してコンテンツ鍵Bを生成し、コンテンツ鍵Bを暗号化する(ステップS23)。CPU121は、暗号化したコンテンツ鍵BをHDDに送信することをメインCPU151に依頼する(ステップS24)。
CPU121は、DRM処理によりコンテンツ鍵Aで復号したコンテンツ情報を、コンテンツ鍵Bによって暗号化し、暗号化したコンテンツ情報をHDD40に送信することをメインCPU151に依頼する(ステップS25)。なお、ステップS26において、CPU121は、コンテンツ鍵Bの情報を、メインCPU151に通知して、コンテンツ情報の暗号化を、メインCPU151に依頼しても良い。メインCPU151は、コンテンツ鍵を基にして、コンテンツ情報を暗号化し、暗号化したコンテンツ情報をHDDに伝送する。
次に、セキュア領域120に新たなプログラムをダウンロードする場合の処理について説明する。新規にダウンロードするプログラムは、例えば、上述したセキュリティプログラムA、セキュリティプログラムBに対応する。以下では、一例として、セキュリティプログラムAをダウンロードする場合の処理について説明する。
セキュア領域120のCPU121は、メインCPU151からセキュリティプログラムAのダウンロード命令を受け付ける。CPU121は、不揮発性メモリ128に格納された管理データ読み出しルーチンによって、ダウンロードルーチンがあることを確認する。CPU121は、プログラムコードや関連情報の場所を確認する。CPU121は、プログラム蓄積ルーチンによって、ダウンロードルーチンを、揮発性メモリ領域129に読み出す。CPU121は、ダウンロードルーチンを揮発性メモリ領域129に読み出した場合に、ダウンロードルーチンのハッシュ値を計算し、予め算出しておいたハッシュ値と比較することで、ダウンロードルーチンが改竄されているか否かを確認する。ダウンロードルーチンが改竄されている場合には、ダウンロードを中断する。
CPU121は、ダウンロードルーチンが改竄されていない場合には、ダウンロードルーチンを起動し、関連情報を使って、サーバ200と接続する。関連情報は、ダウンロードプログラム用の識別番号、公開鍵/秘密鍵ペア、サーバ200の公開鍵、サーバ200のURL(Uniform Resource Locator)が含まれる。なお、CPU121は、メインCPU151を介して、サーバ200と接続する。メインCPU151は、既存のEthernet層、IP層、TCP層のプロトコルに従って、サーバ200と接続する。
ダウンロードルーチンを起動中のCPU121は、サーバ200と接続すると、サーバ200との間で、互いの公開鍵、秘密鍵ペアで相互認証を行う。CPU121は、乱数生成回路127で乱数を生成してセッション鍵を生成し、サーバ200との間で共有する。また、CPU121は、サーバ200からセッション鍵で暗号化されたコンテンツ鍵を受信し、セッション鍵を使用して、コンテンツ鍵を取得する。
ダウンロードルーチンを起動中のCPU121は、サーバ200から、コンテンツ鍵で暗号化されたセキュリティプログラムAと、セキュリティプログラムAの関連情報を取得する。CPU121は、暗号化された情報をコンテンツ鍵によって復号する。CPU121は、プログラム蓄積ルーチンを起動して、復号したセキュリティプログラムAと関連情報を、不揮発性メモリ128に蓄積する。CPU121は、セキュリティプログラムAおよび関連情報のハッシュ値を計算し、セキュリティプログラムAと対応付けて、不揮発性メモリ128に格納する。CPU121は、セキュリティプログラムAの版数、動作に必要な揮発性メモリ領域129の容量、不揮発性メモリ128のデータ領域の場所を、蓄積プログラム管理データに記載する。
ダウンロードルーチンを起動中のCPU121は、ダウンロードが終了すると、メインCPU151に対して、ダウンロードの終了報告を行う。メインCPU151は、終了報告を受け付けると、CPU121に対して、ダウンロードルーチンの停止命令を出力する。CPU121は、停止命令を受け付けると、ダウンロードルーチンを停止し、停止報告を、メインCPU151に出力する。
ところで、ダウンロードルーチンを起動中のCPU121が、サーバ200から性能情報の要求を受け付けた場合には、コンテンツ鍵によって性能情報を暗号化し、暗号化した性能情報を、サーバ200に通知する。例えば、サーバ200は、セキュリティプログラムAを実行可能な基準性能情報を有している。サーバ200は、性能情報と基準性能情報とを比較して、セキュア領域120の性能情報が基準性能情報を上回っている場合に、セキュリティプログラムAをコンテンツ鍵で暗号化し、暗号化したコンテンツ情報をCPU121に伝送する。これに対して、サーバ200は、セキュア領域120の性能情報が基準性能情報を上回っていない場合には、セキュリティプログラムAを実行する性能がない旨の情報を、CPU121に通知する。CPU121は、セキュリティプログラムAを実行する性能がない旨の情報を受信した場合には、メインCPU151に対して、ダウンロードに失敗した旨の情報を通知する。
ここで、サーバ200は、基準性能情報の異なる複数のセキュリティプログラムA1、A2、A3を有し、セキュア領域120の性能情報で実行可能なセキュリティプログラムを選択し、選択したセキュリティプログラムを伝送しても良い。例えば、セキュア領域120の性能情報が、セキュリティプログラムA1の基準性能情報を、上回っているとする。この場合には、サーバ200は、セキュリティプログラムA1を、コンテンツ鍵で暗号化して、CPU121に伝送する。
次に、本実施例に係るセキュア領域120がコンテンツ視聴要求を受け付けた場合の処理手順について説明する。図5は、セキュア領域がコンテンツ視聴要求を受け付けた場合の処理手順を示すフローチャートである。
図5に示すように、セキュア領域120のCPU121は、メインCPU151からコンテンツ情報の視聴要求を受け付ける(ステップS30)。CPU121は、メインCPU151を介して、サーバ200との接続を確立する(ステップS31)。
CPU121は、セキュリティプログラムA(DRMプログラム)を読み出して実行する(ステップS32)。CPU121は、DRM処理を実行する(ステップS33)。ステップS33に示すDRM処理は、図3に示した処理に対応する。
CPU121は、暗号化されたコンテンツ情報を、コンテンツ鍵Aを用いて復号し、コンテンツ情報を取得する(ステップS34)。なお、ステップS34の処理は、CPU121の代わりに、メインCPU151が実行しても良い。メインCPU151が実行する場合には、メインCPU151は、コンテンツ鍵AをCPU121から取得し、コンテンツ鍵Aを用いて、サーバ200により暗号化されたコンテンツ情報を復号する。
CPU121は、プログラムB(DTCP−IPプログラム)を読み出して実行する(ステップS35)。CPU121は、DTCP−IP処理を実行する(ステップS36)。ステップS36に示すDTCP−IP処理は、図4に示した処理に対応する。
CPU121は、コンテンツ鍵Aで復号したコンテンツ情報を、コンテンツ鍵Bによって再暗号化してHDDに送信する(ステップS37)。なお、ステップS37の処理は、CPU121の代わりに、メインCPU151が実行しても良い。メインCPU151が実行する場合には、メインCPU151は、コンテンツ鍵BをCPU121から取得し、コンテンツ鍵Bを用いて、コンテンツ情報を暗号化する。
続いて、セキュア領域120のCPU121が性能情報の要求を受け付ける場合の処理手順の一例について説明する。図6は、性能情報の要求を受け付けた場合の処理手順を示すフローチャートである。図6に示すように、CPU121は、管理データ呼び出しルーチンを実行し、各種のプログラムを読み出す(ステップS41)。
CPU121は、外部コミュニケーションルーチンを実行する(ステップS42)。CPU121は、性能情報の呼び出し命令を受け付けたか否かを判定する(ステップS43)。CPU121は、性能情報の読み出し命令を受け付けていない場合には(ステップS43,No)、処理を終了する。
一方、CPU121は、性能情報の読み出し命令を受け付けた場合には(ステップS43,Yes)、共通鍵を用いて、性能情報を暗号化する(ステップS44)。例えば、CPU121は、セキュリティプログラムAによって、サーバ200とコンテンツ鍵を共有しており、サーバ200から、性能情報を要求されている場合には、コンテンツ鍵A(共通鍵)によって、性能情報を暗号化する。CPU121は、暗号化した性能情報を出力する(ステップS45)。
ところで、上記の説明では、セキュア領域120のCPU121が、セキュリティプログラムAを実行する際に、「公開鍵/秘密鍵」による相互認証、一時鍵(コンテンツ鍵)の共有、データの暗号化を行う場合について説明した。しかし、同様の処理を、「共通鍵」を用いて実行することもできる。この場合には、セキュア領域120と、サーバ200とが共通鍵を共有していることが前提となる。
セキュア領域120のCPU121が、サーバ200との間で共通鍵を用いて行う相互認証について説明する。まず、CPU121が、サーバ200を認証する処理について説明する。CPU121は、乱数生成回路127を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、サーバ200に送信する。
サーバ200は、CPU121から受信した暗号化された情報を共通鍵で復号する。サーバ200は、セキュア領域120およびサーバ200のみが知る秘密の演算を乱数に施す。サーバ200は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、CPU121に送信する。
CPU121は、サーバ200から受信した暗号化された情報を共通鍵で復号する。CPU121は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、サーバ200を認証する。
続いて、サーバ200が、CPU121を認証する処理について説明する。サーバ200は、サーバ200の乱数生成回路を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、セキュア領域120に送信する。
CPU121は、サーバ200から受信した暗号化された情報を共通鍵で復号する。CPU121は、セキュア領域120およびサーバ200のみが知る秘密の演算を乱数に施す。CPU121は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、サーバ200に送信する。
サーバ200は、セキュア領域120から受信した暗号化された情報を共通鍵で復号する。サーバ200は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、セキュア領域120を認証する。
次に、セキュア領域120のCPU121が、サーバ200との間で一時鍵を共有する処理について説明する。CPU121およびサーバ200は、相互認証に成功した後に、乱数生成した一時鍵を、秘密の共有鍵で暗号化し、サーバ200に伝送する。サーバ200は、暗号化された一時鍵を、秘密の共有鍵で復号する。かかる処理を実行することで、一時鍵を、CPU121とサーバ200との間で共有することができる。例えば、サーバ200は、一時鍵を用いて、コンテンツ情報を暗号化して、セキュア領域120に送信する。セキュア領域120のCPU121は、暗号化されたコンテンツ情報を一時鍵で復号する。
次に、本実施例に係るセキュア領域120の効果について説明する。改竄や覗き見が困難なセキュア領域120にCPU121および不揮発性メモリ128を有し、不揮発性メモリ128に、セキュリティ方式の異なる複数のプログラムを蓄積する。CPU121は、不揮発性メモリ128に蓄積されたセキュリティプログラムを実行し、あるセキュリティプログラムで得た機密情報を、他のセキュリティプログラムにより引き継いで処理を行う。これにより、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。
例えば、セキュア領域120のCPU121はセキュリティプログラムAを実行して、サーバ200から暗号化されたコンテンツ情報(機密情報に相当)をセキュアに受信し、コンテンツ鍵Aを用いて、コンテンツ情報を復号する。CPU121は、セキュリティプログラムBを実行して、コンテンツ鍵Bによってコンテンツ情報を暗号化し、HDDに伝送する。このため、機密情報の処理は、セキュア領域120の内部で実施され、外部に出力される機密情報は、暗号化された状態となるため、機密情報の内容が外部に漏れることなく、機密情報を処理することができる。
また、セキュア領域120は、複数のセキュリティプログラムを有しており、CPU121は、メインCPU151からセキュリティプログラムの選択を受け付け、選択されたセキュリティプログラムを実行する。このため、メインCPU151は、接続先の外部装置に合わせたセキュリティ処理を、セキュア領域120に委託することができる。また、各セキュリティプログラムは、既存のセキュリティCAS層、DTCP−IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルに基づく方式であるため、既存のIoT機器に特別なプログラムやハードウェアを設置しなくても、機密情報をセキュアに処理することができる。
また、セキュア領域120は、不揮発性メモリ128に性能情報を格納し、各種のプログラムをダウンロードする場合や更新する場合に、サーバ200等の外部装置からの要求に応じて、性能情報をサーバ200に通知する。サーバ200は、性能情報を基にして、ダウンロード対象となるプログラムに見合った性能情報である場合に、プログラムをセキュア領域120に送信する。このため、セキュア領域120は、性能に見合ったプログラムをダウンロードでき、プログラムを適切に実行することができる。
100a,100b,100c,100d,100e 端末装置
120 セキュア領域
121 CPU
122 秘密検証回路
123 Trusted time回路
124 共通暗号回路
125 非対称暗号回路
126 ハッシュ回路
127 乱数生成回路
128 不揮発性メモリ
129 揮発性メモリ領域
151 メインCPU
152 メインRAM
153 外部不揮発性メモリ
154 通信用ハード
200 サーバ

Claims (6)

  1. セキュア領域内にプロセッサとメモリとを有し、
    前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報と、前記プロセッサおよび前記メモリの性能に関する情報とを格納し、
    前記プロセッサは、前記性能に関する問い合わせを受け付けた場合に、前記性能に関する情報を暗号化して第1外部装置に通知し、
    前記プロセッサは、前記複数種類のプログラムのうち、通知した前記性能に関する情報に応じて前記第1外部装置から取得した第1プログラムを実行して前記第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得し、
    前記プロセッサは、前記複数種類のプログラムのうち前記第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、前記機密情報を、前記第2外部装置に送信するための機密情報に変換する
    ことを特徴とするセキュリティ装置。
  2. 前記メモリは、前記セキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
    前記プロセッサは、前記セキュア度の情報に対する要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力することを特徴とする請求項1に記載のセキュリティ装置。
  3. 前記セキュリティ情報は、前記外部装置との間で相互認証を実行する場合に使用する情報であり、前記セキュリティ処理は、前記外部装置と前記セキュリティ装置との相互認証処理と、セッション鍵を生成する処理と、前記機密情報を復号および暗号化するコンテンツ鍵を生成する処理を含むことを特徴とする請求項1に記載のセキュリティ装置。
  4. 前記セキュア領域の外部に外部メモリを有し、
    前記メモリは、ユニークなマスタ鍵を格納し、
    前記プロセッサは、前記マスタ鍵を用いて、前記複数種類のプログラムの一部または全部を暗号化し、暗号化したプログラムを前記外部メモリに格納することを特徴とする請求項1に記載のセキュリティ装置。
  5. 前記メモリは、前記プロセッサの性能に関する情報として、前記プロセッサの処理速度に関する情報を格納し、
    前記プロセッサは、前記処理速度に関する問い合わせを受け付けた場合に、前記処理速度に関する情報を暗号化して第1外部装置に通知し、
    前記プロセッサは、前記複数種類のプログラムのうち、通知した前記処理速度に関する情報に応じて前記第1外部装置から取得した第1プログラムを実行して前記第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得することを特徴とする請求項1に記載のセキュリティ装置。
  6. コンピュータが実行する制御方法であって、
    前記コンピュータは、セキュア領域内にプロセッサとメモリとを有し、
    前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報と、前記プロセッサおよび前記メモリの性能に関する情報とを格納し、
    前記プロセッサは、前記性能に関する問い合わせを受け付けた場合に、前記性能に関する情報を暗号化して第1外部装置に通知し、
    前記プロセッサは、前記複数種類のプログラムのうち、通知した前記性能に関する情報に応じて前記第1外部装置から取得した第1プログラムを実行して前記第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得し、
    前記プロセッサは、前記複数種類のプログラムのうち前記第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、前記機密情報を、前記第2外部装置に送信するための機密情報に変換する
    処理を実行することを特徴とする制御方法。
JP2017561495A 2016-01-15 2016-01-15 セキュリティ装置および制御方法 Expired - Fee Related JP6589996B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/051188 WO2017122361A1 (ja) 2016-01-15 2016-01-15 セキュリティ装置および制御方法

Publications (2)

Publication Number Publication Date
JPWO2017122361A1 JPWO2017122361A1 (ja) 2018-10-18
JP6589996B2 true JP6589996B2 (ja) 2019-10-16

Family

ID=59311358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561495A Expired - Fee Related JP6589996B2 (ja) 2016-01-15 2016-01-15 セキュリティ装置および制御方法

Country Status (3)

Country Link
US (1) US20180316497A1 (ja)
JP (1) JP6589996B2 (ja)
WO (1) WO2017122361A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036191A (ja) * 2017-08-18 2019-03-07 ヤフー株式会社 判定装置、判定方法及び判定プログラム
CN109803223A (zh) * 2018-12-26 2019-05-24 航天信息股份有限公司 物联网通信模组及物联网终端
KR102377265B1 (ko) 2021-09-29 2022-03-22 주식회사 유니온플레이스 네트워크 내의 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL9401262A (nl) * 1994-08-01 1996-03-01 Sony Telecom Europ Nv Systeem voor telecommunicatie.
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
CA2385097A1 (en) * 1999-09-21 2001-03-29 Discovery Communications, Inc. Electronic book security and copyright protection system
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2004015665A (ja) * 2002-06-10 2004-01-15 Takeshi Sakamura 電子チケット流通システムにおける認証方法およびicカード
EP1795991A1 (en) * 2002-07-30 2007-06-13 Fujitsu Limited Method and apparatus for reproducing information using a security module
CN100542084C (zh) * 2003-01-15 2009-09-16 索尼株式会社 信号处理系统、记录方法、程序、记录介质、再现装置和信息处理装置
US7549044B2 (en) * 2003-10-28 2009-06-16 Dphi Acquisitions, Inc. Block-level storage device with content security
US8402109B2 (en) * 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade
CN101102180B (zh) * 2006-07-03 2010-08-25 联想(北京)有限公司 基于硬件安全单元的系统间绑定及平台完整性验证方法
US8732854B2 (en) * 2006-11-01 2014-05-20 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
JP4858128B2 (ja) * 2006-12-01 2012-01-18 セイコーエプソン株式会社 出力管理システム及びその出力制御方法、並びにセキュリティ管理機能付き出力装置
US8761402B2 (en) * 2007-09-28 2014-06-24 Sandisk Technologies Inc. System and methods for digital content distribution
US7827326B2 (en) * 2007-11-26 2010-11-02 Alcatel-Lucent Usa Inc. Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral
JP2009258860A (ja) * 2008-04-14 2009-11-05 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
US8583937B2 (en) * 2010-12-16 2013-11-12 Blackberry Limited Method and apparatus for securing a computing device
US8625788B2 (en) * 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
WO2013085517A1 (en) * 2011-12-08 2013-06-13 Intel Corporation Method and apparatus for policy-based content sharing in a peer to peer manner using a hardware based root of trust
WO2013089728A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Method, device, and system for securely sharing media content from a source device
DE102012107456A1 (de) * 2012-08-14 2014-02-20 Limo Patentverwaltung Gmbh & Co. Kg Anordnung zur Formung von Laserstrahlung
EP2903202A4 (en) * 2012-09-28 2015-11-04 Fujitsu Ltd INFORMATION PROCESSING DEVICE AND SEMICONDUCTOR DEVICE
US9465711B2 (en) * 2014-01-31 2016-10-11 Verizon Patent And Licensing Inc. Providing power utilization information for operational states of an application across different operating systems
EP3050011B1 (en) * 2014-05-02 2017-09-20 Barclays Bank Plc. Transaction authentication
US10333901B1 (en) * 2014-09-10 2019-06-25 Amazon Technologies, Inc. Policy based data aggregation
US10181038B2 (en) * 2015-11-17 2019-01-15 Honeywell International Inc. Deployment assurance checks for monitoring industrial control systems
US10536441B2 (en) * 2016-08-23 2020-01-14 Texas Instruments Incorporated Thread ownership of keys for hardware-accelerated cryptography

Also Published As

Publication number Publication date
JPWO2017122361A1 (ja) 2018-10-18
WO2017122361A1 (ja) 2017-07-20
US20180316497A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
US11055429B2 (en) Key providing method, video playing method, server and client
TWI620087B (zh) 驗證伺服器、驗證方法及其電腦程式產品
US8307214B2 (en) Method for restricting access to media data generated by a camera
CN103595721B (zh) 网盘文件安全共享方法、共享装置及共享系统
US8078874B2 (en) Method and apparatus for transmitting data using authentication
KR101317496B1 (ko) 전송 데이터를 보호하기 위한 방법 및 이 방법을 구현하기 위한 보안 시스템
US11432039B2 (en) Systems and methods for data processing, storage, and retrieval from a server
US8788849B2 (en) Method and apparatus for protecting cached streams
US20080267399A1 (en) Method and Apparatus for Secure Content Recording
US11853465B2 (en) Securing data stored in a memory of an IoT device during a low power mode
JP6589996B2 (ja) セキュリティ装置および制御方法
US10298546B2 (en) Asymmetrical encryption of storage system to protect copyright and personal information
CN111602380A (zh) 标识用户终端以接收流式受保护多媒体内容的方法和系统
TWI621964B (zh) 透過行動裝置所執行的授權碼認證方法及相關的電腦程式產品
KR20050011181A (ko) 컨텐츠 저작권 보안 시스템 및 그 방법
JP6527115B2 (ja) 機器リスト作成システムおよび機器リスト作成方法
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
JP2007034903A (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
CN110476432A (zh) 监视媒体的保护
JP7000925B2 (ja) データ処理システム、および暗号鍵共有方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190902

R150 Certificate of patent or registration of utility model

Ref document number: 6589996

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees