(57)【特許請求の範囲】
【請求項１】
アプリケーションプロセッサと、
前記アプリケーションプロセッサに結合された第１のランダムアクセスメモリ（ＲＡＭ）であって、前記アプリケーションプロセッサのための動作環境を与える第１のオペレーティングシステム（ＯＳ）を実行する第１のＲＡＭと、
前記アプリケーションプロセッサ及び前記第１のＲＡＭに結合された不揮発性記憶装置であって、前記アプリケーションプロセッサにより前記第１のＯＳを経てアクセスされるデータを記憶する不揮発性記憶装置と、
内部バスを経て前記アプリケーションプロセッサに結合されるワイヤレス通信プロセッサと、
前記ワイヤレス通信プロセッサに結合された第２のＲＡＭであって、前記ワイヤレス通信プロセッサのための動作環境を与える第２のＯＳを実行する第２のＲＡＭと、
を備え、前記ワイヤレス通信プロセッサは、そのワイヤレス通信プロセッサをブートするために前記内部バスを経、通信リンクを経て前記不揮発性記憶装置にアクセスし、前記第２のＯＳを確立し、そして通常の動作中に前記不揮発性記憶装置における前記ワイヤレス通信プロセッサに関連したデータにアクセスして、前記ワイヤレス通信プロセッサが、前記ワイヤレス通信プロセッサに特に関連したデータを記憶するために個別の不揮発性記憶装置を維持する必要をなくすように構成された、ポータブル装置。
【請求項２】
前記ワイヤレス通信プロセッサは、更に、ＲＯＭブートローダを記憶するためのセキュアなリードオンリメモリ（ＲＯＭ）を備え、前記ワイヤレス通信プロセッサにより受け取られたブートコマンドに応答して、前記ＲＯＭブートローダは、前記セキュアなＲＯＭから実行されて、前記ワイヤレス通信プロセッサのハードウェアを初期化すると共に、前記内部バスを経て前記アプリケーションプロセッサとの通信リンクを確立する、請求項１に記載の装置。
【請求項３】
前記ＲＯＭブートローダは、前記不揮発性記憶装置から前記内部バスを経、通信リンクを経てブートコードイメージをフェッチし、そのブートコードイメージを認証し、そしてそのブートコードイメージを首尾良く認証したときに、第２のＲＡＭにおけるブートコードイメージを実行して、前記ワイヤレス通信プロセッサに対する第２のＯＳを確立するように構成された、請求項２に記載の装置。
【請求項４】
前記ＲＯＭブートローダは、前記ワイヤレス通信プロセッサを独特に識別する独特の識別子（ＵＩＤ）から導出された記憶キーを使用して前記ブートコードイメージを解読するように構成された、請求項３に記載の装置。
【請求項５】
前記ＲＯＭブートローダは、前記ワイヤレス通信プロセッサのセキュアなＲＯＭ内に記憶されたデジタル証明書を使用して前記ブートコードイメージを認証する、請求項３に記載の装置。
【請求項６】
前記ブートコードイメージは、一連のデジタル証明書によりサインされた第１のブートコードセグメント及び第２のブートコードセグメントを含み、前記ＲＯＭブートローダは、前記不揮発性記憶装置から前記内部バスを経、通信リンクを経て前記第１のブートコードセグメントをフェッチし、前記セキュアなＲＯＭからのデジタル証明書を使用して前記第１のブートコードセグメントを認証し、そして前記第１のブートコードセグメントを実行するように構成され、更に、前記第１のブートコードセグメントは、前記ＲＯＭブートローダにより実行されたとき、前記不揮発性記憶装置から前記内部バスを経、通信リンクを経て前記第２のブートコードセグメントをフェッチし、前記一連の証明書から導出されたリーフ証明書を使用して前記第２のブートコードセグメントを認証し、そして前記第２のブートコードセグメントをロードするように構成された、請求項５に記載の装置。
【請求項７】
前記ワイヤレス通信プロセッサは、更に、前記ＲＯＭブートローダにより初期化される内部ＲＡＭを備え、前記第１のコードセグメントは、その内部ＲＡＭ内のＲＯＭブートローダによりフェッチされ、認証されそして起動され、更に、前記第２のコードセグメントは、第２のＲＡＭ内の第１のブートコードセグメントによりフェッチされ、認証されそして起動される、請求項６に記載の装置。
【請求項８】
前記第２のＲＡＭは、そこで実行される暗号化ユニットを含み、前記不揮発性記憶装置にアクセスするためのコマンドに応答して、その暗号化ユニットは、前記ワイヤレス通信プロセッサを独特に識別する独特の識別子（ＵＩＤ）から導出される記憶キーを使用して、前記通信リンクを経て前記不揮発性記憶装置へ及びそこから送られるデータを暗号及び解読するように構成された、請求項１に記載の装置。
【請求項９】
前記第１のＲＡＭは、更に、そこで実行されるファイルシステム及び第１のファイルシステムドライバを備え、前記第２のＲＡＭは、更に、そこで実行される第２のファイルシステムドライバを備え、その第２のファイルシステムドライバは、前記通信リンクを経て前記第１のファイルシステムドライバと通信して、前記ワイヤレス通信プロセッサにより前記不揮発性記憶装置にアクセスする目的で前記ファイルシステムからファイルシステムサービスを呼び出すように構成された、請求項８に記載の装置。
【請求項１０】
データを更新するコマンドに応答して、セッションキーが発生され、そしてワイヤレス通信プロセッサを独特に識別する独特の識別子（ＵＩＤ）から導出された記憶キーにより暗号化されて、回復ブロブを発生し、この回復ブロブ及びパブリックキーで暗号化されたセッションキーは、許可サーバーへ送信され、更に、プロビジョニングサーバーから受け取られるデータ及び回復ブロブに応答して、セッションキーは、記憶キーを使用して回復ブロブを解読することにより回復ブロブから回復され、その回復されたセッションキーを使用して、前記プロビジョニングサーバーから受け取ったデータを解読する、請求項１に記載の装置。
【請求項１１】
前記データは、高周波（ＲＦ）キャリブレーションデータを含む、請求項１０に記載の装置。
【請求項１２】
ポータブル装置を動作するためのコンピュータ実施方法において、
ブートコマンドに応答して、ワイヤレス通信プロセッサのセキュアなＲＯＭからのリードオンリメモリ（ＲＯＭ）ブートローダを実行し、そのＲＯＭブートローダは、ポータブル装置のワイヤレス通信プロセッサに関連したハードウェアを初期化するものであり、
前記ＲＯＭブートローダにより、前記ポータブル装置のアプリケーションプロセッサとの通信リンクを、前記ワイヤレス通信プロセッサをそのアプリケーションプロセッサに結合する内部バスを経て確立し、
前記ＲＯＭブートローダにより、不揮発性記憶装置から前記通信リンクを経てブートコードイメージをフェッチし、その不揮発性記憶装置は、前記アプリケーションプロセッサに関連し、そして前記アプリケーションプロセッサに関連する第１のランダムアクセスメモリ（ＲＡＭ）内で実行される第１のオペレーティングシステム（ＯＳ）を経て前記アプリケーションプロセッサによりアクセスされ、
前記ＲＯＭブートローダにより、ブートコードイメージを認証し、
そのブートコードイメージを首尾良く認証すると、前記ＲＯＭブートローダは、前記ブートコードイメージを、前記ワイヤレス通信プロセッサに関連した第２のＲＡＭへ起動して、前記ワイヤレス通信プロセッサのための第２のＯＳを確立し、更に、前記内部バスを経、通信リンクを経て前記アプリケーションプロセッサに関連した前記不揮発性記憶装置にアクセスすることにより、前記ワイヤレス通信プロセッサは、個別の不揮発性記憶装置を維持する必要がなくなるようにした方法。
【請求項１３】
前記ブートコードイメージは、セキュアなＲＯＭに記憶されたデジタル証明書を使用して前記ＲＯＭブートローダによって認証され、更に、前記デジタル証明書は、前記ワイヤレス通信プロセッサを独特に識別する独特の識別子（ＵＩＤ）から導出される、請求項１２に記載の方法。
【請求項１４】
前記ブートコードイメージを認証することは、前記ワイヤレス通信プロセッサのＵＩＤから導出された記憶キーを使用して前記ブートコードイメージの少なくとも一部分を解読することを含む、請求項１３に記載の方法。
【請求項１５】
前記ブートコードイメージは、一連のデジタル証明書によりサインされた第１のブートコードセグメント及び第２のブートコードセグメントを含み、前記ＲＯＭブートローダは、前記不揮発性記憶装置から前記内部バスを経、通信リンクを経て前記第１のブートコードセグメントをフェッチし、前記セキュアなＲＯＭからのデジタル証明書を使用して前記第１のブートコードセグメントを認証し、そして前記第１のブートコードセグメントを実行するように構成され、更に、前記第１のブートコードセグメントは、前記ＲＯＭブートローダにより実行されたとき、前記不揮発性記憶装置から前記内部バスを経、通信リンクを経て前記第２のブートコードセグメントをフェッチし、前記一連の証明書から導出されたリーフ証明書を使用して前記第２のブートコードセグメントを認証し、そして前記第２のブートコードセグメントをロードするように構成された、請求項１３に記載の方法。
【請求項１６】
前記不揮発性記憶装置にアクセスするためのコマンドに応答して、記憶キーを使用して、前記通信リンクを経て前記不揮発性記憶装置へ及びそこから送られるデータを暗号化及び解読することを更に含む、請求項１３に記載の方法。
【請求項１７】
前記第１のＲＡＭは、更に、そこで実行されるファイルシステム及び第１のファイルシステムドライバを備え、前記第２のＲＡＭは、更に、そこで実行される第２のファイルシステムドライバを備え、その第２のファイルシステムドライバは、前記通信リンクを経て前記第１のファイルシステムドライバと通信して、前記ワイヤレス通信プロセッサにより前記不揮発性記憶装置にアクセスする目的で前記ファイルシステムからファイルシステムサービスを呼び出すように構成された、請求項１６に記載の方法。
【請求項１８】
データを更新するコマンドに応答して、セッションキーを発生し、
前記ワイヤレス通信プロセッサを独特に識別する独特の識別子（ＵＩＤ）から導出された記憶キーを使用して前記セッションキーを暗号化し、
前記記憶キーにより暗号化された前記セッションキーが埋め込まれた回復ブロブを発生し、
パブリック／プライベートキー対のパブリックキーを使用して前記セッションキーを暗号化し、
前記回復ブロブ及び前記パブリックキーで暗号化されたセッションキーを許可サーバーへ送信し、その許可サーバーは、前記パブリック／プライベートキー対のプライベートキーを使用して前記セッションキーを解読することにより前記セッションキーを回復するように構成され、
前記セッションキーにより暗号化されたデータ及び回復ブロブがプロビジョニングサーバーからダウンロードされるのに応答して、前記記憶キーを使用して回復ブロブを解読することにより回復ブロブから前記セッションキーを回復し、
前記セッションキーを使用して前記暗号化されたデータを解読することにより前記データを回復し、
前記データを前記不揮発性記憶装置に記憶する、
ことを更に含む請求項１２に記載の方法。
【請求項１９】
コンピュータにより実行されたときに、そのコンピュータが、請求項１２から１８のいずれか１つに記載の方法を遂行するようにさせる命令を記憶しているコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データ処理システムの分野に関し、より特定すれば、非ローカル記憶装置からサブシステムをセキュアにブート及び構成する方法に関する。
【０００２】
関連出願：本出願は、２０１０年４月１９日に出願された“Booting and Configuring a Subsystem from Non-Local Storage”と題する米国プロビジョナル特許出願第６１／３２５，７７７号の利益を主張するものであり、この出願は、参考としてここにそのまま援用する。
【背景技術】
【０００３】
最近、スマートホン装置のようなマルチファンクション装置が普及しつつある。典型的に、マルチファンクション装置は、異なるファンクションを果たす複数のプロセッサを備えている。例えば、スマートホン装置は、汎用プロセッサ及びワイヤレス通信プロセッサを備えている。これら各プロセッサには、典型的に、初期化コードイメージ、等を含めて、各プロセッサに関連した情報又はデータを記憶するための不揮発性メモリが関連している。しかしながら、そのような不揮発性メモリは、付加的なコストを招き、装置のサイズをより大きなものにする。
【発明の概要】
【０００４】
１つの態様によれば、ワイヤレス通信プロセッサ（例えば、セルラープロセッサ）及びアプリケーションプロセッサ（例えば、ＣＰＵのような汎用プロセッサ）を有するマルチファンクションコンピューティング装置は、アプリケーションプロセッサに関連され又はそれに取り付けられた記憶装置を共有する。そのようなマルチファンクションコンピューティング装置は、例えば、セルラーホン及びハンドヘルドコンピュータファンクションを有するスマートホン装置である。ワイヤレス通信プロセッサ（以下、単にワイヤレスプロセッサと称される）に直接関連され又は取り付けられる特定の記憶装置はない。むしろ、ワイヤレスプロセッサは、ユニバーサルシリアルバス高速チップ間（ＵＳＢ−ＨＳＩＣ）リンクのような高速通信リンクを経てアプリケーションプロセッサと通信し、アプリケーションプロセッサに関連した記憶装置（例えば、フラッシュメモリ装置）に記憶されたコード及びデータにアクセスする。
【０００５】
別の態様によれば、ブートコマンドに応答して、ワイヤレス通信プロセッサのセキュアなＲＯＭからリードオンリメモリ（ＲＯＭ）ブートローダが実行され、このＲＯＭブートローダは、ポータブル装置のワイヤレス通信プロセッサに関連したハードウェアを初期化する。又、ＲＯＭブートローダは、ワイヤレス通信プロセッサをアプリケーションプロセッサに結合する内部バスを経てポータブル装置のアプリケーションプロセッサとの通信リンクを確立する。ＲＯＭブートローダは、不揮発性記憶装置から通信リンクを経てブートコードをフェッチし、その不揮発性記憶装置は、アプリケーションプロセッサに関連していて、アプリケーションプロセッサにより、アプリケーションプロセッサに関連した第１のランダムアクセスメモリ（ＲＡＭ）内で実行される第１のオペレーティングシステム（ＯＳ）を経てアクセスされる。ＲＯＭブートローダは、ブートコードイメージを認証し、そしてブートコードイメージを首尾良く認証したときに、ＲＯＭブートローダは、ワイヤレス通信プロセッサに関連した第２のＲＡＭへブートコードイメージを起動し、ワイヤレス通信プロセッサに対する第２のＯＳを確立する。その結果、内部バスを経、通信リンクを経て、アプリケーションプロセッサに関連した不揮発性記憶装置にアクセスすることにより、ワイヤレス通信プロセッサは、個別の不揮発性記憶装置を維持する必要がなくなる。
【０００６】
更に別の態様によれば、ポータブル装置のソフトウェアコンポーネントを更新するコマンドに応答して、セッションキーが発生される。そのセッションキーは、ポータブル装置を独特に識別する独特な識別子（ＵＩＤ）から導出される記憶キーを使用して暗号化される。記憶キーによって暗号化されたセッションキーが埋め込まれた回復ブロブが発生される。更に、セッションキーは、パブリック／プライベートキー対のパブリックキーも使用して暗号化される。その後、パブリックキーにより暗号化されたセッションキー及び回復ブロブは、許可サーバーへ送られ、この許可サーバーは、パブリック／プライベートキー対のプライベートキーを使用してセッションキーを解読することによりセッションキーを回復するように構成（configure）される。その後、プロビジョニングサーバーからダウンロードされるソフトウェアコンポーネント及び回復ブロブに応答して、記憶キーを使用して回復ブロブを解読することにより回復ブロブからセッションキーが回復され、ここで、許可サーバーからプロビジョニングサーバーにより受け取られたセッションキーによってソフトウェアコンポーネントが暗号化される。その後、回復ブロブ回復されたセッションを使用して、暗号化されたソフトウェアコンポーネントを解読することにより、ソフトウェアコンポーネントが回復され、ソフトウェアコンポーネントは、ポータブル装置にインストールされる。
【０００７】
本発明の他の特徴は、添付図面及びそれを参照した以下の詳細な説明から明らかとなろう。
【０００８】
本発明の実施形態は、同様の要素が同じ参照番号で示された添付図面に一例として示されるが、これに限定されるものではない。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態によるマルチファンクションコンピューティング装置を示すブロック図である。
【図２】一実施形態によるワイヤレスプロセッサの記憶イメージを示すブロック図である。
【図３】本発明の一実施形態によりワイヤレス通信プロセッサをブートする方法を示すフローチャートである。
【図４】本発明の別の実施形態によるマルチファンクションコンピューティング装置を示すブロック図である。
【図５】本発明の一実施形態によりＲＦキャリブレーションデータを発生する方法を示すフローチャートである。
【図６】本発明の一実施形態によりＲＦキャリブレーションデータを更新する方法を示すフローチャートである。
【図７】本発明の一実施形態によりコンピューティング装置をプロビジョニングするシステム構成を例示する図である。
【図８】本発明の一実施形態によりプロビジョニングデータを更新する方法を例示するフローチャートである。
【図９】本発明の一実施形態に使用されるデータ処理システムの一例を示す。
【発明を実施するための形態】
【００１０】
本発明の種々の実施形態及び態様は、種々の実施形態を例示する添付図面を参照して以下に詳細に述べる。以下の説明及び添付図面は、本発明を例示するもので、限定するためのものではない。本発明の種々の実施形態を完全に理解するために多数の特定の細部について述べる。しかしながら、ある場合には、本発明の実施形態を簡略に説明するために、良く知られた又は従来の細部は説明しない。
【００１１】
本明細書において、「１つの実施形態」又は「一実施形態」を言及するときには、その実施形態に関連して説明される特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書において種々の場所に現れる「一実施形態において」という句は、必ずしも全部が同じ実施形態を指すものではない
【００１２】
ある実施形態によれば、ワイヤレス通信プロセッサ（例えば、セルラープロセッサ）及びアプリケーションプロセッサ（例えば、中央処理ユニット又はＣＰＵのような汎用プロセッサ）を有するマルチファンクションコンピューティング装置は、アプリケーションプロセッサに関連され又はそれに取り付けられた記憶装置（例えば、不揮発性記憶装置）を共有する。そのようなマルチファンクションコンピューティング装置は、例えば、セルラーホン及びハンドヘルドコンピュータファンクションを有するスマートホン装置である。ワイヤレス通信プロセッサ（以下、単にワイヤレスプロセッサと称される）に直接関連され又は取り付けられる特定の記憶装置はない。むしろ、ワイヤレスプロセッサは、ユニバーサルシリアルバス高速チップ間（ＵＳＢ−ＨＳＩＣ）リンクのような高速通信リンクを経てアプリケーションプロセッサと通信し、アプリケーションプロセッサに関連した記憶装置（例えば、フラッシュメモリ装置）に記憶された実行可能なコード及びデータにアクセスする。
【００１３】
一実施形態において、ワイヤレスプロセッサがブートアップするとき、ワイヤレスプロセッサは、アプリケーションプロセッサの記憶装置から通信リンクを経てワイヤレスコードイメージ（例えば、実行可能なコードイメージ）をセキュアにフェッチし、ブートコードを認証し、そしてワイヤレスプロセッサに関連したランダムアクセスメモリ（ＲＡＭ）におけるブートコードを実行して、ワイヤレスプロセッサに対する動作環境を確立する。ワイヤレスコードイメージは、複数のセグメントを含み、各セグメントは、一連の証明書によってサインされる。ルート証明書は、ワイヤレス通信プロセッサのセキュアなリードオンリメモリ（ＲＯＭ）に記憶され、これは、共有記憶装置から検索された第１の全コードセグメントを認証するのに使用される。
【００１４】
コードイメージのセグメントは、セグメントのシーケンスとして構成される。コードシーケンスの現在セグメントは、一連の証明書を使用してコードシーケンスの次のセグメントを認証する。例えば、コードのセグメントは、低レベルブートコード、中間レベルブートコード、及び高レベルブートコードを含む。低レベルブートコードは、ルート証明書により最初に認証される。低レベルブートコードが認証又は検証されると、低レベルブートコードが起動又は実行される。低レベルブートが実行されると、低レベルブートコードは、中間レベルブートコードを（フェッチしそして）認証し、これは、次いで、低レベルブートコードにより首尾良く認証されロードされると、高レベルブートコードを（フェッチしそして）認証し、等々となる。首尾良く認証及び実行できないソフトウェアコンポーネントのセグメントがある場合には、装置が強制的に回復モード（例えば、装置ファームウェア更新又はＤＦＵモード）に入れられ、ソフトウェアの新たなバージョンが信頼性のあるサーバーからネットワークを経てダウンロードされる。
【００１５】
更に、ワイヤレス通信プロセッサを独特に識別する独特な識別子（ＵＩＤ）から導出されたキーによりコードイメージ及び／又はデータが暗号化される。即ち、コードイメージ及び／又はデータは、ＵＩＤから導出されたキーを使用してこれを暗号化することにより個人化される。又、ＵＩＤは、ワイヤレス通信プロセッサのセキュアなＲＯＭに記憶される。或いは又、ＵＩＤは、ワイヤレス通信プロセッサに関連したハードウェアに（例えば、バーント(burnt)ヒューズを経て）固定配線されてもよい。その結果、各ソフトウェアコンポーネントは、それらソフトウェアコンポーネントが妥協されないことを保証するために実行される前に認証及び検証される。
【００１６】
通常の動作中に、ワイヤレスプロセッサがデータを読み取り又は記憶する必要があるときには、ワイヤレスプロセッサに関連した直接的な記憶装置がないので、ワイヤレスプロセッサは、リモートファイルシステムと同様であるが、装置レベルで、ネットワークを経るのではなく、マルチファンクションコンピューティング装置内の通信リンクを経て、アプリケーションプロセッサの記憶装置にアクセスする。その結果、ワイヤレスプロセッサに特に関連した又はそれに取り付けられた従来の記憶装置を除去することができる。又、装置のコスト及び／又は物理的サイズを減少することができる。
【００１７】
更に、一実施形態によれば、ワイヤレスプロセッサに関連した特定のデータ、例えば、ワイヤレスネットワークＩＤ（例えば、国際装置アイデンティティ（ＩＭＥＩ）又は移動装置識別子（ＭＥＩＤ））、及び高周波（ＲＦ）キャリブレーションデータも、アプリケーションの記憶装置に記憶される。その結果、ＲＦキャリブレーションデータは、装置が製造者から発売された後、同じデータの更新のために装置を製造者へ返送する必要なく、容易に更新することができる。装置の構成及び動作は、より柔軟性のあるものとなる。
【００１８】
図１は、本発明の一実施形態によるマルチファンクションコンピューティング装置を示すブロック図である。例えば、装置１００は、カリフォルニア州クパチーノのアップル社から入手できるｉＰｈｏｎｅTMのようなスマートホンを表わす。或いは又、装置１００は、アップル社から入手できるｉＰａｄTMのようなタブレットＰＣを表わす。図１を参照すれば、一実施形態において、装置１００は、ワイヤレス通信プロセッサ１０１及びアプリケーションプロセッサ１０２を備え、これらは、内部バス１２０を経て互いに通信結合されている。ワイヤレスプロセッサ１０１は、例えば、セルラープロセッサ、Ｗｉ−Ｆｉプロセッサ、Ｂｌｕｅｔｏｏｔｈ（登録商標）プロセッサ、等の任意の種類のワイヤレスプロセッサである。アプリケーションプロセッサ１０２は、任意の種類の汎用プロセッサである。
【００１９】
更に、装置１００は、ワイヤレスプロセッサ１０１に関連したランダムアクセスメモリ（ＲＡＭ）１０３、及びアプリケーションプロセッサ１０２に関連したＲＡＭ１０４も備えている。ＲＡＭ１０３は、ブートコード、オペレーティングシステム（ＯＳ）、他のランタイムアプリケーション及び／又はデータ、等を含めて、ワイヤレスプロセッサ１０１に関連したソフトウェアコンポーネントを実行するために、ワイヤレスプロセッサ１０１により使用される。同様に、ＲＡＭ１０４は、アプリケーションプロセッサ１０２のＯＳ１１５及びファイルシステム（ＦＳ）１１６、並びに他のアプリケーション及び／又はデータを含めて、アプリケーションプロセッサ１０２に関連したソフトウェアコンポーネントを実行するために、アプリケーションプロセッサ１０２により使用される。
【００２０】
更に、装置１００は、アプリケーションプロセッサ１０２に関連され又はそれに取り付けられた不揮発性記憶装置１０５も備えている。例えば、記憶装置１０５は、ＮＯＲ又はＮＡＮＤフラッシュメモリ装置のようなフラッシュメモリ装置である。或いは又、記憶装置１０５は、ハードディスクのような大量記憶装置である。一実施形態において、従来のマルチファンクション装置とは異なり、ワイヤレスプロセッサ１０１には、専用の不揮発性記憶装置が関連していない。他の実施形態では、ワイヤレスプロセッサには、例えば、セキュアなブートプロセスをブートストラップするために、セキュアなＲＯＭ１１２のような非常に少ない量の不揮発性記憶装置が関連している。しかしながら、そのような実施形態では、少ない量の不揮発性記憶装置は、ブートイメージ又は他のソフトウェア又はデータ、例えば、ワイヤレスプロセッサの構成／キャリブレーションプログラム及びデータを記憶するに充分な容量を有していない。むしろ、ワイヤレスプロセッサ１０１に関連したコード又はデータが記憶装置１０５に記憶される。１つの実施形態では、ワイヤレスプロセッサ１０１は、内部バス１２０を経、通信リンクを経て、記憶装置１０５におけるワイヤレスプロセッサ１０１に関連したコンテンツにアクセスすることができる。１つの実施形態において、内部バス１２０は、ＵＳＢ−ＨＳＩＣ適合バスであり、ワイヤレスプロセッサ１０１は、例えば、ストリーミング非フレーミング通信プロトコルのような高速通信プロトコルを使用して、記憶装置１０５に記憶された関連コンテンツにアクセスすることができる。或いは又、内部バス１２０は、ＵＳＢ高速（ＵＳＢ−ＨＳ）、ＵＳＢ全速（ＵＳＢ−ＦＳ）及びユニバーサル非同期受信器／送信器シリアル周辺インターフェイス（ＵＡＲＴ  ＳＰＩ）適合バスの１つである。
【００２１】
一実施形態において、必要ではないが、記憶装置１０５は、ワイヤレスプロセッサ１０１及びアプリケーションプロセッサ１０２のための個別のパーティションを含んでもよい。この例において、パーティション１０６は、ワイヤレスプロセッサ１０１に関連したコードイメージ１０８及びデータ１１０を記憶するように構成される。又、パーティション１０７は、アプリケーションプロセッサ１０２に関連したコードイメージ１０９及びデータ１１１を記憶するように構成される。その結果、ワイヤレスプロセッサに関連した専用の不揮発性記憶装置を除去することができる。むしろ、ワイヤレスプロセッサ１０１は、内部バス１２０を経、アプリケーションプロセッサ１０２及び／又はその関連ＯＳ１１５及びファイルシステム（ＦＳ）１１６を経てその関連パーティション１０６にアクセスすることができる。この実施形態では、ワイヤレスプロセッサ１０１は、記憶装置１０５に直接アクセスすることができない。むしろ、ワイヤレスプロセッサ１０１は、内部バス１２０を経、通信リンクを経てワイヤレスプロセッサ１０１、ＯＳ１１５及び／又はＦＳ１１６を通過しなければならない。
【００２２】
ワイヤレスプロセッサ１０１に関連した記憶パーティション１０６の一例が図２に示されている。図２を参照すれば、パーティション１０６は、ワイヤレスプロセッサのコードイメージ２０１、ファイルシステムのファイル２０５の１つ以上のコピー、及びログデータ２０６のような他のランタイムデータを記憶するのに使用できる。ワイヤレスコードイメージ２０１は、図１のリードオンリメモリブートローダ（ＲＯＭ  ＢＬ）１１７により認証及びロードされる。更に、パーティション１０６は、例えば、ワイヤレスプロセッサに関連したワイヤレスネットワークＩＤ（例えば、ＩＭＥＩ又はＭＥＩＤ）、及びＲＦキャリブレーションデータ２１２、等の任意のワイヤレスクリティカルデータを記憶するためにセキュアなエリア又は保護エリア２１０も含む。ワイヤレスネットワークＩＤ２１１及びＲＦキャリブレーションデータ２１２は、データ２０１ないし２０６の幾つか又は全部が消去される回復プロセス中でも保護エリア２１０に保持される。
【００２３】
図１を参照すれば、一実施形態により、ワイヤレスプロセッサ１０１は、ＲＯＭ  ＢＬ１１７、証明書１１８、及び任意のパブリックキー１１９が記憶されたセキュアなリードオンリメモリ（ＲＯＭ）１１２を備えている。ワイヤレスプロセッサ１０１は、更に、内部又はオンチップＲＡＭ１１３及び記憶キー１１４も備えている。記憶キー１１４は、ワイヤレスプロセッサ１０１を独特に識別する独特のＩＤ（ＵＩＤ）に基づき発生される。記憶キー１１４及び／又はＵＩＤ（図示せず）は、ワイヤレスプロセッサ１０１の製造中にハードウェア（例えば、バーントヒューズ）において固定配線される。記憶キー１１４は、ワイヤレスプロセッサ１０１により発生されるコンテンツ、例えばランタイムデータ（例えば、ログデータ、ワイヤレスプロセッサ１０１で受け取られるメッセージ、等）を暗号化するのに使用される。証明書１１８は、適切な証明書によりサインされたあるデータを検査又は承認するために使用される。例えば、証明書１１８は、一連の証明書（例えば、一連のＸ．５０９適合証明書）のうちのルート証明書である。パブリックキー１１９は、所定のパブリック／プライベートキー対のパブリックキーであり、それに対応するプライベートキーは、ワイヤレスプロセッサ１０１にデータを与える適切な当局又はプロビジョニングエンティティにより維持される。
【００２４】
一実施形態によれば、図１及び２を参照すると、ワイヤレスプロセッサ１０１がブートのためのコマンドを受け取ると、ＲＯＭ  ＢＬ１１７は、セキュアなＲＯＭ１１２から実行される。ＲＯＭ  ＢＬ１１７は、内部ＲＡＭ１１３、及び内部バス１２０にわたる通信リンク又はチャンネルを含めて、ワイヤレスプロセッサ１０１のあるハードウェアコンポーネントを初期化するように構成される。内部ＲＡＭ１１３及び通信リンクが初期化されると、ＲＯＭ  ＢＬ１１７は、記憶装置１０５のパーティション１０６から通信リンクを経てワイヤレスプロセッサコードイメージ２０１をフェッチする。ワイヤレスプロセッサのコードイメージは、内部ＲＡＭ１１３及び／又は外部ＲＡＭ１０３へロードされる。
【００２５】
本出願全体にわたり、ワイヤレス通信プロセッサ１０１は、一般的に、１つ以上の実際のプロセッサ、プロセッサコア、実行ユニット又はファンクションユニットを含むチップセット、集積回路（ＩＣ）、又は特定用途向けＩＣ（ＡＳＩＣ）と称されることに注意されたい。ここに述べるチップセット又はＩＣは、ある実施形態によれば、セキュアなＲＯＭ１１２、内部ＲＡＭ１１３、及び／又は他のコンポーネント、例えば、記憶キー１１４等を含む。
【００２６】
更に、ＲＯＭ  ＢＬ１１７は、ワイヤレスプロセッサのコードイメージ２０１を認証するように構成される。一実施形態において、ワイヤレスプロセッサのコードイメージ２０１は、証明書によりサインされる。ＲＯＭ  ＢＬ１１７は、証明書１１８を使用してワイヤレスプロセッサのコードイメージ２０１を認証するように構成される。ワイヤレスプロセッサのコードイメージ２０１を首尾良く認証できない場合には、少なくともワイヤレスプロセッサ１０１が強制的にＤＦＵモードに入れられ、新たなデータがプロビジョニングされて、信頼性のあるサーバーからダウンロードされる。ワイヤレスプロセッサのコードイメージ２０１が首尾良く認証されると、ワイヤレスプロセッサのコードイメージ２０１は、ＲＡＭ１１３及び／又はＲＡＭ１０３内のＲＯＭ  ＢＬ１１７により起動され、ワイヤレスプロセッサ１０１に対する動作環境（例えば、ＯＳ及び／又はファイルシステム）を確立する。
【００２７】
ワイヤレスコードイメージ２０１は、複数のセグメントを含み、そして各セグメントは、一連の証明書のうちの１つにより署名される。証明書１１８は、共有記憶装置から検索された第１の全コードセグメントを認証するのに使用される。一実施形態において、コードイメージのセグメントは、セグメントのシーケンスとして構成される。コードシーケンスの現在セグメントは、一連の証明書を使用してコードシーケンスの次のセグメントを認証する。例えば、コードのセグメントは、低レベルブートコード、中間レベルブートコード、及び高レベルブートコードを含む。低レベルブートコードは、ルート証明書により最初に認証される。低レベルブートコードが認証又は検証されると、低レベルブートコードが起動又は実行される。低レベルブートが実行されると、低レベルブートコードは、中間レベルブートコードを（フェッチしそして）認証し、これは、次いで、低レベルブートコードにより首尾良く認証されロードされると、高レベルブートコードを（フェッチしそして）認証し、等々となる。首尾良く認証及び実行できないソフトウェアコンポーネントのセグメントがある場合には、装置が強制的に回復モードに入れられ、ソフトウェアの新たなバージョンが信頼性のあるサーバーからダウンロードされる。
【００２８】
一実施形態では、内部ＲＡＭ１１３は、記憶サイズが、外部ＲＡＭ１０３の記憶サイズより小さい。１つの特定の実施形態では、初期化中に、ＲＯＭブートローダ１１７が、記憶装置１０５から第１のコードセグメント（例えば、第１の全コードセグメント）をフェッチし、その第１のコードセグメントを（例えば、証明書１１８を使用して）認証し、そして内部ＲＡＭ１１３内の第１のコードセグメントを起動する。第１のコードセグメントは、内部ＲＡＭ１１３から首尾良く認証されそして実行されると、第２のコードセグメント（例えば、コードセグメントのシーケンスにおける次のコードセグメント）をフェッチし、第２のコードセグメントを（例えば、証明書１１８に関連した一連の証明書を使用して）認証し、そして外部ＲＡＭ１０３における第２のコードセグメントを起動する。
【００２９】
更に、一実施形態によれば、コードイメージ及び／又はデータは、ワイヤレス通信プロセッサを独特に識別するＵＩＤから導出されるキーによって暗号化される。即ち、コードイメージ及び／又はデータは、ＵＩＤから導出されるキーを使用してそれを暗号化することにより個人化される。その結果、装置にインストールすることが許されるのは、装置に対し特別に指定され又はプロビジョニングされるソフトウェアコンポーネントだけである。ＵＩＤは、ワイヤレス通信プロセッサのセキュアなＲＯＭにも記憶される。或いは又、ＵＩＤは、ワイヤレス通信プロセッサに関連したハードウェアに（例えば、バーントヒューズを経て）固定配線されてもよい。その結果、各ソフトウェアコンポーネントは、それらソフトウェアコンポーネントが妥協されないことを保証するために実行される前に認証及び検証される。
【００３０】
プロセッサの動作環境を確立するためのソフトウェアコンポーネントの認証及びブートに関する更に詳細な情報は、２００７年１月７日に出願された“Secure Booting A Computing Device”と題する同時係争中の米国特許出願第１１／６２０，６８９号に見ることができ、この出願は、参考としてここにそのまま援用される。
【００３１】
更に、コードイメージ及び／又はデータの幾つかは、所定のフォーマットに基づいてパッケージされ、そして共通のセキュリティモデルを経て認証することができる。例えば、コードイメージ及び／又はデータの幾つかは、Ｉｍａｇｅ３フォーマットと同様にパッケージされる。このような具現化において、システムにインストールされ及びロードされるべきソフトウェアコンポーネントの各々は、所定のフォーマットを有するオブジェクトとして具現化され又はパッケージされ、単一のセキュリティ処理エンジン（例えば、コードビルダー及び／又はコードローダー）を使用して、各オブジェクトを、各オブジェクト内に埋め込まれた実行可能なコードを実行する前に、各ソフトウェアコンポーネントが信頼でき且つシステムのある制限又は基準に適合するかどうか決定するためのメカニズムとして構築し及び検証できるようにする。各オブジェクトの少なくとも一部分、例えば、オブジェクトのペイロードは、ターゲットとする装置しかオブジェクトを解読できないように装置のＵＩＤから導出されたキーにより暗号化される（例えば、リックされ又は個人化される）。
【００３２】
Ｉｍａｇｅ３フォーマット及び／又は共通セキュリティモデルに関する更に詳細な情報は、２００８年４月１５日に出願された“Single Security Model in Booting a Computing Device”と題する同時係争中の米国特許出願第１２／１０３，６８５号に見ることができ、この出願は、参考としてここにそのまま援用される。
【００３３】
図３は、本発明の一実施形態によりワイヤレス通信プロセッサをブートする方法を示すフローチャートである。例えば、この方法３００は、図１のシステム１００により遂行される。図３を参照すれば、ブートコマンドに応答して、ブロック３０１において、ワイヤレスプロセッサのセキュアなＲＯＭからＲＯＭ  ＢＬが実行される。ブロック３０２において、ＲＯＭ  ＢＬは、内部ＲＡＭ及び外部ＲＡＭを含めて、ワイヤレスプロセッサのあるハードウェアを初期化する。ブロック３０３において、ＲＯＭ  ＢＬは、アプリケーションプロセッサとの通信チャンネル（例えば、ＵＳＢ−ＨＳＩＣ、ＵＳＢ−ＨＳ、ＵＳＢ−ＦＳ又はＵＡＲＴ  ＳＰＩ）を確立する。一実施形態において、ワイヤレスプロセッサがブートアップするときに、アプリケーションプロセッサは、既にブートアップして動作中であると仮定する。ブロック３０４において、ＲＯＭ  ＢＬは、内部バスを経、通信リンクを経てアプリケーションプロセッサに関連した記憶装置からワイヤレスプロセッサコードイメージをフェッチし、認証し、そして起動して、ワイヤレスプロセッサに対する動作環境を確立する。一実施形態では、ワイヤレスプロセッサのコードイメージは、コードセグメントのシーケンスへと構成され又はパーティション化される。コードセグメントの各々は、あるシーケンスでフェッチされ、認証され、そしてロードされる。そのシーケンスにおける手前のコードセグメントは、そのシーケンスの次のコードセグメントをフェッチし、認証し、そして起動する。いずれかのセグメントが認証又は実行に失敗した場合には、少なくともワイヤレスプロセッサが強制的にＤＦＵモードに入れられる。
【００３４】
図４は、本発明の別の実施形態によるマルチファンクションコンピューティング装置を示すブロック図である。この例では、装置４００は、上述した技術の少なくとも幾つかを使用して首尾良くブートされた図１の装置１００を表わす。図４を参照すれば、ワイヤレスプロセッサ１０１が首尾良くブートアップすると、オペレーティングシステム１５１がアップされて実行中となり、このＯＳ１５１は、上述した技術を使用して認証されそしてインストールされた少なくともワイヤレスプロセッサコードイメージに基づいて確立される。更に、暗号ユニット１５２は、記憶キー１１４を使用して記憶装置１０５の記憶区分１０６に記憶されるランタイムデータを暗号化するように構成される。ランタイム発生データは、ワイヤレスネットワークを経てワイヤレスプロセッサにより受け取られたオーバー・ジ・エアプロビジョニングデータ、及び／又はユーザ特有の又は機密のデータ（例えば、ｅ−メール又はＳＭＳメッセージのようなメッセージ、ロギング、及び／又はファイルシステム関連ファイル）、等を含む。
【００３５】
ワイヤレスプロセッサ１０１に関連したローカル又は専用の不揮発性メモリ装置はないから、ファイルシステム（ＦＳ）ドライバ１５３は、ファイルシステムプロキシードライバ又はデーモンとして利用される。一実施形態では、プロセッサ１０１及び／又はＯＳ１５１から発生されて記憶装置１０５へ書き込まれるべきデータに対して、暗号ユニット１５２は、記憶キー１１４を使用してデータを暗号化し、そしてその暗号化されたデータをＦＳドライバ１５３へ通すように構成される。ＦＳドライバ１５３は、次いで、その暗号化されたデータを、通信リンク（例えば、ＵＳＢ−ＨＳＩＣ）を経てアプリケーションプロセッサ側に位置するＦＳドライバ１５４へ送信する。ＦＳドライバ１５４は、記憶装置１０５の対応区分１０６にその暗号化されたデータを記憶するためにファイルシステム１１６のサービスを呼び出す。
【００３６】
同様に、プロセッサ１０１及び／又はＯＳ１５１が記憶装置１０５からデータを検索する必要があるときには、プロセッサ１０１及び／又はＯＳ１５１は、ＦＳドライバ１５３へ読み取りコマンドを送信する。ＦＳドライバ１５３は、記憶装置１０５からＦＳ１１６を経て関連データ（例えば、暗号データ）を検索するためにＦＳ１５４へ読み取りコマンドを中継する。ＦＳドライバ１５３により暗号データが受け取られると、暗号ユニット１５２は、記憶キー１１４を使用して暗号データを解読し、その解読されたデータをプロセッサ１０１及び／又はＯＳ１５１へ通すように構成される。従って、ＦＳドライバ１５３は、リモートファイルシステムの場合と同様のプロキシー又はエージェントとして働く。或いは又、ＦＳドライバ１５３は、ＯＳ１５１に対するバーチャルファイルシステムとして働き、ＯＳ１５１は、コンテンツが実際にはアプリケーションプロセッサ１０２の記憶装置１０５に記憶されていることを知らない。
【００３７】
ある状況では、重要な又は繊細なデータしか暗号化されないことに注意されたい。ログデータのような他のデータは、暗号化されない。このように、共有記憶装置にアクセスする効率を改善することができる。又、ワイヤレスプロセッサ１０１及びアプリケーションプロセッサ１０２に対して個別のパーティションを維持する必要がないことにも注意されたい。アプリケーションプロセッサ１０２によってアクセスできないセキュアな仕方で、ある重要な又は機密のデータが維持される限り、単一のパーティションが具現化されてもよい。
【００３８】
上述したように、従来の装置では、ＲＦキャリブレーションデータは、製造者により発生され、そしてワイヤレスプロセッサのローカル記憶装置に維持される。更に、ＲＦキャリブレーションデータを更新するために、従来、装置を製造者へ返送し、製造者が新たなＲＦキャリブレーションデータを関連不揮発性記憶装置に記憶しなければならない。一実施形態では、ワイヤレスプロセッサに関連したローカル不揮発性記憶装置がないので、ＲＦキャリブレーションデータは、アプリケーションプロセッサ１０２の記憶装置１０５に記憶される。装置がクラッシュされた場合でもＲＦキャリブレーションデータを維持しなければならないので、ＲＦキャリブレーションデータは、図２に示すように、記憶装置の保護エリア又はセキュアなエリアに記憶される。
【００３９】
一実施形態において、ＲＦキャリブレーションデータは、クラウドネットワークのサーバー（例えば、許可された配布型サーバー又はプロビジョニングサーバー）にも記憶され、そして装置を製造者へ返送するのではなく、クラウドネットワークから新たなＲＦキャリブレーションデータをダウンロードしてアプリケーションプロセッサ１０２に関連した記憶装置１０５に記憶することによりＲＦキャリブレーションデータが更新される。ＲＦキャリブレーションデータは、ワイヤレスプロセッサ１０１のＵＩＤ又は記憶キー１１４を使用してＲＦキャリブレーションデータを暗号化することにより特にプロビジョニングされ且つワイヤレスプロセッサ１０１に関連され、ワイヤレスプロセッサ１０１だけがその暗号化されたＲＦキャリブレーションデータを解読してＲＦキャリブレーションデータを回復できるようにする。その結果、ＲＦキャリブレーションデータは、装置が製造者を去った後に現場で容易に更新することができ、これは、装置を製造者へ返送してＲＦキャリブレーションデータを更新することを要求する従来の構成より融通性がある。
【００４０】
図５は、本発明の一実施形態によりＲＦキャリブレーションデータを発生する方法を示すフローチャートである。例えば、この方法５００は、キャリブレーションステーションにおいて遂行される。図５を参照すれば、ブロック５０１において、キャリブレーションステーションで特定のワイヤレスプロセッサに対してＲＦキャリブレーションデータが発生される。ブロック５０２において、ワイヤレスプロセッサを独特に識別するＵＩＤがＲＦキャリブレーションデータに関連される。例えば、ＲＦキャリブレーションデータは、ワイヤレスプロセッサのＵＩＤに基づいて発生されたキーにより暗号化される。暗号化されたＲＦキャリブレーションデータは、製造者又はキャリブレーションステーションにより一時的に保持される。その後、ブロック５０３において、ワイヤレスプロセッサがアプリケーションプロセッサに結合されたときにアプリケーションプロセッサの記憶装置へＲＦキャリブレーションデータがプッシュダウンされる。ある状況では、ワイヤレスプロセッサ及びアプリケーションプロセッサが異なる売主により異なる時期に製造されることに注意されたい。ワイヤレスプロセッサに関連したローカル記憶装置はないので、ＲＦキャリブレーションデータは、アプリケーションプロセッサ及びそれに関連した記憶装置が入手できる（例えば、一体化される）まで製造者によって保持される必要がある。任意であるが、ブロック５０４において、暗号化されたＲＦキャリブレーションデータは、（例えば、ＲＦキャリブレーションデータのローカルコピーが破損するか又は古くなった場合に）後でダウンロードするためにクラウドネットワークにプッシュアップされてもよい。
【００４１】
図６は、本発明の一実施形態によりＲＦキャリブレーションデータを更新する方法を示すフローチャートである。例えば、方法６００は、装置が製造者から発売された後に現場で新たなＲＦキャリブレーションデータを更新するためにワイヤレスプロセッサにより遂行される。ブロック６０１において、キャリブレーションステーション又はクラウドネットワークからＲＦキャリブレーションデータがダウンロードされ、ワイヤレスプロセッサのＵＩＤから導出されたキーによりＲＦキャリブレーションデータが暗号化される。ブロック６０２において、アプリケーションプロセッサの記憶装置にＲＦキャリブレーションデータが記憶される。キャリブレーションコマンドに応答して、ブロック６０３において、記憶装置から通信リンクを経てＲＦキャリブレーションデータが検索される。ブロック６０４において、ワイヤレスプロセッサは、ワイヤレスプロセッサのＵＩＤから導出されたローカル維持キー（例えば、図１の記憶キー１１４）を使用してＲＦキャリブレーションデータを解読することにより、ＲＦキャリブレーションデータを認証する。首尾良く認証及び／又は解読されると、ブロック６０５において、ワイヤレスプロセッサは、ＲＦキャリブレーションデータを使用してキャリブレーションされる。
【００４２】
プロビジョニングデータ又はＲＦキャリブレーションデータのような新たなデータがリモートファシリティ（例えば、配布又はプロビジョニングサーバー）からダウンロードされると、新たなデータのセキュリティを維持するために、適切な受信者（例えば、適切なワイヤレスプロセッサ）しかデータを解読できないプロビジョニングファシリティによりデータを暗号化しなければならない。即ち、データを暗号化するのに使用されるキーは、意図された受信者及びプロビジョニングファシリティしか知らず、さもなければ、データが妥協されることがある。
【００４３】
図７は、本発明の一実施形態により、ワイヤレスプロセッサにインストールされるべくリモートファシリティからネットワークを経てデータをセキュアにダウンロードするためのシステム構成体を例示する図である。図７を参照すれば、システム構成７００は、コンピューティング装置７０１、許可サーバー７０２、及び１つ以上の分散サーバー７０３を備え、これらは、ローカルエリアネットワーク又はワイドエリアネットワーク（例えば、インターネット）であるネットワーク７０４を経て互いに通信結合される。コンピューティング装置７０１は、図１のコンピューティング装置１００を表わす。許可サーバー７０２は、コンピューティング装置７０１を設計又は製造する当局に関連付けられる。配布サーバー７０３は、コンピューティング装置７０１によりインストール又は使用されるべきプロビジョニングデータ又はＲＦキャリブレーションデータのようなデータ７０７を配布することが許可されたネットワーク７０４（例えば、クラウドネットワーク）内のいずれかのサーバーである。
【００４４】
一実施形態によれば、コンピューティング装置７０１がサーバー７０３のような配布サーバーの１つからデータをダウンロードする必要がある場合に、コンピューティング装置７０１は、一時的又はランダムセッションキー７０５を発生する。このセッションキー７０５は、パブリックキー１１９、即ちパブリック／プライベートキー対のパブリックコンポーネントによって暗号化され、このキー対のプライベートコンポーネントは、許可サーバー７０２によりプライベートキー７０６として維持される。パブリックキー１１９は、例えば、装置の製造中に、デジタル証明書の形態で事前に配布される。更に、記憶キー１１４又はコンピューティング装置７０１のＵＩＤから導出されたキーを使用してセッションキー７０５を暗号化することにより回復ブロブ(blob)が発生される。その後、暗号化されたセッションキー及び回復ブロブは、コンピューティング装置７０１から経路（１）を経て許可サーバー７０２へ送られる。許可サーバー７０２は、コンピューティング装置７０１を認証し、そしてプライベートキー７０６を使用してセッションキーを解読することによりセッションキーを回復する。セッションキー及び回復ブロブは、許可サーバー７０２から、経路（２）を経て、例えば、セキュアな接続を経て、配布サーバー７０３の１つへ送られる。次いで、配布サーバー７０３は、許可サーバー７０２から受け取られたセッションキーを使用してデータ７０７を暗号化する。その後、暗号化されたデータ７０７及び回復ブロブは、配布サーバー７０３からコンピューティング装置７０１へ送られる。
【００４５】
コンピューティング装置７０１は、記憶キー１１４を使用して回復ブロブを解読することによりセッションキーを回復することができる。次いで、セッションキーは、暗号化されたデータ７０７を、インストール又はキャリブレーション、等のために解読するのに使用される。即ち、コンピューティング装置７０１が、暗号化されたデータ７０７の意図された受信者である場合に、コンピューティング装置７０１は、記憶キー１１４を使用して回復ブロブを解読することによりセッションキーを回復できねばならない。というのは、回復ブロブは、真の所有者、この例では、コンピューティング装置７０１によって最初に発生されたからである。回復ブロブを発生していない他の装置は、回復ブロブを解読するための適切な記憶キーを所有していないので、セッションキーを回復することができない。その結果、サーバー７０３により配布されたデータ７０７は、セキュアにダウンロードされて、コンピューティング装置７０１にインストールされる。プライベートキー７０６も配布サーバー７０３へ配布されて維持されることに注意されたい。又、許可サーバー７０２及び配布サーバー７０３は、同じサーバーでもよいことに注意されたい。
【００４６】
更に、一実施形態によれば、データ７０７は、セキュアなインストールのためのチケットベースの許可プロセスを使用してパッケージされ、配布される。この実施形態では、データ７０７は、特に、「チケット(ticket)」を経てパッケージされそして個人化される。チケットとは、ソフトウェアコンポーネントごとにハッシュ及び／又はバージョン識別子のようなセキュリティ手段の集合を表わす。又、チケットは、許可サーバー７０２のような中央当局により発生され、配布される。チケットは、ハッカーがインストールのためのソフトウェアコンポーネントの異なるバージョンを混合し一致させる機会を減少することができる。チケットベースの許可プロセスに関する更に詳細な情報は、２００８年１２月５日に出願された“Ticket Authorized Secure Installation and boot”と題する同時係争中の米国特許出願第１２／３２９，３７７号に見ることができ、この出願は、参考としてここにそのまま援用される。
【００４７】
図８は、本発明の一実施形態によりプロビジョニングデータを更新する方法を例示するフローチャートである。この方法８００は、特に、データの新たなセットをダウンロードする試みにおいてＤＦＵモード中に、ワイヤレスプロセッサ１０１のようなワイヤレスプロセッサにより遂行される。図８を参照すれば、リモートサーバーからの新たなデータを更新する必要があるとき、ブロック８０１において、セッションキーが発生される。セッションキーは、ワイヤレスプロセッサのＵＩＤから導出されたキー（例えば、図１の記憶キー１１４）によって暗号化されて、回復ブロブを発生する。ブロック８０２において、セッションキーは、パブリックキー及びプライベートキーを有する非対称的キー対のパブリックキー（例えば、図１のパブリックキー１１９）によっても暗号化される。回復ブロブ、及びパブリックキーで暗号化されたセッションの両方が、信頼性のある許可サーバー（例えば、ａｐｐｌｅ．ｃｏｍ）へ送られる。
【００４８】
この実施形態では、装置の製造中にパブリックキーが発生され、キー対のプライベートキーは、信頼性のある許可ファシリティ（例えば、許可サーバー）によって保持されると仮定する。信頼性のある許可ファシリティは、それに対応するプライベートキーを使用してその暗号化されたセッションキーを解読することによってセッションキーを回復する。信頼性のある許可ファシリティは、次いで、回復ブロブ及びセッションキーの両方をクラウドネットワークにおける１つ以上の配布ファシリティへ送る。
【００４９】
その後、ブロック８０３において、セッションキーにより暗号化されて配布ファシリティにより配布されたデータ、及び回復ブロブは、ワイヤレスプロセッサによって受け取られる。この状況において、適切な又は意図された受信者だけが、回復ブロブを解読するに必要なキー（例えば、記憶キー）を持っている。ブロック８０４において、ワイヤレスプロセッサは、装置のＵＩＤから導出されたキーを使用して回復ブロブを解読することによりセッションキーを回復する。ブロック８０５において、セッションキーを使用して、配布ファシリティから送られた配布データを解読する。即ち、配布ファシリティ及び装置の両方だけが、更なる機密を交換するのに使用できる適切なセッションキーを有する。
【００５０】
図９は、本発明の一実施形態に使用されるデータ処理システムの一例を示す。例えば、システム９００は、図１に示す装置１００として具現化される。図９に示すデータ処理システム９００は、１つ以上のマイクロプロセッサであるか又は集積回路のシステムオンチップである処理システム９１１を備え、そして更に、処理システムにより実行するためのデータ及びプログラムを記憶するメモリ９０１も備えている。又、システム９００は、例えば、音楽を再生するためのマイクロホン及びスピーカを含み、或いはスピーカ又はマイクロホンを通して電話機能を与えるオーディオ入力／出力サブシステム９０５も備えている。
【００５１】
ディスプレイコントローラ・ディスプレイ装置９０７は、ユーザのための視覚ユーザインターフェイスをなし、このデジタルインターフェイスは、オペレーティングシステムソフトウェアを実行するときに、ｉＰｈｏｎｅ（登録商標）電話装置、ｉＰａｄ装置、又はマッキントッシュコンピュータに示されたものと同様のグラフィックユーザインターフェイスを含む。又、システム９００は、別のデータ処理システムと通信するために１つ以上のワイヤレストランシーバ９０３も備えている。ワイヤレストランシーバは、ＷｉＦｉトランシーバ、赤外線トランシーバ、Ｂｌｕｅｔｏｏｔｈ（登録商標）トランシーバ、及び／又はワイヤレスセルラー電話トランシーバである。ある実施形態では、ここに示されない付加的なコンポーネントも、システム９００の一部分であり、又、ある実施形態では、図９に示すものより少数のコンポーネントがデータ処理システムに使用されることが明らかである。
【００５２】
又、データ処理システム９００は、ユーザがシステムに入力を与えることができるように設けられた１つ以上の入力装置９１３も備えている。これらの入力装置は、キーパッド、キーボード、タッチパネル、又はマルチタッチパネルである。又、データ処理システム９００は、ドックのためのコネクタである任意の入力／出力装置９１５も備えている。この技術で知られたように、図示されていない１つ以上のバスを使用して種々のコンポーネントを相互接続できることも明らかであろう。図９に示したデータ処理システムは、ハンドヘルドコンピュータ又はパーソナルデジタルアシスタント（ＰＤＡ）、或いはＰＤＡのような機能を伴うセルラー電話、或いはセルラー電話又はメディアプレーヤ、例えば、ｉＰｏｄを含むハンドヘルドコンピュータ、或いはこれらの装置の特性又は機能を結合した装置、例えば、１つの装置においてＰＤＡ及びセルラー電話と結合されたメディアプレーヤである。他の実施形態では、データ処理システム９００は、ネットワークコンピュータ、又は別の装置内に埋め込まれた処理装置、或いは図９に示すものより少数のコンポーネント又はおそらく多数のコンポーネントを有する他の形式のデータ処理システムである。
【００５３】
本発明の少なくとも幾つかの実施形態は、ポータブル音楽及び／又はビデオメディアプレーヤのようなデジタルメディアプレーヤの一部分であり、メディアを提示するためのメディア処理システム、メディアを記憶するために記憶装置を含むと共に、アンテナシステム及びメディア処理システムに結合された高周波（ＲＦ）トランシーバ（例えば、セルラー電話のためのＲＦトランシーバ）も更に含む。ある実施形態では、リモート記憶装置に記憶されるメディアは、ＲＦトランシーバを通してメディアプレーヤへ送信される。メディアは、例えば、音楽又は他のオーディオ、静止画像又は動画の１つ以上である。
【００５４】
ポータブルメディアプレーヤは、カリフォルニア州クパチーノのアップル社からのｉＰｏｄ（登録商標）又はｉＰｏｄ  Ｎａｎｏ（登録商標）メディアプレーヤにおけるクリックホイール入力装置のようなメディア選択装置、タッチスクリーン又はマルチタッチ入力装置、プッシュボタン装置、可動ポインティング入力装置、又は他の入力装置を含む。メディア選択装置は、記憶装置及び／又はリモート記憶装置に記憶されたメディアを選択するのに使用される。ポータブルメディアプレーヤは、少なくともある実施形態では、入力装置を通して選択されて、スピーカ又はイヤホンを通して、又はディスプレイ装置に、或いはディスプレイ装置及びスピーカ又はイヤホンの両方に提示されるメディアのタイトル又は他の指示子を表示するために、メディア処理システムに結合されたディスプレイ装置を含む。
【００５５】
上述した詳細な説明のある部分は、コンピュータメモリ内のデータビットに対するオペレーションのアルゴリズム及び記号的表現に関して表わされた。それらのアルゴリズムの記述及び表現は、データ処理技術の当業者が自身の仕事の実体を他の当業者に最も効率的に伝達するのに使用される仕方である。アルゴリズムとは、ここでは、一般的に、望ましい結果を導く自己矛盾のないオペレーションシーケンスであると考えられる。オペレーションは、物理量の物理的操作を要求するものである。通常、必ずしもそうでないが、これらの量は、記憶、転送、合成、比較、その他、操作することのできる電気的又は磁気的信号の形態をとる。主として、通常使用の理由で、これらの信号は、ビット、値、エレメント、記号、キャラクタ、期間、数、等として参照するのが便利であると分かっている。
【００５６】
しかしながら、これら及び同様の用語は、全て、適当な物理量に関連付けられ、そしてそれらの量に適用される便宜的表示に過ぎないことを銘記されたい。特に指示のない限り、以上の説明から明らかなように、この説明全体を通して、特許請求の範囲に示すような用語を使用した説明は、コンピュータシステムのレジスタ及びメモリ内で物理的（電子的）量として表されたデータを操作し、そしてコンピュータシステムのメモリ又はレジスタ或いは他のそのような情報記憶、伝達又は表示装置内で物理的量として同様に表される他のデータへと変換するコンピュータシステム又は同様の電子的コンピューティング装置のアクション及び処理を参照するものである。
【００５７】
又、本発明の実施形態は、ここに示すオペレーションを遂行するための装置にも係る。この装置は、要求される目的のために特に構成されてもよいし、又は記憶されたコンピュータプログラムにより選択的にアクチベートされ又は再構成される汎用コンピュータを備えてもよい。そのようなコンピュータプログラムは、コンピュータ読み取り可能な媒体に記憶される。コンピュータ読み取り可能な媒体は、マシン（例えば、コンピュータ）により読み取りできる形態で情報を記憶するためのメカニズムを備えている。例えば、コンピュータ読み取り可能な（例えば、コンピュータ読み取り可能な）媒体は、マシン（例えば、コンピュータ）読み取り可能な記憶媒体（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリ装置、等）、等々を含む。
【００５８】
添付図面に示されたプロセス又は方法は、ハードウェア（例えば、回路、専用ロジック、等）、ソフトウェア、又はその両方の組み合わせを含む処理ロジックにより遂行される。プロセス又は方法は、幾つかの逐次のオペレーションに関して上述したが、それらオペレーションの幾つかは、異なる順序で遂行されてもよいことが明らかであろう。更に、あるオペレーションは、逐次ではなく、パラレルに遂行されてもよい。
【００５９】
ここに述べるアルゴリズム及びディスプレイは、特定のコンピュータ又は他の装置に固有に関係していない。種々の汎用システムを、ここに述べる技術に基づくプログラムと共に使用してもよいし、又は必要な方法オペレーションを遂行するように更に特殊な装置を構成するのが便利であると分かっている。種々のこれらシステムに要求される構造は、以上の説明から明らかとなろう。更に、本発明の実施形態は、特定のプログラミング言語を参照して説明していない。上述した本発明の実施形態の教示を具現化するのに種々のプログラミング言語を使用できることが明らかであろう。
【００６０】
以上、特定の実施形態を参照して本発明を説明した。特許請求の範囲に述べる本発明の広い精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、明細書及び添付図面は、例示とみなすべきで、それに限定されるものではない。
【符号の説明】
【００６１】
１００：コンピューティング装置
１０１：ワイヤレスプロセッサ
１０２：アプリケーションプロセッサ
１０３、１０４：ＲＡＭ
１０５：記憶装置
１０６：ワイヤレスプロセッサのパーティション
１０７：アプリケーションプロセッサのパーティション
１０８、１０９：実行可能なコードイメージ
１１０、１１１：データ
１１２：セキュアなＲＯＭ
１１３：内部ＲＡＭ
１１４：記憶キー
１１５：オペレーティングシステム（ＯＳ）
１１６：ファイルシステム
１１７：ＲＯＭブートローダ（ＲＯＭ  ＢＬ）
１１８：証明書
１１９：パブリックキー
１２０：内部バス
２０１：ワイヤレスプロセッサのコードイメージ
２０５：ファイルシステム
２０６：ログデータ
２１０：セキュアなエリア
２１１：ワイヤレスネットワークＩＤ
２１２：ＲＦキャリブレーションデータ
【図１】
0005576983.tif 000002
【図２】
0005576983.tif 000003
【図３】
0005576983.tif 000004
【図４】
0005576983.tif 000005
【図５】
0005576983.tif 000006
【図６】
0005576983.tif 000007
【図７】
0005576983.tif 000008
【図８】
0005576983.tif 000009
【図９】
0005576983.tif 000010