JP4795812B2 - セキュアプロセッサ - Google Patents
セキュアプロセッサ Download PDFInfo
- Publication number
- JP4795812B2 JP4795812B2 JP2006046051A JP2006046051A JP4795812B2 JP 4795812 B2 JP4795812 B2 JP 4795812B2 JP 2006046051 A JP2006046051 A JP 2006046051A JP 2006046051 A JP2006046051 A JP 2006046051A JP 4795812 B2 JP4795812 B2 JP 4795812B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- secure
- encryption key
- tlb
- entry
- 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
- 238000012545 processing Methods 0.000 claims description 138
- 238000012795 verification Methods 0.000 claims description 108
- 238000012546 transfer Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 description 159
- 230000008569 process Effects 0.000 description 116
- 238000012217 deletion Methods 0.000 description 63
- 230000037430 deletion Effects 0.000 description 63
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000001994 activation Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/145—Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
- G06F21/72—Protecting 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 in cryptographic circuits
Description
プロセッサを実装する機器では、各種機能をプロセッサによるプログラム実行により実現でき、ハードウェアだけで構成される機器よりも動作の柔軟性が高く、多種類の機能を実装することが容易である。これらの優れた特性のために、プロセッサはパーソナルコンピュータなどの各種コンピュータや、PDA(Personal Digital Assistant)、携帯電話、情報家電などの各種情報機器に実装されるようになっている。
鍵を指定できなかった。このため、プロセッサが実行中の命令に対する適切な鍵を選択することができないという問題もあった。
本発明のセキュアプロセッサは、前記暗号化命令コードを復号して得られる命令コードを実行するプロセッサコアと、該プロセッサコアで実行されるプログラムからアクセスできない位置に実装されたセキュアバスと、該セキュアバスに接続され、前記プロセッサコアで実行される前記暗号化命令コードの認証と、前記プロセッサコアが外部と入出力する前記暗号化命令コード及びデータの暗号化/復号化を行うセキュアハードウェアと、を備えることを特徴とする(本発明のセキュアプロセッサの第1形態)。
前記第2形態のセキュアプロセッサにおいて、例えば、前記第3形態のセキュアプロセッサのセキュアパイプと、前記第4形態のセキュアプロセッサのセキュアアシストと、前記第5形態のセキュアプロセッサのセキュアDMAを備えるように構成し、前記セキュアアシストは、前記セキュアパイプと前記セキュアDMAの設定/制御を、前記セキュアバス経由で行うように構成してもよい(本発明のセキュアプロセッサの第6形態)。
[全体構成]
図1は、本発明の一実施例であるセキュアプロセッサのシステム全体の構成図である。
実現する。
セキュアDMA70は、公開IF72を介して、通常のDMA機能の他に、暗号処理機能付きDMAを起動できるようになっている。これは、セキュアDMA70に暗号処理アムセラレータとしての機能を持たせるためであり。セキュアDMA70は、DMAC71と公開IF72により、暗号処理を行わない通常のDMA処理を実行できるようになっており、既存ソフトウェアとの互換性を保つことを配慮した構成となっている。
図2(a)〜(c)は、本実施例のセキュアプロセッサにおける鍵の安全性を維持する起動手順(ブートシーケンス)を説明する図である。
セキュアブートプログラムの設定は、以上のステップS1〜S3の処理により終了する。すなわち、セキュアブートプログラムのコピーとビルトイン鍵の有効化によって終了する。
セキュアブートプログラムによって認証されたカーネルは、さらに、自分の子プログラム(セキュアアプリ)を認証し、その子プログラムに論理空間を割り当てる。そして、その子プログラムを起動する。
セキュアブートプログラムによって起動されたカーネルは初期化された後、自身のデータ空間を生成する(S7)。カーネルは、その子プログラム(セキュアアプリ)を認証し、認証されたセキュアアプリを起動する(S8)。このとき、カーネルはセキュアハードウェアにセキュアアプリの暗号鍵を指示する。そして、図2(b)に示すように、メモリ50上からセキュアブートプログラムの空間は開放される。また、図2(c)に示すように、ビルトイン鍵が無効化され、消去される。このビルトイン鍵の消去により、AMR−0に対応するTLB/AMR拡張部63は未設定となる。
次に、図3A、3B、3C、3Dを参照しながら、本実施例におけるコード認証方式を説明する。
ここで、図3A(a)を参照しながら、認証モード1について説明する。
認証モード1は、下記(1)〜(4)の機能によりコード認証を行う。
(1)保護対象コードの暗号化
(2)コード暗号鍵に対し署名
(3)暗号鍵の署名検証
(4)セキュリティエラー条件(Sビット+不当命令)
認証モード1においては、暗号処理のために必要な暗号鍵Ks1は公開鍵Kpx1により暗号化された形式で提供される。そして、その公開鍵暗号化された暗号鍵Ks1(暗号化鍵Ks1)に対して鍵署名102が提供される。そして、鍵署名102と、別途提供される署名検証鍵103並びに署名検証鍵103に対する署名(署名検証鍵署名)104を用いて、暗号化鍵Ks1の署名検証処理を行なう。図3Aに示す例では、TLBのアドレス変換単位であるページ毎に暗号鍵Ks1が割り当てるようにしている。また、図3Aの例では、RSA公開鍵による検証を行なっているが、HMAC鍵等、別の方式による検証を行なうようにしても問題はない。
図3Bは、認証モード1でのコード認証において必要な情報を示したものであり、図3Cはそのコード認証処理の流れを示したものである。
これに対し、公開鍵Kp1は、セキュアプロセッサで実行されるソフトウェアがレジスタ経由で読み出せるようになっており、プロセッサ情報として公開されているので、コード作成側も使用できるようになっている。
{コード作成処理}
図3Cの左上側に示す、コード作成者が行なうコード作成処理について説明する。このコード作成処理は、専用のハードウェアを使用する必要はなく、オブジェクト(プログラム)作成時にソフトウェアなど何らかの方法により実施可能である。
(1)最初に、暗号化かつ認証すべき命令コード311と共通暗号鍵Kcを用意し、命令コード311を共通暗号鍵Kcにより暗号化し、共通鍵暗号化された命令コード312を生成する(共通鍵暗号処理)。
(2)また、同時に、セキュアプロセッサから公開された公開鍵Kp1を用いて共通暗号鍵Kcを暗号化して、公開鍵暗号化された共通暗号鍵Kcを生成する(公開鍵暗号処理1)。
さらに、上記暗号化が正しく行なわれたことを認証するための情報を生成する処理を行なう。
(3)上記公開鍵Kp1により暗号化された共通暗号鍵Kcに対してハッシュ演算を施し、鍵署名の元データを生成する(ハッシュ処理1)。
(4)該元データを、署名秘密鍵Ks2により暗号化し、その暗号化により得られた値を鍵署名S1とする(公開鍵暗号処理2)。
(5)上記公開鍵Kp2のペアである公開鍵Kp2を署名検証鍵とし、その署名検証鍵(公開鍵Kp2)とその他の情報から成るデータ314の正当性を認証するための署名検証鍵署名S2から構成される電子証明書313として用意する。該署名検証鍵署名S2は、認証機関から受け取る。
{セキュアプロセッサ側の処理}
図3Cの右側の「プロセッサ内処理」を参照しながら、セキュアプロセッサが暗号化された命令コードを復号・実行する処理について説明する。
(1)セキュアプロセッサは、コード作成者から受け取る公開鍵暗号化された共通暗号鍵Kcを秘密鍵Ks1により復号する(公開鍵復号処理1)。
(2)上記公開鍵暗号化された共通暗号鍵Kcに対してコード作成者側と同様のハッシュ演算を施す(ハッシュ処理1)。
(3)コード作成者から受け取った鍵署名S1を電子証明書313内の署名検証鍵(公開鍵Kp2)で復号する(公開鍵復号処理2)。
(4)ハッシュ処理1で得られた結果と公開鍵復号処理2で得られた結果を比較し、両結果が一致するか、すなわち、暗号鍵(共通暗号鍵Kc)が改竄されていないか調べる。一致していれば、該暗号鍵が改竄されていないことが分かる(鍵認証)。
(5)電子証明書313内のデータ314(署名検証鍵(公開鍵Kp2)とその他の情報)に対してハッシュ演算を施す(ハッシュ処理2)。
(6)電子証明書313内の署名検証鍵署名S2を署名検証鍵(公開鍵Kp3)により復号する(公開鍵復号処理3)。
(7)上記ハッシュ処理2と上記公開鍵復号処理3で得られた結果を比較し、両結果が等しいか、すなわち、電子証明書313が正当な権利者により作成されたものであるか調べる(電子証明書の検証)。
(8)(4)での比較結果(比較結果出力1)と(7)での比較結果(比較結果出力2)を調べ、両比較結果出力が共に一致であったならば、共通鍵暗号化された命令コード312を、(1)で得られた共通暗号鍵Kcを用いて復号する(共通暗号鍵復号処理)。
図3Cの左下に示された「認証機関処理」を参照しながら、認証機関(認証局)がコード作成者で作成された暗号化された命令コードの電子証明書313用の署名検証鍵署名S2を作成する処理を説明する。
コード作成者は、認証機関から受け取る署名検証鍵署名S2を用いて電子証明書313を作成する。
(1)認証モード2は、下記(1)〜(5)の機能を備える。
(2)保護対象コードの暗号化
(3)コード暗号鍵(暗号化鍵)とページハッシュに対する署名
(4)暗号化鍵とページ署名を署名検証
(5)セキュリティエラー条件(Sビット要求+不当命令)
認証モード2では、命令コードの検証をページ単位で行う。このページ単位での検証は、セキュアアシスト80がセキュアバス90経由でセキュアDMA70を起動し、セキュアDMA70がハッシュ演算を行い、その演算結果を検証することにより行なわれる。このように、認証モード2おいては、ページ検証を行い、その検証が失敗した場合には認証エラーとするので、コードの改竄検出が可能であり、認証モード1よりもさらに強力な保護機構を実現できる。
同図において、破線の矩形枠350で囲まれた部分が図3Cに示す認証モード1の処理に加えられた処理である。認証モード2では、認証モード1における鍵認証に加え、認証単位ごとのページ署名とその検証を行なう。より詳細に説明すると、認証モード2においては、共通暗号鍵Kcで暗号化されたページごとにハッシュ演算を行い(ハッシュ処理A)、その演算結果に対して署名秘密鍵Ks2による暗号化を施し(公開鍵暗号処理A)、ページ署名S1Aを生成する。複数ページ署名ならば、ページ数と同数の鍵署名を生成する。例えば、3ページ署名ならば、ページ署名S1Aに加え、ページ署名S1B、S1Cが追加生成される。認証モード2では、暗号鍵の認証とページ認証を同時に行なうため、不正改竄されたページについては実行前に処理を中止することでセキュリティを実現する。
[Sビットによる制御]
Sビットは、実行中のプログラムの暗号鍵が、上述した図3C、3Dに示すような何らかの方法で認証されているかどうかを示すもので、プログラム実行中の空間に関するTLB/AMRの情報にのみ依存しており、誰がプログラムを起動したかなどとは関係なく、スーパーバイザモードのようにステートとして持つものでもない。
セキュアプロセッサの基本動作においては、認証済みプログラムの置かれている空間と認証済みプログラムにより作成されたデータ空間だけがS=1の空間となる。
S=1の認証済みプログラム(暗号化されたプログラム)からS=1のデータ空間(認証済みの暗号化されたデータページ)をアクセスする場合には、セキュアパイプ60を介してのアクセスが可能である(セキュア処理)。S=1のプログラムからS=0のデータ空間へのアクセスは、セキュアパイプ60を介さずにアクセス可能であるが、S=0のデータ空間に関して安全性は保証されない(非セキュア処理)。
セキュアプロセッサで実行されるプログラムは、S=1とS=0のプログラムに分類されると共に、さらに、特権モードで実行されるプログラム(P=1)と非特権モードで実行されるプログラム(P=0)に分類される。
公開鍵系演算器(RSA演算器83、楕円暗号演算器84、ハッシュ演算器85)及び乱数発生器86を利用でき、さらに、コマンドバッファ61と暗号処理パイプ62を利用できる。
(1)親プログラムは、新たに実行しようとする子プログラムの認証情報をセキュアアシスト80に設定する。ここでは、子プログラムの公開鍵暗号化された子プログラム鍵411(共通鍵)及び図示しない認証情報が、公開IF81を介して公開鍵演算器(RSA演算器83または楕円暗号演算器84)に設定されることにより、セキュアハードウェアにより子プログラム鍵の認証が行なわれる。この認証処理自体にはソフトウェアは介在できないため、この認証処理の信頼性が保証される。
(2)親プログラムは、セキュアアシスト80の公開IF81から鍵認証のステイタス情報を読み出し、子プログラム鍵が認証されたかどうか判断する。そして、子プログラム鍵が認証されたと判断すると、暗号鍵テーブル64に格納された子プログラム鍵のライセンス情報をセキュアアシスト80の公開IF81を介して取得し、それを所定の記憶領域に保存する(ソフトウェア保存)。
(3)親プログラムは、上記認証された子プログラムを起動する前に、その子プログラムが実際に置かれているメモリ空間を管理すべきTLB/AMRエントリをソフトウェア処理により検索し、その子プログラムが使用すべき鍵(子プログラム鍵)が格納されている暗号鍵テーブル64のエントリに設定されている鍵番号と(2)で保存したライセンス情報を、セキュアアシスト80の公開IF81内のレジスタに設定する。そして、「TLB/AMR拡張部登録コマンド」を同じく公開IF81内のコマンドレジスタに設定する。
セキュアアシスト80に上記登録コマンドが設定されると、ライセンスチェック部65により、上記ライセンス情報が正しいかどうかが検査される。このライセンス情報の検査は、親プログラムが保管しているライセンス情報と暗号鍵テーブル64の該当エントリに格納されているライセンス情報が一致するか否かにより行なわれ、一致すればライセンス情報は正しいと判断される。ライセンス情報が正しい場合には、TLB/AMR拡張部63の該当エントリに前記鍵番号が設定される。これにより、子プログラム鍵が格納されている暗号鍵テーブル64とTLB/AMR拡張部63の前記該当エントリが連携される。
(4)親プログラムが子プログラムを起動するために、セキュアプロセッサ内のTLBの該当エントリをアクセスすると、上記鍵番号によるTLB/AMR拡張部63のエント
リと暗号鍵テーブル64のエントリとの連携により、暗号鍵テーブル64から前記子プログラムの子プログラム鍵が読み出され、それが暗号処理パイプ62に供給される。
(5)メモリ50から読み出された共通鍵暗号化された子プログラムは、上記子プログラム鍵を用いて暗号処理パイプ62により平文の子プログラムに復号され、その平文の子プログラムがプロセッサコア10に送られる。このようにして、プロセッサコア10は、通常通りに子プログラムを実行することが可能となる。
図6は、セキュアパイプ60内に設けられる暗号鍵テーブル64の構成例を示す図である。
暗号鍵空間の拡張とは暗号鍵空間の生成を意味し、本実施例では、暗号鍵空間生成(暗号鍵を暗号鍵テーブル64に登録後、TLB/AMR拡張部63にエントリを登録)のための鍵認証または鍵生成を指す。また、暗号鍵空間の消去とは一時的あるいは永久の暗号鍵空間の削除を意味し、本実施例においては、暗号鍵空間削除(暗号鍵テーブル64から暗号鍵を削除後にTLB/AMR拡張部63の該当エントリの削除、または、該暗号鍵の削除後のアクセスにより暗号鍵テーブル64とTLB/AMR拡張部63のライセンス情報が不一致となることにより、暗号鍵テーブル64の当該エントリのSビットが“0”にクリアされることに伴うTLB/AMR拡張部63の該当エントリの無効化)のための鍵保存または鍵削除を指す。
[TLB/AMR拡張部の構成]
図7は、セキュアパイプ60内に設けられるTLB/AMR拡張部63の構成を示す図である。
図8Aは、プロセッサコア10が備えるTLB/AMRの構成図である。
プロセッサコア10のTLB/AMR501のエントリは、「Valid」、「Permission」、「VA(仮想アドレス)」、「Sビット」及び「PA(物理アドレス)」の各項目から構成される。「Valid」は、エントリが有効であるか否かを示す情報である。「Permission」は、アドレス変換を許可するか否かを示す情報(リード不可など)である。VAは、エントリがアドレス変換対象とする仮想アドレス(論理アドレス)である。PAは、VAのアドレス変換後の物理アドレスである。Sビットは、図4Aで説明したSビットと同じ機能を有するビットであり、前記アドレス変換が許可された場合に、PAと共にバスインターフェース(不図示)に出力される。アドレス変換は、アクセス属性に違反が無い場合に許可される。
図8Bは、プロセッサコア10のTLB/AMR501とセキュアパイプ60のTLB/AMR拡張部63との関係を示す図である。尚、同図左側のCPUコアは、プロセッサコア10と2次キャッシュ20から構成されるハードウェアを示す。
本実施例のセキュアプロセッサにおいては、暗号鍵テーブル64の管理は、「鍵認証」、「鍵生成」、「鍵保存」及び「鍵削除」の4つの処理により行なわれる。
図9Aは、鍵認証処理におけるセキュアハードウェアの動作概要を示す模式図である。
図9Aに示すセキュアハードウェアで行なわれる鍵認証処理の概要は、以下の通りである。
(1)暗号鍵テーブル64から空きエントリを選択する。本実施例のセキュアプロセッサでは、プロセッサコア10で実行されるプログラムが暗号鍵テーブル64を管理する。この管理は、例えば、セキュアプロセッサの記憶領域に暗号鍵テーブル64の管理テーブルを実装し、前記プログラムがその管理テーブルを管理することで実現する。
(2)親プログラムは、子プログラムのコードまたはデータの「鍵認証情報」(鍵署名(S1)、署名検証鍵(Kp2)、署名検証鍵署名(S2))、「空きエントリ番号」(暗号鍵テーブル64の空きエントリのエントリ番号)、「鍵属性」及び「公開鍵Kpx1で公開鍵暗号化された暗号鍵Ks1」を、セキュアアシスト80の公開IF81に設けられたレジスタに設定する。すなわち、図9Aに示すように、鍵署名、署名検証鍵、署名検証鍵署名を、それぞれ、公開IF81内のレジスタ811、812、813に設定する。また、空きエントリ番号と鍵属性を、それぞれ、公開IF81内のレジスタ814、815に設定する。さらに、「公開鍵Kp1で暗号化された暗号鍵(秘密鍵)Kc」をレジスタ817に設定する。
(3)親プログラムは、「認証起動コマンド」を公開IF81内のコマンドレジスタ816に設定する。これにより、セキュアアシスト80を起動され、セキュアハードウェアによる鍵認証処理(ハードウェア鍵認証処理)が実行される。このハードウェア鍵認証処理は、セキュアアシスト80内のセキュアコントローラ82(認証ステートマシン)により行なわれる。認証ステートマシンがハードウェア鍵認証処理をおこなっている間、親プログラムはその鍵認証処理の終了待ち状態に入る。
(3)認証ステートマシンは、公開IF81のレジスタ811〜813から鍵署名、署名検証鍵、署名検証鍵署名を読み出し、それらと自ブロック内の認証リスト87に格納されているルート鍵を用いて鍵認証を行う。ルート鍵とは、認証の最上位に位置する鍵であり、例えば、図3Cにおいては公開鍵Kp3が該当する。認証は、ルート鍵が正しく受け渡されているという前提で行なわれるので、本実施例では、ルート鍵をハードウェア化して改変されないような工夫をしている。
(4)認証ステートマシンは鍵認証処理が終了すると、その処理結果を示す信号を公開鍵演算83(84)に出力する。認証ステートマシンは、上記鍵認証が正しく終了した場合には、公開IF81のレジスタ814、815からそれぞれ空きエントリ番号と鍵番号を読み出し、その空きエントリ番号が指す暗号鍵テーブル64のエントリのSビットを“1”にセットすると共に、該エントリに上記鍵属性を設定する。認証ステートマシンは、さらに鍵認証結果を示す認証ステイタスを公開IF81の認証ステイタスレジスタ818に設定する。
(5)公開鍵演算器83(84)は、認証ステートマシンから入力される鍵認証結果が認証ステートマシンの鍵認証が正しく終了した信号を示していれば、公開鍵暗号化された暗号鍵Kcをルート鍵821内に格納されている図示しない秘密鍵Ks1で復号し、その復号された暗号鍵Kcを暗号鍵テーブル64の前記エントリに設定する。また、乱数発生器86を起動する。
(6)乱数発生器86乱数発生器86は生成したライセンス情報(32ビット)を暗号鍵テーブル64の前記エントリに設定すると共に、そのライセンス情報を公開IF81のライセンスレジスタ819に設定する。
(7)セキュアアシスト80は、上記のようにして暗号鍵テーブル64が更新されると、親プログラムに「鍵認証処理終了」の割込みを通知する。
(8)親プログラムは、公開IF81の認証ステイタスレジスタ818から認証ステイタスを読み出す。そして、鍵認証が確認し、鍵認証が正しければ公開IF81のライセンスレジスタ819からライセンス情報を取得・保管する。
図9Bは、認証モード1における認証処理の手順を示すフローチャートである。
同図の右側のソフトウェア処理はプロセッサコア10で実行されるプログラムの処理手順を示し、同図の左側のハードウェア処理はセキュアアシスト80内のセキュアコントローラ82により行なわれる処理手順を示す。
ステップS13で認証起動コマンドがコマンドレジスタ816に設定されることにより、セキュアアシスト80内のセキュアコントローラ82が認証ステートマシンを起動する(S15)。認証ステートマシンは、署名検証鍵署名をルート鍵(署名検証鍵)で復号する処理(S16)、署名検証鍵をハッシュ演算する処理(S17)、鍵署名をその署名検証鍵で公開鍵復号する処理(S18)及び公開鍵暗号化された鍵(公開鍵暗号化鍵)をハッシュ演算する処理(S19)の4つの処理を並列起動する。
上記割込みの生成により、プロセッサコア10上で実行されている親プログラムに割込みが発生する(S32)。親プログラムは、その割込みを受けて、セキュアアシスト80の公開IF81の認証ステイタスレジスタ818からステイタス情報を取得し、認証モード1における鍵認証が成功か失敗のいずれであったかを判断する(S33)。そして、成功であったと判断すると、セキュアアシスト80の公開IF81のライセンスレジスタ819からライセンス情報を読み出し、それを所定の保存域に保存し(S34)、鍵認証を終了する(S35)。
図9Cは、認証モード2における認証処理の手順を示すフローチャートである。
認証モード2では、コード暗号鍵の認証に加え、さらにページ検証を行う。このページ検証は、セキュアDMA70のハッシュ演算機能を用いて行なわれる。
{鍵生成処理}
本実施例の鍵生成処理では、暗号化用の鍵が生成され、その鍵が暗号鍵テーブル64に登録される。この鍵生成により、その鍵を持つプログラムのデータ空間の確保・生成が行なわれる。
図10Aに示すセキュアハードウェアで行なわれる鍵生成処理の概要は、以下の通りである。
(1)プロセッサコア10で実行されるプログラム(ソフトウェア)は、暗号鍵テーブル64の空きエントリが選択する。
(2)前記プログラムは、「空きエントリの番号(空きエントリ番号)」、「鍵属性」を、それぞれ、セキュアアシスト80の公開IF81内のレジスタ814、815に設定する。(3)前記プログラムは、「鍵生成コマンド」を公開IF81内のコマンドレジスタ815に設定する。これにより、セキュアコントローラ82の鍵生成ステートマシン(鍵生成STM)が起動され、鍵生成ステートマシンは鍵生成処理を実行する。
(4)鍵生成ステートマシンは、乱数発生器86を起動し、乱数発生器86に「鍵」と「ライセンス情報」を生成させる。
(5)乱数発生器86は、生成したライセンス情報を公開IF81のライセンスレジスタ819に設定すると共に、暗号鍵テーブル64の前記空きエントリ番号を有するエントリに登録する。また、乱数発生器86は、生成した鍵を鍵生成ステートマシンに出力する。(6)鍵生成ステートマシンは、乱数発生器86から鍵を入力すると、その鍵を暗号鍵テーブル64の前記エントリに登録すると共に、そのエントリのSビットを“1”に設定する。鍵生成ステートマシンは、さらに、公開IF81のレジスタ815から鍵属性を読み出し、それを暗号鍵テーブル64の前記エントリに登録する。
(7)鍵生成ステートマシンは、以上のようにして鍵生成処理を終了すると、鍵生成処理が成功したかどうかを示すステイタス情報を生成ステイタスレジスタ820に設定してから、鍵生成処理の終了を割込みにより前記プログラムに通知する。
生成ステートマシンは、鍵生成とライセンス情報の2つの処理を並列起動し(S66)、乱数発生器86を起動する(S67)と共に、乱数発生器86を起動する(S68)。こここで、上記2つの並列処理は共に乱数発生器86で行なわれる。この場合、乱数発生器86を2つ設け、ステップS67での鍵生成とステップS68でのライセンス情報生成の処理を、2つの乱数発生器86が分担して行うような構成にしてもよい。
このように、プロセッサコア10で実行されるプログラムとセキュアハードウェアの連携により行なわれる鍵生成処理において、鍵とそのライセンス情報を生成し、それらを“1”のSビットと共に暗号鍵テーブル64の空きエントリに登録することができる。また、前記プログラムは、上記暗号鍵テーブル64に登録された鍵のライセンス情報を保管することができる。
図11Aは、本実施例のセキュアプロセッサの鍵保存処理を行うハードウェア機構を示すブロック図である。
(1)セキュアプロセッサで実行されるプログラムは、保存するする暗号鍵の番号(保存鍵番号)と、その鍵のライセンス情報を、それぞれ、セキュアアシスト80の公開IF81内のレジスタ814、ライセンスレジスタ819に設定する。
(2)前記プログラムは、公開IF81内のコマンドレジスタ816に鍵保存コマンドを設定する。
(3)保存ステートマシン(セキュアコントローラ82)が起動し、公開IF81のライセンスレジスタ819に設定されているライセンス情報と暗号鍵テーブル64の前記保存鍵番号が指すエントリ(指定エントリ)に設定されているライセンス情報を比較し、ライセンスチェックを行う。
(4)保存ステートマシンはライセンスチェックにおいて両ライセンス情報が一致していれば、公開鍵演算器83(84)を起動する。公開鍵演算器83(84)は、暗号鍵テーブル64の指定エントリに登録されている鍵(暗号鍵)Kcを、保存ステートマシンから入力されるルート鍵821(公開鍵Kp1)で暗号化し、その公開鍵Kp1で暗号化された鍵(公開鍵暗号化鍵)Kcをレジスタ817に設定する。また、保存ステイタスレジスタ822に成功ステイタスを設定する。
(5)保存ステートマシンが、鍵保存処理の終了を、割込みにより前記プログラムに通知する。
前記プログラムは、保存ステートマシンからの割込みが発生すると(S93)、公開IF81内の保存ステイタスレジスタ822からステイタス情報を読み出し、そのステイタス情報を基に、保存ステートマシンによる鍵保存処理が成功したかどうか判断し(S94)、成功であれば、公開IF81内のレジスタ817から公開鍵暗号化鍵(公開鍵Kp1で暗号化された鍵Kc9を読み出すと共に、レジスタ811〜813から認証情報(鍵署名、署名検証鍵、署名検証鍵署名)を読み出し、それらを所定の記憶域に保存し(S96)、鍵保存を終了する(S96)。一方、失敗であれば、エラー終了する(S97)。
図12Aは、本実施例のセキュアプロセッサの鍵削除処理におけるセキュアハードウェアの動作概要を示す模式図である。
(1)セキュアプロセッサで実行されるプログラムが、削除する鍵の鍵番号(削除鍵番号)をセキュアアシスト80の公開IF81内のレジスタ814に設定すると共に、その鍵のライセンス情報をライセンスレジスタ819に設定する。
(2)前記プログラムは、コマンドレジスタ816に鍵削除コマンドを設定する。
(3)該鍵削除コマンドの設定により、セキュアアシスト80のセキュアコントローラ82(削除ステートマシン)が起動する。削除ステートマシンは、ライセンスチェック部65。ライセンスチェック部65は、公開IF81のライセンスレジスタ819に設定されているライセンス情報と暗号鍵テーブル64の前記削除鍵番号が指すエントリに登録されているライセンス情報を比較し、両者が一致するか調べる(ライセンスチェック)。
(4)ライセンスチェック部65は、ライセンスチェックにより両者のライセンス情報が一致すると、暗号鍵テーブル64の前記削除鍵番号が指すエントリ(指定鍵のエントリ)を削除する。
(5)ライセンスチェック部65は、鍵削除処理の終了を、割込みにより前記プログラムに通知する。
前記プログラムは、保存ステートマシンからの割込みが発生すると(S111)、公開IF81内の削除ステイタスレジスタ824からステイタス情報を読み出し、そのステイタス情報を基に、削除ステートマシンによる鍵削除処理が成功したかどうか判断し(S112)、成功であれば、鍵削除を終了する(S113)。一方、失敗であれば、エラー終了する(S114)。
[TLB/AMR拡張部63の操作]
TLB/AMR拡張部63の基本操作は3つである。
この操作は、暗号鍵テーブル64に登録済みの鍵について、その鍵のライセンスを持つプログラム(認証済プログラム)が自空間のTLB/AMR拡張部63に対して、その鍵を連携させる操作である。この操作には、既に登録済みのTLB/AMR拡張部63のエントリ情報を更新する操作も含まれる。
この操作は、暗号鍵テーブル64に登録されている鍵に連携されているTLB/AMR拡張部63のエントリを個別に削除する操作である。この操作は、TLB/AMR拡張部63のエントリの上書き、または暗号鍵テーブル64から鍵を削除することによっても可能である。暗号鍵テーブル64の鍵を削除したときには、その鍵に連携するTLB/AMR拡張部63のエントリが、次回のTLB/AMR拡張部63へのアクセス時に消去される。
この操作は、TLB/AMR拡張部63のエントリに登録されている鍵のライセンス情報と、そのエントリに連携されている暗号鍵テーブル64のエントリに登録されている該鍵のライセンス情報の不一致、またはプロセッサコア10のTLB/AMRのSビット、TLB/AMR拡張部63のSビット及び暗号鍵テーブル64のSビットが全て一致しないときに、TLB/AMR拡張部63の該当エントリ(TLB/AMRのセキュア拡張機能)が無効化される操作である。
{TLB/AMRエントリ登録}
TLB/AMRエントリ登録操作の処理を、図13A、13Bを参照しながら説明する。
登録ステートマシンは、ステップS127でのライセンスチェックが成功(2つのライセンス情報が一致)であれば、TLB/AMR拡張部の前記TLB/AMRエントリ番号が指すエントリの鍵番号とライセンス情報を更新し、該エントリのSビットに、暗号鍵テーブル64の前記鍵番号が指すエントリ(登録鍵エントリ)のSビットをコピーする(S128)。
TLB/AMR削除操作の処理を、図14A、14Bを参照しながら説明する。
図14Aは、プロセッサコア10のソフトウェア処理とセキュアアシスト80内のセキュアコントローラ82によるハードウェア処理との連携により行なわれるTLB/AMRエントリ削除操作の処理手順を示すフローチャートであり、図の左の破線枠内が前記ソフトウェア処理を、図の右の破線枠内が前記ハードウェア処理を示す。図14Bは、TLB/AMR削除操作の処理におけるセキュアハードウェアの動作を示す摸式図である。
削除ステートマシンは、ステップS127でのライセンスチェックが成功(2つのライセンス情報が一致)であれば、TLB/AMR拡張部の前記TLB/AMR削除エントリ番号が指すエントリを削除する(S148)。
{TLB/AMRエントリ無効化}
図15は、本実施例のセキュアプロセッサによるTLB/AMRのエントリ無効化操作を模式的に示す図である。
(1)プロセッサコア10のTLB/AMRのエントリ、そのエントリに対応するTLB/AMR拡張部63のエントリ、そのTLB/AMR拡張部63のエントリに連携されている暗号鍵テーブル64のエントリのSビットが一致しない場合。
・暗号鍵テーブル64のエントリから鍵が削除された場合
・プロセッサコア10のTLB/AMRのエントリのSビットが“0”にクリアされた場合
・プロセッサコア10のTLB/AMRのエントリが消去された場合
(2)TLB/AMR拡張部63のエントリと該エントリと連携している暗号鍵テーブル64のエントリのライセンス情報が不一致の場合。
・暗号鍵テーブル64のエントリから鍵が削除された場合
・暗号鍵テーブル64のエントリに指定された鍵とは異なる鍵が登録された場合
本実施例のセキュアプロセッサは、セキュアハードウェアに設けられたライセンスチェック部65、Sビット一致チェック部831及びORゲート部832が、以下に説明する処理を行うことにより、上記TLB/AMRのエントリの無効化操作を実現する。
[セキュアパイプのデータライト動作]
図16は、プロセッサコア10で実行されるプログラムがデータライトコマンドを発行した場合のセキュアパイプ60の動作を示す図である。同図左の破線の矩形枠は、上記データライトコマンドが発行された場合に、CPUコア15から出力されるデータや情報を示す。
暗号処理パイプ62は、出力データ151を鍵供給制御部842から供給される鍵属性と暗号鍵を基にして暗号化し、その暗号化により得られた暗号データをローカルバス30に出力する。コマンドバッファ61は、CPUコア15から入力されるアドレス152とコマンド属性153を一時的に格納する。そして、それらを、暗号鍵テーブル64から入力される鍵属性を基に暗号処理パイプ62から暗号データが出力されるまでも遅延時間を考慮した適切なタイミングでローカルバス30に出力する。ローカルバス30に入力される暗号データ、アドレス152及びコマンド属性153はローカルバス30からSDRAMC40に出力される。
ブート時は、前述したように、セキュアプロセッサ内蔵のビルトイン鍵で認証されるセキュアブートプログラムによりOSカーネル(命令コード)の鍵認証を行う。OSカーネルは起動すると、鍵生成処理を行い、データ空間を確保し、自身が使用するデータ空間を生成する(図18の(1))。OSカーネルは、次に、プログラム1の起動のため、プログラム1の認証情報を用いて鍵認証を行う(図18の(A))この鍵認証により認証されたプログラム1の命令コードの鍵は、プログラム1の終了まで暗号鍵テーブル64に保管され、プログラム1の終了時に、OSカーネルによりプログラム1の命令コードの鍵削除が行なわれる(図18の(E))。
暗号化された命令コード(暗号化命令コード)を復号して実行するセキュアプロセッサであって、
前記暗号化命令コードを復号して得られる命令コードを実行するプロセッサコアと、
該プロセッサコアで実行されるプログラムからアクセスできない位置に実装されたセキュアバスと、
該セキュアバスに接続され、前記プロセッサコアで実行される前記暗号化命令コードの認証と、前記プロセッサコアが外部と入出力する前記暗号化命令コード及びデータの暗号化/復号化を行うセキュアハードウェアと、
を備えることを特徴とするセキュアプロセッサ。
(付記2)
付記1記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
ビルトイン鍵を記憶する記憶手段を備え、
前記セキュアハードウェアは、前記ビルトイン鍵により暗号化されたセキュアブートプログラムによって初期化され、前記セキュアブートプログラムは、セキュアプロセッサで実行される命令コード認証の起点となることを特徴とする。
(付記3)
付記2記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
前記プロセッサコアが外部と入出力する前記暗号化命令コード及びデータの暗号化/復号化を行う、前記セキュアバスに接続されたセキュアパイプを備えることを特徴とする。
(付記4)
付記2記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
公開インターフェースを介して、プロセッサコアで実行されるプログラムとの間でコマンドや情報を送受信し、公開鍵系暗号処理と公開鍵系認証処理を実行する、前記セキュアバスに接続されたセキュアアシストを備えることを特徴とする。
(付記5)
付記2記載のセキュアプロセッサであって、
DMA転送機能を有し、該DMA転送機能によって転送された命令コードまたはデータのページ検証を行う、前記セキュアバスに接続されたセキュアDMAを、
備えることを特徴とする。
(付記6)
付記2記載のセキュアプロセッサであって、
付記3記載のセキュアパイプと、
付記4記載のセキュアアシストと、
付記5記載のセキュアDMAを備え、
前記セキュアアシストは、前記セキュアパイプと前記セキュアDMAの設定/制御を、前記セキュアバス経由で行うことを特徴とする。
(付記7)
付記3記載のセキュアプロセッサであって、
前記セキュアパイプは、
プロセッサコアで実行される認証済のプログラムにのみ、認証済のデータ空間へのアクセスを許可することを特徴とする。
(付記8)
付記6記載のセキュアプロセッサであって、
前記セキュアパイプは、
公開鍵暗号化された鍵(公開鍵暗号化鍵)と、該公開鍵暗号化鍵のライセンス情報と、該公開鍵暗号化鍵が信頼可能であるか否かを示す第1のフラグが登録されるエントリを有する暗号鍵テーブルと、
前記プロセッサコアのTLB/AMRと一対一に対応するエントリを有し、該エントリ内に、前記暗号鍵テーブルに登録されている暗号鍵の識別情報と、該暗号鍵識別情報が指す前記暗号鍵テーブルのエントリに登録されている第1のフラグのコピーである第2のフラグとライセンス情報が登録されるTLB/AMR拡張部と、
前記TLB/AMR拡張部のエントリに登録されているライセンス情報と、前記TLB/AMR拡張部の該エントリに登録されている暗号鍵識別情報が指す暗号鍵テーブルのエントリに登録されているライセンス情報が一致するか調べるライセンスチェック部と、
を備えることを特徴とする。
(付記9)
付記8記載のセキュアプロセッサであって、
前記プロセッサコアのTLB/AMRのエントリは、前記TLB/AMR拡張部の第2のフラグと同様な機能を有する第3のフラグを有することを特徴とする。
(付記10)
付記8記載のセキュアプロセッサであって、
前記暗号鍵テーブルの空きエントリの管理は、前記プロセッサコアで実行されるプログラムによって管理されることを特徴とする。
(付記11)
付記6記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
命令コードの前記公開鍵暗号化鍵を認証する鍵認証手段と、
該鍵認証手段によって前記公開鍵暗号化鍵が認証されたとき、前記公開鍵暗号化鍵のライセンス情報を生成するライセンス情報生成手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証されたとき、前記公開鍵暗号化鍵を復号する鍵復号手段を備え、
前記ライセンス情報生成手段によって生成されたライセンス情報は、前記鍵認証手段に認証を依頼した前記プロセッサコアで実行中のプログラムによって保存され、前記鍵復号手段によって復号された鍵は前記暗号鍵テーブルに登録されることを特徴とする。
(付記12)
付記11記載のセキュアプロセッサであって、
前記鍵認証手段は、前記公開鍵暗号化鍵の属性、前記公開鍵暗号化鍵の鍵署名、該鍵署名の署名検証鍵及び該署名検証鍵の署名検証鍵署名を基に、前記公開鍵暗号化鍵の認証を行うことを特徴とする。
(付記13)
付記6記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
命令コードの前記公開鍵暗号化鍵を認証する鍵認証手段と、
前記命令コードをページ単位で検証するページ検証手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証され、かつ、前記ページ検証手段により前記命令コードのページが検証されたとき、前記公開鍵暗号化鍵のライセンス情報を生成するライセンス情報生成手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証され、かつ、前記ページ検証手段により命令コードのページが検証されたとき、前記公開鍵暗号化鍵を復号する鍵復号手段を備え、
該ライセンス情報生成手段によって生成されたライセンス情報は、前記鍵認証手段に認証を依頼した前記プロセッサコアで実行中のプログラムによって保存され、前記鍵復号手段によって復号された鍵は前記暗号鍵テーブルに登録されることを特徴とする。
(付記14)
付記13記載のセキュアプロセッサであって、
前記鍵認証手段は、前記公開鍵暗号化鍵の属性、前記公開鍵暗号化鍵の鍵署名、該鍵署名の署名検証鍵及び該署名検証鍵の署名検証鍵署名を基に、前記公開鍵暗号化鍵の認証を行い、
前記ページ検証手段は、前記命令コードのページ署名を基にページ検証を行うことを特徴とする。
(付記15)
付記14記載のセキュアプロセッサであって、
前記鍵認証手段は、前記公開鍵暗号化鍵の属性、前記公開鍵暗号化鍵の鍵署名、該鍵署名の署名検証鍵及び該署名検証鍵の署名検証鍵署名を基に、前記公開鍵暗号化鍵の認証し、
前記ページ検証手段は、前記命令コードのページ署名を基にページ検証をプロセッサコアは、前記第1の検証手段と前記第2の検証手段によって検証された命令コードのみを実行することを特徴とする。
20 2次キャッシュ
30 ローカルバス
60 セキュアパイプ
61 コマンドバッファ
62 暗号処理パイプ
63 TLB/AMR拡張部
64 暗号鍵テーブル
65 ライセンスチェック部
66 セキュアバスIF
70 セキュアDMA
73 共通鍵暗号処理/ハッシュッ処理部
74 セキュアIF
76 セキュアバスIF
80 セキュアアシスト
81 公開IF
82 セキュアコントローラ
83 RSA演算器
84 楕円暗号演算器
85 ハッシュ演算器
86 乱数発生器
87 認証リスト
88 セキュアバスIF
89 セキュアバス
90 セキュアバス
102 鍵署名
103 署名検証鍵
104 署名検証鍵署名
105 ページ署名
301 第1の公開鍵ペア
302 第2の公開鍵ペア
303 第3の公開鍵ペア
311、361 命令コード
312、362 共通鍵暗号化された命令コード
313 電子証明書
314 署名検証鍵(公開鍵Kp2)とその他の情報から成るデータ
320 伝送手段
501 プロセッサコアのTLB/AMR
811〜813 認証情報(鍵署名、署名検証鍵、署名検証鍵署名)の格納レジスタ
814 暗号鍵テーブルのエントリ番号(鍵番号)の格納レジスタ
816 コマンドレジスタ
817 公開鍵暗号化された暗号鍵の格納レジスタ
819 ライセンスレジスタ
820 生成ステイタスレジスタ
822 保存ステイタスレジスタ
824 削除ステイタスレジスタ
827 登録ステイタスレジスタ
828 削除ステイタスレジスタ
830 ANDゲート部
831 Sビット一致チェック部
832 ORゲート部(第1のORゲート部)
841 ORゲート部(第2のORゲート部)
Claims (8)
- 暗号化された命令コードである暗号化命令コードを復号して実行するセキュアプロセッサであって、
前記暗号化命令コードを復号して得られる命令コードを実行するプロセッサコアと、
該プロセッサコアで実行されるプログラムからアクセスできない位置に実装されたセキュアバスと、
該セキュアバスに接続され、前記プロセッサコアで実行される前記暗号化命令コードの認証と、前記プロセッサコアが外部と入出力する前記暗号化命令コード及びデータの暗号化/復号化を行うセキュアハードウェアとを備え、
前記セキュアハードウェアは、
前記プロセッサコアが外部と入出力する前記暗号化命令コード及びデータの暗号化/復号化を行う、前記セキュアバスに接続されたセキュアパイプを備え、
前記セキュアパイプは、
公開鍵暗号化された鍵である公開鍵暗号化鍵と、該公開鍵暗号化鍵のライセンス情報と、該公開鍵暗号化鍵が信頼可能であるか否かを示す第1のフラグが登録されるエントリを有する暗号鍵テーブルと、
前記プロセッサコアのTLB/AMRと一対一に対応するエントリを有し、該エントリ内に、前記暗号鍵テーブルに登録されている暗号鍵の識別情報と、該暗号鍵識別情報が指す前記暗号鍵テーブルのエントリに登録されている第1のフラグのコピーである第2のフラグとライセンス情報が登録されるTLB/AMR拡張部と、
前記TLB/AMR拡張部のエントリに登録されているライセンス情報と、前記TLB/AMR拡張部の該エントリに登録されている暗号鍵識別情報が指す暗号鍵テーブルのエントリに登録されているライセンス情報が一致するか調べるライセンスチェック部と、
を備えることを特徴とするセキュアプロセッサ。 - 請求項1記載のセキュアプロセッサであって、
前記プロセッサコアのTLB/AMRのエントリは、前記TLB/AMR拡張部の第2のフラグと同様な機能を有する第3のフラグを有することを特徴とする。 - 請求項1記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
ビルトイン鍵を記憶する記憶手段を備え、
前記セキュアハードウェアは、前記ビルトイン鍵により暗号化されたセキュアブートプログラムによって初期化され、前記セキュアブートプログラムは、セキュアプロセッサで実行される命令コード認証の起点となることを特徴とする。 - 請求項1記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
公開インターフェースを介して、プロセッサコアで実行されるプログラムとの間でコマンドや情報を送受信し、公開鍵系暗号処理と公開鍵系認証処理を実行する、前記セキュアバスに接続されたセキュアアシストを備えることを特徴とする。 - 請求項1記載のセキュアプロセッサであって、
DMA転送機能を有し、該DMA転送機能によって転送された命令コードまたはデータのページ検証を行う、前記セキュアバスに接続されたセキュアDMAを、
備えることを特徴とする。 - 請求項1記載のセキュアプロセッサであって、
請求項4記載のセキュアアシストと、
請求項5記載のセキュアDMAを備え、
前記セキュアアシストは、前記セキュアパイプと前記セキュアDMAの設定/制御を、前記セキュアバス経由で行うことを特徴とする。 - 請求項6記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
命令コードの前記公開鍵暗号化鍵を認証する鍵認証手段と、
該鍵認証手段によって前記公開鍵暗号化鍵が認証されたとき、前記公開鍵暗号化鍵のライセンス情報を生成するライセンス情報生成手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証されたとき、前記公開鍵暗号化鍵を復号する鍵復号手段を備え、
前記ライセンス情報生成手段によって生成されたライセンス情報は、前記鍵認証手段に認証を依頼した前記プロセッサコアで実行中のプログラムによって保存され、前記鍵復号手段によって復号された鍵は前記暗号鍵テーブルに登録されることを特徴とする。 - 請求項6記載のセキュアプロセッサであって、
前記セキュアハードウェアは、
命令コードの前記公開鍵暗号化鍵を認証する鍵認証手段と、
前記命令コードをページ単位で検証するページ検証手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証され、かつ、前記ページ検証手段により前記命令コードのページが検証されたとき、前記公開鍵暗号化鍵のライセンス情報を生成するライセンス情報生成手段と、
前記鍵認証手段によって前記公開鍵暗号化鍵が認証され、かつ、前記ページ検証手段により命令コードのページが検証されたとき、前記公開鍵暗号化鍵を復号する鍵復号手段を備え、
該ライセンス情報生成手段によって生成されたライセンス情報は、前記鍵認証手段に認証を依頼した前記プロセッサコアで実行中のプログラムによって保存され、前記鍵復号手段によって復号された鍵は前記暗号鍵テーブルに登録されることを特徴とする。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006046051A JP4795812B2 (ja) | 2006-02-22 | 2006-02-22 | セキュアプロセッサ |
US11/456,437 US8468364B2 (en) | 2006-02-22 | 2006-07-10 | Secure processor |
EP06253618.0A EP1826701B1 (en) | 2006-02-22 | 2006-07-11 | Secure processor |
CN200610103979.0A CN101026455B (zh) | 2006-02-22 | 2006-07-28 | 安全处理器 |
US13/790,535 US8788840B2 (en) | 2006-02-22 | 2013-03-08 | Secure processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006046051A JP4795812B2 (ja) | 2006-02-22 | 2006-02-22 | セキュアプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007226481A JP2007226481A (ja) | 2007-09-06 |
JP4795812B2 true JP4795812B2 (ja) | 2011-10-19 |
Family
ID=36968711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006046051A Expired - Fee Related JP4795812B2 (ja) | 2006-02-22 | 2006-02-22 | セキュアプロセッサ |
Country Status (4)
Country | Link |
---|---|
US (2) | US8468364B2 (ja) |
EP (1) | EP1826701B1 (ja) |
JP (1) | JP4795812B2 (ja) |
CN (1) | CN101026455B (ja) |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2849226B1 (fr) * | 2002-12-20 | 2005-12-02 | Oberthur Card Syst Sa | Procede et dispositif de securisation de l'execution d'un programme informatique. |
US8161544B2 (en) | 2006-07-19 | 2012-04-17 | Microsoft Corporation | Trusted communications with child processes |
US8422674B2 (en) * | 2007-05-29 | 2013-04-16 | International Business Machines Corporation | Application-specific secret generation |
US8433927B2 (en) * | 2007-05-29 | 2013-04-30 | International Business Machines Corporation | Cryptographically-enabled privileged mode execution |
US8332635B2 (en) * | 2007-05-29 | 2012-12-11 | International Business Machines Corporation | Updateable secure kernel extensions |
EP2187313A4 (en) | 2007-09-04 | 2011-08-03 | Nintendo Co Ltd | WRITE-IN REGIONAL SECURITY SYSTEM |
JP5177697B2 (ja) | 2007-09-04 | 2013-04-03 | 任天堂株式会社 | ダウンロードセキュリティシステム |
US8332636B2 (en) * | 2007-10-02 | 2012-12-11 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
IL187038A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Secure data processing for unaligned data |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
EP2234323A1 (en) * | 2007-12-27 | 2010-09-29 | Keiko Ogawa | Information distribution system and program for the same |
WO2009090505A1 (en) * | 2008-01-20 | 2009-07-23 | Nds Limited | Secure data utilization |
US9158896B2 (en) * | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US8826037B2 (en) * | 2008-03-13 | 2014-09-02 | Cyberlink Corp. | Method for decrypting an encrypted instruction and system thereof |
US8165286B2 (en) * | 2008-04-02 | 2012-04-24 | Apple Inc. | Combination white box/black box cryptographic processes and apparatus |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
DE102008021567B4 (de) * | 2008-04-30 | 2018-03-22 | Globalfoundries Inc. | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel |
US20090287895A1 (en) * | 2008-05-15 | 2009-11-19 | Advanced Micro Devices | Secure Memory Access System |
US8910276B2 (en) * | 2008-05-24 | 2014-12-09 | Via Technologies, Inc. | Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor |
US8819839B2 (en) * | 2008-05-24 | 2014-08-26 | Via Technologies, Inc. | Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels |
US8302182B2 (en) * | 2008-09-01 | 2012-10-30 | Mediatek Inc. | Embedded system with authentication, and associated authentication method |
US8555015B2 (en) * | 2008-10-23 | 2013-10-08 | Maxim Integrated Products, Inc. | Multi-layer content protecting microcontroller |
US9117060B2 (en) * | 2009-05-07 | 2015-08-25 | Cadence Design Systems, Inc. | System and method for preventing proper execution of an application program in an unauthorized processor |
CN102725737B (zh) * | 2009-12-04 | 2016-04-20 | 密码研究公司 | 可验证防泄漏的加密和解密 |
KR101457355B1 (ko) * | 2009-12-22 | 2014-11-04 | 인텔 코포레이션 | 보안 애플리케이션 실행을 제공하는 방법 및 장치 |
US8543838B1 (en) * | 2009-12-23 | 2013-09-24 | Marvell International Ltd. | Cryptographic module with secure processor |
US8645714B2 (en) | 2010-05-25 | 2014-02-04 | Via Technologies, Inc. | Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
US9892283B2 (en) | 2010-05-25 | 2018-02-13 | Via Technologies, Inc. | Decryption of encrypted instructions using keys selected on basis of instruction fetch address |
US9798898B2 (en) | 2010-05-25 | 2017-10-24 | Via Technologies, Inc. | Microprocessor with secure execution mode and store key instructions |
US9967092B2 (en) | 2010-05-25 | 2018-05-08 | Via Technologies, Inc. | Key expansion logic using decryption key primitives |
US8904190B2 (en) | 2010-10-20 | 2014-12-02 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
US8566579B2 (en) * | 2011-03-15 | 2013-10-22 | Sandia Corporation | Obfuscated authentication systems, devices, and methods |
US8595510B2 (en) * | 2011-06-22 | 2013-11-26 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
JP5275432B2 (ja) * | 2011-11-11 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
CN102521535A (zh) * | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 通过特定指令集来进行相关运算的信息安全协处理器 |
WO2013082749A1 (zh) * | 2011-12-06 | 2013-06-13 | 华为技术有限公司 | 一种硬件资源保护方法和系统以及虚拟机管理器 |
US8694796B2 (en) * | 2011-12-23 | 2014-04-08 | Sap Ag | Secure data deletion in a database |
CN102591824B (zh) * | 2011-12-27 | 2014-11-05 | 深圳国微技术有限公司 | Soc芯片系统中控制保密数据搬运的dma控制器 |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
DE102012010102A1 (de) * | 2012-05-22 | 2013-11-28 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Datenverarbeitung |
US8909929B2 (en) * | 2012-05-31 | 2014-12-09 | Atmel Corporation | Stored public key validity registers for cryptographic devices and systems |
US20140237258A1 (en) * | 2013-02-20 | 2014-08-21 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
US9344747B2 (en) * | 2013-02-21 | 2016-05-17 | Broadcom Corporation | Mobile payTV DRM architecture |
US9043612B2 (en) * | 2013-03-12 | 2015-05-26 | International Business Machines Coropration | Protecting visible data during computerized process usage |
US9058494B2 (en) | 2013-03-15 | 2015-06-16 | Intel Corporation | Method, apparatus, system, and computer readable medium to provide secure operation |
US9239920B2 (en) * | 2013-04-23 | 2016-01-19 | Qualcomm Incorporated | Generation of working security key based on security parameters |
US20140325041A1 (en) * | 2013-04-27 | 2014-10-30 | Tencent Technology (Shenzhen) Co., Ltd. | Method, apparatus, server and system for adapting a client to a hardware environment |
WO2015060858A1 (en) * | 2013-10-24 | 2015-04-30 | Intel Corporation | Methods and apparatus for protecting software from unauthorized copying |
US9792448B2 (en) * | 2014-02-28 | 2017-10-17 | Advanced Micro Devices, Inc. | Cryptographic protection of information in a processing system |
US9367690B2 (en) * | 2014-07-01 | 2016-06-14 | Moxa Inc. | Encryption and decryption methods applied on operating system |
US9594928B1 (en) * | 2014-10-14 | 2017-03-14 | Altera Corporation | Multi-channel, multi-lane encryption circuitry and methods |
WO2016072999A1 (en) * | 2014-11-07 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Data conversion using an address space identifier |
CN107004099B (zh) * | 2014-11-26 | 2020-06-05 | 惠普发展公司,有限责任合伙企业 | 存储器中攻击预防 |
US10108820B2 (en) * | 2015-01-20 | 2018-10-23 | Mediatek Inc. | Snapshot data and hibernation data processing methods and devices |
US11829454B2 (en) * | 2018-03-09 | 2023-11-28 | Patrick Robert Koren | Method and apparatus for preventing and investigating software piracy |
US10776294B2 (en) * | 2015-11-16 | 2020-09-15 | Atmel Corporation | System architecture with secure data exchange |
US10061594B2 (en) * | 2016-02-06 | 2018-08-28 | Verizon Patent And Licensing Inc. | Protecting and verifying contents of files on mobile computing devices |
US10474823B2 (en) * | 2016-02-16 | 2019-11-12 | Atmel Corporation | Controlled secure code authentication |
EP4064088A1 (en) | 2016-08-30 | 2022-09-28 | Socionext Inc. | Processing apparatus, and semiconductor integrated circuit and boot method therefor |
US9798597B1 (en) * | 2016-09-26 | 2017-10-24 | International Business Machines Corporation | Verifying selective purging of entries from translation look-aside buffers |
JP6589835B2 (ja) * | 2016-11-24 | 2019-10-16 | 京セラドキュメントソリューションズ株式会社 | 情報処理システムおよび管理サーバー |
US10528746B2 (en) * | 2016-12-27 | 2020-01-07 | Intel Corporation | System, apparatus and method for trusted channel creation using execute-only code |
US10972251B2 (en) | 2017-01-20 | 2021-04-06 | Enveil, Inc. | Secure web browsing via homomorphic encryption |
US10880275B2 (en) | 2017-01-20 | 2020-12-29 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption |
US10771237B2 (en) | 2017-01-20 | 2020-09-08 | Enveil, Inc. | Secure analytics using an encrypted analytics matrix |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
JP7007570B2 (ja) | 2017-12-27 | 2022-01-24 | 株式会社ソシオネクスト | 処理装置、半導体集積回路及び状態監視方法 |
US11184164B2 (en) | 2018-02-02 | 2021-11-23 | Microsoft Technology Licensing, Llc | Secure crypto system attributes |
CN110489351B (zh) | 2018-05-14 | 2021-03-09 | 英韧科技(上海)有限公司 | 芯片指纹管理装置及安全芯片 |
JP6658819B2 (ja) * | 2018-08-01 | 2020-03-04 | ソニー株式会社 | 受信装置、受信方法、送信装置、及び、送信方法 |
US10902133B2 (en) * | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
WO2020087248A1 (zh) * | 2018-10-30 | 2020-05-07 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构和数据发送的方法 |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
WO2020234616A1 (en) * | 2019-05-21 | 2020-11-26 | Micron Technology, Inc. | Bus encryption for non-volatile memories |
CN110598403B (zh) * | 2019-09-12 | 2020-11-27 | 北京环球国广媒体科技有限公司 | 一种进程数据保护方法 |
CN111625813B (zh) * | 2020-05-27 | 2023-02-28 | 重庆夏软科技有限公司 | 一种通过修改进程保护程序的方法 |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
US11595189B2 (en) | 2020-10-27 | 2023-02-28 | Microsoft Technology Licensing, Llc | Secure key exchange using key-associated attributes |
US11520895B2 (en) * | 2020-12-07 | 2022-12-06 | Samsung Electronics Co., Ltd. | System and method for dynamic verification of trusted applications |
US11704444B2 (en) * | 2021-03-08 | 2023-07-18 | Micron Technology, Inc. | Managing encryption keys per logical block on a persistent memory device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4987595A (en) * | 1989-09-11 | 1991-01-22 | Motorola, Inc. | Secure cryptographic processor arrangement |
US5937063A (en) * | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US6735696B1 (en) | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
CN1192330C (zh) * | 2000-01-18 | 2005-03-09 | 因芬尼昂技术股份公司 | 微处理器加密装置 |
JP4153653B2 (ja) | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
JP2003101529A (ja) * | 2001-09-20 | 2003-04-04 | Toshiba Corp | コンテンツ管理装置およびコンテンツ削除方法 |
US8611919B2 (en) * | 2002-05-23 | 2013-12-17 | Wounder Gmbh., Llc | System, method, and computer program product for providing location based services and mobile e-commerce |
EP1542112A4 (en) * | 2002-07-09 | 2008-04-09 | Fujitsu Ltd | UCT RESISTANT TO OPEN-TYPE UNIVERSAL ATTACKS, AND ASSOCIATED APPLICATION SYSTEM |
JP3880933B2 (ja) * | 2003-01-21 | 2007-02-14 | 株式会社東芝 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP4021810B2 (ja) | 2003-06-25 | 2007-12-12 | 株式会社東芝 | プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法 |
JP4263976B2 (ja) | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
GB0411654D0 (en) * | 2004-05-25 | 2004-06-30 | Hewlett Packard Development Co | A generic trusted platform architecture |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
JP4489030B2 (ja) * | 2005-02-07 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 |
JP4522372B2 (ja) * | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置 |
-
2006
- 2006-02-22 JP JP2006046051A patent/JP4795812B2/ja not_active Expired - Fee Related
- 2006-07-10 US US11/456,437 patent/US8468364B2/en not_active Expired - Fee Related
- 2006-07-11 EP EP06253618.0A patent/EP1826701B1/en not_active Expired - Fee Related
- 2006-07-28 CN CN200610103979.0A patent/CN101026455B/zh not_active Expired - Fee Related
-
2013
- 2013-03-08 US US13/790,535 patent/US8788840B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8788840B2 (en) | 2014-07-22 |
US20130198526A1 (en) | 2013-08-01 |
EP1826701A2 (en) | 2007-08-29 |
EP1826701A3 (en) | 2009-07-08 |
US8468364B2 (en) | 2013-06-18 |
CN101026455B (zh) | 2010-09-29 |
JP2007226481A (ja) | 2007-09-06 |
US20070198851A1 (en) | 2007-08-23 |
CN101026455A (zh) | 2007-08-29 |
EP1826701B1 (en) | 2018-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4795812B2 (ja) | セキュアプロセッサ | |
US11550962B2 (en) | Secure processor and a program for a secure processor | |
JP4689945B2 (ja) | リソースアクセス方法 | |
JP4689946B2 (ja) | 安全なデータを使用して情報処理を実行するシステム | |
JP5316592B2 (ja) | セキュアプロセッサ用プログラム | |
JP5365664B2 (ja) | セキュアプロセッサ | |
JP4783452B2 (ja) | セキュアプロセッサ | |
JP4783451B2 (ja) | セキュアプロセッサ | |
Malipatlolla | SUSTAINABLE TRUSTED COMPUTING | |
Malipatlolla | Sustainable Trusted Computing: A Novel Approach for a Flexible and Secure Update of Cryptographic Engines on a Trusted Platform Module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081017 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110707 |
|
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: 20110726 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110728 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |