JP2018093352A - Information processing system, function incorporation method, information processing unit, information processing method, and information processing program - Google Patents
Information processing system, function incorporation method, information processing unit, information processing method, and information processing program Download PDFInfo
- Publication number
- JP2018093352A JP2018093352A JP2016234544A JP2016234544A JP2018093352A JP 2018093352 A JP2018093352 A JP 2018093352A JP 2016234544 A JP2016234544 A JP 2016234544A JP 2016234544 A JP2016234544 A JP 2016234544A JP 2018093352 A JP2018093352 A JP 2018093352A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- hardware
- secure
- application
- encryption
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 317
- 230000010365 information processing Effects 0.000 title claims abstract description 252
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000010348 incorporation Methods 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 252
- 238000004891 communication Methods 0.000 claims description 73
- 230000004044 response Effects 0.000 claims description 26
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 206
- 230000006870 function Effects 0.000 description 113
- 238000010586 diagram Methods 0.000 description 65
- 239000008186 active pharmaceutical agent Substances 0.000 description 40
- 238000002360 preparation method Methods 0.000 description 21
- 238000000926 separation method Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 101150042248 Mgmt gene Proteins 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000001994 activation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Abstract
Description
本発明は、データ交換を行なうアプリケーション中の暗号化および復号を含む機能を実行する技術に関する。 The present invention relates to a technique for executing functions including encryption and decryption in an application for exchanging data.
上記技術分野において、特許文献1には、デバイスが複数タイプのコンテンツ保護技術を選択して処理する技術が開示されている。また、引用文献2には、ノーマル実行環境とセキュア実行環境とが分離されて、セキュア処理する技術が開示されている。
In the above technical field,
しかしながら、上記文献に記載の技術では、データ交換を行なうアプリケーションごとに所望の暗号化および復号に対応する必要があり、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができなかった。 However, in the technique described in the above document, it is necessary to cope with desired encryption and decryption for each application that exchanges data, and functions including desired encryption and decryption are common to applications that exchange data. It was not possible to use it according to the sequence.
本発明の目的は、上述の課題を解決する技術を提供することにある。 The objective of this invention is providing the technique which solves the above-mentioned subject.
上記目的を達成するため、本発明に係る情報処理装置は、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションの少なくともいずれか1つと前記複数のハードウェアの少なくともいずれか1つとのデータ交換を制御する制御手段と、
を備える。
In order to achieve the above object, an information processing apparatus according to the present invention provides:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between at least one of the plurality of applications and at least one of the plurality of hardware via the first interface and the second interface;
Is provided.
上記目的を達成するため、本発明に係る情報処理方法は、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention includes:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing method for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
including.
上記目的を達成するため、本発明に係る情報処理プログラムは、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理プログラムであって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
をコンピュータに実行させる。
In order to achieve the above object, an information processing program according to the present invention provides:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing program for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
Is executed on the computer.
上記目的を達成するため、本発明に係る情報処理システムは、
アプリケーションと、
暗号化および復号に使用するハードウェアと、
前記アプリケーションからの指示を、前記アプリケーションのプロトコルに従って、初期化手段または機密情報処理手段または終了処理手段への指示に変換する指示変換手段と、
前記指示変換手段から初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および前記ハードウェアを初期化する前記初期化処理手段と、
前記指示変換手段から、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する前記機密情報処理手段と、
前記指示変換手段から処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする前記終了処理手段と、
を備える。
In order to achieve the above object, an information processing system according to the present invention provides:
Application,
Hardware used for encryption and decryption;
An instruction conversion unit that converts an instruction from the application into an instruction to an initialization unit, a confidential information processing unit, or a termination processing unit according to the protocol of the application;
The initialization processing means for receiving the initialization instruction from the instruction converting means and initializing the software module group and the hardware prepared as a library;
The confidential information processing means that receives an instruction to execute confidential information processing including encryption and decryption from the instruction conversion means, and executes the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the instruction conversion unit, the termination processing unit that performs termination processing on the software module group and hardware that are initialized and used,
Is provided.
上記目的を達成するため、本発明に係る機能組込方法は、
アプリケーションと、暗号化および復号に使用するハードウェアと、を備える情報処理装置への機能組込方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理手段と、
を有するソフトウェアモジュール群を組み込んで、前記アプリケーションと前記ハードウェアとを結び付ける工程を含む。
In order to achieve the above object, the function incorporation method according to the present invention includes:
A method for incorporating a function into an information processing apparatus comprising an application and hardware used for encryption and decryption,
Initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
A termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
And incorporating the software module group including: linking the application and the hardware.
本発明によれば、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。 According to the present invention, functions including desired encryption and decryption can be used in accordance with a common sequence from applications that exchange data.
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。なお、本明細書におけるデータ交換を行なうアプリケーションには、リンクプロテクション機能を有するデータ交換のアプリケーションやコピーガード機能を有するデータ交換のアプリケーション、あるいは、記憶媒体を経由するデータ交換のためのアプリケーションが含まれる。 Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them. Note that the data exchange application in this specification includes a data exchange application having a link protection function, a data exchange application having a copy guard function, or an application for data exchange via a storage medium. .
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、データ交換を行なうアプリケーション中の暗号化および復号を含む機能を実行する装置である。
[First Embodiment]
An
図1に示すように、情報処理装置100は、第1インタフェース部101と、第2インタフェース部102と、制御部103と、を含む。第1インタフェース部101は、機密にデータ交換を実現する複数のアプリケーション110と共通の処理手順でデータ交換が可能である。第2インタフェース部102は、暗号化機能および復号機能を実現する複数のハードウェア120のそれぞれとデータ交換が可能である。制御部103は、第1インタフェース部101と第2インタフェース部102とを介して、複数のアプリケーション110の少なくともいずれか1つと複数のハードウェア120の少なくともいずれか1つとのデータ交換を制御する。
As illustrated in FIG. 1, the
さらに、制御部103は、アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第1初期化処理部104と、アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、初期化されたソフトウェアモジュール群およびハードウェアを用いて機密情報処理を実行する機密情報処理部105と、アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第1終了処理部106と、を有する。
Further, the control unit 103 receives an initialization instruction from the application, initializes a software module group prepared as a library and hardware to be used, and performs encryption and decryption from the application. A confidential
本実施形態によれば、初期化処理と機密情報処理と終了処理とからなるシーケンスで処理することにより、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。 According to the present embodiment, processing including a desired encryption and decryption function is used in accordance with a common sequence from a plurality of data exchange applications by performing processing in a sequence including initialization processing, confidential information processing, and termination processing. can do.
[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、複数の通信アプリケーションから、初期化処理と機密情報処理と終了処理とからなる共通のシーケンスに従って所望の暗号化および復号を含む機能を利用できる。なお、本実施形態においては、通信アプリケーションはリンクプロテクション(Link Protection)機能を実現するために使用する通信アプリケーションである。また、使用するハードウェアが接続されていない場合、ライブラリとして準備されたモジュールによりハードウェアを代替する。また、通信アプリケーションからの指示を、通信アプリケーションのプロトコルに従って、初期化処理または機密情報処理または終了処理への指示に変換する指示変換部をさらに備える。また、初期化処理は、共通のミドルウェアエンジンの初期化処理、および、暗号化の初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、および、暗号化の終了処理を含む。
[Second Embodiment]
Next, an information processing apparatus according to the second embodiment of the present invention will be described. The information processing apparatus according to the present embodiment can use functions including desired encryption and decryption from a plurality of communication applications according to a common sequence including initialization processing, confidential information processing, and termination processing. In the present embodiment, the communication application is a communication application used for realizing a link protection function. If the hardware to be used is not connected, the hardware is replaced by a module prepared as a library. Further, the information processing apparatus further includes an instruction conversion unit that converts an instruction from the communication application into an instruction for initialization processing, confidential information processing, or termination processing according to the protocol of the communication application. The initialization process includes a common middleware engine initialization process and an encryption initialization process, and the termination process includes a common middleware engine termination process and an encryption termination process.
《システム》
図2は、本実施形態に係る情報処理装置を含むシステム200の構成を示すブロック図である。
"system"
FIG. 2 is a block diagram illustrating a configuration of a
図2のシステム200には、ネットワーク270により接続された、車内ネットワーク210と、宅内ネットワーク220と、SSL(Secure Sockets Layer)などで接続される工場内ネットワーク230と、センサネットワーク240と、クラウドサーバ250と、コンテンツサーバ260と、が図示されている。
The
車内ネットワーク210は、本例ではMOST(Media Oriented Systems Transport)による車載器やマルチメディア機器のネットワークを形成し、クラウドサーバ250に対してはIoT(Internet of Things)の情報収集機器として、コンテンツサーバ260に対してはコンテンツ配信のシンク機器として接続される。また、同様に、宅内ネットワーク220は、本例ではDTCP−IP(Digital Transmission Content Protection over Internet Protocol)を使用するDLNA(登録商標)(Digital Living Network Alliance)やHDCP(High-bandwidth Digital Content Protection system)を使用するMiracastによる家電機器やマルチメディア機器のネットワークを形成し、クラウドサーバ250に対してはIoTの情報収集機器として、コンテンツサーバ260に対してはコンテンツ配信のシンク機器として接続される。
The in-
また、SSLネットワークなどで接続される工場内ネットワーク230が接続される。また、センサネットワーク240のように、ゲートウェイを介して、コンテンツサーバ260からの動作制御やファームウェア提供と共に、クラウドサーバ250に対してIoTの情報収集機器として接続される。センサネットワーク240の場合には、通信プロトコル/通信経路の保護技術としては、SSL/TLSなどが主に使用される。
In addition, a
クラウドサーバ250は、複数のサーバ群から構成され、それぞれのネットワーク接続機器を制御すると共に、IoTの情報収集機器から収集した情報を分析あるいは解析して、その結果をユーザに提供したりシステム制御に利用したりする。コンテンツサーバ260は、車内ネットワーク210や宅内ネットワーク220のマルチメディア機器に対してコンテンツを提供する。
The cloud server 250 includes a plurality of server groups, controls each network connection device, analyzes or analyzes information collected from the IoT information collection device, and provides the result to the user or system control. Or use it. The
本実施形態のシステム200においては、各ネットワークに接続された機器への情報提供時や機器からの情報収集時における、機密情報(例えば、各種の鍵情報など)や個人情報などの漏洩、あるいは、コンテンツの不正コピーなどを防止するため、異なる通信アプリケーションを使用する異なる種類の機器に対して、共通の機密処理用ミドルウェア(図中は、Middleware)201を組み込んでいる。この本実施形態の機密処理用ミドルウェア201は、異なる通信アプリケーションと、異なる種類の機器が備える異なる暗号化/復号用ハードウェアと、を共通のシーケンスに従って結び付けることができる。
In the
(通信アプリケーションのシーケンス)
図3は、本実施形態に係るシステム200おけるリンクプロテクション機能を有する通信アプリケーションの一例を示すシーケンス図である。
(Communication application sequence)
FIG. 3 is a sequence diagram illustrating an example of a communication application having a link protection function in the
図3には、ソース機器からシンク機器にコンテンツを提供する場合のリンクプロテクション機能を有する通信アプリケーションを示すが、本実施形態の機密処理用ミドルウェア201は、他のあらゆる通信アプリケーションにおける暗号化や復号を含む機密処理の各シーケンスにおいて、通信アプリケーションからの共通のシーケンスに従って動作することができる。
FIG. 3 shows a communication application having a link protection function when content is provided from a source device to a sink device. The
例えば、図3の通信アプリケーションにおいては、ステップS301における、認証と鍵共有(AKE)と所在確認(Locality Check)において交換されたコンテンツ鍵や共通鍵、秘密鍵などの機密情報を、機密処理用ミドルウェア201によってハードウェア的に分離された機密領域(Secure World)の機密データ記憶部(Secure Data Part)に保持する。また、ステップS303におけるコンテンツの暗号化、および、ステップS305におけるコンテンツ復号において、機密処理用ミドルウェア201によって機密データ記憶部に保持された鍵を用いて、各機器に準備されたハードウェアにより暗号化や復号を実行する。また、機密処理用ミドルウェア201によって暗号化されたコンテンツを秘密記憶部(Secure Storage)に保持する。なお、各機器に所望のハードウェアが準備されてない場合は、機密処理用ミドルウェア201が備えるソフトウェアにより代替する。
For example, in the communication application shown in FIG. 3, confidential information such as a content key, a common key, and a secret key exchanged in authentication, key sharing (AKE), and location check (Locality Check) in step S301 is stored in the middleware for confidential processing. The data is held in a confidential data storage unit (Secure Data Part) in a confidential area (Secure World) separated by hardware by 201. In addition, in the content encryption in step S303 and the content decryption in step S305, the key stored in the confidential data storage unit by the
このように、本実施形態の機密処理用ミドルウェア201は、通信アプリケーションのプロトコルにおける機密性を求めるシーケンスにおいて、通信アプリケーションからの要求に応えて共通のシーケンスにしたがって異なる処理に対応する。
As described above, the
《情報処理装置のソフトウェア階層》
図4Aおよび図4Bは、本実施形態に係る情報処理装置400のソフトウェア階層を示す図である。図4Bは、ミドルウェア部分を詳細に示す図である。すなわち、図4Bのミドルウェア部分は、図4Aの情報処理装置400のソフトウェア階層の一部に機能組込されている。その場合、情報処理装置400のソフトウェア階層全体を、ミドルウェア部分が組み込まれた情報処理システムとしても表現できる。
<< Software hierarchy of information processing equipment >>
4A and 4B are diagrams showing a software hierarchy of the
情報処理装置400のソフトウェア階層は、Application層401および402と、Middlewareとして提供されるHDCP SDK層410と、Middlewareとして提供される本実施形態の暗号化/復号層のMiddleware201と、OSとの接続層431および432と、OS層440と、ハードウェア層450、451および452とを有する。
The software hierarchy of the
(Application層)
User Application401は、暗復号化処理とセキュアに扱うべきデータを読み書きの機能が必要なユーザが独自に開発するアプリケーションを示す。一方、User Application402は、HDCP SDK410のAPIを使用してHDCP対向機とのAKE(Authentication and Key Exchange)開始の指示や、検出したトポロジーチェンジに対する具体的な動作の制御を行うアプリケーションを示す。ソース機器の場合は、AKEの完了後、送信するストリーミングデータを生成してHDCP SDK410に入力する。一方、シンク機器の場合、AKE完了後、HDCP SDK410が復号化したストリーミングデータの描画処理を行う。なお、Applicationは上記例に限定されない。種々の暗号化や復号に関連するハードウェアを利用するApplicationが接続可能である。
(Application layer)
A
(HDCP SDK層:通信プロトコルのMiddleware)
HDCP SDK410は、例えば、HDCP 2.2 の仕様(HDCP Specification Rev. 2.2 Interface Independent Adaptation)に基づき、以下の機能を提供する。
(1) DCP(Digital Content Protection, LLC) が発行するデバイス鍵を使用して、対向となるHDCP機器とAKEを実行してセッションキーを共有する。
(2) セッションキーを使用したストリーミングデータの暗号化/復号化を行なう。
(3) 接続されているHDCP機器のトポロジーチェンジの検出と通知を行なう。
(4) HDCPソース機器の場合、SRM(System Renewability Message)リストに基づいた無効機器の検出を行なう。
(HDCP SDK layer: Middleware for communication protocol)
The
(1) Using the device key issued by DCP (Digital Content Protection, LLC), execute AKE with the opposite HDCP device to share the session key.
(2) Encrypt / decrypt streaming data using a session key.
(3) Detect and notify topology changes of connected HDCP devices.
(4) In the case of an HDCP source device, an invalid device is detected based on an SRM (System Renewability Message) list.
HDCP SDK410のSecure Data Partは、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータを扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持する。一方、HDCP SDK410のNon Secure Data Partは、AKEのシーケンスで扱うデータのうち、ネットワーク上に非暗号データとして流れるなど、HDCPの仕様によりセキュアに扱うことが定められていないデータを扱う箇所であり、例えば、DCPが発行する公開鍵やHDCP機器の機能を示すフラグなどを保持する。また、HDCP SDK410のCommunication Partは、AKEを行う際に使用するネットワーク通信セッションの確立や、AKE完了後、セッションキーにより暗復号化されたストリーミングデータのやり取りを行う。
The Secure Data Part of the
(暗号化/復号層のMiddleware)
暗号化/復号層のMiddleware201は、User Application401または402から直接、あるいは、HDCP SDK層410を介してインタフェースするPublic API421と、ハードウェアとの接続を管理するPrivate Layer422と、各ハードウェアとの接続を行なうPorting Layer423と、を有する。Public API421としては、Cryptography APIsとSecure Storage APIsとSecure Data Interfaceとを含む。また、Private Layer422としては、Cryptography Module用Private Layerと、Secure Storage Module用Private Layerと、Secure Data Interface Module用Private Layerと、を含む。また、Porting Layer423としては、Cryptography Module用Porting Layerと、Secure Storage Module用Porting Layerと、Secure Data Interface Module用Porting Layerと、を含む。なお、本実施形態においては、暗号化処理を行なうので、Secure StorageおよびSecure Data Interface用のモジュールは使用されない。
(Middleware for encryption / decryption layer)
The
(OSとの接続層)
OSとの接続層は、アプリケーション層401または402とOS層440とを直接、接続する接続層(Middleware of OS)431と、暗号化/復号層のMiddleware201とOS層440とを接続するSoC depended Secure Middleware for Non Secure OS432と、を有する。
(Connection layer with OS)
The OS connection layer is a connection layer (Middleware of OS) 431 that directly connects the
(OS層)
OS層440は、OS driverとOSとを有する。
(OS layer)
The
(ハードウェア層)
ハードウェア層は、SoC450と、各ハードウェア451あるいは452と、を有する。図4Aにおいては、Hardware Accelerated451とSecure Storage Feature452とを示すが、これらに限定されない。他の機密保護の暗号化や復号に関連する機能を有するハードウェアが接続可能である。
(Hardware layer)
The hardware layer includes the
(Secure World)
Secure WorldとHDCP SDK410を組み合わせた場合、図12のように、HDCP SDK410のSecure Data PartがSecure OS内に入り、Non Secure OS上で動作するHDCP SDKは、Secure Data Interfaceを使用してSecure OS内で動作するSecure Data Partとやり取りを行うことになる。
(Secure World)
When Secure World and
《マクロシーケンス》
図5は、全実施形態に共通の情報処理装置のマクロな動作手順を示すシーケンス図である。なお、図5において、図4Aおよび図4Bと同様の構成要素には同じ参照番号を付している。
《Macro sequence》
FIG. 5 is a sequence diagram illustrating a macro operation procedure of the information processing apparatus common to all the embodiments. In FIG. 5, the same components as those in FIGS. 4A and 4B are denoted by the same reference numerals.
Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、使用するMiddlewareのモジュールおよびハードウェアの起動処理(初期化処理)を行なう。
When there is an initialization request (call) from the
次に、Customer Application401、402からMiddleware201に暗号化や復号を含む機密情報処理の要求(呼び出し)があると、Middleware201は、ステップS503において、初期化されたMiddlewareのモジュールおよびハードウェアを用いて、機密情報処理を行なう。本実施形態においては、機密情報処理として、Cryptography APIs(暗号化処理)と、Secure Storage(暗号データ記憶処理)と、Secure Data Interface(機密データ保護処理)とを示すが、これに限定されることなく、暗号化や復号をそのシーケンス中に含むあらゆるアプリケーションへの共通の対応が可能である。
Next, when there is a request (call) of confidential information processing including encryption and decryption from the
暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に終了の要求(呼び出し)があり、Middleware201は、ステップS505において、初期化され使用されたMiddlewareのモジュールおよびハードウェアの終了処理を行なう。
When each confidential information processing including encryption and decryption is completed, the
《暗号処理シーケンス》
図6は、本実施形態に係る暗号処理のマクロな動作手順を示すシーケンス図である。暗号処理は、アプリケーションからの要請を受けてそれぞれのデータの暗号化あるいは復号を行なう処理である。
<Cryptographic processing sequence>
FIG. 6 is a sequence diagram showing a macro operation procedure of encryption processing according to the present embodiment. The encryption process is a process for encrypting or decrypting each data in response to a request from an application.
Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、起動処理を行なう。起動処理において、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。
When there is an initialization request (call) from the
次に、Middleware201は、ステップS503において、機密情報処理を行なう。本暗号化処理においては、まず、Customer Application401、402からMiddleware201にデータの暗号初期化処理の要求(呼び出し)がある。Middleware201は、ステップS631において、暗号化ハードウェアおよび暗号化モジュールの初期化を行なう。そして、Customer Application401、402からMiddleware201にデータの暗号化処理の要求(呼び出し)があり、Middleware201は、ステップS633において、暗号化ハードウェアを用いて暗号化モジュールによる暗号化処理を行なう。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に暗号終了処理の要求(呼び出し)があり、Middleware201は、ステップS635において、機密情報処理における暗号化モジュールと暗号化ハードウェアの終了処理を行なう。
Next, the
Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。
There is a request for termination of processing (call) from the
(エンジン初期化処理)
図7Aは、本実施形態に係るミドルウェアのエンジン初期化処理(S611:Initializing)の手順を示すシーケンス図である。ミドルウェアのエンジン初期化処理(S611)においては、本実施形態に係るミドルウェアが動作するための基礎環境を整備する。例えば、Private Layer422が使用するデータ構造体の初期化処理、および、初期値設定処理などを実施、以降の処理のための記憶領域の確保(スタックの形成)などの準備をする。その後、Porting Layer423の初期化処理として、本情報処理装置に接続されているハードウェアの初期化と正常動作判定を実施する。また、本情報処理装置にハードウェアが接続されていないセキュリティ機能に対しては、ライブラリ中の該当ソフトウェア機能を代替えの機能として設定し、ソフトウェア動作メモリ領域の確保、初期設定値の設定処理などの初期化処理を行う。
(Engine initialization process)
FIG. 7A is a sequence diagram illustrating a procedure of middleware engine initialization processing (S611: Initializing) according to the present embodiment. In the engine initialization process (S611) of middleware, a basic environment for operating the middleware according to the present embodiment is prepared. For example, initialization processing and initial value setting processing of the data structure used by the
また、ハードウェアの動作判定によりハードウェアが正常動作を行っていないと判定された場合、もしくは、ライブラリ中のソフトウェア機能の動作に必要なメモリ領域などのリソースの確保ができないと判定された場合、ミドルウェアの初期化処理を中止する。また、Porting Layer423におけるハードウェア、および、ソフトウェアによるセキュリティ機能の処理が完了後、Private Layer422で管理するミドルウェアの動作状態を動作可能状態に遷移する。また、記憶領域に以降の処理のため、前述のセキュリティ機能初期化の際、オペレーティングシステムなどから取得するハンドル値、ミドルウェアのステータス、暗号化機能への参照件数を示す参照カウンタ値などをコアコンテキスト情報として確保する。すなわち、以降の「暗号初期化処理(S631)」や「Secure Storage初期化処理(S1031)」や「HDCPSink初期化処理(S1333)」などのための準備をする。そして、ミドルウェアのエンジン初期化の完了とコアコンテキスト情報をアプリケーションに通知する。
Also, when it is determined by hardware operation determination that the hardware is not operating normally, or when it is determined that resources such as a memory area necessary for the operation of the software function in the library cannot be secured, Cancel the middleware initialization process. Further, after the security function processing by the hardware and software in the
Customer Application401、402に対して、ステップS701において、アプリケーションの開始が指示されると、Customer Application401、402は、ステップS702において、Secure Public API421のSecure Engineの初期化を呼び出す。Secure Public API421は、Customer Application401、402からのSecure Engineの初期化の呼び出しを受けて、ステップS703において、Secure Private Layer422にSecure Engineの初期化を指示する。Secure Private Layer422は、ステップS704において、Platform independent PartのSecure Engineの初期化を実行する。
When the
Platform independent PartのSecure Engineの初期化が終了すると、Secure Private Layer422は、ステップS705において、Secure Porting Layer423に対して、Secure Engineの初期化を指示する。Secure Porting Layer423は、ステップS706において、Platform dependent PartのSecure Engineの初期化を実行する。
When the initialization of the Platform-independent Part Secure Engine is completed, the
Platform dependent PartのSecure Engineの初期化が終了すると、Secure Porting Layer423は、SoC450のHardware Secure Engineが動作可能かを判定し、動作可能であれば、ステップS707において、Hardware Secure Engineを初期化する。一方、Hardware Secure Engineが搭載されていない場合、もしくは、利用できない場合、ステップS709において、ライブラリ中のSoftware Secure Engineを初期化する。
When the initialization of the Platform dependent Part Secure Engine is completed, the
ステップS708において、Hardware Secure Engineの初期化が完了するか、ステップS709において、ライブラリ中のSoftware Secure Engineの初期化が完了すれば、ステップS710〜S712において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、OKの初期化完了を返して、Secure Engineの初期化が終了する。
If the initialization of the hardware secure engine is completed in step S708 or the initialization of the software secure engine in the library is completed in step S709, the secure
(暗号初期化処理)
図7Bは、本実施形態に係る暗号初期化処理(S631)の手順を示すシーケンス図である。暗号初期化処理(S631)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用いながら、本実施形態に係る暗号化処理のための環境を整備する。例えば、本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを使用した暗号化を準備し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアで代替するよう設定する。また、記憶領域に以降の「暗号化処理(S633)」で使用するため、コアコンテキストへのポインタ、暗号化機能のステータスなどを含む暗号化コンテキスト情報を確保、コアコンテキスト情報の参照カウントを更新する。そして、暗号初期化処理の完了と暗号化コンテキスト情報をアプリケーションに通知する。
(Cryptographic initialization process)
FIG. 7B is a sequence diagram showing a procedure of encryption initialization processing (S631) according to the present embodiment. In the encryption initialization process (S631), the environment for the encryption process according to the present embodiment is prepared using the basic environment prepared in the engine initialization process (S611) of the middleware. For example, if the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, prepare encryption using the hardware and perform the target encryption If the system hardware is not connected, set the software in the library to substitute. Further, in order to be used in the subsequent “encryption process (S633)” in the storage area, the encryption context information including the pointer to the core context and the status of the encryption function is secured, and the reference count of the core context information is updated. . Then, the completion of the encryption initialization process and the encryption context information are notified to the application.
Customer Application401、402は、ステップS724において、Secure Public API421のCryptography APIsの初期化を呼び出す。Secure Public API421は、Customer Application401、402からのCryptography APIsの初期化の呼び出しを受けて、ステップS725において、Secure Private Layer422にCryptography Functionの初期化を指示する。Secure Private Layer422は、ステップS726において、Secure Engine statusをチェックする。
In step S724, the
Secure Engine statusのチェックが終了すると、Secure Private Layer422は、ステップS727において、Secure Porting Layer423に対して、サポートしているoperation modeのチェックを指示する。Secure Porting Layer423は、ステップS728において、サポートされているFunction Tableをチェックする。operation modeがサポートされている場合、Secure Porting Layer423は、ステップS729において、MODE OKをSecure Private Layer422に返す。
When the Secure Engine status check is completed, the
Secure Private Layer422は、ステップS730において、暗号化コンテキストを再構築する。そして、Secure Private Layer422は、ステップS731において、Cryptography Functionの初期化をSecure Porting Layer423に指示する。Secure Porting Layer423は、Hardware Cryptography Engine451が動作可能かを判定し、動作可能であれば、ステップS732において、Hardware Cryptography Engine451を初期化する。一方、Hardware Cryptography Engine451が動作可能でなければ、ステップS734において、ライブラリ中のSoftware Cryptography Engineを初期化する。
In step S730, the
ステップS733において、Hardware Cryptography Engine451の初期化が完了するか、ステップS734において、ライブラリ中のSoftware Cryptography Engineの初期化が完了すれば、ステップS735〜S737において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、初期化OKを返して、Cryptography Functionの初期化が終了する。
If initialization of the
(暗号化処理)
図7Cは、本実施形態に係る暗号化処理(S633)の手順を示すシーケンス図である。暗号化処理(S633)においては、暗号初期化処理(S631)において準備された環境を用いながら、本実施形態に係る暗号化処理を実行する。例えば、本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを使用した暗号化を実行し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアで代替して実行する。そして、暗号化結果をアプリケーションに返すと共に、暗号化コンテキスト情報のステータスを更新する。
(Encryption processing)
FIG. 7C is a sequence diagram showing the procedure of the encryption process (S633) according to the present embodiment. In the encryption process (S633), the encryption process according to the present embodiment is executed using the environment prepared in the encryption initialization process (S631). For example, if the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, the encryption using the hardware is executed and the target encryption If no system hardware is connected, the software in the library is used instead. Then, the encryption result is returned to the application, and the status of the encryption context information is updated.
Customer Application401、402は、ステップS738において、暗号化する入力データを準備する。Customer Application401、402は、ステップS739において、Secure Public API421のCryptography Operationを呼び出す。Secure Public API421は、Customer Application401、402からのCryptography Functionの呼び出しを受けて、ステップS740において、Secure Private Layer422のCryptography Functionを呼び出す。Secure Private Layer422は、ステップS741において、Secure Porting Layer423のCryptography Functionを呼び出す。
In step S738, the
Secure Porting Layer423は、Hardware Cryptography Engine451が動作可能かを判定し、動作可能であれば、ステップS742において、Hardware Cryptography Engine451による暗号化を実行させる。一方、Hardware Cryptography Engine451が動作可能でなければ、ステップS744において、ライブラリ中のSoftware Cryptography Engineにより暗号化を実行する。
The
ステップS743において、Hardware Cryptography Engine451による入力データの暗号化処理が完了するか、ステップS744において、ライブラリ中のSoftware Cryptography Engineによる入力データの暗号化が完了すれば、ステップS745〜S747において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、入力データの暗号化OKを返して、Cryptography Operationの実行が終了する。
If the encryption process of the input data by the
なお、図7Cの暗号化処理は、暗号化する入力データが無くなるまで繰り返される。 Note that the encryption process of FIG. 7C is repeated until there is no input data to be encrypted.
(暗号終了処理)
図7Dは、本実施形態に係る暗号終了処理(S635:Finalizing)の手順を示すシーケンス図である。暗号終了処理(S635)においては、暗号化処理(S633)において使用された資源の終了処理を行ない、資源を解放する。暗号化処理の状態を蓄積してもよい。本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを解放し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアを解放する。そして、コアコンテキスト情報の参照カウントを更新、記憶領域に確保されていた暗号化コンテキスト情報を解放し、暗号化の終了処理の完了をアプリケーションに通知する。
(Cryptographic termination process)
FIG. 7D is a sequence diagram illustrating a procedure of encryption termination processing (S635: Finalizing) according to the present embodiment. In the encryption termination process (S635), the resource used in the encryption process (S633) is terminated, and the resources are released. The state of the encryption process may be accumulated. If the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, the hardware is released and the hardware of the target encryption method is connected. If not, release the software in the library. Then, the reference count of the core context information is updated, the encryption context information secured in the storage area is released, and the completion of the encryption end process is notified to the application.
なお、図7Dのシーケンスは、図7Bのシーケンスにおける「初期化処理」を「終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。ただし、図7Dにおいては、Secure Private Layer422が、ステップS756において、暗号化コンテキスト情報を解放する。
The sequence in FIG. 7D is obtained by replacing the “initialization process” in the sequence in FIG. However, in FIG. 7D, the
(エンジン終了処理)
図7Eは、本実施形態に係るミドルウェアのエンジン終了処理(S651)の手順を示すシーケンス図である。ミドルウェアのエンジン終了処理(S651)においては、エンジンの初期処理(S611)で準備された資源の終了処理を行ない、資源を解放する。処理の状態を蓄積してもよい。ミドルウェアのエンジンの動作に必要なハードウェアが接続されている場合、ハードウェアを解放し、ハードウェアが接続されていない場合、ライブラリ中のソフトウェアを解放する。そして、記憶領域に確保されていたコアコンテキスト情報を解放し、ミドルウェアによる処理の完了をアプリケーションに通知する。
(Engine termination processing)
FIG. 7E is a sequence diagram illustrating a procedure of middleware engine termination processing (S651) according to the present embodiment. In the middleware engine termination process (S651), the resource prepared in the engine initial process (S611) is terminated, and the resources are released. Processing status may be accumulated. When the hardware necessary for the operation of the middleware engine is connected, the hardware is released. When the hardware is not connected, the software in the library is released. Then, the core context information secured in the storage area is released, and the completion of processing by the middleware is notified to the application.
なお、図7Eのシーケンスは、図7Aのシーケンスにおける「初期化処理」を「終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。ただし、図7Eにおいては、Secure Porting Layer423が、ステップS773において、Platform dependent PartのSecure Engineを終了させる。また、Secure Private Layer422が、ステップS775において、Platform independent PartのSecure Engineを終了させる。そして、Customer Application401、402は、ステップS778において、暗号化アプリケーションの終了を通知する。
The sequence in FIG. 7E is obtained by replacing the “initialization process” in the sequence in FIG. However, in FIG. 7E, the
《情報処理装置のハードウェア構成》
図8は、全実施形態に共通の情報処理装置400のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing equipment >>
FIG. 8 is a block diagram showing a hardware configuration of the
図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図4Aおよび図12の機能を実現する。なお、CPU810は、それぞれの機能に対応して複数あってもよく、例えば、Non Secure WorldとSecure Worldとは、異なるCPUで実現してもよい。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。通信制御部830は、ネットワークを介して、他の装置との通信を制御する。
In FIG. 8, a CPU (Central Processing Unit) 810 is a processor for arithmetic control, and implements the functions of FIGS. 4A and 12 by executing a program. There may be a plurality of
また、暗号化ハードウェア870は、1つまたは複数の本情報処理装置400に必要な暗号化ハードウェアである。なお、暗号化ハードウェア870が無い場合は、ミドルウェアライブラリに準備された暗号化ソフトウェアが代替するため、暗号化ハードウェア870が1つも接続されてなくてもよい。
The
RAM(Random Access Memory)840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。使用通信方式841は、通信アプリケーションが使用する通信方式である。使用暗号化/復号方式842は、使用通信方式841のプロトコル中に必要となる暗号化/復号方式である。暗号鍵/復号鍵843は、使用暗号化/復号方式842で使用される鍵であり、秘密鍵、公開鍵あるいは共通鍵を含む。暗号データ/署名データ844は、使用通信方式841のプロトコルに従って生成されたデータである。ハードウェア存否845は、暗号化/復号ハードウェアが接続されているか否かの判定結果であり、ハードウェアが存在しない場合は、ライブラリ中のソフトウェアで代替する。セッションキー846は、外部機器とのセッション開始時に交換される鍵であり、各セッションを特定する。Function Table847は、Porting Layerに配置されて、Secure Data PartとFunction Numberとの関係を記憶する。SRMリスト848は、無効機器との通信を禁止するための無効機器のリストである。スタック領域849は、ソフトウェア階層における動作、あるいは、組み込みソフトウェアの動作における使用データとその引渡を実現する。
A RAM (Random Access Memory) 840 is a random access memory used by the
ストレージ850は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。通信方式格納部851は、各通信方式におけるプロトコルを格納する。暗号化/復号方式格納部852は、各通信方式に対応する暗号化/復号方式を格納する。メッセージフォーマット格納部853は、モジュール間のメッセージのフォーマットを格納する。SST領域854は、SSTに使用される領域である。Secure Data領域855は、Secure Data Partとして使用される領域である。ストレージ850には、以下のプログラムが格納される。Non Secure OSおよびSecure OS856は、それぞれNon Secure WorldとSecure Worldとに対応するOSである。組み込みソフトウェアとしてのMiddlewareは、通信制御ライブラリ857と本実施形態の機密制御ライブラリ858とを有する。アプリケーション859は、本情報処理装置400が使用する通信アプリケーションを含むアプリケーションプログラムである。
The
入出力インタフェース860は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース860には、表示部861と、操作部862と、音声入出力部863と、が接続される。入出力インタフェース1260には、さらに、撮像部1261やGPS位置算出部1262、などが接続されてもよい。
The input /
なお、図8のRAM840やストレージ850には、情報処理装置400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
Note that the
(スタック領域)
図9Aは、全実施形態に共通のスタック領域849の構成を示す図である。本実施形態において、スタック領域849はNon Secureスタック910とSecureスタック920とを有する。
(Stack area)
FIG. 9A is a diagram showing a configuration of a
Non Secureスタック910は、Non Secure OSによるスタック911と、Applicationによるスタック912と、通信プロトコルに対応するMiddlewareスタック913と、本実施形態の暗号化/復号に対応するMiddlewareスタック914と、を有する。本実施形態のMiddlewareスタック914は、Secureエンジン用スタック915と、暗号化用スタック916と、Secure Storage用スタック917と、通信プロトコル用スタック918と、を含む。なお、Middlewareスタック914内におけるスタック順は図9Aに限定されない。
The
(ストレージの格納データ)
図9B乃至図9Dは、実施形態に共通のストレージ850における格納データの構成を示す図である。
(Storage data)
9B to 9D are diagrams illustrating a configuration of stored data in the
図9Bに示す通信方式格納部851は、例えば、Miracast通信方式931と、HDCP通信方式932と、DLNA(登録商標)通信方式933と、DTCP−IP通信方式934と、DTCP−MOST通信方式935と、Secure Data Mgmt通信方式936と、Customer通信方式937と、を含む。
The communication
図9Bに示す暗号化/復号方式格納部852は、例えば、RAS方式941と、HASH方式942と、AES方式943と、M6方式944と、を含む、なお、複数の暗号方式が1つの通信プロトコルで使用されることもある。
The encryption / decryption
図9Cに示す本実施形態の暗号化/復号に対応するMiddlewareのSecure Public API1221およびSecure Data Interface1321が送受信するメッセージのメッセージフォーマット格納部853は、Invoke APIメッセージ961として、各処理対象962に対応つけて、処理963と、生成されるコンテキスト964と、応答メッセージ965と、を記憶する。
The message
処理対象962は、例えば、Secure Engineと、Cryptography Functionと、Secure Storage Featureと、HDCP Sinkなどと、を含む。そして、各処理対象962は、初期化処理(Initialize)で開始され、終了処理(Finalize)で終了される。かかる構成と生成されたコンテキストにより、処理対象962への起動は、複数の処理対象に対して同時並行して、かつ、1つの処理対象に対して複数が同時並行して、実行される。すなわち、各処理対象962を初期化処理(Initialize)と終了処理(Finalize)とで囲うことにより、データ交換を行なうアプリケーシュンからの自在な処理が簡単に設計できる。なお、図9Cは、本実施形態の特徴を表わす一部を示したものであり、図9Cに限定されない。
The
図9Bに示す通信プロトコルに対応するMiddlewareを実現する通信制御ライブラリ857は、例えば、Miracast Sinkモジュール951と、HDCP SDKモジュール952と、DLNA(登録商標) SDKモジュール953と、DTCP−IP SDKモジュール954と、DTCP−MOST SDKモジュール955と、を含む。
The
図9Dに示す本実施形態の暗号化/復号に対応するMiddlewareを実現する機密制御ライブラリ858は、Secure Public API群971と、Secure Private Layerモジュール群972と、Secure Porting Layerモジュール群973と、仮想ハードウェアモジュール群974と、を有する。Secure Public API群971は、Cryptography APIモジュールと、Secure Storage APIモジュールと、Secure Data Interfaceモジュールと、を含む。Secure Private Layerモジュール群972は、Non SecureのCryptographyモジュールと、Non SecureのSecure Storageモジュールと、Non SecureのSecure Data Interfaceモジュールと、を含む。Secure Porting Layerモジュール群973は、Cryptographyモジュールと、Secure Storageモジュールと、Non SecureのSecure Data Interfaceモジュールと、を含む。仮想ハードウェアモジュール群974は、RASモジュールと、HASHモジュールと、AESモジュールと、M6モジュールと、SSTモジュールと、を含む。なお、図示しないが、ECCやDH等の他の暗号アルゴリズムが含まれてもよい。
The
《情報処理装置の処理手順》
図9Eは、全実施形態に共通の情報処理装置400の処理手順を示すフローチャートである。図9Eのフローチャートは、図8のCPU810がRAM840を使用して実行し、図4Aのソフトウェア階層における機密処理用ミドルウェア201の処理を実現する。
<< Processing procedure of information processing device >>
FIG. 9E is a flowchart illustrating a processing procedure of the
情報処理装置400は、ステップS911において、アプリケーションからの処理指示の対象がミドルウェアエンジンであるか否かを判定する。処理指示の対象がミドルウェアエンジンである場合、情報処理装置400は、ステップS913において、ミドルウェアエンジン処理を実行する。処理指示の対象がミドルウェアエンジンでない場合、情報処理装置400は、ステップS915において、各機密情報処理が対象であるか否かを判定する。各機密情報処理が対象である場合、情報処理装置400は、ステップS917において、各機密処理を実行する。
In step S911, the
(ミドルウェアエンジン処理)
図9Fは、全実施形態に共通のミドルウェアエンジン処理(S913)の手順を示すフローチャートである。
(Middleware engine processing)
FIG. 9F is a flowchart illustrating a procedure of middleware engine processing (S913) common to all the embodiments.
情報処理装置400は、ステップS921において、ミドルウェアエンジンの初期化(Initialize)であるか否かを判定する。ミドルウェアエンジンの初期化である場合、情報処理装置400は、ステップS922において、ミドルウェアの基本モジュールを呼び出し、ステップS923において、基本コンテキストを生成して保持する。
In step S921, the
ミドルウェアエンジンの初期化でない場合、情報処理装置400は、ステップS924において、ミドルウェアエンジンの終了処理か否かを判定する。ドルウェアエンジンの終了処理であれば、情報処理装置400は、ステップS925において、ミドルウェアの基本モジュールを呼び出し、ステップS926において、基本コンテキストを消去して記憶領域を解放する。
If the middleware engine is not initialized, the
(各機能処理)
図9Gは、Secure Worldを有しない実施形態に共通の各機能処理(S917)の手順を示すフローチャートである。
(Each function processing)
FIG. 9G is a flowchart showing the procedure of each function process (S917) common to the embodiment having no Secure World.
情報処理装置400は、ステップS931において、ミドルウェアエンジンが初期化済みかを判定し、ミドルウェアエンジンの初期化済みでない場合は、エラー処理を行なう。ミドルウェアエンジンの初期化済みである場合、情報処理装置400は、ステップS932において、対象とする機能処理が暗号化機能であるか否かを判定する。対象とする機能処理が暗号化機能である場合、情報処理装置400は、ステップS933において、暗号化処理を実行する。
In step S931, the
対象とする機能処理が暗号化機能でない場合、情報処理装置400は、ステップS934において、対象とする機能処理がSST機能であるか否かを判定する。対象とする機能処理がSST機能である場合、情報処理装置400は、ステップS935において、SST処理を実行する。
If the target function process is not an encryption function, the
対象とする機能処理が暗号化機能でなくSST機能でない場合、情報処理装置400は、ステップS936において、対象とする機能処理が他の機能であるか否かを判定する。対象とする機能処理が他の機能である場合、情報処理装置400は、ステップS937において、他機能処理を実行する。暗号化機能でなくSST機能でなく他機能でもない場合、情報処理装置400は、エラー処理を行なう。
If the target function process is not an encryption function and not an SST function, the
(暗号化処理)
図9Hは、Secure Worldを有しない実施形態に共通の暗号化処理(S933)の手順を示すフローチャートである。
(Encryption processing)
FIG. 9H is a flowchart showing the procedure of the encryption process (S933) common to the embodiment having no Secure World.
情報処理装置400は、ステップS941において、暗号初期化処理であるか否かを判定する。暗号初期化処理である場合、情報処理装置400は、ステップS942において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS943において、暗号化ハードウェアを初期化して、暗号化コンテキストを生成する。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS944において、暗号化ソフトウェアを初期化して、暗号化コンテキストを生成する。
In step S941, the
暗号初期化処理でない場合、情報処理装置400は、ステップS945において、暗号化処理の実行か否かを判定する。暗号化処理の実行であれば、情報処理装置400は、ステップS946において、暗号初期化済みであるか否かを判定する。暗号初期化済みでなければ、情報処理装置400はエラー処理を行なう。暗号初期化済みであれば、情報処理装置400は、ステップS947において、アプリケーションから暗号化する対象データを取得する。そして、情報処理装置400は、ステップS948において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS949において、取得データを暗号化ハードウェアで暗号化して、暗号化データをアプリケーションに返す。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS950において、取得データを暗号化ソフトウェアで暗号化して、暗号化データをアプリケーションに返す。情報処理装置400は、ステップS951において、対象データが無くなったか否かを判定し、対象データがまだあれば、ステップS947に戻って次の対象データを取得する。
If it is not the encryption initialization process, the
暗号初期化でなく暗号化処理でもない場合、情報処理装置400は、ステップS952において、暗号終了処理(Finalize)であるか否かを判定する。暗号終了処理である場合、情報処理装置400は、ステップS953において、暗号初期化済みであるか否かを判定する。暗号初期化済みでなければ、情報処理装置400はエラー処理を行なう。暗号初期化済みであれば、情報処理装置400は、ステップS954において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS955において、暗号化ハードウェアと対応する暗号化コンテキストとを解放する。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS956において、暗号化ソフトウェアと対応する暗号化コンテキストとを解放する。
If neither encryption initialization nor encryption processing is performed, the
(SST処理)
図9Iは、Secure Worldを有しない実施形態に共通のSST処理(S935)の手順を示すフローチャートである。
(SST processing)
FIG. 9I is a flowchart showing a procedure of SST processing (S935) common to the embodiment having no Secure World.
情報処理装置400は、ステップS961において、SST初期化処理であるか否かを判定する。SST初期化処理である場合、情報処理装置400は、ステップS962において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS963において、SSTハードウェアを初期化して、SSTコンテキストを生成する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS964において、SSTソフトウェアを初期化して、SSTコンテキストを生成する。
In step S961, the
SST初期化処理でなければ、情報処理装置400は、ステップS965において、Write準備処理であるか否かを判定する。Write準備処理であれば、情報処理装置400は、ステップS966において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS967において、Writeデータを取得して、所定の暗号化を行なった後、暗号データをアプリケーションに返す。
If it is not the SST initialization process, the
SST初期化処理でもWrite準備処理でもない場合、情報処理装置400は、ステップS968において、Write処理の実行か否かを判定する。Write処理の実行であれば、情報処理装置400は、ステップS969において、Write準備済みであるか否かを判定する。Write準備済みでなければ、情報処理装置400はエラー処理を行なう。Write準備済みであれば、情報処理装置400は、ステップS970において、Writeパラメータを生成し、アプリケーションの暗号データを復号する。そして、情報処理装置400は、ステップS971において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS972において、復号データをSSTハードウェアに記憶する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS973において、復号データをSSTソフトウェアに記憶する。情報処理装置400は、ステップS974において、Writeが正常に終了したか否かを判定し、Write OKでなければエラー処理を行なう。
If neither the SST initialization process nor the write preparation process is performed, the
SST初期化処理でもWrite準備処理でもWrite処理でもない場合、情報処理装置400は、ステップS975において、Read処理の実行か否かを判定する。Read処理の実行であれば、情報処理装置400は、ステップS976において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS977において、Readパラメータを生成する。そして、情報処理装置400は、ステップS978において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS979において、SSTハードウェアからデータを読み出す。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS980において、SSTソフトウェアからデータを読み出す。情報処理装置400は、ステップS981において、Readが正常に終了したか否かを判定し、Read OKでなければエラー処理を行なう。
When neither the SST initialization process, the write preparation process nor the write process is performed, the
SST初期化処理でもWrite準備処理でもWrite処理でもRead処理でもない場合、情報処理装置400は、ステップS982において、SST終了処理(Finalize)であるか否かを判定する。SST終了処理である場合、情報処理装置400は、ステップS983において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS984において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS985において、SSTハードウェアと対応するSSTコンテキストとを解放する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS986において、SSTソフトウェアと対応するSSTコンテキストとを解放する。
When neither the SST initialization process, the write preparation process, the write process nor the read process is performed, the
本実施形態によれば、暗号化処理を複数の通信アプリケーションから共通のシーケンスに従って利用することができる。 According to this embodiment, encryption processing can be used from a plurality of communication applications according to a common sequence.
[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、秘密記憶部(Secure Storage)に暗号化データをWriteおよびReadする点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。本実施形態において、初期化処理は、共通のミドルウェアエンジンの初期化処理、および、暗号化データを格納する格納部の初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、および、暗号化データを格納する格納部の終了処理含む。
[Third Embodiment]
Next, an information processing apparatus according to the third embodiment of the present invention will be described. The information processing apparatus according to the present embodiment is different from the second embodiment in that the encrypted data is written to and read from the secret storage unit (Secure Storage). Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted. In the present embodiment, the initialization process includes a common middleware engine initialization process and a storage unit initialization process for storing encrypted data, and the termination process includes a common middleware engine termination process, and Includes termination processing of the storage unit for storing the encrypted data.
《秘密記憶処理シーケンス》
図10は、本実施形態に係る秘密記憶処理のマクロな動作手順を示すシーケンス図である。秘密記憶処理(Secure Storage)は、アプリケーションからの要請を受けて暗号化したデータを機密保持し、機密保持された暗号化データを読み出し復号を行なう処理である。なお、図10において、図6と同様の構成要素には同じ参照番号、図6と同様のステップには同じステップ番号を付して、重複する説明は省略する。
《Secret memory processing sequence》
FIG. 10 is a sequence diagram showing a macro operation procedure of the secret storage process according to the present embodiment. The secret storage process (Secure Storage) is a process that keeps encrypted data confidential in response to a request from an application, and reads and decrypts the encrypted data kept confidential. In FIG. 10, the same reference numerals are assigned to the same components as in FIG. 6, and the same step numbers are assigned to the same steps as in FIG.
Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、図6と同様に、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。
When there is an initialization request (call) from the
次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application401、402からMiddleware201に機密情報処理としてのSST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SST初期化処理を行なう。そして、秘密記憶処理においてSSTへのWriteが必要であれば、Middleware201は、ステップS1033において、SSTへのWrite準備処理を行なう。そして、Middleware201は、ステップS1035において、SSTへのWrite処理を行なう。一方、秘密記憶処理においてSSTからのReadが必要であれば、Middleware201は、ステップS1037において、SSTからのRead処理を行なう。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201にSST終了処理の要求(呼び出し)があり、Middleware201は、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。
Next, the
Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。
The
(秘密記憶部の初期化処理)
図11Aは、本実施形態に係る秘密記憶部(Secure Storage)の初期化処理(S1031)の手順を示すシーケンス図である。秘密記憶部(Secure Storage)の初期化処理(S1031)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用いながら、本実施形態に係るSecure StorageのWrite処理またはRead処理のための環境を整備する。例えば、パラメータで指定する Secure Storage のフォーマット情報を基にPrivate Layer422のSecure Storage機能で使用するデータ構造体などの初期化、および、不揮発メモリ上に配置するSecure Storage Management Databaseの初期化・初期値設定処理などを実施、以降の処理のための記憶領域の確保(スタックの形成)などの準備をする。その後、Porting Layer423の初期化処理として、本情報処理装置に接続されているSecure Storageとなるハードウェア(Secure Storage Feature452)の初期化と正常動作判定を実施する。また、本情報処理装置にSecure Storageとなるハードウェアが接続されていない場合、ライブラリ中の Secure Storage ソフトウェア機能を代替えの機能として設定し、ソフトウェア動作メモリ領域の確保、初期設定値の設定処理などの初期化処理を行う。
(Secret memory initialization process)
FIG. 11A is a sequence diagram illustrating a procedure of initialization processing (S1031) of the secret storage unit (Secure Storage) according to the present embodiment. In the initialization process (S1031) of the secret storage unit (Secure Storage), while using the basic environment prepared in the engine initialization process (S611) of the middleware, the Secure Storage Write process or Read process according to this embodiment is performed. Prepare an environment for For example, initialization of data structures used by the Secure Storage function of
また、ハードウェアの動作判定によりハードウェアが正常動作を行っていないと判定された場合、もしくは、ライブラリ中のソフトウェア機能の動作に必要なメモリ領域などのリソースの確保ができないと判定された場合、ミドルウェアの初期化処理を中止する。また、Porting Layer423におけるハードウェア、および、ソフトウェアによるセキュリティ機能の処理が完了後、Private Layer422で管理するミドルウェアのSecure Storageの動作状態を動作可能状態に遷移する。また、記憶領域に以降の「Write準備処理(S1033)」や「Read処理(S1037)」のため、コアコンテキス情報へのポインタ、前述のPorting Layer初期化の際、オペレーティングシステムなどから取得するハンドル値、Secure Storage Management Database のハンドル値、Secure Storage機能のステータスなどを含む秘密記憶部コンテキスト情報を確保する。そして、秘密記憶部の初期化処理の完了と秘密記憶部コンテキスト情報をアプリケーションに通知する。
Also, when it is determined by hardware operation determination that the hardware is not operating normally, or when it is determined that resources such as a memory area necessary for the operation of the software function in the library cannot be secured, Cancel the middleware initialization process. In addition, after the security function processing by the hardware and software in the
なお、図11Aは、図7Aの「Secure Engine」を「Secure Storage」や「Secure Storage Engine」に置き換えたものと同様であり、詳細な繰り返しは省略する。 Note that FIG. 11A is similar to the one in which “Secure Engine” in FIG. 7A is replaced with “Secure Storage” or “Secure Storage Engine”, and the detailed repetition is omitted.
(Write準備処理)
図11Bは、本実施形態に係るWrite準備処理(S1033)の手順を示すシーケンス図である。Write準備処理(S1033)においては、秘密記憶部の初期化処理(S1031)において準備された環境を用いながら、本実施形態に係るSecure StorageへのWrite準備処理を実行する。例えば、Writeする秘密データを取得し、取得した秘密データを所定の方式で暗号化を行なった暗号化秘密データを生成する。そして、生成された暗号化秘密データをアプリケーションに返すと共に、Secure StorageへのWrite準備の完了をアプリケーションに通知する。
(Write preparation process)
FIG. 11B is a sequence diagram showing the procedure of the write preparation process (S1033) according to the present embodiment. In the write preparation process (S1033), the write preparation process to the secure storage according to the present embodiment is executed using the environment prepared in the initialization process (S1031) of the secret storage unit. For example, the secret data to be written is acquired, and encrypted secret data is generated by encrypting the acquired secret data by a predetermined method. Then, the generated encrypted secret data is returned to the application and at the same time, the application is notified of the completion of the write preparation to the Secure Storage.
Customer Application401、402は、ステップS1131において、オリジナルの秘密データを準備する。Customer Application401、402は、ステップS1132において、Secure Public API421の秘密データの書き込みの準備を呼び出す。Secure Public API421は、Customer Application401、402からの秘密データの書き込み準備の呼び出しを受けて、ステップS1133において、Secure Private Layer422に暗号化された秘密データを生成させる。Secure Private Layer422は、ステップS1134において、暗号化された秘密データを生成する。
In step S1131, the
暗号化された秘密データの生成が終了すると、Secure Public API421を介して、Customer Application401、402に暗号化された秘密データの生成を通知する。Customer Application401、402は、ステップS1137において、対象機器のために、生成された暗号化秘密データを保存する。
When the generation of the encrypted secret data is completed, the generation of the encrypted secret data is notified to the
(Write処理)
図11Cは、本実施形態に係るWrite処理(S1035)の手順を示すシーケンス図である。Write処理(S1035)においては、Write準備処理(S1033)において準備された暗号化秘密データのSecure StorageへのWrite処理を実行する。例えば、パラメータとして与えられた暗号化秘密データを所定の方式で復号化後、本情報処理装置のSecure Storageとなるハードウェア(Secure Storage Feature452)が接続されている場合、ハードウェアに対するWrite処理を実行し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアにより確保された仮想Secure Storageで代替する。また、ハードウェア、もしくは、ソフトウェアによる Write処理が完了後、Private Layer422で管理する Secure Storage Management Database を更新する。そして、Write処理の完了をアプリケーションに通知する。
(Write processing)
FIG. 11C is a sequence diagram illustrating the procedure of the write process (S1035) according to the present embodiment. In the write process (S1035), the process of writing the encrypted secret data prepared in the write preparation process (S1033) to the Secure Storage is executed. For example, after the encrypted secret data given as a parameter is decrypted by a predetermined method, if the hardware (Secure Storage Feature 452) that is the secure storage of this information processing apparatus is connected, the hardware write processing is executed. If the hardware that becomes Secure Storage is not connected, it is replaced with virtual Secure Storage secured by software in the library. In addition, after the write processing by hardware or software is completed, the Secure Storage Management Database managed by the
Customer Application401、402は、ステップS1141において、生成されて保存された暗号化秘密データを読み出す。
In step S1141, the
Customer Application401、402は、ステップS1142において、Secure Public API421の秘密データ書込を呼び出す。Secure Public API421は、Customer Application401、402からの秘密データ書込の呼び出しを受けて、ステップS1143において、Secure Private Layer422にSecure Storageへの暗号化秘密データのWriteを指示する。
In step S1142, the
Secure Private Layer422は、ステップS1144において、Secure EngineおよびSecure Storageのstatusをチェックする。Secure Private Layer422は、ステップS1145において、Secure Porting Layer423に入力パラメータおよび/またはランダム数を用いて書込パラメータの生成を指示して、Secure Porting Layer423は、ステップS1146において、書込パラメータの生成OKを返す。
In step S1144, the secure
Secure Private Layer422は、ステップS1147において、Secure Storageに書き込むために入力された暗号化データを復号する。そして、Secure Private Layer422は、ステップS1148において、秘密データのWriteをSecure Porting Layer423に指示する。
In step S1147, the secure
Secure Porting Layer423は、Hardware Secure Storage Engine452が動作可能かを判定し、動作可能であれば、ステップS1149において、Hardware Secure Storage Engine452により秘密データをWriteする。Hardware Secure Storage Engine452が動作可能でなければ、ステップS1151において、ライブラリ中のSoftware Secure Storage Engineにより秘密データをWriteする。
The
ステップS1150において、Hardware Secure Storage Engine452による秘密データのWriteが完了するか、ステップS1151において、ライブラリ中のSoftware Secure Storage Engineによる秘密データのWriteが完了すれば、ステップS1152〜S1154において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、WriteOKを返して、Secure StorageへのWrite処理が終了する。
If the writing of the secret data by the Hardware
(Read処理)
図11Dは、本実施形態に係るRead処理(S1037)の手順を示すシーケンス図である。Read処理(S1037)においては、Secure Storage初期化処理(S1031)において準備されたSecure StorageからのRead処理を実行する。例えば、パラメータとして指定する情報とPrivate Layer422で管理する Secure Storage Management Database を基に、本情報処理装置のSecure Storageとなるハードウェア(Secure Storage Feature452)が接続されている場合、ハードウェアからのRead処理を実行し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアにより代替えされる仮想Secure StorageからのRead処理を実行する。そして、Read処理の完了をアプリケーションに通知する。
(Read processing)
FIG. 11D is a sequence diagram illustrating the procedure of the Read process (S1037) according to the present embodiment. In the Read process (S1037), the Read process from Secure Storage prepared in the Secure Storage initialization process (S1031) is executed. For example, when hardware (Secure Storage Feature 452) that is Secure Storage of this information processing apparatus is connected based on information specified as parameters and Secure Storage Management Database managed by
Customer Application401、402は、ステップS1161において、Secure Public API421の秘密データ読み出しを呼び出す。Secure Public API421は、Customer Application401、402からの秘密データ読出の呼び出しを受けて、ステップS1162において、Secure Private Layer422にSecure Storageからの秘密データのReadを指示する。
In step S1161, the
Secure Private Layer422は、ステップS1163において、Secure EngineおよびSecure Storageのstatusをチェックする。Secure Private Layer422は、ステップS1164において、Secure Porting Layer423に入力パラメータを用いて読出パラメータの生成を指示して、Secure Porting Layer423は、ステップS1165において、読出パラメータの生成OKを返す。
In step S1163, the
Secure Private Layer422は、ステップS1166において、秘密データのReadをSecure Porting Layer423に指示する。
In step S1166, the
Secure Porting Layer423は、Hardware Secure Storage Engine452が動作可能かを判定し、動作可能であれば、ステップS1167において、Hardware Secure Storage Engine452により秘密データをReadする。Hardware Secure Storage Engine452が動作可能でなければ、ステップS1169において、ライブラリ中のSoftware Secure Storage Engineにより秘密データをReadする。
The
ステップS1168において、Hardware Secure Storage Engine452による秘密データのReadが完了するか、ステップS1169において、ライブラリ中のSoftware Secure Storage Engineによる秘密データのReadが完了すれば、ステップS1170〜S1172において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、ReadOKを返して、Secure StorageからのRead処理が終了する。
If the reading of the secret data by the Hardware
(秘密記憶部の終了処理)
図11Eは、本実施形態に係る秘密記憶部(Secure Storage)の終了処理(S1039)の手順を示すシーケンス図である。秘密記憶部の終了処理(S1039)においては、Secure Storageに対するWrite処理(S1035)やRead処理(S1037)において使用された資源の終了処理を行ない、資源を解放する。秘密記憶処理の状態を蓄積してもよい。本情報処理装置のSecure Storageとなるハードウェアが接続されている場合、ハードウェアを解放し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアおよび確保されていた記憶領域を解放する。また、Private Layer422で管理するSecure Storage Management Databaseを更新する。そして、確保されていた秘密記憶部コンテキスト情報を解放し、秘密記憶処理の完了をアプリケーションに通知する。
(End processing of secret memory)
FIG. 11E is a sequence diagram illustrating a procedure of the end process (S1039) of the secret storage unit (Secure Storage) according to the present embodiment. In the secret storage unit termination processing (S1039), the resources used in the Write processing (S1035) and the Read processing (S1037) for Secure Storage are terminated, and the resources are released. The state of the secret storage process may be accumulated. If the Secure Storage hardware of this information processing device is connected, the hardware is released. If the Secure Storage hardware is not connected, the software in the library and the reserved storage area are released. To do. In addition, the Secure Storage Management Database managed by the
なお、図11Eのシーケンスは、図7Eのシーケンスにおける「Secure Engineの終了処理」を「Secure Storageの終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。なお、図10に示すように、図11EのSecure Storageの終了処理で秘密記憶部(Secure Storage)の記憶処理が完了した後、図7Eのシーケンスに従ったSecure Engineの終了処理を実行する。 Note that the sequence of FIG. 11E is obtained by replacing “Secure Engine termination process” with “Secure Storage termination process” in the sequence of FIG. As shown in FIG. 10, after the storage process of the secret storage unit (Secure Storage) is completed in the Secure Storage termination process of FIG. 11E, the Secure Engine termination process according to the sequence of FIG. 7E is executed.
本実施形態によれば、秘密記憶部(Secure Storage)の記憶処理を複数の通信アプリケーションから共通のシーケンスに従って利用することができる。 According to the present embodiment, the storage process of the secret storage unit (Secure Storage) can be used from a plurality of communication applications according to a common sequence.
[第4実施形態]
次に、本発明の第4実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態および第3実施形態と比べると、ハードウェア的に分離された、ノーマル実行環境である非機密部とセキュア実行環境である機密部とを生成し、機密部に秘匿性のより高い暗号化鍵、復号鍵およびセッション鍵を格納する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fourth Embodiment]
Next, an information processing apparatus according to the fourth embodiment of the present invention will be described. The information processing apparatus according to this embodiment includes a non-confidential part that is a normal execution environment and a secret part that is a secure execution environment, separated from each other in hardware, as compared with the second and third embodiments. It is different in that the encryption key, the decryption key, and the session key with higher confidentiality are generated and stored in the confidential part. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
本実施形態における初期化処理は、共通のミドルウェアエンジンの初期化処理、暗号化の初期化処理、および、通信アプリケーションのプロトコルに従う初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、暗号化の終了処理、および、通信アプリケーションのプロトコルに従う終了処理を含む。 The initialization process in the present embodiment includes a common middleware engine initialization process, an encryption initialization process, and an initialization process according to the protocol of the communication application, and the termination process includes a common middleware engine termination process, It includes encryption termination processing and termination processing according to the communication application protocol.
《情報処理装置のソフトウェア階層》
図12は、本実施形態に係る情報処理装置1200のソフトウェア階層を示す図である。なお、図12において、図4Aおよび図4Bと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
<< Software hierarchy of information processing equipment >>
FIG. 12 is a diagram showing a software hierarchy of the
情報処理装置1200のソフトウェア階層は、Application層401および402と、Middlewareとして提供されるHDCP SDK層1210と、Middlewareとして提供される本実施形態の暗号化/復号層Middleware1201と、OSとの接続層431、432および1232と、OS層1241および1242と、ファームウェア(Firmware)層1260と、ハードウェア層450、451および452とを有する。
The software hierarchy of the
(HDCP SDK層:通信プロトコルのMiddleware)
本実施形態において、HDCP SDK1210は、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータ以外を扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持するためのSecure Data Partを有さない。Secure Data Partは、ハードウェア的に分離されたSecure World1225内に、Middleware's Secure Data Part1226として確保される。
(HDCP SDK layer: Middleware for communication protocol)
In the present embodiment, the
(暗号化/復号層のMiddleware)
暗号化/復号層Middleware1201は、Non Secure OS上のNon Secure OS Part(Non Secure World)1224と、Secure OS上のSecure OS Part(Secure World)1225と、に分離されている。
(Middleware for encryption / decryption layer)
The encryption /
Non Secure World1224は、User Application401または402から直接、あるいは、HDCP SDK層410を介してインタフェースするPublic API1221と、ハードウェアとの接続を管理するPrivate Layer1222と、Secure World1225とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1227と、を有する。
The
一方、Secure World1225は、Non Secure World1224とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1228と、Secure World1225内でハードウェアとの接続を管理するPrivate Layer1222と、Secure World1225内でハードウェア層451および452を各々制御するPorting Layer1223と、Middleware's Secure Data Part1226と、を有する。
On the other hand, the
なお、Porting Layer1227とPorting Layer1228との間のデータ転送1229は、ファームウェア(Firmware)層1260まで戻ることによって、ハードウェア的に分離される。
Note that the
(OSとの接続層)
OSとの接続層は、新たに、Secure World1225をSecureOS層1242と接続するSoC depended Secure Middleware for Secure OS1233、を有する。
(Connection layer with OS)
The connection layer with the OS newly includes SoC depended Secure Middleware for
(OS層)
OS層は、Non Secure World1224に対応するNon Secure OS driverおよびNon Secure OS1241と、Secure World1225に対応するSecure OS driverおよびSecure OS1242と、を有する。
(OS layer)
The OS layer has a Non Secure OS driver and Non
(ファームウェア層)
ファームウェア層1260は、Non Secure World1224とSecure World1225とをハードウェア的に分離する。
(Firmware layer)
The
《機密分離処理シーケンス》
(HDCPにおける機密分離処理)
図13Aは、本実施形態に係る機密分離処理のマクロな動作手順を示すシーケンス図である。図13Aは、HDCP SDK1210とSecure Worldを組み合わせてHDCP sink deviceを実現する場合のシーケンス図である。なお、図13Aにおいて、図6および図10と同様の構成要素には同じ参照番号、図6と同様のステップには同じステップ番号を付して、重複する説明は省略する。
《Secret separation processing sequence》
(Separation processing in HDCP)
FIG. 13A is a sequence diagram illustrating a macro operation procedure of the security separation process according to the present embodiment. FIG. 13A is a sequence diagram when an HDCP sink device is realized by combining
HDCPSinkのCustomer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。ステップS1013において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行ない、ステップS1315において、MiddlewareのHDCP SDK層1210と協働して、HDCPSinkの初期化処理を行なう。
When there is an initialization request (call) from the
次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application401、402からMiddleware201に機密情報処理としてSST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行ない、Secure Storageを使用可能とする。次に、Customer Application401、402からMiddleware201に機密情報処理としてHDCP Sink初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1333において、MiddlewareのHDCP SDK層1210と協働して、HDCPSinkの初期化処理を行なう。機密分離処理において、HDCPSource1301からHDCPSink402にセッション開始のトリガがあると、HDCP SDK1210を含むMiddleware201は、ステップS1335において、HDCPの認証および鍵交換処理を行なう。そして、Middleware201は、ステップS1337において、暗号化コンテンツ伝送処理を行なう。本例では、シンク機器につき説明するが、ソース機器においても、セッションのトリガやデータ伝送方向が異なるのみで同様である。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201にHDCP Sink処理終了の要求(呼び出し)があり、Middleware201は、ステップS1339において、終了処理を行なう。次に、Middleware201は、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。
Next, the
Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS653において、Secureエンジンモジュールの終了処理を行なう。
There is a request for termination of processing (call) from the
(DTCPにおける機密分離処理)
図13Bは、本実施形態に係る他の機密分離処理のマクロな動作手順を示すシーケンス図である。図13Bは、DTCP SDK1310とSecure Worldを組み合わせてDTCP sink deviceを実現する場合のシーケンス図である。なお、図13Bにおいて、図6、図10および図13Aと同様の構成要素には同じ参照番号、図6および図13Aと同様のステップには同じステップ番号を付して、重複する説明は省略する。
(Separation separation process in DTCP)
FIG. 13B is a sequence diagram illustrating a macro operation procedure of another secret separation process according to the present embodiment. FIG. 13B is a sequence diagram when the DTCP sink device is realized by combining the
DTCP sink deviceのCustomer Application1302からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。
When there is an initialization request (call) from the
次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application1302からMiddleware201に機密情報処理の準備として、SST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行なう。次に、DTCPSinkの初期化処理の要求(呼び出し)があると、ステップS1341において、MiddlewareのDTCP SDK層と協働して、DTCPSinkの初期化処理を行なう。機密分離処理において、DTCPSource1311からDTCPSink1302にセッション開始のトリガがあると、DTCP SDK1310を含むMiddleware201は、ステップS1335において、DTCPの認証および鍵交換処理を行なう。そして、Middleware201は、ステップS1345において、暗号化コンテンツ伝送処理を行なう。本例では、シンク機器につき説明するが、ソース機器においても同様である。暗号化や復号を含む各機密情報処理が完了すると、Customer Application1302からMiddleware201にDTCP Sink処理終了の要求(呼び出し)があり、Middleware201は、ステップS1347において、DTCPSinkの終了処理を行ない、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。
Next, the
暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。
When each confidential information process including encryption and decryption is completed, the
《HDCPにおける機密分離処理の詳細》
以下、HDCPにおける機密分離処理を代表として、機密分離処理の詳細なシーケンスを示すが、DTCPにおける機密分離処理あるいは他のリンクプロテクション機能やコピーガード機能を有する機密分離処理においても、プロトコルに対応した同様のシーケンスにより実現される。
<< Details of security separation processing in HDCP >>
In the following, a detailed sequence of the security separation process will be shown with the security separation process in HDCP as a representative, but the security separation process in DTCP or the security separation process having other link protection functions and copy guard functions is also similar to the protocol. This sequence is realized.
(HDCPシンクの初期化処理)
図14Aは、本実施形態に係るHDCPシンク(Sink)の初期化処理(S1333)の手順を示すシーケンス図である。HDCPシンク(Sink)の初期化処理(S1333)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用い、前述のSecureエンジン処理化処理(S611)およびSecure Storage初期化処理(S1031)を実行した後、本実施形態に係るHDCPシンク(Sink)の初期化処理のための環境を整備する。例えば、HDCPのAKE シーケンスにおいて使用するデバイス鍵セットなどの機密データをSecure Storageなどから取得して、Secure Worldに確保されたSecure Data Part1226に接続し、Secure Dataを保持する。あるいは、読み出して使用するための準備をする。また、以降の「HDCP認証および鍵交換処理(S1335)」や「暗号化コンテンツ伝送処理(S1337)」のため、コアコンテキスト情報へのポインタ、HDCP ライブラリのステータスなどを含むHDCPコンテキスト情報を確保する。そして、HDCPシンク(Sink)の初期化処理の完了とHDCPコンテキスト情報をアプリケーションに通知する。
(HDCP sync initialization process)
FIG. 14A is a sequence diagram showing a procedure of HDCP sink (Sink) initialization processing (S 1333) according to the present embodiment. In the initialization process (S1333) of the HDCP sink (Sink), using the basic environment prepared in the engine initialization process (S611) of the middleware, the Secure engine process (S611) and the Secure Storage initialization process (S611) are performed. After executing S1031), an environment for initialization processing of the HDCP sink (Sink) according to the present embodiment is prepared. For example, confidential data such as a device key set used in the HDCP AKE sequence is acquired from Secure Storage or the like, connected to
なお、図14Aにおいて、ステップS611およびS1013は、図7Aのミドルウェアのエンジン初期化処理および図11Aの秘密記憶部(Secure Storage)の初期化処理であるので、重複を避けて説明を省略する。なお、以下の図14Aから図14Fにおいて、OKなどの応答信号については煩雑さを避けるため図示および説明を省略する。 In FIG. 14A, steps S611 and S1013 are middleware engine initialization processing of FIG. 7A and initialization processing of the secure storage unit (Secure Storage) of FIG. In FIGS. 14A to 14F below, illustration and description of response signals such as OK are omitted to avoid complication.
HDCPSink Application402は、ステップS1401において、HDCP SDK1210のHDCPSink初期化を呼び出す。HDCP SDK1210は、HDCPSink Application402からのHDCPSink初期化の呼び出しを受けて、ステップS1402において、HDCPコンテキスト情報を確保しHDCPの機能(featureとも言う)とHDCPコンテキスト情報とを初期化する。
In step S1401, the
HDCP SDK1210は、ステップS1403において、HDCPシンク機器のデバイス鍵としてSecure Storage DataをSecure Public API1221に与える。Secure Public API1221は、ステップS1404において、Secure Storage DataをSecure Private Layer1222に与える。Secure Private Layer1222は、ステップS1405において、Secure Storage DataをSecure Porting Layer1223に与える。
In step S1403, the
また、HDCP SDK1210は、ステップS1406において、Secure Data Interface1321に対し、HDCP Secure Data Partの初期化を指示する。Secure Data Interface1321は、ステップS1407において、Secure Porting Layer1227を介してSecure Porting Layer1228に対し、HDCP Secure Data Partの初期化を指示する。Secure Porting Layer1227、1228は、ステップS1408において、function numberを実際のfunction nameに変換し、ステップS1409において、HDCP Secure Data Part1226に対して初期化を指示する。
In step S1406, the
なお、Secure Data Interface経由でアクセスするSecure Data Partは、Function Numberで識別する。ここで、Secure Data PartとFunction Numberとの関係は、Porting Layerに配置するFunction Tableで管理される。このFunction Tableは、Function Numberと、該当するFunction NumberのSecure Data Partのプログラムの呼び出しアドレス、および、呼び出しで使用する引数の個数を持つ。Secure Data Partのプログラムの呼び出しで使用する引数は、可変長のデータである。 The Secure Data Part accessed via the Secure Data Interface is identified by Function Number. Here, the relationship between Secure Data Part and Function Number is managed by a Function Table placed in the Porting Layer. This Function Table has the Function Number, the calling address of the program of the Secure Data Part corresponding to the Function Number, and the number of arguments used in the calling. The argument used for calling the Secure Data Part program is variable length data.
(HDCPの認証および鍵交換処理)
図14B乃至図14Dは、本実施形態に係るHDCPの認証および鍵交換処理(S1335)の手順を示すシーケンス図である。HDCPの認証および鍵交換処理(S1335)においては、HDCPシンク(Sink)の初期化処理(S1333)で整備された環境を用いて、まず、本例では、HDCPソース機器からのセッション開始の指示を受けて、HDCPシンク機器とHDCPソース機器との間での、認証および鍵交換のプロトコルに従ったメッセージ交換を実現する。同時に、通信相手から取得したAKEシーケンス上の機密データkmを暗号化したデータであるEkmなどをSecure Data Part1226内に保持している HDCPシンク機器の機密データであるプライベート鍵kprivrxで復号化後、Secure Data Part1226内に保持する。また、HDCPシンク機器の機密データであるプライベート鍵kprivrxを基に生成されるkhと、Secure Data Part1226で保持する機密データkm用いて通信相手に送信する機密データであるEkhなどを生成することにより、HDCPシンク機器とHDCPソース機器との間での認証および鍵交換を実現し、HDCPソース機器からセッション鍵を取得、Secure Data Partに保持する。そして、セッション鍵取得後、HDCPコンテキスト情報のステータスを更新し、認証、および、鍵交換シーケンスの完了とHDCPコンテキスト情報をアプリケーションに通知する。
(HDCP authentication and key exchange processing)
14B to 14D are sequence diagrams showing the procedure of HDCP authentication and key exchange processing (S1335) according to this embodiment. In the HDCP authentication and key exchange process (S1335), using the environment prepared in the HDCP sink initialization process (S1333), first, in this example, an instruction to start a session from the HDCP source device is issued. In response, the message exchange according to the authentication and key exchange protocol is realized between the HDCP sink device and the HDCP source device. At the same time, Ekm, which is the encrypted data KM in the AKE sequence obtained from the communication partner, is stored in
なお、図14B乃至図14Dにおいて、ステップS1415〜S1416とステップS1422〜S1423、ステップS1424とステップS1430〜S1432、ステップS1433とステップS1436とステップS1439〜S1440、ステップS1441の、HDCPソースApplication1301とHDCP SDK1210間のシーケンスは、HDCP 2.2 の仕様で規定されるAKEに関連する認証および鍵交換処理のメッセージの交換である。
14B to 14D, between steps S1415 to S1416 and steps S1422 to S1423, step S1424 and steps S1430 to S1432, step S1433, steps S1436, steps S1439 to S1440, and step S1441, between the
コンテンツの送信者から、ステップS1411において、ネットワークセッションの生成要求が、HDCP SDK1210に送られると、HDCP SDK1210は、ステップS1412において、HDCP認証開始のイベントをHDCPSink Application402に伝える。それに応えて、HDCPSink Application402は、ステップS1413において、HDCP SDK1210のHDCPSink認証を呼び出す。
When a network session generation request is sent from the content sender to the
コンテンツの送信者から、ステップS1414において、HDCPSource Application1301にHDCPSource認証が初期化されて、HDCPSource Application1301が、ステップS1415において、HDCP SDK1210にAKE Initを送信することで、HDCPの認証および鍵交換処理におけるソース機器とシンク機器間のメッセージ交換が開始される。以下、シンク機器から見た各メッセージ交換の概略を示し、各ステップの処理についての詳細な説明は省略する。
In step S1414, HDCPSource authentication is initialized to the
ステップS1415〜S1423においては、HDCPシンク機器がHDCPソース機器から受信したAKE InitメッセージとAKE Transmitter Infoメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、実行結果を基にAKE Send CertメッセージおよびAKE Receiver Infoメッセージを生成して、HDCPソース機器側に戻していることを示している。
In steps S1415 to S1423, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the AKE Init message and the AKE Transmitter Info message received from the HDCP source device, and uses the
なお、HDCPの仕様に基づくメッセージとFunction Numberとは1対1に対応せず、メッセージの1つが複数のFunction Numberにマッピングされたり、複数のメッセージが1つのFunction Numberにマップされたりする場合がある。したがって、ステップS1415〜S1323で1つのSecure Data Partにおける処理の実行を説明しているが、実際の実装では、複数のSecure Data Partに分けて呼び出す。かかる、Secure Data Partの分け方は、実現する機能のシーケンスと該当シーケンスで扱う機密データに対するアクセスのタイミングを判断して決定する。 Note that messages based on HDCP specifications and Function Numbers do not correspond one-to-one, and one message may be mapped to a plurality of Function Numbers, or a plurality of messages may be mapped to one Function Number. . Therefore, although execution of processing in one Secure Data Part has been described in Steps S1415 to S1323, in actual implementation, it is divided into a plurality of Secure Data Parts and called. Such a method of dividing Secure Data Part is determined by judging the sequence of functions to be realized and the timing of access to confidential data handled in the corresponding sequence.
また、ステップS1424〜S1432においては、HDCPシンク機器がHDCPソース機器から受信したAKE No Stored kmメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、実行結果を基にAKE Send rrxメッセージ、AKE Send H primeメッセージおよびAKE Send Painting Infoメッセージを生成して、HDCPソース機器側に戻していることを示している。
In steps S1424 to S1432, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the AKE No Stored km message received from the HDCP source device, and uses the
また、ステップS1433〜S1440においては、HDCPシンク機器がHDCPソース機器から受信したLC initメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、HDCPシンク機器からHDCPソース機器へのRRT Readyメッセージに対してRRT Challengeメッセージの応答があれば、実行結果を基にLC Send L primeメッセージを生成して、HDCPソース機器側に戻していることを示している。
In steps S1433 to S1440, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the LC init message received from the HDCP source device, and uses the
HDCPSource Application1301は、LC Send L primeメッセージを受信して、ステップS1441において、send EksメッセージをHDCP SDK1210に送る。そして、コンテンツの送信者にネットワークセッションの確立を通知する。
The
HDCP SDK1210は、ステップS1442〜S1446において、受信したsend Eksメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行すると共に、ステップS1447において、HDCP認証の完了イベントをHDCPSink Application402に送る。
In steps S1442 to S1446, the
HDCPSink Application402は、HDCP認証の完了イベントを受けて、HDCP SDK1210のHDCPSinkの復号処理で使用するパラメータの取得処理を呼び出す。HDCP SDK1210は、ステップS1449〜S1453において、パラメータの取得処理の呼び出しを受けて、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行する。
In response to the HDCP authentication completion event, the
(暗号化コンテンツ伝送処理)
図14Eは、本実施形態に係る暗号化コンテンツ伝送処理(S1337)の手順を示すシーケンス図である。暗号化コンテンツ伝送処理(S1337)においては、HDCPの認証および鍵交換処理(S1335)で交換された鍵を用いて、暗号化コンテンツの伝送を行なう。本例では、アプリケーションがHDCPソース機器から暗号化コンテンツを受信、受信データをHDCPミドルウェアへ渡し、Secure Data Part1226に保持された交換鍵を用いて復号後、復号結果をアプリケーションに渡す。そして、アプリケーションは、復号結果を基に描画等の処理を行う。また、HDCPソース機器からのセッション終了の指示を受けて、暗号化コンテンツの復号化処理を終了し、HDCPコンテキスト情報のステータスを更新、暗号化コンテンツ伝送処理の完了とHDCP コンテキスト情報をアプリケーションに通知する。
(Encrypted content transmission processing)
FIG. 14E is a sequence diagram showing a procedure of the encrypted content transmission process (S1337) according to the present embodiment. In the encrypted content transmission process (S1337), the encrypted content is transmitted using the key exchanged in the HDCP authentication and key exchange process (S1335). In this example, the application receives the encrypted content from the HDCP source device, passes the received data to the HDCP middleware, decrypts it using the exchange key held in the
コンテンツの送信者が、ステップS1461において、HDCPのソース機器のアプリケーション1301に対し、ストリームコンテンツの配信を指示する。ソース機器のアプリケーション1301は、ステップS1462において、ストリームコンテンツを暗号化する。そして、ソース機器のアプリケーション1301は、ステップS1463において、暗号化されたストリームコンテンツをシンク機器のHDCPSink Application402に配信する。
In
HDCPSink Application402は、ステップS1464において、暗号化されたストリームコンテンツを受信する。そして、HDCPSink Application402は、ステップS1465において、HDCP SDK1210に対して受信したストリームコンテンツの復号を指示する。HDCP SDK1210は、ステップS1466において、Secure Public API1221のCTRモード(Counter Mode)でのAES復号を呼び出す。Secure Public API1221は、ステップS1467において、Secure Private Layer1222にAES復号の実施を指示する。Secure Private Layer1222は、ステップS1468において、Secure Porting Layer1227、1228にAES復号を実施させる。
In step S1464, the
HDCPSink Application402は、ステップS1469において、ストリームコンテンツをデコードする。
The
コンテンツの送信者が、ストリームコンテンツの配信が完了するまで、ステップS1461〜S1469が繰り返される。 Steps S1461 to S1469 are repeated until the content sender completes the distribution of the stream content.
コンテンツの送信者は、ストリームコンテンツの配信が完了すると、ステップS1470において、ネットワークセッションの切断を、HDCP SDK1210に通知する。HDCP SDK1210は、ステップS1471において、HDCPのセッション切断イベントをHDCPSink Application402に通知する。
When the distribution of the stream content is completed, the content sender notifies the
(HDCPシンクの終了処理)
図14Fは、本実施形態に係るHDCPシンク(Sink)の終了処理(S1339)の手順を示すシーケンス図である。HDCPシンク(Sink)の終了処理(S1339)においては、HDCPシンク(Sink)の初期化処理(S1333)において整備された環境を解放する。例えば、Secure WorldのSecure Data Part1226に確保された記憶領域の解放、あるいは、「HDCP認証および鍵交換処理(S1335)」や「暗号化コンテンツ伝送処理(S1337)」のための確保された記憶領域を解放する。そして、HDCPコンテキスト情報を解放後、HDCPシンク(Sink)の終了処理の完了をアプリケーションに通知する。
(End processing of HDCP sync)
FIG. 14F is a sequence diagram illustrating a procedure of HDCP sink (Sink) termination processing (S1339) according to the present embodiment. In the HDCP sink (Sink) termination process (S1339), the environment prepared in the HDCP sink (Sink) initialization process (S1333) is released. For example, a storage area reserved for Secure World
HDCPシンク(Sink)のステップS1481〜S1486の終了処理は、図14AにおけるステップS1401、S1402およびS1406〜S1409の「初期化処理」を「終了処理」に置き換えたものなので、詳細な説明は省略する。なお、HDCP SDK1210は、ステップS1486において、ステップS1402で初期化したHDCPの機能とHDCPコンテキスト情報とを解放する。
The HDCP sink (Sink) end processing in steps S1481 to S1486 is obtained by replacing “initialization processing” in steps S1401, S1402 and S1406 to S1409 in FIG. In step S1486, the
以下、図11EのSecure Storage終了処理と図7のESecureエンジン終了処理とを実行して、HDCP SDKとSecure Worldを組み合わせたHDCP sink deviceの実現が完了する。 Thereafter, the Secure Storage termination process of FIG. 11E and the ESecure engine termination process of FIG. 7 are executed, and the realization of the HDCP sink device combining HDCP SDK and Secure World is completed.
《情報処理装置のハードウェア構成》
図15Aは、全実施形態に共通の情報処理装置1200のハードウェア構成を示すブロック図である。なお、図15Aにおいて、図8と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
<< Hardware configuration of information processing equipment >>
FIG. 15A is a block diagram illustrating a hardware configuration of an
図15AのRAM1540において、スタック領域1549は、Non Secure OS856によるNon Secure World内のスタック910と、Secure OS1556によるSecure World内のスタック1520と、に分離される。また、ストレージ1550において、本例では、SST領域1554およびSecure Data領域1555は、Secure OS1556によるSecure World内に配置させる。また、ストレージ1550は、Secure OS1556を有し、機密制御ライブラリ1558は、Non Secure OS856によるNon Secure World内で実行されるモジュールと、Secure OS1556によるSecure World内で実行されるモジュールと、に分離される。情報処理装置1200において、Non Secure WorldからSecure Worldが見えないようにハードウェア的に分離されている以外、その他の構成は、図8と同様であるため詳細な説明は省略する。
In the
(スタック領域)
図15Bは、Secure Worldを有する実施形態に共通のスタック領域1549の構成を示す図である。本実施形態において、スタック領域1549はNon Secureスタック910とSecureスタック1520とを有する。Non Secureスタック910は図9Aと同様なので、重複する説明は省略する。
(Stack area)
FIG. 15B is a diagram showing a configuration of a
Secureスタック1520は、Secure OSによるスタック1521と、Applicationによるスタック1522と、通信プロトコルに対応するMiddlewareスタック1523と、本実施形態の暗号化/復号に対応するMiddlewareスタック1524と、を有する。本実施形態のMiddlewareスタック1524は、Secureエンジン用スタック1525と、暗号化用スタック1526と、Secure Storage用スタック1527と、通信プロトコル用スタック1528と、を含む。Middlewareスタック1524内の各スタック1525〜1528との間のデータ共有やデータ交換は、互いにリンクされたコンテキストにより実現される。なお、Middlewareスタック1524内におけるスタック順は、図15Bに限定されない。
The
(ストレージの格納データ)
図15Cは、Secure Worldを有する実施形態に共通のストレージ1550における格納データの構成を示す図である。
(Storage data)
FIG. 15C is a diagram showing a configuration of stored data in the
図15Cに示す本実施形態の暗号化/復号に対応するMiddlewareを実現する機密制御ライブラリ1558は、Secure Public API群971と、Secure Private Layerモジュール群1572と、Secure Porting Layerモジュール群1573と、仮想ハードウェアモジュール群974と、を有する。
The
以下、図9Dと異なるSecure Private Layerモジュール群1572と、Secure Porting Layerモジュール群1573と、の追加または変更モジュールを説明する。Secure Private Layerモジュール群1572は、SecureのCryptographyモジュールと、SecureのSecure Storageモジュールと、を含む。Secure Porting Layerモジュール群1573は、SecureのCryptographyモジュールと、SecureのSecure Storageモジュールと、SecureのSecure Data Interfaceモジュールと、を含む。
Hereinafter, a module for adding or changing a Secure Private
なお、Secure Private Layerモジュール群1572のCryptographyモジュールとSecure Storageモジュールとは、図9Dとは異なり、Secure Porting Layerモジュール群1573のNon SecureのSecure Data Interfaceモジュールを呼び出すように構成される。
Note that the Cryptography module and the Secure Storage module of the Secure Private
(各機能処理)
図15Dは、Secure Worldを有する実施形態に共通の各機能処理(S917)の手順を示すフローチャートである。なお、図15Dにおいて、図9Gと同様のステップには同じステップ番号を付して、重複する説明を省略する。
(Each function processing)
FIG. 15D is a flowchart illustrating a procedure of each function process (S917) common to the embodiment having Secure World. In FIG. 15D, steps similar to those in FIG. 9G are denoted by the same step numbers, and redundant description is omitted.
情報処理装置1200は、ステップS932で暗号化機能であると判定された場合、ステップS1501において、Secure Worldを有する場合の暗号化処理を実行する。なお、ステップS1501の処理は、図9Hの処理と暗号化ハードウェアや暗号化ソフトウェアがSecure Worldに有って、Porting Layer1227とPorting Layer1228との間のデータ転送1229が行なわれることが相違するのみで、他は同様であるので重複する説明は省略する。
If it is determined in step S932 that the
情報処理装置1200は、ステップS934でSST機能であると判定された場合、ステップS1503において、Secure Worldを有する場合のSST処理を実行する。なお、ステップS1503の処理は、図9Iの処理とSSTハードウェアやSSTソフトウェアがSecure Worldに有って、Porting Layer1227とPorting Layer1228との間のデータ転送1229が行なわれることが相違するのみで、他は同様であるので重複する説明は省略する。
If it is determined in step S934 that the
暗号化機能でのSST機能でもない場合、情報処理装置1200は、ステップS1505において、HDCP Sink処理であるか否かを判定する。HDCP Sink処理であれば、情報処理装置1200は、ステップS1507において、HDCP Sink処理を実行する。
If the SST function is not an encryption function, the
(HDCP Sink処理)
図15Eは、Secure Worldを有する実施形態に共通のHDCP Sink処理(S1533)の手順を示すフローチャートである。
(HDCP Sink processing)
FIG. 15E is a flowchart showing a procedure of HDCP sink processing (S1533) common to the embodiment having Secure World.
情報処理装置1200は、ステップS1511において、SST初期化済みか否かを判定する。SST初期化済みでなければ、情報処理装置1200はエラー処理を行なう。SST初期化済みであれば、情報処理装置1200は、ステップS1512において、HDCP Sink初期化処理であるか否かを判定する。HDCP Sink初期化処理であれば、情報処理装置1200は、ステップS1513において、HDCP Sinkの機能(feature)の起動とコンテキストの生成を行なう。次に、HDCPレシーバである本情報処理装置1200のデバイス鍵をSSTから取得する。そして、Secure WorldのSecure Data Part1226に接続してHDCP用領域を確保し、デバイス鍵を保持する。
In step S1511, the
HDCP Sink初期化処理でない場合、情報処理装置1200は、ステップS1516において、HDCP Sink認証処理であるか否かを判定する。HDCP Sink認証処理であれば、情報処理装置1200は、ステップS1517において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1518において、Secure Data Partを使用しながら、HDCPソースとの相互認証と鍵交換処理を実行する。なお、ステップS1518のHDCPソースとの相互認証と鍵交換処理は、HDCPの標準プロトコルに従う処理であり、詳細な説明は省略する。
If it is not the HDCP sink initialization process, the
HDCP Sink初期化処理でなくHDCP Sink認証処理でもない場合、情報処理装置1200は、ステップS1519において、HDCPソースからの暗号コンテンツの受信処理であるか否かを判定する。暗号コンテンツの受信処理であれば、情報処理装置1200は、ステップS1520において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1521において、HDCPソースからの暗号コンテンツを受信する。そして、情報処理装置1200は、ステップS1522において、受信した暗号コンテンツをAES方式で復号して、SSTに保存する。
If neither the HDCP sink initialization process nor the HDCP sink authentication process is performed, the
HDCP Sink初期化処理でなくHDCP Sink認証処理でも暗号化コンテンツの受信処理でもない場合、情報処理装置1200は、ステップS1523において、HDCP Sink終了処理であるか否かを判定する。HDCP Sink終了処理であれば、情報処理装置1200は、ステップS1524において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1525において、Secure Data Partの終了処理を行なう。そして、情報処理装置1200は、ステップS1526において、HDCPの機能の終了と、HDCPコンテキストの解放を行なう。
If the HDCP sink initialization process is not an HDCP sink authentication process or an encrypted content reception process, the
本実施形態によれば、ハードウェア的に分離されたノーマル実行環境である非機密部とセキュア実行環境である機密部とを通信アプリケーションに従って使い分けながら、複数の通信アプリケーションから共通のシーケンスに従って利用することができる。 According to the present embodiment, the non-confidential part, which is a normal execution environment separated from the hardware, and the secret part, which is a secure execution environment, are used according to a common sequence from a plurality of communication applications while being selectively used according to the communication application. Can do.
[第5実施形態]
次に、本発明の第5実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第4実施形態と比べると、通信アプリケーションとして「HDCP」以外のプロトコルにおいても、また、ハードウェアとして多種の方式が共通のシーケンスを用いる点で異なる。通信アプリケーションは、Miracast使用アプリケーション、HDCP使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションを含む。また、ハードウェアは、煩雑となるため図示しないが、例えば、SST(Secure Storage)、RSA、HASH、AES、M6を含む。なお、ECCやDH等の他の暗号アルゴリズムも含まれてよい。その他の構成および動作は、第2実施形態から第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fifth Embodiment]
Next, an information processing apparatus according to the fifth embodiment of the present invention will be described. Compared with the second to fourth embodiments, the information processing apparatus according to the present embodiment uses a sequence in which a variety of methods are used as a hardware in a protocol other than “HDCP” as a communication application. It is different in point. The communication application includes an application using Miracast, an application using HDCP, an application using DLNA (registered trademark), an application using DTCP-IP, and an application using DTCP-MOST. The hardware is not illustrated because it is complicated, but includes, for example, SST (Secure Storage), RSA, HASH, AES, and M6. Other cryptographic algorithms such as ECC and DH may also be included. Since other configurations and operations are the same as those in the second to fourth embodiments, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
《情報処理装置のソフトウェア階層》
図16Aは、図4Aを拡張した、本実施形態に係る情報処理装置のソフトウェア階層1610を示す図である。なお、図16Aにおいて、図4Aおよび図4Bと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。
<< Software hierarchy of information processing equipment >>
FIG. 16A is a diagram showing a
図16Aにおいて、本実施形態に係る暗号化/復号層のMiddleware201の構成は第2実施形態および第3実施形態と同様である。図16Aにおいては、Application401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。
In FIG. 16A, the configuration of the
図16Bは、図12を拡張した、本実施形態に係る情報処理装置の他のソフトウェア階層1620を示す図である。なお、図16Bにおいて、図4A、図12および図16Aと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。
FIG. 16B is a diagram showing another
図16Bは、本実施形態に係る暗号化/復号層のMiddleware1201の構成は第4実施形態と同様である。図16BにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。
In FIG. 16B, the configuration of the encryption /
図16Cは、図12を拡張し図16Bを変更した、本実施形態に係る他の情報処理装置のソフトウェア階層1630を示す図である。なお、図16Cにおいて、図4A、図12、図16Aおよび図16Bと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。
FIG. 16C is a diagram showing a
図16Cは、本実施形態に係る暗号化/復号層のMiddleware1201の構成は第4実施形態と同様である。図16Cにおいては、Linux(登録商標)のTEE(Trusted Execution Environment)を用いたNon Secure WorldとSecure Worldとのハードウェア的分離の構成を示している。TEEクライアントアプリケーションによるNon Secure OS Part1624と、TEEトラステッドアプリケーションによるSecure OS Part1625とは、ハードウェア的に分離されて外部から遮断され、Secure OS Part1625の機密が守られる。
In FIG. 16C, the configuration of the encryption /
Non Secure OS Part1624は、各Application401〜40nから直接、あるいは、各通信アプリケーションのSDK層410〜41mを介してインタフェースするPublic API1621と、ハードウェアとの接続を管理するPrivate Layer1622と、Secure OS Part1625とのハードウェア的に分離されたデータ転送を行なうためのPorting LayerのTEEクライアントAPI1627と、を有する。
The Non
一方、Secure OS Part1625は、Non Secure OS Part1624とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1628と、Secure OS Part1625内でハードウェアとの接続を管理するPrivate Layer1622と、Secure OS Part1625内でハードウェア層451および452を各々制御するPorting Layer1623と、Middleware's Secure Data Part1226と、を有する。
On the other hand, the
なお、TEEクライアントAPI1627とPorting Layer1628との間のデータ転送1629は、ファームウェア(Firmware)層1260まで戻ることによって、ハードウェア的に分離される。
The
図16CにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。
Also in FIG. 16C, as
図16Dは、図12を拡張し図16Bや図16Cを変更した、本実施形態に係る他の情報処理装置のソフトウェア階層1640を示す図である。なお、図16Dにおいて、図4A、図12、図16A〜図16Cと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。
FIG. 16D is a diagram showing a
図16Dは、Secure OS Partを有する構成の変形であり、暗号化/復号層のMiddleware1601のSecure Data Part1626を、SoCと共有メモリ(Shared Memory)1650で接続した専用ハードウェアのファームウェアとして実装した場合の構成になる。
FIG. 16D is a modification of the configuration having the Secure OS Part, in the case where the
Non Secure OS Part1624は、Secure OS Part1625とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1657を有する。一方、Secure OS Part1625は、Non Secure OS Part1624とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1658と、Secure OS Part1625内に、Middleware's Secure Data Part1626を有する。なお、Porting Layer1657とPorting Layer1658との間のデータ転送1651は、共有メモリ(Shared Memory)1650とCustom Hardware1652とのハードウェアまで戻ることによって、ハードウェア的に分離される。
The Non
図16DにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。
Also in FIG. 16D, as
本実施形態によれば、通信アプリケーションの相違、あるいは、準備されたハードウェアの相違を吸収して、複数の通信アプリケーションから共通のシーケンスに従って準備されたハードウェアを利用することができる。 According to the present embodiment, it is possible to absorb differences between communication applications or prepared hardware and use hardware prepared according to a common sequence from a plurality of communication applications.
[第6実施形態]
次に、本発明の第6実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第5実施形態と比べると、本実施形態のミドルウェアが、HDCPなどの通信アプリケーションの代行処理を含まず、ユーザアプリケーションがHDCPなどの通信アプリケーションを実行する中に依頼された機密関連処理を実行する構成である点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Sixth Embodiment]
Next, an information processing apparatus according to the sixth embodiment of the present invention will be described. In the information processing apparatus according to the present embodiment, the middleware of the present embodiment does not include proxy processing for communication applications such as HDCP and the user application is communication such as HDCP, as compared with the second to fifth embodiments. It is different in that it is a configuration that executes a security related process requested during execution of an application. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
《情報処理装置のソフトウェア階層》
図17Aは、本実施形態に係る情報処理装置のソフトウェア階層1710を示す図である。図17Aは、Secure Worldを有しない図4Aに対応する。なお、図17Aにおいて、図4Aと同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
<< Software hierarchy of information processing equipment >>
FIG. 17A is a diagram showing a
図17Aは、図4Aのミドルウェアの構成からHDCP Sinkの処理部分410を削除し、HDCP Sink処理をUser Application1712のHDCP application1712aで実行する場合の構成である。かかる構成の場合には、HDCP application1712aの実行中の暗号化処理やSecure Storage処理をミドルウェアに依頼して、本実施形態のMiddleware201に実行させることになる。
FIG. 17A shows a configuration when the HDCP
図17Bは、本実施形態に係る情報処理装置の他のソフトウェア階層1720を示す図である。図17Bは、Secure Worldを有する図12に対応する。なお、図17Bにおいて、図4Aおよび図12と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
FIG. 17B is a diagram showing another
図17Bは、図12のミドルウェアの構成からHDCP Sinkの処理部分1210を削除し、HDCP Sink処理をUser Application1712のHDCP application1712aで実行する場合の構成である。かかる構成の場合には、HDCP application1712aの実行中の暗号化処理やSecure Storage処理をミドルウェアに依頼して、本実施形態のMiddleware1201に実行させることになる。
FIG. 17B is a configuration when the HDCP
本実施形態によれば、ユーザのアプリケーションが通信アプリケーションのプロトコルを実行できる場合であっても、そのプロトコル中の機密関連処理の部分を、複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。 According to the present embodiment, even when the user application can execute the protocol of the communication application, the secret-related processing portion in the protocol is used from the applications that exchange data in accordance with a common sequence. Can do.
[第7実施形態]
次に、本発明の第7実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第6実施形態と比べると、データ交換を行なうアプリケーションとして、通信アプリケーション以外にも記憶媒体を経由するデータ交換においても、機密保護を実現するために共通のシーケンスを用いる点で異なる。記憶媒体には、DVDやメモリチップなどが含まれる。
[Seventh Embodiment]
Next, an information processing apparatus according to the seventh embodiment of the present invention will be described. Compared with the second to sixth embodiments, the information processing apparatus according to the present embodiment realizes security protection in data exchange via a storage medium as well as communication applications as data exchange applications. This is different in that a common sequence is used. The storage medium includes a DVD, a memory chip, and the like.
《記憶媒体経由の機密保護》
図18は、本実施形態に係る記憶媒体を経由してデータ交換を行なうシステム1800の機密保護機能を説明する図である。
<< Security via storage medium >>
FIG. 18 is a diagram for explaining the security protection function of the
システム1800には、記憶媒体1810を経由してデータ交換が可能な種々の機器が図示されている。かかる種々の機器に本実施形態のMiddleware201を組み込むことによって、記憶媒体1810を経由したデータ交換においても、ネットワークを介した通信によるデータ交換と同様に、所望の暗号化および復号を含む機能を共通のシーケンスに従って利用することができる。
The
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。 In addition, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.
Claims (13)
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションの少なくともいずれか1つと前記複数のハードウェアの少なくともいずれか1つとのデータ交換を制御する制御手段と、
を備える情報処理装置。 A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between at least one of the plurality of applications and at least one of the plurality of hardware via the first interface and the second interface;
An information processing apparatus comprising:
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第1初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第1終了処理手段と、
を有する請求項1に記載の情報処理装置。 The control means includes
First initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
First termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
The information processing apparatus according to claim 1.
前記アプリケーションから初期化指示を受けて、前記機密情報処理のライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第2初期化処理手段と、
前記アプリケーションから、前記機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第2終了処理手段と、
を有する請求項2に記載の情報処理装置。 The confidential information processing means includes
A second initialization processing unit that receives an initialization instruction from the application and initializes a software module group prepared as a library for the confidential information processing and hardware to be used;
A confidential information processing unit that receives the execution instruction of the confidential information processing from the application and executes the confidential information processing using the initialized software module group and hardware;
Second termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
The information processing apparatus according to claim 2.
前記制御手段は、前記機密部に秘匿性のより高い暗号化鍵、復号鍵およびセッション鍵を格納する格納手段を備える、請求項1乃至5のいずれか1項に記載の情報処理装置。 The information processing apparatus includes a non-confidential part that is a normal execution environment and a secret part that is a secure execution environment, separated by hardware,
The information processing apparatus according to claim 1, wherein the control unit includes a storage unit that stores an encryption key, a decryption key, and a session key with higher confidentiality in the confidential unit.
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
を含む情報処理方法。 A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing method for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
An information processing method including:
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理プログラムであって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
をコンピュータに実行させる情報処理プログラム。 A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing program for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
An information processing program that causes a computer to execute.
暗号化および復号に使用するハードウェアと、
前記アプリケーションからの指示を、前記アプリケーションのプロトコルに従って、初期化手段または機密情報処理手段または終了処理手段への指示に変換する指示変換手段と、
前記指示変換手段から初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および前記ハードウェアを初期化する前記初期化処理手段と、
前記指示変換手段から、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する前記機密情報処理手段と、
前記指示変換手段から処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする前記終了処理手段と、
を備える情報処理システム。 Application,
Hardware used for encryption and decryption;
An instruction conversion unit that converts an instruction from the application into an instruction to an initialization unit, a confidential information processing unit, or a termination processing unit according to the protocol of the application;
The initialization processing means for receiving the initialization instruction from the instruction converting means and initializing the software module group and the hardware prepared as a library;
The confidential information processing means that receives an instruction to execute confidential information processing including encryption and decryption from the instruction conversion means, and executes the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the instruction conversion unit, the termination processing unit that performs termination processing on the software module group and hardware that are initialized and used,
An information processing system comprising:
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理手段と、
を有するソフトウェアモジュール群を組み込んで、前記アプリケーションと前記ハードウェアとを結び付ける工程を含む、機能組込方法。 A method for incorporating a function into an information processing apparatus comprising an application and hardware used for encryption and decryption,
Initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
A termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
A function embedding method including the step of incorporating a software module group including: and linking the application and the hardware.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016234544A JP2018093352A (en) | 2016-12-01 | 2016-12-01 | Information processing system, function incorporation method, information processing unit, information processing method, and information processing program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016234544A JP2018093352A (en) | 2016-12-01 | 2016-12-01 | Information processing system, function incorporation method, information processing unit, information processing method, and information processing program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018093352A true JP2018093352A (en) | 2018-06-14 |
Family
ID=62566515
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016234544A Pending JP2018093352A (en) | 2016-12-01 | 2016-12-01 | Information processing system, function incorporation method, information processing unit, information processing method, and information processing program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018093352A (en) |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5614280A (en) * | 1979-07-17 | 1981-02-12 | Fujitsu Ltd | Coder |
| JP2002141897A (en) * | 2000-10-31 | 2002-05-17 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | Cryptographic circuit with tamper-resistant function |
| JP2003032240A (en) * | 2001-07-13 | 2003-01-31 | Sony Corp | Information processing system |
| JP2004362516A (en) * | 2003-05-30 | 2004-12-24 | Hagiwara Sys-Com:Kk | Usb encryption device and program |
| JP2005039351A (en) * | 2003-07-15 | 2005-02-10 | Ricoh Co Ltd | Image processing apparatus, transmission / reception data processing method, transmission / reception data processing program, and recording medium |
| JP2005301550A (en) * | 2004-04-09 | 2005-10-27 | Internatl Business Mach Corp <Ibm> | Device, program and method for measuring platform configuration, device, program and method for authenticating platform configuration, device, program and method for verifying platform configuration, and device, program and method for disclosing platform configuration |
| JP2007524293A (en) * | 2004-01-16 | 2007-08-23 | サムスン エレクトロニクス カンパニー リミテッド | Data retransmission apparatus and method |
| WO2008117554A1 (en) * | 2007-03-28 | 2008-10-02 | Nec Corporation | Time information distribution system, time distribution station, terminal, time information distribution method, and program |
| US20100031325A1 (en) * | 2006-12-22 | 2010-02-04 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
| JP2011086155A (en) * | 2009-10-16 | 2011-04-28 | Felica Networks Inc | Ic chip, information processing apparatus, and program |
| US20140095890A1 (en) * | 2012-10-02 | 2014-04-03 | Motorola Mobility Llc | Systems and methods for manipulating sensitive information in a secure mobile environment |
-
2016
- 2016-12-01 JP JP2016234544A patent/JP2018093352A/en active Pending
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5614280A (en) * | 1979-07-17 | 1981-02-12 | Fujitsu Ltd | Coder |
| JP2002141897A (en) * | 2000-10-31 | 2002-05-17 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | Cryptographic circuit with tamper-resistant function |
| JP2003032240A (en) * | 2001-07-13 | 2003-01-31 | Sony Corp | Information processing system |
| JP2004362516A (en) * | 2003-05-30 | 2004-12-24 | Hagiwara Sys-Com:Kk | Usb encryption device and program |
| JP2005039351A (en) * | 2003-07-15 | 2005-02-10 | Ricoh Co Ltd | Image processing apparatus, transmission / reception data processing method, transmission / reception data processing program, and recording medium |
| JP2007524293A (en) * | 2004-01-16 | 2007-08-23 | サムスン エレクトロニクス カンパニー リミテッド | Data retransmission apparatus and method |
| JP2005301550A (en) * | 2004-04-09 | 2005-10-27 | Internatl Business Mach Corp <Ibm> | Device, program and method for measuring platform configuration, device, program and method for authenticating platform configuration, device, program and method for verifying platform configuration, and device, program and method for disclosing platform configuration |
| US20100031325A1 (en) * | 2006-12-22 | 2010-02-04 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
| WO2008117554A1 (en) * | 2007-03-28 | 2008-10-02 | Nec Corporation | Time information distribution system, time distribution station, terminal, time information distribution method, and program |
| JP2011086155A (en) * | 2009-10-16 | 2011-04-28 | Felica Networks Inc | Ic chip, information processing apparatus, and program |
| US20140095890A1 (en) * | 2012-10-02 | 2014-04-03 | Motorola Mobility Llc | Systems and methods for manipulating sensitive information in a secure mobile environment |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102946440B (en) | Automatic cloud synchronization and recovery system based on cloud storage technology | |
| JP5570664B2 (en) | Clipboard protection system in DRM environment and program for causing computer to execute the method | |
| US9189060B2 (en) | Method of controlling information processing apparatus and information processing apparatus | |
| US20140096145A1 (en) | Hardware message queues for intra-cluster communication | |
| CN103294961A (en) | Method and device for file encrypting/decrypting | |
| TW201734875A (en) | Computing device and data processing method | |
| US11201729B2 (en) | Devices and methods for enabling portable secure communication using random cipher pad cryptography by enabling communications to be passed to the device from a host, encrypted and/or decrypted, and passed back to the host | |
| EP2869232A1 (en) | Security key device for secure cloud services, and system and method of providing security cloud services | |
| CN104378649A (en) | Method and system for encrypting video streams in real time through SM1 cryptographic algorithm | |
| CN104967591A (en) | Cloud storage data read-write method and device, and read-write control method and device | |
| CN111611606B (en) | File encryption and decryption method and device | |
| WO2014078104A1 (en) | Method and system for secure access to data files copied onto a second storage device from a first storage device | |
| CN113449347B (en) | Microprocessor, data processing method, electronic device and storage medium | |
| US9282083B2 (en) | Encryption system and method | |
| JP2016046799A (en) | Agent for providing security cloud service, security key device for security cloud service | |
| CN107425959A (en) | A kind of method for realizing encryption, system, client and service end | |
| US20130297718A1 (en) | Server device, client device, data sharing system and method for sharing data between client device and server device thereof | |
| CN105743935A (en) | Resource sharing apparatus and resource sharing method | |
| KR20240117407A (en) | Apparatus and method for providing quantum security communication for smart devices | |
| CN103077018A (en) | Control method and system for device interface based on Android system | |
| JP2018093352A (en) | Information processing system, function incorporation method, information processing unit, information processing method, and information processing program | |
| US9571272B2 (en) | Image forming apparatus, information processing method, and control method | |
| CN103218580B (en) | A kind of USB xegregating unit and partition method thereof | |
| JP2010087610A (en) | Data transmitting device, data receiving device, data transmitting and receiving system, data transmitting and receiving method, and data transmitting and receiving program | |
| CN113449331A (en) | Microprocessor, data processing method, electronic device, and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180219 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180219 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180227 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180510 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180705 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181004 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181128 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190228 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190507 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190806 |