JP2019122030A - コード署名の条件付き規定に基づくセキュアクライアント認証 - Google Patents

コード署名の条件付き規定に基づくセキュアクライアント認証 Download PDF

Info

Publication number
JP2019122030A
JP2019122030A JP2018217068A JP2018217068A JP2019122030A JP 2019122030 A JP2019122030 A JP 2019122030A JP 2018217068 A JP2018217068 A JP 2018217068A JP 2018217068 A JP2018217068 A JP 2018217068A JP 2019122030 A JP2019122030 A JP 2019122030A
Authority
JP
Japan
Prior art keywords
legal
host
boot process
memory
signature
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.)
Granted
Application number
JP2018217068A
Other languages
English (en)
Other versions
JP6639620B2 (ja
Inventor
塔莎 尼爾
Tasher Nir
塔莎 尼爾
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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics 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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of JP2019122030A publication Critical patent/JP2019122030A/ja
Application granted granted Critical
Publication of JP6639620B2 publication Critical patent/JP6639620B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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
    • 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
    • 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
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】リモートサーバーに対してセキュアクライアントデバイスの認証を行うための改善された方法およびシステムを提供する。【解決手段】メモリサブシステムは、不揮発性メモリにアクセスするためのメモリインターフェース、ホストと通信するためのホストインターフェース、およびプロセッサを含む。プロセッサは、ホストがによって使用され、不揮発性メモリに保存されたプログラムコードにより署名を計算し、ホストが行ったブートプロセスを検出すると、ブートプロセスが合法であるかどうかを検証し、ブートプロセスが合法であると検証された場合にのみ、ホストに署名を提供して、リモートサーバーに対して認証を行うよう構成される。【選択図】図1

Description

本発明は、セキュアな通信およびデータ保存に関するものであり、特に、セキュアクライアントデバイスの認証方法およびシステムに関するものである。
サーバーと通信するセキュアクライアントは、サーバーに対して当人であることの認証を行い、敵対的な第三者によって不正アクセスが行われていないことを証明することが時に要求される。
この種の認証プロセスに対し、様々な解決案が提案されてきた。ある解決案は、クライアントのセキュアIDを作成し、サーバーに報告することを含む。例えば、トラステッド・コンピューティング・グループ(Trusted Computing Group, TCG)は、「デバイス識別子コンポジションエンジン(Device Identifier Composition Engine, DICE)」と称す解決案を「Trusted Platform Architecture Hardware Requirements for a Device Identifier Composition Engine, Family 2.0, Level 00, 20 Revision 69, December 16, 2016」に規定している(本明細書に参考として組み込まれる)。
本発明の1つの実施形態は、不揮発性メモリ(non-volatile memory, NVM)にアクセスするためのメモリインターフェース、ホストと通信するためのホストインターフェース、およびプロセッサを含むメモリサブシステムを提供する。プロセッサは、ホストによって使用され、不揮発性メモリに保存されたプログラムコードにより署名(signature)を計算し、ホストが行ったブート(boot)プロセスを検出すると、ブートプロセスが合法であるかどうかを検証し、ブートプロセスが合法であると検証された場合にのみ、ホストに署名を提供して、リモートサーバーに対して認証を行うよう構成される。
いくつかの実施形態において、プロセッサは、署名を揮発性レジスタ(volatile register)に保存し、ブートプロセスが合法でないことが検出されると、それに応じて揮発性レジスタを消去するよう構成される。いくつかの実施形態において、プロセッサは、不揮発性メモリに対するホストの1つまたはそれ以上の第1アクセスが合法であると事前に定義されたメモリアドレスの範囲にアドレス指定されているかどうかを検証することによって、ブートプロセスが合法であるかどうかを検証するよう構成される。1つの実施形態において、ブートプロセスが合法であると検証された時、プロセッサは、合法であると事前に定義されたメモリアドレスの範囲を修正するよう構成される。
本発明の1つの実施形態において、さらに、不揮発性メモリ、ホスト、およびメモリサブシステムを含むセキュアクライアントデバイスを提供する。メモリサブシステムは、ホストのために不揮発性メモリにアクセスし、ホストによって使用され、不揮発性メモリに保存されたプログラムコードにより署名を計算し、ホストが行ったブートプロセスを検出すると、ブートプロセスが合法であるかどうかを検証し、ブートプロセスが合法であると検証された場合にのみ、ホストに署名を提供して、リモートサーバーに対して認証を行うよう構成される。
本発明の1つの実施形態において、さらに、ホストによって使用され、不揮発性メモリに保存されたプログラムコードにより署名を計算することを含む方法を提供する。ホストが行ったブートプロセスを検出すると、ブートプロセスが合法であるかどうかを検証する。ブートプロセスが合法であると検証された場合にのみ、ホストに署名を提供して、リモートサーバーに対して認証を行う。
上述した手段で作動する時、合法のブートプロセスを行うホストのみがサーバーに正しい署名を提供することができる。違法のブートプロセスとみなされた不正ホストは、メモリサブシステムから正しい署名を受け取らないため、サーバーに対して当人であることの認証を行うことができない。これによって、高度のセキュリティーを提供する。
本発明の上記および他の目的、特徴、および利点をより分かり易くするため、図面と併せた幾つかの実施形態を以下に説明する。
添付図面は、本発明の原理がさらに理解されるために含まれており、本明細書に組み込まれ、且つその一部を構成するものである。図面は、本発明の実施形態を例示しており、説明とともに、本発明の原理を説明する役割を果たしている。
本発明の1つの実施形態に係るリモートサーバーと通信するセキュアクライアントデバイスを概略的に示したものである。 本発明の1つの実施形態に係るコード署名の条件付き規定の方法を概略的に示したフローチャートである。
ここで説明する実施形態は、リモートサーバーに対してセキュアクライアントデバイスの認証を行うための改善された方法およびシステムを提供する。開示した実施形態において、セキュアクライアントデバイスは、不揮発性メモリ、ホスト、およびホストの代わりに不揮発性メモリにアクセスするメモリサブシステムを含む。セキュアクライアントデバイスとサーバーの間の認証プロセスの一部として、ホストは、ホストの不揮発性メモリに保存されたいくつかまたは全てのプログラムコード(ソフトウェアコード)より計算される署名をサーバーに提供しなければならない。
このようなプロセスに潜むセキュリティ上の脆弱性は、敵対的な第三者が正しい署名にアクセスする可能性があることである。第三者は、正しい署名を使用してサーバーに当人であることの認証を行い、不正プログラムコードを使用してサーバーと通信することができる。いくつかの実施形態において、セキュアクライアントデバイスのメモリサブシステムは、セキュアクライアントデバイスのブートプロセスが合法であると検証された場合にのみホストに署名を提供することによって、この脆弱性およびその他の脆弱性を解消する。
1つの例示的実施形態において、メモリサブシステムは、プログラムコードにより署名を計算して、署名を揮発性レジスタに保存する。この準備工程は、セキュアクライアントデバイスがブートする前の任意の適切な時間において行うことができる。その後、メモリサブシステムは、セキュアクライアントデバイスのブートプロセスの開始を検出する。例えば、メモリサブシステムは、ホストから不揮発性メモリに発行された(1つまたはそれ以上の)第1読み込みコマンドを検出することができる。メモリサブシステムは、例えば、第1読み込みコマンドが既知のメモリアドレスにアドレス指定され、合法なブートコードを含むかどうかをチェックすることにより、ブートプロセスが合法であるかどうかを検証する。ブートプロセスが違法であると思われる場合、メモリサブシステムは、署名を保持している揮発性レジスタの内容を消去する。
メモリサブシステムが上述した手段で作動する時、合法のブートプロセスを行うホストのみがサーバーに正しい署名を提供することができる。違法のブートプロセスとみなされた不正ホストは、メモリサブシステムから正しい署名を受け取らないため、サーバーに対して当人であることの認証を行うことができない。
いくつかの実施形態において、合法のコードが合法であると事前に定義されたアドレスの範囲からブートすると、コードは、このアドレス範囲の修正(例えば、拡大)を許可される。この特徴によって、署名の消去を行わずに、より大きなアドレス範囲から合法なコードを実行し続けることができる。
開示した技術は、一般的に、メモリサブシステム内のハードウエアにおいて実施され、ホストに対して透過的(transparent)である。ここで説明した技術は、実施しやすいが、同時に、高度のセキュリティーを提供する。開示した技術は、様々な認証フレームワーク、例えば、TCGのDICEフレームワークに埋め込むことができる。
システムの説明
図1は、本発明の1つの実施形態に係るセキュアクライアントデバイス24が通信ネットワーク32によりリモートサーバー28と通信するシステム20を概略的に示したものである。簡潔に説明するため、ここでは、セキュアクライアントデバイス24およびリモートサーバー28を単に「クライアント」および「サーバー」と称す。
1つの例示的実施形態において、クライアント24は、モノのインターネット(internet of things, IOT)端末の一部であり、サーバー28は、IoTアプリケーションサーバーを含む。別の例示的実施形態において、クライアント24は、車両における自動車サブシステムの一部であり、サーバー28は、車両の中央コンピュータを含む。さらに、クライアント24およびサーバー28は、任意の他の適切な応用に使用される任意の他の適切なコンピューティングプラットフォーム(computing platform)を含んでもよい。ネットワーク32は、任意の適切な通信ネットワーク、例えば、ローカルエリアネットワーク(local-area network, LAN)、インターネット等の広域エリアネットワーク(wide-area network, WAN)、セルラーネットワーク、または2つ以上のネットワークの組み合わせを含むことができる。
図1の例において、クライアント24は、ホストプロセッサ36(単に「ホスト」と称す)、不揮発性メモリ40、およびメモリサブシステム44を含む。ホスト36は、任意の適切なプロセッサを含むことができる。本例において、不揮発性メモリ40は、フラッシュメモリを含むが、別の実施形態において、他の適切な種類の不揮発性メモリを使用することができる。不揮発性メモリ40は、ホスト36が実行するプログラムコード(ソフトウェアコード)を含む様々な種類のデータを保存するために使用される。メモリサブシステム44は、ホスト36の代わりに不揮発性メモリ40にアクセスする。例えば、メモリサブシステム44は、ホスト36によって発行された読み込みおよび書き込みコマンドを受け取り、これらのコマンドを不揮発性メモリ40で実行する。
図1の実施形態において、メモリサブシステム44は、ホスト36と通信するためのホストインターフェース48、不揮発性メモリ40と通信するためのメモリインターフェース52、およびメモリサブシステムの様々なタスクを実行するよう構成されたプロセッサ56を含む。他のタスクの中で、プロセッサ56は、不揮発性メモリ40に保存されたプログラムコードによりセキュアな署名を計算し、署名を揮発性レジスタ60に保存する。プロセッサ56は、また、ホスト36が不揮発性メモリ40からブートプロセスを開始したかどうかを識別し、ブートプロセスが合法であるかを検証し、合法でない場合にレジスタ60の内容を消去する。以下、このセキュリティメカニズムについて詳しく説明する。
図1に示したシステム20およびクライアント24の構成は、概念を明確するために簡潔に示した構成例である。別の実施形態において、他の適切な構成を使用してもよい。1つの実施形態において、メモリサブシステム44および不揮発性メモリ40は、単一のシステムオンチップ(system on chip, SoC)、例えば、同じデバイスのパッケージに実装された各半導体ダイにおいて製造される。別の実施形態において、メモリサブシステム44および不揮発性メモリ40は、別々のデバイスとして製造される。明確に説明するため、開示した技術の理解に必要ない素子は、図面から除外してある。
様々な実施形態において、図1に示したクライアント24の異なる素子を特定用途向けIC(application specific integrated circuit, ASIC)またはフィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)等の任意の適切なハードウェアを使用して実施してもよい。あるいは、クライアント24のいくつかの機能、例えば、ホスト36および/またはプロセッサ56の機能をソフトウェアで、またはソフトウェアとハードウェアの素子を組み合わせて実施してもよい。
一般的に、ホスト36およびプロセッサ56は、ソフトウェアにプログラミングされ、ここで説明した機能を実行する一般用途のプロセッサである。例えば、ソフトウェアをネットワークにより電子形式で任意のプロセッサにダウンロードしてもよく、あるいは、代替的または追加的に、磁気、光学、または電子メモリ等の非一時的な有形的表現媒体(non-transitory tangible media)に提供および/または保存してもよい。
メモリサブシステムによるプログラムコード署名の条件付き規定
いくつかの実施形態において、クライアント24は、サーバー28に当人であることの認証を行い、セキュリティーが不正アクセスされていないことを証明する必要がある。認証プロセスの例において、クライアント24は、不揮発性メモリ40に保存されたホスト36の少なくとも一部のプログラムコードにより署名を計算する。クライアント24は、署名値を使用して、サーバーに当人であることの認証を行う。サーバーは、通常、クライアントによって提供された署名と署名の期待値を比較する。クライアントは、例えば、一方向の暗号化動作(cryptographic operation)をプログラムコードに適用することによって、署名を計算することができる。一方向の暗号化動作の一般例は、SHA等のハッシング関数(hashing function)である。
いくつかの実施形態において、メモリサブシステム44は、追加のセキュリティメカニズムを実行して、署名が最初のコードにのみ提供され、どの不正コードにも提供されていないことを確実にする。これらの実施形態において、メモリサブシステム44のプロセッサ56は、署名を揮発性レジスタ60に保存する。ホスト36がブートプロセスを開始したことを検出した時、プロセッサ56は、ブートプロセスが合法であるかどうかを検証する。ブートプロセスが違法であるとプロセッサ56が疑う場合(ホスト36がおそらく不正アクセスされていることを意味する)、プロセッサは、レジスタ60の内容を消去して、署名を消去する。このように、合法なブートプロセスを実行するプログラムコードのみが、真の署名値を取得する(および使用中のサーバーに認証を行う)ことができる。
図2は、本発明の1つの実施形態に係るメモリサブシステム44のプロセッサ56によって実行されたコード署名の条件付き規定の方法を概略的に示したフローチャートである。この方法の第1段階(ステップ70〜86)において、プロセッサ56は、コード署名を計算し、保存する。この段階は、クライアント24をブートする前、例えば、各ブート前および/またはソフトウェアのアップグレード後の任意の適切な時間に実行することができる。この方法の第2段階(ステップ90〜102)において、プロセッサ56は、合法なプログラムコードに対してのみ署名を利用できるようにする。
この方法は、キーローディング(key loading)ステップ70において、プロセッサ56を用いて初期化ベクトル(キー)のロードを開始し、コード署名を計算する。データ読み出し(data readout)ステップ74において、プロセッサ56は、ホスト36のプログラムコードを保存するために使用された不揮発性メモリ40の領域から次のデータ塊(data chunk)(例えば、単語またはページ)を読み込む。
ハッシュ(hashing)ステップ78において、プロセッサ56は、データ塊をハッシュする。ハッシュ操作は、増加的(incremental)である。すなわち、ステップ78を繰り返すことにより、最近ロードしたデータ塊および全ての前データ塊の累積署名を提供する。
終端チェック(termination checking)ステップ82において、プロセッサ56は、必要なプログラムコード(署名が定義されたコード)全てがハッシュされたかどうかをチェックする。されていない場合、方法は、上述したステップ73に戻り、不揮発性メモリ40から次の塊のプログラムコードを読み込む。プログラムコード全体がハッシュされた後、プロセッサ56は、署名保存ステップ86において、取得した署名を揮発性レジスタ60に保存する。
後のある時点で、プロセッサ56は、ブート検出ステップ90において、ホスト36がブートプロセスの実行を開始したことを検出する。例えば、プロセッサ56は、パワーアップ後に、ホスト36によって不揮発性メモリ40に発行された(1つまたはそれ以上の)第1読み込みコマンドを検出する。
ブート検証(boot verification)ステップ94において、プロセッサ56は、検出したブートプロセスが合法であるかどうかをチェックする。1つの実施形態において、プロセッサ56は、ホスト36の本物のブートコードを保存したメモリアドレスを認識する。パワーアップ後に、ホスト36によって発行された第1読み込みコマンドを検出した時、プロセッサ56は、これらの読み込みコマンドをこれらのアドレスにアドレス指定すべきであると仮定する。
第1読み込みコマンドが予期されたメモリアドレスに確かにアドレス指定されている場合、プロセッサ56は、ブートプロセスが合法であると判断し、通常実行(normal execution)ステップ98において、実行を継続する。特に、ホスト36がメモリサブシステム44からコード署名を後で要求する場合、プロセッサ56は、レジスタ60に保存された真の署名値に戻る。
一方、第1読み込みコマンドが予期されたメモリアドレスにアドレス指定されていない場合、プロセッサ56は、ブートプロセスがある敵方によって不正アクセスされたと判断する。それに応じて、プロセッサ56は、通常実行ステップ98に戻る前に、署名消去(signature erasure)ステップ102において、レジスタ102の内容を消去する。この場合、ホスト36は、コード署名を取得することができない。その結果、不正コードは、サーバー28との認証プロセスを完了することができない。
図2の方法フローは、概念を明確するために簡潔に示したフロー例である。別の実施形態において、他の適切なフローを使用して、開示した技術を実施してもよい。例えば、プロセッサ56は、他の基準を使用して、ホスト36のブートプロセスが合法であるかどうかを検証してもよいため、読み込み中のメモリアドレスと関連している必要はない。
他の例として、上述したように、プロセッサ56が合法なブートプロセスを完了すると、プロセッサは、コード読み出しに対して合法とみなされるアドレスの範囲を修正することができる。このようにして、プロセッサ56は、レジスタ102において署名の消去を行わずに、より大きなアドレス範囲から合法なコードを実行し続けることができる。
いくつかの実施形態において、ブートプロセスを検証し、レジスタ60を消去するプロセッサ56の機能は、メモリサブシステムの専用ハードウェアロジックを使用することによって少なくとも実施され、回避しにくくする。
上述した実施形態は例示のために引用され、本発明は上記に特に示され記述されたものに限定されるものではないことが理解されるであろう。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせおよび部分的組み合わせの両方とともに、上述した説明を読むことで当業者が思いつくであろう、先行技術には開示されていない変更と修正も含む。参照により本特許出願に組み込まれる文献は、これらの組み込まれた文献においていずれかの用語が、本明細書において明示的または暗示的になされた定義と矛盾して定義されている場合には本明細書における定義のみを考慮するものとする点を除き、本出願の一部とみなすものとする。
本発明は、セキュアクライアントデバイスの認証方法およびシステムを提供する。合法のブートプロセスを行うホストのみがサーバーに正しい署名を提供することができる。違法のブートプロセスとみなされた不正ホストは、メモリサブシステムから正しい署名を受け取らないため、サーバーに対して当人であることの認証を行うことができない。これによって、高度のセキュリティーを提供する。
20:システム
24:セキュアクライアントデバイス
28:リモートサーバー
32:通信ネットワーク
36:ホストプロセッサ
40:不揮発性メモリ
44:メモリサブシステム
48:ホストインターフェース
56:プロセッサ
60:揮発性レジスタ
70、74、78、82、86、90、94、98、102:ステップ

Claims (12)

  1. 不揮発性メモリにアクセスするためのメモリインターフェースと、
    ホストと通信するためのホストインターフェースと、
    プロセッサと、
    を含み、前記プロセッサが、
    前記ホストによって使用され、前記不揮発性メモリに保存されたプログラムコードにより署名を計算し、
    前記ホストが行ったブートプロセスを検出すると、前記ブートプロセスが合法であるかどうかを検証し、
    前記ブートプロセスが合法であると検証された場合にのみ、前記ホストに前記署名を提供して、リモートサーバーに対して認証を行うよう構成されたメモリサブシステム。
  2. 前記プロセッサが、前記署名を揮発性レジスタに保存し、前記ブートプロセスが合法でないことが検出されると、それに応じて前記揮発性レジスタを消去するよう構成された請求項1に記載のメモリサブシステム。
  3. 前記プロセッサが、前記不揮発性メモリに対する前記ホストの1つまたはそれ以上の第1アクセスが合法であると事前に定義されたメモリアドレスの範囲にアドレス指定されているかどうかを検証することによって、前記ブートプロセスが合法であるかどうかを検証するよう構成された請求項1に記載のメモリサブシステム。
  4. 前記ブートプロセスが合法であると検証された時、前記プロセッサが、合法であると事前に定義された前記メモリアドレスの範囲を修正するよう構成された請求項3に記載のメモリサブシステム。
  5. 不揮発性メモリと、
    ホストと、
    メモリサブシステムと、
    を含み、前記メモリサブシステムが、
    前記ホストのために前記不揮発性メモリにアクセスし、
    前記ホストによって使用され、前記不揮発性メモリに保存されたプログラムコードにより署名を計算し、
    前記ホストが行ったブートプロセスを検出すると、前記ブートプロセスが合法であるかどうかを検証し、
    前記ブートプロセスが合法であると検証された場合にのみ、前記ホストに前記署名を提供して、リモートサーバーに対して認証を行うよう構成されたセキュアクライアントデバイス。
  6. 前記メモリサブシステムが、前記署名を揮発性レジスタに保存し、前記ブートプロセスが合法でないことが検出されると、それに応じて前記揮発性レジスタを消去するよう構成された請求項5に記載のセキュアクライアントデバイス。
  7. 前記メモリサブシステムが、前記不揮発性メモリに対する前記ホストの1つまたはそれ以上の第1アクセスが合法であると事前に定義されたメモリアドレスの範囲にアドレス指定されているかどうかを検証することによって、前記ブートプロセスが合法であるかどうかを検証するよう構成された請求項5に記載のセキュアクライアントデバイス。
  8. 前記ブートプロセスが合法であると検証された時、前記メモリサブシステムが、合法であると事前に定義された前記メモリアドレスの範囲を修正するよう構成された請求項7に記載のセキュアクライアントデバイス。
  9. ホストによって使用され、不揮発性メモリに保存されたプログラムコードにより署名を計算することと、
    前記ホストが行ったブートプロセスを検出すると、前記ブートプロセスが合法であるかどうかを検証することと、
    前記ブートプロセスが合法であると検証された場合にのみ、前記ホストに前記署名を提供して、リモートサーバーに対して認証を行うことと、
    を含む方法。
  10. 前記署名を揮発性レジスタに保存し、前記ブートプロセスが合法でないことが検出されると、それに応じて前記揮発性レジスタを消去することを含む請求項9に記載の方法。
  11. 前記ブートプロセスが合法であるかどうかを検証することが、前記不揮発性メモリに対する前記ホストの1つまたはそれ以上の第1アクセスが合法であると事前に定義されたメモリアドレスの範囲にアドレス指定されているかどうかを検証することを含む請求項9に記載の方法。
  12. 前記ブートプロセスが合法であると検証された時、合法であると事前に定義された前記メモリアドレスの範囲を修正することを含む請求項11に記載の方法。
JP2018217068A 2018-01-02 2018-11-20 コード署名の条件付き規定に基づくセキュアクライアント認証 Active JP6639620B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/859,780 US10757087B2 (en) 2018-01-02 2018-01-02 Secure client authentication based on conditional provisioning of code signature
US15/859,780 2018-01-02

Publications (2)

Publication Number Publication Date
JP2019122030A true JP2019122030A (ja) 2019-07-22
JP6639620B2 JP6639620B2 (ja) 2020-02-05

Family

ID=67058631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018217068A Active JP6639620B2 (ja) 2018-01-02 2018-11-20 コード署名の条件付き規定に基づくセキュアクライアント認証

Country Status (5)

Country Link
US (1) US10757087B2 (ja)
JP (1) JP6639620B2 (ja)
KR (1) KR102132534B1 (ja)
CN (1) CN109992966B (ja)
TW (1) TWI687840B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022028632A (ja) * 2020-08-03 2022-02-16 新唐科技股▲ふん▼有限公司 デバイス、及び方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019025384A1 (en) * 2017-08-02 2019-02-07 British Telecommunications Public Limited Company MALICIOUS HOST DETECTION
US11258772B2 (en) * 2018-06-19 2022-02-22 Cypress Semiconductor Corporation Secured communication from within non-volatile memory device
CN109492352B (zh) * 2018-10-09 2021-01-29 华为技术有限公司 一种设备标识组合引擎的实现方法及装置
US11734458B2 (en) * 2019-02-26 2023-08-22 Intel Corporation Extensible layered trusted computing base for computing devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004523015A (ja) * 2000-06-30 2004-07-29 インテル・コーポレーション 安全なメモリ区分を使用した安全な実行のための方法および装置
JP2005523537A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・アクセス制御機能を使用した、統合システム内でのセキュア動作の初期化、維持、更新および回復
JP2009175923A (ja) * 2008-01-23 2009-08-06 Dainippon Printing Co Ltd プラットフォーム完全性検証システムおよび方法
US20100082968A1 (en) * 2008-09-30 2010-04-01 Bigfoot Networks, Inc. Processor boot security device and methods thereof
JP2014098951A (ja) * 2012-11-13 2014-05-29 Kddi Corp 端末装置、完全性検証システム、およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
CN1277219C (zh) 2003-01-15 2006-09-27 泽浦科技股份有限公司 储存单元数据保护方法以及系统
US20080005797A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Identifying malware in a boot environment
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US8775618B2 (en) * 2010-08-02 2014-07-08 Ebay Inc. Application platform with flexible permissioning
CN102164138A (zh) * 2011-04-18 2011-08-24 奇智软件(北京)有限公司 一种保证用户网络安全性的方法及客户端
CN102521101B (zh) 2011-12-08 2015-05-13 曙光信息产业(北京)有限公司 一种基于进程扫描的非法作业监控方法
WO2013101083A1 (en) * 2011-12-29 2013-07-04 Intel Corporation An apparatus for hardware accelerated runtime integrity measurement
US9769154B2 (en) * 2012-04-25 2017-09-19 Rowem Inc. Passcode operating system, passcode apparatus, and super-passcode generating method
TWI531202B (zh) 2012-11-02 2016-04-21 Keypasco Ab 藉由使用者位置檢驗身份的網路安全驗證方法
US20140281500A1 (en) 2013-03-15 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for remote attestation
US9680872B1 (en) * 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
CN104021011A (zh) * 2014-05-09 2014-09-03 苏州汇川技术有限公司 嵌入式设备程序升级系统及方法
US11269984B2 (en) * 2014-12-09 2022-03-08 Janus Technologies, Inc. Method and apparatus for securing user operation of and access to a computer system
JP6659220B2 (ja) * 2015-01-27 2020-03-04 ルネサスエレクトロニクス株式会社 通信装置、半導体装置、プログラムおよび通信システム
CN104636256B (zh) 2015-02-17 2017-10-24 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置
CN106940769B (zh) * 2017-03-01 2020-04-28 广州大学 操作系统安全远程加载方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004523015A (ja) * 2000-06-30 2004-07-29 インテル・コーポレーション 安全なメモリ区分を使用した安全な実行のための方法および装置
JP2005523537A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・アクセス制御機能を使用した、統合システム内でのセキュア動作の初期化、維持、更新および回復
JP2009175923A (ja) * 2008-01-23 2009-08-06 Dainippon Printing Co Ltd プラットフォーム完全性検証システムおよび方法
US20100082968A1 (en) * 2008-09-30 2010-04-01 Bigfoot Networks, Inc. Processor boot security device and methods thereof
JP2014098951A (ja) * 2012-11-13 2014-05-29 Kddi Corp 端末装置、完全性検証システム、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022028632A (ja) * 2020-08-03 2022-02-16 新唐科技股▲ふん▼有限公司 デバイス、及び方法
JP7113123B2 (ja) 2020-08-03 2022-08-04 新唐科技股▲ふん▼有限公司 デバイス、及び方法

Also Published As

Publication number Publication date
KR102132534B1 (ko) 2020-07-10
JP6639620B2 (ja) 2020-02-05
KR20190082658A (ko) 2019-07-10
CN109992966B (zh) 2023-06-27
CN109992966A (zh) 2019-07-09
TWI687840B (zh) 2020-03-11
US10757087B2 (en) 2020-08-25
TW201931191A (zh) 2019-08-01
US20190207917A1 (en) 2019-07-04

Similar Documents

Publication Publication Date Title
JP6639620B2 (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
JP5500458B2 (ja) プロセッサメインメモリのメモリコンテンツのセキュリティ保護
TWI607376B (zh) 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
CN111030822B (zh) 用于保护固件的方法和系统,以及计算机可读介质
US20210167960A1 (en) Certifying Authenticity of Stored Code and Code Updates
WO2021249359A1 (zh) 数据完整性保护的方法和装置
US11960632B2 (en) Data attestation in memory
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
US20220382874A1 (en) Secure computation environment
US11816202B2 (en) Run-time code execution validation
WO2009153387A1 (en) Software loading method and apparatus
US20180025150A1 (en) Authenticated access to manageability hardware components
US20220021544A1 (en) Secure Serial Peripheral Interface (SPI) Flash
CN113515779A (zh) 文件的完整性校验方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191224

R150 Certificate of patent or registration of utility model

Ref document number: 6639620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250