JP4814083B2 - 暗号を使ってソフトウェアをハードウェアに関連付けること - Google Patents

暗号を使ってソフトウェアをハードウェアに関連付けること Download PDF

Info

Publication number
JP4814083B2
JP4814083B2 JP2006509824A JP2006509824A JP4814083B2 JP 4814083 B2 JP4814083 B2 JP 4814083B2 JP 2006509824 A JP2006509824 A JP 2006509824A JP 2006509824 A JP2006509824 A JP 2006509824A JP 4814083 B2 JP4814083 B2 JP 4814083B2
Authority
JP
Japan
Prior art keywords
software
hardware
signature
identifier
certificate
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 - Lifetime
Application number
JP2006509824A
Other languages
English (en)
Other versions
JP2006522988A (ja
Inventor
ミカエリス、オリバー
マウロ、アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2006522988A publication Critical patent/JP2006522988A/ja
Application granted granted Critical
Publication of JP4814083B2 publication Critical patent/JP4814083B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般に、エレクトロニクスに関連し、特に、ハードウェアへソフトウェアを関連付けるための技術に関する。
電子デバイスは、例えば無線通信、パーソナル計算等のような様々な用途のために広く利用可能である。これらデバイスは、ハードウェアがより強力になると、より多くの機能及び/又はより複雑な機能をサポートすることができる。例えば、今日における携帯電話は、無線通信を提供することができ、更に、ゲーム機器、パーソナルデジタルアシスタント(PDA)、デジタルカメラ等のように機能するかもしれない。
複雑な電子デバイス(例えば携帯電話)は、一般に、ハードウェアを制御するためと、様々な設計された機能をサポートするためとにソフトウェアを必要とする。このソフトウェアは、製造中にデバイス内の非揮発性メモリ内にロードされるか、又は起動中にデバイスにダウンロードされるか、又はその両方がなされる。ソフトウェアがデバイスにどのようにロードされるかに関わらず、ロードされたソフトウェアがハードウェアのために「適切である」か否かを確かめることが望ましいか、又は確かめる必要がある。適合性は、以下に記載するような種々の要因によって定量化されうる。例えば、ロードされたソフトウェアが、製造者によって認可されたバージョンであることを確かめ、もしもそれが認可されていないバージョンであれば、このソフトウェアの実行を阻止することが望ましいであろう。
従って、電子デバイスのためにハードウェアにソフトウェアを関連付ける技術について、当該技術分野における必要性がある。
RFC 2315、"PKCS #7:Cryptographic Message Syntax Version 1.5" Federal Information Processing Standard (FIPS) PUB 180−1、"Secure Hash Standard" RFC 1321、"The MD5 Message-Digest Algorithm" RFC 2459、"Internet X. 509 Public Key Infrastructure Certificate and CRL Profile" FIPS PUB 186、"Digital Signature Standard (DSS)" RFC 2104、"HMAC:Keyed-Hashing for Message Authentication" FIPS PUB 198、"The Keyed-Hash Message Authentication Code (HMAC)"
本出願は、2003年4月8日に出願され、"Associating Authenticated Software with a Licensed Hardware Platform"と題された米国出願番号第60/461,341号の利益を主張する。
ここでは、暗号を使ってソフトウェアをハードウェアに関連付ける技術が開示される。ソフトウェアは、ソフトウェア識別子(ID)により識別される。これは、ソフトウェアリリースバージョン番号であるかもしれない。ハードウェアは、ハードウェアIDにより識別される。これは、モデル番号又は部品番号であるかもしれない。
ソフトウェアをハードウェアに関連付けるための一つの具体的なスキームでは、先ずコードダイジェストを得るためにソフトウェアがハッシュされる。次に、コードダイジェスト、ソフトウェアID、及びハードウェアIDに対してコード署名が作成される。次に、ソフトウェア、ソフトウェアID、コード署名、及び証明書を用いてコードイメージが生成される。証明書は、(1)コード署名を作成した証明書機関を認証し、(2)コード署名の妥当性確認を行う、ために使用される暗号情報を含んでいる。コードイメージは、例えば携帯電話等の無線デバイスのようなデバイスに提供され、そこに格納される。
デバイスは、ソフトウェアを実行する前に、ハードウェア関連付けに対するソフトウェアの妥当性確認を行う。デバイスは、電源がオンされる毎に、この妥当性確認を実行しうる。この妥当性確認のために、デバイスは、先ず、証明書機関のための、デバイス内に埋め込まれた公開鍵を用いて証明書を認証する。次にこのデバイスは、(1)証明書に含まれている暗号情報、(2)コードイメージ内の情報、及び(3)デバイス内に埋め込まれたハードウェアIDを用いてコード署名の妥当性確認を行う。この妥当性確認は、(例えば、初めに署名の妥当性確認を行い、次に、証明書の認証を行うように)違う順序でも実行されうる。
本発明の種々の局面及び実施例が、以下に詳細に説明される。
本発明の特徴及び特性は、同一符番が、全体を通じて同一部を対応して示す図面と連携した時に、以下に記述されている詳細説明からより明らかになるであろう。
用語「典型的(exemplary)」とは、ここでは「例、インスタンス、又は例示」として役立つことを意味するために使用される。ここで「典型的」と記載された設計の如何なる実施例も、他の実施例あるいは設計よりも好適であるとか、あるいは有利であるとか必ずしも解釈される必要はない。
暗号を用いてソフトウェアをハードウェアに関連付けるここに記載した技術は、例えば無線デバイス、携帯電話、ハンドセット、計算デバイス、PDA等の種々の電子デバイスのために使用されうる。明確化のために、これら技術は、無線デバイス(例えば携帯電話)について具体的に説明されている。
ソフトウェアのハードウェアへの関連付けは、暗号技術を用いて達成される。この関連付けのために、一般に、対称又は非対称な暗号方式が使用されうる。非対称な暗号方式(公開鍵暗号方式としても知られている)では、秘密鍵と公開鍵とからなる一対の鍵が、例えば認証、暗号化、及び復号化のような安全な機能のために使用される。秘密鍵が、秘密に保たれ、公開鍵が、必要に応じて提供される。データを処理するためにこれら鍵がどのように使用されるのかに基づいて、異なる安全機能が達成されうる。対称な暗号方式(秘密鍵暗号方式としても知られている)では、両処理エンティティが、先天的に秘密鍵を知っており、この鍵を、他のエンティティから秘密に保つ。非対称な暗号方式は、一つのエンティティがデータに署名し、多くのエンティティがこの署名を認証して、データの妥当性を確認する用途のためにより適切である。従って、非対称な暗号方式は、以下の記述のために使用される。
図1は、ソフトウェアをハードウェアに関連付ける様々なエンティティ機能を用いた設定100を示す。コード生成エンティティ110は、特定のハードウェアプラットフォーム(又は単に「ハードウェア」)のためのソフトウェアコード112を生成する。このソフトウェアコードは、所望の機能を実施するためにハードウェアによって実行されることを意図している。このソフトウェアコードは、ソフトウェア識別子(ID)が割り当てられる。これは、ソフトウェアリリースバージョン番号、製品鍵、又はその他の識別情報であるかもしれない。ハードウェアは、集積回路、チップセット、モジュール、デバイス等でありうる。ハードウェアも同様に、モデル番号、製品番号等からなりうるハードウェアIDが割り当てられる。個々の異なるハードウェアプラットフォームは、異なるハードウェアIDが割り当てられる。しかしながら、同一のハードウェアプラットフォームの全てのインスタンス又はユニットは、同じハードウェアIDを持つ。同様に、個々のソフトウェアリリースは、異なるソフトウェアIDが割り当てられる。しかしながら、同一のソフトウェアリリースの全てのインスタンス又はコピーは、同じソフトウェアIDを持つ。従って、ソフトウェアIDとハードウェアIDとは、ソフトウェアリリースとハードウェアプラットフォームとをそれぞれ識別し、ソフトウェア及びハードウェアの具体的なインスタンスを識別しない。
コード生成エンティティ110は、ソフトウェアコードを処理(例えばハッシュ)し、コードダイジェストを得る。これは、ハッシュの結果得られるメッセージダイジェストである。このハッシュは、ソフトウェアコードのための潜在的に大きく可変サイズのファイルを、より便利に転送され操作されることが可能な短い固定サイズのダイジェストへマップする。コード生成エンティティ110は、ソフトウェアコードのための署名を求める要求を、証明書機関(CA:certificate authority)120へ送る。この要求は、(1)コードダイジェスト、(2)ソフトウェアコードのためのソフトウェアID、及び(3)このソフトウェアコードが動作することを意図しているハードウェアのためのハードウェアIDを含む。この要求は、同等の情報を含むかもしれない。例えば、コード生成エンティティ110は、コードダイジェストの代わりのソフトウェアコード、このソフトウェアコード及び意図しているハードウェアを識別するその他の情報、等を送るかもしれない。
証明書機関120は、ソフトウェアがハードウェアに関連付けられるか否かを検証する信頼されたエンティティである。証明書機関120は先ず、コード生成エンティティ110による要求とともに送られた証明書に基づいて、コード生成エンティティ110を認証する。この証明書は、簡略のために図1に示されていない。要求された関連付けの妥当性確認は、コード生成エンティティ110から取得されたハードウェアID及びソフトウェアIDを、コンフィギュレーションテーブル122内に格納された情報との一致をとることによって達成される。例えば、テーブル122は、コード生成エンティティ110に対して許可されたソフトウェア及びハードウェア関連付けのリストを格納しうる。要求された関連付けは、テーブルに格納された許可された関連付けの一つと一致すれば許可される。要求された関連付けの妥当性が一旦確認されると、証明書機関120は、暗号方式及び暗号鍵124を用いてソフトウェアをハードウェアに関連付ける。暗号鍵124は、(1)ソフトウェアコードの署名及び認証のために使用される秘密鍵と公開鍵とのセット(ここでは、「コード」秘密鍵及び公開鍵とも称される)と、(2)証明書機関120の識別及び認証のために使用される秘密鍵と公開鍵とのセット(ここでは、「CA」秘密鍵及び公開鍵とも称される)とからなる2セットの鍵を含む。証明書機関120は、コード秘密鍵を使用して、コードダイジェスト、ソフトウェアID、及びハードウェアIDに対して署名を生成するこの署名はここでは「コード署名」と称される。証明書機関120はその後、コード署名及び証明書126をコード生成エンティティ110に送る。この証明書は、(1)コード署名を生成するために使用されるコード秘密鍵に対応するコード公開鍵と、(2)CA秘密鍵を用いてコード公開鍵に関して生成された署名と、(3)場合によってはその他の情報とを含む。
コード生成エンティティ110は、証明書機関120からコード署名と証明書とを受け取り、ソフトウェアコードと、ソフトウェアIDと、コード署名と、証明書とを備えたコードイメージを作成する。コード生成エンティティ110はその後、このコードイメージを無線デバイス130へ送る。無線デバイス130は、このイメージを非揮発性メモリ132内に格納する。デバイス130は、例えばデバイスの電源がオンされる毎に動作するブートコード134を持つ。このブートコードは、以下に記載するように、(1)コードイメージに含まれるソフトウェアID、コード署名、及び証明書、(2)ハードウェアID136、及び(3)CA公開鍵138に基づいて、このソフトウェアコードがデバイス130によって実行されることについて妥当性を確認する。ブートコード、ハードウェアID、及びCA公開鍵は、デバイス130内に埋め込まれ、耐改竄性がある。デバイス130は、ブートコードによって妥当性が確認されたソフトウェアコードのみを実行する。
コード生成エンティティ110は、無線デバイス130の製造者、この無線デバイス130が使用されている無線通信ネットワークに対するネットワークオペレータ又はサービスプロバイダ、第三者ソフトウェア販売業者、相手先商標による製品の生産者(OEM)、この通信ネットワークに使用されるハードウェア及び/又は技術に対する知的所有権を持つエンティティの被許可者、又はその他のエンティティでありうる。証明書機関120は、ソフトウェアのハードウェアへの関連付けを実行することが信頼された独立機関(例えばGeotrustやVerisign等)でありうる。証明書機関120とコード生成エンティティ110も、(例えばネットワークオペレータのように)同じエンティティの一部であるかもしれない。
図2は、無線デバイス130に送られ、無線デバイス130によって格納されるコードイメージを例示している。コードイメージは、ソフトウェアコードのためのフィールド212と、ソフトウェアID(SW ID)のためのフィールド214と、証明書機関120によって生成されたコード署名のためのフィールド216と、証明書機関120によって提供された証明書のためのフィールド218とを含む。コードイメージは、例えば、一般に利用可能な「PKCS #7:Cryptographic Message Syntax Version 1.5」と題された文書RFC 2315(非特許文献1)によって定義されたフォーマットのような種々のフォーマットで格納されうる。(PKCSは、公開鍵暗号規格を表す。)また、コードイメージは、追加情報、及び/又は図2に示すものとは異なる別の情報を含みうる。例えば、ソフトウェアIDは、ソフトウェアコード内に含まれ、図2に示すように別々に格納される必要は無いかもしれない。
図3は、ソフトウェアコードのためのコードイメージを生成する処理を示す。ハッシュ機能310がソフトウェアコードを受け取ってハッシュし、コードダイジェストを提供する。ソフトウェアコードは、多くのメガバイトからなる大きなファイルかもしれないので、ハッシュは、より便利に送られ、演算されることが可能な短い固定サイズのダイジェストを生成する。ハッシュ機能310は、ソフトウェアコードを、対応するコードダイジェストにマップする。ハッシュ機能310の重要な特性は、耐衝突性があることである。これは、同じダイジェストにマップする2つのメッセージx及びx’を見つけることが不可能であるべきことを意味する。ハッシュ機能310は、例えばSHA−1(安全なハッシュアルゴリズム)、MD−5(メッセージダイジェスト)、及び当該技術分野で周知のその他のハッシュアルゴリズムのような種々の暗号ハッシュ機能を用いて実施される。SHA−1は、160ビットメッセージダイジェストを提供し、一般に利用可能となっている「Secure Hash Standard」と題されたFederal Information Processing Standard (FIPS) PUB 180-1(非特許文献2)に記載されている。MD−5は、128ビットメッセージダイジェストを提供し、一般に利用可能となっている「The MD5 Message-Digest Algorithm」(非特許文献3)と題された文書RFC 1321に記載されている。
署名機能320はコードダイジェスト、ソフトウェアID、ハードウェアID、及びコード秘密鍵を受け取る。署名機能320は、コード秘密鍵を使用して、コードダイジェスト、ソフトウェアID、及びハードウェアIDに基づいて(によって)コード署名を生成する。署名機能320は、以下に説明するように実施される。
証明書生成部330は、コード秘密鍵に対応するコード公開鍵、CA秘密鍵、及びその他の適切な情報(例えば、証明書を生成するエンティティを識別する情報、証明書のために使用される暗号アルゴリズム等)を受け取る。証明書生成部330は、CA秘密鍵を用いて、コード公開鍵とその他の適切な情報によって署名を生成する。この署名は、ここでは「CA署名」と称される。その後、証明書生成部330は、コード公開鍵、CA署名、及びその他の情報を用いて証明書を作成する。この証明書は、例えば、一般に利用可能となっている「Internet X. 509 Public Key Infrastructure Certificate and CRL Profile」(非特許文献4)と題された文書RFC 2459によって定義されているような種々のフォーマットで格納されうる。この証明書は、以下に記載するように、コード公開鍵のみならず、証明書機関120を認証するためにも使用される。
結合ユニット340は、ソフトウェアコード、ソフトウェアID、コード署名、及び証明書を受け取って結合し、(例えばPKCS #7フォーマットで)コードイメージを得る。
ハッシュ機能310及び結合ユニット340は、図1内のコード生成エンティティ110に存在しうる。署名機能320及び証明書生成部330は、証明書機関120に存在しうる。あるいは、ハッシュ機能310、署名機能320、証明書生成部330、及び結合ユニット330は全て同一のエンティティ内に存在しうる。
図4は、コード署名を生成するための処理ユニット320aを示す。処理ユニット320aは、図3内の署名機能320のために使用されうる。処理ユニット320a内では、ハッシュユニット410がコードダイジェスト、ソフトウェアID、及びハードウェアIDの連結及びハッシュを実行する。図4に示す実施例では、ハッシュユニット410内では、連結ユニット412がコードダイジェスト、ソフトウェアID、及びハードウェアIDを受け取って連結し、メッセージ(M)を得る。ハッシュ機能414は、メッセージ(M)をハッシュし、メッセージダイジェスト(D)を提供する。ダイジェスト(D)は、ソフトウェアをハードウェアに関連付けている情報を含んでおり、ここでは「署名ダイジェスト」と称される。その後、暗号化ユニット420が、コード秘密鍵を用いて署名ダイジェスト(D)を暗号化し、コード署名(S)を生成する。
一般に、このダイジェスト(D)を生成するために使用される全メッセージは、コード署名(S)と共に送られる。しかしながら、この用途のために、コード署名を得るために使用される三つの情報が、他の手段を経由して無線デバイスに対して利用可能である。特に、無線デバイスは、コードイメージからのソフトウェアIDと、コードダイジェストとを取得し、ハードウェアIDが無線デバイス内に埋め込まれる。
処理ユニット320aは、RSA(Rivest、Shamir、及びAdleman)アルゴリズムを実施しうる。この実施のために、ハッシュ機能414は、SHA−1、MD−5、又はその他のハッシュ機能を実施し、暗号化ユニット420は、コード秘密鍵を用いてダイジェスト(D)を暗号化する。処理ユニット320aは、一般に利用可能となっている「Digital Signature Standard (DSS)」(非特許文献5)と題されたFIPS PUB 186に記載されたデジタル署名規格(DSS:Digital Signature Standard)も実施できる。この実施のために、ハッシュ機能414はSHA−1を実施し、暗号化ユニット420はデジタル署名アルゴリズム(DSA:Digital Signature Algorithm)を実施する。処理ユニット320aは、いくつかの他の暗号(デジタル署名又は暗号化)アルゴリズムも実施してよく、これも本発明の範囲内である。
図5は、コード署名のために使用される署名ダイジェスト(D)を生成するための処理ユニット410aを示す。処理ユニット410aは、図4におけるハッシュユニット410のために使用されうる。処理ユニット410aは、ハッシュベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)を実施する。HMACは、「HMAC:Keyed-Hashing for Message Authentication」と題された文書RFC 2104(非特許文献6)、及び「The Keyed-Hash Message Authentication Code (HMAC)」と題された文書FIPS PUB 198(非特許文献7)に記載されている。これらはともに一般に利用可能となっている。
処理ユニット410a内では、ユニット512がソフトウェアIDを受け取り、ソフトウェアIDと“ipad”値との排他的論理和を実行する。このipad値は、RFC 2401によって定義された一つである。これは、64回繰り返された16進法バイト0×36である。しかしながら、ipad値は、0×36の代わりに幾つか別の基本値で定義されてもよい。そして、この基本値は、64回の代わりに異なる回数繰り返されていもよい。ipad値はまた、繰り返しの無い単一の値としても定義されうる。ソフトウェアID及びハードウェアIDについて必要に応じて零パディングが実行され、所望の長さが得られる。これは、簡略のために図5には示していない。排他的論理和は、ビットワイズのモジュロ2加算によって実行される。連結ユニット514は、排他的論理和ユニット512の出力と共にコードダイジェストを受け取り、それらを連結し、第一のメッセージ(M1)を提供する。ハッシュ機能516は、第一のメッセージを受け取ってハッシュし、第一のダイジェスト(D1)を提供する。
ユニット522は、ハードウェアIDと“opad”値との排他的論理和を実行する。このopad値は、RFC 2401によって定義された一つであり、64回繰り返された16進法バイト0×5cである。しかしながら、opad値は、0×5cの代わりに幾つか別の基本値で定義されてもよい。そして、この基本値は、64回の代わりに異なる回数繰り返されていてもよい。opad値はまた、繰り返しの無い単一の値としても定義されうる。連結ユニット518は、排他的論理和ユニット522の出力と共にハッシュ機能516からの第一のダイジェスト(D1)を受け取り、それらを連結し、第二のメッセージ(M2)を提供する。ハッシュ機能520は、第二のメッセージ(M2)を受け取ってハッシュし、第二のダイジェストを提供する。これは、署名ダイジェスト(D)として使用される。ハッシュ機能516及び520は、例えばSHA−1、MD−5、又はその他の幾つかのハッシュアルゴリズムのような種々の暗号ハッシュ関数で実施されうる。
図5は、署名ダイジェストを生成するための具体的手法におけるHMACの使用を示している。HMAC構成は、署名ダイジェストを生成するための別の手法にも適用される。これも本発明の範囲内である。例えば、ソフトウェアIDとハードウェアIDとが連結され、その後、ユニット512へ提供され、ipad値との排他的論理和が行われる。そして、コードダイジェストがユニット522に提供され、opad値との排他的論理和が行われる。
図4及び図5は、署名ダイジェストを生成するための二つの典型的なスキームを示す。図5に示す処理ユニット410aは、HMACに対する鍵として三つの項目(すなわち、コードダイジェスト、ソフトウェアID、及びハードウェアID)を用いて署名ダイジェストを生成する。図4におけるユニット410は、これら三つの項目を一つのメッセージ(M)に連結し、このメッセージ(M)に対して一つのハッシュを実行し、署名ダイジェストを生成する。この署名ダイジェストは、別の手法でも生成することができ、これも本発明の範囲内である。
図6は、ソフトウェアコードのためのコードイメージを生成するための処理600のフロー図を示す。処理600は、コード生成エンティティ110及び証明書機関120によって実行される。
初めに、コード生成エンティティ110がソフトウェアコードをハッシュして、コードダイジェストを得る(ブロック612)。そして、コード生成エンティティ110が、コード署名に対する要求内のコードダイジェスト、ソフトウェアID、及びハードウェアIDを送る(ブロック614)。これらは証明書機関120によって受け取られる(ブロック622)。証明書機関120は、コード秘密鍵を用いて、コードダイジェスト、ソフトウェアID、及びハードウェアIDのためのコード署名(もしもこの署名が許可されているのであれば)を生成する(ブロック624)。次に、証明書機関は、コード署名と証明書とを返信する(ブロック626)。これらは、コード生成エンティティ110によって受け取られる(ブロック632)。その後、コード生成エンティティ110は、ソフトウェアコード、ソフトウェアID、コード署名、及び証明書を用いて図2に示すようなコードイメージを作成する(ブロック634)。コード生成エンティティ110はその後、このコードイメージを無線デバイス130へ送る(ブロック636)。そして、処理が終了する。
図7は、コード署名を生成するための処理700のフロー図を示す。処理700は、図6におけるブロック622,624,626を含み、更にコード生成エンティティ110を認証し、ソフトウェアコードをハードウェアに関連付けることができるか否かを判定するブロック710を含む。処理700は、証明書機関120によって実行されうる。
証明書機関120は、コード生成エンティティ110からコード署名に対する要求を受け取る(ブロック622)。この要求は、コード生成エンティティ110のための証明書、ハードウェアID、ソフトウェアID、及びコードダイジェスト(ここでは、「CG証明書」と称される)を含む。証明書機関120は、このCG証明書に基づいてコード生成エンティティ110を認証する(ブロック712)。CG証明書に基づいてコード生成エンティティ110が認証されなかった場合(すなわち、ブロック714の答えが「No」の場合)には、エラーメッセージが返信され(ブロック720)、処理が終了する。
コード生成エンティティ110が認証された場合(すなわち、ブロック714の答えが「Yes」の場合)には、ソフトウェアダイジェスト及びソフトウェアIDによって表されるソフトウェアを、ハードウェアIDによって示されるハードウェアに関連付けることができるか否かの判定がなされる(ブロック716)。これは、上述したように、証明書機関120によって保持されているコンフィギュレーションテーブルに基づいて達成される。ソフトウェアのハードウェアへの関連付けが許可されない場合(すなわち、ブロック718の答えが「No」である場合)には、エラーメッセージが返信され(ブロック720)、処理が終了する。そうでない場合には、証明書機関120は、要求されるように、コードダイジェスト、ソフトウェアID、及びハードウェアIDに基づいて、コード署名を生成する(ブロック624)。その後、証明書機関120は、コード署名と証明書とをコード生成エンティティ110へ送る(ブロック626)。その後、処理が終了する。
図8は、コード生成エンティティ110、証明書機関120、及び無線デバイス130のブロック図を示す。コード生成エンティティ110は、コントローラ810、メモリユニット812、及び通信(comm)ユニット814を含む。コントローラ810は、コードダイジェストとコードイメージとを生成するために処理を実行する。メモリユニット812は、コントローラ810によって使用されるデータ及びプログラムコードに加えて、ソフトウェアコードを格納する。通信ユニット814は、証明書機関120及び無線デバイス130との通信を提供する。
証明書機関120は、コントローラ820と、メモリユニット822と、コード署名及び証明書とを含む。メモリユニット822は、コンフィギュレーションテーブル122と、暗号鍵124と、証明書126と、コントローラ820によって使用されるプログラムコード及びデータとを格納する。通信ユニット824は、コード生成エンティティ110との通信を提供する。
デバイス130は、例えば符号分割多元接続(CDMA)システム、グローバルシステムフォーモバイルコミュニケーション(GSM)システム、Bluetooth(登録商標)システム、複数入力複数出力(MIMO:a multiple-input multiple-output)システム、直交周波数分割多元接続(OFDMA:orthogonal frequency division multiple access)システム等のような一つ又は複数の無線通信システムと通信しうる。CDMAシステムは、例えばIS−2000(「CDMA 1x−EV」としても知られている)、IS−856(「CDMA 1xEVDO」としても知られている)、IS−95、広帯域CDMA(W−CDMA)等のような一つ又は複数のCDMA規格を実施しうる。デバイス130は、受信経路及び送信経路を経由した双方向通信を提供することができる。
送信経路の場合、モデムプロセッサ850が、デバイス130によって送信されるべきデータを処理(例えば、符号化及び変調)し、データチップを送信機ユニット(TMTR)852へ提供する。送信機ユニット852は、このデータチップを処理(例えば、アナログへの変換、フィルタ、増幅、及び周波数アップコンバート)し、変調された信号を生成する。これは、アンテナ854を経由して送信される。受信経路の場合、一つ又は複数のシステム内の基地局から送信された信号が、アンテナ854によって受信され、受信機ユニット(RCVR)856へ提供される。受信機ユニット856は、この受信信号を処理
(例えば、フィルタ、増幅、及び周波数ダウンコンバート)し、処理された信号をデジタル化し、データサンプルを、復調復号のためにモデムプロセッサ850へ提供する。
安全なユニット830は、安全な処理を実行し、デバイス130のための安全な記憶装置を提供する。図8に示す実施例では、安全なユニット830は、安全な処理とおそらくはその他の処理を実行するプロセッサ832と、ブートコードを格納する読取専用メモリ(ROM)834と、デバイス130のためのハードウェアIDを格納するユニット836と、証明書機関120のための公開鍵を格納するユニット838とを含んでいる。ユニット836及び838は、ROM、ヒューズ等を用いて実施されうる。ROM834内のブートコード、ユニット836内のハードウェアID、及びユニット838内のCA公開鍵は、図1に示すブートコード134、ハードウェアID136、及びCA公開鍵138にそれぞれ対応する。
ブートコード、ハードウェアID、およびCA公開鍵は、デバイス130のための安全なデータを構成し、安全なユニット830内の一つ又は複数の安全な記憶装置内に安全な方法(例えば、埋め込みにより)で格納される。このように、安全なデータを改竄するために安全なユニット830への潜入を試みるセキュリティ攻撃、及びエンティティのスプーフィング(例えば、ハッカー、ウィルス等)から、安全なデータが守られる。安全なユニット830は、単一の集積回路(IC)内に実装されうる。安全なユニット830は、安全及び/又は耐改竄性のあるユニット又はモジュールとしても実装されうる。
安全なユニット830は、無線デバイス130のための種々の機能を実行する特定用途向集積回路(ASIC)の一部であるかもしれない。例えば、このASICは、安全なユニット830、モデムプロセッサ850等を含みうる。プロセッサ832は、安全な処理を実行し、ブートアップ時においてソフトウェアコードの妥当性を確認する。プロセッサ832は、通常動作中その他の機能も実行する。従って、プロセッサ832は、安全な処理のみを実行する専用ユニットである必要は無い。例えば、プロセッサ832は、それ自身が、ソフトウェアコードの全て又は一部を実行するこのソフトウェアコードが関連付けられているハードウェアであるかもしれない。
コントローラ840は、種々の機能を実行し、デバイス130内の種々の処理ユニットの動作の調整及び制御を行う。例えば、コントローラ840は、モデムプロセッサ850に対して、送信経路及び受信経路のためにデータを処理するように命令しうる。メモリユニット842は、デバイス130内の種々の処理ユニットによって使用されるプログラムコード及びデータを格納する。例えば、メモリユニット842は、ソフトウェアコード、ソフトウェアID、コード署名、及び証明書を備えたコードイメージを格納する。入力/出力(I/O)ユニット844は、外部ユニットに対するインタフェースを提供する。例えば、I/Oユニット844は、コードイメージをデバイス130へロードするためのメカニズム(例えば、ユニバーサルシリアルバス(USBのようなポート)を提供するかもしれない。バス862は、デバイス130内の種々のユニットを相互接続する。
デバイス130は、デバイスに電源が入れられる毎に、コードイメージ内のソフトウェアコードが妥当なバージョンであることを保証するために、このソフトウェアコードの妥当性を確認する。プロセッサ832は、以下に記載するように、ROM834内に格納されたブートコードに基づき、安全なユニット830内に埋め込まれたCA公開鍵とハードウェアIDとを用いて妥当性確認を実行する。これによって、プロセッサ832は、ブートコード、ハードウェアID、及びCA公開鍵によって定義された知られた状態から、無線デバイス130内の信用を確立することが可能となる。プロセッサ832は、ソフトウェアの妥当性が確認された後にのみソフトウェアコードの実行を認可する。
図9は、コード署名に基づいてコードイメージ内のソフトウェアコードの妥当性確認を行う処理ユニット900を示す。処理ユニット900は、図8のプロセッサ832によって実施されうる。ユニット900内では、ハッシュ機能910が、コードイメージからソフトウェアコードを受け取ってハッシュし、コードダイジェストを提供する。ハッシュ機能910は、図3のハッシュ機能310のために使用されるものと同じハッシュアルゴリズムを実施する。ハッシュ機能920は、ハッシュ機能910からコードダイジェストと、コードイメージからソフトウェアIDと、安全なユニット830からハードウェアIDとを受け取ってハッシュし、「再生成された」署名ダイジェスト(D’)を提供する。ハッシュ機能920は、図4のハッシュ機能410に使用されたものと同じハッシュアルゴリズムを実施する。
復号化ユニット930は、コードイメージからのコード署名を、証明書からのコード公開鍵とともに受け取り、このコード公開鍵を用いて復号し、「受け取られた」署名ダイジェスト(D)を提供する。その後、比較ユニット940は、受け取られた署名ダイジェスト(D)に対して、再生成された署名ダイジェスト(D’)を比較し、妥当性確認フラグを提供する。これは、二つのダイジェストが一致する場合には「真」に、そうでない場合には「偽」に設定される。
図10は、コードイメージ内のソフトウェアコードの無線デバイス130による妥当性確認のための処理1000のフロー図を示す。処理1000は、ブートコードに基づいてプロセッサ832によって実行され、ブートアップ処理とも称される。
初めに、コードイメージから証明書が取得され、デバイス130内に格納されたCA公開鍵を用いて妥当性確認がなされる(ブロック1012)。この証明書は、証明書機関120のCA秘密鍵を用いて生成されたCA署名を含んでいる。このCA署名は、安全なユニット830内に埋め込まれた対応するCA公開鍵を用いて認証することができる。次に、このCA署名の妥当性確認がなされたのか否かの判定がなされる(ブロック1014)。答えが「No」であれば、エラーメッセージが生成され(ブロック1016)、ブートアップ処理が終了する。
もしもCA署名の妥当性が確認されれば、ブロック1020においてコード署名の妥当性が確認される。コード署名妥当性確認のために、コードイメージからソフトウェアコードが取得され、コード生成エンティティ110によって使用されたものと同じハッシュ機能310を用いてハッシュされ、コードダイジェストが取得される(ブロック1022)。コードイメージからソフトウェアIDが取得され、安全なユニット830からハードウェアIDが取得される。そして、ブロック1022で取得されたコードダイジェスト、ソフトウェアID、及びハードウェアIDが、証明書機関120によって使用されたものと同じハッシュ機能410を用いてハッシュされ、再生成された署名ダイジェスト(D’)が取得される(ブロック1024)。
証明書からコード公開鍵が取得され、コードイメージからコード署名が取得される。コード公開鍵によってCA署名が生成されるので、CA署名がCA公開鍵によって認証されるのであれば、コード公開鍵が認証される。その後、コード公開鍵を用いてコード署名が復号され、受け取られた署名ダイジェスト(D)が取得される(ブロック1026)。これは、コード署名を生成するために証明書機関120によって使用される。この受け取られた署名ダイジェスト(D)は、その後、再生成された署名ダイジェスト(D’)に対して比較される(ブロック1028)。
次に、受け取られた署名ダイジェストが、再生成された署名ダイジェストと一致するか否かが判定される(ブロック1030)。答えが「No」であれば、エラーメッセージが生成され(ブロック1016)、ブートアップ処理が終了する。そうでない場合には、ソフトウェアコードが、妥当性確認がなされたものとして示され、実行可能となり(ブロック1032)、ブートアップ処理が終了する。
ソフトウェアをハードウェアに関連付けるここに記載した技術は、種々の用途のために使用されうる。いくつかの典型的な用途を以下に記載する。
一つの用途は、安全ではないリンクを経由して無線デバイスへソフトウェアをダウンロードするためである。例えば、バグを直したり、新たな特徴や機能を与えたりなどするために、無線デバイスのためのソフトウェアを更新することが望ましいかもしれない。ここに記述した技術は、新しいバージョンのソフトウェアを、安全ではない通信リンク(例えば無線リンク)を経由して無線デバイスへ送るために使用されうる。無線デバイスは、この受信したソフトウェアが、合法的なソースからのものであり上述したような暗号技術を用いて修正されていないので、このソフトウェアの妥当性を確認することができる。この無線デバイスは、このソフトウェアを、妥当性が確認された後においてのみ実行する。
別の用途は、異なるハードウェアプラットフォームの認可された(例えばライセンスされた)使用を強化するためである。第一のエンティティは、それぞれが異なるハードウェアIDが割り当てられている種々のハードウェアプラットフォームを持ってよい。この第一のエンティティは、第二のエンティティに、ある幾つかのハードウェアプラットフォームに対するライセンスを許可し、その他の幾つかのハードウェアプラットフォームに対するライセンスを許可しない。証明書機関120によって保持されているコンフィギュレーションテーブルには、このライセンス情報が格納されうる。第二のエンティティが、特定のソフトウェア及び特定のハードウェアプラットフォームに対するコード署名を要求する場合にはいつでも、証明書機関120は、要求されたハードウェアプラットフォームについて第二のエンティティがライセンスされている場合にのみ、コード署名を生成する。このように、被許可者は、基本ハードウェアプラットフォームに対するライセンスをテイクアウトすることも、ソフトウェアを、より精巧なハードウェアプラットフォームにインストールし使用することを試みることもできない。
更に別の用途は、与えられたハードウェアプラットフォームの許可された(例えばライセンスされた)使用を強化するためである。無線デバイスのためのハードウェアは、広範な機能のセットを実行する能力を備えて設計されうる。これらの機能は、ソフトウェアによって選択的にイネーブル又はディセーブルされうる。異なる機能のセットに対して異なるライセンスが許可されうる。これらの機能のセットの各々は、異なるソフトウェアバージョンに関連付けられうる。証明書機関は、被許可者のリスト、彼らの具体的なライセンス、および各ライセンスについて許可されたソフトウェアバージョンを保持できる。証明書機関は、ライセンスされているソフトウェアコードバージョンに対してのみ署名を生成する。このように、被許可者は、基本的な機能のセットに対するライセンスをテイクアウトすることも、ソフトウェアを、より精巧な機能のセットのためにインストールし使用することを試みることもできない。
ソフトウェアをハードウェアに関連付けるためのここで記載した技術は、様々なエンティティにおいて、様々な手段によって実施されうる。例えば、これらの技術は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせを用いて実施されうる。ハードウェア実施の場合、(コード生成エンティティ110及び証明書機関120において)ソフトウェアのハードウェアへの関連付けを達成し、(デバイス130において)この関連付けの妥当性確認を行うために使用される処理ユニットは、特定用途向集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、ここで述べた機能を実施するように設計されたその他の電子部品、又はこれらの組み合わせ内に実装されうる。
ソフトウェア実施の場合、ここで記載した技術は、ここで記載した機能を実行するモジュール(例えば、処理、機能等)を用いて実施されうる。ソフトウェアコードは、メモリユニット(例えば、図8のメモリユニット812,822,842)内に格納され、プロセッサ(例えば、コントローラ810,820,840、及びプロセッサ832)によって実行されうる。メモリユニットは、プロセッサ内に、又はプロセッサの外部に実装されうる。いずれの場合であれ、当該技術分野で周知である様々な手段によって、プロセッサに通信可能なように接続されることが可能である。
前述した開示された実施例は、当該技術分野における熟練者が、本発明を活用又は利用することができるように提供された。これらの実施例に対する種々の変形は、当該技術分野における熟練者には容易に明らかになるであろう。そして、ここで定義された一般的な原理は、本発明の精神又は範囲から逸脱することなく、その他の実施例にも適用されうる。従って、本発明は、ここに示した実施例に限定されることを意図しているのではなく、ここで開示した原理及び斬新な特徴に一致した最も広い範囲が与えられることになる。
図1は、ソフトウェアをハードウェアに関連付ける様々なエンティティ機能を用いた設定を示す。 図2は、無線デバイスに送られ、無線デバイスに格納されるコードイメージを示す。 図3は、ソフトウェアのためのコードイメージを生成する処理を示す。 図4は、コード署名を生成するためのユニットを示す。 図5は、コード署名のために使用されるダイジェストを生成するためのユニットを示す。 図6は、ソフトウェアのためのコードイメージを生成するための処理を示す。 図7は、コード署名を生成するための処理を示す。 図8は、コード生成エンティティ、証明書機関、及び無線デバイスのブロック図を示す。 図9は、コード署名に基づいてソフトウェアの妥当性確認を行うためのユニットを示す。 図10は、無線デバイスによってソフトウェアの妥当性確認を行うための処理を示す。

Claims (30)

  1. ハードウェアにおけるソフトウェアの実行が許可されているか否かを判定する方法であって、
    証明書機関において、前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを、前記ハードウェアを備えるデバイスが確認することと、
    前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記ソフトウェアを識別する第一の識別子、及び前記ハードウェアを識別する第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより生成された第一の署名を、前記デバイスが取得することと、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書であって、前記証明書機関を認証するための第二の秘密鍵を用いて暗号化されることにより生成された証明書を前記デバイスが取得することと、
    前記デバイスが、前記第二の秘密鍵に対応する第二の公開鍵を用いて前記証明書を認証することと、
    前記デバイスが、前記証明書に含まれた第一の公開鍵を用いて前記第一の署名を認証することと、
    前記証明書と前記第一の署名とが認証された場合には、前記デバイスが、前記ハードウェアにおける前記ソフトウェアの実行が許可されていると判定することと
    を備え方法。
  2. 請求項1に記載の方法において、前記第一の署名を認証することは、
    前記ソフトウェアに関連する情報、第一の識別子、及び第二の識別子をハッシュして第一のダイジェストを得ることと、
    前記第一の公開鍵を用いて前記第一の署名を復号して第二のダイジェストを得ることと、
    前記第一のダイジェストと前記第二のダイジェストとを比較し、一致する場合には、前記第一の署名を認証することと
    を含む方法。
  3. 請求項2に記載の方法において、前記第一の署名を認証することはさらに、
    前記ソフトウェアをハッシュし、前記ソフトウェアに関連する情報として使用される第三のダイジェストを得ることを含む方法。
  4. 請求項1に記載の方法において、前記第一の署名は、ハッシュベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)を含む暗号スキームを用いて生成される方法。
  5. 請求項1に記載の方法において、前記第一の識別子は、ソフトウェアリリースバージョン番号である方法。
  6. 請求項1に記載の方法において、前記ハードウェアは、集積回路である方法。
  7. 請求項1に記載の方法において、前記第二の識別子は、ハードウェアシリアル番号又は部品番号である方法。
  8. ハードウェアにおけるソフトウェアの実行が許可されているか否かを判定する装置であって、
    第一の記憶ユニットと、
    証明書機関において、前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認し、
    前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記ソフトウェアを識別する第一の識別子、及び前記ハードウェアを識別する第二の識別子に対して、第一の秘密鍵を用いて暗号化されて生成された第一の署名を取得し、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書であって、前記証明書機関を認証するための第二の秘密鍵を用いて暗号化されて生成された証明書を取得し、
    前記第一の記憶ユニットに格納された、前記第二の秘密鍵に対応する第二の公開鍵を用いて前記証明書を認証し、
    前記証明書に含まれた第一の公開鍵を用いて前記第一の署名を認証し、
    前記証明書と前記第一の署名とが認証された場合には、前記ハードウェアにおける前記ソフトウェアの実行が許可されていると判定する
    プロセッサと
    を備え装置。
  9. 請求項8に記載の装置において、前記第一の記憶ユニットは更に、前記第二の識別子を格納するように構成され、前記プロセッサは更に、
    前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第一の記憶ユニットに格納された第二の識別子をハッシュして第一のダイジェストを取得し、
    前記第一の公開鍵を用いて前記第一の署名を復号して第二のダイジェストを取得し、
    前記第一のダイジェストと前記第二のダイジェストとを比較し、一致する場合には、前記第一の署名を認証する装置。
  10. 請求項8に記載の装置において、
    前記証明書および第一の署名を認証するように前記プロセッサによって実行されるブートコードを格納する第二の記憶ユニットを更に備えた装置。
  11. 請求項10に記載の装置において、前記第一及び第二の記憶ユニットと前記プロセッサとが集積回路内に実装される装置。
  12. 無線通信デバイス内に実装される請求項8に記載の装置。
  13. ハードウェアにおけるソフトウェアの実行が許可されているか否かを判定する装置であって、
    証明書機関において、前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認する手段と、
    前記確認する手段によって、前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記ソフトウェアを識別する第一の識別子、及び前記ハードウェアを識別する第二の識別子に対して、第一の秘密鍵を用いて暗号化されて生成された第一の署名を取得する手段と、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書であって、前記証明書機関を認証するための第二の秘密鍵を用いて暗号化されて生成された証明書を取得する手段と、
    前記第一の記憶ユニットに格納された、前記第二の秘密鍵に対応する第二の公開鍵を用いて前記証明書を認証する手段と、
    前記証明書に含まれた第一の公開鍵を用いて前記第一の署名を認証する手段と、
    前記証明書と前記第一の署名とが認証された場合には、前記ハードウェアにおける前記ソフトウェアの実行が許可されていると判定する手段と
    を備える装置。
  14. 請求項13に記載の装置において、前記第一の署名を認証する手段は、
    前記ソフトウェアに関連する情報、第一の識別子、及び第二の識別子をハッシュして第一のダイジェストを得る手段と、
    前記第一の公開鍵を用いて前記第一の署名を復号して第二のダイジェストを得る手段と、
    前記第一のダイジェストと前記第二のダイジェストとを比較し、一致する場合には、前記第一の署名を認証する手段と
    を含む装置。
  15. ソフトウェアをハードウェアに関連付ける方法であって、
    証明書機関において、前記ソフトウェアを識別する第一の識別子を取得することと、
    前記証明書機関において、前記ハードウェアを識別する第二の識別子を取得することと、
    前記証明書機関において、前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認することと、
    前記証明書機関において、前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより第一の署名を生成することとを備え、
    前記第一の署名は、前記ハードウェアにおける前記ソフトウェアの実行が許可されているかを判定するために使用される方法。
  16. 請求項15に記載の方法において、
    前記ハードウェアを備えるデバイスにおいて、前記ソフトウェアに関連する情報、第一の識別子、及び第二の識別子をハッシュして第一のダイジェストを得ることをさらに備え方法。
  17. 請求項15に記載の方法において、前記第一の署名は、ハッシュベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)を含む暗号スキームを用いて生成される方法。
  18. 請求項15に記載の方法において、
    前記証明書機関が、第一の公開鍵と第二の署名とを含む証明書を提供することを更に備え、
    前記第二の署名は、前記証明書機関を認証するための第二の秘密鍵を用いて前記第一の公開鍵に対してなされる方法。
  19. 請求項15に記載の方法において、
    前記証明書機関において、前記第一の署名を生成する前に、前記第一の署名を求める要求を、エンティティから受け取ることと、
    前記証明書機関において、前記要求に応じて前記第一の署名を生成する前に、前記エンティティを認証することと
    を更に備えた方法。
  20. ソフトウェアをハードウェアに関連付ける装置であって、
    前記ソフトウェアに関連する情報、前記ソフトウェアを識別する第一の識別子、及び前記ハードウェアを識別する第二の識別子を、コード生成エンティティから取得する通信ユニットと、
    前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを格納するメモリユニットと、
    前記メモリユニットに格納されたコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認し、前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより第一の署名を生成するコントローラを備え、
    前記第一の署名は、前記ハードウェアにおける前記ソフトウェアの実行が許可されているかを判定するために使用される装置。
  21. 請求項20に記載の装置において、前記コントローラは更に、前記第一の署名を生成する前に前記コード生成エンティティを認証する装置。
  22. ソフトウェアをハードウェアに関連付ける装置であって、
    前記ソフトウェアを識別する第一の識別子を取得する手段と、
    前記ハードウェアを識別する第二の識別子を取得する手段と、
    前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認する手段と、
    前記確認する手段によって、前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより第一の署名を生成する手段とを備え、
    前記第一の署名は、前記ハードウェアにおける前記ソフトウェアの実行が許可されているかを判定するために使用される装置。
  23. 請求項22に記載の装置において、
    前記第一の署名を求める要求をエンティティから受け取る手段と、
    前記第一の署名を生成する前に、前記エンティティを認証する手段と
    を更に備えた装置。
  24. ソフトウェアをハードウェアに関連付ける方法であって、
    コード生成エンティティが、前記ソフトウェアに関連する情報を提供することと、
    前記コード生成エンティティが、前記ソフトウェアを識別する第一の識別子を提供することと、
    前記コード生成エンティティが、前記ハードウェアを識別する第二の識別子を提供することと、
    前記コード生成エンティティが、前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認することと、
    前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより生成された第一の署名を、前記コード生成エンティティが受け取ることと、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書であって、前記証明書を作成した証明書機関を認証するための第二の秘密鍵を用いて暗号化されて生成された証明書を、前記コード生成エンティティが受け取ることと、
    前記コード生成エンティティが、前記ソフトウェア、前記第一の署名、及び前記証明書を含むイメージを作成することと
    を備えた方法。
  25. 請求項24に記載の方法において、
    前記コード生成エンティティが、前記ソフトウェアをハッシュし、前記ソフトウェアに関連する情報として使用される第一のダイジェストを取得することを更に備えた方法。
  26. 請求項25に記載の方法において、
    前記第一の署名は、前記証明書機関において、ハッシュベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)を含む暗号スキームを用いて生成され、
    前記ハッシュベースのメッセージ認証コードは、第一のダイジェスト、前記第一の識別子、及び前記第二の識別子を用いて、前記第一の署名を生成するための第二のダイジェストを提供する方法。
  27. ソフトウェアをハードウェアに関連付ける装置であって、
    前記ソフトウェアに関連する情報、前記ソフトウェアを識別する第一の識別子、及び前記ハードウェアを識別する第二の識別子を提供し、
    前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認し、
    前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェアに関連する情報、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより生成された第一の署名を取得し、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書を取得する通信ユニットと、
    前記ソフトウェア、前記第一の署名、及び前記証明書を含むイメージを作成するコントローラと
    を備えた装置。
  28. 請求項27に記載の装置において、前記コントローラは更に、前記ソフトウェアをハッシュし、前記ソフトウェアに関連する情報として使用されるダイジェストを取得する装置。
  29. ソフトウェアをハードウェアに関連付ける装置であって、
    前記ソフトウェアに関連する情報を提供することと、
    前記ソフトウェアを識別する第一の識別子を提供する手段と、
    前記ハードウェアを識別する第二の識別子を提供する手段と、
    前記ソフトウェアの少なくとも一つのバージョンと、前記ハードウェアの少なくとも一つのプラットフォームとの間の許可された関連付けを定義したコンフィギュレーションテーブルを用いて、前記ソフトウェアと前記ハードウェアとが関連付けられているかを確認する手段と、
    前記ソフトウェアと前記ハードウェアとが関連付けられていると確認された場合、前記ソフトウェア、前記第一の識別子、及び前記第二の識別子に対して、第一の秘密鍵を用いて暗号化することにより生成された第一の署名を受け取る手段と、
    前記第一の署名に使用された第一の秘密鍵に対応する第一の公開鍵を含む証明書を受け取る手段と、
    前記ソフトウェア、前記第一の署名、及び前記証明書を含むイメージを作成する手段と
    を備えた装置。
  30. 請求項29に記載の装置において、
    前記ソフトウェアをハッシュして、前記ソフトウェアに関連する情報として使用される第一のダイジェストを取得する手段を更に備えた装置。
JP2006509824A 2003-04-08 2004-04-08 暗号を使ってソフトウェアをハードウェアに関連付けること Expired - Lifetime JP4814083B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US46134103P 2003-04-08 2003-04-08
US60/461,341 2003-04-08
US10/815,256 US8041957B2 (en) 2003-04-08 2004-03-31 Associating software with hardware using cryptography
US10/815,256 2004-03-31
PCT/US2004/010867 WO2004092886A2 (en) 2003-04-08 2004-04-08 Associating software with hardware using cryptography

Publications (2)

Publication Number Publication Date
JP2006522988A JP2006522988A (ja) 2006-10-05
JP4814083B2 true JP4814083B2 (ja) 2011-11-09

Family

ID=33555123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509824A Expired - Lifetime JP4814083B2 (ja) 2003-04-08 2004-04-08 暗号を使ってソフトウェアをハードウェアに関連付けること

Country Status (6)

Country Link
US (1) US8041957B2 (ja)
EP (1) EP1618451B1 (ja)
JP (1) JP4814083B2 (ja)
CA (1) CA2521821A1 (ja)
RU (1) RU2356169C2 (ja)
WO (1) WO2004092886A2 (ja)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7885896B2 (en) 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
US7966520B2 (en) * 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7698225B2 (en) * 2002-08-30 2010-04-13 Avaya Inc. License modes in call processing
US7707116B2 (en) * 2002-08-30 2010-04-27 Avaya Inc. Flexible license file feature controls
US7681245B2 (en) * 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US7890997B2 (en) * 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
US7260557B2 (en) * 2003-02-27 2007-08-21 Avaya Technology Corp. Method and apparatus for license distribution
US20040250073A1 (en) * 2003-06-03 2004-12-09 Cukier Johnas I. Protocol for hybrid authenticated key establishment
US20050171961A1 (en) * 2004-01-30 2005-08-04 Microsoft Corporation Fingerprinting software applications
US7836121B2 (en) * 2004-04-14 2010-11-16 Ipass Inc. Dynamic executable
US20050235357A1 (en) * 2004-04-19 2005-10-20 Securemedia International Preventing cloning of high value software using embedded hardware and software functionality
US8554889B2 (en) * 2004-04-21 2013-10-08 Microsoft Corporation Method, system and apparatus for managing computer identity
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
GB2414138B (en) * 2004-05-12 2006-11-22 Nec Technologies Software update apparatus and method
US7818574B2 (en) * 2004-09-10 2010-10-19 International Business Machines Corporation System and method for providing dynamically authorized access to functionality present on an integrated circuit chip
US7707405B1 (en) 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US7747851B1 (en) * 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US10477151B2 (en) 2004-10-18 2019-11-12 Inside Secure Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
EP1813107B1 (en) 2004-10-18 2015-03-18 Syphermedia International, Inc. Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US20060107327A1 (en) * 2004-11-16 2006-05-18 Sprigg Stephen A Methods and apparatus for enforcing application level restrictions on local and remote content
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8666900B1 (en) * 2005-03-30 2014-03-04 Intuit Inc. Secure product enablement over channels with narrow bandwidth
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US7814023B1 (en) 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
US8966284B2 (en) * 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
CN102142070B (zh) * 2005-09-14 2013-11-06 桑迪士克科技公司 存储卡控制器固件的硬件驱动器完整性检查
US7921303B2 (en) 2005-11-18 2011-04-05 Qualcomm Incorporated Mobile security system and method
DE602005019307D1 (de) * 2005-11-29 2010-03-25 Research In Motion Ltd Überprüfung von drahtloser Zugangssoftware mittels Hashing von Kennungen
US7389426B2 (en) * 2005-11-29 2008-06-17 Research In Motion Limited Mobile software terminal identifier
US20070162964A1 (en) * 2006-01-12 2007-07-12 Wang Liang-Yun Embedded system insuring security and integrity, and method of increasing security thereof
US7970138B2 (en) 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
US20080008321A1 (en) * 2006-07-10 2008-01-10 Syphermedia International, Inc. Conditional access enhancements using an always-on satellite backchannel link
US20080080711A1 (en) * 2006-09-28 2008-04-03 Syphermedia International, Inc. Dual conditional access module architecture and method and apparatus for controlling same
US7900032B2 (en) * 2006-10-06 2011-03-01 Broadcom Corporation Method and system for NAND flash support in autonomously loaded secure reprogrammable system
US8761393B2 (en) * 2006-10-13 2014-06-24 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US9277259B2 (en) 2006-10-13 2016-03-01 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
WO2008057433A2 (en) * 2006-11-02 2008-05-15 Wms Gaming Inc. Data protection in a wagering game machine
US9509512B1 (en) * 2006-12-22 2016-11-29 Marvell International Ltd. Message digest generator
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8307411B2 (en) * 2007-02-09 2012-11-06 Microsoft Corporation Generic framework for EAP
WO2008133824A1 (en) * 2007-04-23 2008-11-06 Thomson Licensing Method and apparatus for software downloads in a network
US8560823B1 (en) 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
US9112681B2 (en) * 2007-06-22 2015-08-18 Fujitsu Limited Method and apparatus for secure information transfer to support migration
US8620818B2 (en) * 2007-06-25 2013-12-31 Microsoft Corporation Activation system architecture
US8528109B2 (en) * 2007-10-09 2013-09-03 Microsoft Corporation Optimizing amount of data passed during software license activation
US20090119744A1 (en) * 2007-11-01 2009-05-07 Microsoft Corporation Device component roll back protection scheme
KR101252921B1 (ko) * 2008-03-04 2013-04-09 애플 인크. 사업자에게 부여된 자격들에 기초하여 장치 내의 소프트웨어 코드의 실행을 인가하는 시스템 및 방법
US20090259855A1 (en) * 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US20090262926A1 (en) * 2008-04-16 2009-10-22 Infineon Technologies Ag Method and apparatus for generating a cryptographic key
JP2009260688A (ja) * 2008-04-17 2009-11-05 Dialogue Technology Corp ワイヤレス広域通信網におけるリモート端末装置のセキュリティシステムとその方法
US9256728B2 (en) * 2008-11-26 2016-02-09 Nokia Technologies Oy Method, apparatus, and computer program product for managing software versions
US8442218B2 (en) * 2009-02-27 2013-05-14 Red Hat, Inc. Method and apparatus for compound hashing via iteration
US8984296B1 (en) * 2009-03-29 2015-03-17 Cypress Semiconductor Corporation Device driver self authentication method and system
US20110099423A1 (en) * 2009-10-27 2011-04-28 Chih-Ang Chen Unified Boot Code with Signature
EP2341459A1 (en) * 2010-01-04 2011-07-06 Thomson Licensing Method and device for detecting if a computer file has been copied and method and device for enabling such detection
US8955152B1 (en) 2010-09-07 2015-02-10 Symantec Corporation Systems and methods to manage an application
US8832855B1 (en) * 2010-09-07 2014-09-09 Symantec Corporation System for the distribution and deployment of applications with provisions for security and policy conformance
US9043863B1 (en) 2010-09-07 2015-05-26 Symantec Corporation Policy enforcing browser
US20120158415A1 (en) * 2010-12-17 2012-06-21 Flexera Software Inc. method and system for license server synchronization
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US9246910B2 (en) 2011-05-06 2016-01-26 Nokia Technologies Oy Determination of apparatus configuration and programming data
US20130031371A1 (en) * 2011-07-25 2013-01-31 Alcatel-Lucent Usa Inc. Software Run-Time Provenance
US8631239B2 (en) * 2012-01-12 2014-01-14 Facebook, Inc. Multiple system images for over-the-air updates
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
US9152957B2 (en) 2012-03-23 2015-10-06 The Toronto-Dominion Bank System and method for downloading an electronic product to a pin-pad terminal after validating an electronic shopping basket entry
US9760939B2 (en) 2012-03-23 2017-09-12 The Toronto-Dominion Bank System and method for downloading an electronic product to a pin-pad terminal using a directly-transmitted electronic shopping basket entry
US9842335B2 (en) 2012-03-23 2017-12-12 The Toronto-Dominion Bank System and method for authenticating a payment terminal
US8954732B1 (en) 2012-06-27 2015-02-10 Juniper Networks, Inc. Authenticating third-party programs for platforms
GB2508052A (en) 2012-11-18 2014-05-21 Nds Ltd Glitch resistant device
US9116841B2 (en) * 2012-11-28 2015-08-25 Infineon Technologies Ag Methods and systems for securely transferring embedded code and/or data designed for a device to a customer
EP2750065A1 (en) * 2012-12-27 2014-07-02 Telefonica S.A. Method, system and computer program product for managing operations of service terminals
US9609080B2 (en) * 2013-03-12 2017-03-28 Cyberlink Corp. Systems and methods for device identity delegation for application software
US9088574B2 (en) * 2013-07-18 2015-07-21 International Business Machines Corporation Subscriber identity module-based authentication of a wireless device and applications stored thereon
WO2015013474A2 (en) 2013-07-25 2015-01-29 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
CN103455401B (zh) * 2013-08-25 2015-11-04 浙江大学 一种dsp和fpga紧耦合架构的协同验证方法
US9390246B2 (en) * 2013-09-25 2016-07-12 Intel Corporation Creating secure original equipment manufacturer (OEM) identification
US9961073B2 (en) * 2013-09-30 2018-05-01 Digicert, Inc. Dynamic certificate generation on a certificate authority cloud
US9760501B2 (en) * 2014-11-05 2017-09-12 Google Inc. In-field smart device updates
CN105765897B (zh) * 2014-11-06 2019-06-28 华为技术有限公司 一种安全信息配制方法、安全验证方法以及相关芯片
US10149159B1 (en) * 2015-03-19 2018-12-04 Proxidyne, Inc. Trusted beacon system and method
US9887842B2 (en) 2015-06-30 2018-02-06 International Business Machines Corporation Binding software application bundles to a physical execution medium
JP2018534629A (ja) * 2015-11-22 2018-11-22 アンバウンド テック リミテッド ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法
DE102015225651A1 (de) * 2015-12-17 2017-06-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Übertragen einer Software
US10484181B2 (en) * 2016-12-12 2019-11-19 Datiphy Inc. Streaming non-repudiation for data access and data transaction
US10491401B2 (en) * 2017-02-21 2019-11-26 Google Llc Verification of code signature with flexible constraints
US10558812B2 (en) 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
US10938560B2 (en) 2017-06-21 2021-03-02 Microsoft Technology Licensing, Llc Authorization key escrow
US10440006B2 (en) 2017-06-21 2019-10-08 Microsoft Technology Licensing, Llc Device with embedded certificate authority
US11374760B2 (en) 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
US10638313B2 (en) * 2017-10-26 2020-04-28 Robert Bosch Gmbh Systems and methods for confirming a cryptographic key
TWI716918B (zh) * 2019-06-27 2021-01-21 旺宏電子股份有限公司 電子裝置、記憶體裝置及其記憶資料的讀取方法
US10897361B1 (en) * 2019-09-04 2021-01-19 Garantir LLC Automated hash validation
JP2022025599A (ja) * 2020-07-29 2022-02-10 キヤノン株式会社 情報処理装置、アプリケーションの起動方法及びプログラム
US20220222348A1 (en) * 2021-01-13 2022-07-14 Microsoft Technology Licensing, Llc Attesting update of a firmware layer
US11057215B1 (en) 2021-01-27 2021-07-06 Garantir LLC Automated hash validation
EP4037284A1 (de) * 2021-02-02 2022-08-03 Siemens Mobility GmbH Verfahren, vorrichtungen und computerprogrammprodukt zum ausführen einer software auf einem rechner für eine steuerung eines technischen systems, insbesondere eines systems zur bahnsteuerung
US11451402B1 (en) 2021-07-29 2022-09-20 IPAssets Technology Holdings Inc. Cold storage cryptographic authentication apparatus and system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083297A (ja) * 1996-05-20 1998-03-31 Fujitsu Ltd ソフトウェアコピー処理装置、ソフトウェアコピー処理方法およびソフトウェアをコピーするプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JPH11345117A (ja) * 1998-05-19 1999-12-14 Internatl Business Mach Corp <Ibm> プログラムの不正実行防止機能付きプロセッサ、プロセッサが実行するインストラクション、及びプログラムの不正実行防止方法
JP2001243062A (ja) * 2000-03-01 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> アプリケーションプログラム管理方法及びシステム及びアプリケーションプログラム管理プログラムを格納した記憶媒体
JP2002023876A (ja) * 2000-07-07 2002-01-25 Matsushita Electric Works Ltd 電子機器組み込みソフトウェアの保護方法及び電子機器
JP2002312052A (ja) * 2001-04-13 2002-10-25 Nippon Telegraph & Telephone West Corp コンピュータプログラム、コンピュータプログラムの生成方法、コンピュータプログラムの提供方法
JP2003084984A (ja) * 2001-09-12 2003-03-20 Canon Inc 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658093A (en) 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US5398285A (en) * 1993-12-30 1995-03-14 Motorola, Inc. Method for generating a password using public key cryptography
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US5805699A (en) 1996-05-20 1998-09-08 Fujitsu Limited Software copying system
JPH10311773A (ja) 1997-05-09 1998-11-24 Natl Aerospace Lab 衝撃波位置推定方法および衝撃波位置推定装置
WO1999015947A1 (en) 1997-09-19 1999-04-01 Hyo Joon Park Software license control system based on independent software registration server
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US6510236B1 (en) * 1998-12-11 2003-01-21 International Business Machines Corporation Authentication framework for managing authentication requests from multiple authentication devices
US6711684B1 (en) * 1999-06-08 2004-03-23 General Instrument Corporation Variable security code download for an embedded processor
US6460023B1 (en) 1999-06-16 2002-10-01 Pulse Entertainment, Inc. Software authorization system and method
US6728880B1 (en) * 1999-09-17 2004-04-27 Adobe Systems Incorporated Secure time on computers with insecure clocks
US7177421B2 (en) * 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method
US20020136401A1 (en) * 2000-07-25 2002-09-26 Jeffrey Hoffstein Digital signature and authentication method and apparatus
US6931545B1 (en) 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US20020150253A1 (en) * 2001-04-12 2002-10-17 Brezak John E. Methods and arrangements for protecting information in forwarded authentication messages
US7114051B2 (en) * 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
GB2391082B (en) * 2002-07-19 2005-08-03 Ritech Internat Ltd Portable data storage device with layered memory architecture
EP1597905A1 (en) 2003-02-20 2005-11-23 Ase R &amp; D Europe Method for offering time on smart card and method for time registration by means of mobile communication device
TW200502758A (en) * 2003-07-07 2005-01-16 Yuen Foong Paper Co Ltd Portable secure information accessing system and method thereof
US7321957B2 (en) * 2003-10-24 2008-01-22 Intel Corporation Debugging a trusted component in a system
TWI234979B (en) 2003-12-19 2005-06-21 Inst Information Industry Digital content protection method
US20050138409A1 (en) * 2003-12-22 2005-06-23 Tayib Sheriff Securing an electronic device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083297A (ja) * 1996-05-20 1998-03-31 Fujitsu Ltd ソフトウェアコピー処理装置、ソフトウェアコピー処理方法およびソフトウェアをコピーするプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JPH11345117A (ja) * 1998-05-19 1999-12-14 Internatl Business Mach Corp <Ibm> プログラムの不正実行防止機能付きプロセッサ、プロセッサが実行するインストラクション、及びプログラムの不正実行防止方法
JP2001243062A (ja) * 2000-03-01 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> アプリケーションプログラム管理方法及びシステム及びアプリケーションプログラム管理プログラムを格納した記憶媒体
JP2002023876A (ja) * 2000-07-07 2002-01-25 Matsushita Electric Works Ltd 電子機器組み込みソフトウェアの保護方法及び電子機器
JP2002312052A (ja) * 2001-04-13 2002-10-25 Nippon Telegraph & Telephone West Corp コンピュータプログラム、コンピュータプログラムの生成方法、コンピュータプログラムの提供方法
JP2003084984A (ja) * 2001-09-12 2003-03-20 Canon Inc 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体

Also Published As

Publication number Publication date
US8041957B2 (en) 2011-10-18
EP1618451B1 (en) 2014-05-07
JP2006522988A (ja) 2006-10-05
EP1618451A4 (en) 2009-05-13
RU2005134362A (ru) 2006-05-27
WO2004092886A3 (en) 2005-12-01
US20050005098A1 (en) 2005-01-06
CA2521821A1 (en) 2004-10-28
RU2356169C2 (ru) 2009-05-20
EP1618451A2 (en) 2006-01-25
WO2004092886A2 (en) 2004-10-28

Similar Documents

Publication Publication Date Title
JP4814083B2 (ja) 暗号を使ってソフトウェアをハードウェアに関連付けること
WO2021013245A1 (zh) 一种数据密钥保护方法、***及电子设备和存储介质
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
JP6332970B2 (ja) 安全なソフトウェアの更新のためのシステム及び方法
JP4856080B2 (ja) データ処理装置へのデータのセキュリティ上安全なロード及び格納
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
CN105144626B (zh) 提供安全性的方法和设备
CN1276319C (zh) 一种保护电子装置的方法,保护***及电子装置
US11218299B2 (en) Software encryption
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US20080077592A1 (en) method and apparatus for device authentication
EP1712992A1 (en) Updating of data instructions
WO2005112340A1 (en) Management of signing privileges for a cryptographic signing service
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
TW201735578A (zh) 受控的安全碼認證
KR20090013734A (ko) 소프트웨어 정의 무선장치, 및 소프트웨어 갱신 방법, 및소프트웨어 정의 무선시스템
JP2016152623A (ja) 操作から保護する方法
US8774407B2 (en) System and method for executing encrypted binaries in a cryptographic processor
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
CN113094686A (zh) 认证方法及相关设备、计算机可读存储介质
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
GB2561374A (en) Storing data on target data processing devices
JP2007517289A (ja) ソフトウェア用のデジタル署名防護
CN116710914A (zh) 边缘设备的密钥撤销
KR20070017455A (ko) 프로세서 내에서의 보호된 리소스들로의 억세스에 대한안전한 보호 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100817

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

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

R150 Certificate of patent or registration of utility model

Ref document number: 4814083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term