JP7383589B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP7383589B2
JP7383589B2 JP2020158163A JP2020158163A JP7383589B2 JP 7383589 B2 JP7383589 B2 JP 7383589B2 JP 2020158163 A JP2020158163 A JP 2020158163A JP 2020158163 A JP2020158163 A JP 2020158163A JP 7383589 B2 JP7383589 B2 JP 7383589B2
Authority
JP
Japan
Prior art keywords
interrupt
storage unit
processor
interrupt request
secure
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.)
Active
Application number
JP2020158163A
Other languages
English (en)
Other versions
JP2022052018A (ja
Inventor
幹生 橋本
雅己 相沢
悟 鈴木
常喜 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
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 Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2020158163A priority Critical patent/JP7383589B2/ja
Priority to US17/465,194 priority patent/US11550619B2/en
Publication of JP2022052018A publication Critical patent/JP2022052018A/ja
Application granted granted Critical
Publication of JP7383589B2 publication Critical patent/JP7383589B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、情報処理装置に関する。
従来、割り込み処理のアドレス情報を1回のみ書き込み可能なロジック回路に記憶させる技術がある。
しかしながら、全ての割り込み処理のアドレスを1回のみ書き込み可能な回路に記憶させてしまうと、割り込み処理のアドレスを修正することができない。また、全ての割り込み処理のアドレスを記憶してしまうと、ある特定の割り込み処理のアドレスが改ざんされてしまうリスクがある。よって、ある特定の割り込み処理を確実に実行させつつ、他の割り込み処理のアドレスを変更可能とすることが望まれる。
実開平5-75845号公報
一つの実施形態は、ある特定の割り込み処理を確実に実行させつつ、他の割り込み処理のアドレスを変更可能とする情報処理装置を提供することを目的とする。
一つの実施形態によれば、情報処理装置は、プロセッサと、第1記憶部と、第2記憶部と、スリープ検知部と、フェッチ検知部と、アドレス入力部とを、備える。第1記憶部は、複数の割り込み要求に関するベクタアドレスを記憶する。プロセッサがバスを介して複数の割り込み要求に関するベクタアドレスをフェッチすることができる。複数の割り込み要求はプロセッサがスリープ状態であることを条件に実行する第1割り込み要求に関するベクタアドレスを含む。第2記憶部は、第1割り込みに関する第1ベクタアドレスを記憶する。スリープ検知部は、第1割り込み要求が入力された後、プロセッサがスリープ状態になったことを検知する。フェッチ検知部は、プロセッサのスリープ状態が検知された後に、第1記憶部からの第1割り込み要求のベクタアドレスのフェッチをバス監視により検知する。アドレス入力部は、第1割り込みのベクタアドレスのフェッチ検知された場合、第2記憶部で記憶している第1ベクタアドレスをプロセッサに入力する。第1ベクタアドレスは、起動時に第2記憶部に記憶される。情報処理装置は、ランダムアクセスメモリおよびフラッシュメモリをさらに備える。第1記憶部は、ランダムアクセスメモリおよびフラッシュメモリの両方に配置される。フラッシュメモリは、第1記憶部に加えてプログラムが格納される第3記憶部がさらに配置される。プロセッサは、XIP機能(eXecute In Place)機能により、プログラムの実行時に、フラッシュメモリに配置された第1記憶部および第3記憶部を直接参照する。
図1は、実施形態にかかる情報処理装置が適用されたマイクロコンピュータのハードウェア構成の一例を示す模式的な図である。 図2は、実施形態にかかるマイクロコンピュータの機能構成の一例を示すブロック図である。 図3は、実施形態にかかるマイクロコンピュータのセキュア割り込み処理の動作を示すシーケンス図である。 図4は、実施形態にかかるマイクロコンピュータのセキュア割り込み処理の動作タイミングおよび制御信号の流れの一例を示す図である。 図5は、実施形態にかかるリモートアテステーションを実行するシステム構成図である。 図6は、実施形態にかかるリモートアテステーションの動作を示すフローチャートである。
以下に添付図面を参照して、実施形態にかかる情報処理装置が適用されたマイクロコンピュータについて説明する。なお、実施形態にかかる情報処理装置を適用できる装置はマイクロコンピュータだけに限定されない。実施形態にかかる情報処理装置は、コンピュータプログラムが格納されるメモリと、当該コンピュータプログラムを実行するプロセッサと、を備えた任意の装置に適用され得る。なお、この実施形態により本発明が限定されるものではない。
(実施形態)
図1は、実施形態にかかる情報処理装置が適用されたマイクロコンピュータのハードウェア構成の一例を示す模式的な図である。マイクロコンピュータ1は、例えば、通信I/F(Interface)10を介してサーバ装置と接続されている。マイクロコンピュータ1は、センサ装置等に組み込まれる。センサ装置は、例えば、3分に1回数秒かけて非検体の濃度値を測定する。マイクロコンピュータ1は、1日に1回プログラム改ざんされていないか否かを検証する。仮にマイクロコンピュータ1が実行するアプリケーションが、不正プログラムによって乗っ取られた場合でも上記検証が行われる必要がある。
以下の説明においては、アプリケーションを主機能、アプリケーションが不正プログラムにより乗っ取りを受けていないかを判定する検証機能を補助機能とする。補助機能により不正プログラムの兆候を検出した場合は、主機能の誤動作を防止するため完全停止もしくは再起動等の処置をとる。不正プログラムの兆候が検出されない場合、主機能は所定の期間、計測もしくは制御処理を継続して実行する。処理が終了するとスリープ状態に入り、不要な電力消費を抑制する。主機能動作中の計測・制御処理の品質低下を抑えるため、検証機能は主機能がスリープ状態にあるときを優先して実行されることを目標とする。計測・制御処理の実行の都度、初期化処理を実行することを抑制するため、不正プログラムが検知されない場合、電池寿命の期間リセットは行わない。
マイクロコンピュータ1は、CPU2、マスクROM3、セキュアタイマ4、状態管理コントローラ5、バス監視コントローラ6、SRAM7、命令フラッシュメモリ8、MAC生成管理コントローラ9、通信I/F10、アンテナ11、および内部バス12を備えている。
なお、CPU2、マスクROM3、状態管理コントローラ5、バス監視コントローラ6、SRAM7、命令フラッシュメモリ8、MAC生成管理コントローラ9、および通信I/F10は、内部バス12に接続されている。通信I/F10の内部にデータ受信時に自動メモリ転送を行うため、CPUもしくはDMAC(Direct Memory Access Controller)によるバスマスタ13を備える。
CPU2は、種々のプログラムを実行することができるプロセッサであり、いわゆるコアプロセッサである。CPU2は、プログラムに応じた機能を実現する。
マスクROM3は、書き換え不可能な不揮発性メモリである。マスクROM3の内容は、工場においてマイクロコンピュータ1のハードウェアを製造する際に固定される。
セキュアタイマ4は、時間を計測し、所定の時間が経過したときにセキュア割り込み要求を状態管理コントローラ5へ出力する。すなわち、セキュア割り込み要求は、セキュアタイマ4により要求される。なお、セキュアタイマ4以外に、外部装置等が、セキュア割り込み要求をしてもよい。
状態管理コントローラ5は、セキュア割り込み要求が入力されると、CPU2のスリープ状態を検知することで、CPU2が実行するセキュア割り込みの処理状態を管理する。
バス監視コントローラ6は、CPU2のスリープ状態が検知されると、バスを監視することで、CPU2からのセキュア割り込みのベクタアドレスのフェッチを検知する。バス監視コントローラ6は、セキュア割り込みのベクタアドレスを記憶するための記憶手段を有している。
SRAM7は、揮発性メモリである。SRAM7は、汎用RAM71とセキュア割り込み専用RAM72を有する。汎用RAM71は、各種プログラムがロードされる領域として機能する。また、汎用RAM71は、外部装置とマイクロコンピュータ1との間で転送されるユーザデータのバッファとしても機能するほか、スタックなど主機能、補助機能が使用する汎用データを格納する。また、汎用RAM71は、割り込みベクタを保持する。この割り込みベクタは、各割り込み処理の実行プログラムの割り込みベクタアドレスを保持するテーブル情報である。
セキュア割り込み専用RAM72は、セキュア割り込み処理がロードされる領域として機能する。また、セキュア割り込み専用RAM72は、セキュア割り込みの処理結果を保持する領域としても機能する。
命令フラッシュメモリ8は、不揮発性メモリであり、各種機能を実現するプログラムを記憶する。具体的に、命令フラッシュメモリ8は、セキュア割り込み用プログラム81およびRTOS82を記憶する。セキュア割り込み用プログラム81は、セキュア割り込み処理をするためのプログラムである。RTOS82は、リアルタイムOSである。なお、命令フラッシュメモリ8は、他の各種プログラムを記憶するようにしてもよい。また、組込CPUにおいては、フラッシュメモリに格納されたプログラムを直接実行する機能(XIP機能(eXecute In Place))を持つものがある。この場合は汎用RAM71、セキュア割り込み専用RAM72へのプログラムロードは不要となる。
MAC生成管理コントローラ9は、署名生成処理をする。MAC生成管理コントローラ9は、秘密鍵を記憶しておくための記憶手段を有している。
アンテナ11は、通信I/F10と電気的に接続されている。通信I/F10は、アンテナ11を介して無線信号を送受信する。
通信I/F10は、外部装置との通信を行うインタフェース装置である。また、通信I/F10は、外部装置から受信した要求をCPU2に転送することができる。通信I/F10は、外部装置から送られてきたデータを、バスマスタ13によりSRAM7にバッファすることができる。
図2は、実施形態にかかるマイクロコンピュータ1の機能の一例を示すブロック図である。マイクロコンピュータ1は、割り込み処理部21と、チャレンジ値取得部22と、送信部23とを有する。CPU2が、RTOS82や当該RTOS82上で稼働するプログラムを実行することで、割り込み処理部21と、チャレンジ値取得部22と、送信部23とを実現する。
また、マイクロコンピュータ1は、スリープ検知部51を有する。状態管理コントローラ5の論理回路が、スリープ信号検知を含む予め設定されたセキュア割り込み条件を検出することで、スリープ検知部51を実現する。
また、マイクロコンピュータ1は、ベクタアドレス記憶部61と、フェッチ検知部62と、アドレス入力部63とを有する。バス監視コントローラ6が有する所定の記憶手段によりベクタアドレス記憶部61を実現する。また、バス監視コントローラ6の論理回路がフェッチ検知部62およびアドレス入力部63を実現する。
また、マイクロコンピュータ1は、MAC生成機能有効化管理部91と、秘密鍵記憶部92と、MAC生成部93とを有する。MAC生成管理コントローラ9の論理回路が、MAC生成機能有効化管理部91およびMAC生成部93を実現する。また、MAC生成管理コントローラ9が有する所定の記憶手段により秘密鍵記憶部92を実現する。MAC(Message Authentication Code)はハッシュもしくは対称鍵暗号による改ざん検証タグを表し、署名と書かれた場合は一般には非対称鍵署名に限定して用いられる。以下においてMAC生成機能と書かれた箇所は、非対称鍵署名に置き換えても本実施形態の実施上差し支えない。具体的には、秘密鍵に基づくMAC生成機能を非対称鍵署名機能、生成されたMACを署名と、それぞれ読み替えて適用することができる。
割り込み処理部21は、スリープ時にセキュア割り込み要求を受け付けると、SRAM7から当該セキュア割り込み用のプログラムの割り込みベクタアドレスを取得する。割り込みベクタアドレスとは、割り込みのプログラムが保持されているアドレスを示す情報、いわゆるエントリポイントである。例えば、割り込みベクタアドレスは、セキュア割り込み用プログラム81のアドレスを示す。
また、割り込み処理部21は、入力された割り込みベクタアドレスに基づいて、セキュア割り込み処理を実行し、実行結果を出力する。セキュア割り込みとは、RTOS82がセキュアな状態であるかどうかを判断する割り込み処理である。RTOS82がセキュアな状態とは、例えば、プログラム改ざんされていない状態をいい、スタックデータの破壊がなされていないことなどをいう。
CPU2は、いわゆるセキュアモードで起動した後に、非セキュアモードに遷移すると、起動時のセキュアモードに遷移しないようにしてもよい。この場合、起動時のセキュアモードのセキュアファームウェアに脆弱性があっても攻撃を受けないという利点がある。この場合、CPU2は、セキュア割り込み処理をすることで、通信経由により不正ソフトウェアが侵入した兆候の有無を判断する。当該侵入の兆候の例として、スタックデータの破壊などがある。
チャレンジ値取得部22は、外部装置からチャレンジ値を取得する。チャレンジ値取得部22は、RTOS82を動作させている際、通信I/F10を介して、外部装置であるサーバ装置等からランダムチャレンジ値を取得する。
送信部23は、ランダムチャレンジ値と、セキュア割り込み処理結果と、署名とを外部装置へ通信I/F10を介して、送信制御する。
スリープ検知部51は、セキュア割り込み要求が入力されると、CPU2がスリープ状態になったか否かを判断する。例えば、スリープ検知部51は、CPU2からスリープ状態であることを示す信号を受信することで、CPU2がスリープ状態になったと判断する。
スリープ検知部51は、CPU2がスリープ状態になったことを検知すると、バス監視コントローラ6へスリープ状態になったことを示す信号を出力する。このスリープ状態になったことを示す信号は、バス監視コントローラ6に対してデータすり替え要求を示す信号である。また、状態管理コントローラ5は、CPU2に対してセキュア割り込み要求を通知する。
ベクタアドレス記憶部61は、セキュア割り込みのベクタアドレスを記憶している。例えば、バス監視コントローラ6は、マイクロコンピュータ1の起動時に、セキュア割り込みのベクタアドレスを記憶する。なお、ベクタアドレス記憶部61は、予めセキュア割り込みのベクタアドレスを記憶していてもよい。
フェッチ検知部62は、CPU2のスリープ状態が検知された後に、セキュア割り込みのベクタアドレスのフェッチを検知する。
アドレス入力部63は、セキュア割り込みのベクタアドレスのフェッチを検知すると、ベクタアドレス記憶部61からセキュア割り込みのベクタアドレスをCPU2へ入力する。
MAC生成機能有効化管理部91は、MAC生成機能を有効化するか否かを管理する。MAC生成機能有効化管理部91は、セキュア割り込み処理時のみMAC生成機能を有効化するように制御する。
秘密鍵記憶部92は、MAC生成用の秘密鍵(以下MAC鍵)を記憶する。MAC生成管理コントローラ9が、MAC鍵を保持することで、セキュア割り込み処理およびRTOS82により、MAC鍵を直接アクセスすることを防止する。これにより、マイクロコンピュータ1は、MAC鍵の隔離を強固にすることができる。MAC生成部93は、MAC生成する。
続いて、セキュア割り込み処理について説明する。図3は、実施形態にかかるマイクロコンピュータ1のセキュア割り込み処理を示すシーケンス図である。
まず、状態管理コントローラ5は、セキュア割り込み要求を受け付ける(S1)。そして、状態管理コントローラ5は、CPU2がスリープ状態になるまで待つ。そして、CPU2がスリープ状態となり(S2)、CPU2が、スリープ状態であることを示す信号を状態管理コントローラ5へ送出する(S3)。状態管理コントローラ5は、当該スリープ状態であることを示す信号を取得することで、CPU2がスリープ状態であることを検知する(S4)。
続いて、状態管理コントローラ5は、データすり替え要求が有効である旨の信号をバス監視コントローラ6へ送出する(S5)。また、状態管理コントローラ5は、CPU2へセキュア割り込み処理を指示する信号を送出する(S6)。
バス監視コントローラ6は、データすり替え要求が有効である旨の信号を取得すると、内部バス12の監視を開始する(S7)。また、CPU2は、セキュア割り込み処理を指示する信号に応じて、SRAM7へセキュア割り込みのベクタアドレスの取得要求をする(S8)。
バス監視コントローラ6は、当該ベクタアドレスの取得要求を検知することで、セキュア割り込みのベクタアドレスのフェッチを検知する(S9)。
バス監視コントローラ6は、セキュア割り込みのベクタアドレスをCPU2へ入力する(S10)。CPU2は、ベクタアドレスを取得し(S11)、当該ベクタアドレスに基づいてセキュア割り込み処理を実行する(S12)。
バス監視コントローラ6は、メモリアクセスを検知した旨の信号を状態管理コントローラ5へ送出し(S13)、バス監視を終了する(S14)。
続いて、セキュア割り込み処理の動作タイミングおよび制御信号の流れについて説明する。図4は、実施形態にかかるマイクロコンピュータ1のセキュア割り込み処理の動作タイミングおよび制御信号の流れの一例を示す図である。
まず、セキュアタイマ4は、時間を計測し、セキュア割り込み要求のタイミングt1となると、セキュア割り込み要求を示す信号C1を状態管理コントローラ5へ出力する。状態管理コントローラ5は、セキュア割り込み要求が入力された後、CPU2がスリープ状態になるまで待つ(S1に対応)。状態管理コントローラ5は、セキュア割り込み処理を実行するための条件(待ち合わせ条件)に合致するまで待つ。
t2において、CPU2がスリープ状態に遷移し(S2に対応)、CPU2が、スリープ状態であることを示す信号C2を状態管理コントローラ5へ送出する(S3に対応)。
t3において、状態管理コントローラ5は、スリープ状態であることを示す信号C2を取得することで、CPU2がスリープ状態となったことを検知する(S4に対応)。これにより、状態管理コントローラ5は、バス監視コントローラ6に対してデータすり替え要求が有効である旨の信号C4を出力する(S5に対応)。データすり替えとは、ベクタアドレスのフェッチをインタセプトする処理をいう。バス監視コントローラ6は、状態管理コントローラ5によるデータすり替え要求を受信すると、内部バス12を監視する(S7に対応)。
また、t3において、状態管理コントローラ5は、CPU2に対して、セキュア割り込み処理を指示する信号C3を送出する(S6に対応)。
t4において、CPU2は、当該信号C3を受信すると、SRAM7へセキュア割り込みのベクタアドレスの取得要求をする(S8に対応)。
t5において、バス監視コントローラ6は、CPU2からのセキュア割り込みのベクタアドレスのフェッチを検知する(S9に対応)。例えば、バス監視コントローラ6は、フェッチ先の下位アドレスとセキュア割り込み番号の一致を確認し、セキュア割り込みのベクタアドレスをCPU2へ入力する(S10、S11に対応)。
CPU2は、当該ベクタアドレスに基づいて、セキュア割り込み処理をする(S12に対応)。このように、バス監視コントローラ6は、セキュア割り込みのベクタアドレスをすり替える。また、CPU2は、すり替えられたベクタアドレスを用いてセキュア割り込み処理をする。これにより、マイクロコンピュータ1は、仮にSRAM7で保存しているセキュア割り込みのベクタアドレスが改ざんされていたとしても、適切にセキュア割り込みを実行させることができる。
バス監視コントローラ6は、CPU2からのセキュア割り込みのベクタアドレスのフェッチを検知したことを示す信号である、初回メモリアクセスを示す信号C5を出力し(S13に対応)、バス監視を終了する(S14に対応)。また、t6において、状態管理コントローラ5は、データすり替え要求を無効とする。また、セキュアタイマ4は、セキュア割り込み要求が終了したことを示す信号C6をCPU2へ送出する。
続いて、セキュア割り込み処理を用いたリモートアテステーション技術の連携について説明する。図5は、実施形態にかかるリモートアテステーションを実行するシステム構成図である。管理サーバ100とマイクロコンピュータ1とが安全ではない通信路を介して情報を送受信するものとする。管理サーバ100は、マイクロコンピュータ1のプログラムが改ざんされているなど、マイクロコンピュータ1が異常な状態であるか否かを判断するサーバ装置である。
図6は、実施形態にかかるリモートアテステーションの動作を示すフローチャートである。前提として、管理サーバ100は、マイクロコンピュータ1に対して、所定のタイミングで状態確認要求をする。管理サーバ100は、当該状態確認要求時にマイクロコンピュータ1に対してランダムチャレンジ値を送信する。
マイクロコンピュータ1のCPU2がRTOS82を動作させている際、CPU2は、通信I/F10を介してランダムチャレンジ値を取得すると共に、状態確認要求を受け付ける(S21)。CPU2が、このランダムチャレンジ値を保持してもよいし、SRAM7にランダムチャレンジ値を登録してもよい。
CPU2は、ランダムチャレンジ値を取得した後に、セキュアタイマ4によるセキュア割り込み要求を状態管理コントローラ5から受け付けると、セキュア割り込み処理を実行する(S22)。状態管理コントローラ5は、セキュア割り込み処理を実行中の期間、MAC生成管理コントローラ9に対して、セキュア割り込み処理を実行していることを示す信号を送出する。
MAC生成管理コントローラ9は、当該セキュア割り込み処理を実行していることを示す信号を取得すると、MAC生成機能を有効化する。CPU2は、セキュア割り込み処理結果をセキュア割り込み専用RAM72へ登録して(S23)、MAC生成管理コントローラ9にMAC生成を指示する。また、MAC生成管理コントローラ9は、記憶されている秘密鍵を用いて、セキュア割り込み処理結果と、ランダムチャレンジ値とに対するMACを生成する(S24)。MAC生成管理コントローラ9によるMAC生成の完了を確認すると、CPU2はセキュア割り込み終了命令(割り込み復帰命令)を発行し、セキュア割り込み処理を終了して、RTOSに制御を移行する。MAC生成管理コントローラ9によるMAC生成は、状態管理コントローラ5による信号に基づきセキュア割り込み処理中に限定される。したがって、セキュア割り込み終了後のRTOS実行中にはMAC生成は行われず、不正プログラムによるMAC偽造が防止される。
セキュア割り込みの終了後、RTOSの一部として実行される送信部23は、通信I/F10を介して、ランダムチャレンジ値と、セキュア割り込み処理結果と、MACとを管理サーバ100へ送信する(S25)。
管理サーバ100は、MAC検証およびランダムチャレンジ値が合致するか否かを確認すると共に、セキュア割り込み処理結果が正常であるか否かを判断する。MACを使用する場合、管理サーバ100は事前にMAC用秘密鍵を装置と共有しているものとする。
管理サーバ100は、MACを検証した結果、MACが合致しており、セキュア割り込み処理結果が正常であることを示す場合、マイクロコンピュータ1で異常が発生していないと判断する。一方、管理サーバ100は、マイクロコンピュータ1からセキュア割り込み処理結果等が受信できない場合、ならびにランダムチャレンジ値が不一致している場合は、マイクロコンピュータ1で異常が発生していると判断する。また、管理サーバ100は、MACを検証した結果、MACが一致しない場合やセキュア割り込み処理結果が異常を示すものである場合も、マイクロコンピュータ1で異常が発生していると判断する。
上述の実施形態では、CPU2がスリープ状態になることをセキュア割り込み処理の実行条件とする場合について述べたが、さらに他の条件を付加するようにしてもよい。例えば、バスマスタの停止を更なる条件とするようにしてもよい。また、サブCPUやDMAコントローラの停止を更なる条件とするようにしてもよい。これにより、CPU2は、セキュア割り込み処理実行中の干渉を排除することができる。
例えば、通信の受信データを、通信I/F10に内蔵されたサブCPUもしくはDMAコントローラがバスマスタ13となって、SRAM7に自動転送する機能が備えられている場合がありうる。この機能はセキュア割り込み処理に対してデータ競合を引き起こすことで、動作に干渉する可能性がある。このとき、セキュア割り込み処理の停止をセキュア割り込み処理のさらなる開始条件として、セキュア割り込み処理実行中はバスマスタの動作を停止させることで干渉を排除できる。
また、状態管理コントローラ5は、セキュア割り込み要求が入力された後、所定の期間中にCPU2がスリープ状態に遷移しない場合、所定の強制終了処理をするようにしてもよい。また、状態管理コントローラ5は、強制終了したことを示す情報をセキュア割り込み専用RAM72等に記憶するようにしてもよい。
CPU2は、セキュア割り込み実行中に、致命的な障害が発生した場合のノンマスカブル割り込みが発生した場合、所定のレジスタに中断を示す情報を記録するようにしてもよい。例えば、割り込み処理部21は、ノンマスカブル割り込みの入力ラインをモニタしておく。割り込み処理部21は、セキュア割り込み実行中にノンマスカブル割り込みがアサートされた場合、ノンマスカブル割り込み処理の起動に関わらずセキュア割り込み処理を中断するようにしてもよい。
上述の実施形態では、マイクロコンピュータ1は、状態管理コントローラ5と、バス監視コントローラ6とを有する場合について述べたが、状態管理コントローラ5と、バス監視コントローラ6とを一体としたコントローラを有するようにしてもよい。
上述の実施形態では、マイクロコンピュータ1は、セキュア割り込み処理として、プログラムの改ざんに関する判断をする場合について述べたが、モータ異常を検出するようにしてもよい。
上述の実施形態によれば、バス監視コントローラ6は、CPU2がスリープ状態になった後に、セキュア割り込みのベクタアドレスのフェッチを検知し、セキュア割り込みのベクタアドレスをCPU2へ入力する。これによって、マイクロコンピュータ1は、セキュア割り込み等の重要な処理については、バス監視コントローラ6がセキュア割り込みのベクタアドレスをCPU2に入力することで確実に実行させることができる。また、マイクロコンピュータ1は、他の割り込み処理のアドレスについては、SRAM7に保存されているアドレスをそのまま使用することで、ユーザによるアドレス変更に応じたアドレスで割り込み処理をすることもできる。
CPU2のアーキテクチャによっては、CPU2内のVTORレジスタが割り込みベクタテーブルの上位アドレスを保持している。CPU2の外からでは、VTORが変更されたことは検出できない。上述の実施形態では、バス監視コントローラ6が、フェッチ先の下位アドレスとセキュア割り込み番号の一致を確認し、予め記憶しているセキュア割り込みのベクタアドレスをCPU2へ入力する。よって、上述の実施形態では、VTORの変更に関わらず、適切に割り込み種別を判定することができる。また、CPU2は、VTORの設定の影響を受けることなく、入力されたアドレスを用いて適切にセキュア割り込み処理をすることができる。
本実施形態は、RTOSおよびRTOS上で実行される主機能に脆弱性があり、異常動作の脅威が想定される場合において、異常動作を確実に検出することを目的として、主機能と分離して実行される補助機能を確実に実行するための機能を提供するものである。主機能と補助機能の分離について補足する。主機能の通信処理にソフトウェア脆弱性が含まれている場合、外部から通信経由で不正動作が引き起こされる。一例として、スタック上の関数戻りアドレスの不正書き換えがある。プログラム本来の実行フローに代えて、本来プログラムとして実行されるべきではないメモリ領域のデータが実行され、不正動作を行う脅威がある。このような脅威は、スタック領域のデータ構造の確認機能により検出できるが、主機能プログラムの一部として確認機能が実現されている場合、不正プログラムの実行により確認機能の実行が迂回され無効化されてしまう懸念がある。何らかの原因により主機能のプログラムが書き換えられてしまった場合に不正動作が発生するのは当然だが、主機能のプログラムが書き換えられていない状態でも不正動作は起こりうる。このような不正動作の兆候は装置によってさまざまであり、本実施形態では、検出処理を補助機能プログラムとすることでそれぞれの装置に適した不正動作の検出処理を確実に行うことができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 マイクロコンピュータ、2 CPU、3 マスクROM、4 セキュアタイマ、5 状態管理コントローラ、6 バス監視コントローラ、7 SRAM、8 命令フラッシュメモリ、9 MAC生成管理コントローラ、10 通信I/F、11 アンテナ、12 内部バス、13 バスマスタ、71 汎用RAM、72 セキュア割り込み専用RAM、81 セキュア割り込み用プログラム、82 RTOS、100 管理サーバ。

Claims (7)

  1. プロセッサと、
    複数の割り込み要求に関するベクタアドレスを記憶し、前記プロセッサがバスを介して前記複数の割り込み要求に関するベクタアドレスをフェッチすることができ、前記複数の割り込み要求はプロセッサがスリープ状態であることを条件に実行する第1割り込み要求に関するベクタアドレスを含む、第1記憶部と、
    前記第1割り込み要求に関する第1ベクタアドレスを記憶する第2記憶部と、
    前記第1割り込み要求が入力され、前記プロセッサがスリープ状態になったことを検知するスリープ検知部と、
    前記プロセッサのスリープ状態が検知された後に、前記第1記憶部からの前記第1割り込み要求のベクタアドレスのフェッチをバス監視により検知するフェッチ検知部と、
    前記第1割り込み要求のベクタアドレスのフェッチが検知された場合、前記第2記憶部に記憶している前記第1ベクタアドレスを前記プロセッサに入力するアドレス入力部と、
    を備え、
    前記第1ベクタアドレスは、起動時に前記第2記憶部に記憶され、
    ランダムアクセスメモリおよびフラッシュメモリをさらに備え、
    前記第1記憶部は、前記ランダムアクセスメモリおよび前記フラッシュメモリの両方に配置され、
    前記フラッシュメモリは、前記第1記憶部に加えてプログラムが格納される第3記憶部がさらに配置され、
    前記プロセッサは、XIP機能(eXecute In Place)機能により、前記プログラムの実行時に、前記フラッシュメモリに配置された前記第1記憶部および前記第3記憶部を直接参照する、
    報処理装置。
  2. 前記第1割り込み要求は、タイマにより要求される、請求項1に記載の情報処理装置。
  3. 前記第1割り込み要求の処理は、バスマスタの停止を更なる条件とする、請求項1に記載の情報処理装置。
  4. 前記スリープ検知部は、前記第1割り込み要求を受け付けた後、所定期間、前記プロセッサがスリープ状態に遷移しない場合、強制終了処理をする、請求項1に記載の情報処理装置。
  5. 前記アドレス入力部により入力された、前記第1ベクタアドレスに基づいて、所定の割り込み処理を実行した結果を出力する割り込み処理部をさらに備える、請求項1に記載の情報処理装置。
  6. 外部装置からチャレンジ値を取得するチャレンジ値取得部と、
    前記割り込み処理部により出力された実行結果と、前記チャレンジ値とに対する署名を生成する署名生成部と、
    前記生成された署名と、前記チャレンジ値と、前記実行結果と、を前記外部装置へ送信する送信部と、をさらに備える、請求項に記載の情報処理装置。
  7. 前記第1割り込み要求と異なる第2割り込み要求が入力されたとき、前記プロセッサは、前記第1記憶部に記憶している前記複数の割り込み要求に関するベクタアドレスのうちの前記第2割り込み要求に関するベクタアドレスを使用する、
    請求項1に記載の情報処理装置。
JP2020158163A 2020-09-23 2020-09-23 情報処理装置 Active JP7383589B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020158163A JP7383589B2 (ja) 2020-09-23 2020-09-23 情報処理装置
US17/465,194 US11550619B2 (en) 2020-09-23 2021-09-02 Information processing device and processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020158163A JP7383589B2 (ja) 2020-09-23 2020-09-23 情報処理装置

Publications (2)

Publication Number Publication Date
JP2022052018A JP2022052018A (ja) 2022-04-04
JP7383589B2 true JP7383589B2 (ja) 2023-11-20

Family

ID=80741489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020158163A Active JP7383589B2 (ja) 2020-09-23 2020-09-23 情報処理装置

Country Status (2)

Country Link
US (1) US11550619B2 (ja)
JP (1) JP7383589B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7383589B2 (ja) * 2020-09-23 2023-11-20 株式会社東芝 情報処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175606A (ja) 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2006309778A (ja) 2006-05-25 2006-11-09 Sony Corp 制御システム及び電子機器
WO2009096566A1 (ja) 2008-01-30 2009-08-06 Kyocera Corporation 携帯端末装置およびその通信許可判定方法
WO2012053053A1 (ja) 2010-10-19 2012-04-26 Suginaka Junko 外部ブートデバイス及びネットワーク通信システム
WO2012086106A1 (ja) 2010-12-21 2012-06-28 パナソニック株式会社 仮想計算機システム及び仮想計算機システム制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0575845U (ja) * 1992-03-09 1993-10-15 日本電気ホームエレクトロニクス株式会社 Cpu割込みテーブルデータ固定回路
JP2000339177A (ja) 1999-05-31 2000-12-08 Mitsubishi Electric Corp Eit処理機能を備えるマイクロプロセッサ及びeit処理方法
TW591525B (en) * 2003-03-07 2004-06-11 Novatek Microelectronics Corp Interrupt-processing system for shortening interrupt latency in microprocessor
US7734741B2 (en) * 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
JP5543949B2 (ja) 2011-09-21 2014-07-09 株式会社東芝 制御装置およびモニタプログラム
JP2013101550A (ja) 2011-11-09 2013-05-23 Junko Suginaka 情報処理空間管理方法、外部デバイス及び情報処理装置
JP6129702B2 (ja) 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
JP6385842B2 (ja) 2015-02-02 2018-09-05 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム
JP6476098B2 (ja) 2015-09-15 2019-02-27 ルネサスエレクトロニクス株式会社 半導体装置
CN107015931A (zh) * 2016-01-27 2017-08-04 三星电子株式会社 用于中断处理的方法和加速器单元
US10789192B2 (en) * 2016-02-29 2020-09-29 Renesas Electronics America Inc. System and method for programming data transfer within a microcontroller
FR3061565B1 (fr) * 2017-01-04 2019-04-26 Stmicroelectronics (Rousset) Sas Fonctionnement d'un microcontroleur en mode basse puissance
JP2019164472A (ja) * 2018-03-19 2019-09-26 株式会社東芝 半導体装置
JP2019096338A (ja) 2019-02-04 2019-06-20 ルネサスエレクトロニクス株式会社 半導体装置および半導体装置販売モデル
TWI759677B (zh) * 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
JP7383589B2 (ja) * 2020-09-23 2023-11-20 株式会社東芝 情報処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175606A (ja) 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2006309778A (ja) 2006-05-25 2006-11-09 Sony Corp 制御システム及び電子機器
WO2009096566A1 (ja) 2008-01-30 2009-08-06 Kyocera Corporation 携帯端末装置およびその通信許可判定方法
WO2012053053A1 (ja) 2010-10-19 2012-04-26 Suginaka Junko 外部ブートデバイス及びネットワーク通信システム
WO2012086106A1 (ja) 2010-12-21 2012-06-28 パナソニック株式会社 仮想計算機システム及び仮想計算機システム制御方法

Also Published As

Publication number Publication date
JP2022052018A (ja) 2022-04-04
US11550619B2 (en) 2023-01-10
US20220091879A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US8909978B2 (en) Remote access diagnostic mechanism for communication devices
KR100524055B1 (ko) 원격지 웨이크 업 기능을 갖는 컴퓨터 시스템 및 컴퓨터 시스템의 원격 웨이크 업 방법
JP6012166B2 (ja) プロセッサ、方法、及びシステム
EP1727625B1 (en) Cooperative embedded agents
US8959311B2 (en) Methods and systems involving secure RAM
CN110414235B (zh) 一种基于ARM TrustZone的主动免疫的双体系结构系统
WO2018057167A1 (en) Methods and apparatus to use a security coprocessor for firmware protection
WO2006134691A1 (ja) 情報処理装置、復旧装置、プログラム及び復旧方法
KR20060130200A (ko) 런타임 안전 보장을 위한 자율 메모리 체커 및 이의 방법
US11188321B2 (en) Processing device and software execution control method
WO2006022161A1 (ja) 情報通信装置及びプログラム実行環境制御方法
US20080155153A1 (en) Device control apparatus
US8838952B2 (en) Information processing apparatus with secure boot capability capable of verification of configuration change
JP7383589B2 (ja) 情報処理装置
TWI733399B (zh) 安全裝置、安全方法、安全系統以及安全設備
CN110390214B (zh) 通过汇流排安全存取周边装置的安全装置及方法
US10275367B2 (en) Command source verification
JP2001297054A (ja) Dmaの転送逸脱防止方法及びdmaコントローラ
US20230161599A1 (en) Redundant data log retrieval in multi-processor device
EP4095725A1 (en) Electronic device and security protection method
CN116601629A (zh) 一种终端芯片及其度量方法
WO2008025036A2 (en) Data processing systems utilizing secure memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230718

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231108

R150 Certificate of patent or registration of utility model

Ref document number: 7383589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150