JP7287115B2 - 集積回路及び集積回路の制御方法 - Google Patents

集積回路及び集積回路の制御方法 Download PDF

Info

Publication number
JP7287115B2
JP7287115B2 JP2019100841A JP2019100841A JP7287115B2 JP 7287115 B2 JP7287115 B2 JP 7287115B2 JP 2019100841 A JP2019100841 A JP 2019100841A JP 2019100841 A JP2019100841 A JP 2019100841A JP 7287115 B2 JP7287115 B2 JP 7287115B2
Authority
JP
Japan
Prior art keywords
security
integrated circuit
data processing
processing unit
set value
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
JP2019100841A
Other languages
English (en)
Other versions
JP2020194464A (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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2019100841A priority Critical patent/JP7287115B2/ja
Priority to US16/885,056 priority patent/US11520893B2/en
Publication of JP2020194464A publication Critical patent/JP2020194464A/ja
Application granted granted Critical
Publication of JP7287115B2 publication Critical patent/JP7287115B2/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Description

本発明は、集積回路及び集積回路の制御方法に関する。
画像形成装置等の情報処理装置には、各種処理を実行させるための集積回路が搭載されている。例えば、MFP(Multi Function Peripheral)等の画像形成装置には、画像処理を実行させるためのLSI(大規模集積回路)が搭載されている。
上記のようなLSIでは、セキュリティの保護を必要とするデータが扱われる場合があり、近年、それらのデータをセキュリティ脅威から保護するための技術が提案されている。特許文献1には、フラッシュメモリを含むメモリシステムにおいて、暗号化エンジンが、CPUによって予め設定されたセキュリティコンフィグレーション情報に基づいて、外部デバイスとの間で入出力されるデータの暗号化及び復号を行う方法が記載されている。特許文献1に記載の方法によれば、外部デバイスへの意図しないデータの流出を防止することができる。
特表2008-524969号公報
ところで、集積回路がセキュリティ脅威に侵された場合、集積回路のファームウェア(FW)が改竄され、集積回路が異常動作する可能性がある。
一方、特許文献1に記載の方法は、CPUにより設定されるセキュリティコンフィグレーション情報によって、暗号化エンジンを制御している。そのため、セキュリティ脅威によりFWが改竄されCPUが異常動作した場合、暗号化エンジンが正常に機能しなくなる可能性がある。またその場合、外部デバイスへの意図しないデータの流出が発生するなどして、システムのセキュリティが保護されなくなるおそれがある。
本発明は例えば上述したような問題に鑑みなされたものであり、本発明の課題は、集積回路及び集積回路内のデータをセキュリティ脅威から保護することにある。
上記課題を解決するために、本発明の集積回路は、データを処理するデータ処理部と、データ処理部のセキュリティを管理するセキュリティ管理部と、を備える集積回路であって、セキュリティ管理部は、セキュリティ強度の設定値を保持する設定値保持部と、設定値によって示されるセキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行うセキュアブートにより集積回路を起動させる起動制御部と、セキュアブートにおける署名検証によりブートプログラムの改竄が検知されたときに、データ処理部をリセット状態にする状態制御部と、を有することを特徴とする。
また、上記本発明の集積回路において、セキュリティ管理部は、設定値によって示されるセキュリティ強度が所定レベル以上である場合に、データ処理部との接続を遮断する接続制御部をさらに備える構成としてもよい。
また、上記本発明の集積回路において、接続制御部は、設定値によって示されるセキュリティ強度が所定レベル以上である場合においてデータ処理部に対するセキュリティ脅威が検知されたときに、データ処理部との接続を遮断することとしてもよい。
また、上記本発明の集積回路において、接続制御部は、設定値保持部が設定値を保持していない場合に、データ処理部との接続を遮断することとしてもよい。
また、上記本発明の集積回路において、状態制御部は、設定値保持部が設定値を保持していない場合に、データ処理部をリセット状態にすることとしてもよい。
また、上記本発明の集積回路において、データ処理部は、外部デバイスとの間で入出力されるデータを監視する入出力データ監視部を有し、セキュリティ管理部は、データ処理部に対するセキュリティ脅威を検知するセキュリティ脅威検知部をさらに有し、セキュリティ脅威検知部は、設定値によって示されるセキュリティ強度が所定レベル以上である場合において入出力データ監視部によって検知された平文が不当であるときに、セキュリティ脅威を検知する構成としてもよい。
また、上記本発明の集積回路において、セキュリティ脅威検知部は、外部デバイスとの間で入出力されるデータが暗号化格納領域から読み出されたデータである場合において該データから平文が検知されたときに、該平文が不当であると判断することとしてもよい。
また、上記本発明の集積回路において、セキュリティ管理部は内蔵メモリをさらに有し、内蔵メモリには、集積回路の外部からブートプログラムを書き込むことが可能であり、起動制御部は、内蔵メモリにブートプログラムが書き込まれている場合には、セキュアブートにおいて、内蔵メモリに書き込まれているブートプログラムに対して署名検証を行い、該ブートプログラムを用いて集積回路を起動させる構成としてもよい。
さらに、上記本発明の集積回路において、起動制御部は、設定値によって示されるセキュリティ強度が所定レベル未満である場合には、署名検証を行わない通常ブートにより集積回路を起動させることとしてもよい。
上記課題を解決するために、本発明の集積回路の制御方法は、データを処理するデータ処理部と、制御方法ことを特徴とするデータ処理部のセキュリティを管理するセキュリティ管理部と、を有する集積回路の制御方法であって、セキュリティ管理部が、セキュリティ強度の設定値を予め保持し、該設定値によって示されるセキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行うセキュアブートにより集積回路を起動させる起動制御工程と、セキュリティ管理部が、セキュアブートにおける署名検証によりブートプログラムの改竄が検知されたときに、データ処理部をリセット状態にする接続制御工程と、を有することを特徴とする。
本発明によれば、集積回路及び集積回路内のデータをセキュリティ脅威から保護する。
本発明の一実施形態に係る集積回路の構成の一例を示すブロック図である。 セキュリティ管理部の機能ブロックを示す図である。 セキュアブートの流れの一例を示すフローチャートである。 セキュアブートの流れの他の例を示すフローチャートである。
以下、図面を参照しつつ、本発明の一実施形態に係る集積回路について説明する。
(集積回路の構成)
図1は、本発明の一実施形態に係る集積回路の構成の一例を示すブロック図である。図1に示すように、集積回路1は、データ処理部10と、SCU(セキュリティ管理部)20とを備える。集積回路1は、LSIであり、画像処理装置などの情報処理装置に搭載されるSoC(System on a chip)やASIC(Application Specific Integrated Circuit)である。集積回路1は、CPU31(以下、外部CPU31と記す)、DRAM32、HDD33、及びフラッシュROM34と接続され、これらの外部デバイス31~34との間でデータの入出力を行う。なお、集積回路1には、その他の外部デバイスが接続されていてもよい。
データ処理部10は、CPU11(以下、メインCPU11と記す)と、デバイスコントローラー12,13と、I/Oインターフェース14とを有する。
デバイスコントローラー12は、DDRメモリコントローラ(DDRMC)であり、DRAM32を制御する。なお、DRAM以外のメモリがデバイスコントローラー12に接続されていてもよい。つまり、デバイスコントローラー12は、DRAM以外のメモリを制御するメモリコントローラであってもよい。
デバイスコントローラー13は、HDD33を制御する。本実施形態では、デバイスコントローラー13とHDD33とは、シリアルATA(SATA)で接続されているものとする。また、デバイスコントローラー13は、フルディスクエンクリプション(Full Disk Encryption)機能を有し、HDD33内のデータを一括して暗号化することが可能である。なお、デバイスコントローラー13は、HDD33内のデータをセクター単位で暗号化することも可能である。また、デバイスコントローラー13に接続される記憶装置はHDDに限らず、例えばSATAのSSD(Solid State Drive)が接続されていてもよい。また、SATA以外のインターフェースの記憶装置が接続されてもよい。
また、デバイスコントローラー12,13は、DRAM32やHDD33との間で入出力されるデータを監視し、平文を検知した場合に、ハードウェア割り込みを発する、入出力データ監視部として機能を有する。
I/Oインターフェース14は、シリアルインターフェースである。本実施形態では、I/Oインターフェース14は、PCIeEP(PCIExpressエンドポイント)である。
セキュリティ管理部20は、集積回路1のセキュリティを管理する。セキュリティ管理部20は、CPU21(以下、サブCPU21と記す)と、SRAM22と、メモリI/F23と、OCRAM(内蔵メモリ)24と、暗号器25と、OTP(One Time Programmable)ROM26とを有する。また、セキュリティ管理部20は、ブートROM28と、バスコントローラ27とを有する。
メモリI/F23は、フラッシュROM34を接続するインターフェースである。本実施形態では、フラッシュROM34に、集積回路1を起動させるためのプログラム(起動プログラム又はブートプログラムと呼ぶ)が格納されているものとする。OTPROM26は、後述するセキュリティ強度の設定値を記憶する、設定値保持部として機能する。またOTPROM26は、暗号器25で使用される情報(例えば秘密鍵)を記憶する。
バスコントローラ27は、データ処理部10とセキュリティ管理部20とを接続するバスを制御する。
(集積回路のセキュリティ保護)
セキュリティ管理部20は、OTPROM26が保持するセキュリティ強度の設定値に応じて、集積回路1のセキュリティ強度を切り替える。本実施形態では、セキュリティ強度の設定値が0である場合には、セキュリティ管理部20は、セキュリティ強度を「保護なし(Non-Secure)」に設定する。一方、セキュリティ強度の設定値が1である場合には、セキュリティ管理部20は、セキュリティ強度を「保護あり(Secure)」に設定する。なお、セキュリティ強度は0と1の2つのレベルに限らず、3つ以上のレベルを有してもよい。例えば、「保護あり(Secure)」のレベルを複数段階に分けて設定するようにしてもよい。
セキュリティ強度が「保護あり」に設定されている場合には、バスコントローラ27がデータ処理部10とセキュリティ管理部20とのインターフェース(バス)を遮断する。これにより、セキュリティ管理部20を外部のセキュリティ脅威から保護することができる。
また、セキュリティ強度が「保護あり」に設定されている場合には、集積回路1に電源が投入されたときにセキュアブートが行われる。セキュアブートの詳細については、図3を用いて後述する。セキュアブート中にセキュリティ脅威が検知された場合には、セキュリティ管理部20は、データ処理部10をリセット状態にする。これにより、データ処理部10がセキュリティ脅威によって異常動作することを抑止することができる。
さらに、セキュリティ強度が「保護あり」に設定されている場合において、デバイスコントローラー12,13から平文が検知されたことを示すハードウェア割り込みを受信した場合には、セキュリティ管理部20は、平文の妥当性を検証する。そして、平文が不当であった場合には、セキュリティ管理部20は、データ処理部10をリセット状態にする。ここで、「平文の妥当性」の検証とは、平文の内容を検証する意味ではなく、平文の出力があり得るか否かを検証する意味である。例えば、HDD33において暗号化されたデータが記憶されているはずのセクター(暗号化データ格納領域と呼ぶ)から読み取られたデータが平文であった場合、セキュリティ管理部20は、その平文を不当な平文であると判断する。
セキュリティ強度が「保護なし」に設定されている場合には、電源投入時にセキュアブートは行われず、集積回路1は通常ブートする。また、バスコントローラ27はデータ処理部10とセキュリティ管理部20とのインターフェースを開放する。
なお、集積回路1の製造時などOTPROM26が初期状態にある場合には、上記設定情報がOTPROM26内に存在しない。その場合、セキュリティ管理部20によるデータ処理部10のセキュリティ保護が機能しなくなったり、外部デバイス31~34への意図しないデータの流出が発生したりする可能性がある。そこで、本実施形態では、OTPROM26が初期状態にある場合には、セキュリティ管理部20は、バスコントローラ27を制御してデータ処理部10とセキュリティ管理部20とのインターフェース(バス)を遮断する。これにより、セキュリティ管理部20を外部のセキュリティ脅威から保護することができる。また、セキュリティ管理部20は、データ処理部10をリセット状態にする。これにより、データ処理部10がセキュリティ脅威によって異常動作することを抑止することができる。
(セキュリティ管理部)
図2は、セキュリティ管理部20の機能ブロックを示す図である。セキュリティ管理部20のサブCPU21は、例えばフラッシュROM34に記憶されたコンピュータープログラムを読み取って実行することにより、起動制御部201、接続制御部202、状態制御部203、及びセキュリティ脅威検知部204として機能する。
起動制御部201は、OTPROM26が保持するセキュリティ強度の設定値に基づいて、集積回路1のブートシーケンスを切り替える。本実施形態では、起動制御部201は、セキュリティ強度の設定値が所定値(ここでは1)以上である場合、すなわち、セキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行う、セキュアブートを実行する。セキュアブートについては、図3を用いて詳述する。一方、セキュリティ強度が所定レベル未満である場合には、ブートプログラムに対して署名検証を行わない、通常ブートを実行する。
接続制御部202は、バスコントローラ27を用いて、OTPROM26が保持するセキュリティ強度の設定値に基づきデータ処理部10との接続を遮断したり開放したりする。本実施形態では、接続制御部202は、セキュリティ強度の設定値が所定値以上である場合、すなわち、セキュリティ強度が所定レベル以上である場合に、データ処理部10との接続を遮断する。なお、データ処理部10との接続の遮断は、セキュリティ強度が所定レベル以上である場合において、必要に応じて(例えば、セキュアブートの実行中やセキュリティ脅威が検出されたとき)行われるようにしてもよい。
状態制御部203は、セキュアブートの署名検証においてブートプログラムの改竄が検知された場合に、データ処理部10をリセット状態にする。また、セキュリティ強度の設定値が所定値以上である場合においてセキュリティ脅威が検知された際に、データ処理部10をリセット状態にする。なお、本実施形態では、サブCPU21と、データ処理部10のメインCPU11及びデバイスコントローラー12,13のそれぞれとの間に、リセット制御用の信号線(不図示)が設けられているものとする。そして、サブCPU21が上記信号線を介して、メインCPU11及びデバイスコントローラー12,13のそれぞれに、リセット状態とリセット解除状態とを切り替える制御信号を出力するものとする。
セキュリティ脅威検知部204は、デバイスコントローラー12,13から平文を検知したことを示すハードウェア割り込みを受信した場合に、平文の妥当性を判断する。そして、平文が不当である場合には、セキュリティ脅威検知部204は、データ処理部10がセキュリティ脅威に侵されていると判断する。
(セキュアブート)
セキュアブートでは、セキュリティ管理部20が、外部デバイス2からロードしたFWを復号し、復号したFWに対して署名検証を行う。そして、署名検証においてFWの改竄が検知された場合、セキュリティ管理部20はデータ処理部10をリセット状態にする。図3は、本発明の一実施形態に係るセキュアブートの流れを示すフローチャートである。図3には、集積回路1の内蔵CPU(データ処理部10のメインCPU11)がセキュアブートで起動される場合のフローが示されている。ここでは、フラッシュROM34が図1に示されるように、セキュリティ管理部20に接続されているものとする。
集積回路1に電源が投入されると、図3に示すように、集積回路1内部の初期設定が行われ(ステップS301)、セキュリティ管理部20が起動する(ステップS302)。すると、セキュリティ管理部20のサブCPU21が、ブートROM28に記憶された第1ブートプログラムを読み出して、該第1ブートプログラムに従って第1起動処理(第1ブートシーケンス)を開始する(ステップS303)。第1起動処理において、サブCPU21が、フラッシュROM34との通信を確立する(ステップS304)。そして、サブCPU21が、フラッシュROM34から第2ブートプログラムを読み出して、該第2ブートプログラムをSRAM22に展開する(S305)。ここでは、第2ブートプログラムが暗号化されているものとする。なお、第2ブートプログラムが暗号化されていない場合には、ステップS305の後、処理はステップS308に移行する。
次いで、サブCPU21が、SRAM22に展開された第2ブートプログラムを暗号器25により復号し、署名検証を行う(ステップS306)。署名検証の結果、改竄が検知された場合は(ステップS307:YES)、サブCPU21が、データ処理部10をリセット状態にして(ステップS318)、処理を終了する。改竄が検知されない場合は(ステップS307:NO)、サブCPU21が、第2ブートプログラムに従って第2起動処理(第2ブート)を開始する(ステップS308)。
第2起動処理において、サブCPU21が、フラッシュROM34から第3ブートプログラムを読み出して、該第3ブートプログラムをSRAM22に展開する(S309)。ここでは、第3ブートプログラムが暗号化されているものとする。なお、第3ブートプログラムが暗号化されていない場合には、処理はステップS312に移行する。
次いで、サブCPU21が、SRAM22に展開された第3ブートプログラムを暗号器25により復号し、署名検証を行う(ステップS310)。署名検証の結果、改竄が検知された場合は(ステップS311:YES)、サブCPU21が、データ処理部10をリセット状態にして(ステップS318)、処理を終了する。改竄が検知されない場合は(ステップS311:NO)、サブCPU21が、第3ブートプログラムに従って第3起動処理(第3ブート)を開始する(ステップS312)。
第3起動処理において、サブCPU21が、システムバスの設定を行い、DRAM32を初期化し、さらにDRAM32のメモリチェックを行う(ステップS313)。これにより、DRAM32が利用可能となる。そしてサブCPU21が、フラッシュROM34からメインCPU11のブートプログラム(以下、メインCPU用ブートプログラムと呼ぶ。)を読み出して、該ブートプログラムをDRAM32に展開する(S314)。ここでは、メインCPU用ブートプログラムが暗号化されているものとする。なお、メインCPU用ブートプログラムが暗号化されていない場合には、ステップS314の後、処理はステップS317に移行する。
次いで、サブCPU21が、DRAM32に展開されたメインCPU用ブートプログラムを暗号器25により復号し、署名検証を行う(ステップS315)。署名検証の結果、改竄が検知された場合は(ステップS316:YES)、サブCPU21が、データ処理部10をリセット状態にして(ステップS318)、処理を終了する。改竄が検知されない場合は(ステップS316:NO)、サブCPU21は、メインCPU11をリセット解除する。リセット解除されたメインCPU11は、メインCPU用ブートプログラムに従って起動処理(メインCPUブート)を開始する(ステップS317)。メインCPUブートが完了すると、処理は終了する。
以上のようにして、集積回路1の内蔵CPU(メインCPU11)がセキュアブートで起動される。
なお、データ処理部10のメインCPU11が使用されない場合、例えば、外部CPU31がメインCPUとして使用される場合も想定される。そのような場合には、ステップS301,S302の後、外部CPU31がステップS303~S312の処理を行うようにすればよい。この場合、ステップS313以降の処理は行われない。
また、外部CPU31が集積回路1を起動する場合も想定される。図4は、そのような場合に行われる集積回路1のセキュアブートの流れを示すフローチャートである。なお、ここでは、フラッシュROM34が、セキュリティ管理部20ではなく外部CPU31に接続されているものとする。
集積回路1と外部CPU31とに電源が投入されると、まず、集積回路1内部の初期設定が行われる(ステップS401)。次いで、外部CPU31がリセット解除され、初期化処理とI/Oインターフェース14のリンクアップとが行われる。そして、外部CPU31が、フラッシュROM34に格納されているサブCPU21のブートプログラムを、セキュリティ管理部20の外部からアクセス可能であるOCRAM24に書き込む(ステップS402)。なお、このとき、バスコントローラ27は、データ処理部10とセキュリティ管理部20とのインターフェースを一時的に開放するものとする。
次いで、外部CPU31が、OCRAM24に書き込まれたサブCPU21のブートプログラムを、セキュリティ管理部20のSRAM22にコピーする(ステップS403)。そして、外部CPU31が、サブCPU21をリセット解除する(ステップS404)。リセット解除されたサブCPU21は、ブートROM28に記憶された第1ブートプログラムを読み出して、該第1ブートプログラムに従って第1起動処理(第1ブート)を開始する(ステップS405)。なお、ステップS406~S420の処理は、ステップS304~S318の処理と同様であるため、説明を省略する。
このように、サブCPU21のブートプログラムをセキュリティ管理部20のOCRAM24に書き込むことで、フラッシュROM34が外部CPU31に接続されている場合でも、セキュアブートを行うことが可能となる。
以上に説明したように、本実施形態の集積回路1は、データを処理するデータ処理部10と、データ処理部10のセキュリティを管理するセキュリティ管理部20とを備える。そして、セキュリティ管理部20は、設定値保持部(OTPROM26)が保持する設定値によって示されるセキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行うセキュアブートにより集積回路1を起動させる起動制御部201を有する。また、セキュリティ管理部20は、セキュアブートにおける署名検証によりブートプログラムの改竄が検知されたときに、データ処理部10をリセット状態にする状態制御部203を有する。
このように、本実施形態のセキュリティ管理部20は、自身が保持するセキュリティ強度の設定値に基づいて、ブートシーケンスを切り替えるようにしている。よって、データ処理部10に対するセキュリティ脅威が存在する環境下においても、集積回路1を安全に起動させることができる。また、FWの改竄が検知された場合にデータ処理部10をリセット状態にしているので、集積回路1内のデータの意図しない流出を確実に防ぐことができる。したがって、本実施形態によれば、集積回路1及び集積回路1内のデータをセキュリティ脅威から保護することが可能となる。
また、セキュリティ管理部20は、設定値保持部が保持する上記設定値によって示されるセキュリティ強度が所定レベル以上である場合に、データ処理部10との接続を遮断する接続制御部202をさらに備える。特に、接続制御部202は、設定値保持部が保持する上記設定値によって示されるセキュリティ強度が所定レベル以上である場合においてデータ処理部10に対するセキュリティ脅威が検知されたときに、データ処理部10との接続を遮断する。これにより、セキュリティ強度を所定レベル以上に設定しておくことで、データ処理部10との接続を遮断させることができるので、データ処理部10がセキュリティ脅威に侵された場合でもセキュリティ管理部20の内部を確実に保護することが可能となる。
また、接続制御部202は、設定値保持部がセキュリティ強度の設定値を保持していない場合に、データ処理部10との接続を遮断する。これにより、集積回路1の製造時など、OTPROM26が初期状態にあって上記設定値や秘密鍵を保持していないときに、データ処理部10がセキュリティ脅威に侵されたとしても、そのセキュリティ脅威からセキュリティ管理部20を保護することができる。
また、状態制御部203は、設定値保持部がセキュリティ強度の設定値を保持していない場合に、データ処理部10をリセット状態にする。これにより、集積回路1の製造時など、OTPROM26が初期状態にあって上記設定値や秘密鍵を保持していないときに、データ処理部10がセキュリティ脅威に侵された場合でも、データ処理部10が異常動作しないようにすることが可能となる。また、データ処理部10を異常動作させないことで、データ処理部10だけでなく、データ処理部10に接続されている外部デバイスや外部デバイスが保持するデータのセキュリティを保護することができる。
また、データ処理部10は、外部デバイス(DRAM32、HDD33)との間で入出力されるデータを監視する入出力データ監視部(デバイスコントローラー12,13)を有する。また、セキュリティ管理部20は、データ処理部10に対するセキュリティ脅威を検知するセキュリティ脅威検知部204をさらに有する。そして、セキュリティ脅威検知部204は、設定値保持部が保持する上記設定値によって示されるセキュリティ強度が所定レベル以上である場合において入出力データ監視部によって不当な平文が検知されたときに、セキュリティ脅威を検知する。これにより、不当な平文が検知された場合に、その要因となるセキュリティ脅威からセキュリティ管理部20を保護することができる。
また、セキュリティ脅威検知部204は、外部デバイスとの間で入出力されるデータが暗号化格納領域から読み出されたデータである場合において該データから平文が検知されたときに、該平文が不当であると判断する。これにより、外部デバイス内や集積回路内の暗号化データ格納領域のデータが改竄されていることを検知することができ、集積回路1に不正なFWが書き込まれたり、集積回路1に不正なデータが入力されたりすることを防止することができる。
また、セキュリティ管理部20は内蔵メモリ(OCRAM)24をさらに有し、内蔵メモリ24には、集積回路1の外部からブートプログラムを書き込むことが可能であり、
起動制御部201は、内蔵メモリ24にブートプログラムが書き込まれている場合には、セキュアブートにおいて、内蔵メモリ24に書き込まれているブートプログラムに対して署名検証を行い、該ブートプログラムを用いて集積回路1を起動させる。これにより、ブートプログラムを格納するフラッシュROM34がセキュリティ管理部20ではなく外部CPU31に接続されている場合でも、署名検証を伴うセキュアブートを実行することができる。よって、集積回路の構成に柔軟性を持たせることが可能となり、図1に示される構成と異なる集積回路についてもセキュリティ脅威から保護することが可能となる。
さらに、起動制御部201は、セキュリティの設定強度が所定レベル未満である場合には、署名検証を行わない通常ブートにより集積回路1を起動させる。これにより、セキュリティ保護を必要としない環境下や暗号化が認められない環境下でも、セキュリティ強度を所定レベル未満に設定することで集積回路1を利用することが可能となる。
また、セキュリティ管理部20の起動制御部201が、OTPROM26が保持する設定値によって示されるセキュリティ強度が所定レベル以上である場合に、セキュアブートにより集積回路1を起動させる工程が、集積回路1の制御方法における起動制御工程の具体例である。また、セキュリティ管理部20の状態制御部203が、セキュアブートにおける署名検証によりブートプログラムの改竄が検知されたときに、データ処理部10をリセット状態にする工程が、集積回路1の制御方法における接続制御工程の具体例である。
なお、本発明は、請求の範囲及び明細書全体から読み取ることのできる発明の要旨又は思想に反しない範囲で適宜変更可能であり、そのような変更を伴う集積回路及び集積回路の制御方法もまた本発明の技術思想に含まれる。
1 集積回路
10 データ処理部
12、13 デバイスコントローラー
20 セキュリティ管理部
26 OTPROM(設定値保持部)
201 起動制御部
202 接続制御部
203 状態制御部
204 セキュリティ脅威検知部

Claims (7)

  1. データを処理するデータ処理部と、前記データ処理部のセキュリティを管理するセキュリティ管理部と、を備える集積回路であって、
    前記セキュリティ管理部は、
    セキュリティ強度の設定値を保持する設定値保持部と、
    前記設定値によって示される前記セキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行うセキュアブートにより前記集積回路を起動させる起動制御部と、
    前記セキュアブートにおける前記署名検証により前記ブートプログラムの改竄が検知されたときに、前記データ処理部をリセット状態にする状態制御部と、
    前記設定値によって示される前記セキュリティ強度が所定レベル以上である場合に、前記データ処理部との接続を遮断する接続制御部と、を有することを特徴とする集積回路。
  2. 前記接続制御部は、前記設定値によって示される前記セキュリティ強度が前記所定レベル以上である場合において前記データ処理部に対するセキュリティ脅威が検知されたときに、前記データ処理部との接続を遮断することを特徴とする請求項に記載の集積回路。
  3. 前記接続制御部は、前記設定値保持部が前記設定値を保持していない場合に、前記データ処理部との接続を遮断することを特徴とする請求項又は請求項に記載の集積回路。
  4. 前記状態制御部は、前記設定値保持部が前記設定値を保持していない場合に、前記データ処理部をリセット状態にすることを特徴とする請求項1から請求項のうちのいずれか1項に記載の集積回路。
  5. 前記セキュリティ管理部は内蔵メモリをさらに有し、
    前記内蔵メモリには、前記集積回路の外部から前記ブートプログラムを書き込むことが可能であり、
    前記起動制御部は、前記内蔵メモリに前記ブートプログラムが書き込まれている場合には、前記セキュアブートにおいて、前記内蔵メモリに書き込まれている前記ブートプログラムに対して前記署名検証を行い、該ブートプログラムを用いて前記集積回路を起動させることを特徴とする請求項1から請求項のうちのいずれか1項に記載の集積回路。
  6. 前記起動制御部は、前記設定値によって示される前記セキュリティ強度が前記所定レベル未満である場合には、前記署名検証を行わない通常ブートにより前記集積回路を起動させることを特徴とする請求項1から請求項のうちのいずれか1項に記載の集積回路。
  7. データを処理するデータ処理部と、前記データ処理部のセキュリティを管理するセキュリティ管理部と、を有する集積回路の制御方法であって、
    前記セキュリティ管理部が、セキュリティ強度の設定値を予め保持し、該設定値によって示される前記セキュリティ強度が所定レベル以上である場合に、ブートプログラムに対して署名検証を行うセキュアブートにより前記集積回路を起動させる起動制御工程と、
    前記セキュリティ管理部が、前記セキュアブートにおける前記署名検証により前記ブートプログラムの改竄が検知されたときに、前記データ処理部をリセット状態にする状態制御工程と、
    前記セキュリティ管理部が、前記設定値によって示される前記セキュリティ強度が所定レベル以上である場合に、前記データ処理部との接続を遮断する接続制御工程と、を有することを特徴とする制御方法。
JP2019100841A 2019-05-30 2019-05-30 集積回路及び集積回路の制御方法 Active JP7287115B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019100841A JP7287115B2 (ja) 2019-05-30 2019-05-30 集積回路及び集積回路の制御方法
US16/885,056 US11520893B2 (en) 2019-05-30 2020-05-27 Integrated circuit and control method of integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019100841A JP7287115B2 (ja) 2019-05-30 2019-05-30 集積回路及び集積回路の制御方法

Publications (2)

Publication Number Publication Date
JP2020194464A JP2020194464A (ja) 2020-12-03
JP7287115B2 true JP7287115B2 (ja) 2023-06-06

Family

ID=73546462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019100841A Active JP7287115B2 (ja) 2019-05-30 2019-05-30 集積回路及び集積回路の制御方法

Country Status (2)

Country Link
US (1) US11520893B2 (ja)
JP (1) JP7287115B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775694B2 (en) * 2022-01-05 2023-10-03 International Business Machines Corporation Validating and securing non-volatile memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008001671A1 (fr) 2006-06-27 2008-01-03 Nec Corporation Système multiprocesseur et terminal portable l'utilisant
US20150199520A1 (en) 2014-01-13 2015-07-16 Raytheon Company Mediated secure boot for single or multicore processors
JP2016511848A (ja) 2012-12-06 2016-04-21 サムスン エレクトロニクス カンパニー リミテッド セキュアブート(secureboot)を行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101297760B1 (ko) 2004-12-21 2013-08-20 디스크레틱스 테크놀로지스 엘티디. 스트림-내 데이터 암호화/복호화 기능을 가진 메모리 시스템
US20060242429A1 (en) 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption method
EP1845470B1 (en) * 2006-04-13 2016-11-09 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
US9613215B2 (en) * 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8971144B2 (en) * 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
KR102227263B1 (ko) * 2013-12-31 2021-03-15 삼성전자주식회사 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
US9639425B1 (en) * 2015-01-13 2017-05-02 Marvell International Ltd. Signature-based sleep recovery operation flow
KR102385552B1 (ko) * 2015-12-29 2022-04-12 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US10747883B2 (en) * 2017-05-11 2020-08-18 Qualcomm Incorporated Collated multi-image check in system-on-chips
US10678927B2 (en) * 2017-08-31 2020-06-09 Texas Instruments Incorporated Randomized execution countermeasures against fault injection attacks during boot of an embedded device
US10657260B2 (en) * 2017-09-19 2020-05-19 Sling Media Pvt Ltd Electronic devices and methods supporting unsecured system-on-chip secure boot functionalities

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008001671A1 (fr) 2006-06-27 2008-01-03 Nec Corporation Système multiprocesseur et terminal portable l'utilisant
JP2016511848A (ja) 2012-12-06 2016-04-21 サムスン エレクトロニクス カンパニー リミテッド セキュアブート(secureboot)を行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法
US20150199520A1 (en) 2014-01-13 2015-07-16 Raytheon Company Mediated secure boot for single or multicore processors

Also Published As

Publication number Publication date
US20200380135A1 (en) 2020-12-03
JP2020194464A (ja) 2020-12-03
US11520893B2 (en) 2022-12-06

Similar Documents

Publication Publication Date Title
JP6137499B2 (ja) 方法および装置
JP4288209B2 (ja) システム・オン・チップのためのセキュリティ・アーキテクチャ
US9735960B2 (en) Method for protecting data stored within a disk drive of a portable computer
KR101209252B1 (ko) 전자기기의 부팅 방법 및 부팅 인증 방법
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
KR102395258B1 (ko) 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
US8886955B2 (en) Systems and methods for BIOS processing
TWI801468B (zh) 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器
WO2004003711A2 (en) Sleep attack protection
JP5689429B2 (ja) 認証装置、および、認証方法
JP2011210129A (ja) 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US11188321B2 (en) Processing device and software execution control method
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
JP2005301564A (ja) セキュリティ機能を備えた情報処理装置
JP7287115B2 (ja) 集積回路及び集積回路の制御方法
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230404

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: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R150 Certificate of patent or registration of utility model

Ref document number: 7287115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150