JP2022107344A - Device, debugging instrument, secure component, debugging system, and debugging method - Google Patents

Device, debugging instrument, secure component, debugging system, and debugging method Download PDF

Info

Publication number
JP2022107344A
JP2022107344A JP2021002228A JP2021002228A JP2022107344A JP 2022107344 A JP2022107344 A JP 2022107344A JP 2021002228 A JP2021002228 A JP 2021002228A JP 2021002228 A JP2021002228 A JP 2021002228A JP 2022107344 A JP2022107344 A JP 2022107344A
Authority
JP
Japan
Prior art keywords
debug
secure component
authentication
unit
probe
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
Application number
JP2021002228A
Other languages
Japanese (ja)
Inventor
正徳 浅野
Masanori Asano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2021002228A priority Critical patent/JP2022107344A/en
Publication of JP2022107344A publication Critical patent/JP2022107344A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a device, debugging instrument, secure component, debugging system and debugging method, which minimize the chances of a third party maliciously using debugging functions.SOLUTION: A device provided herein has a debugging target and comprises a device-side secure component with an authentication unit configured to perform mutual authentication with an instrument-side secure component of a debugging instrument for debugging the debugging target. Upon successful mutual authentication by the authentication unit, the device-side secure component exchanges debugging signals with the instrument-side secure component.SELECTED DRAWING: Figure 1

Description

本発明は、デバイス、デバッグ機器、セキュアコンポーネント、デバッグシステム及びデバッグ方法に関する。 The present invention relates to devices, debugging equipment, secure components, debugging systems and debugging methods.

近年、組み込みデバイス開発におけるデバッグはリモートデバッグが主流になりつつある。リモートデバッグは、例えば、デバッグ対象デバイスの内部にデバッグ機能の専用回路を搭載し、デバッグプローブを介して外部の開発用PCとデバッグ信号のやり取りをする。 In recent years, remote debugging has become the mainstream of debugging in embedded device development. In remote debugging, for example, a dedicated circuit for a debugging function is mounted inside a device to be debugged, and debug signals are exchanged with an external development PC via a debug probe.

また、特許文献1には、組み込みデバイスが組み込まれ、デバッグ対象のプロセスが起動されるターゲットマシンと、開発者がデバッグ操作に利用するホストマシンとが、ネットワーク又はシリアルケーブル等の通信回線を介して接続され、リモートデバッグを実現するデバッグ支援装置が開示されている。 Further, in Patent Document 1, an embedded device is incorporated and a target machine on which a process to be debugged is started and a host machine used by a developer for debugging operations are connected via a communication line such as a network or a serial cable. A debug support device that is connected and realizes remote debugging is disclosed.

特開2012-79130号公報Japanese Unexamined Patent Publication No. 2012-79130

組み込みデバイスのリモートデバッグでは、依然として、不特定多数の開発用PCから平文のデバッグ信号の授受が可能であるのが実態である。このため、第三者から容易にデバッグ信号を組み込みデバイスに送ることができ、組み込みデバイスの不正な遠隔操作は勿論、解析によって組み込みデバイス内のソフトウェアを不正に読み出し、あるいは改ざんが行われるおそれがある。 In remote debugging of embedded devices, it is still possible to send and receive plaintext debug signals from an unspecified number of development PCs. Therefore, a debug signal can be easily sent to the embedded device from a third party, and there is a risk that the software in the embedded device may be illegally read or tampered with by analysis as well as unauthorized remote control of the embedded device. ..

また、組み込みデバイスの場合、デバッグ機能が内部に搭載されているため、デバッグ機能の無効化やデバッグ専用PINを物理的又は論理的に潰さない限り、出荷後もデバッグ機能を悪用した攻撃に晒される可能性がある。一方で、組み込みデバイスは、一般的にUI(ユーザ・インタフェース)が乏しいため、動作検証や故障解析の際のデバッグ機能の有用性は高いが、デバッグ機能の無効化等が十分になされておらず、セキュリティ脆弱性となっている場合も多い。 In addition, embedded devices have a built-in debug function, so unless the debug function is disabled or the debug PIN is physically or logically crushed, the device will be exposed to attacks that abuse the debug function even after shipment. there is a possibility. On the other hand, embedded devices generally lack a UI (user interface), so the debug function is highly useful for operation verification and failure analysis, but the debug function is not sufficiently disabled. , It is often a security vulnerability.

本発明は、斯かる事情に鑑みてなされたものであり、第三者によるデバッグ機能の悪用可能性を最小限化することができるデバイス、デバッグ機器、セキュアコンポーネント、デバッグシステム及びデバッグ方法を提供することを目的とする。 The present invention has been made in view of such circumstances, and provides a device, a debugging device, a secure component, a debugging system, and a debugging method capable of minimizing the possibility of misuse of the debugging function by a third party. The purpose is.

本発明の実施の形態に係るデバイスは、デバッグ対象を有するデバイスであって、前記デバッグ対象をデバッグするためのデバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行う認証部を有するデバイス側セキュアコンポーネントを備え、前記デバイス側セキュアコンポーネントは、前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 The device according to the embodiment of the present invention is a device having a debug target, and is a device-side secure having an authentication unit that performs mutual authentication with a device-side secure component provided in the debug device for debugging the debug target. The device-side secure component includes a component, and when mutual authentication is successful in the authentication unit, the device-side secure component sends and receives a debug signal to and from the device-side secure component.

本発明の実施の形態に係るデバッグ機器は、デバッグ対象をデバッグするためのデバッグ機器であって、前記デバッグ対象を有するデバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う認証部を有する機器側セキュアコンポーネントを備え、前記機器側セキュアコンポーネントは、前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 The debug device according to the embodiment of the present invention is a debug device for debugging a debug target, and is a device side having an authentication unit that performs mutual authentication with a device-side secure component provided in the device having the debug target. The device-side secure component includes a secure component, and when the mutual authentication is successful in the authentication unit, the device-side secure component sends and receives a debug signal to and from the device-side secure component.

本発明の実施の形態に係るセキュアコンポーネントは、デバッグ対象を有するデバイスに搭載されるセキュアコンポーネントであって、前記デバッグ対象をデバッグするためのデバッグ機器に備えられた機器側のセキュアコンポーネントと相互認証を行う認証部を備え、前記認証部で相互認証が成功した場合、前記機器側のセキュアコンポーネントとの間でデバッグ信号の授受を行う。 The secure component according to the embodiment of the present invention is a secure component mounted on a device having a debug target, and mutually authenticates with the secure component on the device side provided in the debug device for debugging the debug target. It is provided with an authentication unit to perform, and when mutual authentication is successful in the authentication unit, a debug signal is exchanged with the secure component on the device side.

本発明の実施の形態に係るセキュアコンポーネントは、デバッグ対象をデバッグするためのデバッグ機器に搭載されるセキュアコンポーネントであって、前記デバッグ対象を有するデバイスに備えられたデバイス側のセキュアコンポーネントと相互認証を行う認証部を備え、前記認証部で相互認証が成功した場合、前記デバイス側のセキュアコンポーネントとの間でデバッグ信号の授受を行う。 The secure component according to the embodiment of the present invention is a secure component mounted on a debugging device for debugging a debug target, and mutually authenticates with the device-side secure component provided in the device having the debug target. It is provided with an authentication unit to perform, and when mutual authentication is successful in the authentication unit, a debug signal is exchanged with the secure component on the device side.

本発明の実施の形態に係るデバッグシステムは、デバッグ対象を有するデバイスと、デバッグ対象をデバッグするためのデバッグ機器とを備えるデバッグシステムであって、前記デバイスは、前記デバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行うデバイス側認証部を有するデバイス側セキュアコンポーネントを備え、前記デバッグ機器は、前記デバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う機器側認証部を有する機器側セキュアコンポーネントを備え、前記デバイス側認証部及び機器側認証部それぞれで相互認証が成功した場合、前記デバイス側セキュアコンポーネントと前記機器側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 The debug system according to the embodiment of the present invention is a debug system including a device having a debug target and a debug device for debugging the debug target, and the device is a device side provided in the debug device. The debug device is provided with a device-side secure component having a device-side authentication unit that performs mutual authentication with the secure component, and the debug device is a device-side secure component having a device-side authentication unit that performs mutual authentication with the device-side secure component provided in the device. When mutual authentication is successful in each of the device-side authentication unit and the device-side authentication unit, a debug signal is exchanged between the device-side secure component and the device-side secure component.

本発明の実施の形態に係るデバッグ方法は、デバッグ対象を有するデバイスに搭載されたデバイス側セキュアコンポーネントは、前記デバッグ対象をデバッグするためのデバッグ機器に搭載された機器側セキュアコンポーネントと相互認証を行い、前記機器側セキュアコンポーネントは、前記デバイス側セキュアコンポーネントと相互認証を行い、前記相互認証それぞれが成功した場合、前記デバイス側セキュアコンポーネントと前記機器側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 In the debugging method according to the embodiment of the present invention, the device-side secure component mounted on the device having the debug target performs mutual authentication with the device-side secure component mounted on the debug device for debugging the debug target. The device-side secure component performs mutual authentication with the device-side secure component, and if each of the mutual authentications is successful, a debug signal is exchanged between the device-side secure component and the device-side secure component.

本発明によれば、第三者によるデバッグ機能の悪用可能性を最小限化することができる。 According to the present invention, the possibility of misuse of the debugging function by a third party can be minimized.

第1実施形態のデバッグシステムの構成の一例を示す模式図である。It is a schematic diagram which shows an example of the structure of the debug system of 1st Embodiment. デバッグ開始指示の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow of a debug start instruction. セキュアコンポーネントとデバッグ対象CPU/SoCとの間の暗号通信路確立の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the cryptographic communication path establishment between a secure component and a CPU / SoC to be debugged. セキュアコンポーネント間の相互認証の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of mutual authentication between secure components. プローブとデバイス間の平文通信の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the plaintext communication between a probe and a device. プローブとデバイス間の暗号通信の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the encrypted communication between a probe and a device. プローブの利用者認証の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow of user authentication of a probe. デバイスの利用者認証の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow of user authentication of a device. 秘匿通信路経由のプローブ側のデバッグ機能操作の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the debug function operation on the probe side via a secret communication path. 秘匿通信路経由のデバイス側のデバッグ機能操作の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the debug function operation on the device side via a secret communication path. 第2実施形態のデバッグシステムの構成の一例を示す模式図である。It is a schematic diagram which shows an example of the structure of the debug system of 2nd Embodiment. 第3実施形態のデバッグシステムの構成の一例を示す模式図である。It is a schematic diagram which shows an example of the structure of the debug system of 3rd Embodiment. 第3実施形態の場合のプローブとデバイス間の暗号通信の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the encrypted communication between a probe and a device in the case of 3rd Embodiment. 第4実施形態の場合のセキュアコンポーネント間の相互認証の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of mutual authentication between secure components in the case of 4th Embodiment. 第4実施形態のプローブとデバッグ対象CPU/SoCとの間の暗号通信の処理フローの一例を示す模式図である。It is a schematic diagram which shows an example of the processing flow of the encrypted communication between the probe of 4th Embodiment and the CPU / SoC to be debugged.

(第1実施形態)
以下、本発明をその実施の形態を示す図面に基づいて説明する。図1は第1実施形態のデバッグシステムの構成の一例を示す模式図である。デバッグシステムは、デバッグ対象を有するデバイス50、デバッグ機器としてのプローブ30を備える。デバッグシステムは、さらに、組み込み開発用PC20、デバッグ環境管理サーバ10を備えてもよい。
(First Embodiment)
Hereinafter, the present invention will be described with reference to the drawings showing the embodiments thereof. FIG. 1 is a schematic diagram showing an example of the configuration of the debug system of the first embodiment. The debug system includes a device 50 having a debug target and a probe 30 as a debug device. The debug system may further include an embedded development PC 20 and a debug environment management server 10.

デバイス50は、組み込み開発の対象となるデバイスである。デバイス50は、デバッグ対象CPU/SoC60、デバッグI/F51、及びセキュアコンポーネント70を備える。デバッグI/F51は、プローブ30に接側するためのインタフェースであり、例えば、JTAG(Joint Test Action Group)/SWD(Serial Wire Debug)等のインタフェースを使用することができる。 The device 50 is a device that is a target of embedded development. The device 50 includes a CPU / SoC60 to be debugged, a debug I / F51, and a secure component 70. The debug I / F 51 is an interface for contacting the probe 30, and for example, an interface such as JTAG (Joint Test Action Group) / SWD (Serial Wire Debug) can be used.

デバッグ対象CPU/SoC60は、デバイス50上でデバッグ対象プログラム61(「デバッグ対象」とも称する)を動かすCPU又はSoC(System on chip)である。デバッグ対象プログラム61は、デバッグ対象CPU/SoC60上で動作しているプログラムである。デバッグ対象CPU/SoC60は、上述のデバッグ対象プログラム61の他に、CPU/SoC内デバッグ機能62を備える。 The debug target CPU / SoC 60 is a CPU or SoC (System on chip) that runs a debug target program 61 (also referred to as a “debug target”) on the device 50. The debug target program 61 is a program running on the debug target CPU / SoC60. The debug target CPU / SoC 60 includes a debug function 62 in the CPU / SoC in addition to the above-mentioned debug target program 61.

CPU/SoC内デバッグ機能62は、デバッグ対象CPU/SoC内部に実装されているデバッガであり、デバッグ対象プログラム61の状態の取得、ブレークポイントによる停止等の動作制御を行う。CPU/SoC内デバッグ機能62は、暗号化機能63及び鍵共有機能64を備える。 The debug function 62 in the CPU / SoC is a debugger implemented inside the debug target CPU / SoC, and controls operations such as acquiring the state of the debug target program 61 and stopping at a breakpoint. The CPU / SoC debug function 62 includes an encryption function 63 and a key sharing function 64.

暗号化機能63は、暗号化された操作指示(デバッグ信号)の復号、指示結果(デバッグ信号)の暗号化などを行う機能である。本明細書において、デバッグ信号は、デバッグに関連する信号であり、プローブ30とデバイス50との間で授受される信号である。 The encryption function 63 is a function for decrypting an encrypted operation instruction (debug signal), encrypting an instruction result (debug signal), and the like. In the present specification, the debug signal is a signal related to debugging, and is a signal transmitted and received between the probe 30 and the device 50.

鍵共有機能64は、セキュアコンポーネント70と鍵共有を行うための機能である。また、CPU/SoC内デバッグ機能62は、機能実現のために、CA公開鍵と証明書などを保持する。CA公開鍵と証明書は、公開鍵証明書を作成したCA(Certificate Authority)の公開鍵と証明書であり、デバイス側公開鍵の正当性を証明するために用いる。本実施例では、セキュアコンポーネント70の製造元の公開鍵と、当該製造元を証明する証明書とする。 The key sharing function 64 is a function for sharing a key with the secure component 70. Further, the debug function 62 in the CPU / SoC holds a CA public key, a certificate, and the like in order to realize the function. The CA public key and certificate are the public key and certificate of the CA (Certificate Authority) that created the public key certificate, and are used to prove the validity of the device-side public key. In this embodiment, the public key of the manufacturer of the secure component 70 and the certificate certifying the manufacturer are used.

セキュアコンポーネント70は、ハードウェア又はソフトウェア耐タンパ性を有し、秘密鍵等の秘匿情報を保護するためのコンポーネントである。セキュアコンポーネント70は、ハードウェア実装(例えば、セキュアエレメント、TPM(Trusted Platform Module)等)、又はソフトウェア実装(トラステッド実行環境等)のいずれで実装されていてもよい。セキュアコンポーネント70は、暗号化機能71、相互認証機能72、利用者認証機能73、秘匿通信機能74、認証許可リスト75などを備える。 The secure component 70 has hardware or software tamper resistance, and is a component for protecting confidential information such as a private key. The secure component 70 may be implemented by either a hardware implementation (for example, a secure element, a TPM (Trusted Platform Module), etc.) or a software implementation (trusted execution environment, etc.). The secure component 70 includes an encryption function 71, a mutual authentication function 72, a user authentication function 73, a secret communication function 74, an authentication permission list 75, and the like.

暗号化機能71は、プローブ30内のセキュアコンポーネント40との暗号化通信を行うための機能である。相互認証機能72は、プローブ30内のセキュアコンポーネント40と相互認証を行うための機能である。利用者認証機能73は、PIN等により利用者の個人認証を行うための機能である。秘匿通信機能74は、デバッグ環境管理サーバ10と秘匿通信路を開設するための機能である。認証許可リスト75は、セキュアコンポーネント70が相互認証を許可する対象の個体IDをリスト化したものである。セキュアコンポーネント70は、相互認証を行う際、認証相手のセキュアコンポーネントが認証許可リスト75に登録されている場合のみ認証を許可する。 The encryption function 71 is a function for performing encrypted communication with the secure component 40 in the probe 30. The mutual authentication function 72 is a function for performing mutual authentication with the secure component 40 in the probe 30. The user authentication function 73 is a function for personally authenticating a user by a PIN or the like. The secret communication function 74 is a function for opening a secret communication path with the debug environment management server 10. The authentication permission list 75 is a list of individual IDs to which the secure component 70 permits mutual authentication. When performing mutual authentication, the secure component 70 permits authentication only when the secure component of the authentication partner is registered in the authentication authorization list 75.

セキュアコンポーネント70は、機能実現のために、デバイス側秘密鍵、デバイス側公開鍵と証明書、CA公開鍵と証明書、個人認証情報、秘匿通信路鍵、セッション鍵などの秘匿情報を保持する。デバイス側秘密鍵は、相互認証機能72で使用する秘密鍵である。デバイス側公開鍵と証明書は、相互認証機能72で使用する公開鍵と、セキュアコンポーネント70の個体ID及びデバイス側公開鍵の証明書である。本実施例では、セキュアコンポーネントの製造元をCAとする証明書である。CA公開鍵と証明書は、プローブ側公開鍵証明書を作成したCAの公開鍵と証明書であり、プローブ側公開鍵の正当性を証明するために用いる。個人認証情報は、利用者認証機能73で用いられ、利用者の正当性を確認するための情報であり、例えば、PINを用いることができる。秘匿通信路鍵は、秘匿通信機能74で利用され、デバッグ環境管理サーバ10と秘匿通信を行うための鍵である。図示していないが、セッション鍵は、プローブ30内のセキュアコンポーネント40との暗号化通信を行う際に一時的に生成される鍵である。 The secure component 70 holds secret information such as a device-side private key, a device-side public key and certificate, a CA public key and certificate, personal authentication information, a secret communication channel key, and a session key in order to realize the function. The device-side private key is a private key used in the mutual authentication function 72. The device-side public key and certificate are a certificate of the public key used in the mutual authentication function 72, the individual ID of the secure component 70, and the device-side public key. In this embodiment, it is a certificate in which the manufacturer of the secure component is CA. The CA public key and certificate are the CA public key and certificate that created the probe side public key certificate, and are used to prove the validity of the probe side public key. The personal authentication information is used in the user authentication function 73 and is information for confirming the legitimacy of the user. For example, a PIN can be used. The secret communication path key is used by the secret communication function 74 and is a key for performing secret communication with the debug environment management server 10. Although not shown, the session key is a key that is temporarily generated when performing encrypted communication with the secure component 40 in the probe 30.

プローブ30は、組み込み機器開発PC20によるデバッグを行うため、デバイス50に接続してデバッグ信号を授受するための機器である。プローブ30は、PC側デバッガI/F31、デバッグI/F32、セキュアコンポーネント40を備える。 The probe 30 is a device for connecting to the device 50 to send and receive debug signals in order to perform debugging by the embedded device development PC 20. The probe 30 includes a PC-side debugger I / F31, a debug I / F32, and a secure component 40.

PC側デバッガI/F31は、組み込み機器開発PC20に接続するためのインタフェースであり、例えば、USB等を用いることができる。デバッグI/F32は、デバイス50に接続するためのインタフェースであり、例えば、JTAG(Joint Test Action Group)/SWD(Serial Wire Debug)等のインタフェースを使用することができる。 The PC-side debugger I / F31 is an interface for connecting to the embedded device development PC 20, and for example, USB or the like can be used. The debug I / F 32 is an interface for connecting to the device 50, and for example, an interface such as JTAG (Joint Test Action Group) / SWD (Serial Wire Debug) can be used.

セキュアコンポーネント40は、ハードウェア又はソフトウェア耐タンパ性を有し、秘密鍵等の秘匿情報を保護するためのコンポーネントである。セキュアコンポーネント40は、ハードウェア実装(例えば、セキュアエレメント、TPM(Trusted Platform Module)等)、又はソフトウェア実装(トラステッド実行環境等)のいずれで実装されていてもよい。セキュアコンポーネント40は、セキュアコンポーネント70と同様の構成を有し、暗号化機能43、相互認証機能44、利用者認証機能42、秘匿通信機能41、認証許可リスト45などを備える。 The secure component 40 has hardware or software tamper resistance, and is a component for protecting confidential information such as a private key. The secure component 40 may be implemented by either a hardware implementation (for example, a secure element, a TPM (Trusted Platform Module), etc.) or a software implementation (trusted execution environment, etc.). The secure component 40 has the same configuration as the secure component 70, and includes an encryption function 43, a mutual authentication function 44, a user authentication function 42, a secret communication function 41, an authentication permission list 45, and the like.

暗号化機能43は、デバイス50内のセキュアコンポーネント70との暗号化通信を行うための機能である。相互認証機能44は、デバイス50内のセキュアコンポーネント70と相互認証を行うための機能である。利用者認証機能42は、PIN等により利用者の個人認証を行うための機能である。秘匿通信機能41は、デバッグ環境管理サーバ10と秘匿通信路を開設するための機能である。認証許可リスト45は、セキュアコンポーネント40が相互認証を許可する対象の個体IDをリスト化したものである。セキュアコンポーネント40は、相互認証を行う際、認証相手のセキュアコンポーネントが認証許可リスト45に登録されている場合のみ認証を許可する。 The encryption function 43 is a function for performing encrypted communication with the secure component 70 in the device 50. The mutual authentication function 44 is a function for performing mutual authentication with the secure component 70 in the device 50. The user authentication function 42 is a function for personally authenticating a user by a PIN or the like. The secret communication function 41 is a function for opening a secret communication path with the debug environment management server 10. The authentication permission list 45 is a list of individual IDs to which the secure component 40 permits mutual authentication. When performing mutual authentication, the secure component 40 permits authentication only when the secure component of the authentication partner is registered in the authentication permission list 45.

セキュアコンポーネント40は、機能実現のために、プローブ側秘密鍵、プローブ側公開鍵と証明書、CA公開鍵と証明書、個人認証情報、秘匿通信路鍵、セッション鍵などの秘匿情報を保持する。プローブ側秘密鍵は、相互認証機能44で使用する秘密鍵である。プローブ側公開鍵と証明書は、相互認証機能44で使用する公開鍵と、セキュアコンポーネント40の個体ID及びプローブ側公開鍵の証明書である。本実施例では、セキュアコンポーネントの製造元をCAとする証明書である。CA公開鍵と証明書は、デバイス側公開鍵証明書を作成したCAの公開鍵と証明書であり、デバイス側公開鍵の正当性を証明するために用いる。個人認証情報は、利用者認証機能42で用いられ、利用者の正当性を確認するための情報であり、例えば、PINを用いることができる。秘匿通信路鍵は、秘匿通信機能41で利用され、デバッグ環境管理サーバ10と秘匿通信を行うための鍵である。図示していないが、セッション鍵は、デバイス50内のセキュアコンポーネント70との暗号化通信を行う際に一時的に生成される鍵である。 The secure component 40 holds secret information such as a probe-side private key, a probe-side public key and certificate, a CA public key and certificate, personal authentication information, a secret channel key, and a session key in order to realize the function. The probe-side private key is a private key used in the mutual authentication function 44. The probe-side public key and certificate are a certificate of the public key used in the mutual authentication function 44, the individual ID of the secure component 40, and the probe-side public key. In this embodiment, it is a certificate in which the manufacturer of the secure component is CA. The CA public key and certificate are the CA public key and certificate that created the device-side public key certificate, and are used to prove the validity of the device-side public key. The personal authentication information is used in the user authentication function 42 and is information for confirming the legitimacy of the user. For example, a PIN can be used. The secret communication path key is used by the secret communication function 41 and is a key for performing secret communication with the debug environment management server 10. Although not shown, the session key is a key that is temporarily generated when performing encrypted communication with the secure component 70 in the device 50.

組み込み機器開発PC20は、組み込み開発上の各種作業(例えば、コーディング、テスト、デバッグ等)を行うため、プログラマ等が使用するPC(パーソナルコンピュータ)である。組み込み機器開発PC20は、IDE(Integrated Development Environment
)、CLI(Command Line Interface)等のデバッグ操作環境21、PC側デバッガ22、プローブ30とのインタフェース機能を有するデバッグプローブI/F23を備える。
The embedded device development PC 20 is a PC (personal computer) used by a programmer or the like to perform various operations (for example, coding, testing, debugging, etc.) in embedded development. The embedded device development PC20 is an IDE (Integrated Development Environment).
), A debug operation environment 21 such as CLI (Command Line Interface), a PC-side debugger 22, and a debug probe I / F23 having an interface function with the probe 30.

デバッグ環境管理サーバ10は、秘匿通信機能11を備え、セキュアコンポーネント40、70が保持する秘匿情報を管理する。 The debug environment management server 10 includes a secret communication function 11 and manages secret information held by the secure components 40 and 70.

次に、本実施の形態のデバッグシステムの処理について説明する。 Next, the processing of the debug system of the present embodiment will be described.

図2はデバッグ開始指示の処理フローの一例を示す模式図である。デバッグ開始タイミングは、適宜設定できるが、例えば、プログラマがデバッグ開始をツールに伝達することによりデバッグ機能を有効にしてデバッグを行うことができる。以下、図中の各処理を#1~#4として説明する。 FIG. 2 is a schematic diagram showing an example of the processing flow of the debug start instruction. The debug start timing can be set as appropriate, but for example, the programmer can enable the debug function and perform debugging by transmitting the debug start to the tool. Hereinafter, each process in the figure will be described as # 1 to # 4.

#1(プログラマによるデバッグ開始指示):プログラマは、組み込み機器開発PC20で動作するデバッグ操作環境21に対して、デバッグ開始を指示する。 # 1 (Instruction to start debugging by the programmer): The programmer instructs the debug operation environment 21 operating on the embedded device development PC 20 to start debugging.

#2(プローブへのデバッグ開始指示送信):デバッグ操作環境21は、プローブ30に対してデバッグ開始指示を送信する。 # 2 (Send debug start instruction to probe): The debug operation environment 21 transmits a debug start instruction to the probe 30.

#3(デバイスへのデバッグ開始指示送信):プローブ30は、デバイス50に対し、デバッグI/F32を介してデバッグ開始指示を送信する。 # 3 (Send debug start instruction to device): The probe 30 transmits a debug start instruction to the device 50 via the debug I / F32.

#4(デバッグ対象CPU/SoCへのデバッグ開始指示送信):デバイス50は、受信したデバッグ開始指示をデバッグ対象CPU/SoC60に送信する。 # 4 (Send debug start instruction to debug target CPU / SoC): The device 50 transmits the received debug start instruction to the debug target CPU / SoC 60.

デバイス側のセキュアコンポーネント70とデバッグ対象CPU/SoC60とが同一基板上での別々の半導体チップとして実装されている場合、悪意のある攻撃者は、チップ間配線に干渉(例えば、配線プロービングや切断等)することで、両チップ間の信号を傍受し、あるいはセキュアコンポーネントをバイパスしたデバッグの実施が可能になる場合がある。本実施例では、以下に示すように、プローブ30によるデバッグの開始に先立って、デバイス側のセキュアコンポーネント70とデバッグ対象CPU/SoC60との間で暗号化された通信路を確立する。 When the secure component 70 on the device side and the CPU / SoC60 to be debugged are mounted as separate semiconductor chips on the same board, a malicious attacker interferes with the inter-chip wiring (for example, wiring probing, disconnection, etc.). ), It may be possible to intercept the signal between both chips or perform debugging by bypassing the secure component. In this embodiment, as shown below, an encrypted communication path is established between the secure component 70 on the device side and the CPU / SoC60 to be debugged prior to the start of debugging by the probe 30.

図3はセキュアコンポーネント70とデバッグ対象CPU/SoC60との間の暗号通信路確立の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#6として説明する。 FIG. 3 is a schematic diagram showing an example of a processing flow for establishing an encrypted communication path between the secure component 70 and the CPU / SoC60 to be debugged. Hereinafter, each process in the figure will be described as # 1 to # 6.

#1(デバッグ対象CPU/SoCによる鍵共有手順開始):デバッグ対象CPU/SoC60はセキュアコンポーネント70に対する認証要求を行う。 # 1 (Start of key sharing procedure by debug target CPU / SoC): The debug target CPU / SoC 60 makes an authentication request to the secure component 70.

#2(公開鍵及び証明書の出力):セキュアコンポーネント70は、デバッグ対象CPU/SoC60に対して、自身が保持するデバイス側公開鍵と証明書を送信する。 # 2 (output of public key and certificate): The secure component 70 transmits the device-side public key and certificate held by itself to the CPU / SoC60 to be debugged.

#3(公開鍵、証明書の検証):デバッグ対象CPU/SoC60は、受信したデバイス側公開鍵と証明書に対して検証を行う。具体的には、デバッグ対象CPU/SoC60は、自身が保持するCA公開鍵を用いて、デバイス側証明書内の公開鍵署名を検証する。ここで検証に失敗した場合、不正なデバイス側公開鍵及び証明書とみなして処理を終了する。検証に成功した場合、デバイス側公開鍵及び証明書を送信したセキュアコンポーネント70は、信頼できるものとして処理を進める。 # 3 (Verification of public key and certificate): The debuggee CPU / SoC60 verifies the received device-side public key and certificate. Specifically, the debug target CPU / SoC60 verifies the public key signature in the device-side certificate by using the CA public key held by itself. If the verification fails here, it is regarded as an invalid device-side public key and certificate, and the process ends. If the verification is successful, the secure component 70 that has sent the device-side public key and certificate proceeds with the process as being reliable.

#4(乱数の生成と返送):デバッグ対象CPU/SoC60は、自ら(又は乱数生成器等を用いて)乱数を生成し、生成した暗号化乱数をセキュアコンポーネント70の公開鍵で暗号化してセキュアコンポーネント70に返送する。 # 4 (Random number generation and return): The debuggee CPU / SoC60 generates a random number by itself (or using a random number generator or the like), and encrypts the generated encrypted random number with the public key of the secure component 70 to secure it. Return to component 70.

#5(セキュアコンポーネント側セッション鍵の生成):セキュアコンポーネント70は、受信した暗号化乱数を自身の秘密鍵で復号し、復号して得られた乱数からCPU/SoCセッション鍵を生成する。セキュアコンポーネント70は、暗号化乱数の復号、CPU/SoCセッション鍵の生成が正常に終了したことをデバッグ対象CPU/SoC60に通知する。 # 5 (Generation of session key on the secure component side): The secure component 70 decrypts the received encrypted random number with its own private key, and generates a CPU / SoC session key from the random number obtained by the decryption. The secure component 70 notifies the debug target CPU / SoC 60 that the decryption of the encrypted random number and the generation of the CPU / SoC session key have been completed normally.

#6(CPU/SoC側との鍵共有完了):デバッグ対象CPU/SoC60は、セキュアコンポーネント70から正常終了通知を受信すると、自身が生成した乱数からCPU/SoCセッション鍵を生成する。生成したCPU/SoCセッション鍵は、セキュアコンポーネント70が生成したCPU/SoCセッション鍵と同じものである。以降、デバッグ対象CPU/SoC60は生成したCPU/SoCセッション鍵を用いてセキュアコンポーネント70との間で暗号通信を行う。 # 6 (Completion of key sharing with CPU / SoC side): When the debug target CPU / SoC 60 receives a normal end notification from the secure component 70, it generates a CPU / SoC session key from a random number generated by itself. The generated CPU / SoC session key is the same as the CPU / SoC session key generated by the secure component 70. After that, the debug target CPU / SoC 60 performs encrypted communication with the secure component 70 using the generated CPU / SoC session key.

上述の例では、片方向の認証を用いて鍵共有を行っているが、鍵共有で使用するアルゴリズムは、上述の例に限定されるものではない。なお、デバイス側のセキュアコンポーネント70とデバッグ対象CPU/SoC60とが同じ半導体チップとして実装されている場合(例えば、デバッグ対象CPU/SoC60内にセキュアコンポーネント70が内蔵されている場合)、悪意のある攻撃者が、チップ間配線に干渉することができないので、図3に例示した暗号通信路の確立は不要となる。 In the above example, key sharing is performed using one-way authentication, but the algorithm used for key sharing is not limited to the above example. When the secure component 70 on the device side and the debug target CPU / SoC60 are mounted as the same semiconductor chip (for example, when the secure component 70 is built in the debug target CPU / SoC60), a malicious attack Since the person cannot interfere with the inter-chip wiring, it is not necessary to establish the encrypted communication path illustrated in FIG.

図3に例示した処理によって、デバイス50内においてセキュアコンポーネント70とデバッグ対象CPU/SoC60とはセキュリティ上密結合となった。以下では、デバイス側のセキュアコンポーネント70とプローブ側のセキュアコンポーネント40とがデバッグが許可されている組み合わせであることを確認する処理について説明する。 By the process illustrated in FIG. 3, the secure component 70 and the CPU / SoC60 to be debugged are tightly coupled in terms of security in the device 50. The process of confirming that the secure component 70 on the device side and the secure component 40 on the probe side are a combination in which debugging is permitted will be described below.

図4はセキュアコンポーネント間の相互認証の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#9として説明する。 FIG. 4 is a schematic diagram showing an example of the processing flow of mutual authentication between secure components. Hereinafter, each process in the figure will be described as # 1 to # 9.

#1(プローブ認証情報とプローブ側公開鍵と証明書の送付):プローブ側のセキュアコンポーネント40は、自身が保持するプローブ側秘密鍵を用いて認証情報を生成し、プローブ側公開鍵と証明書とともに生成した認証情報をデバイス側のセキュアコンポーネント70に送付する。ここで、認証情報は、認証相手(この場合、プローブ側のセキュアコンポーネント40)が秘密鍵を保持していることを確認できる内容であればよく、例えば、プローブID:Probe-0001をプローブ側秘密鍵で暗号化したものなどを用いることができる。また、後述のプローブセッション鍵生成のため、認証情報に乱数要素を含めてもよい。 # 1 (Sending probe authentication information and probe side public key and certificate): The probe side secure component 40 generates authentication information using the probe side private key held by itself, and the probe side public key and certificate. The authentication information generated together with is sent to the secure component 70 on the device side. Here, the authentication information may be any content that can confirm that the authentication partner (in this case, the secure component 40 on the probe side) holds the private key. For example, the probe ID: Probe-0001 is the secret on the probe side. A key-encrypted one can be used. Further, a random number element may be included in the authentication information for the probe session key generation described later.

#2(公開鍵と証明書の検証):デバイス側のセキュアコンポーネント70は、受信したプローブ側公開鍵と証明書の検証を行う。具体的には、セキュアコンポーネント70は、自身が保持するCA公開鍵を用いて、プローブ側証明書内の公開鍵署名を検証する。ここで検証に失敗した場合、不正なプローブ側公開鍵及び証明書とみなして処理を終了する。検証に成功した場合、プローブ側公開鍵及び証明書を送信したセキュアコンポーネント40は、信頼できるものとして処理を進める。 # 2 (Public key and certificate verification): The device-side secure component 70 verifies the received probe-side public key and certificate. Specifically, the secure component 70 verifies the public key signature in the probe-side certificate by using the CA public key held by itself. If the verification fails here, it is regarded as an invalid probe-side public key and certificate, and the process ends. If the verification is successful, the secure component 40 that has sent the probe-side public key and the certificate proceeds with the process as being reliable.

#3(認証許可リストの確認):セキュアコンポーネント70は、プローブ側証明書に格納されているプローブIDが、自身が保持する認証許可リスト75に指定されているかを確認する。当該プローブIDが認証許可リスト75に存在しない場合、無許可のプローブとみなし、処理を終了する。 # 3 (Confirmation of authentication permission list): The secure component 70 confirms whether the probe ID stored in the probe-side certificate is specified in the authentication permission list 75 held by itself. If the probe ID does not exist in the authentication permission list 75, it is regarded as an unauthorized probe, and the process ends.

#4(プローブ認証情報の検証):セキュアコンポーネント70は、セキュアコンポーネント40から受信した認証情報を、プローブ側公開鍵を用いて復号し、所定の情報(ここでは、証明書に指定されているプローブID)であることを検証する。検証に失敗した場合はここで処理を終了する。 # 4 (Verification of probe authentication information): The secure component 70 decrypts the authentication information received from the secure component 40 using the probe-side public key, and determines the predetermined information (here, the probe specified in the certificate). Verify that it is ID). If the verification fails, the process ends here.

#5(デバイス認証情報とデバイス側公開鍵と証明書の送付):デバイス側のセキュアコンポーネント70は、自身が保持するデバイス側秘密鍵を用いて認証情報を生成し、デバイス側公開鍵と証明書とともに生成した認証情報をプローブ側のセキュアコンポーネント40に送付する。ここで、認証情報は、認証相手(この場合、デバイス側のセキュアコンポーネント70)が秘密鍵を保持していることを確認できる内容であればよく、例えば、デバイスID:Device-0001をデバイス側秘密鍵で暗号化したものなどを用いることができる。また、後述のプローブセッション鍵生成のため、認証情報に乱数要素を含めてもよい。 # 5 (Sending device authentication information and device side public key and certificate): The device side secure component 70 generates authentication information using the device side private key held by itself, and the device side public key and certificate. The authentication information generated together with is sent to the secure component 40 on the probe side. Here, the authentication information may be any content that can confirm that the authentication partner (in this case, the secure component 70 on the device side) holds the private key. For example, the device ID: Device-0001 is kept secret on the device side. A key-encrypted one can be used. Further, a random number element may be included in the authentication information for the probe session key generation described later.

#6(公開鍵と証明書の検証):プローブ側のセキュアコンポーネント40は、受信したデバイス側公開鍵と証明書の検証を行う。具体的には、セキュアコンポーネント40は、自身が保持するCA公開鍵を用いて、デバイス側証明書内の公開鍵署名を検証する。ここで検証に失敗した場合、不正なデバイス側公開鍵及び証明書とみなして処理を終了する。検証に成功した場合、デバイス側公開鍵及び証明書を送信したセキュアコンポーネント70は、信頼できるものとして処理を進める。 # 6 (Public key and certificate verification): The probe-side secure component 40 verifies the received device-side public key and certificate. Specifically, the secure component 40 verifies the public key signature in the device-side certificate by using the CA public key held by itself. If the verification fails here, it is regarded as an invalid device-side public key and certificate, and the process ends. If the verification is successful, the secure component 70 that has sent the device-side public key and certificate proceeds with the process as being reliable.

#7(認証許可リストの確認):セキュアコンポーネント40は、デバイス側証明書に格納されているデバイスIDが、自身が保持する認証許可リスト45に指定されているかを確認する。当該デバイスIDが認証許可リスト45に存在しない場合、無許可のプローブとみなし、処理を終了する。 # 7 (Confirmation of authentication permission list): The secure component 40 confirms whether the device ID stored in the device-side certificate is specified in the authentication permission list 45 held by itself. If the device ID does not exist in the authentication permission list 45, it is regarded as an unauthorized probe, and the process ends.

#8(デバイス認証情報の検証):セキュアコンポーネント40は、セキュアコンポーネント70から受信した認証情報を、デバイス側公開鍵を用いて復号し、所定の情報(ここでは、証明書に指定されているデバイスID)であることを検証する。検証に失敗した場合はここで処理を終了する。 # 8 (Verification of device authentication information): The secure component 40 decrypts the authentication information received from the secure component 70 using the device-side public key, and determines the predetermined information (here, the device specified in the certificate). Verify that it is ID). If the verification fails, the process ends here.

#9(プローブセッション鍵の生成):セキュアコンポーネント40及びセキュアコンポーネント70は、授受した乱数要素を元に、各々同一のプローブセッション鍵を生成し保持する。 # 9 (Generation of probe session key): The secure component 40 and the secure component 70 each generate and hold the same probe session key based on the exchanged random number elements.

上述のように、デバッグ対象プログラム61(デバッグ対象)を有するデバイス50は、デバッグ対象をデバッグするためのプローブ30(デバッグ機器)に備えられたセキュアコンポーネント40と相互認証を行う相互認証機能72(認証部)を有するセキュアコンポーネント70を備え、セキュアコンポーネント70は、相互認証機能72で相互認証が成功した場合、セキュアコンポーネント40との間でデバッグ信号の授受を行う。 As described above, the device 50 having the debug target program 61 (debug target) has a mutual authentication function 72 (authentication) that performs mutual authentication with the secure component 40 provided in the probe 30 (debug device) for debugging the debug target. A secure component 70 having a part) is provided, and when the mutual authentication function 72 succeeds in mutual authentication, the secure component 70 sends and receives a debug signal to and from the secure component 40.

また、デバッグ対象プログラム61(デバッグ対象)をデバッグするためのプローブ30(デバッグ機器)は、デバッグ対象を有するデバイス50に備えられたセキュアコンポーネント70と相互認証を行う相互認証機能44(認証部)を有するセキュアコンポーネント40を備え、セキュアコンポーネント40は、相互認証機能44で相互認証が成功した場合、セキュアコンポーネント70との間でデバッグ信号の授受を行う。 Further, the probe 30 (debug device) for debugging the debug target program 61 (debug target) has a mutual authentication function 44 (authentication unit) that performs mutual authentication with the secure component 70 provided in the device 50 having the debug target. The secure component 40 includes the secure component 40, and when the mutual authentication function 44 succeeds in mutual authentication, the secure component 40 sends and receives a debug signal to and from the secure component 70.

プローブ30(デバッグ機器)に搭載されるセキュアコンポーネント40は、デバッグ対象を有するデバイス50に備えられたセキュアコンポーネント70と相互認証を行う相互認証機能44(認証部)を備え、相互認証機能44で相互認証が成功した場合、セキュアコンポーネント70との間でデバッグ信号の授受を行う。 The secure component 40 mounted on the probe 30 (debug device) has a mutual authentication function 44 (authentication unit) that performs mutual authentication with the secure component 70 provided in the device 50 having a debug target, and is mutually authenticated by the mutual authentication function 44. If the authentication is successful, a debug signal is exchanged with the secure component 70.

また、デバッグ対象プログラム61(デバッグ対象)を有するデバイス50に搭載されるセキュアコンポーネント70は、デバッグ対象プログラム61をデバッグするためのプローブ30(デバッグ機器)に備えられたセキュアコンポーネント40と相互認証を行う相互認証機能44(認証部)を備え、相互認証機能44で相互認証が成功した場合、セキュアコンポーネント40との間でデバッグ信号の授受を行う。 Further, the secure component 70 mounted on the device 50 having the debug target program 61 (debug target) performs mutual authentication with the secure component 40 provided in the probe 30 (debug device) for debugging the debug target program 61. It is equipped with a mutual authentication function 44 (authentication unit), and when mutual authentication is successful with the mutual authentication function 44, a debug signal is exchanged with the secure component 40.

デバッグ対象プログラム61(デバッグ対象)を有するデバイス50と、デバッグ対象プログラム61をデバッグするためのプローブ30(デバッグ機器)とを備えるデバッグシステム又はデバッグ方法において、デバイス50は、プローブ30に備えられたセキュアコンポーネント40と相互認証を行う相互認証機能72(デバイス側認証部)を有するセキュアコンポーネント70を備え、プローブ30は、デバイス50に備えられたセキュアコンポーネント70と相互認証を行う相互認証機能44(機器側認証部)を有するセキュアコンポーネント40を備え、相互認証機能72、44それぞれで相互認証が成功した場合、セキュアコンポーネント70とセキュアコンポーネント40との間でデバッグ信号の授受を行う。 In a debugging system or a debugging method including a device 50 having a debug target program 61 (debug target) and a probe 30 (authentication device) for debugging the debug target program 61, the device 50 is a secure device provided in the probe 30. A secure component 70 having a mutual authentication function 72 (device side authentication unit) that performs mutual authentication with the component 40 is provided, and the probe 30 has a mutual authentication function 44 (device side) that performs mutual authentication with the secure component 70 provided in the device 50. A secure component 40 having an authentication unit) is provided, and when mutual authentication is successful in each of the mutual authentication functions 72 and 44, a debug signal is exchanged between the secure component 70 and the secure component 40.

上述のように、デバッグ実施前に、デバイス50とプローブ30との間で相互認証を実施し、正当なデバイス50とプローブ30との組み合わせであることを確認することにより、デバイス50をデバッグできるプローブ30を物理的に限定することができ、第三者によるデバッグ機能の悪用可能性を最小限化することができる。 As described above, a probe capable of debugging the device 50 by performing mutual authentication between the device 50 and the probe 30 and confirming that the combination of the device 50 and the probe 30 is valid before debugging. 30 can be physically limited, and the possibility of misuse of the debugging function by a third party can be minimized.

相互認証のアルゴリズムは、上述の例に限定されるものではなく、好適なアルゴリズムを採用することができるが、プローブ30(セキュアコンポーネント40)、デバイス50(セキュアコンポーネント70)の正当性確認に当たっては、上述のとおり、公開鍵と秘密鍵の2組の鍵を用いる非対称鍵アルゴリズムを適用するのが望ましい。 The mutual authentication algorithm is not limited to the above example, and a suitable algorithm can be adopted. However, in confirming the validity of the probe 30 (secure component 40) and the device 50 (secure component 70), As mentioned above, it is desirable to apply an asymmetric key algorithm that uses two sets of keys, a public key and a private key.

図4に例示した処理によって、デバイス50とプローブ30との間で相互認証が成功し、相互に正当な組み合わせであることが確認されたので、デバイス50とプローブ30との間の通信のセキュリティポリシーによっては、この状態で平文通信を行ってデバッグを実施してもよい。以下では、平文通信を用いたデバッグについて説明する。 By the process illustrated in FIG. 4, mutual authentication between the device 50 and the probe 30 was successful, and it was confirmed that the combination was valid for each other. Therefore, the security policy for communication between the device 50 and the probe 30 Depending on the situation, plaintext communication may be performed in this state for debugging. In the following, debugging using plaintext communication will be described.

図5はプローブ30とデバイス50間の平文通信の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#12として説明する。 FIG. 5 is a schematic diagram showing an example of a processing flow of plaintext communication between the probe 30 and the device 50. Hereinafter, each process in the figure will be described as # 1 to # 12.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブへ操作指示を送信):デバッグ操作環境21は、プローブ30に対して操作指示を送信する。 # 2 (Send operation instruction to probe): The debug operation environment 21 transmits an operation instruction to the probe 30.

#3(デバイスへ操作指示を送信):プローブ30は、デバッグI/F32を介してデバイス50に対し操作指示を送信する。デバイス50は、受信した操作指示をセキュアコンポーネント70に入力する。 # 3 (Send operation instruction to device): The probe 30 transmits an operation instruction to the device 50 via the debug I / F32. The device 50 inputs the received operation instruction to the secure component 70.

#4(デバイス側セキュアコンポーネントによる暗号化送信):セキュアコンポーネント70は、受信した操作指示を、CPU/SoCセッション鍵で暗号化し、暗号化操作指示をCPU/SoC内デバッグ機能62に送信する。 # 4 (encrypted transmission by the device-side secure component): The secure component 70 encrypts the received operation instruction with the CPU / SoC session key, and transmits the encrypted operation instruction to the debug function 62 in the CPU / SoC.

#5(CPU/SoC側で操作指示を復号):CPU/SoC内デバッグ機能62は、受信した暗号化操作指示をCPU/SoCセッション鍵で復号し、操作指示を得る。 # 5 (Decrypt operation instruction on the CPU / SoC side): The debug function 62 in the CPU / SoC decodes the received encryption operation instruction with the CPU / SoC session key to obtain the operation instruction.

#6(デバッグ対象プログラムを操作):CPU/SoC内デバッグ機能62は、指示された内容でデバッグ対象CPU/SoC60を操作し、デバッグ対象プログラム61を操作するか、情報取得を行う。 # 6 (Operate the debug target program): The debug function 62 in the CPU / SoC operates the debug target CPU / SoC 60 with the instructed content, operates the debug target program 61, or acquires information.

#7(指示結果を返送):CPU/SoC内デバッグ機能62は、前述の#6の処理の指示結果を受け取る。 # 7 (returns the instruction result): The CPU / SoC debug function 62 receives the instruction result of the above-mentioned # 6 process.

#8(CPU/SoC側による暗号化送信):CPU/SoC内デバッグ機能62は、受信した指示結果を、CPU/SoCセッション鍵で暗号化し、暗号化指示結果をセキュアコンポーネント70に送信する。 # 8 (encrypted transmission by the CPU / SoC side): The CPU / SoC internal debug function 62 encrypts the received instruction result with the CPU / SoC session key, and transmits the encrypted instruction result to the secure component 70.

#9(デバイス側セキュアコンポーネントによる復号):セキュアコンポーネント70は、受信した暗号化指示結果をCPU/SoCセッション鍵で復号し、指示結果を得る。 # 9 (Decryption by the device-side secure component): The secure component 70 decrypts the received encryption instruction result with the CPU / SoC session key, and obtains the instruction result.

#10(プローブへ指示結果を返送):デバイス50は、セキュアコンポーネント70から指示結果を取得し、プローブ30へ返送する。 # 10 (Returning the instruction result to the probe): The device 50 acquires the instruction result from the secure component 70 and returns it to the probe 30.

#11(組み込み機器開発PCへ指示結果を返送):プローブ30は、デバイス50から受け取った指示結果を、組み込み機器開発PC20へ返送する。 # 11 (Returning the instruction result to the embedded device development PC): The probe 30 returns the instruction result received from the device 50 to the embedded device development PC 20.

#12(指示結果を表示):組み込み機器開発PC20は、プローブ30から受け取った指示結果をデバッグ操作環境21に反映し、プログラマに見せる。 # 12 (Display instruction result): The embedded device development PC 20 reflects the instruction result received from the probe 30 in the debug operation environment 21 and shows it to the programmer.

上述のような平文通信に代えて、以下に示すように、プローブ30とデバイス50との間の通信内容を秘匿化して保護を図ることもできる。 Instead of the plaintext communication as described above, as shown below, the communication content between the probe 30 and the device 50 can be concealed and protected.

図6はプローブ30とデバイス50間の暗号通信の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#18として説明する。 FIG. 6 is a schematic diagram showing an example of a processing flow of encrypted communication between the probe 30 and the device 50. Hereinafter, each process in the figure will be described as # 1 to # 18.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブへ操作指示を送信):デバッグ操作環境21は、プローブ30に対して操作指示を送信する。 # 2 (Send operation instruction to probe): The debug operation environment 21 transmits an operation instruction to the probe 30.

#3(セキュアコンポーネントへ操作指示を出力):プローブ30は、受信した操作指示をセキュアコンポーネント40に出力する。 # 3 (Output operation instruction to the secure component): The probe 30 outputs the received operation instruction to the secure component 40.

#4(操作指示の暗号化):セキュアコンポーネント40は、自身のプローブセッション鍵を用いて、取得した操作指示を暗号化する。 # 4 (encryption of operation instruction): The secure component 40 uses its own probe session key to encrypt the acquired operation instruction.

#5(暗号化操作指示の送信):プローブ30は、デバッグI/F32を介して暗号化された操作指示をデバイス50に送信する。デバイス50は、受信した暗号化操作指示をセキュアコンポーネント70に送信する。 # 5 (Transmission of encryption operation instruction): The probe 30 transmits an encrypted operation instruction to the device 50 via the debug I / F 32. The device 50 transmits the received encryption operation instruction to the secure component 70.

#6(デバイス側セキュアコンポーネントによる復号):セキュアコンポーネント70は、受信した暗号化操作指示を、自身が保持するプローブセッション鍵で復号する。 # 6 (Decryption by the device-side secure component): The secure component 70 decrypts the received encryption operation instruction with the probe session key held by itself.

#7(再暗号化を送信):セキュアコンポーネント70は、復号した操作指示を、CPU/SoCセッション鍵で再度暗号化し、暗号化操作指示をCPU/SoC内デバッグ機能62に送信する。 # 7 (Transmit re-encryption): The secure component 70 re-encrypts the decrypted operation instruction with the CPU / SoC session key, and transmits the encryption operation instruction to the debug function 62 in the CPU / SoC.

#8(CPU/SoC側で操作指示を復号):CPU/SoC内デバッグ機能62は、受信した暗号化操作指示をCPU/SoCセッション鍵で復号し、操作指示を得る。 # 8 (decrypt operation instruction on the CPU / SoC side): The debug function 62 in the CPU / SoC decodes the received encryption operation instruction with the CPU / SoC session key, and obtains the operation instruction.

#9(デバッグ対象プログラムを操作):CPU/SoC内デバッグ機能62は、指示された内容でデバッグ対象CPU/SoC60を操作し、デバッグ対象プログラム61を操作するか、情報取得を行う。 # 9 (Operate the debug target program): The debug function 62 in the CPU / SoC operates the debug target CPU / SoC 60 with the instructed content, operates the debug target program 61, or acquires information.

#10(指示結果を受信):CPU/SoC内デバッグ機能62は、前述の#6の処理の指示結果を受け取る。 # 10 (Receive instruction result): The debug function 62 in the CPU / SoC receives the instruction result of the above-mentioned # 6 process.

#11(CPU/SoC側による暗号化と送信):CPU/SoC内デバッグ機能62は、受信した指示結果を、CPU/SoCセッション鍵で暗号化し、暗号化指示結果をセキュアコンポーネント70に送信する。 # 11 (encryption and transmission by the CPU / SoC side): The CPU / SoC internal debug function 62 encrypts the received instruction result with the CPU / SoC session key, and transmits the encryption instruction result to the secure component 70.

#12(デバイス側セキュアコンポーネントによる復号):セキュアコンポーネント70は、受信した暗号化指示結果をCPU/SoCセッション鍵で復号し、指示結果を得る。 # 12 (Decryption by the device-side secure component): The secure component 70 decrypts the received encryption instruction result with the CPU / SoC session key, and obtains the instruction result.

#13(再暗号化):セキュアコンポーネント70は、復号した指示結果を、プローブセッション鍵で再度暗号化する。 # 13 (re-encryption): The secure component 70 re-encrypts the decrypted instruction result with the probe session key.

#14(プローブへ指示結果を返送):デバイス50は、セキュアコンポーネント70から暗号化した指示結果を取得し、プローブ30へ返送する。 # 14 (Returning the instruction result to the probe): The device 50 acquires the encrypted instruction result from the secure component 70 and returns it to the probe 30.

#15(セキュアコンポーネントへ転送):プローブ30は、デバイス50から受け取った指示結果をセキュアコンポーネント40へ送信する。 # 15 (Transfer to secure component): The probe 30 transmits the instruction result received from the device 50 to the secure component 40.

#16(操作指示の復号):セキュアコンポーネント40は、受け取った指示結果をプローブセッション鍵で復号する。 # 16 (Decryption of operation instruction): The secure component 40 decodes the received instruction result with the probe session key.

#17(組み込み機器開発PCへ指示結果を返送):プローブ30は、セキュアコンポーネント40から受け取った指示結果を、組み込み機器開発PC20へ返送する。 # 17 (Returning the instruction result to the embedded device development PC): The probe 30 returns the instruction result received from the secure component 40 to the embedded device development PC 20.

#18(指示結果を表示):組み込み機器開発PC20は、プローブ30から受け取った指示結果をデバッグ操作環境21に反映し、プログラマに見せる。 # 18 (Display instruction result): The embedded device development PC 20 reflects the instruction result received from the probe 30 in the debug operation environment 21 and shows it to the programmer.

上述のように、セキュアコンポーネント70は、暗号化機能71(暗号化部、復号部)を備え、暗号化機能71は、相互認証機能72で相互認証が成功した場合、セキュアコンポーネント40に対して送出するデバッグ信号を暗号化し、暗号化機能71は、相互認証機能72で相互認証が成功した場合、セキュアコンポーネント40から取得する、暗号化されたデバッグ信号を復号する。 As described above, the secure component 70 includes an encryption function 71 (encryption unit, decryption unit), and the encryption function 71 sends a message to the secure component 40 when mutual authentication is successful with the mutual authentication function 72. The encryption function 71 encrypts the debug signal to be used, and when the mutual authentication function 72 succeeds in mutual authentication, the encryption function 71 decrypts the encrypted debug signal acquired from the secure component 40.

また、セキュアコンポーネント40は、暗号化機能43(暗号化部、復号部)を備え、暗号化機能43は、相互認証機能44で相互認証が成功した場合、セキュアコンポーネント70に対して送出するデバッグ信号を暗号化し、暗号化機能43は、相互認証機能44で相互認証が成功した場合、セキュアコンポーネント70から取得する、暗号化されたデバッグ信号を復号する。 Further, the secure component 40 includes an encryption function 43 (encryption unit, decryption unit), and the encryption function 43 sends a debug signal to the secure component 70 when mutual authentication is successful with the mutual authentication function 44. The encryption function 43 decrypts the encrypted debug signal acquired from the secure component 70 when the mutual authentication is successful in the mutual authentication function 44.

このように、デバイス50とプローブ30との間のデバッグ通信を、セキュアコンポーネント40、70が直接暗号化し、他方のセキュアコンポーネントと授受することで暗号化通信を実現することにより、暗号化通信をサポートしていない旧来のデバイスに対しても、プロトコルを仲介する形でセキュアコンポーネントが暗号化手段を提供することができる。 In this way, the secure components 40 and 70 directly encrypt the debug communication between the device 50 and the probe 30, and the encrypted communication is realized by exchanging and exchanging with the other secure component to support the encrypted communication. Even for older devices that are not, secure components can provide cryptographic means in the form of mediating protocols.

デバッグ機能の利用に先立って、プローブ30内のセキュアコンポーネント40が利用者(プログラマや保守運用者など)の認証を行い、正当な利用者のみにデバッグ機能を利用させることもできる。以下、利用者の認証について説明する。 Prior to using the debug function, the secure component 40 in the probe 30 authenticates the user (programmer, maintenance operator, etc.), and only a legitimate user can use the debug function. The user authentication will be described below.

図7はプローブ30の利用者認証の処理フローの一例を示す模式図である。以下、利用者のうち、プログラマを例に挙げて、図中の各処理を#1~#6として説明する。保守運用者などの他の利用者の認証も同様である。 FIG. 7 is a schematic diagram showing an example of the processing flow of user authentication of the probe 30. Hereinafter, among the users, a programmer will be taken as an example, and each process in the figure will be described as # 1 to # 6. The same applies to the authentication of other users such as maintenance operators.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブ認証状態確認):デバッグ操作環境21は、プローブ30に対してデバッグ操作が可能であるか(利用者認証が完了しているか)を問い合わせ、認証実施前の状態である旨を得てプログラマに示す。 # 2 (Probe authentication status confirmation): The debug operation environment 21 inquires of the probe 30 whether the debug operation is possible (whether the user authentication is completed), and obtains that the state is before the authentication is performed. Show to the programmer.

#3(利用者認証情報の入力):プログラマは、個人認証情報をデバッグ操作環境21に入力する。個人認証情報は、例えば、PIN(personal identification number)等の情報を用いることができるが、これに限定されるものではなく、指紋、掌紋等の生体情報や、セキュリティトークンが生成した認証情報などの所有物情報でもよい。 # 3 (input of user authentication information): The programmer inputs personal authentication information into the debug operation environment 21. As the personal authentication information, for example, information such as PIN (personal identification number) can be used, but the personal identification information is not limited to this, and biometric information such as fingerprints and palm prints and authentication information generated by a security token can be used. It may be property information.

#4(利用者認証情報の送信):デバッグ操作環境21は、プローブ30に対して個人認証情報を送信する。プローブ30は、内部のセキュアコンポーネント40に個人認証情報を送信する。 # 4 (Transmission of user authentication information): The debug operation environment 21 transmits personal authentication information to the probe 30. The probe 30 transmits personal authentication information to the internal secure component 40.

#5(利用者認証情報の照合):セキュアコンポーネント40は、受信した個人認証情報を、自身が保持する個人認証情報と照合する。 # 5 (Verification of user authentication information): The secure component 40 collates the received personal authentication information with the personal authentication information held by itself.

#6(認証結果の送信):セキュアコンポーネント40は、プローブ30を介して認証結果を組み込み機器開発PC20に返送する。このとき、認証に成功している場合は、プローブ30の機能をアンロックし、デバッグ機能を利用できるようにする。認証に成功しなかった場合は、プローブ30の機能をアンロックしたままとし、デバッグ機能を利用できないようにする。 # 6 (Transmission of authentication result): The secure component 40 returns the authentication result to the embedded device development PC 20 via the probe 30. At this time, if the authentication is successful, the function of the probe 30 is unlocked so that the debug function can be used. If the authentication is not successful, the function of the probe 30 is left unlocked so that the debug function cannot be used.

上述の例では、プローブ30側で利用者認証を行う構成であるが、以下にように、デバイス50側で利用者認証を行って、デバッグ機能のロック、アンロックを行ってもよい。 In the above example, the user authentication is performed on the probe 30 side, but the debug function may be locked or unlocked by performing user authentication on the device 50 side as described below.

図8はデバイス50の利用者認証の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#6として説明する。 FIG. 8 is a schematic diagram showing an example of the processing flow of user authentication of the device 50. Hereinafter, each process in the figure will be described as # 1 to # 6.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブ認証状態確認):デバッグ操作環境21は、プローブ30経由でデバイス50に対してデバッグ操作が可能であるか(利用者認証が完了しているか)を問い合わせ、認証実施前の状態である旨を得てプログラマに示す。 # 2 (Probe authentication status confirmation): The debug operation environment 21 inquires whether the debug operation can be performed on the device 50 via the probe 30 (whether the user authentication is completed), and is in the state before the authentication is performed. Get a certain point and show it to the programmer.

#3(利用者認証情報の入力):プログラマは、事前に設定済みの個人認証情報をデバッグ操作環境21に入力する。 # 3 (input of user authentication information): The programmer inputs preset personal authentication information into the debug operation environment 21.

#4(利用者認証情報の送信):デバッグ操作環境21は、プローブ30経由でデバイス50に対して個人認証情報を送信する。デバイス50は、内部のセキュアコンポーネント70に個人認証情報を送信する。 # 4 (Transmission of user authentication information): The debug operation environment 21 transmits personal authentication information to the device 50 via the probe 30. The device 50 transmits personal authentication information to the internal secure component 70.

#5(利用者認証情報の照合):セキュアコンポーネント70は、受信した個人認証情報を、自身が保持する個人認証情報と照合する。 # 5 (Verification of user authentication information): The secure component 70 collates the received personal authentication information with the personal authentication information held by itself.

#6(認証結果の送信):セキュアコンポーネント70は、プローブ30を介して認証結果を組み込み機器開発PC20に返送する。このとき、認証に成功している場合は、デバイス50の機能をアンロックし、デバッグ機能を利用できるようにする。認証に成功しなかった場合は、デバイス50の機能をアンロックしたままとし、デバッグ機能を利用できないようにする。 # 6 (Transmission of authentication result): The secure component 70 returns the authentication result to the embedded device development PC 20 via the probe 30. At this time, if the authentication is successful, the function of the device 50 is unlocked so that the debug function can be used. If the authentication is not successful, the function of the device 50 is left unlocked so that the debug function cannot be used.

上述のように、セキュアコンポーネント70は、個人認証情報(利用者認証情報)を取得する利用者認証機能73(取得部)と、取得した個人認証情報に基づいて個人認証を行う利用者認証機能73(利用者認証部)とを備え、利用者認証機能73で個人認証が成功した場合、デバッグ信号の授受を可能にする。 As described above, the secure component 70 has a user authentication function 73 (acquisition unit) that acquires personal authentication information (user authentication information) and a user authentication function 73 that performs personal authentication based on the acquired personal authentication information. (User authentication unit) is provided, and when personal authentication is successful with the user authentication function 73, a debug signal can be sent and received.

また、セキュアコンポーネント40は、個人認証情報(利用者認証情報)を取得する利用者認証機能42(取得部)と、取得した個人認証情報に基づいて個人認証を行う利用者認証機能42(利用者認証部)とを備え、利用者認証機能42で個人認証が成功した場合、デバッグ信号の授受を可能にする。 In addition, the secure component 40 has a user authentication function 42 (acquisition unit) that acquires personal authentication information (user authentication information) and a user authentication function 42 (user) that performs personal authentication based on the acquired personal authentication information. It is equipped with an authentication unit), and when personal authentication is successful with the user authentication function 42, it is possible to send and receive a debug signal.

上述の構成により、プローブ30とデバイス50、及び利用者の三者を、セキュアコンポーネント40、70により適切に認証することで、セキュリティとしては堅牢な、セキュアなデバッグ環境を実現することができる。一方で、認証許可リスト等によって紐づけされていないデバイスに対してはデバッグを実施できないなど、組み込み機器開発環境としては柔軟性に欠く場合がある。以下では、セキュアコンポーネントが外部サーバと独立して開設可能な秘匿通信路経由でセキュアコンポーネント内部の秘匿情報を更新することによって、柔軟性を付与する例について説明する。 With the above configuration, a secure debugging environment that is robust in terms of security can be realized by appropriately authenticating the probe 30, the device 50, and the user with the secure components 40 and 70. On the other hand, there are cases where the embedded device development environment lacks flexibility, such as debugging cannot be performed on devices that are not linked by the authentication permission list or the like. In the following, an example of imparting flexibility by updating the confidential information inside the secure component via a secret communication path that the secure component can open independently of the external server will be described.

図9は秘匿通信路経由のプローブ側のデバッグ機能操作の処理フローの一例を示す模式図である。図9の例では、デバッグ環境管理サーバ10とセキュアコンポーネント40との間で鍵情報を共有した上で、両者でTLS(Transport Layer Security)等の秘匿通信路を開設し、開設した秘匿通信路を経由してデバッグ環境管理サーバ10がセキュアコンポーネント40内部の秘匿情報を更新する。以下、図中の各処理を#1~#2として説明する。 FIG. 9 is a schematic diagram showing an example of a processing flow of the debug function operation on the probe side via the secret communication path. In the example of FIG. 9, after sharing the key information between the debug environment management server 10 and the secure component 40, both parties open a secret communication path such as TLS (Transport Layer Security), and the opened secret communication path is used. The debug environment management server 10 updates the confidential information inside the secure component 40 via the system. Hereinafter, each process in the figure will be described as # 1 to # 2.

#1(秘匿通信路開設):デバッグ環境管理サーバ10は、セキュアコンポーネント40が持つ秘匿通信機能41と通信し、両者が共有する秘匿通信路鍵を用いて秘匿通信路を開設する。 # 1 (Open secret communication path): The debug environment management server 10 communicates with the secret communication function 41 of the secure component 40, and opens a secret communication path using the secret communication path key shared by both parties.

#2(セキュアコンポーネントの情報更新):デバッグ環境管理サーバ10は、開設した秘匿通信路経由でセキュアコンポーネント40内の情報(例えば、秘匿情報)を更新する。 # 2 (Update of secure component information): The debug environment management server 10 updates the information (for example, secret information) in the secure component 40 via the established secret communication path.

更新対象とする情報によって、プローブ30の機能の有効・無効、あるいはデバイスとの組み合わせを変化させることができる。例えば、個人認証情報を更新対象とする場合、プローブ30を使用することができる個人を変更することができる。この場合には、プローブ30の認証に使用可能な認証情報種別(PIN、生体認証、所有者認証など)を変更する。 Depending on the information to be updated, the function of the probe 30 can be enabled / disabled, or the combination with the device can be changed. For example, when the personal authentication information is to be updated, the individual who can use the probe 30 can be changed. In this case, the authentication information type (PIN, biometric authentication, owner authentication, etc.) that can be used for the authentication of the probe 30 is changed.

認証許可リスト45を更新対象とする場合、プローブ30でデバッグ可能なデバイスを変更することができる。また、プローブ側秘密鍵、プローブ側公開鍵と証明書を更新対象とすると、プローブ側の鍵が陳腐化又は漏洩した際の鍵更新を行うことができる。これにより、プローブ30内の鍵を失効させ、プローブ30のデバッグ機能を無効化するとともに、逆に有効化することができる。 When the authentication permission list 45 is to be updated, the device that can be debugged by the probe 30 can be changed. Further, if the probe-side private key, the probe-side public key, and the certificate are to be renewed, the key can be renewed when the probe-side key becomes obsolete or leaked. As a result, the key in the probe 30 can be revoked, the debug function of the probe 30 can be invalidated, and vice versa.

上述の例では、組み込み機器開発PC20を経由してプローブ30とデバッグ環境管理サーバ10とを接続しているが、プローブ30やセキュアコンポーネント40が自ら通信可能な機能を有している場合(例えば、IPアドレスが付与されている場合など)、独立して通信を行ってもよい。また、セキュアコンポーネント40内の情報タイミングは、適宜設定することができ、例えば、利用者が必要に応じて更新処理の開始を要求してもよく、あるいは所要のタイミングで自動更新を行ってもよい。 In the above example, the probe 30 and the debug environment management server 10 are connected via the embedded device development PC 20, but the probe 30 and the secure component 40 have a function capable of communicating by themselves (for example,). Communication may be performed independently (for example, when an IP address is assigned). Further, the information timing in the secure component 40 can be set as appropriate. For example, the user may request the start of the update process as needed, or the user may automatically update at the required timing. ..

上述の例では、デバッグ機能操作をプローブ30に対して実行する構成であるが、以下のように、デバイス50に対して実行してもよい。 In the above example, the debug function operation is executed on the probe 30, but it may be executed on the device 50 as follows.

図10は秘匿通信路経由のデバイス側のデバッグ機能操作の処理フローの一例を示す模式図である。図10の例では、デバッグ環境管理サーバ10とデバイス50側のセキュアコンポーネント70との間で鍵情報を共有した上で、両者でTLS等の秘匿通信路を開設し、開設した秘匿通信路を経由してデバッグ環境管理サーバ10がセキュアコンポーネント70内部の秘匿情報を更新する。以下、図中の各処理を#1~#2として説明する。 FIG. 10 is a schematic diagram showing an example of the processing flow of the debug function operation on the device side via the secret communication path. In the example of FIG. 10, after sharing the key information between the debug environment management server 10 and the secure component 70 on the device 50 side, both parties open a secret communication path such as TLS and go through the opened secret communication path. Then, the debug environment management server 10 updates the confidential information inside the secure component 70. Hereinafter, each process in the figure will be described as # 1 to # 2.

#1(秘匿通信路開設):デバッグ環境管理サーバ10は、セキュアコンポーネント70が持つ秘匿通信機能74と通信し、両者が共有する秘匿通信路鍵を用いて秘匿通信路を開設する。 # 1 (Open secret communication path): The debug environment management server 10 communicates with the secret communication function 74 of the secure component 70, and opens a secret communication path using the secret communication path key shared by both parties.

#2(セキュアコンポーネントの情報更新):デバッグ環境管理サーバ10は、開設した秘匿通信路経由でセキュアコンポーネント70内の情報(例えば、秘匿情報)を更新する。 # 2 (Update of secure component information): The debug environment management server 10 updates the information (for example, secret information) in the secure component 70 via the established secret communication path.

更新対象とする情報によって、デバイス50側のデバッグ機能を変更することができる。例えば、個人認証情報を更新対象とする場合、デバイス50をデバッグできる個人を変更することができる。この場合には、デバイス50の認証に使用可能な認証情報種別(PIN、生体認証、所有者認証など)を変更する。 The debug function on the device 50 side can be changed depending on the information to be updated. For example, when the personal authentication information is to be updated, the individual who can debug the device 50 can be changed. In this case, the authentication information type (PIN, biometric authentication, owner authentication, etc.) that can be used for authentication of the device 50 is changed.

認証許可リスト75を更新対象とする場合、デバイス50をデバッグ可能なプローブを変更することができる。また、デバイス側秘密鍵、デバイス側公開鍵と証明書を更新対象とすると、デバイス50側の鍵が陳腐化又は漏洩した際の鍵更新を行うことができる。これにより、デバイス50内の鍵を失効させ、デバイス50のデバッグ機能を無効化するとともに、逆に有効化することができる。 When the authentication permission list 75 is to be updated, the probe that can debug the device 50 can be changed. Further, if the device-side private key, the device-side public key, and the certificate are to be renewed, the key can be renewed when the device-side key becomes obsolete or leaked. As a result, the key in the device 50 can be revoked, the debug function of the device 50 can be disabled, and vice versa.

上述のように、セキュアコンポーネント70は、セキュアコンポーネント40との相互認証に関する情報を含む秘匿情報を記憶するセキュアコンポーネント70の内部(記憶部)と、デバッグ環境管理サーバ10(外部装置)との間で秘匿通信路を開設する秘匿通信機能74(開設部)とを備え、秘匿通信機能74が開設した秘匿通信路を介して、セキュアコンポーネント70の内部に記憶した秘匿情報を更新可能とする。 As described above, the secure component 70 is located between the inside (storage unit) of the secure component 70 that stores confidential information including information related to mutual authentication with the secure component 40 and the debug environment management server 10 (external device). It is equipped with a secret communication function 74 (opening unit) that opens a secret communication path, and can update the secret information stored inside the secure component 70 via the secret communication path opened by the secret communication function 74.

また、セキュアコンポーネント40は、セキュアコンポーネント70との相互認証に関する情報を含む秘匿情報を記憶するセキュアコンポーネント40の内部(記憶部)と、デバッグ環境管理サーバ10(外部装置)との間で秘匿通信路を開設する秘匿通信機能41(開設部)とを備え、秘匿通信機能41が開設した秘匿通信路を介して、セキュアコンポーネント40の内部に記憶した秘匿情報を更新可能とする。 Further, the secure component 40 is a secret communication path between the inside (storage unit) of the secure component 40 that stores confidential information including information related to mutual authentication with the secure component 70 and the debug environment management server 10 (external device). The secret communication function 41 (opening unit) is provided, and the secret information stored inside the secure component 40 can be updated via the secret communication path opened by the secret communication function 41.

このように、デバイス50に搭載されたセキュアコンポーネント70とプローブ30に搭載されたセキュアコンポーネント40それぞれのデバッグ機能や相互認証鍵等の内部状態を、当該セキュアコンポーネント40、70が有する独立した秘匿通信路経由で変更できるので、デバイス50を強固に保護するため、デバイス50のデバッグ機能を完全に無効化すること、あるいは、デバイス50とプローブ30の正当な組み合わせを動的に変更することができ、プローブ30を有効活用することができる。 In this way, the secure component 70 mounted on the device 50 and the internal state of the secure component 40 mounted on the probe 30 such as the debug function and the mutual authentication key are independently hidden communication paths of the secure components 40 and 70. Since it can be changed via, in order to strongly protect the device 50, the debugging function of the device 50 can be completely disabled, or the legitimate combination of the device 50 and the probe 30 can be dynamically changed, and the probe can be changed. 30 can be effectively used.

セキュアコンポーネント40、70は、セキュアエレメント、トラステッド・プラットフォーム・モジュール(TPM)又はトラステッド実行環境のいずれかにより構成してもよい。 Secure components 40, 70 may be configured with either a secure element, a trusted platform module (TPM), or a trusted execution environment.

デバッグに関連する情報(例えば、相互認証に必要な鍵など)をセキュアコンポーネントに格納することにより、デバイス50やプローブ30の解析による鍵漏洩を利用した第三者によるデバッグ機能の悪用を防止できる。また、鍵の個別化を行うことで、デバイス50やプローブ30の危殆化に対応できる。また、耐タンパ性を有するセキュアエレメントを使用すれば、市場出荷後も長期に亘ってデバッグ機能を脆弱性にせず、運用保守目的で有効活用できる。 By storing information related to debugging (for example, a key required for mutual authentication) in a secure component, it is possible to prevent misuse of the debugging function by a third party using key leakage by analysis of the device 50 or probe 30. Further, by individualizing the keys, it is possible to deal with the compromise of the device 50 and the probe 30. In addition, if a secure element having tamper resistance is used, the debug function can be effectively used for operation and maintenance purposes without making the debug function vulnerable for a long period of time even after being shipped to the market.

(第2実施形態)
図11は第2実施形態のデバッグシステムの構成の一例を示す模式図である。第1実施形態では、プローブ30と組み込み機器開発PC20とは別々の装置(機器)であったが、この構成に限定されるものではない。第2実施形態では、組み込み機器開発PC20がプローブ30の機能を内蔵し、組み込み機器開発PC20がプローブとして機能する構成でもよい。
(Second Embodiment)
FIG. 11 is a schematic diagram showing an example of the configuration of the debug system of the second embodiment. In the first embodiment, the probe 30 and the embedded device development PC 20 are separate devices (devices), but the configuration is not limited to this. In the second embodiment, the embedded device development PC 20 may have a built-in function of the probe 30, and the embedded device development PC 20 may function as a probe.

図11に示すように、組み込み機器開発PC20は、デバッグ操作環境21、PC側デバッガ22、デバイス50とのインタフェース機能を有するデバッガ-デバイスI/F25、セキュアコンポーネント40を備える。図1に例示した組み込み機器開発PC20との相違は、セキュアコンポーネント40及びデバッガ-デバイスI/F25を具備する点、及びデバッグプローブI/F23を具備しない点である。デバッグ操作環境21、PC側デバッガ22、及びセキュアコンポーネント40の機能や処理は第1実施形態と同様であるので説明は省略する。 As shown in FIG. 11, the embedded device development PC 20 includes a debug operation environment 21, a debugger 22 on the PC side, a debugger-device I / F25 having an interface function with the device 50, and a secure component 40. The difference from the embedded device development PC20 illustrated in FIG. 1 is that it includes a secure component 40 and a debugger-device I / F25, and does not include a debug probe I / F23. Since the functions and processes of the debug operation environment 21, the PC-side debugger 22, and the secure component 40 are the same as those in the first embodiment, the description thereof will be omitted.

また、デバイス50は、デバッグI/F51に代えて、PC-CPU/SoCデバッグI/F52を備える点以外は、第1実施形態と同様である。組み込み機器開発PC20とデバイス50とは、USB等の汎用ポートを介してアクセスすることができる。 Further, the device 50 is the same as that of the first embodiment except that the debug I / F51 is provided with the PC-CPU / SoC debug I / F52 instead of the debug I / F51. The embedded device development PC 20 and the device 50 can be accessed via a general-purpose port such as USB.

(第3実施形態)
図12は第3実施形態のデバッグシステムの構成の一例を示す模式図である。第1実施形態では、デバイス50内のデバッグ対象CPU/SoC60とセキュアコンポーネント70とは、別の半導体チップとして実装される構成であったが、これに限定されるものではない。第3実施形態では、デバッグ対象CPU/SoC60内にセキュアコンポーネント70を内蔵する構成を示す。デバッグ対象CPU/SoC60内部にセキュアコンポーネント70が存在する場合、両者は物理的に一体となっていることから、両者の通信を暗号化する必要性は低くなり得る。従って、CPU/SoC内デバッグ機能62とセキュアコンポーネント70との間の通信を平文で実施することも可能である。この場合、デバッグ操作時に、CPU/SoC内デバッグ機能62とセキュアコンポーネント70との間の暗号化処理が不要となり、処理速度を高速化することができる。以下、プローブ30とデバイス50との間の暗号通信について説明する。
(Third Embodiment)
FIG. 12 is a schematic diagram showing an example of the configuration of the debug system of the third embodiment. In the first embodiment, the debug target CPU / SoC60 and the secure component 70 in the device 50 are mounted as separate semiconductor chips, but the present invention is not limited to this. The third embodiment shows a configuration in which the secure component 70 is built in the CPU / SoC60 to be debugged. When the secure component 70 exists inside the debug target CPU / SoC60, since both are physically integrated, the need to encrypt the communication between the two can be reduced. Therefore, it is also possible to carry out communication between the debug function 62 in the CPU / SoC and the secure component 70 in plain text. In this case, during the debugging operation, the encryption processing between the debug function 62 in the CPU / SoC and the secure component 70 becomes unnecessary, and the processing speed can be increased. Hereinafter, the encrypted communication between the probe 30 and the device 50 will be described.

図13は第3実施形態の場合のプローブ30とデバイス50間の暗号通信の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#14として説明する。 FIG. 13 is a schematic diagram showing an example of a processing flow of encrypted communication between the probe 30 and the device 50 in the case of the third embodiment. Hereinafter, each process in the figure will be described as # 1 to # 14.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブへ操作指示を送信):デバッグ操作環境21は、プローブ30に対して操作指示を送信する。 # 2 (Send operation instruction to probe): The debug operation environment 21 transmits an operation instruction to the probe 30.

#3(セキュアコンポーネントへ操作指示を出力):プローブ30は、受信した操作指示をセキュアコンポーネント40に出力する。 # 3 (Output operation instruction to the secure component): The probe 30 outputs the received operation instruction to the secure component 40.

#4(操作指示の暗号化):セキュアコンポーネント40は、自身のプローブセッション鍵を用いて、取得した操作指示を暗号化する。 # 4 (encryption of operation instruction): The secure component 40 uses its own probe session key to encrypt the acquired operation instruction.

#5(暗号化操作指示の送信):プローブ30は、デバッグI/F32を介して暗号化された操作指示をデバイス50に送信する。デバイス50は、受信した暗号化操作指示をセキュアコンポーネント70に送信する。 # 5 (Transmission of encryption operation instruction): The probe 30 transmits an encrypted operation instruction to the device 50 via the debug I / F 32. The device 50 transmits the received encryption operation instruction to the secure component 70.

#6(デバイス側セキュアコンポーネントによる復号):セキュアコンポーネント70は、受信した暗号化操作指示を、自身が保持するプローブセッション鍵で復号する。 # 6 (Decryption by the device-side secure component): The secure component 70 decrypts the received encryption operation instruction with the probe session key held by itself.

#7(デバッグ対象プログラムを操作):セキュアコンポーネント70は、復号した操作指示をCPU/SoC内デバッグ機能62経由でデバッグ対象CPU/SoC60内のCPU/SoCに送り、CPU/SoCを操作する。これにより、デバッグ対象プログラム61を操作するか、情報取得を行うことができる。 # 7 (Operate the debug target program): The secure component 70 sends the decoded operation instruction to the CPU / SoC in the debug target CPU / SoC 60 via the debug function 62 in the CPU / SoC, and operates the CPU / SoC. As a result, the debug target program 61 can be operated or information can be acquired.

#8(指示結果を返送):セキュアコンポーネント70は、CPU/SoC内デバッグ機能62経由で前述の#7での処理の指示結果を受け取る。 # 8 (returns the instruction result): The secure component 70 receives the instruction result of the above-mentioned processing in # 7 via the debug function 62 in the CPU / SoC.

#9(指示結果を暗号化):セキュアコンポーネント70は、受け取った指示結果を、プローブセッション鍵で暗号化する。 # 9 (encrypt the instruction result): The secure component 70 encrypts the received instruction result with the probe session key.

#10(プローブへ指示結果を返送):デバイス50は、セキュアコンポーネント70から暗号化した指示結果を取得し、プローブ30へ返送する。 # 10 (Returning the instruction result to the probe): The device 50 acquires the encrypted instruction result from the secure component 70 and returns it to the probe 30.

#11(セキュアコンポーネントへ指示結果を返送):プローブ30は、デバイス50から受け取った指示結果をセキュアコンポーネント40へ送信する。 # 11 (Returning the instruction result to the secure component): The probe 30 transmits the instruction result received from the device 50 to the secure component 40.

#12(操作指示の復号):セキュアコンポーネント40は、受け取った指示結果をプローブセッション鍵で復号する。 # 12 (Decryption of operation instruction): The secure component 40 decodes the received instruction result with the probe session key.

#13(組み込み機器開発PCへ指示結果を返送):プローブ30は、セキュアコンポーネント40から受け取った指示結果を、組み込み機器開発PC20へ返送する。 # 13 (Returning the instruction result to the embedded device development PC): The probe 30 returns the instruction result received from the secure component 40 to the embedded device development PC 20.

#14(指示結果を表示):組み込み機器開発PC20は、プローブ30から受け取った指示結果をデバッグ操作環境21に反映し、プログラマに見せる。 # 14 (Display instruction result): The embedded device development PC 20 reflects the instruction result received from the probe 30 in the debug operation environment 21 and shows it to the programmer.

なお、CPU/SoC内デバッグ機能62とセキュアコンポーネント70との間の通信を暗号化で保護することも可能であり、暗号化によって、例えば、サイドチャネル攻撃を防止できる。 It is also possible to protect the communication between the debug function 62 in the CPU / SoC and the secure component 70 by encryption, and the encryption can prevent, for example, a side channel attack.

(第4実施形態)
前述の各実施形態では、プローブ30又は組み込み機器開発PC20とデバイス50との間の暗号通信における暗号化・復号をセキュアコンポーネント40、70が実施する構成であるが、デバッグ環境上ではリアルタイム性が要求されることが多い。セキュアコンポーネント40、70における処理能力にもよるが、セキュアコンポーネント40、70による暗号化・復号がデバッグ作業の時間的なボトルネックになる可能性がある。第4実施形態は、セキュアコンポーネント40、70は相互認証のみ行い、合意したプローブセッション鍵をプローブ30又は組み込み機器開発PC20とデバッグ対象CPU/SoC60それぞれに外部出力した上で、両者で直接暗号化・復号を行う構成を示す。
(Fourth Embodiment)
In each of the above-described embodiments, the secure components 40 and 70 perform encryption / decryption in the encrypted communication between the probe 30 or the embedded device development PC 20 and the device 50, but real-time performance is required in the debug environment. Often done. Depending on the processing power of the secure components 40 and 70, the encryption / decryption by the secure components 40 and 70 may become a time bottleneck of the debugging work. In the fourth embodiment, the secure components 40 and 70 perform only mutual authentication, and the agreed probe session key is externally output to the probe 30 or the embedded device development PC 20 and the debug target CPU / SoC60, respectively, and then directly encrypted by both. The configuration for decoding is shown.

図14は第4実施形態の場合のセキュアコンポーネント間の相互認証の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#9として説明する。なお、ここでは、第1実施形態のデバッグシステムを用いて説明する。 FIG. 14 is a schematic diagram showing an example of a processing flow of mutual authentication between secure components in the case of the fourth embodiment. Hereinafter, each process in the figure will be described as # 1 to # 9. Here, the debugging system of the first embodiment will be used for description.

#1(プローブ認証情報とプローブ側公開鍵と証明書の送付):プローブ側のセキュアコンポーネント40は、自身が保持するプローブ側秘密鍵を用いて認証情報を生成し、プローブ側公開鍵と証明書とともに生成した認証情報をデバイス側のセキュアコンポーネント70に送付する。ここで、認証情報は、認証相手(この場合、プローブ側のセキュアコンポーネント40)が秘密鍵を保持していることを確認できる内容であればよく、例えば、プローブID:Probe-0001をプローブ側秘密鍵で暗号化したものなどを用いることができる。また、後述のプローブセッション鍵生成のため、認証情報に乱数要素を含めてもよい。 # 1 (Sending probe authentication information and probe side public key and certificate): The probe side secure component 40 generates authentication information using the probe side private key held by itself, and the probe side public key and certificate. The authentication information generated together with is sent to the secure component 70 on the device side. Here, the authentication information may be any content that can confirm that the authentication partner (in this case, the secure component 40 on the probe side) holds the private key. For example, the probe ID: Probe-0001 is the secret on the probe side. A key-encrypted one can be used. Further, a random number element may be included in the authentication information for the probe session key generation described later.

#2(公開鍵と証明書の検証):デバイス側のセキュアコンポーネント70は、受信したプローブ側公開鍵と証明書の検証を行う。具体的には、セキュアコンポーネント70は、自身が保持するCA公開鍵を用いて、プローブ側証明書内の公開鍵署名を検証する。ここで検証に失敗した場合、不正なプローブ側公開鍵及び証明書とみなして処理を終了する。検証に成功した場合、プローブ側公開鍵及び証明書を送信したセキュアコンポーネント40は、信頼できるものとして処理を進める。 # 2 (Public key and certificate verification): The device-side secure component 70 verifies the received probe-side public key and certificate. Specifically, the secure component 70 verifies the public key signature in the probe-side certificate by using the CA public key held by itself. If the verification fails here, it is regarded as an invalid probe-side public key and certificate, and the process ends. If the verification is successful, the secure component 40 that has sent the probe-side public key and the certificate proceeds with the process as being reliable.

#3(認証許可リストの確認):セキュアコンポーネント70は、プローブ側証明書に格納されているプローブIDが、自身が保持する認証許可リスト75に指定されているかを確認する。当該プローブIDが認証許可リスト75に存在しない場合、無許可のプローブとみなし、処理を終了する。 # 3 (Confirmation of authentication permission list): The secure component 70 confirms whether the probe ID stored in the probe-side certificate is specified in the authentication permission list 75 held by itself. If the probe ID does not exist in the authentication permission list 75, it is regarded as an unauthorized probe, and the process ends.

#4(プローブ認証情報の検証):セキュアコンポーネント70は、セキュアコンポーネント40から受信した認証情報を、プローブ側公開鍵を用いて復号し、所定の情報(ここでは、証明書に指定されているプローブID)であることを検証する。検証に失敗した場合はここで処理を終了する。 # 4 (Verification of probe authentication information): The secure component 70 decrypts the authentication information received from the secure component 40 using the probe-side public key, and determines the predetermined information (here, the probe specified in the certificate). Verify that it is ID). If the verification fails, the process ends here.

#5(デバイス認証情報とデバイス側公開鍵と証明書の送付):デバイス側のセキュアコンポーネント70は、自身が保持するデバイス側秘密鍵を用いて認証情報を生成し、デバイス側公開鍵と証明書とともに生成した認証情報をプローブ側のセキュアコンポーネント40に送付する。ここで、認証情報は、認証相手(この場合、デバイス側のセキュアコンポーネント70)が秘密鍵を保持していることを確認できる内容であればよく、例えば、デバイスID:Device-0001をデバイス側秘密鍵で暗号化したものなどを用いることができる。また、後述のプローブセッション鍵生成のため、認証情報に乱数要素を含めてもよい。 # 5 (Sending device authentication information and device side public key and certificate): The device side secure component 70 generates authentication information using the device side private key held by itself, and the device side public key and certificate. The authentication information generated together with is sent to the secure component 40 on the probe side. Here, the authentication information may be any content that can confirm that the authentication partner (in this case, the secure component 70 on the device side) holds the private key. For example, the device ID: Device-0001 is kept secret on the device side. A key-encrypted one can be used. Further, a random number element may be included in the authentication information for the probe session key generation described later.

#6(公開鍵と証明書の検証):プローブ側のセキュアコンポーネント40は、受信したデバイス側公開鍵と証明書の検証を行う。具体的には、セキュアコンポーネント40は、自身が保持するCA公開鍵を用いて、デバイス側証明書内の公開鍵署名を検証する。ここで検証に失敗した場合、不正なデバイス側公開鍵及び証明書とみなして処理を終了する。検証に成功した場合、デバイス側公開鍵及び証明書を送信したセキュアコンポーネント70は、信頼できるものとして処理を進める。 # 6 (Public key and certificate verification): The probe-side secure component 40 verifies the received device-side public key and certificate. Specifically, the secure component 40 verifies the public key signature in the device-side certificate by using the CA public key held by itself. If the verification fails here, it is regarded as an invalid device-side public key and certificate, and the process ends. If the verification is successful, the secure component 70 that has sent the device-side public key and certificate proceeds with the process as being reliable.

#7(認証許可リストの確認):セキュアコンポーネント40は、デバイス側証明書に格納されているデバイスIDが、自身が保持する認証許可リスト45に指定されているかを確認する。当該デバイスIDが認証許可リスト45に存在しない場合、無許可のプローブとみなし、処理を終了する。 # 7 (Confirmation of authentication permission list): The secure component 40 confirms whether the device ID stored in the device-side certificate is specified in the authentication permission list 45 held by itself. If the device ID does not exist in the authentication permission list 45, it is regarded as an unauthorized probe, and the process ends.

#8(デバイス認証情報の検証):セキュアコンポーネント40は、セキュアコンポーネント70から受信した認証情報を、デバイス側公開鍵を用いて復号し、所定の情報(ここでは、証明書に指定されているデバイスID)であることを検証する。検証に失敗した場合はここで処理を終了する。 # 8 (Verification of device authentication information): The secure component 40 decrypts the authentication information received from the secure component 70 using the device-side public key, and determines the predetermined information (here, the device specified in the certificate). Verify that it is ID). If the verification fails, the process ends here.

#9(プローブセッション鍵の生成):セキュアコンポーネント40及びセキュアコンポーネント70は、授受した乱数要素を元に、各々同一のプローブセッション鍵を生成し、生成したプローブセッション鍵をプローブ30及びデバッグ対象CPU/SoC60に出力する。 # 9 (Generation of probe session key): The secure component 40 and the secure component 70 generate the same probe session key based on the random number elements given and received, and the generated probe session key is used as the probe 30 and the CPU to be debugged. Output to SoC60.

セキュアコンポーネント40、70それぞれが生成したプローブセッション鍵を、プローブ30及びデバッグ対象CPU/SoC60などに外部出力することにより、プローブ30とデバッグ対象CPU/SoC60とが直接暗号化通信を行うことができる。これにより、暗号化による保護とデバッグ環境のパフォーマンス確保をバランスよく両立することができる。なお、セキュアコンポーネント40及びプローブ30を纏めてプローブ側(機器側)と称し、セキュアコンポーネント70及びデバッグ対象CPU/SoC60を纏めてデバイス側と称する。この場合、機器側におけるデバッグ信号の送受信の主体は、セキュアコンポーネント40又はプローブ30のいずれでもよい。また、デバイス側におけるデバッグ信号の送受信の主体は、セキュアコンポーネント70又はデバッグ対象CPU/SoC60のいずれでもよい。 By externally outputting the probe session keys generated by the secure components 40 and 70 to the probe 30 and the debug target CPU / SoC60, the probe 30 and the debug target CPU / SoC60 can directly perform encrypted communication. As a result, it is possible to achieve a good balance between protection by encryption and performance assurance of the debug environment. The secure component 40 and the probe 30 are collectively referred to as the probe side (device side), and the secure component 70 and the CPU / SoC60 to be debugged are collectively referred to as the device side. In this case, the main body for transmitting and receiving the debug signal on the device side may be either the secure component 40 or the probe 30. Further, the main body of transmission / reception of the debug signal on the device side may be either the secure component 70 or the debug target CPU / SoC60.

図15は第4実施形態のプローブ30とデバッグ対象CPU/SoC60との間の暗号通信の処理フローの一例を示す模式図である。以下、図中の各処理を#1~#14として説明する。 FIG. 15 is a schematic diagram showing an example of a processing flow of encrypted communication between the probe 30 of the fourth embodiment and the CPU / SoC60 to be debugged. Hereinafter, each process in the figure will be described as # 1 to # 14.

#1(デバッグ操作):プログラマは、デバッグ操作環境21にデバッグ操作指示を行う。 # 1 (Debug operation): The programmer gives a debug operation instruction to the debug operation environment 21.

#2(プローブへ操作指示を送信):デバッグ操作環境21は、プローブ30に対して操作指示を送信する。 # 2 (Send operation instruction to probe): The debug operation environment 21 transmits an operation instruction to the probe 30.

#3(デバイスへ操作指示を出力):プローブ30は、受信した操作指示を暗号化機能33に出力する。 # 3 (output operation instruction to device): The probe 30 outputs the received operation instruction to the encryption function 33.

#4(操作指示の暗号化):暗号化機能33は、プローブセッション鍵を用いて、取得した操作指示を暗号化する。ここで、プロセッション鍵は、図14に例示した処理でセキュアコンポーネント40により生成されたものである。 # 4 (encryption of operation instruction): The encryption function 33 encrypts the acquired operation instruction by using the probe session key. Here, the prosession key is generated by the secure component 40 in the process illustrated in FIG.

#5(暗号化操作指示の送信):プローブ30は、デバッグI/F32を介して暗号化された操作指示をデバイス50に送信する。デバイス50は、受信した暗号化操作指示をデバッグ対象CPU/SoC60のCPU/SoC内デバッグ機能62に送信する。 # 5 (Transmission of encryption operation instruction): The probe 30 transmits an encrypted operation instruction to the device 50 via the debug I / F 32. The device 50 transmits the received encryption operation instruction to the debug function 62 in the CPU / SoC of the CPU / SoC 60 to be debugged.

#6(デバイス側セキュアコンポーネントによる復号):CPU/SoC内デバッグ機能62は、受信した暗号化操作指示を、自身が保持するプローブセッション鍵で復号する。ここで、プロセッション鍵は、図14に例示した処理でセキュアコンポーネント70により生成されたものである。 # 6 (Decryption by the secure component on the device side): The debug function 62 in the CPU / SoC decodes the received encryption operation instruction with the probe session key held by itself. Here, the prosession key is generated by the secure component 70 in the process illustrated in FIG.

#7(デバッグ対象プログラムを操作):CPU/SoC内デバッグ機能62は、指示された内容でデバッグ対象CPU/SoC60を操作し、デバッグ対象プログラム61を操作するか、情報取得を行う。 # 7 (Operate the debug target program): The debug function 62 in the CPU / SoC operates the debug target CPU / SoC 60 with the instructed content, operates the debug target program 61, or acquires information.

#8(指示結果を受信):CPU/SoC内デバッグ機能62は、前述の#7の処理の指示結果を受け取る。 # 8 (Receive instruction result): The debug function 62 in the CPU / SoC receives the instruction result of the above-mentioned # 7 process.

#9(暗号化):CPU/SoC内デバッグ機能62は、受信した指示結果を、プロセッション鍵で暗号化する。 # 9 (encryption): The CPU / SoC debug function 62 encrypts the received instruction result with the prosession key.

#10(プローブへ指示結果を返送):CPU/SoC内デバッグ機能62は、暗号化した指示結果をプローブ30へ返送する。 # 10 (Returns the instruction result to the probe): The CPU / SoC debug function 62 returns the encrypted instruction result to the probe 30.

#11(暗号化機能へ転送):プローブ30は、デバイス50から受け取った指示結果を暗号化機能33へ転送する。 # 11 (Transfer to encryption function): The probe 30 transfers the instruction result received from the device 50 to the encryption function 33.

#12(操作指示の復号):暗号化機能33は、受け取った指示結果をプローブセッション鍵で復号する。 # 12 (Decryption of operation instruction): The encryption function 33 decrypts the received instruction result with the probe session key.

#13(組み込み機器開発PCへ指示結果を返送):プローブ30は、復号した指示結果を、組み込み機器開発PC20へ返送する。 # 13 (Returning the instruction result to the embedded device development PC): The probe 30 returns the decoded instruction result to the embedded device development PC 20.

#14(指示結果を表示):組み込み機器開発PC20は、プローブ30から受け取った指示結果をデバッグ操作環境21に反映し、プログラマに見せる。 # 14 (Display instruction result): The embedded device development PC 20 reflects the instruction result received from the probe 30 in the debug operation environment 21 and shows it to the programmer.

上述のように、デバイス50は、暗号化機能63(デバイス暗号化部、デバイス復号部)を備え、セキュアコンポーネント70は、プローブ30とデバイス50間のプローブセッション鍵(セッション鍵)を生成する相互認証機能72(鍵生成部)と、相互認証機能72で相互認証が成功した場合、生成したプローブセッション鍵をCPU/SoC内デバッグ機能62(デバイス50側)に提供する相互認証機能72(提供部)とを備え、暗号化機能63は、当該プローブセッション鍵を用いて、プローブ30に対して送出するデバッグ信号を暗号化し、暗号化機能63は、当該プローブセッション鍵を用いて、プローブ30から取得する、暗号化されたデバッグ信号を復号する。 As described above, the device 50 includes an encryption function 63 (device encryption unit, device decryption unit), and the secure component 70 is a mutual authentication that generates a probe session key (session key) between the probe 30 and the device 50. When mutual authentication is successful between the function 72 (key generation unit) and the mutual authentication function 72, the mutual authentication function 72 (providing unit) that provides the generated probe session key to the CPU / SoC internal debugging function 62 (device 50 side). The encryption function 63 uses the probe session key to encrypt the debug signal sent to the probe 30, and the encryption function 63 uses the probe session key to acquire the debug signal from the probe 30. , Decrypt the encrypted debug signal.

また、プローブ30は、暗号化機能33(デバイス暗号化部、デバイス復号部)を備え、セキュアコンポーネント40は、プローブ30とデバイス50間のプローブセッション鍵(セッション鍵)を生成する相互認証機能44(鍵生成部)と、相互認証機能44で相互認証が成功した場合、生成したプローブセッション鍵をプローブ30側に提供する相互認証機能44(提供部)とを備え、暗号化機能33は、当該プローブセッション鍵を用いて、デバイス50に対して送出するデバッグ信号を暗号化し、暗号化機能33は、当該プローブセッション鍵を用いて、デバイス50から取得する、暗号化されたデバッグ信号を復号する。 Further, the probe 30 includes an encryption function 33 (device encryption unit, device decryption unit), and the secure component 40 has a mutual authentication function 44 (session key) for generating a probe session key (session key) between the probe 30 and the device 50. The key generation unit) and the mutual authentication function 44 (providing unit) that provides the generated probe session key to the probe 30 side when the mutual authentication is successful with the mutual authentication function 44, and the encryption function 33 provides the probe. The session key is used to encrypt the debug signal sent to the device 50, and the encryption function 33 uses the probe session key to decrypt the encrypted debug signal acquired from the device 50.

このように、デバイス50とプローブ30の相互認証後、セキュアコンポーネント40、70がそれぞれセッション鍵をプローブ30、デバイス50に提供し、両者の暗号化通信を支援することにより、セキュアコンポーネント40、70をデバッグの時間的ボトルネックにせずに、セキュリティを確保することができる。 In this way, after mutual authentication between the device 50 and the probe 30, the secure components 40 and 70 provide the session key to the probe 30 and the device 50, respectively, and support the encrypted communication between the two, thereby providing the secure components 40 and 70. Security can be ensured without making it a time bottleneck for debugging.

上述の例では、プローブ30とデバイス50の両方において、セキュアコンポーネントからプローブセッション鍵の外部出力を行っているが、プローブ30とデバイス50のいずれか一方のみにおいて外部出力を実施してもよい。また、第1実施形態から第4実施形態の各例は、組み合わせて実施してもよい。例えば、プローブ機能を内蔵する組み込み機器開発PC20から、デバッグ対象CPU/SoC60内にセキュアコンポーネント70を内蔵するデバイス50をデバッグすることもできる。 In the above example, the external output of the probe session key is performed from the secure component in both the probe 30 and the device 50, but the external output may be performed in only one of the probe 30 and the device 50. Moreover, each example of 1st Embodiment to 4th Embodiment may be carried out in combination. For example, it is possible to debug the device 50 having the secure component 70 built in the CPU / SoC 60 to be debugged from the embedded device development PC 20 having the built-in probe function.

本実施の形態のデバイスは、デバッグ対象を有するデバイスであって、前記デバッグ対象をデバッグするためのデバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行う認証部を有するデバイス側セキュアコンポーネントを備え、前記デバイス側セキュアコンポーネントは、前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 The device of the present embodiment is a device having a debug target, and includes a device-side secure component having a device-side secure component provided in the debug device for debugging the debug target and a device-side secure component having an authentication unit for mutual authentication. When the mutual authentication is successful in the authentication unit, the device-side secure component sends and receives a debug signal to and from the device-side secure component.

本実施の形態のデバイスにおいて、前記デバイス側セキュアコンポーネントは、暗号化部と、復号部とを備え、前記暗号化部は、前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントに対して送出するデバッグ信号を暗号化し、前記復号部は、前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する。 In the device of the present embodiment, the device-side secure component includes an encryption unit and a decryption unit, and the encryption unit refers to the device-side secure component when mutual authentication is successful in the authentication unit. The decryption unit decodes the encrypted debug signal acquired from the device-side secure component when the mutual authentication is successful in the authentication unit.

本実施の形態のデバイスは、デバイス暗号化部と、デバイス復号部とを備え、前記デバイス側セキュアコンポーネントは、前記デバッグ機器とデバイス間のセッション鍵を生成する鍵生成部と、前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵をデバイス側に提供する提供部とを備え、前記デバイス暗号化部は、前記セッション鍵を用いて、前記デバッグ機器に対して送出するデバッグ信号を暗号化し、前記デバイス復号部は、前記セッション鍵を用いて、前記デバッグ機器から取得する、暗号化されたデバッグ信号を復号する。 The device of the present embodiment includes a device encryption unit and a device decryption unit, and the device-side secure component is a mutual key generation unit that generates a session key between the debug device and the device, and the authentication unit. When the authentication is successful, the device encryption unit includes a provider unit that provides the session key generated by the key generation unit to the device side, and the device encryption unit uses the session key to send a debug to the debug device. The signal is encrypted, and the device decoding unit uses the session key to decrypt the encrypted debug signal acquired from the debug device.

本実施の形態のデバイスにおいて、前記デバイス側セキュアコンポーネントは、利用者認証情報を取得する取得部と、前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部とを備え、前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする。 In the device of the present embodiment, the device-side secure component includes an acquisition unit that acquires user authentication information and a user authentication unit that performs user authentication based on the user authentication information acquired by the acquisition unit. In preparation for this, if the user authentication is successful in the user authentication unit, a debug signal can be sent and received.

本実施の形態のデバイスにおいて、前記デバイス側セキュアコンポーネントは、前記機器側セキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、外部装置との間で秘匿通信路を開設する開設部とを備え、前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする。 In the device of the present embodiment, the device-side secure component establishes a secret communication path between a storage unit that stores confidential information including information related to mutual authentication with the device-side secure component and an external device. It is provided with a unit, and the confidential information stored in the storage unit can be updated via the secret communication path established by the establishment unit.

本実施の形態のデバイスにおいて、前記デバイス側セキュアコンポーネントは、前記デバッグ対象を有する半導体チップとは別の半導体チップ内に構成され、秘匿通信路を介して前記デバッグ対象を有する半導体チップと接続される。 In the device of the present embodiment, the device-side secure component is configured in a semiconductor chip different from the semiconductor chip having the debug target, and is connected to the semiconductor chip having the debug target via a secret communication path. ..

本実施の形態のデバイスにおいて、前記デバイス側セキュアコンポーネントは、前記デバッグ対象を有する半導体チップ内に構成されている。 In the device of the present embodiment, the device-side secure component is configured in the semiconductor chip having the debug target.

本実施の形態のデバッグ機器は、デバッグ対象をデバッグするためのデバッグ機器であって、前記デバッグ対象を有するデバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う認証部を有する機器側セキュアコンポーネントを備え、前記機器側セキュアコンポーネントは、前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントとの間でデバッグ信号の授受を行う。 The debug device of the present embodiment is a debug device for debugging the debug target, and is a device-side secure component having an authentication unit that performs mutual authentication with the device-side secure component provided in the device having the debug target. When the mutual authentication is successful in the authentication unit, the device-side secure component sends and receives a debug signal to and from the device-side secure component.

本実施の形態のデバッグ機器において、前記機器側セキュアコンポーネントは、暗号化部と、復号部とを備え、前記暗号化部は、前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントに対して送出するデバッグ信号を暗号化し、前記復号部は、前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する。 In the debugging device of the present embodiment, the device-side secure component includes an encryption unit and a decryption unit, and the encryption unit becomes the device-side secure component when mutual authentication is successful in the authentication unit. The debug signal transmitted to the device is encrypted, and the decryption unit decodes the encrypted debug signal acquired from the device-side secure component when the mutual authentication is successful in the authentication unit.

本実施の形態のデバッグ機器は、デバッグ機器暗号化部と、デバッグ機器復号部とを備え、前記機器側セキュアコンポーネントは、前記デバイスとデバッグ機器間のセッション鍵を生成する鍵生成部と、前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵を機器側に提供する提供部とを備え、前記デバッグ機器暗号化部は、前記セッション鍵を用いて、前記デバイスに対して送出するデバッグ信号を暗号化し、前記デバッグ機器復号部は、前記セッション鍵を用いて、前記デバイスから取得する、暗号化されたデバッグ信号を復号する。 The debug device of the present embodiment includes a debug device encryption unit and a debug device decryption unit, and the device-side secure component includes a key generation unit that generates a session key between the device and the debug device, and the authentication. When the mutual authentication is successful in the unit, the unit includes a provider unit that provides the session key generated by the key generation unit to the device side, and the debug device encryption unit uses the session key to the device. The transmitted debug signal is encrypted, and the debug device decoding unit decodes the encrypted debug signal acquired from the device by using the session key.

本実施の形態のデバッグ機器において、前記機器側セキュアコンポーネントは、利用者認証情報を取得する取得部と、前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部とを備え、前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする。 In the debug device of the present embodiment, the device-side secure component includes an acquisition unit that acquires user authentication information and a user authentication unit that performs user authentication based on the user authentication information acquired by the acquisition unit. When the user authentication is successful in the user authentication unit, a debug signal can be sent and received.

本実施の形態のデバッグ機器において、前記機器側セキュアコンポーネントは、前記デバイス側セキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、外部装置との間で秘匿通信路を開設する開設部とを備え、前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする。 In the debug device of the present embodiment, the device-side secure component establishes a secret communication path between a storage unit that stores confidential information including information related to mutual authentication with the device-side secure component and an external device. It is provided with an opening unit, and the confidential information stored in the storage unit can be updated via the secret communication path established by the opening unit.

本実施の形態のセキュアコンポーネントは、デバッグ対象を有するデバイス又はデバッグ対象をデバッグするためのデバッグ機器に搭載されるセキュアコンポーネントであって、前記デバイス又は前記デバッグ機器に備えられた他のセキュアコンポーネントと相互認証を行う認証部を備え、前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントとの間でデバッグ信号の授受を行う。 The secure component of the present embodiment is a secure component mounted on a device having a debug target or a debug device for debugging the debug target, and is mutually with the device or another secure component provided on the debug device. It is provided with an authentication unit that performs authentication, and when mutual authentication is successful in the authentication unit, a debug signal is exchanged with the other secure component.

本実施の形態のセキュアコンポーネントは、暗号化部と、復号部とを備え、前記暗号化部は、前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントに対して送出するデバッグ信号を暗号化し、前記復号部は、前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する。 The secure component of the present embodiment includes an encryption unit and a decryption unit, and the encryption unit sends a debug signal to the other secure component when mutual authentication is successful in the authentication unit. The encryption unit decrypts the encrypted debug signal acquired from the other secure component when the mutual authentication is successful in the authentication unit.

本実施の形態のセキュアコンポーネントは、前記デバッグ機器とデバイス間のセッション鍵を生成する鍵生成部と、前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵を、前記セキュアコンポーネントを搭載する前記デバイス又は前記デバッグ機器に提供する提供部とを備える。 The secure component of the present embodiment secures the key generation unit that generates the session key between the debug device and the device, and the session key generated by the key generation unit when mutual authentication is successful in the authentication unit. It includes a providing unit provided to the device or the debugging device on which the component is mounted.

本実施の形態のセキュアコンポーネントは、利用者認証情報を取得する取得部と、前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部とを備え、前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする。 The secure component of the present embodiment includes an acquisition unit that acquires user authentication information and a user authentication unit that performs user authentication based on the user authentication information acquired by the acquisition unit, and the user authentication If the user authentication is successful in the department, the debug signal can be sent and received.

本実施の形態のセキュアコンポーネントは、前記他のセキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、外部装置との間で秘匿通信路を開設する開設部とを備え、前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする。 The secure component of the present embodiment includes a storage unit that stores confidential information including information related to mutual authentication with the other secure component, and an opening unit that establishes a secret communication path between the external device and the above. The confidential information stored in the storage unit can be updated via the confidential communication path established by the establishment unit.

本実施の形態のセキュアコンポーネントは、セキュアエレメント、トラステッド・プラットフォーム・モジュール又はトラステッド実行環境のいずれかにより構成される。 The secure component of this embodiment is composed of either a secure element, a trusted platform module, or a trusted execution environment.

本実施の形態のデバッグシステムは、デバッグ対象を有するデバイスと、デバッグ対象をデバッグするためのデバッグ機器とを備えるデバッグシステムであって、前記デバイスは、前記デバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行うデバイス側認証部を有するデバイス側セキュアコンポーネントを備え、前記デバッグ機器は、前記デバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う機器側認証部を有する機器側セキュアコンポーネントを備え、前記デバイス側認証部及び機器側認証部それぞれで相互認証が成功した場合、前記デバイス側と前記機器側との間でデバッグ信号の授受を行う。 The debug system of the present embodiment is a debug system including a device having a debug target and a debug device for debugging the debug target, and the device is a device-side secure component provided in the debug device. The debug device includes a device-side secure component having a device-side authentication unit that performs mutual authentication, and the debug device includes a device-side secure component having a device-side authentication unit that performs mutual authentication with the device-side secure component provided in the device. When mutual authentication is successful in each of the device-side authentication unit and the device-side authentication unit, a debug signal is exchanged between the device side and the device side.

本実施の形態のデバッグ方法は、デバッグ対象を有するデバイスに搭載されたデバイス側セキュアコンポーネントは、前記デバッグ対象をデバッグするためのデバッグ機器に搭載された機器側セキュアコンポーネントと相互認証を行い、前記機器側セキュアコンポーネントは、前記デバイス側セキュアコンポーネントと相互認証を行い、前記相互認証それぞれが成功した場合、前記デバイス側と前記機器側との間でデバッグ信号の授受を行う。 In the debugging method of the present embodiment, the device-side secure component mounted on the device having the debug target performs mutual authentication with the device-side secure component mounted on the debug device for debugging the debug target, and the device. The side secure component performs mutual authentication with the device side secure component, and if each of the mutual authentications is successful, a debug signal is exchanged between the device side and the device side.

10 デバッグ環境管理サーバ
11 秘匿通信機能
20 組み込み機器開発PC
21 デバッグ操作環境
22 PC側デバッガ
23 デバッグプローブI/F
25 デバッガ-デバイスI/F
30 プローブ
31 PC側デバッガI/F
32 デバッグI/F
40 セキュアコンポーネント
41 秘匿通信機能
42 利用者認証機能
43 暗号化機能
44 相互認証機能
45 認証許可リスト
50 デバイス
51 デバッグI/F
52 PC-CPU/SoCデバッグI/F
60 デバッグ対象CPU/SoC
61 デバッグ対象プログラム
62 CPU/SoC内デバッグ機能
63 暗号化機能
64 鍵共有機能
70 セキュアコンポーネント
71 暗号化機能
72 相互認証機能
73 利用者認証機能
74 秘匿通信機能
75 認証許可リスト
10 Debug environment management server 11 Confidential communication function 20 Embedded device development PC
21 Debug operation environment 22 PC side debugger 23 Debug probe I / F
25 Debugger-Device I / F
30 Probe 31 PC side debugger I / F
32 Debug I / F
40 Secure component 41 Confidential communication function 42 User authentication function 43 Encryption function 44 Mutual authentication function 45 Authentication permission list 50 Devices 51 Debug I / F
52 PC-CPU / SoC Debug I / F
60 Debug target CPU / SoC
61 Debug target program 62 CPU / SOC debug function 63 Encryption function 64 Key sharing function 70 Secure component 71 Encryption function 72 Mutual authentication function 73 User authentication function 74 Secret communication function 75 Authentication permission list

Claims (20)

デバッグ対象を有するデバイスであって、
前記デバッグ対象をデバッグするためのデバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行う認証部を有するデバイス側セキュアコンポーネントを備え、
前記デバイス側セキュアコンポーネントは、
前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントとの間でデバッグ信号の授受を行う、
デバイス。
A device that has a debug target
It is provided with a device-side secure component provided in the debug device for debugging the debug target and a device-side secure component having an authentication unit for mutual authentication.
The device-side secure component is
If the mutual authentication is successful in the authentication unit, a debug signal is exchanged with the secure component on the device side.
device.
前記デバイス側セキュアコンポーネントは、
暗号化部と、
復号部と
を備え、
前記暗号化部は、
前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントに対して送出するデバッグ信号を暗号化し、
前記復号部は、
前記認証部で相互認証が成功した場合、前記機器側セキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する、
請求項1に記載のデバイス。
The device-side secure component is
The encryption part and
Equipped with a decryption section
The encryption unit
If mutual authentication is successful in the authentication unit, the debug signal sent to the device-side secure component is encrypted.
The decoding unit
If the mutual authentication is successful in the authentication unit, the encrypted debug signal acquired from the device-side secure component is decrypted.
The device according to claim 1.
デバイス暗号化部と、
デバイス復号部と
を備え、
前記デバイス側セキュアコンポーネントは、
前記デバッグ機器とデバイス間のセッション鍵を生成する鍵生成部と、
前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵をデバイス側に提供する提供部と
を備え、
前記デバイス暗号化部は、
前記セッション鍵を用いて、前記デバッグ機器に対して送出するデバッグ信号を暗号化し、
前記デバイス復号部は、
前記セッション鍵を用いて、前記デバッグ機器から取得する、暗号化されたデバッグ信号を復号する、
請求項1に記載のデバイス。
Device encryption unit and
Equipped with a device decryption unit
The device-side secure component is
A key generator that generates a session key between the debug device and the device,
If the mutual authentication is successful in the authentication unit, the device is provided with a provider unit that provides the session key generated by the key generation unit to the device side.
The device encryption unit
Using the session key, the debug signal sent to the debug device is encrypted.
The device decoding unit
The session key is used to decrypt the encrypted debug signal obtained from the debug device.
The device according to claim 1.
前記デバイス側セキュアコンポーネントは、
利用者認証情報を取得する取得部と、
前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部と
を備え、
前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする、
請求項1から請求項3のいずれか一項に記載のデバイス。
The device-side secure component is
The acquisition department that acquires user authentication information,
It is equipped with a user authentication unit that authenticates users based on the user authentication information acquired by the acquisition unit.
If the user authentication is successful in the user authentication unit, it is possible to send and receive debug signals.
The device according to any one of claims 1 to 3.
前記デバイス側セキュアコンポーネントは、
前記機器側セキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、
外部装置との間で秘匿通信路を開設する開設部と
を備え、
前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする、
請求項1から請求項4のいずれか一項に記載のデバイス。
The device-side secure component is
A storage unit that stores confidential information including information related to mutual authentication with the device-side secure component, and a storage unit.
It has an opening section that opens a secret communication channel with an external device.
The confidential information stored in the storage unit can be updated via the confidential communication path established by the establishment unit.
The device according to any one of claims 1 to 4.
前記デバイス側セキュアコンポーネントは、前記デバッグ対象を有する半導体チップとは別の半導体チップ内に構成され、秘匿通信路を介して前記デバッグ対象を有する半導体チップと接続される、
請求項1から請求項5のいずれか一項に記載のデバイス。
The device-side secure component is configured in a semiconductor chip different from the semiconductor chip having the debug target, and is connected to the semiconductor chip having the debug target via a secret communication path.
The device according to any one of claims 1 to 5.
前記デバイス側セキュアコンポーネントは、前記デバッグ対象を有する半導体チップ内に構成されている、
請求項1から請求項5のいずれか一項に記載のデバイス。
The device-side secure component is configured in the semiconductor chip having the debug target.
The device according to any one of claims 1 to 5.
デバッグ対象をデバッグするためのデバッグ機器であって、
前記デバッグ対象を有するデバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う認証部を有する機器側セキュアコンポーネントを備え、
前記機器側セキュアコンポーネントは、
前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントとの間でデバッグ信号の授受を行う、
デバッグ機器。
A debugging device for debugging the debug target,
It is provided with a device-side secure component provided in the device having the debug target and a device-side secure component having an authentication unit that performs mutual authentication.
The device-side secure component is
If mutual authentication is successful in the authentication unit, a debug signal is exchanged with the device-side secure component.
Debugging equipment.
前記機器側セキュアコンポーネントは、
暗号化部と、
復号部と
を備え、
前記暗号化部は、
前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントに対して送出するデバッグ信号を暗号化し、
前記復号部は、
前記認証部で相互認証が成功した場合、前記デバイス側セキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する、
請求項8に記載のデバッグ機器。
The device-side secure component is
The encryption part and
Equipped with a decryption section
The encryption unit
If mutual authentication is successful in the authentication unit, the debug signal sent to the device-side secure component is encrypted.
The decoding unit
If the mutual authentication is successful in the authentication unit, the encrypted debug signal acquired from the device-side secure component is decrypted.
The debug device according to claim 8.
デバッグ機器暗号化部と、
デバッグ機器復号部と
を備え、
前記機器側セキュアコンポーネントは、
前記デバイスとデバッグ機器間のセッション鍵を生成する鍵生成部と、
前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵を機器側に提供する提供部と
を備え、
前記デバッグ機器暗号化部は、
前記セッション鍵を用いて、前記デバイスに対して送出するデバッグ信号を暗号化し、
前記デバッグ機器復号部は、
前記セッション鍵を用いて、前記デバイスから取得する、暗号化されたデバッグ信号を復号する、
請求項8に記載のデバッグ機器。
Debug device encryption part and
Equipped with a debug device decoding unit
The device-side secure component is
A key generator that generates a session key between the device and the debug device,
If the mutual authentication is successful in the authentication unit, the device is provided with a provider unit that provides the session key generated by the key generation unit to the device side.
The debug device encryption unit
The session key is used to encrypt the debug signal sent to the device.
The debug device decoding unit
The session key is used to decrypt the encrypted debug signal obtained from the device.
The debug device according to claim 8.
前記機器側セキュアコンポーネントは、
利用者認証情報を取得する取得部と、
前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部と
を備え、
前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする、
請求項8から請求項10のいずれか一項に記載のデバッグ機器。
The device-side secure component is
The acquisition department that acquires user authentication information,
It is equipped with a user authentication unit that authenticates users based on the user authentication information acquired by the acquisition unit.
If the user authentication is successful in the user authentication unit, it is possible to send and receive debug signals.
The debug device according to any one of claims 8 to 10.
前記機器側セキュアコンポーネントは、
前記デバイス側セキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、
外部装置との間で秘匿通信路を開設する開設部と
を備え、
前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする、
請求項8から請求項11のいずれか一項に記載のデバッグ機器。
The device-side secure component is
A storage unit that stores confidential information including information related to mutual authentication with the device-side secure component, and a storage unit.
It has an opening section that opens a secret communication channel with an external device.
The confidential information stored in the storage unit can be updated via the confidential communication path established by the establishment unit.
The debug device according to any one of claims 8 to 11.
デバッグ対象を有するデバイス又はデバッグ対象をデバッグするためのデバッグ機器に搭載されるセキュアコンポーネントであって、
他のデバッグ機器又は他のデバイスに備えられた他のセキュアコンポーネントと相互認証を行う認証部を備え、
前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントとの間でデバッグ信号の授受を行う、
セキュアコンポーネント。
A secure component installed in a device that has a debug target or a debug device for debugging the debug target.
It has an authentication unit that performs mutual authentication with other secure components provided in other debug devices or other devices.
If mutual authentication is successful in the authentication unit, a debug signal is exchanged with the other secure component.
Secure component.
暗号化部と、
復号部と
を備え、
前記暗号化部は、
前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントに対して送出するデバッグ信号を暗号化し、
前記復号部は、
前記認証部で相互認証が成功した場合、前記他のセキュアコンポーネントから取得する、暗号化されたデバッグ信号を復号する、
請求項13に記載のセキュアコンポーネント。
The encryption part and
Equipped with a decryption section
The encryption unit
If mutual authentication is successful in the authentication unit, the debug signal sent to the other secure component is encrypted.
The decoding unit
If the mutual authentication is successful in the authentication unit, the encrypted debug signal obtained from the other secure component is decrypted.
The secure component according to claim 13.
前記デバッグ機器とデバイス間のセッション鍵を生成する鍵生成部と、
前記認証部で相互認証が成功した場合、前記鍵生成部で生成したセッション鍵を、前記セキュアコンポーネントを搭載する前記デバイス又は前記デバッグ機器に提供する提供部と
を備える、
請求項13に記載のセキュアコンポーネント。
A key generator that generates a session key between the debug device and the device,
When the mutual authentication is successful in the authentication unit, the session key generated by the key generation unit is provided with a providing unit that provides the device equipped with the secure component or the debugging device.
The secure component according to claim 13.
利用者認証情報を取得する取得部と、
前記取得部で取得した利用者認証情報に基づいて利用者認証を行う利用者認証部と
を備え、
前記利用者認証部で利用者認証が成功した場合、デバッグ信号の授受を可能にする、
請求項13から請求項15のいずれか一項に記載のセキュアコンポーネント。
The acquisition department that acquires user authentication information,
It is equipped with a user authentication unit that authenticates users based on the user authentication information acquired by the acquisition unit.
If the user authentication is successful in the user authentication unit, it is possible to send and receive debug signals.
The secure component according to any one of claims 13 to 15.
前記他のセキュアコンポーネントとの相互認証に関する情報を含む秘匿情報を記憶する記憶部と、
外部装置との間で秘匿通信路を開設する開設部と
を備え、
前記開設部が開設した秘匿通信路を介して、前記記憶部に記憶した秘匿情報を更新可能とする、
請求項13から請求項16のいずれか一項に記載のセキュアコンポーネント。
A storage unit that stores confidential information including information related to mutual authentication with the other secure component, and a storage unit.
It has an opening section that opens a secret communication channel with an external device.
The confidential information stored in the storage unit can be updated via the confidential communication path established by the establishment unit.
The secure component according to any one of claims 13 to 16.
セキュアエレメント、トラステッド・プラットフォーム・モジュール又はトラステッド実行環境のいずれかにより構成される、
請求項13から請求項17のいずれか一項に記載のセキュアコンポーネント。
Consists of either a secure element, a trusted platform module, or a trusted execution environment,
The secure component according to any one of claims 13 to 17.
デバッグ対象を有するデバイスと、デバッグ対象をデバッグするためのデバッグ機器とを備えるデバッグシステムであって、
前記デバイスは、
前記デバッグ機器に備えられた機器側セキュアコンポーネントと相互認証を行うデバイス側認証部を有するデバイス側セキュアコンポーネントを備え、
前記デバッグ機器は、
前記デバイスに備えられたデバイス側セキュアコンポーネントと相互認証を行う機器側認証部を有する機器側セキュアコンポーネントを備え、
前記デバイス側認証部及び機器側認証部それぞれで相互認証が成功した場合、前記デバイス側と前記機器側との間でデバッグ信号の授受を行う、
デバッグシステム。
A debugging system equipped with a device having a debugging target and a debugging device for debugging the debugging target.
The device
A device-side secure component having a device-side authentication unit that performs mutual authentication with the device-side secure component provided in the debug device is provided.
The debug device is
A device-side secure component having a device-side authentication unit that performs mutual authentication with the device-side secure component provided in the device is provided.
When mutual authentication is successful in each of the device-side authentication unit and the device-side authentication unit, a debug signal is exchanged between the device side and the device side.
Debug system.
デバッグ対象を有するデバイスに搭載されたデバイス側セキュアコンポーネントは、
前記デバッグ対象をデバッグするためのデバッグ機器に搭載された機器側セキュアコンポーネントと相互認証を行い、
前記機器側セキュアコンポーネントは、前記デバイス側セキュアコンポーネントと相互認証を行い、
前記相互認証それぞれが成功した場合、前記デバイス側と前記機器側との間でデバッグ信号の授受を行う、
デバッグ方法。
The device-side secure component installed in the device to be debugged is
Mutual authentication is performed with the device-side secure component installed in the debug device for debugging the debug target.
The device-side secure component performs mutual authentication with the device-side secure component, and the device-side secure component performs mutual authentication.
If each of the mutual authentications is successful, a debug signal is exchanged between the device side and the device side.
How to debug.
JP2021002228A 2021-01-08 2021-01-08 Device, debugging instrument, secure component, debugging system, and debugging method Pending JP2022107344A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021002228A JP2022107344A (en) 2021-01-08 2021-01-08 Device, debugging instrument, secure component, debugging system, and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021002228A JP2022107344A (en) 2021-01-08 2021-01-08 Device, debugging instrument, secure component, debugging system, and debugging method

Publications (1)

Publication Number Publication Date
JP2022107344A true JP2022107344A (en) 2022-07-21

Family

ID=82457430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021002228A Pending JP2022107344A (en) 2021-01-08 2021-01-08 Device, debugging instrument, secure component, debugging system, and debugging method

Country Status (1)

Country Link
JP (1) JP2022107344A (en)

Similar Documents

Publication Publication Date Title
US7155616B1 (en) Computer network comprising network authentication facilities implemented in a disk drive
TWI489315B (en) System and method for temporary secure boot of an electronic device
CN100447798C (en) Method and system for using a portable computing device as a smart key device
JP5860815B2 (en) System and method for enforcing computer policy
KR100879907B1 (en) System and method for security of computing devices
US7215771B1 (en) Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
JP4550050B2 (en) Usage authentication method, usage authentication program, information processing apparatus, and recording medium
US8909932B2 (en) Method and apparatus for security over multiple interfaces
US20050283826A1 (en) Systems and methods for performing secure communications between an authorized computing platform and a hardware component
US7228430B2 (en) Security system for preventing a personal computer from being used by an unauthorized people
CN109410406A (en) A kind of authorization method, device and system
US8953805B2 (en) Authentication information generating system, authentication information generating method, client apparatus, and authentication information generating program for implementing the method
JP2004040717A (en) Equipment authentication system
JP2004213216A (en) Information security microcomputer and its program developing device and program development system
CN106603487A (en) Method for safe improvement of TLS protocol processing based on CPU space-time isolation mechanism
JP2001118034A (en) Ic card using device, ic card, and storage medium
JP4409497B2 (en) How to send confidential information
CN110740036A (en) Anti-attack data confidentiality method based on cloud computing
JP2022107344A (en) Device, debugging instrument, secure component, debugging system, and debugging method
CN113297563B (en) Method and device for accessing privileged resources of system on chip and system on chip
JP2011199594A (en) Initial setting method and initial setting apparatus for terminal
JP2002247021A (en) Method and device for displaying access limited contents
CN112311752A (en) Internet of things smart meter safety system and implementation method
Brauchler et al. Multi-level access protection for future IEEE P1687. 1 IJTAG networks
JP2002232410A (en) Equipment and method for communicating ciphered data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231128