JP5411896B2 - メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック - Google Patents
メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック Download PDFInfo
- Publication number
- JP5411896B2 JP5411896B2 JP2011137416A JP2011137416A JP5411896B2 JP 5411896 B2 JP5411896 B2 JP 5411896B2 JP 2011137416 A JP2011137416 A JP 2011137416A JP 2011137416 A JP2011137416 A JP 2011137416A JP 5411896 B2 JP5411896 B2 JP 5411896B2
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- mac
- hash value
- block
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Description
本発明の様々な態様が実施されるようなメモリシステム例を、図1Aのブロック図に示す。図1Aに示すように、メモリシステム10は、中央処理装置(CPU)または「コントローラ」12と、バッファ管理ユニット(BMU)14と、ホストインターフェイスモジュール(HIM)16と、フラッシュインターフェイスモジュール(FIM)18と、フラッシュメモリ20と、周辺アクセスモジュール22とを含む。メモリシステム10は、ホストインターフェイスバス26およびポート26aとを通じてホスト装置24と通信する。フラッシュメモリ20は、NAND形であってもよく、ホスト装置24に対してデータ記憶を提供する。CPU12のためのソフトウェアコードも、フラッシュメモリ20に記憶されてもよい。FIM18は、フラッシュインターフェイスバス28を通じて、および、場合によってはフラッシュメモリ20が着脱可能な要素であるときには図に示さないポートとを通じて、フラッシュメモリ20に接続する。HIM16は、デジタルカメラ、パーソナルコンピュータ、個人用携帯情報端末(PDA)、MP−3プレーヤ、携帯電話、または他のデジタル装置のようなホストシステムに対する接続に適している。周辺アクセスモジュール22は、CPU12と通信するために、FIM、HIM、およびBMUなどの適切なコンローラモジュールを選択する。一実施形態において、点線のボックス内のシステム10のすべての要素が、メモリカードなどの単一のユニット、好ましくはカード内に密封されていてもよい。
図2は、システム10を実行するファームウェア200を含むフラッシュメモリのメモリ空間の図である。システムファームウェア200は、フラッシュメモリ20内に常駐して変更不可能なのが好ましいブートローダ(BLR)部200aと、フラッシュメモリ20内に常駐して必要に応じて変更可能なシステムファームウェア200bとを備える。ある実施形態において、直接またはシャドウイングされたコピーから実行される場合にBLR部200aをポイントする追加のファームウェアがROM13内にあってもよい。システムファームウェア200のサイズは、実行元であるRAMモジュールよりも大きいので、システムファームウェアは、オーバーレイと称されるより小さい部分に分割される。好ましい実施形態におけるBLRの完全性ベリファイは、固有のその場の(on the fly)計算を使用し、当該計算において、期待値がデータ自身に記憶され、コピーがフラッシュメモリ20以外のメモリ内のレジスタに一時的に記憶される。しかし、ある実施形態において、BLRの完全性をベリファイするために使用される手法は、システムファームウェア200bの完全性をベリファイするためにも使用可能である。前述したように、任意のハッシュ値およびハッシュ手法を使用可能であるが、MACまたはSHA−1の値が現時点においては好ましく、簡素化のために、好ましい一実施形態において、一方または他方の使用について説明する。通常、SHA−1のダイジェストをMAC値の代わりに使用してもよく、その逆であってもよい。MAC値を使用する利点として、MAC値が、ハードウェアと、MACを作成したハードウェアのキーとに関連していることが挙げられる。SHA−1値は、単にデータ自体に基づいて所定のデータセットのために作成可能だが、MAC値は、キーなしでは再作成することは不可能であり、したがって、より強固なセキュリティを提供する。特定的には、MAC値を作成するには、暗号化エンジン40の不揮発性メモリに記憶されたキー99を使用しなければならないが、MAC値を再作成するには、他のプロセッサを使用することができない。例えば、ハッカーは、ファームウェアおよび関連するMAC値を複製するために、システム外部から他のプロセッサを使用することはできない。
MAC[0...(i)]=MAC[MAC[0...(i−1)],
block(i)]
Claims (13)
- 動作を開始するとともにメモリ記憶装置を動作するための方法であって、
前記メモリ記憶装置の大容量記憶ユニット内に前記メモリ記憶装置のファームウェアを設けるステップと、
前記ファームウェアを前記メモリ記憶装置のハードウェアで実施される暗号化エンジンに通すステップと、
前記ファームウェアについてのハッシュ値を前記ハードウェアで実施される暗号化エンジンで計算するステップと、
前記ファームウェアについてのハッシュ値を前記ハードウェアで実施される暗号化エンジンで最後に計算したときに記憶されたハッシュ値と計算されたハッシュ値を比較するステップと、
前記計算されたハッシュ値が前記記憶されたハッシュ値と一致する場合に、前記ファームウェアを実行するステップと、
を含む方法。 - メモリ記憶装置の動作を開始するための方法であって、
前記メモリ記憶装置の大容量記憶ユニット内に、前記メモリ記憶装置の動作を制御するファームウェアを設けるステップと、
前記ファームウェアを前記メモリ記憶装置の大容量記憶ユニットから前記メモリ記憶装置のランダムアクセスメモリへコピーする、読み出し専用メモリ内の第1の命令セットを実行するステップと、
前記ファームウェアを前記大容量記憶ユニットから前記メモリ記憶装置のメモリコントローラ内のハードウェアで実施される暗号化エンジンに通すときに、ファームウェアの完全性をベリファイするステップであって、前記ファームウェアについてのハッシュ値を前記ハードウェアで実施される暗号化エンジンで最後に計算したときに記憶されたハッシュ値と計算されたハッシュ値を比較することによって、ファームウェアの完全性をベリファイするステップと、
完全性がベリファイされた後に、ランダムアクセスメモリからファームウェアをマイクロプロセッサで実行するステップと、
を含む方法。 - 請求項2記載の方法において、
前記ファームウェアは、前記大容量記憶ユニットからさらなるファームウェアをフェッチするための命令を含む方法。 - 請求項3記載の方法において、
さらなるファームウェアを実行するステップをさらに含む方法。 - 請求項1記載の方法において、
前記ファームウェアを設けるステップは、複数のファームウェアオーバーレイを設けることを含む方法。 - 請求項5記載の方法において、
複数のファームウェアオーバーレイのそれぞれのオーバーレイ内に、ハッシュを備えるオーバーレイを含む多数のファームウェアの計算されたハッシュ値に等しいことを期待されたハッシュ値を記憶するステップをさらに含む方法。 - 請求項6記載の方法において、
読み出される多数のファームウェアの計算されたハッシュ値は、期待されたハッシュ値を含むセクタが読み出されたときに、期待されたハッシュ値だけに対応し得る方法。 - 請求項6記載の方法において、
前記期待されたハッシュ値を含むセクタブロックまたはページ以外のセクタブロックまたはページ上の誤った肯定一致を無視するステップをさらに含む方法。 - 請求項1記載の方法において、
前記ハッシュ値を計算するステップは、MAC[0...(i)]=MAC[MAC[0...(i−1)],block(i)]でブロック(i)についてのMAC値が計算されることを含むが、結果生じたMAC値はブロック0から(i)までを対象として含む方法。 - 請求項9記載の方法において、
前記メモリ記憶装置のメモリコントローラの、前記大容量記憶ユニット内にはないレジスタ内にブロック(i)についての計算されたMAC値を記憶するステップをさらに含む方法。 - 請求項9記載の方法において、
結果生じたMAC値がブロック0から(i)までを対象として含むMAC[0...(i)]=MAC[MAC[0...(i−1)],block(i)]で前記ブロック(i)についてのハッシュ値を計算するステップは、前記ファームウェアのブートローダに対して行われる方法。 - 請求項9記載の方法において、
結果生じたMAC値がブロック0から(i)までを対象として含むMAC[0...(i)]=MAC[MAC[0...(i−1)],block(i)]で前記ブロック(i)についてのハッシュ値を計算するステップは、前記ファームウェアのブートローダに対して行われるが、前記ファームウェア全体に対しては行われない方法。 - 請求項9記載の方法において、
結果生じたMAC値がブロック0から(i)までを対象として含むMAC[0...(i)]=MAC[MAC[0...(i−1)],block(i)]で前記ブロック(i)についてのハッシュ値を計算するステップは、前記ファームウェア全体に対して行われる方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71734705P | 2005-09-14 | 2005-09-14 | |
US60/717,347 | 2005-09-14 | ||
US11/285,600 | 2005-11-21 | ||
US11/284,623 | 2005-11-21 | ||
US11/285,600 US8966284B2 (en) | 2005-09-14 | 2005-11-21 | Hardware driver integrity check of memory card controller firmware |
US11/284,623 US7536540B2 (en) | 2005-09-14 | 2005-11-21 | Method of hardware driver integrity check of memory card controller firmware |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008531324A Division JP5089593B2 (ja) | 2005-09-14 | 2006-09-13 | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011210278A JP2011210278A (ja) | 2011-10-20 |
JP5411896B2 true JP5411896B2 (ja) | 2014-02-12 |
Family
ID=37597492
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008531324A Expired - Fee Related JP5089593B2 (ja) | 2005-09-14 | 2006-09-13 | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック |
JP2011137416A Expired - Fee Related JP5411896B2 (ja) | 2005-09-14 | 2011-06-21 | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008531324A Expired - Fee Related JP5089593B2 (ja) | 2005-09-14 | 2006-09-13 | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック |
Country Status (5)
Country | Link |
---|---|
EP (2) | EP2320345A3 (ja) |
JP (2) | JP5089593B2 (ja) |
KR (1) | KR100973733B1 (ja) |
CN (1) | CN102142070B (ja) |
WO (1) | WO2007033322A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7743409B2 (en) | 2005-07-08 | 2010-06-22 | Sandisk Corporation | Methods used in a mass storage device with automated credentials loading |
JP2014191372A (ja) * | 2013-03-26 | 2014-10-06 | Mega Chips Corp | 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム |
WO2016071743A1 (en) * | 2014-11-07 | 2016-05-12 | Elliptic Technologies Inc. | Integrity protection for data storage |
CN104809398A (zh) * | 2015-04-21 | 2015-07-29 | 深圳怡化电脑股份有限公司 | 密码键盘引导程序固件防篡改方法及装置 |
KR101795457B1 (ko) * | 2016-09-27 | 2017-11-10 | 시큐리티플랫폼 주식회사 | 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법 |
KR101887974B1 (ko) | 2016-12-01 | 2018-08-13 | 현대오트론 주식회사 | 엔진제어기의 안전부팅을 위한 시스템 및 방법 |
KR102089435B1 (ko) * | 2018-04-11 | 2020-03-16 | 고려대학교 세종산학협력단 | 안전한 usb 장치를 보장하는 부트 방법 |
KR102545102B1 (ko) * | 2018-05-15 | 2023-06-19 | 현대자동차주식회사 | 차량용 제어기 및 그 업데이트 방법 |
KR102286794B1 (ko) * | 2018-08-16 | 2021-08-06 | 경희대학교 산학협력단 | 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법 |
JP6808793B1 (ja) * | 2019-09-20 | 2021-01-06 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH039427A (ja) * | 1989-06-07 | 1991-01-17 | Koufu Nippon Denki Kk | マイクロプログラム制御装置 |
US5327305A (en) | 1992-08-14 | 1994-07-05 | Conner Peripherals, Inc. | Tape format detection system |
US6708274B2 (en) * | 1998-04-30 | 2004-03-16 | Intel Corporation | Cryptographically protected paging subsystem |
US6735696B1 (en) * | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
JP3219064B2 (ja) * | 1998-12-28 | 2001-10-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | デジタルデータ認証システム |
JP4812168B2 (ja) * | 1999-02-15 | 2011-11-09 | ヒューレット・パッカード・カンパニー | 信用コンピューティング・プラットフォーム |
AUPQ321699A0 (en) * | 1999-09-30 | 1999-10-28 | Aristocrat Leisure Industries Pty Ltd | Gaming security system |
US20030041242A1 (en) * | 2001-05-11 | 2003-02-27 | Sarver Patel | Message authentication system and method |
US6907522B2 (en) * | 2002-06-07 | 2005-06-14 | Microsoft Corporation | Use of hashing in a secure boot loader |
US20040025027A1 (en) * | 2002-07-30 | 2004-02-05 | Eric Balard | Secure protection method for access to protected resources in a processor |
US7082525B2 (en) * | 2002-10-02 | 2006-07-25 | Sandisk Corporation | Booting from non-linear memory |
US7246266B2 (en) * | 2002-11-21 | 2007-07-17 | Chris Sneed | Method and apparatus for firmware restoration in modems |
JP4467246B2 (ja) * | 2003-03-13 | 2010-05-26 | パナソニック株式会社 | メモリカード |
US8041957B2 (en) * | 2003-04-08 | 2011-10-18 | Qualcomm Incorporated | Associating software with hardware using cryptography |
US7491122B2 (en) * | 2003-07-09 | 2009-02-17 | Wms Gaming Inc. | Gaming machine having targeted run-time software authentication |
US7594135B2 (en) * | 2003-12-31 | 2009-09-22 | Sandisk Corporation | Flash memory system startup operation |
US20050190393A1 (en) * | 2004-02-27 | 2005-09-01 | Agilent Technologies, Inc. | Programmable controller system and method for supporting various operational modes in peripheral devices |
-
2006
- 2006-09-13 EP EP11001172A patent/EP2320345A3/en not_active Withdrawn
- 2006-09-13 KR KR1020087006251A patent/KR100973733B1/ko not_active IP Right Cessation
- 2006-09-13 EP EP06814655A patent/EP1934880A2/en not_active Withdrawn
- 2006-09-13 CN CN2011100593111A patent/CN102142070B/zh not_active Expired - Fee Related
- 2006-09-13 JP JP2008531324A patent/JP5089593B2/ja not_active Expired - Fee Related
- 2006-09-13 WO PCT/US2006/035840 patent/WO2007033322A2/en active Application Filing
-
2011
- 2011-06-21 JP JP2011137416A patent/JP5411896B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102142070B (zh) | 2013-11-06 |
EP2320345A3 (en) | 2011-08-10 |
WO2007033322A2 (en) | 2007-03-22 |
JP2009508272A (ja) | 2009-02-26 |
JP5089593B2 (ja) | 2012-12-05 |
EP1934880A2 (en) | 2008-06-25 |
KR100973733B1 (ko) | 2010-08-04 |
EP2320345A2 (en) | 2011-05-11 |
KR20080045708A (ko) | 2008-05-23 |
CN102142070A (zh) | 2011-08-03 |
JP2011210278A (ja) | 2011-10-20 |
WO2007033322A3 (en) | 2007-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7536540B2 (en) | Method of hardware driver integrity check of memory card controller firmware | |
JP5411896B2 (ja) | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック | |
CN107667499B (zh) | 带密钥散列消息认证码处理器、方法、系统和指令 | |
JP5285075B2 (ja) | セキュア・カーネル設計による安全基準の差別化 | |
TW201145069A (en) | Providing integrity verification and attestation in a hidden execution environment | |
CN112699383B (zh) | 数据密码设备、存储器系统及其操作方法 | |
US11341282B2 (en) | Method for the execution of a binary code of a secure function by a microprocessor | |
US20170060775A1 (en) | Methods and architecture for encrypting and decrypting data | |
TWI760752B (zh) | 應用加速驗證映像檔方法的系統 | |
KR101954439B1 (ko) | 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법 | |
KR101988404B1 (ko) | 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법 | |
CN114694737A (zh) | 具有差错纠正能力的低开销存储器完好性 | |
JP6930884B2 (ja) | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム | |
US9213864B2 (en) | Data processing apparatus and validity verification method | |
TW202326482A (zh) | 在一開蓋竄改事件中使一安全啟動失敗的電腦系統 | |
CN117610004A (zh) | 固件校验方法、系统启动方法、装置、系统、设备及介质 | |
JP2009080515A (ja) | セキュアなロードシーケンスを提供する方法および装置 | |
TW201346764A (zh) | 開機保全軟體方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130416 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130712 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131108 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |