JP2023101410A - ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法 - Google Patents

ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法 Download PDF

Info

Publication number
JP2023101410A
JP2023101410A JP2023001357A JP2023001357A JP2023101410A JP 2023101410 A JP2023101410 A JP 2023101410A JP 2023001357 A JP2023001357 A JP 2023001357A JP 2023001357 A JP2023001357 A JP 2023001357A JP 2023101410 A JP2023101410 A JP 2023101410A
Authority
JP
Japan
Prior art keywords
signature
public key
software image
host
verification
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
JP2023001357A
Other languages
English (en)
Inventor
文 贊 朴
Moonchan Park
志 守 金
Ji-Soo Kim
淵 成 秋
Younsung Chu
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2023101410A publication Critical patent/JP2023101410A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】ストレージコントローラ、ストレージシステム及びストレージ装置の動作方法を提供する。【解決手段】本発明によるストレージシステムは、ソフトウェアイメージ、及び第1秘密キーに基づいて生成されたソフトウェアイメージに対する第1署名を受信し、第2秘密キーに基づいて、ソフトウェアイメージに対する第2署名を生成するホストと、ホストから、ソフトウェアイメージ、第1署名、第2署名及び第2秘密キーと関連した第2公開キーを受信し、第1秘密キーと関連した第1公開キーに基づいて行われる第1署名に関連する検証、及び第2公開キーに基づいて行われる第2署名に関連する検証に基づいて、ソフトウェアイメージを実行するように構成されたストレージ装置と、を含む。【選択図】図1

Description

本発明は、ストレージ装置に関し、特に、ソフトウェアイメージ及びそれに対する電子署名を保存するストレージ装置に関する。
ファームウェアは、ハードウェアを制御するプログラムを指称する。
ファームウェアは、ハードウェア製造時にハードウェア内の保存空間にプロビジョニングされる。
ファームウェア及びハードウェアを含むシステムに対する攻撃は、多様な方式によって試みがなされる。
攻撃者は、システムのファームウェアの内の少なくとも一部を変更することにより、攻撃者が意図した動作をシステムが実行するようにする。
ファームウェアを変更する攻撃に対する保安を提供するために、システムは、ファームウェア実行前にファームウェアに対する認証を行い、外部からアップデートされたファームウェアをダウンロードする場合、アップデートされたファームウェアに対する認証を行う、という問題がある。
特開2012-64225号公報
本発明は、上記従来のファームウェアにおける問題点に鑑みてなされたものであって、本発明の目的は、ファームウェアディストリビュータ及びホストによって生成される二重署名ファームウェア(dual-signed firmware)を認証するストレージコントローラ及びストレージ装置の動作方法を提供することにある。
上記目的を達成するためになされた本発明によるストレージシステムは、ソフトウェアイメージ、及び第1秘密キーに基づいて生成された前記ソフトウェアイメージに対する第1署名を受信し、第2秘密キーに基づいて、前記ソフトウェアイメージに対する第2署名を生成するホストと、前記ホストから、前記ソフトウェアイメージ、前記第1署名、前記第2署名、及び前記第2秘密キーと関連した第2公開キーを受信し、前記第1秘密キーと関連した第1公開キーに基づいて行われる前記第1署名に関連する第1検証、及び前記第2公開キーに基づいて行われる前記第2署名に関連する第2検証に基づいて、前記ソフトウェアイメージを実行するように構成されるストレージ装置と、を有することを特徴とする。
上記目的を達成するためになされた本発明によるストレージコントローラは、プロセッサと、前記プロセッサによって実行されるソフトウェアイメージ、及び前記ソフトウェアイメージに対する第1署名を保存する不揮発性メモリと、前記第1署名に関連する検証に使用される第1公開キーを保存する保安メモリと、ホストから第2公開キー及び前記ソフトウェアイメージに対する第2署名を受信するホストインターフェースと、を有し、前記プロセッサは、前記第1公開キーに基づいて前記第2公開キーを認証し、前記第2公開キーに基づいて前記第2署名を認証し、前記第2署名を前記不揮発性メモリに保存し、前記第2公開キーを前記保安メモリに保存することを特徴とする。
上記目的を達成するためになされた本発明によるストレージ装置の動作方法は、ホストと通信し、第1公開キーを保存するストレージ装置の動作方法であって、前記ホストから、ソフトウェアイメージ、前記ソフトウェアイメージに対する第1署名、前記ソフトウェアイメージに対する第2署名、及び第2公開キーを受信する段階と、前記第1公開キーに基づいて、前記第1署名に関連する第1検証を行う段階と、前記第2公開キーに基づいて、前記第2署名に関連する第2検証を行う段階と、前記第1検証及び前記第2検証に基づいて、前記ソフトウェアイメージ、前記第1署名、及び前記第2署名を保存する段階と、を有することを特徴とする。
本発明に係るストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法によれば、ファームウェアディストリビュータ及びホストによって生成される二重署名ファームウェアを認証することによって、ファームウェアの真正性の検証がより高精度となり、セキュリティが向上したファームウェアの更新を行うことができる。
本発明の実施形態によるストレージシステムの概略構成を示すブロック図である。 本発明の実施形態によるイメージ署名システムの概略構成を示すブロック図である。 本発明の実施形態によるストレージコントローラの概略構成を示し、ファームウェア認証方法を説明するためのブロック図である。 本発明の実施形態によるストレージシステムの概略構成を示すブロック図である。 本発明の実施形態による二重署名されたファームウェアの保存方法を説明するためのフローチャートである。 本発明の実施形態によるストレージ装置の動作方法を説明するためのフローチャートである。 本発明の実施形態による二重署名されたファームウェアの保存方法を説明するためのフローチャートである。 本発明の実施形態による認証状態テーブル及び状態遷移を説明するための図である。 本発明の実施形態による認証状態別のROM及び保安メモリに保存されるデータを説明するための図である。 本発明の実施形態によるソフトウェアイメージを認証する方法を説明するためのフローチャートである。 本発明の実施形態によるファームウェアアップデートを説明するための図である。
次に、本発明に係るストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法を実施するための形態の具体例を図面を参照しながら説明する。
図1は、本発明の実施形態によるストレージシステムの概略構成を示すブロック図である。
一部実施形態において、ストレージシステム1は、非制限的な例示として、サーバ(server)、デスクトップコンピュータ、キオスク(kiosk)のような固定型(stationary)コンピューティングシステム、又はそのサブシステムであり得る。
一部実施形態において、ストレージシステム1は、非制限的な例示として、モバイルフォン、ウェアラブル機器、ラップトップコンピュータのような携帯用(portable)コンピューティングシステム又はそのサブシステムでもあり得る。
一部実施形態において、ストレージシステム1は、非制限的な例示として、家電、産業機器、運送手段のように、独立型コンピューティングシステムと相異なっている任意のシステムに含まれるサブシステムでもあり得る。
図1を参照すると、ストレージシステム1は、ホスト10及びストレージ装置20を含む。
一部実施形態において、ホスト10及びストレージ装置20は、ボードに実装され、ボードに形成されたパターンを介して相互接続される。
一部実施形態において、ホスト10は、命令語を処理する少なくとも1つのコアを含む。
一部実施形態において、ホスト10は、非制限的な例示として、アプリケーションプロセッサ、マイクロプロセッサ、CPU(Central Processing Unit)、プロセッサコア、マルチ・コアプロセッサ、マルチプロセッサ、ASIC(Application-Specific Integrated Circuit)及びFPGA(Field Programmable Gate Array)を含み得る。
ホスト10は、外部から、第1秘密キーsKEYに基づいて署名されたファームウェアFWsigned A(以下、単一署名されたファームウェア(single-signed firmware))を受信する。
単一署名されたファームウェアFWsigned Aは、ファームウェアFW、及び第1秘密キーsKEYに基づいて生成されるA署名(SIG A)を含むものとも理解される。
本明細書において、ファームウェアは、ソフトウェア又はプログラムとも指称される。
ファームウェアは、ストレージ装置20を制御するソフトウェアを指称する。
例えば、ストレージ装置20のファームウェアは、HIL(Host Interface Layer)、FTL(Flash Translation Layer)、及びFIL(Flash Interface Layer)を含むものでもある。
HILは、ホスト10とストレージコントローラ21とのデータ伝送を管理し、FTLは、ホスト10から受信した論理アドレスを不揮発性メモリ22の物理アドレスに変換し、FILは、ストレージコントローラ21と不揮発性メモリ22とのデータ伝送を管理する。
ホスト10は、ストレージ装置20の製造者、ストレージシステム1の製造者、又はファームウェアFWの供給者(以下、ファームウェアディストリビュータ)から単一署名されたファームウェアFWsigned Aを受信する。
ファームウェアディストリビュータは、第1秘密キーsKEYに基づいてファームウェアFWに対するA署名(SIG A)を生成し、ファームウェアFW及びA署名(SIG A)をホスト10に提供する。
ファームウェアディストリビュータは、第1秘密キーsKEYが外部に公開されないように管理する。
例えば、ファームウェアディストリビュータは、ハードウェア保安モジュール(Hardware Security Module:HSM)を使用して第1秘密キーsKEYを管理し、第1秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aを生成する。
ホスト10は、第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに署名することにより、二重署名されたファームウェアFWsigned A,Bを生成し、二重署名されたファームウェアFWsigned A,Bをストレージ装置20に提供する。
二重署名されたファームウェアFWsigned A,Bは、ファームウェアFW、第1秘密キーsKEYに基づいて生成されるA署名(SIG A)、及び第2秘密キーsKEYに基づいて生成されるB署名(SIG B)を含むものとも理解される。
具体的には、ホスト10は、第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに対するB署名(SIG B)を生成し、単一署名されたファームウェアFWsigned A及びB署名(SIG B)をストレージ装置20に提供する。
署名生成方法の例示は、図2を参照して後述する。
ストレージ装置20は、ストレージコントローラ21及び不揮発性メモリ22を含む。
ストレージコントローラ21は、第1公開キーpKEY及び第2公開キーpKEYに基づいてファームウェアFWを認証する。
ファームウェアの認証は、ファームウェアの真正性(authenticity)を判定するものであって、ファームウェアが認証された(authenticated)者によって生成されたものであり、ファームウェアデータが真のものであることを判定することを指称する。
認証されたファームウェアは、信頼することができるファームウェアを指称する。
実施形態において、第2公開キーpKEYに基づいてB署名(SIG B)が検証された場合、単一署名されたファームウェアFWsigned Aがホスト10によって生成されたものであることが認証される。
第1公開キーpKEYに基づいてA署名(SIG A)が検証された場合、ファームウェアFWがファームウェアディストリビュータによって生成されたものであることが認証される。
ストレージコントローラ21は、認証された二重署名されたファームウェアFWsigned A,Bを保存する。
ストレージコントローラ21は、起動時、第1公開キーpKEY及び第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証することにより、ファームウェアFWに対して認証し、認証結果に基づいてファームウェアFWを実行する。
第1公開キーpKEYは、第1秘密キーsKEYと関連したキーであって、第1秘密キーsKEYに基づいて生成された署名(例えば、A署名(SIG A))を検証するために使用される。
第1公開キーpKEYは、ストレージ装置20の製造過程においてストレージコントローラ21にプロビジョニングされる(provisioned)。
第2公開キーpKEYは、第2秘密キーsKEYと関連したキーであって、第2秘密キーsKEYに基づいて生成された署名(例えば、B署名(SIG B))を検証するために使用される。
ストレージコントローラ21は、第2公開キーpKEYをホスト10から取得する。
本発明の実施形態によるストレージコントローラ21は、第1公開キーpKEY及び第2公開キーpKEYに基づいてファームウェアFWに対する認証を行うことにより、受信したファームウェアFWが真のファームウェアディストリビュータ及び真のホスト10から伝達されたファームウェアFWであることを判定する。
不揮発性メモリ22は、電力の供給が遮断されても、保存されたデータを消失しない。
不揮発性メモリ22は、フラッシュメモリ、MRAM(Magnetic Random Access Memory)、PRAM(Phase-change Random Access Memory)、RRAM(Resistive Random Access Memory)などを含み得る。
不揮発性メモリ22は、テープ、磁気ディスク、光学ディスクのような記録媒体を含み得る。
ストレージコントローラ21は、不揮発性メモリ22に保存されたデータをホスト10に提供し、ホスト10から受信したデータを不揮発性メモリ22に保存する。
図2は、本発明の実施形態によるイメージ署名システムの概略構成を示すブロック図である。
図2は、図1を参照して後述する。
図2のイメージ署名システム30は、図1を参照して前述したファームウェアディストリビュータにも含まれる。
この場合、イメージ署名システム30は、ファームウェアFWを受信し、ホスト10に伝達される単一署名されたファームウェアFWsigned Aを生成する。
一部実施形態において、イメージ署名システム30は、ホスト10にも含まれる。
この場合、イメージ署名システム30は、単一署名されたファームウェアFWsigned Aを受信し、二重署名されたファームウェアFWsigned A,Bを生成する。
以下、イメージ署名システム30がファームウェアディストリビュータに含まれるものとして説明するが、実施形態はそれに制限されない。
イメージ署名システム30は、任意のコンピューティングシステムによっても具現される。
例えば、イメージ署名システム30の構成要素それぞれは、論理合成を介して設計されるハードウェアモジュール、少なくとも1つのコアによって実行されるソフトウェアモジュール、少なくとも1つのコア及びソフトウェアモジュールを含むプロセッシングユニット、及びそれらの組み合わせによっても具現される。
イメージ署名システム30は、ホスト10に伝達されるファームウェアを受信する。
一部実施形態において、イメージ署名システム30は、アップデートされたファームウェア(updated FW)を受信する。
図2に示すように、イメージ署名システム30は、キー生成器31、ハッシュ回路32、署名生成器33、及び署名されたイメージ生成器34を含む。
キー生成器31は、第1秘密キーsKEY及び第1公開キーpKEYで構成されたキーペアを生成する。
例えば、キー生成器31は、乱数生成器を含んでもよく、乱数に基づいてキーペアを生成することができる。
一部実施形態において、キー生成器31は、省略可能であり、イメージ署名システム30は、外部からキーペアの内の少なくとも1つを受信する。
ハッシュ回路32は、ファームウェアFWを受信し、ファームウェアFWに対するダイジェストDIGを生成する。
ダイジェストDIGは、SHA(Secure Hash Algorithm)のように、ハッシュアルゴリズムに基づいて生成されるハッシュ値を指称する。
署名生成器33は、キー生成器31から第1秘密キーsKEYを受信し、第1秘密キーsKEYに基づいてダイジェストDIGに対するデジタル署名、すなわち、A署名(SIG A)を生成する。
A署名(SIG A)は、任意の署名アルゴリズムに基づいて生成可能であり、例えば、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm:ECDSA)に基づいて第1秘密キーsKEYから生成される。
一部実施形態において、署名生成器33は、図2に示したように、第1公開キーpKEYを受信することもでき、第1秘密キーsKEY及び第1公開キーsKEYに基づいてA署名(SIG A)を生成することもできる。
署名されたイメージ生成器34は、ファームウェアFW及びA署名(SIG A)を受信し、単一署名されたファームウェアFWsigned Aを生成する。
すなわち、単一署名されたファームウェアFWsigned Aは、ファームウェアFW及びA署名(SIG A)を含むものである。
一部実施形態において、署名されたイメージ生成器34は、単一署名されたファームウェアFWsigned A及び第1公開キーpKEYを1つのデジタル封筒(digital envelope)形態に生成し、生成されたデジタル封筒をホスト10に伝達する。
イメージ署名システム30がファームウェアFWに対するA署名(SIG A)を生成する過程について前述したが、イメージ署名システム30は、任意のファームウェア、プログラム、ソフトウェア、又はデータに対して署名を生成することができる。
本明細書において、署名の対象となるデータは、メッセージMSGとも指称される。
図3は、本発明の実施形態によるストレージコントローラの概略構成を示し、ファームウェア認証方法を説明するためのブロック図である。
図3は、ストレージコントローラ21を示しているが、図3のストレージコントローラ21の構成要素は、図1のホスト10にも含まれる。
図3を参照すると、ストレージコントローラ21は、メッセージMSG及びメッセージに対する署名SIGを受信し、公開キーpKEYに基づいて署名SIGを検証することにより、メッセージMSGが真のエンティティによって生成されたものであることを判定する。
一部実施形態において、メッセージMSGは、単一署名されたファームウェアFWsigned A又は二重署名されたファームウェアFWsigned A,Bでもある。
ストレージコントローラ21は、ハッシュ回路41、復号化回路42、及び比較回路43を含む。
ハッシュ回路41は、ハッシュアルゴリズムに基づいてメッセージMSGに対するダイジェストDIGを生成する。
復号化回路42は、公開キーpKEYに基づいて署名SIGを復号化することにより、比較対象ダイジェストDIG’を生成する。
一部実施形態において、公開キーpKEYは、第1公開キーpKEY又は第2公開キーpKEYでもある。
比較回路43は、ダイジェストDIGと比較対象ダイジェストDIG’とを比較することにより、有効性情報VLDを生成する。
有効性情報VDLは、メッセージMSGが真のエンティティによって生成されたものであることを示す情報である。
例えば、ハッシュ回路41は、単一署名されたファームウェアFWsigned AのダイジェストDIGを生成する。
復号化回路42は、認証された第2公開キーpKEYに基づいてB署名(SIG B)を復号化することにより、比較対象ダイジェストDIG’を生成する。
比較回路43は、ダイジェストDIGと比較対象ダイジェストDIG’とを比較し、比較結果に基づいて有効性情報VLDを出力する。
有効性情報VLDは、単一署名されたファームウェアFWsigned Aが真のエンティティ、すなわち、ホスト10によって生成されたものであることを示す情報である。
有効性情報VLDにより、単一署名されたファームウェアFWsigned Aが真のエンティティによって生成されたものであることが判定された場合、ストレージコントローラ21は、ファームウェアFW、A署名(SIG A)及び第1公開キーpKEYに基づいてファームウェアFWを認証する。
ハッシュ回路41は、ファームウェアFWのダイジェストDIGを生成する。
復号化回路42は、第1公開キーpKEYに基づいてA署名(SIG A)を復号化することにより、比較対象ダイジェストDIG’を生成する。
比較回路43は、ダイジェストDIGと比較対象ダイジェストDIG’とを比較し、比較結果に基づいて有効性情報VLDを出力する。
有効性情報VLDは、ファームウェアFWが真のエンティティ、すなわち、ファームウェアディストリビュータによって生成されたものであることを示す情報である。
図4は、本発明の実施形態によるストレージシステム100の概略構成を示すブロック図である。
図4を参照すると、ストレージシステム100は、ホスト110及びストレージ装置200を含む。
また、ストレージ装置200は、ストレージコントローラ210及び不揮発性メモリ(NVM)220を含む。
また、本発明の実施形態によって、ホスト110は、ホストコントローラ111及びホストメモリ112を含む。
ホストメモリ112は、ストレージ装置200へ伝送されるデータ、あるいはストレージ装置200から伝送されたデータを臨時に保存するためのバッファメモリとして機能する。
一部実施形態において、図5を参照して後述するように、ホストメモリ112に保存されるデータは、二重署名されたファームウェアFWsigned A,B、第2公開キーpKEY、要請Req、又は第2公開キーpKEY、及び要請Reqに対する署名(SIG A)[pKEY,Req]を含む。
一部実施形態において、図7を参照して後述するように、ホストメモリ112に保存されるデータは、二重署名されたファームウェアFWsigned A,B、第3公開キーpKEY、第3公開キーpKEYに対する署名(SIG A)[pKEY]、第2公開キーpKEY、又は第2公開キーpKEYに対する署名(SIG C)[pKEY]を含む。
ストレージ装置200は、ホスト110からの要請によってデータを保存するための記録媒体を含む。
一例として、ストレージ装置200は、SSD(Solid State Drive)、埋め込み(embedded)メモリ、及び着脱可能な外装(external)メモリの内の少なくとも1つを含む。
ストレージ装置200がSSDである場合、ストレージ装置200は、NVMe(non-volatile memory express)標準による装置であり得る。
ストレージ装置200が埋め込みメモリあるいは外装メモリである場合、ストレージ装置200は、UFS(universal flash storage)あるいはeMMC(embedded multi-media card)標準による装置であり得る。
ホスト110とストレージ装置200は、それぞれ採用された標準プロトコルによるパケットを生成し、それを伝送する。
ストレージ装置200の不揮発性メモリ220がフラッシュメモリを含むとき、フラッシュメモリは、2D NANDメモリアレイや3D(又は、垂直型)NAND(VNAND)メモリアレイを含み得る。
他の例として、ストレージ装置200は、他の多様な種類の不揮発性メモリを含み得る。
例えば、ストレージ装置200は、MRAM(Magnetic RAM)、スピン伝達トルクMRAM(Spin-Transfer Torgue MRAM)、CBRAM(Conductive bridging RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase RAM)、抵抗メモリ(Resistive RAM)及び他の多様な種類のメモリが適用可能である。
一実施形態によって、ホストコントローラ111とホストメモリ112は、別途の半導体チップでも具現され得る。
又は、一部実施形態において、ホストコントローラ111とホストメモリ112は、同じ半導体チップに集積され得る。
一例として、ホストコントローラ111は、アプリケーションプロセッサ(Application Processor)に具備される複数のモジュールの内のいずれか1つであり、アプリケーションプロセッサは、システムオンチップ(System on Chip:SoC)でも具現され得る。
また、ホストメモリ112は、アプリケーションプロセッサ内に具備される埋め込みメモリであってもよく、アプリケーションプロセッサの外部に配置される不揮発性メモリ又はメモリモジュールであってもよい。
ホストコントローラ111は、ホストメモリ112に保存されたデータをストレージ装置200に保存する動作を管理するか、あるいはストレージ装置200のデータをホストメモリ112に保存する動作を管理する。
一部実施形態において、ホストコントローラ111は、イメージ署名システム113を含むものである。
一部実施形態において、イメージ署名システム113は、図2のイメージ署名システム30と同様な構造を有する。
イメージ署名システム113は、固有の秘密キー、例えば、第2秘密キーsKEY又は第3秘密キーsKEYに基づいて署名を生成する。
一部実施形態において、図7を参照して後述するように、イメージ署名システム113は、固有の第3秘密キーsKEYに基づいて第2公開キーpKEYに対する署名(SIC C)[pKEY]を生成する。
ストレージコントローラ210は、ホストインターフェース211、メモリインターフェース212、プロセッサ213、暗号化回路214、RAM(Random Access Memory)215、ROM(Read Only Memory)216、及び保安メモリ217を含む。
本明細書において、RAM215は、システムメモリとも指称される。
一部実施形態において、ROM216は、PROM(Programmable Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)又はフラッシュメモリであり得る。
ホストインターフェース211は、ホスト110とパケット(packet)を送受信する。
ホスト110からホストインターフェース211へ伝送されるパケットは、コマンド(command)、不揮発性メモリ220に記録されるデータ、又はストレージコントローラ210内の保存空間(例えば、ROM216又は保安メモリ217)に記録されるデータなどを含み、ホストインターフェース211からホスト110へ伝送されるパケットは、コマンドに対する応答(response)あるいは不揮発性メモリ220から読み取られたデータなどを含む。
図5の段階S540のデータ及び図7の段階S740のデータは、ホストインターフェース211を介してストレージ装置200に受信される。
メモリインターフェース212は、不揮発性メモリ220に記録されるデータを不揮発性メモリ220に送信するか、あるいは不揮発性メモリ220から読み取られたデータを受信する。
当該メモリインターフェース212は、トグル(Toggle)あるいはONFIのような標準規約を守るように具現され得る。
プロセッサ213は、予め定義された動作を高速で実行するように設計されたハードウェア加速器、プロセッサ213の外部構成要素との通信チャネルを提供する入出力(I/O)インターフェースなどをさらに含み得る。
一部実施形態において、プロセッサ213の構成要素は、単一チップ又は単一ダイ(die)に集積され、プロセッサ213は、SoCとしても指称される。
一部実施形態において、プロセッサ213の構成要素は、1つのパッケージに含まれた2以上のチップに集積され、プロセッサ213は、システム・イン・パッケージ(System-in-Package: SiP)としても指称される。
プロセッサ213は、MCU(Miro Control Unit)とも指称される。
一部実施形態において、プロセッサ213は、ROM226に保存されたソフトウェア(例えば、FTL218)イメージに含まれた命令語を実行する。
例えば、ROM226に保存されたソフトウェアイメージに含まれた命令語の少なくとも一部が、プロセッサ213に含まれたキャッシュ(cache)又はRAM225にコピーされ、プロセッサ213は、コピーされた命令語を実行する。
暗号化回路214は、ストレージコントローラ210に入力されるデータに対する暗号化(encryption)動作と復号化(decryption)動作の内の少なくとも1つを、対称キーアルゴリズム(symmetric-key algorithm)を利用して実行する。
RAM215は、プロセッサ213によって使用されるデータを一時的に保存する。
例えば、RAM215は、ROM216、保安メモリ217、又は不揮発性メモリ220から読み取られたデータを一時的に保存し、ROM216、保安メモリ217、又は不揮発性メモリ220に書き込むデータを一時的に保存する。
また、RAM215は、プロセッサ213によって実行される命令語を一時的に保存する。
一部実施形態において、RAM215は、DRAM(Dynimic Random Access Memory)又はSRAM(Static Random Access Memory)のように、相対的に速い動作速度を提供する揮発性メモリを含み得る。
ROM216は、プロセッサ213によって実行されるソフトウェアイメージを不揮発的に保存する。
一部実施形態において、ROM216は、ファームウェア(例えば、FTL218)イメージを保存する。
さらに、図9に示すように、ROM216は、ソフトウェアイメージに対するデジタル署名(例えば、図1のA署名(SIG A)又はB署名(SIG B))を保存する。
図8に示すように、ROM216は、複数の認証状態を示す認証状態テーブル及び現在のストレージコントローラ210の認証状態を示す状態値を保存する。
FTL218は、アドレスマッピング(address mapping)、ウェアレベリング(wear-leveling)、ガベージコレクション(garbage collection)のような多くの機能を実行する。
アドレスマッピング動作は、ホスト110から受信した論理アドレス(logical address)を、不揮発性メモリ220内にデータを実際に保存するのに使用される物理アドレス(physical address)に変える動作である。
ウェアレベリングは、不揮発性メモリ220内のブロック(block)が均一に使用されるようにし、特定ブロックの過度な劣化を防止するための技術であって、例示的には、物理ブロック(physical block)の消去カウントをバランシングするファームウェア技術によっても具現される。
ガベージコレクションは、ブロックの有効データを新規ブロックにコピーした後、既存ブロックを消去(erase)する方式によって、不揮発性メモリ220内で使用可能な容量を確保するための技術である。
一部実施形態において、図9に示すように、ROM216は、ストレージコントローラ210に電力供給が開始されるか、あるいはストレージコントローラ210がリセットされる場合、プロセッサ213が優先的に実行する命令語を含むブートローダ(BootLoader)、及びブートローダによって実行されるファームウェアイメージを保存する。
保安メモリ217は、ストレージコントローラ210の固有なデータを不揮発的に保存する。
一部実施形態において、保安メモリ217は、RAM215にローディングされたソフトウェアイメージを認証(authentication)するのに使用される情報を保存する。
例えば、保安メモリ217は、デジタル署名を検証するのに使用される少なくとも1つの公開キー(例えば、第1公開キーpKEY又は第2公開キーpKEY)を保存する。
一部実施形態において、保安メモリ217は、アンチヒューズ(anti-fuse)アレイのようなOTP(One-Time-Programmable)メモリを含んでもよい。
一部実施形態において、プロセッサ213は、ホスト110から受信したFTL218をROM216に保存する前に、公開キー(例えば、第1公開キーpKEY又は第2公開キーpKEY)に基づいてFTL218に対する署名を検証する。
一部実施形態において、プロセッサ213は、ROM216に保存されたFTL218を実行する前に、公開キーに基づいてFTL218に対する署名を検証する。
具体的には、プロセッサ213は、第1公開キーpKEYに基づいてFTL218に対するA署名(SIG A)を検証し、第2公開キーpKEYに基づいてFTL218に対するB署名(SIG B)を検証することにより、FTL218を認証する。
プロセッサ213は、認証結果に基づいて、ホスト110から受信したFTL218、A署名(SIG A)及びB署名(SIG B)をROM216に保存するか、あるいはROM216に保存されたFTL218を実行する。
ファームウェアの認証過程は、図10を参照して後述する。
図5は、本発明の実施形態による二重署名されたファームウェアの保存方法を説明するためのフローチャートである。
図5は、図4を参照して後述する。
図5を参照すると、ストレージシステム100は、外部装置2から単一署名されたファームウェアFWsigned Aを受信し、第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに対するB署名(SIG B)を生成し、二重署名されたファームウェアFWsigned A,Bを保存する。
外部装置2は、イメージ署名システム310を含み、ファームウェアディストリビュータにも対応する。
イメージ署名システム310は、図2のイメージ署名システム30の一例示である。
ストレージシステム100と外部装置2は、保安チャネル(secure channel)を介してデータを送受信する。
具体的には、段階S510において、ホスト110は、外部装置2に第2公開キーpKEY及び要請Reqを伝達する。
要請Reqは、第1秘密キーsKEYに基づいて第2公開キーpKEYに対する署名を要求する情報を含む。
段階S520において、外部装置2は、第1秘密キーsKEYに基づいて生成された単一署名されたファームウェアFWsigned Aをホスト110に伝達する。
また、外部装置2は、第1秘密キーsKEYに基づいて第2公開キーpKEY及び要請Reqに対する署名(SIG A)[pKEY,Req]を生成し、生成された署名(SIG A)[pKEY,Req]をホスト110に伝達する。
段階S530において、ホスト110は、二重署名されたファームウェアFWsigned A,Bを生成する。
具体的には、ホスト110は、第2秘密キーsKEY及び第2公開キーpKEYを含むキーペアを生成する。
ホスト110は、単一署名されたファームウェアFWsigned Aに対するダイジェストを生成し、第2秘密キーsKEYに基づいてダイジェストに対するデジタル署名、すなわち、B署名(SIG B)を生成する。
ホスト110は、単一署名されたファームウェアFWsigned A及びB署名(SIG B)を含む二重署名されたファームウェアFWsigned A,Bを生成する。
一部実施形態において、ホスト110は、図2のイメージ署名システム30を含み得る。
段階S540において、ホスト110は、二重署名されたファームウェアFWsigned A,B、第2公開キーpKEY、要請Req、並びに第2公開キーpKEY及び要請Reqに対する署名(SIG A)[pKEY,Req]をストレージ装置200に提供する。
段階S550において、ストレージ装置200は、署名された第2公開キーpKEY及び要請Reqを認証する。
具体的には、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEYに基づいて、第2公開キーpKEY及び要請Reqに対する署名(SIG A)[pKEY,Req]を検証する。
一部実施形態において、ストレージ装置200に含まれたストレージコントローラ210は、図3のストレージコントローラ21にも対応する。
すなわち、段階S550において、ストレージ装置200は、第2公開キーpKEY及び要請Reqに対するダイジェストDIGを取得し、第1公開キーpKEYに基づいて署名(SIG A)[pKEY,Req]を復号化することにより、比較対象ダイジェストDIG’を取得し、ダイジェストDIGと比較対象ダイジェストDIG’とを比較することにより、第2公開キーpKEYと要請Reqを認証する。
すなわち、ストレージ装置200は、第2公開キーpKEY及び要請Reqが外部装置2によって認証されたものであることを判定する。
段階S560において、ストレージ装置200は、ファームウェアFWを認証する。
具体的には、ストレージ装置200は、第1公開キーpKEY及び第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証することにより、ファームウェアFWが外部装置2及びファームウェアディストリビュータによって認証されたものであることを判定する。
一部実施形態において、ストレージ装置200は、第2公開キーpKEYに基づいてB署名(SIG B)を検証することにより、単一署名されたファームウェアFWsigned Aを認証し、第1公開キーpKEYに基づいてA署名(SIG A)を検証することにより、ファームウェアFWを認証する。
段階S570において、ストレージ装置200は、第2公開キーpKEYを保存する。
すなわち、段階S550を介して第2公開キーpKEYは信頼可能であるので、ストレージ装置200は、第2公開キーpKEYを保存する。
第2公開キーpKEYは、第2秘密キーsKEYに基づいて生成された署名を検証するために使用される。
一部実施形態において、第2公開キーpKEYは、保安メモリ217に保存可能である。
段階S580において、ストレージ装置200は、二重署名されたファームウェアFWsigned A,Bを保存する。
すなわち、段階S560を介してファームウェアFWは信頼可能であるので、ストレージ装置200は、ファームウェアFW、A署名(SIG A)及びB署名(SIG B)を保存する。
ストレージ装置200は、ファームウェアFWを実行する前に、第1公開キーpKEY及び第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証し、検証結果に基づいてファームウェアFWを実行する。
一部実施形態において、二重署名されたファームウェアFWsigned A,Bは、ROM216に保存可能である。
一部実施形態において、ストレージ装置200は、図8を参照して後述するように、二重署名されたファームウェアFWsigned A,Bを保存した以後に認証状態を変更することができる。
図6は、本発明の実施形態によるストレージ装置の動作方法を説明するためのフローチャートである。
ストレージ装置の動作方法は、複数の段階、S610~S660を含む。
図6は、図4を参照して後述する。
段階S610において、ストレージ装置200は、二重署名されたファームウェアFWsigned A,B、第2公開キーpKEY、要請Req、並びに第2公開キーpKEY及び要請Reqに対する署名(SIG A)[pKEY,Req]を受信する。
一部実施形態において、ストレージ装置200は、要請Reqは受信せず、第2公開キーpKEY及び第2公開キーpKEYに対する署名(SIG A)[pKEY]を受信することもできる。
段階S620において、ストレージ装置200は、第2公開キーpKEY及び要請Reqが有効であるか否かを判断する。
具体的には、ストレージ装置200は、第1公開キーpKEYに基づいて第2公開キーpKEY及び要請Reqに対する署名(SIG A)[pKEY,Req]を検証することにより、第2公開キーpKEY及び要請Reqの有効性を判断する。
有効性を判断するのは、認証することとも理解される。
第2公開キーpKEY及び要請Reqが有効である場合、段階S630が実行され、第2公開キーpKEY及び要請Reqが有効ではない場合、段階S660が実行される。
段階S630において、ストレージ装置200は、ファームウェアFWが有効であるか否かを判断する。
具体的には、ストレージ装置200は、段階S620において有効であると判断された第2公開キーpKEYに基づいてB署名(SIG B)を検証することにより、単一署名されたファームウェアFWsigned Aの有効性を判断する。
次いで、ストレージ装置200は、第1公開キーpKEYに基づいてA署名(SIG A)を検証することにより、ファームウェアFWの有効性を判断する。
単一署名されたファームウェアFWsigned A及びファームウェアFWが有効である場合、段階S640(ストレージ装置200は、第2公開キーpKEY及び二重署名されたファームウェアFWsigned A,Bを保存する)が実行され、単一署名されたファームウェアFWsigned A又はファームウェアFWが有効ではない場合、段階S660が実行される。
段階S650において、ストレージ装置200は、ファームウェアFWを実行する。
具体的には、ストレージ装置200は、ファームウェアFWの有効性を判定することにより、信頼可能なファームウェアFWを実行する。
一部実施形態において、ストレージ装置200は、起動する度に、第1公開キーpKEY及び第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証し、検証結果に基づいてファームウェアFWを実行する。
段階S660において、ストレージ装置200は、第2公開キーpKEY、要請Req又はファームウェアFWに対する認証が失敗したことを示すエラーメッセージをホスト110に提供する。
エラーメッセージは、起動失敗を示す情報を含むこともできる。
図7は、本発明の実施形態による二重署名されたファームウェアの保存方法を説明するためのフローチャートである。
図7は、図4を参照して後述する。
図7を参照すると、ストレージシステム100は、外部装置2から単一署名されたファームウェアFWsigned Aを受信し、第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに対するB署名(SIG B)を生成し、二重署名されたファームウェアFWsigned A,Bを保存する。
外部装置2は、図2のイメージ署名システム310を含み、ファームウェアディストリビュータにも対応する。
ストレージシステム100と外部装置2は、保安チャネル(secure channel)を介してデータを送受信する。
具体的には、段階S710において、外部装置2は、ホスト110に、単一署名されたファームウェアFWsigned A、第3秘密キーsKEY、第3公開キーpKEY、及び第1秘密キーsKEYに基づいて生成された第3公開キーpKEYに対する署名(SIG A)[pKEY]を伝達する。
第3公開キーpKEYは、第3秘密キーsKEYに基づいて生成された署名を検証するために使用される公開キーである。
一部実施形態において、外部装置2は、第1秘密キーsKEYに基づいて第3秘密キーsKEYに対する署名を生成し、生成された署名をホスト110に提供する。
段階S720において、ホスト110は、二重署名されたファームウェアFWsigned A,Bを生成する。
具体的には、ホスト110は、ホスト110固有の第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに対するB署名(SIG B)を生成し、単一署名されたファームウェアFWsigned AとB署名(SIG B)とを結合することにより、二重署名されたファームウェアFWsigned A,Bを生成する。
一部実施形態において、ホスト110は、図2のイメージ署名システム30を含むものである。
段階S730において、ホスト110は、第3公開キーpKEYを認証する。
具体的には、ホスト110は、ストレージ装置200に保存された第1公開キーpKEYに基づいて、第3公開キーpKEYに対する署名(SIG A)[pKEY]を検証することにより、第3公開キーpKEYを認証する。
一部実施形態において、ホスト110は、第1秘密キーsKEYに基づいて第3秘密キーsKEYに対する署名を検証することにより、第3秘密キーsKEYを認証することもできる。
一部実施形態において、ホスト110は、図4を参照して前述したストレージコントローラ21の構成要素を含むものである。
段階S740において、ホスト110は、ストレージ装置200に、認証された第3公開キーpKEY、第1秘密キーsKEYに基づいて生成された第3公開キーpKEYに対する署名(SIG A)[pKEY]、第2公開キーpKEY、第3秘密キーsKEYに基づいて生成された第2公開キーpKEYに対する署名(SIG C)[pKEY]、及び二重署名されたファームウェアFWsigned A,Bを伝達する。
段階S740において、ホスト110は、第3秘密キーsKEYに基づいて第2公開キーpKEYに対する署名(SIG C)[pKEY]を生成する。
段階S750において、ストレージ装置200は、第3公開キーpKEYを認証する。
具体的には、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEYに基づいて第3公開キーpKEYに対する署名(SIG A)[pKEY]を検証する。
一部実施形態において、ストレージ装置200は、図4を参照して前述したストレージコントローラ21を含むものである。
段階S760において、ストレージ装置200は、第2公開キーpKEYを認証する。
具体的には、ストレージ装置200は、認証された第3公開キーpKEYに基づいて第2公開キーpKEYに対する署名(SIG C)[pKEY]を検証する。
段階S770において、ストレージ装置200は、ファームウェアFWを認証する。
具体的には、ストレージ装置200は、第1公開キーpKEY及び第2公開キーpKEYに基づいて、二重署名されたファームウェアFWsigned A,BのA署名(SIG A)及びB署名(SIG B)を検証する。
一部実施形態において、段階S770は、図5の段階S560と同様である。
段階S780において、ストレージ装置200は、認証された第2公開キーpKEY及び第3公開キーpKEYを保存する。
一部実施形態において、第2公開キーpKEY及び第3公開キーpKEYは、保安メモリ217に保存可能である。
段階S790において、ストレージ装置200は、二重署名されたファームウェアFWsigned A,Bを保存する。
具体的には、ストレージ装置200は、ファームウェアFW、A署名(SIG A)及びB署名(SIG B)を保存する。
ストレージ装置200は、ファームウェアFWを実行する前に、第1公開キーpKEY及び第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証し、検証結果に基づいてファームウェアFWを実行する。
一部実施形態において、二重署名されたファームウェアFWsigned A,Bは、ROM216に保存可能である。
図に示していないが、ストレージ装置200は、図8を参照して後述するように、二重署名されたファームウェアFWsigned A,Bを保存した以後に認証状態を変更することができる。
図8は、本発明の実施形態による認証状態テーブル及び状態遷移を説明するための図である。
図8は、図4を参照して後述する。
図8を参照すると、認証状態テーブル(Authentication state table)は、ファームウェアを実行するために検証される署名(SIG A)、(SIG B)に関連する情報を含み得る。
また、認証状態テーブルは、ファームウェアを実行するためにB署名(SIG B)を検証するか否かを選択する権限が外部装置ExDv又はホストHOSTの内のどこにあるかを示す情報を含み得る。
外部装置ExDvは、図5又は図7の外部装置2に対応する。
一部実施形態において、認証状態テーブルは、図4のROM216に保存可能である。
又は、認証状態テーブルは、ストレージコントローラ210内の別途のOTPメモリにも保存可能である。
一部実施形態において、認証状態テーブルは、不揮発性メモリ220に保存可能であり、起動時にRAM215にロードされ得る。
図8を参照すれば、第1状態State1は、ファームウェアを実行するために第1秘密キーsKEYに基づいて生成されるA署名(SIG A)が検証され、第2秘密キーsKEYに基づいて生成されるB署名(SIG B)は検証されない状態である。
また、第1状態State1は、ファームウェアを実行するためにB署名(SIG B)を検証するか否かを選択する権限が外部装置ExDvにある状態である。
例えば、図5の段階S510において、ホスト110が第2公開キーpKEY及び要請Reqを外部装置2に提供したが、段階S520において、外部装置2が要請Reqを拒否し、ホスト110に単一署名されたファームウェアFWsigned Aのみを提供する。
この場合、第2公開キーpKEY及び要請Reqが外部装置2によって認証されない。
そのような第1状態State1において、段階S530において、ホスト110は、二重署名されたファームウェアFWsigned A,Bを生成せず、外部装置2から受信した単一署名されたファームウェアFWsigned Aのみをストレージ装置200に提供する。
第1状態State1において、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEYに基づいてA署名(SIG A)を検証し、検証結果に基づいて単一署名されたファームウェアFWsigned Aを保存又は実行する。
第2状態State2は、ファームウェアを実行するために第1秘密キーsKEYに基づいて生成されるA署名(SIG A)が検証され、第2秘密キーsKEYに基づいて生成されるB署名(SIG B)は検証されない状態である。
また、第2状態State2は、ファームウェアを実行するためにB署名(SIG B)を検証するか否かを選択する権限がホストにある状態である。
例えば、図7に示したように、ホスト110は、第2公開キーpKEYに対して外部装置2の認証を受けないので、B署名(SIG B)の検証のための第2公開キーpKEYの認証に関連する権限は、ホスト110にある。
但し、図7の段階S720と異なり、第2状態State2において、ホスト110は、二重署名されたファームウェアFWsigned A,Bを生成せず、外部装置2から受信した単一署名されたファームウェアFWsigned Aのみをストレージ装置200に提供する。
第2状態State2において、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEYに基づいてA署名(SIG A)を検証し、検証結果に基づいて単一署名されたファームウェアFWsigned Aを保存又は実行する。
第3状態State3は、ファームウェアを実行するために、第1秘密キーsKEYに基づいて生成されるA署名(SIG A)及び第2秘密キーsKEYに基づいて生成されるB署名(SIG B)が検証される状態である。
また、第3状態State3は、ファームウェアを実行するためにB署名(SIG B)を検証するか否かを選択する権限が外部装置ExDvにある状態である。
例えば、図5の段階S520において、外部装置2がホスト110に第1秘密キーsKEYに基づいて生成された第2公開キーpKEYに対する署名(SIG A)[pKEY,Req]を伝達する場合、ストレージ装置200に製造時にプロビジョニングされた第1公開キーpKEYに基づいて第2公開キーpKEYが認証される。
第3状態State3において、第2公開キーpKEYは、外部装置2によって認証されるので、ホスト110は、図5に示した段階S530及びS540を実行する。
第3状態State3において、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEY及び認証された第2公開キーpKEYに基づいてA署名(SIG A)及びB署名(SIG B)を検証し、検証結果に基づいて二重署名されたファームウェアFWsigned A,Bを保存又は実行する。
図5の実施形態によって段階S580が実行された以後、ストレージシステム100の認証状態は、第3状態State3に変更可能である。
第4状態State4は、ファームウェアを実行するために、第1秘密キーsKEYに基づいて生成されるA署名(SIG A)及び第2秘密キーsKEYに基づいて生成されるB署名(SIG B)が検証される状態である。
また、第4状態State4は、ファームウェアを実行するためにB署名(SIG B)を検証するか否かを選択する権限がホストにある状態である。
例えば、図7に示したように、ホスト110は、第2公開キーpKEYに対して外部装置2の認証を受けないので、B署名(SIG B)の検証のための第2公開キーpKEYの認証に関連する権限はホスト110にある。
図7に示したように、第4状態State4において、ホスト110は、二重署名されたファームウェアFWsigned A,Bを生成し、二重署名されたファームウェアFWsigned A,B及び固有の第3秘密キーsKEYに基づいて生成された第2公開キーpKEYに対する署名(SIG C)[pKEY]をストレージ装置200に提供する。
図7の段階S750及びS760のように、第4状態State4において、ストレージ装置200は、製造時にプロビジョニングされた第1公開キーpKEYに基づいて第3公開キーpKEYを認証し、認証された第3公開キーpKEYに基づいて第2公開キーpKEYを認証する。
また、段階S770のように、ストレージ装置200は、第1公開キーpKEYに基づいてA署名(SIG A)を検証し、認証された第2公開キーpKEYに基づいてB署名(SIG B)を検証し、検証結果に基づいて二重署名されたファームウェアFWsigned A,Bを保存又は実行する。
図7の実施形態によって段階S790が実行された以後、ストレージシステム100の認証状態は、第4状態State4に変更可能である。
ストレージコントローラ210は、認証状態を示す状態値(state value)を変更することにより、ストレージシステム100の認証状態を変更することができる。
該状態値は、ストレージコントローラ210に含まれたROM216又はOTPメモリに保存可能である。
図9は、本発明の実施形態による認証状態別のROM216及び保安メモリ217に保存されるデータを説明するための図である。
図9は、図4及び図8を参照して後述する。
図9を参照すると、ストレージコントローラ210の認証状態が第1状態State1である場合、ROM216は、単一署名されたファームウェアFWsigned A、すなわち、ファームウェアFW及びA署名(SIG A)を保存し、保安メモリ217は、第1公開キーpKEYを保存する。
ファームウェアFW、A署名(SIG A)及び第1公開キーpKEYは、ストレージコントローラ210の製造時にプロビジョニングされたデータである。
A署名(SIG A)は、第1秘密キーsKEYに基づいてファームウェアに対して生成されたデジタル署名である。
第1状態State1において、ストレージコントローラ210は、ファームウェアFWを実行する前に、保安メモリ217に保存された第1公開キーpKEYに基づいてA署名(SIG A)を検証する。
一部実施形態において、第1状態State1は、ストレージコントローラ210が製造された直後の状態である。
ストレージコントローラ210の認証状態が第2状態State2である場合、ROM216と保安メモリ217には、第1状態State1のデータと同一のデータが保存される。
図9を参照すると、ストレージコントローラ210の認証状態が第3状態State3である場合、ROM216は、二重署名されたファームウェアFWsigned A,B、すなわち、ファームウェアFW、A署名(SIG A)及びB署名(SIG B)を保存し、保安メモリ217は、第1公開キーpKEY及び第2公開キーpKEYを保存する。
B署名(SIG B)は、第2秘密キーsKEYに基づいて単一署名されたファームウェアFWsigned Aに対して生成されたデジタル署名である。
ファームウェアFW、A署名(SIG A)及び第1公開キーpKEYは、ストレージコントローラ210の製造時にプロビジョニングされたデータである。
B署名(SIG B)及び第2公開キーpKEYは、図4のホスト110から受信する。
第3状態State3において、ストレージコントローラ210は、ファームウェアFWを実行する前に、保安メモリ217に保存された第2公開キーpKEYに基づいてB署名(SIG B)を検証し、第1公開キーpKEYに基づいてA署名(SIG A)を検証する。
ストレージコントローラ210の認証状態が第4状態State4である場合、ROM216と保安メモリ217には、第3状態State3のデータと同一のデータが保存される。
図10は、本発明の実施形態によるソフトウェアイメージを認証する方法を説明するためのフローチャートである。
ソフトウェアイメージを認証する方法は、複数の段階S1010~S1090を含むものである。
図10は、図2、図3、又は図4を参照して後述する。
段階S1010において、図4のストレージコントローラ210は、単一署名されたファームウェアFWsigned Aに対する第1ダイジェストDIG1を生成する。
一部実施形態において、暗号化回路214は、ハッシュアルゴリズムに基づいて単一署名されたファームウェアFWsigned Aに対する第1ダイジェストDIG1を生成する。
ハッシュアルゴリズムは、図4のイメージ署名システム113に含まれたハッシュ回路(例えば、図2のハッシュ回路32)がダイジェストDIGを生成するために使用するハッシュアルゴリズムと同様である。
一部実施形態において、図3のストレージコントローラ21に含まれたハッシュ回路41は、単一署名されたファームウェアFWsigned Aに対する第1ダイジェストDIG1を生成する。
段階S1020において、ストレージコントローラ210は、第2公開キーpKEYに基づいてB署名(SIG B)を復号化することにより、第1比較対象ダイジェストDIG1’を生成する。
一部実施形態において、暗号化回路214は、保安メモリ217に保存された第2公開キーpKEYに基づいて、ホスト110から受信したB署名(SIG B)を復号化することにより、第1比較対象ダイジェストDIG1’を生成する。
一部実施形態において、図3のストレージコントローラ21に含まれた復号化回路42が第1比較対象ダイジェストDIG1’を生成することもできる。
段階S1030において、ストレージコントローラ210は、第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とを比較する。
一部実施形態において、プロセッサ213は、第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とをRAM215にローディングし、比較命令語に基づいて第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とを比較する。
一部実施形態において、図4のストレージコントローラ21に含まれた比較回路43が、第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とを比較することもできる。
第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とが同一である場合、段階S1050が実行され、第1ダイジェストDIG1と第1比較対象ダイジェストDIG1’とが同一ではない場合、段階S1040が実行される。
段階S1040において、ストレージコントローラ210は、中断信号をホスト110に出力する。
具体的には、一部実施形態において、ストレージコントローラ210は、ファームウェアの実行を中断し、ファームウェアの実行に対する中断を示す中断信号をホスト110に出力する。
又は、一部実施形態において、ストレージコントローラ210からの起動中断信号は、起動手続きの進行に対する中断を示す信号でもある。
段階S1050において、図4のストレージコントローラ210は、ファームウェアFWに対する第2ダイジェストDIG2を生成する。
一部実施形態において、暗号化回路214は、ハッシュアルゴリズムに基づいてファームウェアFWに対する第2ダイジェストDIG2を生成する。
ハッシュアルゴリズムは、図4のイメージ署名システム113に含まれたハッシュ回路(例えば、図2のハッシュ回路32)がダイジェストを生成するために使用するハッシュアルゴリズムと同一である。
一部実施形態において、図3のストレージコントローラ21に含まれたハッシュ回路41は、ファームウェアFWに対する第2ダイジェストDIG2を生成する。
段階S1060において、ストレージコントローラ210は、第1公開キーpKEYに基づいてA署名(SIG A)を復号化することにより、第2比較対象ダイジェストDIG2’を生成する。
一部実施形態において、暗号化回路214は、保安メモリ217に保存された第1公開キーpKEYに基づいて、ホスト110から受信したA署名(SIG A)を復号化することにより、第2比較対象ダイジェストDIG2’を生成する。
一部実施形態において、図3のストレージコントローラ21に含まれた復号化回路42が第2比較対象ダイジェストDIG2’を生成することもできる。
段階S1070において、ストレージコントローラ210は、第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とを比較する。
一部実施形態において、プロセッサ213は、第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とをRAM215にローディングし、比較命令語に基づいて第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とを比較する。
一部実施形態において、図4のストレージコントローラ21に含まれた比較回路43が、第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とを比較することもできる。
第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とが同一である場合、段階S1070が実行され、第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とが同一ではない場合、段階S1040が実行される。
段階S1070において、第2ダイジェストDIG2と第2比較対象ダイジェストDIG2’とが同一である場合、ファームウェアFWは、信頼可能なものと判定される。
段階S1080において、ストレージコントローラ210は、認証されたファームウェアFWを実行する。
すなわち、ストレージコントローラ210は、起動時、図10のソフトウェアイメージを認証する方法を実行することによって取得される認証されたファームウェアFWを実行する。
一部実施形態において、段階S1080において、ストレージコントローラ210は、認証されたファームウェアFW、A署名(SIG A)及びB署名(SIG B)を図4のROM216に保存する。
一部実施形態において、ストレージコントローラ210は、図10のソフトウェアイメージを認証する方法の段階S1010~S1070に基づいて、新規ファームウェアFW又はアップデートされたファームウェアFWに関連する認証を行い、認証された新規ファームウェアFW、新規ファームウェアFWに対する第1署名(SIG A)及び第2署名(SIG B)を図9のROM216に保存する。
ファームウェアアップデートは、図11を参照して後述する。
図11は、本発明の実施形態によるファームウェアアップデートを説明するための図である。
図11は、図4を参照して後述する。
具体的には、ROM216は、ストレージコントローラ210に電力供給が開始されるか、あるいはストレージコントローラ210がリセットされる場合、プロセッサ213が最初に実行する命令語を含むブートローダ(Bootloader)を保存する。
ブートローダは、プロセッサ213によって実行されることにより、ROM216に保存されたファームウェアをRAM215にローディングする。
ROM216は、ファームウェア及びファームウェアに対する署名を保存する。
例えば、ROM216は、アップデートされる前のファームウェア「Old FW」及び当該ファームウェアに対する署名「Old SIG A」、「Old SIG B」、すなわち、既存ソフトウェアイメージを保存する。
ファームウェアアップデート時、ROM216は、アップデートされたファームウェア「New FW」及び当該ファームウェアに対する署名「New SIG A」、「New SIG B」、すなわち、アップデートされたソフトウェアイメージを保存する。
アップデートされたソフトウェアイメージが既存ソフトウェアイメージと異なる保存領域に保存されるように図に示しているが、実施形態はそれに制限されない。
すなわち、既存ソフトウェアイメージは、消去され、消去された保存領域にアップデートされたソフトウェアイメージが新規に保存可能である。
図11を参照すると、ストレージコントローラ210は、起動時、保安メモリ217に保存された第1公開キーpKEY及び第2公開キーpKEYに基づいて、アップデートされたファームウェア「New FW」に対する署名「NEW SIG A」、「NEW SIG B」を検証し、検証結果に基づいてファームウェア「New FW」を実行する。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
1、100 ストレージシステム
10、110 ホスト
20、200 ストレージ装置
21、210 ストレージコントローラ
22 不揮発性メモリ
30、113 イメージ署名システム
31 キー生成器
32 ハッシュ回路
33 署名生成器
34 署名されたイメージ生成器
41 ハッシュ回路
42 復号化回路
43 比較回路
111 ホストコントローラ
112 ホストメモリ
211 ホストインターフェース
212 メモリインターフェース
213 プロセッサ
214 暗号化回路
215 RAM
216 ROM
217 保安メモリ
218 FTL
220 不揮発性メモリ

Claims (20)

  1. ソフトウェアイメージ、及び第1秘密キーに基づいて生成された前記ソフトウェアイメージに対する第1署名を受信し、第2秘密キーに基づいて、前記ソフトウェアイメージに対する第2署名を生成するホストと、
    前記ホストから、前記ソフトウェアイメージ、前記第1署名、前記第2署名、及び前記第2秘密キーと関連した第2公開キーを受信し、前記第1秘密キーと関連した第1公開キーに基づいて行われる前記第1署名に関連する第1検証、及び前記第2公開キーに基づいて行われる前記第2署名に関連する第2検証に基づいて、前記ソフトウェアイメージを実行するように構成されるストレージ装置と、を有することを特徴とするストレージシステム。
  2. 前記ストレージ装置は、プロセッサと、
    前記ソフトウェアイメージ、前記第1署名、及び前記第2署名を保存する不揮発性メモリと、
    前記プロセッサによって実行される前記ソフトウェアイメージをローディングするシステムメモリと、
    前記第1公開キー及び前記第2公開キーを保存する保安メモリ(security memory)と、を含み、
    前記ソフトウェアイメージは、前記第1署名及び前記第2署名が検証された以後に前記システムメモリにローディングされることを特徴とする請求項1に記載のストレージシステム。
  3. 前記不揮発性メモリは、前記ソフトウェアイメージの認証時、前記第1公開キー及び前記第2公開キーの内のいずれか1つの公開キーに基づいて、前記ソフトウェアイメージが認証されるか否かを示す認証状態に関連する状態テーブルを保存し、
    前記プロセッサは、前記状態テーブルに基づいて、認証状態を、前記第1公開キー及び前記第2公開キーに基づいて、前記ソフトウェアイメージを認証する状態に変更することを特徴とする請求項2に記載のストレージシステム。
  4. 前記ストレージ装置は、前記ホストから、前記第1秘密キーに基づいて生成された前記第2公開キーに関連する署名を受信し、
    前記保安メモリは、前記第1公開キーに基づいて前記第2公開キーに関連する認証が完了した後、前記第2公開キーを保存するように構成されることを特徴とする請求項2に記載のストレージシステム。
  5. 前記ストレージ装置は、前記ホストから、第3秘密キーと関連した第3公開キー、前記第1秘密キーに基づいて生成された第3公開キーに関連する署名、及び前記第3秘密キーに基づいて生成された前記第2公開キーに関連する署名を受信し、
    前記保安メモリは、前記第1公開キーに基づいて行われる前記第3公開キーに関連する認証、及び認証された前記第3公開キーに基づいて行われる前記第2公開キーに関連する認証が完了した後、前記第2公開キー及び前記第3公開キーを保存するように構成されることを特徴とする請求項2に記載のストレージシステム。
  6. 前記ストレージ装置は、前記ホストから、アップデートされたソフトウェアイメージ、及び前記アップデートされたソフトウェアイメージに対する第3署名及び第4署名を受信し、
    前記保安メモリは、前記第1公開キーに基づいて行われる前記第3署名に関連する検証、及び前記第2公開キーに基づいて行われる前記第4署名に関連する検証が完了した後、前記アップデートされたソフトウェアイメージ、前記第3署名、及び前記第4署名を保存することを特徴とする請求項2に記載のストレージシステム。
  7. 前記ストレージ装置は、起動時、前記第3署名及び前記第4署名が検証された以後に、前記アップデートされたソフトウェアイメージを実行することを特徴とする請求項6に記載のストレージシステム。
  8. 前記ストレージ装置は、前記第1署名又は前記第2署名に関連する検証が失敗した場合、前記ホストに検証失敗信号を伝達することを特徴とする請求項1に記載のストレージシステム。
  9. プロセッサと、
    前記プロセッサによって実行されるソフトウェアイメージ、及び前記ソフトウェアイメージに対する第1署名を保存する不揮発性メモリと、
    前記第1署名に関連する検証に使用される第1公開キーを保存する保安メモリと、
    ホストから第2公開キー及び前記ソフトウェアイメージに対する第2署名を受信するホストインターフェースと、を有し、
    前記プロセッサは、前記第1公開キーに基づいて前記第2公開キーを認証し、
    前記第2公開キーに基づいて前記第2署名を認証し、
    前記第2署名を前記不揮発性メモリに保存し、
    前記第2公開キーを前記保安メモリに保存することを特徴とするストレージコントローラ。
  10. 前記プロセッサは、起動時、前記第1公開キー及び前記第2公開キーに基づいて前記ソフトウェアイメージを認証し、認証結果に基づいて前記ソフトウェアイメージを実行することを特徴とする請求項9に記載のストレージコントローラ。
  11. 前記不揮発性メモリは、前記ソフトウェアイメージが実行される前に、前記ソフトウェアイメージを認証するために検証される署名を示す認証状態に関連する状態テーブルを保存し、
    前記プロセッサは、前記第1署名及び前記第2署名が検証された以後、前記状態テーブルに基づいて、認証状態を、前記第1署名及び前記第2署名を検証する状態に変更することを特徴とする請求項9に記載のストレージコントローラ。
  12. 前記ホストインターフェースは、前記ホストから、アップデートされたソフトウェアイメージ、及び前記アップデートされたソフトウェアイメージに対する第3署名及び第4署名を受信し、
    前記プロセッサは、前記第1公開キーに基づいて前記第3署名を検証し、
    前記第2公開キーに基づいて前記第4署名を検証し、
    前記アップデートされたソフトウェアイメージ、前記第3署名、及び前記第4署名を前記不揮発性メモリに保存することを特徴とする請求項9に記載のストレージコントローラ。
  13. 前記プロセッサは、起動時、前記第3署名及び前記第4署名が検証された以後に、前記アップデートされたソフトウェアイメージを実行することを特徴とする請求項12に記載のストレージコントローラ。
  14. 前記ホストインターフェースは、前記第1署名又は前記第2署名に関連する検証が失敗した場合、前記ホストに検証失敗信号を伝達することを特徴とする請求項9に記載のストレージコントローラ。
  15. ホストと通信し、第1公開キーを保存するストレージ装置の動作方法であって、
    前記ホストから、ソフトウェアイメージ、前記ソフトウェアイメージに対する第1署名、前記ソフトウェアイメージに対する第2署名、及び第2公開キーを受信する段階と、
    前記第1公開キーに基づいて、前記第1署名に関連する第1検証を行う段階と、
    前記第2公開キーに基づいて、前記第2署名に関連する第2検証を行う段階と、
    前記第1検証及び前記第2検証に基づいて、前記ソフトウェアイメージ、前記第1署名、及び前記第2署名を保存する段階と、を有することを特徴とするストレージ装置の動作方法。
  16. 起動時、前記第1検証及び前記第2検証を行う段階と、
    前記第1検証及び前記第2検証に基づいて、前記ソフトウェアイメージを実行する段階と、をさらに有することを特徴とする請求項15に記載のストレージ装置の動作方法。
  17. 前記ホストから、第3公開キー、前記第3公開キーに関連する第3署名、及び前記第2公開キーに関連する第4署名を受信する段階と、
    前記第1公開キーに基づいて、前記第3署名に関連する第3検証を行う段階と、
    前記第3公開キーに基づいて、前記第4署名に関連する第4検証を行う段階と、
    前記第3検証及び前記第4検証に基づいて、前記第3公開キー及び前記第2公開キーを保存する段階と、をさらに有することを特徴とする請求項15に記載のストレージ装置の動作方法。
  18. 前記第1検証又は前記第2検証が失敗した場合、前記ホストに起動中断を示す信号を出力する段階をさらに有することを特徴とする請求項15に記載のストレージ装置の動作方法。
  19. 前記第1検証を行う段階は、前記ソフトウェアイメージに対する第1ダイジェストを生成する段階と、
    前記第1公開キーに基づいて前記第1署名を復号化することにより、第2ダイジェストを生成する段階と、
    前記第1ダイジェストと前記第2ダイジェストとの比較結果に基づいて、前記第1署名の有効性を示す情報を生成する段階と、を含むことを特徴とする請求項15に記載のストレージ装置の動作方法。
  20. 前記第2検証を行う段階は、前記ソフトウェアイメージ及び前記第1検証に対する、第3ダイジェストを生成する段階と、
    前記第2公開キーに基づいて前記第2署名を復号化することにより、第4ダイジェストを生成する段階と、
    前記第3ダイジェストと前記第4ダイジェストとの比較結果に基づいて、前記第2署名の有効性を示す情報を生成する段階と、を含むことを特徴とする請求項19に記載のストレージ装置の動作方法。
JP2023001357A 2022-01-07 2023-01-06 ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法 Pending JP2023101410A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0002955 2022-01-07
KR1020220002955A KR20230107044A (ko) 2022-01-07 2022-01-07 스토리지 컨트롤러, 스토리지 시스템 및 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
JP2023101410A true JP2023101410A (ja) 2023-07-20

Family

ID=84520126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023001357A Pending JP2023101410A (ja) 2022-01-07 2023-01-06 ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法

Country Status (5)

Country Link
US (1) US20230222219A1 (ja)
EP (1) EP4209953A1 (ja)
JP (1) JP2023101410A (ja)
KR (1) KR20230107044A (ja)
CN (1) CN116415230A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US8874922B2 (en) * 2012-01-17 2014-10-28 Dell Products L.P. Systems and methods for multi-layered authentication/verification of trusted platform updates
US10659234B2 (en) * 2016-02-10 2020-05-19 Cisco Technology, Inc. Dual-signed executable images for customer-provided integrity
CN110532735B (zh) * 2018-05-23 2023-04-18 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法

Also Published As

Publication number Publication date
CN116415230A (zh) 2023-07-11
US20230222219A1 (en) 2023-07-13
EP4209953A1 (en) 2023-07-12
KR20230107044A (ko) 2023-07-14

Similar Documents

Publication Publication Date Title
US11784827B2 (en) In-memory signing of messages with a personal identifier
US11783044B2 (en) Endpoint authentication based on boot-time binding of multiple components
WO2022256124A1 (en) Firmware-based secure tenancy transfer
EP4181005A1 (en) Storage device, storage system having the same and method of operating the same
KR102068485B1 (ko) 불 휘발성 메모리 모듈 및 그것의 동작 방법
US20240146525A1 (en) Batch Transfer of Control of Memory Devices over Computer Networks
CN113127843B (zh) 用于验证的双重包装
US20230179418A1 (en) Storage controller and method of operating electronic system
US20230273977A1 (en) Managing ownership of an electronic device
JP2022526936A (ja) ブロックチェーンにおけるブロックとしてのメモリの使用
JP2023101410A (ja) ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法
US20220231858A1 (en) Control of Memory Devices over Computer Networks
US11736453B2 (en) Secure key storage devices
TW202234273A (zh) 用於經由電腦網路以控制記憶體裝置之伺服器系統
EP3989481A1 (en) Method of performing key exchange for security operation in storage device and method of performing authority transfer in storage device using the same
US20240152284A1 (en) Storage controller and method of providing firmware image
US11677560B2 (en) Utilization of a memory device as security token
US20230163976A1 (en) Computing device in a trusted computing system and attestation method thereof
US20230125636A1 (en) Use of a physically unclonable function to generate a memory identifier
US20240004803A1 (en) Secure element and electronic device including the same
WO2023164227A1 (en) Managing ownership of an electronic device
CN117997544A (zh) 存储控制器和提供固件映像的方法
KR20240064493A (ko) 스토리지 컨트롤러 및 펌웨어 이미지 제공 방법
KR20230068250A (ko) 저장 장치, 그것을 갖는 저장 시스템 및 그것의 동작 방법
CN115408729A (zh) 供应用程序存取安全存储器装置的独立于供应商的设施