(57)【特許請求の範囲】
【請求項１】
ニアフィールド通信（ＮＦＣ）デバイスにおいてアンチロールバック保護を与えるための方法であって、
前記ＮＦＣデバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、前記ＮＦＣデバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないことと
を備える方法。
【請求項２】
アンチロールバック保護を与えるためのニアフィールド通信（ＮＦＣ）デバイスであって、
１つまたは複数プロセッサと、
前記ＮＦＣデバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得するための手段と、ここにおいて、前記ＮＦＣデバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得するための手段と、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないための手段と
を備えるＮＦＣデバイス。
【請求項３】
前記ＮＦＣデバイスがＮＦＣコントローラを備える、請求項１に記載の方法。
【請求項４】
前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、請求項１に記載の方法。
【請求項５】
前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、請求項１に記載の方法。
【請求項６】
前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、請求項１に記載の方法。
【請求項７】
前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、請求項６に記載の方法。
【請求項８】
前記ＬＡＦＶＮが制御当局によって更新される、請求項１に記載の方法。
【請求項９】
前記第１のファームウェアインスタレーションが前記ＮＦＣデバイス上の既存のファームウェアの部分更新である、請求項１に記載の方法。
【請求項１０】
前記第１のファームウェアインスタレーションが前記ＮＦＣデバイス上の既存のファームウェアの全更新である、請求項１に記載の方法。
【請求項１１】
前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、請求項１に記載の方法。
【請求項１２】
前記第１のファームウェアインスタレーションに関連するデジタル署名に基づいて前記第１のファームウェアインスタレーションを認証することをさらに備える、請求項１に記載の方法。
【請求項１３】
前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、請求項１に記載の方法。
【請求項１４】
前記第１のファームウェアインスタレーションに関連するデジタル署名に基づいて前記第１のファームウェアインスタレーションを認証するための手段をさらに備える、請求項２に記載のＮＦＣデバイス。
【請求項１５】
実行されたとき、請求項１、請求項３から請求項１３に従って方法のステップを実行するためのコンピュータ実行可能命令を備える、コンピュータプログラム。
【請求項１６】
前記ＮＦＣデバイスがＮＦＣコントローラを備える、請求項２に記載のＮＦＣデバイス。
【請求項１７】
前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、請求項２に記載のＮＦＣデバイス。
【請求項１８】
前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、請求項２に記載のＮＦＣデバイス。
【請求項１９】
前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、請求項２に記載のＮＦＣデバイス。
【請求項２０】
前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、請求項１９に記載のＮＦＣデバイス。
【請求項２１】
前記ＬＡＦＶＮが制御当局によって更新される、請求項２に記載のＮＦＣデバイス。
【請求項２２】
前記第１のファームウェアインスタレーションが前記ＮＦＣデバイス上の既存のファームウェアの部分更新である、請求項２に記載のＮＦＣデバイス。
【請求項２３】
前記第１のファームウェアインスタレーションが前記ＮＦＣデバイス上の既存のファームウェアの全更新である、請求項２に記載のＮＦＣデバイス。
【請求項２４】
前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、請求項２に記載のＮＦＣデバイス。
【請求項２５】
前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、請求項２に記載のＮＦＣデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]本開示の態様は、ニアフィールド通信（ＮＦＣ：Near Field Communication）技術を用いたデバイスに関する。ＮＦＣ技術は、異なるデバイスを互いに接触させることまたはそれらを極近傍に持ってくることによって、異なるデバイス間の無線通信を確立することができる。ＮＦＣは双方向通信を可能にする。たとえば、両方のデバイスが電力供給されたとき、ＮＦＣピアツーピア通信が行われることがある。さらに、ＮＦＣデバイスと電力供給されないＮＦＣチップとの間の通信も可能である。たとえば、ＮＦＣは、イニシエータ（initiator）とターゲットとを伴うことができ、ここで、イニシエータは、受動ターゲット（たとえば、タグ、キーフォブ、カード）に電力供給することができる無線周波数フィールドを生成する。
【０００２】
[0002]ＮＦＣ技術は、支払トランザクションなど、セキュアトランザクションにおける情報交換を可能にすることができる。ＮＦＣ対応モバイルデバイスは、クレジットカードと電子チケットスマートカードとにおいて現在使用されているものと同様の、非接触支払システムにおいて使用され得る。たとえば、ＮＦＣ対応モバイルデバイスは、ユーザが、金融口座を仮想財布に記憶することと、次いで、そのような支払方法を受け付ける端末においてＮＦＣ対応モバイルデバイスを使用することとを可能にする。ＮＦＣ対応モバイルデバイスはまた、物理的アクセス（たとえば、ホテルの部屋）または制御（たとえば、車を始動させること）のいずれかのための旧来の鍵に取って代わることなど、アクセス制御のための識別情報として使用され得る。ＮＦＣは他のタイプの情報を可能にすることができる（たとえば、モバイルフォン間でメディアを転送すること、会場入場のためのチケット発行）。
【０００３】
[0003]ＮＦＣ対応モバイルデバイスがセキュアトランザクションに関与することができるとすれば、ＮＦＣ対応モバイルデバイスが悪意のある攻撃から保護されることは重要である。ソフトウェアセキュリティは、概して、システム内で複数の手法を階層化することによって与えられるが、重要な考慮事項は、システムがソフトウェアの最新で最もセキュアなバージョンを実行しているべきであることである。
【０００４】
[0004]システムに対して通常使用される攻撃ベクトルはロールバック攻撃（rollback attack）であり、ロールバック攻撃では、システムは、最新バージョンではなく、より古い、非セキュアソフトウェアバージョンを実行させられる。より古いソフトウェアバージョンを実行することは、システムを潜在的攻撃に対してより脆弱にすることがある。したがって、ロールバック攻撃を防ぐために、ソフトウェアを更新またはインストールするときに、最新のソフトウェアバージョンがインストールされる必要がある。
【０００５】
[0005]アンチロールバック保護のための現在の手法は、モバイルデバイスのオペレーティングシステムが、インストールまたは更新されているソフトウェアのバージョン番号を検査するためのものである。しかしながら、攻撃者が、オペレーティングシステムにおける脆弱性を見つけて、コードを改ざんし、この保護機構をオーバーライド（override）することは、容易であり得る。
【０００６】
[0006]別の手法は、「最後にインストールされたバージョン」情報を与えるためにｅ−Ｆｕｓｅ技術を使用することである。ｅ−Ｆｕｓｅは物理的に書き直され得ないので、それらはかなりセキュアである。しかしながら、この手法は、一般に固定で比較的低い数の利用可能なヒューズがあり、これらが使い果たされると、さらなるアンチロールバック保護が提供され得ないので、いくつかの欠点を有する。したがって、ｅ−Ｆｕｓｅが正しい改訂番号で更新され得ないと、ロールバック攻撃の可能性がある。
【０００７】
[0007]たとえば、バージョン番号の更新があるたびに、ｅ−Ｆｕｓｅは新しいバージョン番号で更新される。したがって、ｅ−Ｆｕｓｅ技術が１０個の更新を可能にする場合、第１１の更新時に、新しいバージョン番号がｅ−Ｆｕｓｅに記憶され得ない。
【０００８】
[0008]さらに、ｅ−Ｆｕｓｅ手法では、チップへの物理的アクセスが必要とされ、これは単一のチップ上にしか実装され得ない。したがって、ｅ−Ｆｕｓｅ手法はスケーラブルではない。ｅ−Ｆｕｓｅ手法では、その実装は、チップ製造工場において行われる必要がある。
【発明の概要】
【０００９】
[0009]内部不揮発性メモリを有しないデバイスにおいてアンチロールバック保護を与えるいくつかの実施形態について説明する。
【００１０】
[0010]本発明の様々な実施形態は、ロールバック攻撃を防ぐために、デバイス上にダウンロードされている新しいファームウェアバージョンが前のバージョンよりも高いことを保証する。ファームウェアバージョンが増分的に増加するので、潜在的ファームウェアアップグレードバージョンをセキュア要素環境に記憶されたバージョン番号と比較することによって、デバイスはロールバック攻撃から保護され得る。さらに、バージョン番号がモバイルデバイスのセキュア要素環境に記憶されるので、本発明は、デバイスが内部不揮発性メモリなしであるときでも、起動中にアンチロールバック保護を与える。さらに、本発明の実施形態は、ソフトウェアおよびハードウェア攻撃から保護することができる。
【００１１】
[0011]一実施形態は、デバイスにおいてアンチロールバック保護を与えるための方法であって、デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ：firmware version number）を取得することと、ここにおいて、デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号（ＬＡＦＶＮ：lowest acceptable firmware version number）を取得することと、ここにおいて、ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、ＦＶＮとＬＡＦＶＮとを比較し、ここにおいて、ＦＶＮがＬＡＦＶＮよりも小さい場合、第１のファームウェアインスタレーションを可能にしないこととを備える方法からなる。
【００１２】
[0012]別の実施形態は、アンチロールバック保護を与えるためのデバイスであって、１つまたは複数のプロセッサと、１つまたは複数のプロセッサによって実行されたとき、本デバイスに、本デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、本デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、ＦＶＮとＬＡＦＶＮとを比較し、ここにおいて、ＦＶＮがＬＡＦＶＮよりも小さい場合、第１のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ可読命令を記憶するメモリとを備えるデバイスからなる。
【００１３】
[0013]別の実施形態は、実行されたとき、デバイスに、デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、ＦＶＮとＬＡＦＶＮとを比較し、ここにおいて、ＦＶＮがＬＡＦＶＮよりも小さい場合、第１のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体からなる。
【００１４】
[0014]別の実施形態は、アンチロールバック保護を与えるためのデバイスであって、１つまたは複数のプロセッサと、本デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得するための手段と、ここにおいて、本デバイスが、不揮発性メモリを含まない基板上に実装される、最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得するための手段と、ここにおいて、ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、セキュア要素環境が、基板から分離されたメモリを利用する、ＦＶＮとＬＡＦＶＮとを比較し、ここにおいて、ＦＶＮがＬＡＦＶＮよりも小さい場合、第１のファームウェアインスタレーションを可能にしないための手段とを備えるデバイスからなる。
【００１５】
[0015]本開示の態様が例として示される。添付の図では、同様の参照番号が同様の要素を示す。
【図面の簡単な説明】
【００１６】
【図１Ａ】[0016]１つまたは複数の実施形態を組み込み得る、ＮＦＣ対応モバイルデバイスを用いたシステムの簡略図。
【図１Ｂ】[0017]１つまたは複数の実施形態を組み込み得る、少なくとも２つのＮＦＣ対応モバイルデバイスを用いたピアツーピア通信システムの簡略図。
【図２Ａ】[0018]本発明の一実施形態による、ＮＦＣ対応モバイルデバイスを示すブロック図。
【図２Ｂ】[0019]本発明の別の実施形態による、ＮＦＣ対応モバイルデバイスを示すブロック図。
【図２Ｃ】[0020]本発明の別の実施形態による、ＮＦＣ対応モバイルデバイスを示すブロック図。
【図３】[0021]いくつかの実施形態による、アンチロールバック保護を与える例示的な方法を示す図。
【図４】[0022]いくつかの実施形態による、システムレベルフローチャートの一例を示す図。
【図５】[0023]いくつかの実施形態による、ＮＦＣＣ起動と、ファームウェアインスタレーションと、署名認証との一例を示す図。
【図６】[0024]いくつかの実施形態による、セキュア環境に記憶された最後にインストールされたファームウェアバージョンの番号を更新する例示的な方法の図。
【図７】[0025]いくつかの実施形態による、強制更新の後にセキュア環境に記憶された最後にインストールされたファームウェアバージョンの番号を更新する例示的な方法の図。
【図８】[0026]１つまたは複数の実施形態が実装され得る、コンピューティングシステムの一例を示す図。
【発明を実施するための形態】
【００１７】
[0027]次に、本出願の一部を形成する、添付の図面に関していくつかの例示的な実施形態について説明する。本開示の１つまたは複数の態様が実装され得る、特定の実施形態について以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨を逸脱することなく、他の実施形態が使用され得、様々な変更が行われ得る。
【００１８】
[0028]ＮＦＣ技術は、ＮＦＣコントローラ（ＮＦＣＣ：NFC controller）が機密のまたは有益な情報（たとえば支払トランザクション）のためのトランスポートとして使用されることを必要とすることがある。しかしながら、ＮＦＣ技術はまた、盗聴に対して脆弱であり得る。したがって、ＮＦＣＣは、トランスポートするためにＮＦＣＣが使用される、データに対する攻撃ベクトルとして使用されることなど、盗聴からセキュアである必要がある。特に、ＮＦＣＣが、それがトランスポートするデータに対する中間者（ＭＩＴＭ：Man-in-the-Middle）攻撃のホストとして使用され得ないことを保証することが望ましい。
【００１９】
[0029]ＭＩＴＭ攻撃は、攻撃者が、被害者（たとえば、イニシエータ、ターゲット）との独立した接続を行い、それらの間でメッセージを中継する形態の、アクティブ盗聴であり、実際は会話が攻撃者によって制御されるとき、被害者が直接互いに話していると被害者に信じさせる。
【００２０】
[0030]ＭＩＴＭ攻撃は、ＮＦＣＣがファームウェアのより古いバージョンを実行している場合、特に、より古いバージョンが既知のセキュリティ問題を有するとき、ＮＦＣＣによってホストされ得る。たとえば、ファームウェア更新中に、モバイルデバイス上で実行している高レベルアプリケーションがＮＦＣＣを構成し、ＮＦＣＣ上でのファームウェアインスタレーション（たとえば、パッチ）を要求することができる。しかしながら、攻撃者は、ＮＦＣＣ上のファームウェアをより古いバージョンにロールバックするためにそのファームウェアインスタレーション要求を使用することができる。高レベルアプリケーションは、ＮＦＣＣ（たとえば、ＮＦＣコントローラインターフェース（ＮＣＩ：NFC Controller Interface））と通信するために標準プロトコルを使用し得るか、または高レベルアプリケーションはプロプライエタリ機構を使用し得る。本発明は、ファームウェアインスタレーション中にアンチロールバック保護を与えることができる。
【００２１】
[0031]図１Ａに、１つまたは複数の実施形態を組み込み得る、ＮＦＣ対応モバイルデバイスを用いたシステムの簡略図を示す。
【００２２】
[0032]図１Ａに示された、本発明の一実施形態によるＮＦＣモジュール１４０が、モバイルデバイス１１０中に取り付けられ得る。モバイルデバイス１１０は、アプリケーションプロセッサ１２０と加入者識別モジュール（ＳＩＭ）カード１３０とをも含むことができる。ＮＦＣモジュール１４０は、接触または非接触ＮＦＣを介してカードリーダ１５０に通信し得る。ＮＦＣモジュール１４０はＮＦＣコントローラ（ＮＦＣＣ）１４５を含むことができる。この実施形態によれば、ＮＦＣＣ１４５はＮＦＣモジュール１４０中に埋め込まれる。アプリケーションプロセッサは、ＮＦＣモジュール１４０およびＮＦＣＣ１４５と通信するために高レベルアプリケーション（たとえば、支払処理アプリケーション、オペレーティングシステム）を含むことができる。
【００２３】
[0033]ＮＦＣ対応モバイルデバイス通信の一例としては、購入された商品について小売業者に支払うことを望むユーザがモバイルデバイスを使用することがあり得る。モバイルデバイスは、レジ（checkout）に位置するポイントオブセールカードリーダ１５０に個人金融情報（たとえば、クレジットカード口座情報）を送信し得る。ユーザは、購入を完了するために、ＮＦＣモジュール１４０を搭載したモバイルデバイス１１０をカードリーダ１５０の近くに持ってくることがある。カードリーダ１５０は、ＮＦＣを介して、モバイルデバイス１１０のセキュア環境に通常記憶される、ユーザのクレジットカード詳細を受信し、従来の方法を用いて支払を処理し、モバイルデバイス１１０に記憶され得る電子レシートをユーザに返信する。
【００２４】
[0034]さらに、本発明の一実施形態による、第２のＮＦＣモジュール１９０が、図１Ｂに示すように、第２のモバイルデバイス１６０中に取り付けられ、モバイルデバイス１１０とのピアツーピア通信を可能にし得る。モバイルデバイス１１０と同様に、第２のモバイルデバイス１６０も、アプリケーションプロセッサ１７０と、ＳＩＭカード１８０と、第２のＮＦＣモジュール１９０とを含むことができる。第２のＮＦＣモジュール１９０は第２のＮＦＣＣ１９５を含むことができる。
【００２５】
[0035]ピアツーピア通信の一例としては、両方の当事者がそれらのＮＦＣ対応モバイルデバイスを互いの極近傍内に持ってくることによって、あるユーザがＮＦＣを介して第２のユーザに画像、ビデオおよび他の情報を転送することがあり得る。それらのデバイスが極近傍にあるとき、ＮＦＣモジュール１４０は、認証情報を含む、情報を第２のＮＦＣモジュール１９０に送信することを試みることができる。第２のＮＦＣモジュール１９０がその情報を受信し、認証を実施した後、２つのデバイスは情報を共有することができる。
【００２６】
[0036]いくつかの実施形態によれば、モバイルデバイス１１０は、セキュア環境においてデータを取り出すことまたは記憶することに関連してＮＦＣモジュール１４０を利用する。たとえば、モバイルデバイス１１０は、セキュア要素環境に記憶されたクレジットカードデータを取得し、ＮＦＣモジュール１４０を介してそれをトランスポートすることができる。さらに、（たとえば、金融トランザクションを行う際に）機密情報を扱うためにＮＦＣが使用され得るので、ＮＦＣ対応モバイルデバイスは、たいがいセキュア要素環境を含むことができる。したがって、本発明は、デバイス（たとえば、ＮＦＣＣ１４５）が内部不揮発性メモリを有しないとき、バージョン番号を記憶するためにセキュア要素環境を利用することができる。
【００２７】
[0037]モバイルクレジットカード支払処理トランザクションが、セキュア要素環境に関連してＮＦＣＣ１４５を利用するモバイルデバイス１１０を伴うトランザクションの一例である。この例では、ＮＦＣＣ１４５は、クレジットカード情報が記憶された、セキュア要素環境と、トランザクションを可能にするために使用されるアプリケーションプロセッサ１２０との間の中間当事者であり得る。したがって、モバイルデバイスによって支払処理のために使用されるアプリケーションプロセッサ１２０は、ＮＦＣＣ１４５を使用することによってカードリーダ１５０に機密金融情報を送信することができる。さらに、アプリケーションプロセッサ１２０とＮＦＣＣ１４５の両方が、この支払処理トランザクションを可能にするために機密データを取り出すためにセキュア要素環境と通信することができる。
【００２８】
[0038]上記の例は、ＮＦＣＣ１４５が機密情報を扱うので、ＮＦＣＣもモバイルデバイス１１０のセキュア要素環境へのアクセスを有することができることを示している。さらに、ＮＦＣＣ１４５は、周期ファームウェアアップグレードを有し得る、ファームウェア構成要素を有し得る。したがって、セキュリティの観点から、ＮＦＣＣ１４５上のファームウェアは、特に、より古いバージョンが、それに関連するいくつかのセキュリティ問題を有した場合、より古いバージョンにロールバックされるのを防がれるべきである。ＮＦＣＣ１４５をＭＩＴＭ攻撃のための機構として使用するためにＮＦＣＣ１４５を破損するために、ＮＦＣＣ１４５上のより古いファームウェアバージョンが使用され得る。
【００２９】
[0039]したがって、ロールバック攻撃を防ぐために、ＮＦＣＣ１４５上のファームウェアを更新するときに、最新のファームウェアバージョンがインストールされる必要がある。本発明のいくつかの実施形態によれば、ＮＦＣＣ１４５は、現在ファームウェアバージョン番号（ＦＶＮ）と対照して、モバイルデバイスがインストールすることを希望するインスタレーションファイルのファームウェアバージョン番号を検査することができる。これは、現在ファームウェアバージョン番号に関連することがある、最小許容ファームウェアバージョン番号（ＬＡＦＶＮ：least acceptable firmware version number）をモバイルデバイス１１０のセキュア要素環境に記憶することによって行われ得る。ＬＡＦＶＮは、ロールバックを防ぐためにＦＶＮと比較するために使用され得る。
【００３０】
[0040]本発明は、ロールバック攻撃を防ぐために、ＮＦＣＣ１４５上にダウンロードされている新しいファームウェアバージョンが前のバージョンよりも高いことを保証し得る。ファームウェアバージョンが増分的に増加するので、潜在的ファームウェアアップグレードバージョンをＬＡＦＶＮと比較することによって、ＮＦＣＣ１４５はロールバック攻撃から保護され得る。さらに、ＬＡＦＶＮがモバイルデバイスのセキュア要素環境に記憶されるので、本発明は、依然として、デバイス（たとえば、ＮＦＣＣ１４５）が不揮発性メモリなしであるときでも、起動中にアンチロールバック保護を与える。
【００３１】
[0041]ソフトウェアシステムにおけるアンチロールバック保護のための手法は、デバイス（たとえば、ＮＦＣＣ１４５）中の不揮発性メモリの使用を含むことだった。しかしながら、この手法は、デバイス（たとえば、ＮＦＣＣ１４５）中の書き換え可能な不揮発性メモリの存在を必要とし、これは、特に、デバイスが小さい形状（たとえば、＜６５ｎｍ）において実装されるとき、コストがかかるとともに、比較的信頼できない。
【００３２】
[0042]たとえば、ＮＦＣＣ１４５は、半導体材料の薄い基板の表面に製造され得る。ＮＦＣＣ１４５などのデバイスを実装するために使用される集積回路（ＩＣ）は、より小さい形状に移行し、より多くの回路が各チップ上にパックされることを可能にした。単位面積当たりのこの増加した容量は、コストを減少させるおよび／または機能を増加させるために、使用され得る。しかしながら、ナノメートルスケールデバイスをもつＩＣは、それらの問題がなきにしもあらずであり、その問題のうち、主なものはリーク電流である。したがって、ＩＣが正しく動作することを保証するために半導体製造業者によって設計ルールが与えられる。設計ルールセットが、半導体製造プロセスにおける変動性を考慮するのに十分なマージンを保証するために、いくつかの形状および接続性制限を指定する。したがって、デバイス（たとえば、ＮＦＣＣ１４５）が小さい形状（たとえば、＜６５ｎｍ）において実装されるとき、デバイスは不揮発性メモリなしに設計され得、これは設計ルールに基づき得る。
【００３３】
[0043]したがって、いくつかのデバイス（たとえば、ＮＦＣＣ１４５）は、そのデバイスがそれの上に製造された基板が、不揮発性メモリをサポートしないので、不揮発性メモリへのアクセスを有しないことがある。本発明の実施形態によれば、アンチロールバック保護が、セキュアロケーションに最小許容ファームウェアバージョン番号を記憶することによって与えられる。モバイルデバイスは、不揮発性メモリをサポートする他の基板上に製造された他の構成要素を含むことができる。たとえば、セキュア要素環境は、小さい形状を有しない、および不揮発性メモリを含み得る、別の基板上に製造され得る。したがって、いくつかの実施形態によれば、最小許容ファームウェア番号は、セキュア要素環境の不揮発性メモリに記憶され得る。
【００３４】
[0044]アンチロールバック保護の以前の方法は、アプリケーションレベルにおいて最小許容ファームウェアバージョン番号を記憶することを含む。しかしながら、アプリケーションレベルは、モバイルデバイス中の高レベルアプリケーションが容易に攻撃され得るので、十分にセキュアでないことがある。
【００３５】
[0045]たとえば、高レベルソフトウェアアプリケーションは、オペレーティングシステムレベルにおけるアプリケーションであり得る。しかしながら、オペレーティングシステム（たとえば、Ａｎｄｒｏｉｄ（登録商標）オペレーティングシステム）のためのソースコードがオープンソースコードであり得る。したがって、オープンソースコードは攻撃に対して脆弱であり得る。攻撃者がソフトウェアにおける脆弱性を見つけることは容易であり得、したがって、高レベルソフトウェアアプリケーションに極めて機密性の高い情報を記憶しないことがベストプラクティスである。
【００３６】
[0046]たとえば、高レベルソフトウェアアプリケーションはルーピング攻撃に対して脆弱得、これにより、攻撃者はモバイルデバイス上のスーパーユーザ特権を得ることができる。スーパーユーザ特権がある場合、攻撃者はＮＦＣＣ１４５を制御することができる。したがって、セキュリティの観点から、高レベルソフトウェアアプリケーションレイヤにおいて機密情報を記憶することは、それが改ざんされ得るので、ベストプラクティスではない。
【００３７】
[0047]本発明の実施形態は、セキュア要素環境にファームウェアのバージョン番号を記憶することによって、上述の不足を克服する。本発明は、ＮＦＣ対応モバイルデバイス１１０がセキュア要素環境をも含むということを利用することができる。したがって、高レベルソフトウェアアプリケーションレイヤの代わりにセキュア要素環境においてバージョン番号を記憶することによって、モバイルデバイスは、攻撃に対してあまり脆弱でないことがある。ある実施形態では、セキュア要素環境は、いかなる外部プログラム、バスまたはデバイスポートによってもアクセスまたは改ざんされ得ない、セキュアメモリ実行パーティションである。
【００３８】
[0048]さらに、前述のｅ−Ｆｕｓｅ手法とは異なり、本発明の実施形態では、バージョン番号が更新される回数に制限がないことがある。セキュア要素環境は、更新されたバージョン番号を含むように常に書き直され得る。モバイルデバイス１１０のセキュア要素環境にバージョン番号を記憶することによって、それは、より良いアンチロールバック保護を与えることができるので、よりロバストなシステムを生じることができる。
【００３９】
[0049]本発明の実施形態は、不揮発性メモリを使用せずにアンチロールバック保護を与えることができる。不揮発性メモリは、小さい形状（たとえば、＜６５ｎｍ）ではコストがかかることがあり、信頼できないことがある。前述のように、ＮＦＣＣは、小さい形状をもつ基板上に製造されたチップ上で実施され得る。したがって、ＮＦＣＣは内部不揮発性メモリを有しないことがある。さらに、ＮＦＣＣ実装形態に対するコスト圧力は、内部不揮発性メモリを使用せずにロールバック攻撃からの保護を与える機構を見つけることが望ましいことを意味する。さらに、より古いファームウェアバージョンへのロールバックを可能にするためにハードウェア攻撃を使用して不揮発性メモリを変更することが可能得る。
【００４０】
[0050]したがって、ＮＦＣＣファームウェアアップグレードが開始されるとき、本発明の実施形態は、ハードウェアおよびソフトウェア攻撃からのアンチロールバック保護を与えるためにバージョン番号が上がっていることを保証するために、セキュア要素環境に記憶されたＬＡＦＶＮと対照してバージョン番号を検査する。
【００４１】
[0051]セキュア実行環境
[0052]本発明の実施形態によれば、２つの異なるタイプのセキュア要素環境が考慮される。これらは、セキュア実行環境（ＳＥＥ：Secure Execution Environment）および信頼実行環境（ＴＥＥ：Trusted Execution Environment）とも呼ばれる、スタンドアロンセキュア要素である。
【００４２】
[0053]ＳＥＥは、ソフトウェアと改ざん防止ハードウェアとから構成される。ＴＥＥについては信頼実行要素セクションにおいて説明する。ＳＥＥは、改ざん防止であるように、および機密情報を記憶するように、特別に設計されるので、ガードのように機能する。それは、高レベルのセキュリティを与えることができ、（以下のセクションでより詳細に説明する）ＴＥＥとともに動作することができる。たとえば、セキュア要素環境は、セキュア要素環境によって与えられる高いレベルのセキュリティのため、モバイル支払アプリケーションによって利用され得る。いくつかの実施形態では、ＳＥＥは、外部プログラムによってアクセスされ得ないセキュアメモリ実行である。さらに、ＳＥＥは、ＳＥＥに記憶されたポリシーに従って命令を執行し得る。
【００４３】
[0054]ＳＥＥは、ハードウェア攻撃から保護するように特別に設計される。たとえば、ハードウェア攻撃は侵入攻撃であり得る。侵入攻撃は、内部ラインへの電気的接触を得るためにチップをデパッケージングすることと、パッシベーション層を除去するために酸を使用することとを含むことができる。さらに、ハードウェア攻撃は半侵入攻撃でもあり得る。半侵入攻撃は、チップの表面へのアクセスを得るためにチップをデパッケージングすることを含むことができるが、パッシベーション層はそのままである。
【００４４】
[0055]ソフトウェア攻撃からの保護を与えるにすぎないアンチロールバック保護のための以前の方法（たとえば、ＴｒｕｓｔＺｏｎｅ技術、ソフトウェアベースのバージョン制御）とは異なり、本発明は、ソフトウェアおよびハードウェア攻撃からのアンチロールバック保護を与える。ＳＥＥにファームウェアバージョン番号を記憶することによって、本発明は、ソフトウェアおよびハードウェア攻撃から保護することができる。本発明は、セキュア要素環境がＮＦＣ対応モバイルデバイス中にすでに存在することを利用する。
【００４５】
[0056]ＳＥＥは、それのセキュリティ機能（たとえば、セキュア火災システム、データパーティション、アクセス制御、別個のオペレーティングシステム）のため、機密情報を記憶するように特別に設計される。さらに、ＳＥＥはスタックの他の部分から隔離され得る。したがって、ＳＥＥの性質は、それをデータを記憶するための理想的なロケーションにする。たとえば、セルラーネットワークのための機密サブスクリプション鍵をも記憶する、ＳＩＭカードはＳＥＥであり得る。
【００４６】
[0057]いくつかの実施形態によれば、ＳＥＥは不揮発性メモリを含み得る。前述のように、ＳＥＥは、ＮＦＣＣ１４５とは異なる基板上に製造され得る。たとえば、ＳＥＥは、不揮発性メモリとともに設計され得る基板上に製造され得る。
【００４７】
[0058]異なる実施形態によれば、セキュア要素環境はＳＥＥ（たとえば、ＳＩＭカード）またはＴＥＥ（たとえば、チップのハードウェア被区分セキュアセクション）であり得る。ＮＦＣ対応モバイルデバイスは、ＮＦＣＣ１４５に接続されたセキュア要素環境を有し得る。したがって、ＮＦＣＣ１４５は、機密データを取得するためにセキュア要素環境とインターフェースし得る。
【００４８】
[0059]別の実施形態によれば、制御当局（controlling authority）（たとえば、相手先商標製造会社（ＯＥＭ））が、ＳＩＭカードに加えて、ＯＥＭ制御されたセキュア要素環境を有し得る。この実施形態では、ＮＦＣＣ１４５は、ＳＩＭカードへのアクセスを有しないことがあるが、ＯＥＭ制御されたセキュア要素環境へのアクセスを有する。したがって、ＯＥＭによって制御されたセキュア要素環境はＮＦＣＣ１４５によっても使用される。これは、ＳＩＭカードがリムーバブルで交換可能であり得るので、より大きいセキュリティを与え得る。
【００４９】
[0060]したがって、セキュア要素環境にバージョン番号を記憶することによって、それは、攻撃者がセキュア要素環境を脅かす必要があり、これが、スタックの他の部分を脅かすことほど単純ではないので、攻撃者がファームウェアをより古いバージョンにロールバックすることをより難しくすることができる。セキュリティの観点から、セキュア要素環境にバージョン番号を記憶することは、攻撃者がバージョン番号を破損することの危険を低下させる。
【００５０】
[0061]図２Ａは、本発明の一実施形態による、ＮＦＣ対応モバイルデバイス１１０を示すブロック図である。図２Ａを参照すると、モバイルデバイス１１０は、アプリケーションプロセッサ１２０と、ＳＩＭカード１３０と、ＮＦＣコントローラ（ＮＦＣＣ）１４５を含むＮＦＣモジュール１４０とを含む。この実施形態によれば、セキュア要素環境（たとえば、セキュア実行環境（ＳＥＥ）２２０）もＮＦＣモジュール１４０中に埋め込まれる。アプリケーションプロセッサは、ＮＦＣモジュール１４０およびＮＦＣＣ１４５と通信するために高レベルアプリケーション（たとえば、支払処理アプリケーション、オペレーティングシステム）を含むことができる。
【００５１】
[0062]図２Ａに示されているように、ＳＥＥ２２０はＮＦＣモジュール１４０中に埋め込まれ得る。この実施形態の一例としては、埋込みＳＥＥをもつＮＦＣチップがある。この例では、ＮＦＣモジュールは、最後にインストールされたバージョンの番号を受信するためにＳＩＭカードと通信する必要がないことがある。
【００５２】
[0063]図２Ｂは、本発明の別の実施形態による、ＮＦＣ対応モバイルデバイスを示すブロック図である。この実施形態によれば、ＳＥＥ２２０はＳＩＭカード１３０中に埋め込まれる。この例では、ＮＦＣモジュールは、最後にインストールされたバージョンの番号を受信するためにＳＩＭカード１３０と通信し得る。
【００５３】
[0064]図２Ｃは、本発明の別の実施形態による、ＮＦＣ対応モバイルデバイスを示すブロック図である。この実施形態によれば、ＳＥＥ２２０は外部ＳＤカード２３０に記憶される。ＳＤカード２３０は、メモリ２４０と、ＳＥＥ２２０と通信することができるコントローラ２５０とを含み得る。この例では、ＮＦＣモジュールは、最後にインストールされたバージョンの番号を受信するためにＳＤカードと通信し得、ＮＦＣモジュールはＳＩＭカード１３０と通信する必要がないことがある。
【００５４】
[0065]信頼実行環境
[0066]別の実施形態によれば、セキュア要素環境はＴＥＥであり得る。ＴＥＥは、モバイルデバイスのメインプロセッサ中に常駐することができるセキュアエリアである。ＳＥＥと同様に、ＴＥＥは、機密データが信頼できる環境において記憶され、処理され、保護されることを保証することができる。ＴＥＥは、保護、機密性、完全性およびデータアクセス権を執行することによって、許可されたセキュリティソフトウェア（たとえば、信頼できるアプリケーション）を実行し、エンドツーエンドセキュリティを与えることができる。ＴＥＥは、ソフトウェアおよびハードウェアからなることができ、ソフトウェア攻撃からの保護の追加のレベルを与えるために使用され得る。ＴＥＥは、アクセス権の制御を支援し、機密アプリケーションを記憶する。たとえば、ＴＥＥは、システムオンチップ（ＳｏＣ：System-on-a-Chip）のハードウェア保護パーティションにおけるセキュアエリアであり得る。ＴＥＥの別の例としては、一意のデバイス鍵をもつセキュアストレージ、および、モバイルデバイスの残部から隔離された、コードが実行され得る実行環境があり得る。ＴＥＥはまた、ＳＥＥに直接記憶された情報へのアクセスをフィルタ処理し得る。
【００５５】
[0067]ＴＥＥは、オペレーティングシステムと並列に動作する隔離環境であり、モバイルデバイスにセキュリティサービスを与えることができる。ＴＥＥは、オペレーティングシステムよりもセキュアであることがあるが、ＳＥＥほどセキュアでないことがある。したがって、ＴＥＥは、ＳＥＥの高レベル保護とオペレーティングシステムの低レベル保護との間のセキュア環境を提供し得る。
【００５６】
[0068]いくつかの実施形態によれば、ＴＥＥは不揮発性メモリを含むことができる。前述のように、ＴＥＥを含むチップは、ＮＦＣＣ１４５とは異なる基板上に製造され得る。たとえば、ＴＥＥを含むチップが、不揮発性メモリとともに設計され得る。
【００５７】
[0069]アンチロールバック保護のためにＳＥＥおよび／またはＴＥＥを利用すること
[0070]図３は、不揮発性メモリなしのデバイス（たとえば、ＮＦＣＣ１４５）にアンチロールバック保護を与えるためのステップのシーケンス３００を概説するフローチャートである。動作は、ステップ３０５において、モバイルデバイスが、セキュア要素環境に最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を記憶するとき、開始する。前述のように、ＳＥＥおよびＴＥＥはセキュア要素環境の２つの例である。ＬＡＦＶＮは、ＮＦＣＣ１４５上で実行しているファームウェアの現在バージョン番号に対応することができる。セキュアロケーションに現在バージョン番号を記憶することによって、本発明は、ソフトウェアおよびハードウェア攻撃から保護することによってロールバックおよびＭＩＴＭを防ぎ得る。
【００５８】
[0071]次に、ステップ３１０において、ＮＦＣモジュール１４０は、モバイルデバイスによるファームウェアインスタレーション要求に関連するファームウェアバージョン番号（ＦＶＮ）を取得する。高レベルアプリケーションまたは制御当局がファームウェアインスタレーションを要求することができる。ＮＦＣモジュール１４０は、アプリケーションプロセッサ１２０からファームウェアインスタレーション要求を受信することができる。さらに、ＮＦＣＣ１４５は、ＮＦＣＣファームウェアを更新するためにファームウェアインスタレーション要求を直接受信することができる。
【００５９】
[0072]次いでステップ３１５において、ＮＦＣモジュール１４０は、ＬＡＦＶＮをＦＶＮと比較する。さらに、ＮＦＣＣ１４５もその比較を行うことができる。その比較が、ＦＶＮがＬＡＦＶＮよりも小さいことを示す場合、これは、より古いバージョンにファームウェアをロールバックするための新しいインスタレーションを生じることがあり、本発明の実施形態は、その新しいインスタレーションが進むのを可能にしないことができる。
【００６０】
[0073]ステップ３２０に示すように、ＮＦＣモジュール１４０は、ファームウェアインスタレーションを可能にせず、好適なＦＶＮ（たとえば、少なくともＬＡＦＶＮに等しいＦＶＮ）をもつファームウェアインスタレーションをアップロードするようにモバイルデバイス１１０に要求することができる。別の実施形態によれば、アプリケーションプロセッサ１２０、ＮＦＣモジュール１４０またはＮＦＣＣ１４５は、ファームウェアインスタレーションを可能にしないことができる。このステップを例示するために、以下の例について説明し、ここにおいて、アプリケーションプロセッサ１２０を使用するモバイルデバイス１１０は、ＮＦＣＣ１４５上でＦＶＮに関連するファームウェアアップグレードを要求することができる。ＮＦＣＣ１４５は、より古いバージョンへのファームウェアのロールバックを防ぐために、セキュア要素環境からＬＡＦＶＮを取り出し、ＦＶＮをＬＡＦＶＮと比較することができる。その比較が、ＦＶＮがＬＡＦＶＮよりも小さいことを示す場合、ＮＦＣＣは、このファームウェアインスタレーションがより古いファームウェアバージョンへのロールバックであり得るので、それを可能にしない。
【００６１】
[0074]たとえば、受信されたＦＶＮはバージョン番号１．２であり、ＮＦＣＣは、それが、セキュア要素環境に記憶されたＬＡＦＶＮにより高いかまたはそれに等しいことを確認するために検査する。この例では、セキュア要素環境に記憶されたＬＡＦＶＮはバージョン番号１．３である。ＮＦＣＣ１４５がバージョン番号を受信すると、それはそれら２つの値を比較する。この例では、その比較は、ＦＶＮがＬＡＦＶＮにより高くないかまたはそれに等しくないことを示すことになり、したがってＮＦＣＣ１４５はインスタレーションを可能にしないことになる。セキュア要素環境に記憶されたバージョン番号が１．３であり、次のファームウェアアップグレードがバージョン１．３により高いかまたはそれに等しい必要があるので、ＮＦＣＣ１４５は、それがバージョン番号１．２をインストールすることができないことをモバイルデバイス１１０に通信することができる。
【００６２】
[0075]代替的に、その比較が、ＦＶＮがＬＡＦＶＮに等しいかまたはそれよりも大きいことを示す場合、プロセスはステップ３２５に続く。ステップ３２５において、モバイルデバイス１１０がファームウェアインスタレーションを可能にする。ＮＦＣモジュール１４０またはＮＦＣＣ１４５はファームウェアインスタレーションを可能にすることができる。このステップを例示するために、以下の例について説明し、ここにおいて、アプリケーションプロセッサ１２０を使用するモバイルデバイス１１０は、ＮＦＣＣ１４５上でＦＶＮに関連するファームウェアアップグレードを要求することができる。ＮＦＣＣ１４５は、より古いバージョンへのファームウェアのロールバックを防ぐために、セキュア要素環境からＬＡＦＶＮを取り出し、ＦＶＮをＬＡＦＶＮと比較することができる。この例では、その比較は、ＦＶＮがＬＡＦＶＮよりも大きいことを生じ、その場合、ＮＦＣＣ１４５は、ファームウェアが、ＮＦＣＣ１４５上で実行している現行バージョンからのアップグレードであるので、このファームウェアインスタレーションを可能にすることができる。
【００６３】
[0076]さらに、ＦＶＮがＬＡＦＶＮよりも大きい場合、ＬＡＦＶＮは、ＦＶＮに等しくなるように更新され得る。セキュア要素環境を更新するための方法について図６および図７においてより詳細に説明する。
【００６４】
[0077]図３は、本発明の一実施形態による、アンチロールバック保護を与えるための方法を示すが、図４は、本発明の一実施形態によるシステムレベルフローチャートを示す。
【００６５】
[0078]図４は、本発明の一実施形態による、モバイルデバイス中の構成要素間の通信ステップ４００を概説するフローチャートである。たとえば、ステップ４１０において、ＮＦＣＣ１４５のための起動シーケンスを開始する。起動シーケンス中に、ＮＦＣＣ１４５は、特に、内部不揮発性メモリがないとき、ロールバックに対して特に脆弱であり得る。起動シーケンスは、そのような権限を有する任意の構成要素（たとえば、モバイルデバイス、制御当局、高レベルアプリケーション、アプリケーションプロセッサ）によって開始され得る。ステップ４２０において、たとえば、モバイルデバイスは、要求されたファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を与える。ＦＶＮは、要求されたファームウェアインスタレーションファイルをＮＦＣＣ１４５に与えることができる任意の構成要素によってＮＦＣＣ１４５に与えられ得る。
【００６６】
[0079]ＮＦＣＣ１４５がＦＶＮを受信すると、ステップ４３０において、ＮＦＣＣ１４５は、ＮＦＣＣ１４５において実行することを可能にされた最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）について、ＳＥＥまたはＴＥＥに記憶された特定のアプリケーションまたはファイルを検査する。そのようなアプリケーションまたはファイルが見つからない場合、ステップ４４０に示すように、ＮＦＣＣはＦＶＮを受け付け、ステップ４７０に続く。別の実施形態によれば、ＮＦＣＣ１４５がセキュア要素環境を検査し、セキュア要素環境に記憶されたバージョンがないとき、ＮＦＣＣ１４５は、セキュア要素環境に改訂番号を書き込むことができる。
【００６７】
[0080]代替的に、アプリケーションまたはファイルがステップ４３０において見つかった場合、プロセスは比較ステップ４５０に進む。比較ステップ４５０は、図３からの比較ステップ３１５と同様である。比較ステップが、ＦＶＮがＬＡＦＶＮよりも小さくないことを示す場合、起動は通常通り続き、ステップ４７０に進む。しかしながら、比較ステップが、ＦＶＮがＬＡＦＶＮよりも小さいことを示す場合、それはステップ４６０に進み、ＮＦＣＣ１４５が、適切に更新されたファームウェアバージョンがアップロードされた後にのみ、起動が続くことができることをモバイルデバイス１１０に伝える。
【００６８】
[0081]図４は、アンチロールバック保護の一例を示したが、図５は、認証機能を用いたアンチロールバック保護の一例を示す。この実施形態によれば、攻撃者が、認証されていないファームウェアバージョンをロードすることを試みる場合、ファームウェアは、それが、認証された署名鍵で署名されていないので、アップロードされないことになる。攻撃者は、ファームウェアのより古い改訂における脆弱性を見つけ、より古いファームウェア改訂をアップロードすることを試み得る。したがって、アンチロールバック機構がインストールされない限り、署名付き改訂以外のより古い改訂が攻撃者によって使用され得る。本発明の実施形態によれば、図５においてさらに説明するように、ＮＦＣＣ１４５は、アンチロールバック保護に加えて検証を与えることができる。
【００６９】
[0082]図５は、ＮＦＣＣ起動およびファームウェアインスタレーション要求中の、モバイルデバイス１１０と、ＮＦＣＣ１４５と、セキュア要素環境との間の通信ステップ５００の例示的な実施形態を示している。この実施形態によれば、モバイルデバイス１１０は、ステップ５０５において起動するようにＮＦＣＣ１４５を開始することができる。ステップ５１０において、ＮＦＣＣ１４５は起動し、ＮＦＣＣ上で実行しているファームウェアの現在バージョン番号を送る。代替的に、モバイルデバイス１１０は、ＮＦＣＣファームウェアバージョンを取得するためにＮＦＣＣによる受信された肯定応答を介してパース（parse）することができる。たとえば、ＮＦＣＣによって送られたＣＯＲＥ＿ＩＮＩＴ＿ＲＳＰが、「製造業者固有情報」オクテットでのファームウェアバージョン情報を含んでいる。
【００７０】
[0083]随意のステップであり得る、ステップ５１５において、モバイルデバイスは、要求ファームウェアインスタレーションに関連するＦＶＮをＮＦＣＣファームウェアバージョンと比較することができる。モバイルデバイスは、ＮＦＣＣファームウェアバージョンがＦＶＮよりも小さい場合、インストール要求を続けることができる。この随意のステップ５１５は、ＮＦＣＣ上のファームウェアがすでに現在のものであるとき、ファームウェアアップグレード要求を防ぐために使用され得る。
【００７１】
[0084]ステップ５２０において、モバイルデバイス１１０は、ＮＦＣＣ１４５上でのファームウェアインスタレーションを要求することができ、ファームウェアインスタレーションはＦＶＮに関連する。ファームウェアインスタレーションは、全ファームウェアインスタレーションまたは部分インスタレーション（たとえば、パッチインスタレーション）であり得る。この要求を受信した後に、ステップ５２５において、ＮＦＣＣ１４５は、ＬＡＦＶＮについて、アタッチされたセキュア要素環境をプローブする。別の実施形態によれば、ＮＦＣＣ１４５が、セキュア要素環境またはＬＡＦＶＮを見つけなかった場合、ＮＦＣＣ１４５は、通常起動シーケンスを続け、ファームウェアをインストールする。
【００７２】
[0085]ＮＦＣＣ１４５は、セキュア要素環境と通信するために異なる通信機構を使用するように要求され得る。たとえば、セキュア要素環境と通信するために標準機構（たとえば、Ｑｕａｌｃｏｍｍ不揮発性アプリケーション）が使用され得る。別の実施形態によれば、複数のセキュア要素環境があり得、ＮＦＣＣ１４５は、バージョン番号について異なるセキュア要素環境インスタンスをプローブし得る。たとえば、モバイルデバイスは、ＳＩＭカードであるセキュア要素環境を有するが、ＯＥＭ制御されたセキュア要素環境をも有し得る。これは、キャリアが、ＳＩＭカードを通してアンチロールバック保護を執行することができ、ＯＥＭが、ＯＥＭ制御されたセキュア要素環境にアンチロールバック保護を与えることができるので、冗長性を与えることできる。
【００７３】
[0086]ステップ５３０において、セキュア要素環境は、ＮＦＣＣ１４５にＬＡＦＶＮを送ることができる。代替的に、セキュア要素環境は、ＦＶＮが最後のファームウェアバージョンであることを単に検証することができる（すなわち、真または偽）。
【００７４】
[0087]ステップ５３５において、ＮＦＣＣ１４５は、ＦＶＮをＬＡＦＶＮと比較し、ＬＡＦＶＮがＦＶＮよりも小さくない場合、ＮＦＣＣ１４５はファームウェアインスタレーションを続ける。ステップ５４０において、ＮＦＣＣは、モバイルデバイス１１０からインスタレーション要求を受け付ける。
【００７５】
[0088]さらに、ＮＦＣＣ１４５上へのいかなるファームウェアのインスタレーションも未知のソースから可能にされるべきではない。セキュリティの観点から、信頼できる当事者のみがＮＦＣＣ１４５上のファームウェアをアップグレードすることを可能にするための機構がある必要がある。したがって、いくつかの実施形態によれば、ソースは、ＮＦＣＣ１４５上にファームウェアインスタレーションファイルがロードされる前に、それにデジタル署名する。
【００７６】
[0089]アップグレードのソースを検証することによって、本発明は、攻撃からの保護の別のレイヤを追加する。たとえば、何らかの悪意のあるエンティティが、その悪意のあるエンティティがＮＦＣＣ１４５を乗っ取ることを可能にするであろうコードをアップロードすることがある。アップグレードを認証するための何らかの機構がなければ、アップグレードプロセスは通過することができ、悪いコードがＮＦＣＣ１４５上に潜在的にロードされ得る。そのような攻撃を防ぐために、ＮＦＣＣ１４５は公開鍵を有し、それは、アップグレードが信頼できる当事者からのものであるかどうかを検証することができる。
【００７７】
[0090]署名検証はステップ５４５において開始され得、モバイルデバイス１１０が、デジタル署名付きのファームウェアインスタレーションを送る。
【００７８】
[0091]ステップ５５０において、ＮＦＣＣ１４５は、ファームウェアが信頼できるソースから来ていることを保証するために公開鍵を用いて受信された署名を検証することができる。たとえば、公開鍵基盤（ＰＫＩ：Public Key Infrastructure）認証が、そのような検証のための一般的な方法である。与えられたファームウェアが信頼できるソースからのものでない場合、インスタレーションは進むことを可能にされない。検証プロセスが失敗した場合、ＮＦＣＣ１４５は、署名が認証されたものではなく、したがってアップグレードが行われないことになることを、モバイルデバイス１１０にシグナリングする。
【００７９】
[0092]ステップ５５５において、署名が有効であることが検証された場合、ファームウェアインスタレーションを可能にし、ファームウェアを更新する。
【００８０】
[0093]ＦＶＮに関連するファームウェアが更新された後、いくつかの実施形態によれば、ＮＦＣＣ１４５は、ステップ５６０に示すように、ＦＶＮに等しくなるようにＬＡＦＶＮを更新するようにセキュア要素環境に要求することができる。ステップ５６５において、セキュア要素環境は、ＦＶＮに等しくなるようにＬＡＦＶＮを更新することができる。
【００８１】
[0094]ファームウェアインスタレーションの後にＬＡＦＶＮを更新すること
[0095]セキュア要素環境に記憶されたＬＡＦＶＮは、いくつかの状況下で更新され得る。最初に、ＦＶＮに関連する新しいファームウェアインスタレーションがアップロードされ、それのバージョン番号が、セキュア要素環境に記憶されたＬＡＦＶＮよりも大きいとき、ＬＡＦＶＮは、図６において説明するように、ＦＶＮに等しくなるように更新される。代替的に、図７において説明するように、セキュア要素環境のための制御当局が更新を直接強制することができる。
【００８２】
[0096]図５におけるステップ５６０および５６５に示されているように、ＮＦＣＣ１４５が、それのファームウェアを正常にアップグレードした後、ＮＦＣＣ１４５は、現在記憶されているバージョン番号をアップグレードするためにセキュア要素環境に通信することができる。
【００８３】
[0097]図６は、ＬＡＦＶＮがＦＶＮよりも小さいとき、ＬＡＦＶＮを更新するためのステップのシーケンス６００を概説するフローチャートである。ＮＦＣＣ１４５は、セキュア要素環境と通信し、セキュア要素環境に記憶されたＬＡＦＶＮを更新するために、標準機構（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ）を使用することができる。
【００８４】
[0098]ステップ６０５に示すように、ファームウェアインスタレーションに関連するＦＶＮがモバイルデバイス１１０によってＮＦＣＣ１４５に与えられる。ステップ６１０において、ＮＦＣＣ１４５は、セキュア要素環境に記憶された、ＬＡＦＶＮが、ＦＶＮよりも小さいと判断することができる。したがって、ステップ６１５において、ＮＦＣＣ１４５は、ＦＶＮに等しくなるようにＬＡＦＶＮを更新することができる。前述のように、この更新は、セキュア要素環境においてバージョン番号を書き直すために標準機構（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ）を使用して行われ得る。
【００８５】
[0099]別の実施形態によれば、自然増分の例では、より新しいファームウェアがアップロードされると、ＬＡＦＶＮは、最新のバージョン番号に自然に増分される。したがって、より高いバージョンがアップロードされると、ＬＡＦＶＮは、セキュア要素環境においてその番号に増分され得る。
【００８６】
[0100]強制更新の後にＬＡＦＶＮを更新すること
[0101]本発明の一実施形態によれば、制御当局（たとえば、ＯＥＭ、セキュア要素当局）が、しきい値（たとえば、１０）を上回る改訂番号をもつＮＦＣＣ１４５のみが制御当局と通信することを希望し得る。たとえば、ＯＥＭまたはキャリアは、１０を下回る電話改訂番号がセキュリティ脆弱性を有することが知られているので、セキュア要素当局と話すために電話改訂が少なくとも１０でなければならないことを要件にすることを決定し得る。
【００８７】
[0102]この実施形態によれば、制御当局は、セキュア要素環境にそれ記憶されたＬＡＦＶＮを直接アップグレードし得る。セキュア要素環境上でデータを変更するためのセキュアプロトコルが存在する。さらに、制御当局は、セキュア要素環境上で長期鍵を所有し得、したがって、制御当局は、セキュア要素環境をアップグレードする能力を有する。
【００８８】
[0103]図７は、強制更新の後にセキュア環境に記憶されたＬＡＦＶＮを更新するためのステップのシーケンス７００を概説するフローチャートである。
【００８９】
[0104]ファームウェア更新のためのプッシュ中に、ステップ７０５に示すように、制御当局が、ＮＦＣＣ１４５のファームウェアを更新するようにＮＦＣＣ１４５をプッシュすることができる。たとえば、制御当局は、ＮＦＣＣ１４５が制御当局と通信することができる前に、ＮＦＣＣ１４５があるファームウェアバージョン番号を必要とするという要件を有し得る。したがってステップ７１０において、ＮＦＣＣ１４５上に新しいファームウェアをアップロードする。本発明の実施形態によれば、ＦＶＮに関連するファームウェアがＮＦＣＣ１４５上にロードされると、ＮＦＣＣ１４５は、ステップ７１５において、セキュア要素環境においてＬＡＦＶＮを取り出すことができる。ステップ７２０において、ＮＦＣＣ１４５が、ＬＡＦＶＮがＦＶＮよりも小さいと判断した場合、ＮＦＣＣは、ＦＶＮに等しくなるように、セキュア要素環境に記憶されたＬＡＦＶＮを更新することができる。
【００９０】
[0105]別の実施形態によれば、制御当局が、より古いバージョンが欠陥および脆弱性を有することに気づいていることがあるので、制御当局は、新しい番号でＬＡＦＶＮをオーバーライドすることができる。たとえば、既知の機構（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ）を使用する制御当局は、あるバージョンが現在最新のバージョン番号であることをＮＦＣＣ１４５に伝え得る。
【００９１】
[0106]さらに、本発明のコンテキストでは、ファームウェアインスタレーションは、現在ロードされているバージョンに取って代わる、その全体が完全なファームウェアイメージを表すことができ、またはファームウェアインスタレーションは、既存のファームウェアの部分更新（たとえば、パッチ）を表し得る。
【００９２】
[0107]セキュア要素環境と通信し、改訂番号をアップグレードするために、既知の機構（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ規格）が利用され得る。代替的に、セキュア要素環境と通信し、バージョン番号をアップグレードするために、プロプライエタリ通信言語が利用され得る。
【００９３】
[0108]本発明の実施形態は、ＳＥＥおよびＴＥＥ技術が、高レベルのハードウェアセキュリティを提供するように明示的に設計されるので、内部不揮発性メモリに依拠する手法よりもセキュアであり得る。さらに、本発明の実施形態は、ｅ−Ｆｕｓｅ技術手法の場合と同様の限られた数のバージョンに制限されない。
【００９４】
[0109]本発明の実施形態は、顧客介入なしに、必要とされるバージョンを更新するために（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍによって定義された）既存のおよび高度にセキュアなリモートプロビジョニング機構を利用する。
【００９５】
[0110]本発明の実施形態は、改訂番号が増分的に増加することを可能にするにすぎない。したがって、改訂番号を低下させるためのセキュア要素環境への要求が処理されないことになる。
【００９６】
[0111]図８に示すようなコンピュータシステムが、前に説明したモバイルデバイスの一部として組み込まれ得る。たとえば、コンピュータシステム８００は、本出願で説明するモバイルデバイスの構成要素のうちのいくつかを表すことができる。コンピュータシステム８００は、図１のモバイルデバイス１１０の様々な構成要素の機能を実施し得る。図８は、様々な他の実施形態によって提供される方法を実施することができるコンピュータシステム８００の一実施形態の概略図を与えている。図８は、様々な構成要素の一般化された図を与えるものにすぎず、それらの構成要素のいずれかまたはすべては適宜に利用され得ることに留意されたい。図８は、したがって、個々のシステム要素が、比較的分離された方法または比較的より統合された方法で、どのように実装され得るかを概括的に示している。
【００９７】
[0112]バス８０５を介して電気的に結合され得る（または、適宜に、他の方法で通信していることがある）ハードウェア要素を備えるコンピュータシステム８００が示されている。たとえば、ＮＦＣＣ１４５とセキュア要素環境との間の（たとえば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ規格を使用する）セキュア通信はバス８０５を介したものであり得る。ハードウェア要素は、限定はしないが、（デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどの）１つまたは複数の汎用プロセッサおよび／または１つまたは複数の専用プロセッサを含む、１つまたは複数のプロセッサ８１０と、限定はしないが、マウス、キーボードなどを含むことができる１つまたは複数の入力デバイス８１５と、限定はしないが、ディスプレイデバイス、プリンタなどを含むことができる１つまたは複数の出力デバイス８２０とを含み得る。たとえば、アプリケーションプロセッサ１２０は、コンピュータシステム８００中のプロセッサの一例であり得る。
【００９８】
[0113]コンピュータシステム８００は、限定はしないが、ローカルストレージおよび／またはネットワークアクセス可能ストレージを備えることができ、ならびに／あるいは、限定はしないが、ディスクドライブ、ドライブアレイ、光ストレージデバイス、プログラム可能でフラッシュ更新可能であり得るランダムアクセスメモリ（「ＲＡＭ」）および／または読取り専用メモリ（「ＲＯＭ」）などのソリッドステートストレージデバイスなどを含むことができる、１つまたは複数の非一時的ストレージデバイス８２５をさらに含み得る（および／または、それらと通信していることがある）。そのようなストレージデバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストアを実装するように構成され得る。たとえば、ＳＩＭカード１３０、ＳＥＥ２２０が、コンピュータシステム８００中の記憶デバイス８２５の一例であり得る。
【００９９】
[0114]コンピュータシステム８００はまた、限定はしないが、モデム、ネットワークカード（ワイヤレスまたはワイヤード）、赤外線通信デバイス、ワイヤレス通信デバイス、および／または（Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、８０２．１１デバイス、Ｗｉ−Ｆｉ（登録商標）デバイス、ＷｉＭａｘ（登録商標）デバイス、セルラー通信設備、ＮＦＣモジュール１４０、ＮＦＣＣ１４５などの）チップセットなどを含むことができる、通信サブシステム８３０を含み得る。通信サブシステム８３０は、データが、（一例を挙げると、以下で説明するネットワークなどの）ネットワーク、他のコンピュータシステム、および／または本明細書で説明する他のデバイスと交換されることを可能にし得る。多くの実施形態では、コンピュータシステム８００は、上記で説明したように、ＲＡＭまたはＲＯＭデバイスを含むことができる作業メモリ８３５をさらに備えることになる。
【０１００】
[0115]コンピュータシステム８００はまた、オペレーティングシステム８４０（たとえば、高レベルアプリケーション）、デバイスドライバ、実行可能ライブラリ、および／または１つまたは複数のアプリケーションプログラム８４５などの他のコードを含む、作業メモリ８３５内に現在位置するものとして示されている、ソフトウェア要素を備えることができ、１つまたは複数のアプリケーションプログラム８４５は、様々な実施形態によって提供されるコンピュータプログラムを備え得、ならびに／あるいは、本明細書で説明するように、他の実施形態によって提供される方法を実装するようにおよび／またはシステムを構成するように設計され得る。単に例として、上記で説明した（１つまたは複数の）方法に関して説明した１つまたは複数のプロシージャは、コンピュータ（および／またはコンピュータ内のプロセッサ）によって実行可能なコードおよび／または命令として実装され得、一態様では、次いで、そのようなコードおよび／または命令は、説明した方法に従って１つまたは複数の動作を実施するように汎用コンピュータ（または他のデバイス）を構成するためおよび／または適応させるために使用され得る。
【０１０１】
[0116]これらの命令またはコードのセットは、上記で説明した（１つまたは複数の）非一時的ストレージデバイス８２５などの非一時的コンピュータ可読記憶媒体上に記憶され得る。場合によっては、記憶媒体は、コンピュータシステム８００などのコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムとは別個（たとえば、コンパクトディスクなどの取外し可能媒体）であり得、ならびに／あるいは、記憶媒体が、その上に記憶された命令／コードで汎用コンピュータをプログラムし、構成し、および／または適応させるために使用され得るようなインスタレーションパッケージで提供され得る。これらの命令は、コンピュータシステム８００によって実行可能である実行可能コードの形態をとり得、ならびに／あるいは、（たとえば、様々な一般に利用可能なコンパイラ、インスタレーションプログラム、圧縮／解凍ユーティリティなどのいずれかを使用して）コンピュータシステム８００上でコンパイルおよび／またはインストールしたときに実行可能コードの形態をとる、ソースコードおよび／またはインストール可能コードの形態をとり得る。
【０１０２】
[0117]実質的な変形形態が、特定の要件に従って製作され得ることが当業者には明らかであろう。たとえば、カスタマイズされたハードウェアも使用され得、ならびに／あるいは、特定の要素が、ハードウェア、（アプレットなどのポータブルソフトウェアを含む）ソフトウェア、または両方で実装され得る。さらに、ネットワーク入力／出力デバイスなど、他のコンピューティングデバイスへの接続が採用され得る。
【０１０３】
[0118]上述のように、一態様では、いくつかの実施形態は、本発明の様々な実施形態による方法を実施するための（コンピュータシステム８００などの）コンピュータシステムを採用し得る。実施形態のセットによれば、そのような方法のプロシージャの一部または全部は、プロセッサ８１０が、作業メモリ８３５中に含まれている（オペレーティングシステム８４０、および／またはアプリケーションプログラム８４５などの他のコードに組み込まれ得る）１つまたは複数の命令の１つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム８００によって実施される。そのような命令は、（１つまたは複数の）非一時的ストレージデバイス８２５のうちの１つまたは複数など、別のコンピュータ可読媒体から作業メモリ８３５に読み込まれ得る。単に例として、作業メモリ８３５中に含まれている命令のシーケンスの実行は、（１つまたは複数の）プロセッサ８１０に、本明細書で説明した方法の１つまたは複数のプロシージャを実施させ得る。
【０１０４】
[0119]本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の様式で動作させるデータを与えることに関与する任意の媒体を指す。コンピュータシステム８００を使用して実装される一実施形態では、様々なコンピュータ可読媒体は、実行のために（１つまたは複数の）プロセッサ８１０に命令／コードを与えることに関与し得、ならびに／あるいはそのような命令／コードを記憶および／または搬送するために使用され得る。多くの実装形態では、コンピュータ可読媒体は、物理および／または有形記憶媒体である。そのような媒体は、不揮発性媒体または揮発性媒体の形態をとり得る。不揮発性媒体は、たとえば、（１つまたは複数の）非一時的ストレージデバイス８２５などの光ディスクおよび／または磁気ディスクを含む。揮発性媒体は、限定はしないが、作業メモリ８３５などのダイナミックメモリを含む。
【０１０５】
[0120]物理および／または有形コンピュータ可読媒体の一般的な形態は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光媒体、パンチカード、紙テープ、穴のパターンをもつ任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップまたはカートリッジ、あるいはコンピュータが命令および／またはコードを読み取ることができる任意の他の媒体を含む。
【０１０６】
[0121]コンピュータ可読媒体の様々な形態は、実行のために１つまたは複数の命令の１つまたは複数のシーケンスを（１つまたは複数の）プロセッサ８１０に搬送することに関与し得る。単に例として、命令は、初めに、リモートコンピュータの磁気ディスクおよび／または光ディスク上で搬送され得る。リモートコンピュータは、命令をそれのダイナミックメモリにロードし、その命令を、コンピュータシステム８００によって受信および／または実行されるように伝送媒体を介して信号として送り得る。
【０１０７】
[0122]通信サブシステム８３０（および／またはそれの構成要素）が、概して信号を受信し、次いで、バス８０５が、信号（および／またはその信号によって搬送されるデータ、命令など）を作業メモリ８３５に搬送し得、（１つまたは複数の）プロセッサ８１０が、作業メモリ８３５から命令を検索し、実行する。作業メモリ８３５によって受信された命令は、場合によっては、（１つまたは複数の）プロセッサ８１０による実行の前または後のいずれかに非一時的ストレージデバイス８２５に記憶され得る。
【０１０８】
[0123]上記で説明した方法、システム、およびデバイスは例である。様々な構成は、適宜に様々なプロシージャまたは構成要素を省略、置換、または追加し得る。たとえば、代替構成では、本方法は、説明した順序とは異なる順序で実施され得、ならびに／あるいは様々な段階が追加、省略、および／または組み合わせられ得る。また、いくつかの構成に関して説明した特徴は、様々な他の構成において組み合わせられ得る。構成の異なる態様および要素が、同様にして組み合わせられ得る。また、技術は発展し、したがって、要素の多くは例であり、本開示または特許請求の範囲を限定しない。
【０１０９】
[0124]説明では、（実装形態を含む）例示的な構成の完全な理解が得られるように具体的な詳細を与えた。ただし、構成は、これらの具体的な詳細なしに実施され得る。たとえば、構成を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法を不要な詳細なしに示した。この説明は、例示的な構成を与えるにすぎず、特許請求の範囲の範囲、適用性、または構成を限定しない。そうではなく、構成の上記の説明は、説明した技法を実装することを可能にする説明を当業者に与えるものである。本開示の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得る。
【０１１０】
[0125]また、構成は、流れ図またはブロック図として示されるプロセスとして説明されることがある。各々は動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、図中に含まれない追加のステップを有し得る。さらに、本方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体に記憶され得る。プロセッサは、説明したタスクを実施し得る。
【０１１１】
[0126]いくつかの例示的な構成について説明したが、本開示の趣旨から逸脱することなく、様々な変更形態、代替構成、および等価物が使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素であり得、他のルールが、本発明の適用よりも優先するかまたは他の方法で本発明の適用を変更し得る。また、上記の要素が考慮される前に、考慮されている間に、または考慮された後に、いくつかのステップが行われ得る。したがって、上記の説明は特許請求の範囲を制限しない。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]  デバイスにおいてアンチロールバック保護を与えるための方法であって、
前記デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないこととを備える方法。
[Ｃ２]  前記デバイスがニアフィールド通信（ＮＦＣ）コントローラを備える、Ｃ１に記載の方法。
[Ｃ３]  前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、Ｃ１に記載の方法。
[Ｃ４]  前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、Ｃ１に記載の方法。
[Ｃ５]  前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、Ｃ１に記載の方法。
[Ｃ６]  前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、Ｃ５に記載の方法。
[Ｃ７]  前記ＬＡＦＶＮが制御当局によって更新される、Ｃ１に記載の方法。
[Ｃ８]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、Ｃ１に記載の方法。
[Ｃ９]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、Ｃ１に記載の方法。
[Ｃ１０]  前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、Ｃ１に記載の方法。
[Ｃ１１]  前記第１のファームウェアインスタレーションに関連するデジタル署名基づいて前記第１のファームウェアインスタレーションを認証することをさらに備える、Ｃ１に記載の方法。
[Ｃ１２]  前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、Ｃ１に記載の方法。
[Ｃ１３]  アンチロールバック保護を与えるためのデバイスであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行されたとき、前記デバイスに、
前記デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないことと
を行わせる、コンピュータ可読命令を記憶するメモリとを備えるデバイス。
[Ｃ１４]  前記デバイスがニアフィールド通信（ＮＦＣ）コントローラを備える、Ｃ１３に記載のデバイス。
[Ｃ１５]  前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、Ｃ１３に記載のデバイス。
[Ｃ１６]  前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、Ｃ１３に記載のデバイス。
[Ｃ１７]  前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、Ｃ１３に記載のデバイス。
[Ｃ１８]  前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、Ｃ１７に記載のデバイス。
[Ｃ１９]  前記ＬＡＦＶＮが制御当局によって更新される、Ｃ１３に記載のデバイス。
[Ｃ２０]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、Ｃ１３に記載のデバイス。
[Ｃ２１]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、Ｃ１３に記載のデバイス。
[Ｃ２２]  前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、Ｃ１３に記載のデバイス。
[Ｃ２３]  前記第１のファームウェアインスタレーションに関連するデジタル署名基づいて前記第１のファームウェアインスタレーションを認証するための前記デバイスをさらに備える、Ｃ１３に記載のデバイス。
[Ｃ２４]  前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、Ｃ１３に記載のデバイス。
[Ｃ２５]  実行されたとき、デバイスに、
前記デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得することと、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得することと、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないこととを行わせる、コンピュータ実行可能命令を記憶するコンピュータ可読媒体。
[Ｃ２６]  前記デバイスがニアフィールド通信（ＮＦＣ）コントローラを備える、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ２７]  前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ２８]  前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ２９]  前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３０]  前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、Ｃ２９に記載のコンピュータ可読媒体。
[Ｃ３１]  前記ＬＡＦＶＮが制御当局によって更新される、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３２]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３３]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３４]  前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３５]  前記第１のファームウェアインスタレーションに関連するデジタル署名基づいて前記第１のファームウェアインスタレーションを認証するための前記デバイスをさらに備える、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３６]  前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、Ｃ２５に記載のコンピュータ可読媒体。
[Ｃ３７]  アンチロールバック保護を与えるためのデバイスであって、
１つまたは複数のプロセッサと、
前記デバイスのための第１のファームウェアインスタレーションに関連するファームウェアバージョン番号（ＦＶＮ）を取得するための手段と、ここにおいて、前記デバイスが、不揮発性メモリを含まない基板上に実装される、
最低許容ファームウェアバージョン番号（ＬＡＦＶＮ）を取得するための手段と、ここにおいて、前記ＬＡＦＶＮがセキュア要素環境に記憶され、ここにおいて、前記セキュア要素環境が、前記基板から分離されたメモリを利用する、
前記ＦＶＮと前記ＬＡＦＶＮとを比較し、ここにおいて、前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、前記第１のファームウェアインスタレーションを可能にしないための手段とを備えるデバイス。
[Ｃ３８]  前記デバイスがニアフィールド通信（ＮＦＣ）コントローラを備える、Ｃ３７に記載のデバイス。
[Ｃ３９]  前記セキュア要素環境が、ソフトウェアおよびハードウェア攻撃から保護するスタンドアロンセキュア実行環境（ＳＥＥ）である、Ｃ３７に記載のデバイス。
[Ｃ４０]  前記セキュア要素環境が、システムオンチップ（ＳｏＣ）のハードウェア保護パーティションにおける信頼実行環境（ＴＥＥ）である、Ｃ３７に記載のデバイス。
[Ｃ４１]  前記ＬＡＦＶＮは、前記ＦＶＮが前記ＬＡＦＶＮよりも大きい場合、前記ＦＶＮに等しくなるように更新される、Ｃ３７に記載のデバイス。
[Ｃ４２]  前記ＬＡＦＶＮがＧｌｏｂａｌＰｌａｔｆｏｒｍ機構を使用して更新される、Ｃ４１に記載のデバイス。
[Ｃ４３]  前記ＬＡＦＶＮが制御当局によって更新される、Ｃ３７に記載のデバイス。
[Ｃ４４]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの部分更新である、Ｃ３７に記載のデバイス。
[Ｃ４５]  前記第１のファームウェアインスタレーションが前記デバイス上の既存のファームウェアの全更新である、Ｃ３７に記載のデバイス。
[Ｃ４６]  前記ＬＡＦＶＮが前記セキュア要素環境におけるアプリケーションに記憶される、Ｃ３７に記載のデバイス。
[Ｃ４７]  前記第１のファームウェアインスタレーションに関連するデジタル署名基づいて前記第１のファームウェアインスタレーションを認証するための手段をさらに備える、Ｃ３７に記載のデバイス。
[Ｃ４８]  前記ＦＶＮが前記ＬＡＦＶＮよりも小さい場合、ＬＡＦＶＮよりも大きいバージョン番号をもつ第２のファームウェアインスタレーションのアップロードを要求する、Ｃ３７に記載のデバイス。
【図１Ａ】
0006321023.tif 000002
【図１Ｂ】
0006321023.tif 000003
【図２Ａ】
0006321023.tif 000004
【図２Ｂ】
0006321023.tif 000005
【図２Ｃ】
0006321023.tif 000006
【図３】
0006321023.tif 000007
【図４】
0006321023.tif 000008
【図５】
0006321023.tif 000009
【図６】
0006321023.tif 000010
【図７】
0006321023.tif 000011
【図８】
0006321023.tif 000012