JP6321023B2 - 内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるための方法 - Google Patents

内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるための方法 Download PDF

Info

Publication number
JP6321023B2
JP6321023B2 JP2015540903A JP2015540903A JP6321023B2 JP 6321023 B2 JP6321023 B2 JP 6321023B2 JP 2015540903 A JP2015540903 A JP 2015540903A JP 2015540903 A JP2015540903 A JP 2015540903A JP 6321023 B2 JP6321023 B2 JP 6321023B2
Authority
JP
Japan
Prior art keywords
lafvn
firmware
fvn
secure element
nfc device
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.)
Active
Application number
JP2015540903A
Other languages
English (en)
Other versions
JP2015533444A (ja
JP2015533444A5 (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 JP2015533444A publication Critical patent/JP2015533444A/ja
Publication of JP2015533444A5 publication Critical patent/JP2015533444A5/ja
Application granted granted Critical
Publication of JP6321023B2 publication Critical patent/JP6321023B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Description

[0001]本開示の態様は、ニアフィールド通信(NFC:Near Field Communication)技術を用いたデバイスに関する。NFC技術は、異なるデバイスを互いに接触させることまたはそれらを極近傍に持ってくることによって、異なるデバイス間の無線通信を確立することができる。NFCは双方向通信を可能にする。たとえば、両方のデバイスが電力供給されたとき、NFCピアツーピア通信が行われることがある。さらに、NFCデバイスと電力供給されないNFCチップとの間の通信も可能である。たとえば、NFCは、イニシエータ(initiator)とターゲットとを伴うことができ、ここで、イニシエータは、受動ターゲット(たとえば、タグ、キーフォブ、カード)に電力供給することができる無線周波数フィールドを生成する。
[0002]NFC技術は、支払トランザクションなど、セキュアトランザクションにおける情報交換を可能にすることができる。NFC対応モバイルデバイスは、クレジットカードと電子チケットスマートカードとにおいて現在使用されているものと同様の、非接触支払システムにおいて使用され得る。たとえば、NFC対応モバイルデバイスは、ユーザが、金融口座を仮想財布に記憶することと、次いで、そのような支払方法を受け付ける端末においてNFC対応モバイルデバイスを使用することとを可能にする。NFC対応モバイルデバイスはまた、物理的アクセス(たとえば、ホテルの部屋)または制御(たとえば、車を始動させること)のいずれかのための旧来の鍵に取って代わることなど、アクセス制御のための識別情報として使用され得る。NFCは他のタイプの情報を可能にすることができる(たとえば、モバイルフォン間でメディアを転送すること、会場入場のためのチケット発行)。
[0003]NFC対応モバイルデバイスがセキュアトランザクションに関与することができるとすれば、NFC対応モバイルデバイスが悪意のある攻撃から保護されることは重要である。ソフトウェアセキュリティは、概して、システム内で複数の手法を階層化することによって与えられるが、重要な考慮事項は、システムがソフトウェアの最新で最もセキュアなバージョンを実行しているべきであることである。
[0004]システムに対して通常使用される攻撃ベクトルはロールバック攻撃(rollback attack)であり、ロールバック攻撃では、システムは、最新バージョンではなく、より古い、非セキュアソフトウェアバージョンを実行させられる。より古いソフトウェアバージョンを実行することは、システムを潜在的攻撃に対してより脆弱にすることがある。したがって、ロールバック攻撃を防ぐために、ソフトウェアを更新またはインストールするときに、最新のソフトウェアバージョンがインストールされる必要がある。
[0005]アンチロールバック保護のための現在の手法は、モバイルデバイスのオペレーティングシステムが、インストールまたは更新されているソフトウェアのバージョン番号を検査するためのものである。しかしながら、攻撃者が、オペレーティングシステムにおける脆弱性を見つけて、コードを改ざんし、この保護機構をオーバーライド(override)することは、容易であり得る。
[0006]別の手法は、「最後にインストールされたバージョン」情報を与えるためにe−Fuse技術を使用することである。e−Fuseは物理的に書き直され得ないので、それらはかなりセキュアである。しかしながら、この手法は、一般に固定で比較的低い数の利用可能なヒューズがあり、これらが使い果たされると、さらなるアンチロールバック保護が提供され得ないので、いくつかの欠点を有する。したがって、e−Fuseが正しい改訂番号で更新され得ないと、ロールバック攻撃の可能性がある。
[0007]たとえば、バージョン番号の更新があるたびに、e−Fuseは新しいバージョン番号で更新される。したがって、e−Fuse技術が10個の更新を可能にする場合、第11の更新時に、新しいバージョン番号がe−Fuseに記憶され得ない。
[0008]さらに、e−Fuse手法では、チップへの物理的アクセスが必要とされ、これは単一のチップ上にしか実装され得ない。したがって、e−Fuse手法はスケーラブルではない。e−Fuse手法では、その実装は、チップ製造工場において行われる必要がある。
[0009]内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるいくつかの実施形態について説明する。
[0010]本発明の様々な実施形態は、ロールバック攻撃を防ぐために、デバイス上にダウンロードされている新しいファームウェアバージョンが前のバージョンよりも高いことを保証する。ファームウェアバージョンが増分的に増加するので、潜在的ファームウェアアップグレードバージョンをセキュア要素環境に記憶されたバージョン番号と比較することによって、デバイスはロールバック攻撃から保護され得る。さらに、バージョン番号がモバイルデバイスのセキュア要素環境に記憶されるので、本発明は、デバイスが内部不揮発性メモリなしであるときでも、起動中にアンチロールバック保護を与える。さらに、本発明の実施形態は、ソフトウェアおよびハードウェア攻撃から保護することができる。
[0011]一実施形態は、デバイスにおいてアンチロールバック保護を与えるための方法であって、デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN:firmware version number)を取得することと、ここにおいて、デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号(LAFVN:lowest acceptable firmware version number)を取得することと、ここにおいて、LAFVNがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、FVNとLAFVNとを比較し、ここにおいて、FVNがLAFVNよりも小さい場合、第1のファームウェアインスタレーションを可能にしないこととを備える方法からなる。
[0012]別の実施形態は、アンチロールバック保護を与えるためのデバイスであって、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されたとき、本デバイスに、本デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、本デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、LAFVNがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、FVNとLAFVNとを比較し、ここにおいて、FVNがLAFVNよりも小さい場合、第1のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ可読命令を記憶するメモリとを備えるデバイスからなる。
[0013]別の実施形態は、実行されたとき、デバイスに、デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、LAFVNがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、FVNとLAFVNとを比較し、ここにおいて、FVNがLAFVNよりも小さい場合、第1のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体からなる。
[0014]別の実施形態は、アンチロールバック保護を与えるためのデバイスであって、1つまたは複数のプロセッサと、本デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得するための手段と、ここにおいて、本デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号(LAFVN)を取得するための手段と、ここにおいて、LAFVNがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、FVNとLAFVNとを比較し、ここにおいて、FVNがLAFVNよりも小さい場合、第1のファームウェアインスタレーションを可能にしないための手段とを備えるデバイスからなる。
[0015]本開示の態様が例として示される。添付の図では、同様の参照番号が同様の要素を示す。
[0016]1つまたは複数の実施形態を組み込み得る、NFC対応モバイルデバイスを用いたシステムの簡略図。 [0017]1つまたは複数の実施形態を組み込み得る、少なくとも2つのNFC対応モバイルデバイスを用いたピアツーピア通信システムの簡略図。 [0018]本発明の一実施形態による、NFC対応モバイルデバイスを示すブロック図。 [0019]本発明の別の実施形態による、NFC対応モバイルデバイスを示すブロック図。 [0020]本発明の別の実施形態による、NFC対応モバイルデバイスを示すブロック図。 [0021]いくつかの実施形態による、アンチロールバック保護を与える例示的な方法を示す図。 [0022]いくつかの実施形態による、システムレベルフローチャートの一例を示す図。 [0023]いくつかの実施形態による、NFCC起動と、ファームウェアインスタレーションと、署名認証との一例を示す図。 [0024]いくつかの実施形態による、セキュア環境に記憶された最後にインストールされたファームウェアバージョンの番号を更新する例示的な方法の図。 [0025]いくつかの実施形態による、強制更新の後にセキュア環境に記憶された最後にインストールされたファームウェアバージョンの番号を更新する例示的な方法の図。 [0026]1つまたは複数の実施形態が実装され得る、コンピューティングシステムの一例を示す図。
[0027]次に、本出願の一部を形成する、添付の図面に関していくつかの例示的な実施形態について説明する。本開示の1つまたは複数の態様が実装され得る、特定の実施形態について以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨を逸脱することなく、他の実施形態が使用され得、様々な変更が行われ得る。
[0028]NFC技術は、NFCコントローラ(NFCC:NFC controller)が機密のまたは有益な情報(たとえば支払トランザクション)のためのトランスポートとして使用されることを必要とすることがある。しかしながら、NFC技術はまた、盗聴に対して脆弱であり得る。したがって、NFCCは、トランスポートするためにNFCCが使用される、データに対する攻撃ベクトルとして使用されることなど、盗聴からセキュアである必要がある。特に、NFCCが、それがトランスポートするデータに対する中間者(MITM:Man-in-the-Middle)攻撃のホストとして使用され得ないことを保証することが望ましい。
[0029]MITM攻撃は、攻撃者が、被害者(たとえば、イニシエータ、ターゲット)との独立した接続を行い、それらの間でメッセージを中継する形態の、アクティブ盗聴であり、実際は会話が攻撃者によって制御されるとき、被害者が直接互いに話していると被害者に信じさせる。
[0030]MITM攻撃は、NFCCがファームウェアのより古いバージョンを実行している場合、特に、より古いバージョンが既知のセキュリティ問題を有するとき、NFCCによってホストされ得る。たとえば、ファームウェア更新中に、モバイルデバイス上で実行している高レベルアプリケーションがNFCCを構成し、NFCC上でのファームウェアインスタレーション(たとえば、パッチ)を要求することができる。しかしながら、攻撃者は、NFCC上のファームウェアをより古いバージョンにロールバックするためにそのファームウェアインスタレーション要求を使用することができる。高レベルアプリケーションは、NFCC(たとえば、NFCコントローラインターフェース(NCI:NFC Controller Interface))と通信するために標準プロトコルを使用し得るか、または高レベルアプリケーションはプロプライエタリ機構を使用し得る。本発明は、ファームウェアインスタレーション中にアンチロールバック保護を与えることができる。
[0031]図1Aに、1つまたは複数の実施形態を組み込み得る、NFC対応モバイルデバイスを用いたシステムの簡略図を示す。
[0032]図1Aに示された、本発明の一実施形態によるNFCモジュール140が、モバイルデバイス110中に取り付けられ得る。モバイルデバイス110は、アプリケーションプロセッサ120と加入者識別モジュール(SIM)カード130とをも含むことができる。NFCモジュール140は、接触または非接触NFCを介してカードリーダ150に通信し得る。NFCモジュール140はNFCコントローラ(NFCC)145を含むことができる。この実施形態によれば、NFCC145はNFCモジュール140中に埋め込まれる。アプリケーションプロセッサは、NFCモジュール140およびNFCC145と通信するために高レベルアプリケーション(たとえば、支払処理アプリケーション、オペレーティングシステム)を含むことができる。
[0033]NFC対応モバイルデバイス通信の一例としては、購入された商品について小売業者に支払うことを望むユーザがモバイルデバイスを使用することがあり得る。モバイルデバイスは、レジ(checkout)に位置するポイントオブセールカードリーダ150に個人金融情報(たとえば、クレジットカード口座情報)を送信し得る。ユーザは、購入を完了するために、NFCモジュール140を搭載したモバイルデバイス110をカードリーダ150の近くに持ってくることがある。カードリーダ150は、NFCを介して、モバイルデバイス110のセキュア環境に通常記憶される、ユーザのクレジットカード詳細を受信し、従来の方法を用いて支払を処理し、モバイルデバイス110に記憶され得る電子レシートをユーザに返信する。
[0034]さらに、本発明の一実施形態による、第2のNFCモジュール190が、図1Bに示すように、第2のモバイルデバイス160中に取り付けられ、モバイルデバイス110とのピアツーピア通信を可能にし得る。モバイルデバイス110と同様に、第2のモバイルデバイス160も、アプリケーションプロセッサ170と、SIMカード180と、第2のNFCモジュール190とを含むことができる。第2のNFCモジュール190は第2のNFCC195を含むことができる。
[0035]ピアツーピア通信の一例としては、両方の当事者がそれらのNFC対応モバイルデバイスを互いの極近傍内に持ってくることによって、あるユーザがNFCを介して第2のユーザに画像、ビデオおよび他の情報を転送することがあり得る。それらのデバイスが極近傍にあるとき、NFCモジュール140は、認証情報を含む、情報を第2のNFCモジュール190に送信することを試みることができる。第2のNFCモジュール190がその情報を受信し、認証を実施した後、2つのデバイスは情報を共有することができる。
[0036]いくつかの実施形態によれば、モバイルデバイス110は、セキュア環境においてデータを取り出すことまたは記憶することに関連してNFCモジュール140を利用する。たとえば、モバイルデバイス110は、セキュア要素環境に記憶されたクレジットカードデータを取得し、NFCモジュール140を介してそれをトランスポートすることができる。さらに、(たとえば、金融トランザクションを行う際に)機密情報を扱うためにNFCが使用され得るので、NFC対応モバイルデバイスは、たいがいセキュア要素環境を含むことができる。したがって、本発明は、デバイス(たとえば、NFCC145)が内部不揮発性メモリを有しないとき、バージョン番号を記憶するためにセキュア要素環境を利用することができる。
[0037]モバイルクレジットカード支払処理トランザクションが、セキュア要素環境に関連してNFCC145を利用するモバイルデバイス110を伴うトランザクションの一例である。この例では、NFCC145は、クレジットカード情報が記憶された、セキュア要素環境と、トランザクションを可能にするために使用されるアプリケーションプロセッサ120との間の中間当事者であり得る。したがって、モバイルデバイスによって支払処理のために使用されるアプリケーションプロセッサ120は、NFCC145を使用することによってカードリーダ150に機密金融情報を送信することができる。さらに、アプリケーションプロセッサ120とNFCC145の両方が、この支払処理トランザクションを可能にするために機密データを取り出すためにセキュア要素環境と通信することができる。
[0038]上記の例は、NFCC145が機密情報を扱うので、NFCCもモバイルデバイス110のセキュア要素環境へのアクセスを有することができることを示している。さらに、NFCC145は、周期ファームウェアアップグレードを有し得る、ファームウェア構成要素を有し得る。したがって、セキュリティの観点から、NFCC145上のファームウェアは、特に、より古いバージョンが、それに関連するいくつかのセキュリティ問題を有した場合、より古いバージョンにロールバックされるのを防がれるべきである。NFCC145をMITM攻撃のための機構として使用するためにNFCC145を破損するために、NFCC145上のより古いファームウェアバージョンが使用され得る。
[0039]したがって、ロールバック攻撃を防ぐために、NFCC145上のファームウェアを更新するときに、最新のファームウェアバージョンがインストールされる必要がある。本発明のいくつかの実施形態によれば、NFCC145は、現在ファームウェアバージョン番号(FVN)と対照して、モバイルデバイスがインストールすることを希望するインスタレーションファイルのファームウェアバージョン番号を検査することができる。これは、現在ファームウェアバージョン番号に関連することがある、最小許容ファームウェアバージョン番号(LAFVN:least acceptable firmware version number)をモバイルデバイス110のセキュア要素環境に記憶することによって行われ得る。LAFVNは、ロールバックを防ぐためにFVNと比較するために使用され得る。
[0040]本発明は、ロールバック攻撃を防ぐために、NFCC145上にダウンロードされている新しいファームウェアバージョンが前のバージョンよりも高いことを保証し得る。ファームウェアバージョンが増分的に増加するので、潜在的ファームウェアアップグレードバージョンをLAFVNと比較することによって、NFCC145はロールバック攻撃から保護され得る。さらに、LAFVNがモバイルデバイスのセキュア要素環境に記憶されるので、本発明は、依然として、デバイス(たとえば、NFCC145)が不揮発性メモリなしであるときでも、起動中にアンチロールバック保護を与える。
[0041]ソフトウェアシステムにおけるアンチロールバック保護のための手法は、デバイス(たとえば、NFCC145)中の不揮発性メモリの使用を含むことだった。しかしながら、この手法は、デバイス(たとえば、NFCC145)中の書き換え可能な不揮発性メモリの存在を必要とし、これは、特に、デバイスが小さい形状(たとえば、<65nm)において実装されるとき、コストがかかるとともに、比較的信頼できない。
[0042]たとえば、NFCC145は、半導体材料の薄い基板の表面に製造され得る。NFCC145などのデバイスを実装するために使用される集積回路(IC)は、より小さい形状に移行し、より多くの回路が各チップ上にパックされることを可能にした。単位面積当たりのこの増加した容量は、コストを減少させるおよび/または機能を増加させるために、使用され得る。しかしながら、ナノメートルスケールデバイスをもつICは、それらの問題がなきにしもあらずであり、その問題のうち、主なものはリーク電流である。したがって、ICが正しく動作することを保証するために半導体製造業者によって設計ルールが与えられる。設計ルールセットが、半導体製造プロセスにおける変動性を考慮するのに十分なマージンを保証するために、いくつかの形状および接続性制限を指定する。したがって、デバイス(たとえば、NFCC145)が小さい形状(たとえば、<65nm)において実装されるとき、デバイスは不揮発性メモリなしに設計され得、これは設計ルールに基づき得る。
[0043]したがって、いくつかのデバイス(たとえば、NFCC145)は、そのデバイスがそれの上に製造された基板が、不揮発性メモリをサポートしないので、不揮発性メモリへのアクセスを有しないことがある。本発明の実施形態によれば、アンチロールバック保護が、セキュアロケーションに最小許容ファームウェアバージョン番号を記憶することによって与えられる。モバイルデバイスは、不揮発性メモリをサポートする他の基板上に製造された他の構成要素を含むことができる。たとえば、セキュア要素環境は、小さい形状を有しない、および不揮発性メモリを含み得る、別の基板上に製造され得る。したがって、いくつかの実施形態によれば、最小許容ファームウェア番号は、セキュア要素環境の不揮発性メモリに記憶され得る。
[0044]アンチロールバック保護の以前の方法は、アプリケーションレベルにおいて最小許容ファームウェアバージョン番号を記憶することを含む。しかしながら、アプリケーションレベルは、モバイルデバイス中の高レベルアプリケーションが容易に攻撃され得るので、十分にセキュアでないことがある。
[0045]たとえば、高レベルソフトウェアアプリケーションは、オペレーティングシステムレベルにおけるアプリケーションであり得る。しかしながら、オペレーティングシステム(たとえば、Android(登録商標)オペレーティングシステム)のためのソースコードがオープンソースコードであり得る。したがって、オープンソースコードは攻撃に対して脆弱であり得る。攻撃者がソフトウェアにおける脆弱性を見つけることは容易であり得、したがって、高レベルソフトウェアアプリケーションに極めて機密性の高い情報を記憶しないことがベストプラクティスである。
[0046]たとえば、高レベルソフトウェアアプリケーションはルーピング攻撃に対して脆弱得、これにより、攻撃者はモバイルデバイス上のスーパーユーザ特権を得ることができる。スーパーユーザ特権がある場合、攻撃者はNFCC145を制御することができる。したがって、セキュリティの観点から、高レベルソフトウェアアプリケーションレイヤにおいて機密情報を記憶することは、それが改ざんされ得るので、ベストプラクティスではない。
[0047]本発明の実施形態は、セキュア要素環境にファームウェアのバージョン番号を記憶することによって、上述の不足を克服する。本発明は、NFC対応モバイルデバイス110がセキュア要素環境をも含むということを利用することができる。したがって、高レベルソフトウェアアプリケーションレイヤの代わりにセキュア要素環境においてバージョン番号を記憶することによって、モバイルデバイスは、攻撃に対してあまり脆弱でないことがある。ある実施形態では、セキュア要素環境は、いかなる外部プログラム、バスまたはデバイスポートによってもアクセスまたは改ざんされ得ない、セキュアメモリ実行パーティションである。
[0048]さらに、前述のe−Fuse手法とは異なり、本発明の実施形態では、バージョン番号が更新される回数に制限がないことがある。セキュア要素環境は、更新されたバージョン番号を含むように常に書き直され得る。モバイルデバイス110のセキュア要素環境にバージョン番号を記憶することによって、それは、より良いアンチロールバック保護を与えることができるので、よりロバストなシステムを生じることができる。
[0049]本発明の実施形態は、不揮発性メモリを使用せずにアンチロールバック保護を与えることができる。不揮発性メモリは、小さい形状(たとえば、<65nm)ではコストがかかることがあり、信頼できないことがある。前述のように、NFCCは、小さい形状をもつ基板上に製造されたチップ上で実施され得る。したがって、NFCCは内部不揮発性メモリを有しないことがある。さらに、NFCC実装形態に対するコスト圧力は、内部不揮発性メモリを使用せずにロールバック攻撃からの保護を与える機構を見つけることが望ましいことを意味する。さらに、より古いファームウェアバージョンへのロールバックを可能にするためにハードウェア攻撃を使用して不揮発性メモリを変更することが可能得る。
[0050]したがって、NFCCファームウェアアップグレードが開始されるとき、本発明の実施形態は、ハードウェアおよびソフトウェア攻撃からのアンチロールバック保護を与えるためにバージョン番号が上がっていることを保証するために、セキュア要素環境に記憶されたLAFVNと対照してバージョン番号を検査する。
[0051]セキュア実行環境
[0052]本発明の実施形態によれば、2つの異なるタイプのセキュア要素環境が考慮される。これらは、セキュア実行環境(SEE:Secure Execution Environment)および信頼実行環境(TEE:Trusted Execution Environment)とも呼ばれる、スタンドアロンセキュア要素である。
[0053]SEEは、ソフトウェアと改ざん防止ハードウェアとから構成される。TEEについては信頼実行要素セクションにおいて説明する。SEEは、改ざん防止であるように、および機密情報を記憶するように、特別に設計されるので、ガードのように機能する。それは、高レベルのセキュリティを与えることができ、(以下のセクションでより詳細に説明する)TEEとともに動作することができる。たとえば、セキュア要素環境は、セキュア要素環境によって与えられる高いレベルのセキュリティのため、モバイル支払アプリケーションによって利用され得る。いくつかの実施形態では、SEEは、外部プログラムによってアクセスされ得ないセキュアメモリ実行である。さらに、SEEは、SEEに記憶されたポリシーに従って命令を執行し得る。
[0054]SEEは、ハードウェア攻撃から保護するように特別に設計される。たとえば、ハードウェア攻撃は侵入攻撃であり得る。侵入攻撃は、内部ラインへの電気的接触を得るためにチップをデパッケージングすることと、パッシベーション層を除去するために酸を使用することとを含むことができる。さらに、ハードウェア攻撃は半侵入攻撃でもあり得る。半侵入攻撃は、チップの表面へのアクセスを得るためにチップをデパッケージングすることを含むことができるが、パッシベーション層はそのままである。
[0055]ソフトウェア攻撃からの保護を与えるにすぎないアンチロールバック保護のための以前の方法(たとえば、TrustZone技術、ソフトウェアベースのバージョン制御)とは異なり、本発明は、ソフトウェアおよびハードウェア攻撃からのアンチロールバック保護を与える。SEEにファームウェアバージョン番号を記憶することによって、本発明は、ソフトウェアおよびハードウェア攻撃から保護することができる。本発明は、セキュア要素環境がNFC対応モバイルデバイス中にすでに存在することを利用する。
[0056]SEEは、それのセキュリティ機能(たとえば、セキュア火災システム、データパーティション、アクセス制御、別個のオペレーティングシステム)のため、機密情報を記憶するように特別に設計される。さらに、SEEはスタックの他の部分から隔離され得る。したがって、SEEの性質は、それをデータを記憶するための理想的なロケーションにする。たとえば、セルラーネットワークのための機密サブスクリプション鍵をも記憶する、SIMカードはSEEであり得る。
[0057]いくつかの実施形態によれば、SEEは不揮発性メモリを含み得る。前述のように、SEEは、NFCC145とは異なる基板上に製造され得る。たとえば、SEEは、不揮発性メモリとともに設計され得る基板上に製造され得る。
[0058]異なる実施形態によれば、セキュア要素環境はSEE(たとえば、SIMカード)またはTEE(たとえば、チップのハードウェア被区分セキュアセクション)であり得る。NFC対応モバイルデバイスは、NFCC145に接続されたセキュア要素環境を有し得る。したがって、NFCC145は、機密データを取得するためにセキュア要素環境とインターフェースし得る。
[0059]別の実施形態によれば、制御当局(controlling authority)(たとえば、相手先商標製造会社(OEM))が、SIMカードに加えて、OEM制御されたセキュア要素環境を有し得る。この実施形態では、NFCC145は、SIMカードへのアクセスを有しないことがあるが、OEM制御されたセキュア要素環境へのアクセスを有する。したがって、OEMによって制御されたセキュア要素環境はNFCC145によっても使用される。これは、SIMカードがリムーバブルで交換可能であり得るので、より大きいセキュリティを与え得る。
[0060]したがって、セキュア要素環境にバージョン番号を記憶することによって、それは、攻撃者がセキュア要素環境を脅かす必要があり、これが、スタックの他の部分を脅かすことほど単純ではないので、攻撃者がファームウェアをより古いバージョンにロールバックすることをより難しくすることができる。セキュリティの観点から、セキュア要素環境にバージョン番号を記憶することは、攻撃者がバージョン番号を破損することの危険を低下させる。
[0061]図2Aは、本発明の一実施形態による、NFC対応モバイルデバイス110を示すブロック図である。図2Aを参照すると、モバイルデバイス110は、アプリケーションプロセッサ120と、SIMカード130と、NFCコントローラ(NFCC)145を含むNFCモジュール140とを含む。この実施形態によれば、セキュア要素環境(たとえば、セキュア実行環境(SEE)220)もNFCモジュール140中に埋め込まれる。アプリケーションプロセッサは、NFCモジュール140およびNFCC145と通信するために高レベルアプリケーション(たとえば、支払処理アプリケーション、オペレーティングシステム)を含むことができる。
[0062]図2Aに示されているように、SEE220はNFCモジュール140中に埋め込まれ得る。この実施形態の一例としては、埋込みSEEをもつNFCチップがある。この例では、NFCモジュールは、最後にインストールされたバージョンの番号を受信するためにSIMカードと通信する必要がないことがある。
[0063]図2Bは、本発明の別の実施形態による、NFC対応モバイルデバイスを示すブロック図である。この実施形態によれば、SEE220はSIMカード130中に埋め込まれる。この例では、NFCモジュールは、最後にインストールされたバージョンの番号を受信するためにSIMカード130と通信し得る。
[0064]図2Cは、本発明の別の実施形態による、NFC対応モバイルデバイスを示すブロック図である。この実施形態によれば、SEE220は外部SDカード230に記憶される。SDカード230は、メモリ240と、SEE220と通信することができるコントローラ250とを含み得る。この例では、NFCモジュールは、最後にインストールされたバージョンの番号を受信するためにSDカードと通信し得、NFCモジュールはSIMカード130と通信する必要がないことがある。
[0065]信頼実行環境
[0066]別の実施形態によれば、セキュア要素環境はTEEであり得る。TEEは、モバイルデバイスのメインプロセッサ中に常駐することができるセキュアエリアである。SEEと同様に、TEEは、機密データが信頼できる環境において記憶され、処理され、保護されることを保証することができる。TEEは、保護、機密性、完全性およびデータアクセス権を執行することによって、許可されたセキュリティソフトウェア(たとえば、信頼できるアプリケーション)を実行し、エンドツーエンドセキュリティを与えることができる。TEEは、ソフトウェアおよびハードウェアからなることができ、ソフトウェア攻撃からの保護の追加のレベルを与えるために使用され得る。TEEは、アクセス権の制御を支援し、機密アプリケーションを記憶する。たとえば、TEEは、システムオンチップ(SoC:System-on-a-Chip)のハードウェア保護パーティションにおけるセキュアエリアであり得る。TEEの別の例としては、一意のデバイス鍵をもつセキュアストレージ、および、モバイルデバイスの残部から隔離された、コードが実行され得る実行環境があり得る。TEEはまた、SEEに直接記憶された情報へのアクセスをフィルタ処理し得る。
[0067]TEEは、オペレーティングシステムと並列に動作する隔離環境であり、モバイルデバイスにセキュリティサービスを与えることができる。TEEは、オペレーティングシステムよりもセキュアであることがあるが、SEEほどセキュアでないことがある。したがって、TEEは、SEEの高レベル保護とオペレーティングシステムの低レベル保護との間のセキュア環境を提供し得る。
[0068]いくつかの実施形態によれば、TEEは不揮発性メモリを含むことができる。前述のように、TEEを含むチップは、NFCC145とは異なる基板上に製造され得る。たとえば、TEEを含むチップが、不揮発性メモリとともに設計され得る。
[0069]アンチロールバック保護のためにSEEおよび/またはTEEを利用すること
[0070]図3は、不揮発性メモリなしのデバイス(たとえば、NFCC145)にアンチロールバック保護を与えるためのステップのシーケンス300を概説するフローチャートである。動作は、ステップ305において、モバイルデバイスが、セキュア要素環境に最低許容ファームウェアバージョン番号(LAFVN)を記憶するとき、開始する。前述のように、SEEおよびTEEはセキュア要素環境の2つの例である。LAFVNは、NFCC145上で実行しているファームウェアの現在バージョン番号に対応することができる。セキュアロケーションに現在バージョン番号を記憶することによって、本発明は、ソフトウェアおよびハードウェア攻撃から保護することによってロールバックおよびMITMを防ぎ得る。
[0071]次に、ステップ310において、NFCモジュール140は、モバイルデバイスによるファームウェアインスタレーション要求に関連するファームウェアバージョン番号(FVN)を取得する。高レベルアプリケーションまたは制御当局がファームウェアインスタレーションを要求することができる。NFCモジュール140は、アプリケーションプロセッサ120からファームウェアインスタレーション要求を受信することができる。さらに、NFCC145は、NFCCファームウェアを更新するためにファームウェアインスタレーション要求を直接受信することができる。
[0072]次いでステップ315において、NFCモジュール140は、LAFVNをFVNと比較する。さらに、NFCC145もその比較を行うことができる。その比較が、FVNがLAFVNよりも小さいことを示す場合、これは、より古いバージョンにファームウェアをロールバックするための新しいインスタレーションを生じることがあり、本発明の実施形態は、その新しいインスタレーションが進むのを可能にしないことができる。
[0073]ステップ320に示すように、NFCモジュール140は、ファームウェアインスタレーションを可能にせず、好適なFVN(たとえば、少なくともLAFVNに等しいFVN)をもつファームウェアインスタレーションをアップロードするようにモバイルデバイス110に要求することができる。別の実施形態によれば、アプリケーションプロセッサ120、NFCモジュール140またはNFCC145は、ファームウェアインスタレーションを可能にしないことができる。このステップを例示するために、以下の例について説明し、ここにおいて、アプリケーションプロセッサ120を使用するモバイルデバイス110は、NFCC145上でFVNに関連するファームウェアアップグレードを要求することができる。NFCC145は、より古いバージョンへのファームウェアのロールバックを防ぐために、セキュア要素環境からLAFVNを取り出し、FVNをLAFVNと比較することができる。その比較が、FVNがLAFVNよりも小さいことを示す場合、NFCCは、このファームウェアインスタレーションがより古いファームウェアバージョンへのロールバックであり得るので、それを可能にしない。
[0074]たとえば、受信されたFVNはバージョン番号1.2であり、NFCCは、それが、セキュア要素環境に記憶されたLAFVNにより高いかまたはそれに等しいことを確認するために検査する。この例では、セキュア要素環境に記憶されたLAFVNはバージョン番号1.3である。NFCC145がバージョン番号を受信すると、それはそれら2つの値を比較する。この例では、その比較は、FVNがLAFVNにより高くないかまたはそれに等しくないことを示すことになり、したがってNFCC145はインスタレーションを可能にしないことになる。セキュア要素環境に記憶されたバージョン番号が1.3であり、次のファームウェアアップグレードがバージョン1.3により高いかまたはそれに等しい必要があるので、NFCC145は、それがバージョン番号1.2をインストールすることができないことをモバイルデバイス110に通信することができる。
[0075]代替的に、その比較が、FVNがLAFVNに等しいかまたはそれよりも大きいことを示す場合、プロセスはステップ325に続く。ステップ325において、モバイルデバイス110がファームウェアインスタレーションを可能にする。NFCモジュール140またはNFCC145はファームウェアインスタレーションを可能にすることができる。このステップを例示するために、以下の例について説明し、ここにおいて、アプリケーションプロセッサ120を使用するモバイルデバイス110は、NFCC145上でFVNに関連するファームウェアアップグレードを要求することができる。NFCC145は、より古いバージョンへのファームウェアのロールバックを防ぐために、セキュア要素環境からLAFVNを取り出し、FVNをLAFVNと比較することができる。この例では、その比較は、FVNがLAFVNよりも大きいことを生じ、その場合、NFCC145は、ファームウェアが、NFCC145上で実行している現行バージョンからのアップグレードであるので、このファームウェアインスタレーションを可能にすることができる。
[0076]さらに、FVNがLAFVNよりも大きい場合、LAFVNは、FVNに等しくなるように更新され得る。セキュア要素環境を更新するための方法について図6および図7においてより詳細に説明する。
[0077]図3は、本発明の一実施形態による、アンチロールバック保護を与えるための方法を示すが、図4は、本発明の一実施形態によるシステムレベルフローチャートを示す。
[0078]図4は、本発明の一実施形態による、モバイルデバイス中の構成要素間の通信ステップ400を概説するフローチャートである。たとえば、ステップ410において、NFCC145のための起動シーケンスを開始する。起動シーケンス中に、NFCC145は、特に、内部不揮発性メモリがないとき、ロールバックに対して特に脆弱であり得る。起動シーケンスは、そのような権限を有する任意の構成要素(たとえば、モバイルデバイス、制御当局、高レベルアプリケーション、アプリケーションプロセッサ)によって開始され得る。ステップ420において、たとえば、モバイルデバイスは、要求されたファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を与える。FVNは、要求されたファームウェアインスタレーションファイルをNFCC145に与えることができる任意の構成要素によってNFCC145に与えられ得る。
[0079]NFCC145がFVNを受信すると、ステップ430において、NFCC145は、NFCC145において実行することを可能にされた最低許容ファームウェアバージョン番号(LAFVN)について、SEEまたはTEEに記憶された特定のアプリケーションまたはファイルを検査する。そのようなアプリケーションまたはファイルが見つからない場合、ステップ440に示すように、NFCCはFVNを受け付け、ステップ470に続く。別の実施形態によれば、NFCC145がセキュア要素環境を検査し、セキュア要素環境に記憶されたバージョンがないとき、NFCC145は、セキュア要素環境に改訂番号を書き込むことができる。
[0080]代替的に、アプリケーションまたはファイルがステップ430において見つかった場合、プロセスは比較ステップ450に進む。比較ステップ450は、図3からの比較ステップ315と同様である。比較ステップが、FVNがLAFVNよりも小さくないことを示す場合、起動は通常通り続き、ステップ470に進む。しかしながら、比較ステップが、FVNがLAFVNよりも小さいことを示す場合、それはステップ460に進み、NFCC145が、適切に更新されたファームウェアバージョンがアップロードされた後にのみ、起動が続くことができることをモバイルデバイス110に伝える。
[0081]図4は、アンチロールバック保護の一例を示したが、図5は、認証機能を用いたアンチロールバック保護の一例を示す。この実施形態によれば、攻撃者が、認証されていないファームウェアバージョンをロードすることを試みる場合、ファームウェアは、それが、認証された署名鍵で署名されていないので、アップロードされないことになる。攻撃者は、ファームウェアのより古い改訂における脆弱性を見つけ、より古いファームウェア改訂をアップロードすることを試み得る。したがって、アンチロールバック機構がインストールされない限り、署名付き改訂以外のより古い改訂が攻撃者によって使用され得る。本発明の実施形態によれば、図5においてさらに説明するように、NFCC145は、アンチロールバック保護に加えて検証を与えることができる。
[0082]図5は、NFCC起動およびファームウェアインスタレーション要求中の、モバイルデバイス110と、NFCC145と、セキュア要素環境との間の通信ステップ500の例示的な実施形態を示している。この実施形態によれば、モバイルデバイス110は、ステップ505において起動するようにNFCC145を開始することができる。ステップ510において、NFCC145は起動し、NFCC上で実行しているファームウェアの現在バージョン番号を送る。代替的に、モバイルデバイス110は、NFCCファームウェアバージョンを取得するためにNFCCによる受信された肯定応答を介してパース(parse)することができる。たとえば、NFCCによって送られたCORE_INIT_RSPが、「製造業者固有情報」オクテットでのファームウェアバージョン情報を含んでいる。
[0083]随意のステップであり得る、ステップ515において、モバイルデバイスは、要求ファームウェアインスタレーションに関連するFVNをNFCCファームウェアバージョンと比較することができる。モバイルデバイスは、NFCCファームウェアバージョンがFVNよりも小さい場合、インストール要求を続けることができる。この随意のステップ515は、NFCC上のファームウェアがすでに現在のものであるとき、ファームウェアアップグレード要求を防ぐために使用され得る。
[0084]ステップ520において、モバイルデバイス110は、NFCC145上でのファームウェアインスタレーションを要求することができ、ファームウェアインスタレーションはFVNに関連する。ファームウェアインスタレーションは、全ファームウェアインスタレーションまたは部分インスタレーション(たとえば、パッチインスタレーション)であり得る。この要求を受信した後に、ステップ525において、NFCC145は、LAFVNについて、アタッチされたセキュア要素環境をプローブする。別の実施形態によれば、NFCC145が、セキュア要素環境またはLAFVNを見つけなかった場合、NFCC145は、通常起動シーケンスを続け、ファームウェアをインストールする。
[0085]NFCC145は、セキュア要素環境と通信するために異なる通信機構を使用するように要求され得る。たとえば、セキュア要素環境と通信するために標準機構(たとえば、Qualcomm不揮発性アプリケーション)が使用され得る。別の実施形態によれば、複数のセキュア要素環境があり得、NFCC145は、バージョン番号について異なるセキュア要素環境インスタンスをプローブし得る。たとえば、モバイルデバイスは、SIMカードであるセキュア要素環境を有するが、OEM制御されたセキュア要素環境をも有し得る。これは、キャリアが、SIMカードを通してアンチロールバック保護を執行することができ、OEMが、OEM制御されたセキュア要素環境にアンチロールバック保護を与えることができるので、冗長性を与えることできる。
[0086]ステップ530において、セキュア要素環境は、NFCC145にLAFVNを送ることができる。代替的に、セキュア要素環境は、FVNが最後のファームウェアバージョンであることを単に検証することができる(すなわち、真または偽)。
[0087]ステップ535において、NFCC145は、FVNをLAFVNと比較し、LAFVNがFVNよりも小さくない場合、NFCC145はファームウェアインスタレーションを続ける。ステップ540において、NFCCは、モバイルデバイス110からインスタレーション要求を受け付ける。
[0088]さらに、NFCC145上へのいかなるファームウェアのインスタレーションも未知のソースから可能にされるべきではない。セキュリティの観点から、信頼できる当事者のみがNFCC145上のファームウェアをアップグレードすることを可能にするための機構がある必要がある。したがって、いくつかの実施形態によれば、ソースは、NFCC145上にファームウェアインスタレーションファイルがロードされる前に、それにデジタル署名する。
[0089]アップグレードのソースを検証することによって、本発明は、攻撃からの保護の別のレイヤを追加する。たとえば、何らかの悪意のあるエンティティが、その悪意のあるエンティティがNFCC145を乗っ取ることを可能にするであろうコードをアップロードすることがある。アップグレードを認証するための何らかの機構がなければ、アップグレードプロセスは通過することができ、悪いコードがNFCC145上に潜在的にロードされ得る。そのような攻撃を防ぐために、NFCC145は公開鍵を有し、それは、アップグレードが信頼できる当事者からのものであるかどうかを検証することができる。
[0090]署名検証はステップ545において開始され得、モバイルデバイス110が、デジタル署名付きのファームウェアインスタレーションを送る。
[0091]ステップ550において、NFCC145は、ファームウェアが信頼できるソースから来ていることを保証するために公開鍵を用いて受信された署名を検証することができる。たとえば、公開鍵基盤(PKI:Public Key Infrastructure)認証が、そのような検証のための一般的な方法である。与えられたファームウェアが信頼できるソースからのものでない場合、インスタレーションは進むことを可能にされない。検証プロセスが失敗した場合、NFCC145は、署名が認証されたものではなく、したがってアップグレードが行われないことになることを、モバイルデバイス110にシグナリングする。
[0092]ステップ555において、署名が有効であることが検証された場合、ファームウェアインスタレーションを可能にし、ファームウェアを更新する。
[0093]FVNに関連するファームウェアが更新された後、いくつかの実施形態によれば、NFCC145は、ステップ560に示すように、FVNに等しくなるようにLAFVNを更新するようにセキュア要素環境に要求することができる。ステップ565において、セキュア要素環境は、FVNに等しくなるようにLAFVNを更新することができる。
[0094]ファームウェアインスタレーションの後にLAFVNを更新すること
[0095]セキュア要素環境に記憶されたLAFVNは、いくつかの状況下で更新され得る。最初に、FVNに関連する新しいファームウェアインスタレーションがアップロードされ、それのバージョン番号が、セキュア要素環境に記憶されたLAFVNよりも大きいとき、LAFVNは、図6において説明するように、FVNに等しくなるように更新される。代替的に、図7において説明するように、セキュア要素環境のための制御当局が更新を直接強制することができる。
[0096]図5におけるステップ560および565に示されているように、NFCC145が、それのファームウェアを正常にアップグレードした後、NFCC145は、現在記憶されているバージョン番号をアップグレードするためにセキュア要素環境に通信することができる。
[0097]図6は、LAFVNがFVNよりも小さいとき、LAFVNを更新するためのステップのシーケンス600を概説するフローチャートである。NFCC145は、セキュア要素環境と通信し、セキュア要素環境に記憶されたLAFVNを更新するために、標準機構(たとえば、GlobalPlatform)を使用することができる。
[0098]ステップ605に示すように、ファームウェアインスタレーションに関連するFVNがモバイルデバイス110によってNFCC145に与えられる。ステップ610において、NFCC145は、セキュア要素環境に記憶された、LAFVNが、FVNよりも小さいと判断することができる。したがって、ステップ615において、NFCC145は、FVNに等しくなるようにLAFVNを更新することができる。前述のように、この更新は、セキュア要素環境においてバージョン番号を書き直すために標準機構(たとえば、GlobalPlatform)を使用して行われ得る。
[0099]別の実施形態によれば、自然増分の例では、より新しいファームウェアがアップロードされると、LAFVNは、最新のバージョン番号に自然に増分される。したがって、より高いバージョンがアップロードされると、LAFVNは、セキュア要素環境においてその番号に増分され得る。
[0100]強制更新の後にLAFVNを更新すること
[0101]本発明の一実施形態によれば、制御当局(たとえば、OEM、セキュア要素当局)が、しきい値(たとえば、10)を上回る改訂番号をもつNFCC145のみが制御当局と通信することを希望し得る。たとえば、OEMまたはキャリアは、10を下回る電話改訂番号がセキュリティ脆弱性を有することが知られているので、セキュア要素当局と話すために電話改訂が少なくとも10でなければならないことを要件にすることを決定し得る。
[0102]この実施形態によれば、制御当局は、セキュア要素環境にそれ記憶されたLAFVNを直接アップグレードし得る。セキュア要素環境上でデータを変更するためのセキュアプロトコルが存在する。さらに、制御当局は、セキュア要素環境上で長期鍵を所有し得、したがって、制御当局は、セキュア要素環境をアップグレードする能力を有する。
[0103]図7は、強制更新の後にセキュア環境に記憶されたLAFVNを更新するためのステップのシーケンス700を概説するフローチャートである。
[0104]ファームウェア更新のためのプッシュ中に、ステップ705に示すように、制御当局が、NFCC145のファームウェアを更新するようにNFCC145をプッシュすることができる。たとえば、制御当局は、NFCC145が制御当局と通信することができる前に、NFCC145があるファームウェアバージョン番号を必要とするという要件を有し得る。したがってステップ710において、NFCC145上に新しいファームウェアをアップロードする。本発明の実施形態によれば、FVNに関連するファームウェアがNFCC145上にロードされると、NFCC145は、ステップ715において、セキュア要素環境においてLAFVNを取り出すことができる。ステップ720において、NFCC145が、LAFVNがFVNよりも小さいと判断した場合、NFCCは、FVNに等しくなるように、セキュア要素環境に記憶されたLAFVNを更新することができる。
[0105]別の実施形態によれば、制御当局が、より古いバージョンが欠陥および脆弱性を有することに気づいていることがあるので、制御当局は、新しい番号でLAFVNをオーバーライドすることができる。たとえば、既知の機構(たとえば、GlobalPlatform)を使用する制御当局は、あるバージョンが現在最新のバージョン番号であることをNFCC145に伝え得る。
[0106]さらに、本発明のコンテキストでは、ファームウェアインスタレーションは、現在ロードされているバージョンに取って代わる、その全体が完全なファームウェアイメージを表すことができ、またはファームウェアインスタレーションは、既存のファームウェアの部分更新(たとえば、パッチ)を表し得る。
[0107]セキュア要素環境と通信し、改訂番号をアップグレードするために、既知の機構(たとえば、GlobalPlatform規格)が利用され得る。代替的に、セキュア要素環境と通信し、バージョン番号をアップグレードするために、プロプライエタリ通信言語が利用され得る。
[0108]本発明の実施形態は、SEEおよびTEE技術が、高レベルのハードウェアセキュリティを提供するように明示的に設計されるので、内部不揮発性メモリに依拠する手法よりもセキュアであり得る。さらに、本発明の実施形態は、e−Fuse技術手法の場合と同様の限られた数のバージョンに制限されない。
[0109]本発明の実施形態は、顧客介入なしに、必要とされるバージョンを更新するために(たとえば、GlobalPlatformによって定義された)既存のおよび高度にセキュアなリモートプロビジョニング機構を利用する。
[0110]本発明の実施形態は、改訂番号が増分的に増加することを可能にするにすぎない。したがって、改訂番号を低下させるためのセキュア要素環境への要求が処理されないことになる。
[0111]図8に示すようなコンピュータシステムが、前に説明したモバイルデバイスの一部として組み込まれ得る。たとえば、コンピュータシステム800は、本出願で説明するモバイルデバイスの構成要素のうちのいくつかを表すことができる。コンピュータシステム800は、図1のモバイルデバイス110の様々な構成要素の機能を実施し得る。図8は、様々な他の実施形態によって提供される方法を実施することができるコンピュータシステム800の一実施形態の概略図を与えている。図8は、様々な構成要素の一般化された図を与えるものにすぎず、それらの構成要素のいずれかまたはすべては適宜に利用され得ることに留意されたい。図8は、したがって、個々のシステム要素が、比較的分離された方法または比較的より統合された方法で、どのように実装され得るかを概括的に示している。
[0112]バス805を介して電気的に結合され得る(または、適宜に、他の方法で通信していることがある)ハードウェア要素を備えるコンピュータシステム800が示されている。たとえば、NFCC145とセキュア要素環境との間の(たとえば、GlobalPlatform規格を使用する)セキュア通信はバス805を介したものであり得る。ハードウェア要素は、限定はしないが、(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどの)1つまたは複数の汎用プロセッサおよび/または1つまたは複数の専用プロセッサを含む、1つまたは複数のプロセッサ810と、限定はしないが、マウス、キーボードなどを含むことができる1つまたは複数の入力デバイス815と、限定はしないが、ディスプレイデバイス、プリンタなどを含むことができる1つまたは複数の出力デバイス820とを含み得る。たとえば、アプリケーションプロセッサ120は、コンピュータシステム800中のプロセッサの一例であり得る。
[0113]コンピュータシステム800は、限定はしないが、ローカルストレージおよび/またはネットワークアクセス可能ストレージを備えることができ、ならびに/あるいは、限定はしないが、ディスクドライブ、ドライブアレイ、光ストレージデバイス、プログラム可能でフラッシュ更新可能であり得るランダムアクセスメモリ(「RAM」)および/または読取り専用メモリ(「ROM」)などのソリッドステートストレージデバイスなどを含むことができる、1つまたは複数の非一時的ストレージデバイス825をさらに含み得る(および/または、それらと通信していることがある)。そのようなストレージデバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストアを実装するように構成され得る。たとえば、SIMカード130、SEE220が、コンピュータシステム800中の記憶デバイス825の一例であり得る。
[0114]コンピュータシステム800はまた、限定はしないが、モデム、ネットワークカード(ワイヤレスまたはワイヤード)、赤外線通信デバイス、ワイヤレス通信デバイス、および/または(Bluetooth(登録商標)デバイス、802.11デバイス、Wi−Fi(登録商標)デバイス、WiMax(登録商標)デバイス、セルラー通信設備、NFCモジュール140、NFCC145などの)チップセットなどを含むことができる、通信サブシステム830を含み得る。通信サブシステム830は、データが、(一例を挙げると、以下で説明するネットワークなどの)ネットワーク、他のコンピュータシステム、および/または本明細書で説明する他のデバイスと交換されることを可能にし得る。多くの実施形態では、コンピュータシステム800は、上記で説明したように、RAMまたはROMデバイスを含むことができる作業メモリ835をさらに備えることになる。
[0115]コンピュータシステム800はまた、オペレーティングシステム840(たとえば、高レベルアプリケーション)、デバイスドライバ、実行可能ライブラリ、および/または1つまたは複数のアプリケーションプログラム845などの他のコードを含む、作業メモリ835内に現在位置するものとして示されている、ソフトウェア要素を備えることができ、1つまたは複数のアプリケーションプログラム845は、様々な実施形態によって提供されるコンピュータプログラムを備え得、ならびに/あるいは、本明細書で説明するように、他の実施形態によって提供される方法を実装するようにおよび/またはシステムを構成するように設計され得る。単に例として、上記で説明した(1つまたは複数の)方法に関して説明した1つまたは複数のプロシージャは、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装され得、一態様では、次いで、そのようなコードおよび/または命令は、説明した方法に従って1つまたは複数の動作を実施するように汎用コンピュータ(または他のデバイス)を構成するためおよび/または適応させるために使用され得る。
[0116]これらの命令またはコードのセットは、上記で説明した(1つまたは複数の)非一時的ストレージデバイス825などの非一時的コンピュータ可読記憶媒体上に記憶され得る。場合によっては、記憶媒体は、コンピュータシステム800などのコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムとは別個(たとえば、コンパクトディスクなどの取外し可能媒体)であり得、ならびに/あるいは、記憶媒体が、その上に記憶された命令/コードで汎用コンピュータをプログラムし、構成し、および/または適応させるために使用され得るようなインスタレーションパッケージで提供され得る。これらの命令は、コンピュータシステム800によって実行可能である実行可能コードの形態をとり得、ならびに/あるいは、(たとえば、様々な一般に利用可能なコンパイラ、インスタレーションプログラム、圧縮/解凍ユーティリティなどのいずれかを使用して)コンピュータシステム800上でコンパイルおよび/またはインストールしたときに実行可能コードの形態をとる、ソースコードおよび/またはインストール可能コードの形態をとり得る。
[0117]実質的な変形形態が、特定の要件に従って製作され得ることが当業者には明らかであろう。たとえば、カスタマイズされたハードウェアも使用され得、ならびに/あるいは、特定の要素が、ハードウェア、(アプレットなどのポータブルソフトウェアを含む)ソフトウェア、または両方で実装され得る。さらに、ネットワーク入力/出力デバイスなど、他のコンピューティングデバイスへの接続が採用され得る。
[0118]上述のように、一態様では、いくつかの実施形態は、本発明の様々な実施形態による方法を実施するための(コンピュータシステム800などの)コンピュータシステムを採用し得る。実施形態のセットによれば、そのような方法のプロシージャの一部または全部は、プロセッサ810が、作業メモリ835中に含まれている(オペレーティングシステム840、および/またはアプリケーションプログラム845などの他のコードに組み込まれ得る)1つまたは複数の命令の1つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム800によって実施される。そのような命令は、(1つまたは複数の)非一時的ストレージデバイス825のうちの1つまたは複数など、別のコンピュータ可読媒体から作業メモリ835に読み込まれ得る。単に例として、作業メモリ835中に含まれている命令のシーケンスの実行は、(1つまたは複数の)プロセッサ810に、本明細書で説明した方法の1つまたは複数のプロシージャを実施させ得る。
[0119]本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の様式で動作させるデータを与えることに関与する任意の媒体を指す。コンピュータシステム800を使用して実装される一実施形態では、様々なコンピュータ可読媒体は、実行のために(1つまたは複数の)プロセッサ810に命令/コードを与えることに関与し得、ならびに/あるいはそのような命令/コードを記憶および/または搬送するために使用され得る。多くの実装形態では、コンピュータ可読媒体は、物理および/または有形記憶媒体である。そのような媒体は、不揮発性媒体または揮発性媒体の形態をとり得る。不揮発性媒体は、たとえば、(1つまたは複数の)非一時的ストレージデバイス825などの光ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定はしないが、作業メモリ835などのダイナミックメモリを含む。
[0120]物理および/または有形コンピュータ可読媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光媒体、パンチカード、紙テープ、穴のパターンをもつ任意の他の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、あるいはコンピュータが命令および/またはコードを読み取ることができる任意の他の媒体を含む。
[0121]コンピュータ可読媒体の様々な形態は、実行のために1つまたは複数の命令の1つまたは複数のシーケンスを(1つまたは複数の)プロセッサ810に搬送することに関与し得る。単に例として、命令は、初めに、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送され得る。リモートコンピュータは、命令をそれのダイナミックメモリにロードし、その命令を、コンピュータシステム800によって受信および/または実行されるように伝送媒体を介して信号として送り得る。
[0122]通信サブシステム830(および/またはそれの構成要素)が、概して信号を受信し、次いで、バス805が、信号(および/またはその信号によって搬送されるデータ、命令など)を作業メモリ835に搬送し得、(1つまたは複数の)プロセッサ810が、作業メモリ835から命令を検索し、実行する。作業メモリ835によって受信された命令は、場合によっては、(1つまたは複数の)プロセッサ810による実行の前または後のいずれかに非一時的ストレージデバイス825に記憶され得る。
[0123]上記で説明した方法、システム、およびデバイスは例である。様々な構成は、適宜に様々なプロシージャまたは構成要素を省略、置換、または追加し得る。たとえば、代替構成では、本方法は、説明した順序とは異なる順序で実施され得、ならびに/あるいは様々な段階が追加、省略、および/または組み合わせられ得る。また、いくつかの構成に関して説明した特徴は、様々な他の構成において組み合わせられ得る。構成の異なる態様および要素が、同様にして組み合わせられ得る。また、技術は発展し、したがって、要素の多くは例であり、本開示または特許請求の範囲を限定しない。
[0124]説明では、(実装形態を含む)例示的な構成の完全な理解が得られるように具体的な詳細を与えた。ただし、構成は、これらの具体的な詳細なしに実施され得る。たとえば、構成を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法を不要な詳細なしに示した。この説明は、例示的な構成を与えるにすぎず、特許請求の範囲の範囲、適用性、または構成を限定しない。そうではなく、構成の上記の説明は、説明した技法を実装することを可能にする説明を当業者に与えるものである。本開示の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得る。
[0125]また、構成は、流れ図またはブロック図として示されるプロセスとして説明されることがある。各々は動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、図中に含まれない追加のステップを有し得る。さらに、本方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体に記憶され得る。プロセッサは、説明したタスクを実施し得る。
[0126]いくつかの例示的な構成について説明したが、本開示の趣旨から逸脱することなく、様々な変更形態、代替構成、および等価物が使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素であり得、他のルールが、本発明の適用よりも優先するかまたは他の方法で本発明の適用を変更し得る。また、上記の要素が考慮される前に、考慮されている間に、または考慮された後に、いくつかのステップが行われ得る。したがって、上記の説明は特許請求の範囲を制限しない。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] デバイスにおいてアンチロールバック保護を与えるための方法であって、
前記デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないこととを備える方法。
[C2] 前記デバイスがニアフィールド通信(NFC)コントローラを備える、C1に記載の方法。
[C3] 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、C1に記載の方法。
[C4] 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、C1に記載の方法。
[C5] 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、C1に記載の方法。
[C6] 前記LAFVNがGlobalPlatform機構を使用して更新される、C5に記載の方法。
[C7] 前記LAFVNが制御当局によって更新される、C1に記載の方法。
[C8] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、C1に記載の方法。
[C9] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、C1に記載の方法。
[C10] 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、C1に記載の方法。
[C11] 前記第1のファームウェアインスタレーションに関連するデジタル署名基づいて前記第1のファームウェアインスタレーションを認証することをさらに備える、C1に記載の方法。
[C12] 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、C1に記載の方法。
[C13] アンチロールバック保護を与えるためのデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されたとき、前記デバイスに、
前記デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないことと
を行わせる、コンピュータ可読命令を記憶するメモリとを備えるデバイス。
[C14] 前記デバイスがニアフィールド通信(NFC)コントローラを備える、C13に記載のデバイス。
[C15] 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、C13に記載のデバイス。
[C16] 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、C13に記載のデバイス。
[C17] 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、C13に記載のデバイス。
[C18] 前記LAFVNがGlobalPlatform機構を使用して更新される、C17に記載のデバイス。
[C19] 前記LAFVNが制御当局によって更新される、C13に記載のデバイス。
[C20] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、C13に記載のデバイス。
[C21] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、C13に記載のデバイス。
[C22] 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、C13に記載のデバイス。
[C23] 前記第1のファームウェアインスタレーションに関連するデジタル署名基づいて前記第1のファームウェアインスタレーションを認証するための前記デバイスをさらに備える、C13に記載のデバイス。
[C24] 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、C13に記載のデバイス。
[C25] 実行されたとき、デバイスに、
前記デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ実行可能命令を記憶するコンピュータ可読媒体。
[C26] 前記デバイスがニアフィールド通信(NFC)コントローラを備える、C25に記載のコンピュータ可読媒体。
[C27] 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、C25に記載のコンピュータ可読媒体。
[C28] 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、C25に記載のコンピュータ可読媒体。
[C29] 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、C25に記載のコンピュータ可読媒体。
[C30] 前記LAFVNがGlobalPlatform機構を使用して更新される、C29に記載のコンピュータ可読媒体。
[C31] 前記LAFVNが制御当局によって更新される、C25に記載のコンピュータ可読媒体。
[C32] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、C25に記載のコンピュータ可読媒体。
[C33] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、C25に記載のコンピュータ可読媒体。
[C34] 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、C25に記載のコンピュータ可読媒体。
[C35] 前記第1のファームウェアインスタレーションに関連するデジタル署名基づいて前記第1のファームウェアインスタレーションを認証するための前記デバイスをさらに備える、C25に記載のコンピュータ可読媒体。
[C36] 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、C25に記載のコンピュータ可読媒体。
[C37] アンチロールバック保護を与えるためのデバイスであって、
1つまたは複数のプロセッサと、
前記デバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得するための手段と、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号(LAFVN)を取得するための手段と、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないための手段とを備えるデバイス。
[C38] 前記デバイスがニアフィールド通信(NFC)コントローラを備える、C37に記載のデバイス。
[C39] 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、C37に記載のデバイス。
[C40] 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、C37に記載のデバイス。
[C41] 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、C37に記載のデバイス。
[C42] 前記LAFVNがGlobalPlatform機構を使用して更新される、C41に記載のデバイス。
[C43] 前記LAFVNが制御当局によって更新される、C37に記載のデバイス。
[C44] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、C37に記載のデバイス。
[C45] 前記第1のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、C37に記載のデバイス。
[C46] 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、C37に記載のデバイス。
[C47] 前記第1のファームウェアインスタレーションに関連するデジタル署名基づいて前記第1のファームウェアインスタレーションを認証するための手段をさらに備える、C37に記載のデバイス。
[C48] 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、C37に記載のデバイス。

Claims (25)

  1. ニアフィールド通信(NFC)デバイスにおいてアンチロールバック保護を与えるための方法であって、
    前記NFCデバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得することと、ここにおいて、前記NFCデバイスが、不揮発性メモリを含まない基板上に実装される、
    最低許容ファームウェアバージョン番号(LAFVN)を取得することと、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
    前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないことと
    を備える方法。
  2. アンチロールバック保護を与えるためのニアフィールド通信(NFC)デバイスであって、
    1つまたは複数プロセッサと、
    前記NFCデバイスのための第1のファームウェアインスタレーションに関連するファームウェアバージョン番号(FVN)を取得するための手段と、ここにおいて、前記NFCデバイスが、不揮発性メモリを含まない基板上に実装される、
    最低許容ファームウェアバージョン番号(LAFVN)を取得するための手段と、ここにおいて、前記LAFVNがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
    前記FVNと前記LAFVNとを比較し、ここにおいて、前記FVNが前記LAFVNよりも小さい場合、前記第1のファームウェアインスタレーションを可能にしないための手段と
    を備えるNFCデバイス。
  3. 前記NFCデバイスがNFCコントローラを備える、請求項1に記載の方法。
  4. 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、請求項1に記載の方法。
  5. 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、請求項1に記載の方法。
  6. 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、請求項1に記載の方法。
  7. 前記LAFVNがGlobalPlatform機構を使用して更新される、請求項6に記載の方法。
  8. 前記LAFVNが制御当局によって更新される、請求項1に記載の方法。
  9. 前記第1のファームウェアインスタレーションが前記NFCデバイス上の既存のファームウェアの部分更新である、請求項1に記載の方法。
  10. 前記第1のファームウェアインスタレーションが前記NFCデバイス上の既存のファームウェアの全更新である、請求項1に記載の方法。
  11. 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、請求項1に記載の方法。
  12. 前記第1のファームウェアインスタレーションに関連するデジタル署名に基づいて前記第1のファームウェアインスタレーションを認証することをさらに備える、請求項1に記載の方法。
  13. 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、請求項1に記載の方法。
  14. 前記第1のファームウェアインスタレーションに関連するデジタル署名に基づいて前記第1のファームウェアインスタレーションを認証するための手段をさらに備える、請求項2に記載のNFCデバイス。
  15. 実行されたとき、請求項1、請求項3から請求項13に従って方法のステップを実行するためのコンピュータ実行可能命令を備える、コンピュータプログラム。
  16. 前記NFCデバイスがNFCコントローラを備える、請求項2に記載のNFCデバイス。
  17. 前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境(SEE)である、請求項2に記載のNFCデバイス。
  18. 前記セキュア要素環境が、システムオンチップ(SoC)のハードウェア保護パーティションにおける信頼実行環境(TEE)である、請求項2に記載のNFCデバイス。
  19. 前記LAFVNは、前記FVNが前記LAFVNよりも大きい場合、前記FVNに等しくなるように更新される、請求項2に記載のNFCデバイス。
  20. 前記LAFVNがGlobalPlatform機構を使用して更新される、請求項19に記載のNFCデバイス。
  21. 前記LAFVNが制御当局によって更新される、請求項2に記載のNFCデバイス。
  22. 前記第1のファームウェアインスタレーションが前記NFCデバイス上の既存のファームウェアの部分更新である、請求項2に記載のNFCデバイス。
  23. 前記第1のファームウェアインスタレーションが前記NFCデバイス上の既存のファームウェアの全更新である、請求項2に記載のNFCデバイス。
  24. 前記LAFVNが前記セキュア要素環境におけるアプリケーションに記憶される、請求項2に記載のNFCデバイス。
  25. 前記FVNが前記LAFVNよりも小さい場合、LAFVNよりも大きいバージョン番号をもつ第2のファームウェアインスタレーションのアップロードを要求する、請求項2に記載のNFCデバイス。
JP2015540903A 2012-11-07 2013-11-07 内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるための方法 Active JP6321023B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/670,932 US9910659B2 (en) 2012-11-07 2012-11-07 Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
US13/670,932 2012-11-07
PCT/US2013/068874 WO2014074674A1 (en) 2012-11-07 2013-11-07 Methods for providing anti-rollback protection in a device which has no internal non-volatile memory

Publications (3)

Publication Number Publication Date
JP2015533444A JP2015533444A (ja) 2015-11-24
JP2015533444A5 JP2015533444A5 (ja) 2016-12-01
JP6321023B2 true JP6321023B2 (ja) 2018-05-09

Family

ID=49641863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015540903A Active JP6321023B2 (ja) 2012-11-07 2013-11-07 内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるための方法

Country Status (6)

Country Link
US (1) US9910659B2 (ja)
EP (1) EP2917828A1 (ja)
JP (1) JP6321023B2 (ja)
KR (1) KR20150083878A (ja)
CN (1) CN104798040A (ja)
WO (1) WO2014074674A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US9287935B2 (en) * 2013-08-01 2016-03-15 Blackberry Limited Method and apparatus for anti-eavesdropping in vunerable NFC applications
WO2015058082A1 (en) * 2013-10-18 2015-04-23 Board Of Trustees Of Michigan State University Near field communication system and method for controlling transmission power of near field communication system
US9448888B2 (en) * 2013-11-15 2016-09-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US9875092B2 (en) * 2014-04-17 2018-01-23 Mistral Mobile Viral distribution of mobile application software
US9830217B2 (en) * 2015-01-29 2017-11-28 Qualcomm Incorporated Selective block-based integrity protection techniques
JP6433844B2 (ja) * 2015-04-09 2018-12-05 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、中継装置、情報処理システム、およびソフトウェアアップデート方法
JP6595822B2 (ja) * 2015-07-07 2019-10-23 キヤノン株式会社 情報処理装置及びその制御方法
KR102453705B1 (ko) * 2015-09-25 2022-10-11 삼성전자주식회사 호스트의 정당성 여부에 따라 선택적으로 결제 기능을 온(on)하는 결제 장치의 동작 방법
EP3176695A1 (en) * 2015-12-04 2017-06-07 Gemalto Sa Method for managing a package in a secure element
CN105574720A (zh) * 2015-12-14 2016-05-11 联想(北京)有限公司 安全的信息处理方法以及信息处理装置
WO2017172434A1 (en) * 2016-04-01 2017-10-05 Pcms Holdings, Inc. Internet of things software securtiy configuration
US20180004502A1 (en) * 2016-06-30 2018-01-04 Dell Products L.P. Basic input/output system (bios) update control
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
CN106406939A (zh) * 2016-09-05 2017-02-15 惠州Tcl移动通信有限公司 一种基于emmc芯片的移动终端防回滚方法及系统
US10346152B2 (en) * 2016-09-20 2019-07-09 At&T Intellectual Property I, L.P. Facilitating use of a universal integrated circuit card (UICC) for secure device updates
US9899053B1 (en) 2016-10-11 2018-02-20 Seagate Technology Llc Protecting against unauthorized firmware updates using induced servo errors
EP3529971B1 (en) 2016-11-17 2022-06-15 Huawei Technologies Co., Ltd. Electronic device, software provisioning server and methods thereof
IT201600117182A1 (it) * 2016-11-21 2018-05-21 Futura Spa Ribobinatrice.
WO2018119904A1 (zh) * 2016-12-29 2018-07-05 华为技术有限公司 一种实现安全操作系统切换的片上系统和方法
US20170124353A1 (en) * 2017-01-12 2017-05-04 Mediatek Inc. Method And Apparatus For Preventing Rollback Of Secure Data
US10069860B1 (en) 2017-02-14 2018-09-04 International Business Machines Corporation Protection for computing systems from revoked system updates
TWI700627B (zh) 2017-05-23 2020-08-01 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
WO2019036795A1 (en) * 2017-08-22 2019-02-28 Absolute Software Corporation MONITORING INTEGRITY OF A FIRMWARE USING "SILVER" MEASURES
CN109508534A (zh) * 2017-09-14 2019-03-22 厦门雅迅网络股份有限公司 防止通过软件降级进行攻击的方法、嵌入式系统
US10810311B2 (en) * 2017-09-21 2020-10-20 Samsung Electronics Co., Ltd. Internet-of-things module
US11640288B2 (en) * 2017-09-26 2023-05-02 C-Sky Microsystems Co., Ltd. System version upgrading method and apparatus
CN107678762B (zh) * 2017-09-26 2020-08-14 杭州中天微系统有限公司 一种系统版本升级方法及装置
WO2019147288A1 (en) 2018-01-29 2019-08-01 Hewlett-Packard Development Company, L.P. Data protection in a pre-operating system environment
US10659054B2 (en) * 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
US10394542B1 (en) * 2018-04-16 2019-08-27 Infineon Technologies Ag Low-power device recovery using a backup firmware image
US10713364B2 (en) * 2018-05-08 2020-07-14 WhiteSource Ltd. System and method for identifying vulnerabilities in code due to open source usage
CN108985049A (zh) * 2018-06-06 2018-12-11 晶晨半导体(上海)股份有限公司 防回滚方法及系统
CN109271185A (zh) * 2018-08-30 2019-01-25 郑州云海信息技术有限公司 一种cpld版本更新方法、装置、设备及存储介质
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
US11100228B2 (en) * 2018-10-25 2021-08-24 Dell Products, L.P. System and method to recover FPGA firmware over a sideband interface
CN109673009B (zh) * 2018-11-13 2022-06-21 浙江合众新能源汽车有限公司 一种vcu软件空中升级方法及装置
CN111417926A (zh) * 2018-12-13 2020-07-14 深圳市大疆软件科技有限公司 无人飞行器及其固件升级方法
CN110134545B (zh) * 2019-04-03 2020-12-22 上海交通大学 基于可信执行环境的提供虚拟nvram的方法及系统
US11222490B2 (en) * 2019-06-14 2022-01-11 International Business Machines Corporation Physical modification of circuits for automotive security
US11301566B2 (en) 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
US11507666B2 (en) * 2019-08-27 2022-11-22 Red Hat, Inc. Trusted execution environment verification of a software package
US11216597B2 (en) * 2020-05-14 2022-01-04 Nuvoton Technology Corporation Security system and method for preventing rollback attacks on silicon device firmware
CN113486360B (zh) * 2021-07-14 2022-11-11 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统
EP4325729A1 (en) * 2022-08-17 2024-02-21 Renesas Design Austria GmbH Dynamic function loading
WO2024071861A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 업데이트 방법 및 이를 위한 전자 장치

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996817B2 (en) * 2001-12-12 2006-02-07 Valve Corporation Method and system for upgrading and rolling back versions
US20030115469A1 (en) * 2001-12-14 2003-06-19 Intel Corporation Systems and methods for detecting and deterring rollback attacks
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
DE10240584A1 (de) 2002-08-28 2004-03-11 Pilz Gmbh & Co. Sicherheitssteuerung zum fehlersicheren Steuern von sicherheitskritischen Prozessen sowie Verfahren zum Aufspielen eines neuen Betriebsprogrammes auf eine solche
US8250562B2 (en) * 2002-08-30 2012-08-21 Sun Microsystems, Inc. Barrier mechanism for firmware upgrade
US7907729B2 (en) * 2002-09-13 2011-03-15 Bally Gaming, Inc. Rollback attack prevention system and method
US7797693B1 (en) * 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7222340B2 (en) * 2004-01-27 2007-05-22 Research In Motion Limited Software-delivered dynamic persistent data
US7907531B2 (en) * 2005-06-13 2011-03-15 Qualcomm Incorporated Apparatus and methods for managing firmware verification on a wireless device
GB2430774B (en) * 2005-10-03 2007-08-08 Nec Technologies Method of software updating and related device
US7844721B2 (en) 2005-11-23 2010-11-30 Qualcomm Incorporated Method for delivery of software upgrade notification to devices in communication systems
KR101259908B1 (ko) * 2005-11-30 2013-05-02 텔레콤 이탈리아 소시에떼 퍼 아찌오니 이동 통신 단말기에서의 애플리케이션 업데이트 방법 및시스템
EP1850256B1 (en) * 2006-04-24 2010-06-09 Telefonaktiebolaget LM Ericsson (publ) Authorisation of the installation of a software version
CA2659826C (en) 2006-09-07 2013-08-13 Nokia Corporation Managing information relating to secure module applications
US8520850B2 (en) * 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US8888597B2 (en) * 2007-01-09 2014-11-18 Bally Gaming, Inc. Systems for providing amusement
EP3211553B1 (en) 2007-01-31 2019-03-06 Nokia Technologies Oy Managing applications related to secure modules
US20080196024A1 (en) * 2007-02-08 2008-08-14 Ibm Corporation Method and Apparatus for Changing Software Components in an Information Handling System
ES2404807T3 (es) * 2007-03-02 2013-05-29 Panasonic Corporation Aparato de reproducción, LSI de sistema, y método de inicialización
JP2011517859A (ja) 2007-08-06 2011-06-16 モンセーヌ,ベルナール ドゥ 認証、データ転送およびフィッシング対策のためのシステムおよび方法
US7929959B2 (en) * 2007-09-01 2011-04-19 Apple Inc. Service provider activation
US20110143661A1 (en) 2007-11-30 2011-06-16 Nokia Corporation Method, device and system for firmware update by near-field communication
US7860836B1 (en) * 2007-12-26 2010-12-28 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to recover data in a continuous data protection environment using a journal
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8275858B2 (en) * 2008-09-18 2012-09-25 Mitac Technology Corp. Method for updating firmware of radio frequency identification reader through network system
US8171547B2 (en) 2008-12-03 2012-05-01 Trend Micro Incorporated Method and system for real time classification of events in computer integrity system
US9020009B2 (en) 2009-05-11 2015-04-28 Qualcomm Incorporated Inserted pilot construction for an echo cancellation repeater
EP2597779B1 (en) * 2010-07-23 2016-10-12 Panasonic Intellectual Property Corporation of America Nfc communication apparatus and method for controlling same
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
CN102742256B (zh) * 2010-12-06 2015-09-16 松下电器(美国)知识产权公司 通信装置、通信方法及通信系统
US8745612B1 (en) * 2011-01-14 2014-06-03 Google Inc. Secure versioning of software packages
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US20130125108A1 (en) * 2011-11-16 2013-05-16 General Electric Company System and method for upgrading firmware
CN102662699A (zh) 2012-03-27 2012-09-12 惠州Tcl移动通信有限公司 一种更新移动终端nfc固件的方法及其移动终端
US9068858B2 (en) * 2012-04-13 2015-06-30 Elster Solutions, Llc Generic and secure AMI end device configuration
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
GB2507596B (en) * 2012-10-30 2014-09-17 Barclays Bank Plc Secure computing device and method
US20140250290A1 (en) * 2013-03-01 2014-09-04 St-Ericsson Sa Method for Software Anti-Rollback Recovery

Also Published As

Publication number Publication date
KR20150083878A (ko) 2015-07-20
US20140130151A1 (en) 2014-05-08
CN104798040A (zh) 2015-07-22
WO2014074674A1 (en) 2014-05-15
JP2015533444A (ja) 2015-11-24
EP2917828A1 (en) 2015-09-16
US9910659B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
JP6321023B2 (ja) 内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるための方法
JP6793216B2 (ja) ソフトウェアアプリケーションの信頼を最初に確立し、かつ定期的に確認するシステム及び方法
US20200265418A1 (en) Electronic device and method for providing digital signature service of block chain using the same
US8239674B2 (en) System and method of protecting files from unauthorized modification or deletion
US9779232B1 (en) Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
US9348575B2 (en) Update of a data-carrier application
CN103404099B (zh) 耦合到nfc电路的电信设备中的通信管道的管理
US9817972B2 (en) Electronic assembly comprising a disabling module
WO2019195957A1 (zh) 一种移动终端的访问控制方法、装置、终端及存储介质
JP2019517229A (ja) ポータブル電子デバイスと関連したデジタルシークレットの生成、格納、管理および使用のためのシステムおよび方法
US20170286873A1 (en) Electronic ticket management
Alattar et al. Host-based card emulation: Development, security, and ecosystem impact analysis
CN114450663A (zh) 使用安全集成电路来更新固件的电子装置及其操作方法
US11722307B2 (en) Electronic device for processing digital key, and operation method therefor
JP6926349B2 (ja) 商用オフザシェルフ又はモノのインターネットデバイスを使用して安全な金融取引を処理するための方法
CN104348616A (zh) 一种访问终端安全组件的方法、装置及系统
KR101385723B1 (ko) 금융거래를 수행할 수 있는 디지털 시스템, 상기 디지털 시스템과 페어를 이루는 페어 시스템, 및 금융거래 방법
US12022294B2 (en) Access control for Near Field Communication functions
Ju et al. The Issue of Data Transfer for the Embedded SE on Mobile Devices
KR20130135034A (ko) 권리자 식별정보가 기록된 디지털 시스템 및 그 제공방법
KR20140083935A (ko) 권리자 식별정보가 기록된 디지털 시스템, 응용 시스템, 및 서비스 시스템
KR20130126446A (ko) 금융거래를 수행할 수 있는 디지털 시스템, 상기 디지털 시스템과 페어를 이루는 페어 시스템, 및 금융거래 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180404

R150 Certificate of patent or registration of utility model

Ref document number: 6321023

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250