(57)【要約】  コンピューティングデバイス上の証明書を管理するための技法が開示される。これらの技法による例示的な方法は、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信するステップであって、証明書アクションは、失効アクションまたはアクティブ化アクションであり、画像ファイルは、署名証明書によって署名されている、ステップと、署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断するステップと、画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書が、メモリ内で発見されていることに応答して、メモリ内の証明書に関連するインジケータの値を設定することによって、証明書アクションを実行するステップとを含む。
2018533282.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上の証明書を管理するための方法であって、
前記コンピューティングデバイスにおいて、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信するステップであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、ステップと、
前記署名証明書のハッシュ値を、前記コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断するステップと、
前記画像ファイルが前記有効な証明書によって署名されており、前記証明書アクションが実行されるべき前記証明書が前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記証明書に関連するインジケータの値を設定することによって、前記証明書アクションが実行されるべき前記証明書に対して前記証明書アクションを実行するステップと
を含む方法。
【請求項２】
前記署名証明書および前記証明書は同じ証明書である、請求項1に記載の方法。
【請求項３】
前記署名証明書の前記ハッシュ値を、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断するステップは、
前記署名証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
識別された前記ハッシュ値に関連する前記証明書がアクティブであるかどうかを判断するステップは、
識別された前記ハッシュ値のハッシュ値を決定するステップと、
識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータが、前記証明書がアクティブであることを示す値に設定されているかどうかを判断するステップと
をさらに含む、請求項3に記載の方法。
【請求項５】
識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断するステップ
をさらに含む、請求項4に記載の方法。
【請求項６】
前記証明書アクションは前記失効アクションであり、前記証明書に対して前記証明書アクションを実行するステップは、
前記証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
識別された前記ハッシュ値のハッシュ値を決定するステップと、
前記証明書を取消不能の形で失効させるために、識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記ワンタイムプログラマブルメモリ内の前記第1のインジケータの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記証明書アクションは前記アクティブ化アクションであり、前記証明書に対して前記証明書アクションを実行するステップは、
前記証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
前記証明書の前記ハッシュ値のハッシュ値を決定するステップと、
前記証明書をアクティブ化するために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータの値を設定するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断すること
によって、前記証明書が失効しているかどうかを判断するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
装置であって、
証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信するための手段であって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、手段と、
前記署名証明書のハッシュ値を、前記装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断するための手段と、
前記画像ファイルが前記有効な証明書によって署名されており、前記証明書アクションが実行されるべき前記証明書が前記装置の前記ワンタイムプログラマブルメモリ内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記証明書に関連するインジケータの値を設定することによって、前記証明書に対して前記証明書アクションを実行するための手段と
を含む装置。
【請求項１１】
前記署名証明書および前記証明書は同じ証明書である、請求項10に記載の装置。
【請求項１２】
前記署名証明書の前記ハッシュ値を、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断するための前記手段は、
前記署名証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１３】
識別された前記ハッシュ値に関連する前記証明書がアクティブであるかどうかを判断するための前記手段は、
識別された前記ハッシュ値のハッシュ値を決定するための手段と、
識別された前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第2のインジケータが、前記証明書がアクティブであることを示す値に設定されているかどうかを判断するための手段と
をさらに含む、請求項12に記載の装置。
【請求項１４】
識別された前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断するための手段
をさらに含む、請求項13に記載の装置。
【請求項１５】
前記証明書アクションは前記失効アクションであり、前記証明書に対して前記証明書アクションを実行するための前記手段は、
前記証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
前記証明書の前記ハッシュ値のハッシュ値を決定するための手段と、
前記証明書を取消不能の形で失効させるために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１６】
前記ワンタイムプログラマブルメモリ内の前記第1のインジケータの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するための手段をさらに含む、請求項15に記載の装置。
【請求項１７】
前記証明書アクションは前記アクティブ化アクションであり、前記証明書に対して前記証明書アクションを実行するための前記手段は、
前記証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
前記証明書の前記ハッシュ値のハッシュ値を決定するための手段と、
前記証明書をアクティブ化するために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第2のインジケータを設定するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１８】
前記証明書が失効しているかどうかを判断するための手段をさらに含み、前記証明書が失効しているかどうかを判断するための前記手段は、
前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断するための手段
を含む、請求項17に記載の装置。
【請求項１９】
コンピューティングデバイスであって、
ワンタイムプログラマブルメモリと、
前記ワンタイムプログラマブルメモリに結合された少なくとも1つのプロセッサと
を含み、前記少なくとも1つのプロセッサは、
証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信することであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、受信することと、
前記署名証明書のハッシュ値を、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断することと、
前記画像ファイルが前記有効な証明書によって署名されており、前記証明書アクションが実行されるべき前記証明書が前記ワンタイムプログラマブルメモリ内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記証明書に関連するインジケータの値を設定することによって、前記証明書に対して前記証明書アクションを実行することと
を行うように構成される、コンピューティングデバイス。
【請求項２０】
前記署名証明書および前記証明書は同じ証明書である、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記証明書アクションは前記失効アクションであり、前記証明書に対して前記証明書アクションを実行するように構成される前記少なくとも1つのプロセッサは、
前記証明書の前記ハッシュ値と一致する、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記証明書の前記ハッシュ値のハッシュ値を決定することと、
前記証明書を取消不能の形で失効させるために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定することと
を行うようにさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２２】
前記少なくとも1つのプロセッサは、前記ワンタイムプログラマブルメモリ内の前記第1のインジケータの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するようにさらに構成される、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記証明書アクションは前記アクティブ化アクションであり、前記証明書に対して前記証明書アクションを実行するように構成される前記少なくとも1つのプロセッサは、
前記証明書の前記ハッシュ値と一致する、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記証明書の前記ハッシュ値のハッシュ値を決定することと、
前記証明書をアクティブ化するために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第2のインジケータの値を設定することと
を行うようにさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２４】
前記少なくとも1つのプロセッサは、前記証明書が失効しているかどうかを判断するようにさらに構成され、前記少なくとも1つのプロセッサは、
前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断する
ように構成される、請求項23に記載のコンピューティングデバイス。
【請求項２５】
コンピューティングデバイス上の証明書を管理するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読媒体であって、
証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信することであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、受信することと、
前記署名証明書のハッシュ値を、前記コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断することと、
前記画像ファイルが前記有効な証明書によって署名されており、前記証明書アクションが実行されるべき前記証明書が前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記証明書に関連するインジケータの値を設定することによって、前記証明書に対して前記証明書アクションを実行することと
を前記コンピューティングデバイスに行わせるように構成された命令を含む、非一時的コンピュータ可読媒体。
【請求項２６】
前記署名証明書および前記証明書は同じ証明書である、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記署名証明書の前記ハッシュ値を、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記署名証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２８】
前記証明書アクションは前記失効アクションであり、前記証明書に対して前記証明書アクションを実行することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記証明書の前記ハッシュ値のハッシュ値を決定することと、
前記証明書を取消不能の形で失効させるために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記証明書アクションは前記アクティブ化アクションであり、前記証明書に対して前記証明書アクションを実行することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記証明書の前記ハッシュ値のハッシュ値を決定することと、
前記証明書をアクティブ化するために、前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータの値を設定することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記証明書が失効しているかどうかを判断することを前記コンピューティングデバイスに行わせるように構成された命令をさらに含み、前記コンピューティングデバイスは、
前記証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータが、前記証明書が失効していないことを示す値に設定されているかどうかを判断する
ように構成される、請求項29に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ラップトップ、モバイルフォン、スマートフォン、スマートウォッチ、および他のタイプのコンピューティングデバイスなどのコンピューティングデバイスは、公開鍵基盤の一部として暗号証明書を使用することができる。証明書は、コンピューティングデバイスによって様々な方法で使用され得る。たとえば、コンピューティングデバイスによって実行されるオペレーティングシステムファイルおよび/または他のソフトウェアなどのソフトウェアが信頼できるソースによって提供されていることを保証するためにコンピューティングデバイス上に配置される画像ファイルに署名するために、証明書は使用され得る。
【０００２】
証明書は、証明局(CA)が証明書を不適切に発行した場合、または秘密鍵が損なわれた場合など、いくつかの状況では不可逆的に失効し得る。証明書はまた、証明書によって識別されたエンティティが、偽造文書の発行、ソフトウェア行動の不実表示、またはCA事業者もしくはCAの顧客によって明示された任意の他のポリシーの違反など、ポリシー要件に従わなかった場合に失効し得る。最も一般的な失効理由は、ユーザがもはや秘密鍵を単独で所有していない(たとえば、秘密鍵を含むトークンの紛失または盗難に遭った)ことである。最も一般的な失効実施は、証明書失効リスト(CRL:Certification Revocation List)を使用する。CRLは、デジタル証明書のリストならびに証明書の各々の失効理由を列挙している。CRLは、モバイルコンピューティングシステムおよび/または埋込み型コンピューティングシステム環境にとって良好なソリューションをもたらさないが、その理由として、CRLが頻繁に更新されなければならず、そのようなコンピューティングデバイスのたいてい限られたメモリ内のかなりの量のスペースを消費し得ることがある
【発明の概要】
【課題を解決するための手段】
【０００３】
コンピューティングデバイス上の証明書を管理するための例示的な方法は、コンピューティングデバイスにおいて、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信するステップであって、証明書アクションは、失効アクションまたはアクティブ化アクションであり、画像ファイルは、署名証明書によって署名されている、ステップと、署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断するステップと、画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書が、コンピューティングデバイスのワンタイムプログラマブルメモリ内で発見されていることに応答して、ワンタイムプログラマブルメモリ内の証明書に関連するインジケータの値を設定することによって、証明書アクションが実行されるべき証明書に対して証明書アクションを実行するステップとを含む。
【０００４】
そのような方法の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。署名証明書および証明書は、同じ証明書である。署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが証明書によって署名されているかどうかを判断するステップは、署名証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するステップと、識別されたハッシュ値に関連する証明書がアクティブであるかどうかを判断するステップとを含む。識別されたハッシュ値に関連する証明書がアクティブであるかどうかを判断するステップは、識別されたハッシュ値のハッシュ値を決定するステップと、識別されたハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第2のインジケータが、証明書がアクティブであることを示す値に設定されているかどうかを判断するステップとを含む。識別されたハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかを判断するステップ。証明書アクションは失効アクションであり、証明書に対して証明書アクションを実行するステップは、証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するステップと、識別されたハッシュ値のハッシュ値を決定するステップと、証明書を取消不能の形で失効させるために、識別されたハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータの値を設定するステップとを含む。ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定する前に、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するステップ。証明書アクションはアクティブ化アクションであり、証明書に対して証明書アクションを実行するステップは、証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するステップと、証明書のハッシュ値のハッシュ値を決定するステップと、証明書をアクティブ化するために、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第2のインジケータの値を設定するステップとを含む。証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかを判断することによって、証明書が失効しているかどうかを判断するステップ。ワンタイムプログラマブルメモリ内のインジケータは、データの1つまたは複���のビットを表すことができる、ヒューズ、アンチヒューズ、または他のタイプのインジケータを含むことができる。インジケータの値は、ヒューズを飛ばすこと、またはさもなければワンタイムプログラマブルメモリ内の値を取消不能の形で設定することによって、設定され得る。
【０００５】
本開示による例示的な装置は、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信するための手段であって、証明書アクションは、失効アクションまたはアクティブ化アクションであり、画像ファイルは、署名証明書によって署名されている、手段と、署名証明書のハッシュ値を、装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断するための手段と、画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書が、装置のワンタイムプログラマブルメモリ内で発見されていることに応答して、ワンタイムプログラマブルメモリ内の証明書に関連するインジケータの値を設定することによって、証明書に対して証明書アクションを実行するための手段とを含む。
【０００６】
そのような装置の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。署名証明書および証明書は、同じ証明書である。署名証明書のハッシュ値を、装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断するための手段は、署名証明書のハッシュ値と一致する、装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するための手段と、識別されたハッシュ値に関連する証明書がアクティブであるかどうかを判断するための手段とを含む。識別されたハッシュ値に関連する証明書がアクティブであるかどうかを判断するための手段は、識別されたハッシュ値のハッシュ値を決定するための手段と、識別されたハッシュ値のハッシュ値に関連する装置のワンタイムプログラマブルメモリ内の第2のインジケータが、証明書がアクティブであることを示す値に設定されているかどうかを判断するための手段とを含む。識別されたハッシュ値のハッシュ値に関連する装置のワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかを判断するための手段。証明書アクションは失効アクションであり、証明書に対して証明書アクションを実行するための手段は、証明書のハッシュ値と一致する、装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するための手段と、証明書のハッシュ値のハッシュ値を決定するための手段と、証明書を取消不能の形で失効させるために、証明書のハッシュ値のハッシュ値に関連する装置のワンタイムプログラマブルメモリ内の第1のインジケータの値を設定するための手段とを含む。ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定する前に、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するための手段。証明書アクションはアクティブ化アクションであり、証明書に対して証明書アクションを実行するための手段は、証明書のハッシュ値と一致する、装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別するための手段と、証明書のハッシュ値のハッシュ値を決定するための手段と、証明書をアクティブ化するために、証明書のハッシュ値のハッシュ値に関連する装置のワンタイムプログラマブルメモリ内の第2のインジケータの値を設定するための手段とを含む。証明書が失効しているかどうかを判断するための手段、証明書が失効しているかどうかを判断するための手段は、証明書のハッシュ値のハッシュ値に関連する装置のワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかを判断するための手段を含む。ワンタイムプログラマブルメモリ内のインジケータは、データの1つまたは複数のビットを表すことができる、ヒューズ、アンチヒューズ、または他のタイプのインジケータを含むことができる。���ンジケータの値は、ヒューズを飛ばすこと、またはさもなければワンタイムプログラマブルメモリ内の値を取消不能の形で設定することによって、設定され得る。
【０００７】
本開示による例示的なコンピューティングデバイスは、ワンタイムプログラマブルメモリと、ワンタイムプログラマブルメモリに結合された少なくとも1つのプロセッサとを含む。少なくとも1つのプロセッサは、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信することであって、証明書アクションは、失効アクションまたはアクティブ化アクションであり、画像ファイルは、署名証明書によって署名されている、受信することと、署名証明書のハッシュ値を、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断することと、画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書が、ワンタイムプログラマブルメモリ内で発見されていることに応答して、ワンタイムプログラマブルメモリ内の証明書に関連するインジケータの値を設定することによって、証明書に対して証明書アクションを実行することとを行うように構成される。
【０００８】
そのようなコンピューティングデバイスの実装形態は、以下の特徴のうちの1つまたは複数を含み得る。署名証明書および証明書は、同じ証明書である。証明書アクションは失効アクションであり、証明書に対して証明書アクションを実行するように構成される少なくとも1つのプロセッサは、証明書のハッシュ値と一致する、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別することと、証明書のハッシュ値のハッシュ値を決定することと、証明書を取消不能の形で失効させるために、証明書のハッシュ値のハッシュ値に関連するワンタイムプログラマブルメモリ内の第1のインジケータの値を設定することとを行うようにさらに構成される。少なくとも1つのプロセッサは、ワンタイムプログラマブルメモリ内の第1のインジケータの値を設定する前に、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するようにさらに構成される。証明書アクションはアクティブ化アクションであり、証明書に対して証明書アクションを実行するように構成される少なくとも1つのプロセッサは、証明書のハッシュ値と一致する、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別することと、証明書のハッシュ値のハッシュ値を決定することと、証明書をアクティブ化するために、証明書のハッシュ値のハッシュ値に関連するワンタイムプログラマブルメモリ内の第2のインジケータの値を設定することとを行うようにさらに構成される。少なくとも1つのプロセッサは、証明書が失効しているかどうかを判断するようにさらに構成され、少なくとも1つのプロセッサは、証明書のハッシュ値のハッシュ値に関連するワンタイムプログラマブルメモリ内の第1のインジケータの値が、証明書が失効していないことを示す値に設定されているかどうかを判断するように構成される。ワンタイムプログラマブルメモリ内のインジケータは、データの1つまたは複数のビットを表すことができる、ヒューズ、アンチヒューズ、または他のタイプのインジケータを含むことができる。インジケータの値は、ヒューズを飛ばすこと、またはさもなければワンタイムプログラマブルメモリ内の値を取消不能の形で設定することによって、設定され得る。
【０００９】
本開示による例示的な非一時的コンピュータ可読媒体は、コンピューティングデバイス上の証明書を管理するためのコンピュータ可読命令を記憶している。記憶された命令は、証明書アクションが実行されるべき証明書のハッシュ値を含む画像ファイルを受信することであって、証明書アクションは、失効アクションまたはアクティブ化アクションであり、画像ファイルは、署名証明書によって署名されている、受信することと、署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断することと、画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書が、コンピューティングデバイスのワンタイムプログラマブルメモリ内で発見されていることに応答して、ワンタイムプログラマブルメモリ内の証明書に関連するインジケータの値を設定することによって、証明書に対して証明書アクションを実行することとをコンピューティングデバイスに行わせるように構成された命令を含む。
【００１０】
そのような非一時的コンピュータ可読媒体の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。署名証明書および証明書は、同じ証明書である。署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかを判断することをコンピューティングデバイスに行わせるように構成された命令は、署名証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別することと、識別されたハッシュ値に関連する証明書がアクティブであるかどうかを判断することとをコンピューティングデバイスに行わせるように構成された命令を含む。証明書アクションは失効アクションであり、証明書に対して証明書アクションを実行することをコンピューティングデバイスに行わせるように構成された命令は、証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別することと、証明書のハッシュ値のハッシュ値を決定することと、証明書を取消不能の形で失効させるために、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータの値を設定することとをコンピューティングデバイスに行わせるように構成された命令を含む。証明書アクションはアクティブ化アクションであり、証明書に対して証明書アクションを実行することをコンピューティングデバイスに行わせるように構成された命令は、証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値を識別することと、証明書のハッシュ値のハッシュ値を決定することと、証明書をアクティブ化するために、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第2のインジケータの値を設定することとをコンピューティングデバイスに行わせるように構成された命令を含む。証明書が失効しているかどうかを判断することをコンピューティングデバイスに行わせるように構成された命令、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかを判断するように構成された命令を含む命令。ワンタイムプログラマブルメモリ内のインジケータは、データの1つまたは複数のビットを表すことができる、ヒューズ、アンチヒューズ、または他のタイプのインジケータを含むことができる。インジケータの値は、ヒューズを飛ばすこと、またはさもなければワンタイムプログラマブルメモリ内の値を取消不能の形で設定することによって、設定され得る。
【図面の簡単な説明】
【００１１】
【図１】本明細書で論じる技法を実装するのに適する可能性がある、ある例示的なネットワークアーキテクチャのブロック図である。
【図２】図1に示したコンピューティングデバイスを実装するために使用され得るある例示的なコンピューティングデバイスのブロック図である。
【図３】コンピューティングデバイスの機能ユニットを示す、図2に示したコンピューティングデバイスの機能ブロック図である。
【図４】本明細書で論じる技法による、プロビジョニングプロセスの態様を示すブロック図である。
【図５】本明細書で論じる技法による、プロビジョニングするためのある例示的なプロセスの流れ図である。
【図６】本明細書で論じる技法による、コンピューティングデバイス上の証明書を管理するためのある例示的なプロセスの流れ図である。
【図７】本明細書で論じる技法による、コンピューティングデバイス上で証明書がアクティブであるかどうかを判断するためのある例示的なプロセスの流れ図である。
【図８】本明細書で論じる技法による、コンピューティングデバイス上で証明書がアクティブであるかどうかを判断するためのある例示的なプロセスの流れ図である。
【図９】本明細書で論じる技法による、コンピューティングデバイス上の証明書を失効させるためのある例示的なプロセスの流れ図である。
【図１０】本明細書で論じる技法による、コンピューティングデバイス上の証明書を失効させるためのある例示的なプロセスの流れ図である。
【図１１】本明細書で論じる技法による、コンピューティングデバイス上の証明書をアクティブ化するためのある例示的なプロセスの流れ図である。
【図１２】本明細書で論じる技法による、コンピューティングデバイス上の証明書をアクティブ化するためのある例示的なプロセスの流れ図である。
【図１３】本明細書で論じる技法による、コンピューティングデバイス上に証明書をプロビジョニングするために、またはデバイス上にすでにある証明書を管理するために使用され得る画像ファイルを生成するためのある例示的なプロセスの流れ図である。
【図１４】本明細書で論じる技法による、プロビジョニングするためのある例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１２】
コンピューティングデバイス上の証明書を管理するための技法が本明細書で開示される。証明書は、ルート証明書および/または認証証明書を含むことができる。ルート証明書は、1つもしくは複数の認証証明書および/または認証証明書の1つもしくは複数のバージョンに関連付けられ得る。本明細書で論じる技法は、1つもしくは複数の証明書をアクティブ化し、1つもしくは複数の証明書を失効させ、かつ/または1つもしくは複数の証明書に対して他のアクションを実行するために、これらの証明書のうちの1つまたは複数に対して証明書アクションを実行するために使用され得る。コンピューティングデバイスに提供される画像ファイルにおいて指定された証明書アクション。以下の例は、これらの技法を示す。
【００１３】
図1は、本明細書で論じる技法を実装するのに適する可能性がある、ある例示的なネットワークアーキテクチャのブロック図である。本明細書で示す特定の構成は、単に、本明細書で開示する技法が使用され得る1つのネットワーク構成の一例である。さらに、そのようなネットワークアーキテクチャの実装形態は、本明細書で示さず、明瞭さのために省略された追加の要素を含むことができる。例示的なネットワークアーキテクチャは、本明細書で開示する技法が実装され得るコンピューティングデバイスが動作することができるネットワーク環境の一例を提供する。
【００１４】
コンピューティングデバイス120は、図1における例に示すようなモバイルデバイスであってよく、またはデスクトップコンピュータシステムなど、通常は静止したデバイスであってよい。コンピューティングデバイス120は、ユーザ機器(UE)、移動局、端末、アクセス端末、加入者ユニット、局などと呼ばれるモバイル通信デバイスであってよい。コンピューティングデバイス120は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ゲームコンソール、着用可能なデバイス(スマートウォッチなど)、または、ロングタームエボリューション(LTE)ワイヤレス通信プロトコル、WLANワイヤレス通信プロトコル、およびWiMAXワイヤレス通信プロトコルを含むがこれに限定はされない1つもしくは複数のワイヤレス通信プロトコルを使用して通信するように構成されたワイヤレス送信機を含む他のデバイスとすることができる。コンピューティングデバイス120は、他のタイプのワイヤレスまたはワイヤード通信プロトコルをサポートするようにも構成され得、複数の異なるワイヤレス通信プロトコルをサポートするように構成され得る。コンピューティングデバイス120のワイヤレス送信機は、他のデバイス、ワイヤレス送信機115、および/または1つもしくは複数のワイヤレス基地局140にデータを送信し、かつ/あるいはこれらからデータを受信するように構成され得る。
【００１５】
コンピューティングデバイス120は、ワイヤレス送信機115およびワイヤレス基地局140などの1つまたは複数のワイヤレス基地局またはワイヤレスアクセスポイントからの信号を測定し、ワイヤレス基地局の(たとえば、到着時刻(TOA:time of arrival)もしくは観測到達時間差(OTDOA:observed time difference of arrival)の)タイミング測定値、信号強度測定値(たとえば、受信信号強度インジケーション(RSSI:Receive Signal Strength Indication))、RTT(ラウンドトリップ時間)、および/または信号品質測定値を入手するようにも構成され得る。擬似乱数測定値、タイミング測定値、信号強度測定値、および/または信号品質測定値は、コンピューティングデバイス120のロケーション推定値を導出するために使用され得る。ロケーション推定値は、位置推定値、位置フィックスなどとも呼ばれ得る。2つのローカル地上ワイヤレス送信機115aおよび115bが、この例に示されている。しかし、他の実装形態において、より多数またはより少数のワイヤレス送信機115が含まれる場合がある。コンピューティングデバイス120は、衛星170、ワイヤレス基地局140、および/またはワイヤレス送信機115のうちの1つまたは複数からの信号の組合せを使用してコンピューティングデバイス120の位置を決定するようにも構成され得る。
【００１６】
ワイヤレス送信機115の各々は、IEEE 802.11ワイヤレス通信標準規格を使用して動作するように構成されたWLANワイヤレスアクセスポイントを含むことができる。しかし、いくつかの実装形態において、ワイヤレス送信機115の一部またはすべてが、他のワイヤレス通信プロトコルを利用するように構成され得、いくつかのネットワーク環境が、複数のタイプのワイヤレス送信機を含む場合がある。さらに、ワイヤレス送信機115が、送信機として識別されるが、ワイヤレス送信機115は、データをワイヤレスに送信し、かつ/または受信するように構成されたトランシーバとすることができる。ワイヤレス送信機115は、ネットワーク110にブロードバンド接続を提供するバックホール接続を介してネットワーク110に接続され得る。ネットワーク110は、インターネットおよび/または1つもしくは複数のネットワークの組合せとすることができる。たとえば、(ワイヤレス送信機115のうちの1つなどの)ワイヤレス送信機は、特定の実装形態において使用されるブロードバンドサービスのタイプに応じて、DSLモデムまたはケーブルモデムに接続され得る。(ワイヤレス送信機115のうちの1つなどの)ワイヤレス送信機は、モバイル通信ネットワークプロバイダに関連付けられ得、ネットワーク110を介してモバイル通信ネットワークプロバイダのネットワーク(図示せず)と通信するように構成され得る。(ワイヤレス送信機115のうちの1つなどの)ワイヤレス送信機のカバレージエリアは、ワイヤレス基地局140などの1つもしくは複数のマクロセル基地局のカバレージエリア、または1つもしくは複数の他の地上トランシーバのカバレージエリアと重複してよい。
【００１７】
ワイヤレス基地局140は、コンピューティングデバイス120などの複数のモバイルデバイスにワイヤレスネットワーク接続性を提供するように構成され得る。ワイヤレス基地局140は、マクロセル基地局、フェムトセル基地局、ピコセル基地局、または他のタイプの基地局を含むことができる。ワイヤレス基地局140は、(ワイヤレス送信機115のうちの1つなどの)ワイヤレス送信機よりもはるかに広いカバレージエリアを有することができ、または、ワイヤレス送信機115によって提供されるカバレージエリアと同様のサイズもしくはより小さいサイズを有するカバレージエリアを提供する地上トランシーバとすることができる。ワイヤレス基地局140は、1つまたは複数のワイヤレス通信プロトコルを使用して通信するように構成され得る。図1に示す例は、単一のワイヤレス基地局を含むが、他の実装形態においては、ネットワーク環境は、少なくとも部分的に重複することができるカバレージエリアを有する複数のワイヤレス基地局140を含む可能性が高い。
【００１８】
コンピューティングデバイス120は、衛星170aおよび衛星170bなどの1つまたは複数の衛星170からの信号を受信し、測定し、衛星170の擬似乱数測定値を入手するように構成された全地球航法衛星システム(GNSS)受信機を含むように構成され得る。衛星170は、米国の全地球測位システム(GPS)、欧州のガリレオシステム、ロシアのGLONASSシステム、または何らかの他の全地球航法衛星システム(GNSS)とすることができる、GNSSの一部とすることができる。GNSS受信機は、複数のGNSSシステムに属する衛星170からの信号を検出し、受信するようにも構成され得る。たとえば、衛星170aは、GPSシステムに属すことができ、衛星170bは、ガリレオシステムに属すことができる。本明細書で示す例示的なネットワークアーキテクチャは、2つの衛星だけを示すが、他の実装形態は、使用可能なより多数またはより少数の衛星を有することができ、1つまたは複数のGNSSシステムに関連する衛星を有することができ、コンピューティングデバイス120に可視の衛星の個数は、コンピューティングデバイス120の現在の地理的ロケーションおよび衛星170の軌道に依存する可能性がある。一般に、コンピューティングデバイス120は、コンピューティングデバイス120のロケーションを決定するために三辺測量を実行するために、少なくとも4つのSVからの信号を収集しようと試みる。
【００１９】
信頼できるエンティティ160は、ソフトウェアおよび/またはオペレーティングシステムのアップデートなど、ダウンロード可能なコンテンツをコンピューティングデバイス120に提供するように構成され得る。信頼できるエンティティ160はまた、署名入りソフトウェア画像の真正性を、ソフトウェア画像に署名するために使用された証明書に基づいて証明するように構成され得る。信頼できるエンティティ160は、図1に示す例において単一のエンティティとして示されている。しかしながら、本明細書で論じる信頼できるエンティティ160に起因する論理機能は、様々な第三者によって運営される複数の信頼できるエンティティにわたって分散され得る。さらに、信頼できるエンティティ160の機能は、複数のネットワーク接続されたサーバにわたって分散され得る。
【００２０】
図1に示す例示的なネットワーク構成は、単に、本明細書で開示する技法が実装され得るネットワークの1つの可能な構成の一例である。他のネットワーク構成は、図1に示さない追加要素を含むことができ、様々な構成要素が、図1に示すものとは異なる構成において相互接続され得る。さらに、上記で論じたように、コンピューティングデバイス120は、コンピューティングデバイス120が図1に示すワイヤレス接続の代わりに、またはそれに加えて、ネットワーク110に対するワイヤード接続を有するように実装され得る。さらに、コンピューティングデバイス120は、図1に示すモバイルデバイスなど、コンピューティングデバイス120の実装形態と対照的に、移動されることが可能であるが、一般に、同じロケーションに留まる、セットトップボックス、サーバコンピュータシステム、またはデスクトップコンピュータシステムなど、比較的固定されたロケーション内に留まるように構成され得る。
【００２１】
図2は、図1に示したコンピューティングデバイス120を実装するために使用され得るコンピューティングデバイスのブロック図である。コンピューティングデバイス120は、図4〜図14に示すプロセスを少なくとも部分的に実装するために使用され得る。コンピューティングデバイス120は、ラップトップコンピュータシステムまたは他のパーソナルコンピュータシステム、タブレットコンピュータ、モバイルフォン、スマートフォン、ゲームコンソール、着用可能なデバイス(たとえば、スマートウォッチ、ヘッドマウントデバイスなど)および/または他のタイプのコンピューティングデバイスを含むが、これらに限定されない様々なタイプのコンピューティングデバイスであり得る。
【００２２】
コンピューティングデバイス120は、バス200によって互いに接続された、少なくとも1つのプロセッサ210と、ワイヤレスインターフェース225と、GNSSインターフェース265と、非一時的メモリ260とを含むコンピュータシステムを含む。少なくとも1つのプロセッサ210は、汎用プロセッサを含むことができる。コンピューティングデバイス120の他の実装形態は、図2の例示的な実装形態には示されていない追加の要素を含むことができ、かつ/または図2に示す例示的な実施形態に示された要素のすべてを含んでいるとは限らない場合がある。コンピューティングデバイス120のいくつかの実装形態は、GNSSインターフェース265および/またはワイヤレスインターフェース225を含まなくてよい。コンピューティングデバイス120は、ワイヤレスインターフェース225の代わりに、またはそれに加えて、ワイヤードネットワークインターフェースを含み得る。コンピューティングデバイス120は、セットトップボックス、デスクトップコンピューティングデバイス、またはモバイルフォン、ラップトップコンピュータ、タブレットコンピュータ、着用可能なデバイス、もしくはモバイルデバイスと呼ばれる場合もある他のそのようなコンピューティングデバイスなど、移動可能であるが一般に携帯用であることが意図されない他のデバイスとして実装され得る。
【００２３】
ワイヤレスインターフェース225は、ワイヤレス受信機、送信機、トランシーバ、ならびに/またはコンピューティングデバイス120が、WWAN、WLAN、および/もしくは他のワイヤレス通信プロトコルを使用して、データを送信し、かつ/もしくは受信することを可能にする他の要素を含むことができる。ワイヤレスインターフェース225は、複数のワイヤレス通信標準規格を使用して、ワイヤレス信号を送信し、受信することができる1つまたは複数のマルチモードモデムを含むことができる。ワイヤレスインターフェース225は、ワイヤレス信号250としてワイヤレス送信機115、ワイヤレス基地局140、および/またはワイヤレス通信プロトコルを使用して通信するように構成された他のワイヤレスデバイスとの間で通信を送受信するためのアンテナ245に接続される。図2に示すコンピューティングデバイス120は、単一のワイヤレスインターフェースおよび単一のアンテナを含むが、コンピューティングデバイス120の他の実装形態は、複数のワイヤレスインターフェースおよび/または複数のアンテナを含むことができる。
【００２４】
入出力インターフェース270は、コンピューティングデバイス120に対するデータ入力および/またはデータ出力を提供することができる1つまたは複数のポートおよび/または他のインターフェースを提供することができる。たとえば、入出力インターフェース270は、ユニバーサルシリアルバス(USB)ポートおよび/または外部デバイスをコンピューティングデバイス120に接続するために使用され得る他のタイプのポートなど、1つまたは複数のポートを含むことができる。入出力インターフェース270は、ボタン、スイッチ、キーパッド、タッチスクリーン、および/またはユーザから入力を受信するための他の手段など、1つまたは複数の入力デバイスをも含むことができる。入出力インターフェース270は、オーディオおよび/またはビジュアルコンテンツを出力するための1つまたは複数の手段、たとえば、スクリーン、スピーカー、ヘッドフォンポート、および/またはそのようなコンテンツを出力するための他の手段をも含むことができる。
【００２５】
GNSSインターフェース265は、コンピューティングデバイス120が1つまたは複数のGNSSシステムに関連する送信機から信号を受信することを可能にするGNSS受信機および/または他の要素を含むことができる。GNSSインターフェース265は、図1に示した衛星170などのGNSS送信機から信号280を受信するためのアンテナ275に接続される。コンピューティングデバイス120は、コンピューティングデバイス120の位置を決定するために、GNSSシステムに関連する衛星および他の送信機に関連する衛星から受信された信号を使用するように構成され得る。コンピューティングデバイス120は、コンピューティングデバイス120の位置を決定するために、ワイヤレス送信機115および/または(ワイヤレス基地局140などの)ワイヤレス基地局から受信された信号と併用して、GNSSシステムに関連する衛星および他の送信機から受信された信号を使用するようにも構成され得る。
【００２６】
プロセッサ210は、インテリジェントデバイス、たとえば、パーソナルコンピュータ中央処理装置(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などであり得る。メモリ260は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、またはそれらの組合せを含み得る、非一時的記憶デバイスである。メモリ260は、本明細書で説明する機能を実行するようにプロセッサ210を制御するための命令を含むプロセッサ可読、プロセッサ実行可能ソフトウェアコードを記憶することができる(ただし、説明ではソフトウェアが機能を実行すると述べる場合がある)。ソフトウェアは、ネットワーク接続を介してダウンロードされること、ディスクからアップロードされることなどによってメモリ260にロードされ得る。さらに、ソフトウェアは、たとえば、実行前にコンパイルが必要など、直接的に実行可能ではない場合がある。
【００２７】
メモリ260内のソフトウェアは、ワイヤレス送信機115、ワイヤレス基地局140、他のモバイルデバイス、および/もしくはワイヤレス通信のために構成された他のデバイスへのデータの送出および/またはそれらからのデータの受信を実施することを含む様々なアクションをプロセッサ210が実行することを可能にするように構成される。メモリ260内のソフトウェアはまた、図4〜図14に示すプロセスのすべて、またはそれらのうちの1つもしくは複数の一部分をプロセッサ210が実行することを可能にするように構成され得る。図4〜図14に示すプロセスは、コンピューティングデバイス120のハードウェア構成要素において実装されてもよく、またはハードウェア構成要素およびソフトウェア構成要素の組合せとして実装されてよい。
【００２８】
メモリ290は、ワンタイムプログラマブルメモリ不揮発性メモリである。メモリ290は、データのビットを表すために使用され得る1つまたは複数のインジケータを含むことができる。ビットの値は、値に対して永続的かつ不可逆的に設定され得る。いくつかの実装形態では、ビットの値は、特定のビットに関連するメモリ内のヒューズを飛ばすことによって永続的に設定され得る。図4〜図14の例示的な実装形態は、メモリ290に記憶された証明書を永続的に失効させるために、またはアクティブ化するために、ビットを永続的に設定するためにヒューズを飛ばすことについて論じている。しかしながら、すべてのワンタイムプログラマブルメモリ不揮発性メモリがヒューズを含むとは限らず、メモリ内のインジケータを設定するために他の技法が使用されてよい。メモリ290は、ルート証明書、認証証明書、またはコンピューティングデバイス120によって利用され得る他のタイプの証明書を記憶するために使用されてよく、図4〜図14で論じる技法は、コンピューティングデバイス120に関する証明書をプロビジョニングおよび/または維持するために使用されてよい。
【００２９】
本明細書で論じ、図4〜図14に示す技法では、コンピューティングデバイス120にプロビジョニングされる証明書は、メモリ290に記憶されない。代わりに、証明書の各々のハッシュがメモリ290に記憶され得る。この手法は、コンピューティングデバイス120のワンタイムプログラマブルメモリ290内のスペースを節約するために使用され得る。ワンタイムプログラマブルメモリは、コンピューティングデバイス120に含まれ得る読取り-書込みメモリ構成要素と比較して高価であり得る。証明書の各々をハッシュすると、コンピューティングデバイス120上に記憶される証明書のチェーンのサイズをかなり縮小することができる。メモリ290はまた、証明書のハッシュ値の各々をメモリ290内の1つまたは複数のヒューズのセットにマッピングするハッシュテーブルを含むことができる。たとえば、証明書のハッシュは、証明書が失効しているかどうかを示すメモリ内の第1のヒューズまたは他のインジケータを有することができ、証明書がアクティブ化されているかどうかを示す第2のヒューズを有することができる。証明書のアクティブ化および失効は、適切なヒューズを飛ばすこと、またはメモリ内の適切なインジケータを設定することによって達成され得る。失効は取消不能である。ヒューズが飛ばされるか、またはメモリ内の他のインジケータの値が設定されると、値は変更できない。さらに、失効している証明書によって署名された任意の他の証明書も失効する。
【００３０】
メモリ290は代替的に、設定されると取消不能の形で設定される値を表すために使用され得るヒューズまたは他のタイプのインジケータの代わりにアンチヒューズを利用するワンタイムプログラマブルメモリ290の形式を使用して実装され得る。本明細書で論じる例示的なプロセスは、ビット値を設定するためにヒューズを飛ばすこと、またはビット値を決定するためにヒューズを読み取ることについて論じるが、これらのプロセスは、アンチヒューズおよび/または他のタイプのインジケータを含むメモリを使用して実装されてもよく、証明書のアクティブ化および/または失効は、メモリ内の適切なアンチヒューズおよび/または他のインジケータを永続的に設定することによって達成され得る。
【００３１】
図3は、コンピューティングデバイス120の機能ユニットおよびメモリ290のコンテンツを示す、図2に示したコンピューティング120の機能ブロック図である。コンピューティングデバイス120は、ソフトウェアアップデートユニット362、証明書管理ユニット364、およびデータアクセスユニット366を含むことができる。機能ユニット362、364、および366は、プロセッサ210によって実行可能であるメモリ260に記憶されたソフトウェアモジュールとして実装され得る。機能ユニットは、コンピューティングデバイス120のデジタルおよび/またはアナログハードウェア構成要素として実装されてよく、プロセッサ210の構成要素および/または別個のハードウェア構成要素のいずれかとして実装されてよい。機能ユニットはまた、ハードウェア構成要素およびソフトウェア構成要素の組合せとして実装され得る。図2および図3に示すコンピューティングデバイス120は、図4〜図14に示すプロセスに関連してコンピューティングデバイス120を実装するために使用され得る。プロセッサ210および機能ユニット362、364、および366は、別段に規定されていない限り、図4〜図14に示すプロセスの様々な段階を実装するための手段を提供することができる。
【００３２】
ソフトウェアアップデートユニット362は、ソフトウェアアップデート、構成ファイルアップデート、ならびに/またはコンピューティングデバイス120のメモリ290に記憶された1つもしくは複数の証明書に関する失効および/もしくはアクティブ化情報に関する証明書アクション情報を含む画像ファイルを受信するように構成され得る。ソフトウェアアップデートユニット362は、ワイヤードまたはワイヤレスネットワーク接続を介して信頼できるエンティティ160などのネットワークエンティティから画像ファイルを受信するように構成され得る。画像ファイルは、ネットワーク110ならびに/またはワイヤレス送信機115および/もしくはワイヤレス基地局140に関連するワイヤレス通信ネットワークなどの1つもしくは複数の介在するネットワークを介して送信され得る。信頼できるエンティティ160または別のネットワークエンティティは、アップデートおよび/または証明書アクション情報を含む画像ファイルをコンピューティングデバイス120にプッシュすることができる。ソフトウェアアップデートユニット362はまた、ソフトウェアアップデートを信頼できるエンティティ160または他のネットワークエンティティに要求するように、また要求したソフトウェアを信頼できるエンティティ160または他のネットワークエンティティからダウンロードするように構成され得る。信頼できるエンティティ160または他のネットワークエンティティも、コンピューティングデバイス120からの要求に応答して、1つまたは複数の画像ファイルをコンピューティングデバイス120にプッシュするように構成され得る。ソフトウェアアップデートユニットは、コンピューティングデバイスのメモリ290内で発見された有効な証明書によって画像ファイルが署名されていることに応答して、画像ファイルに含まれるアップデートをインストールし、画像ファイルに含まれる情報を使用して構成ファイルを更新し、かつ/または画像ファイルにおいて識別される1つもしくは複数の証明書アクションを実行することができる。証明書が画像ファイルのための有効な署名証明書であるためには、証明書はアクティブで失効していないものでなければならない。
【００３３】
ソフトウェアアップデートユニット362は、画像ファイルが有効な証明書によって署名されていることを確認するために、証明書管理ユニット364とともに動作するように構成され得る。ソフトウェアアップデートユニットは、画像ファイルが有効な証明書によって署名されているかどうかを証明書管理ユニット364が検証することを要求するように、かつ/または証明書をアクティブ化するアクティブ化アクションもしくはコンピューティングデバイス120のメモリ290に記憶された証明書を失効させる失効アクションなど、証明書に対して証明書アクションを実行するように構成され得る。ソフトウェアアップデートユニット362は、画像ファイルが有効な証明書によって署名されていることを証明書管理ユニット364が示すことに応答して、画像ファイルに含まれるアップデートをインストールするように、かつ/または画像ファイルに含まれる情報に基づいて構成ファイルを更新するように構成され得る。画像ファイルが有効な証明書によって署名されてない場合、画像ファイルは、コンピューティングデバイス120の支配権を握ってコンピューティングデバイス120のメモリ260および/もしくはメモリ290から機密情報を捕捉し、かつ/またはコンピューティングデバイス120の他の望ましくない挙動を引き起こすために使用され得る悪意のあるソフトウェアまたは構成情報を含んでいる可能性がある。
【００３４】
証明書管理ユニット364は、コンピューティングデバイス120のメモリ290に記憶されている有効な証明書によって画像ファイルが署名されていると判断するように構成され得る。証明書管理ユニット364はまた、証明書をアクティブ化するアクティブ化アクションまたはコンピューティングデバイス120のメモリ290に記憶された証明書を失効させる失効アクションなど、証明書に対して証明書アクションを実行するように構成され得る。証明書管理ユニット364は、コンピューティングデバイス120のメモリ290に記憶された証明書のハッシュを位置特定すること、メモリ290内のハッシュテーブルにおいて証明書のハッシュを調べることによって、かつヒューズを飛ばすこと、またはさもなければ証明書が失効しているかどうかを示す証明書に関連するインジケータの値を永続的に設定することによって、証明書を失効させるように構成され得る。証明書管理ユニット364は、コンピューティングデバイス120のメモリ290に記憶された証明書のハッシュを位置特定することによって、かつヒューズを飛ばすこと、またはさもなければ証明書が失効しているかどうかを示す証明書に関連するインジケータの値を永続的に設定することによって、証明書を失効させるように構成され得る。
【００３５】
証明書管理ユニット364は、アクティブであるか、または失効していない証明書に対して失効アクションを実行することができる。証明書管理ユニット364は、メモリ290に記憶されたアクティブなルート証明書がない状態にコンピューティングデバイス120を置くのを回避するために、現在アクティブである証明書を失効させる前に、任意の他のルート証明書がモバイルデバイスのメモリ290内でアクティブであるとマークされているかどうかを判断するように構成され得る。ソフトウェアアップデートユニット362は、プロビジョニングプロセスまたは失効もしくはアクティブ化アクションに進む前に、証明書管理ユニット364が信頼できるエンティティ160とともに署名証明書を検証することを要求するように構成され得る。ソフトウェアアップデートユニット362は、署名なし画像ファイルを拒否するように、または署名なし画像ファイルがメモリ290内の証明書に関連するアクティブ化および失効ヒューズへのアップデートを行うのを防ぐように構成され得る。
【００３６】
証明書管理ユニット364は、失効している証明書によって署名されたいかなる証明書も失効させるように構成され得る。証明書管理ユニット364は、証明書を失効させているときにメモリ290に記憶された他の証明書を調べて、失効している証明書によって署名されているそれらの証明書を識別するように構成され得、次いで、失効した証明書に依拠してそれらの証明書を失効させることができる。失効した証明書のいずれかを後にアクティブ化する試みが後に行われた場合、証明書管理ユニット364は、証明書に関連するヒューズを読み取って、証明書がすでに失効していると判断し、証明書のアクティブ化を防ぐ。
【００３７】
データアクセスユニット366は、メモリ260、メモリ290、および/またはコンピューティングデバイス120に関連する他のデータ記憶デバイスにデータを記憶するように構成され得る。データアクセスユニット366は、メモリ260および/またはコンピューティングデバイス120に関連する他のデータ記憶デバイス内のデータにアクセスするようにも構成され得る。データアクセスユニット366は、コンピューティングデバイス120の他の機能ユニットおよび/または構成要素から要求を受信し、メモリ260、メモリ290、および/またはコンピューティングデバイス120に関連する他のデータ記憶デバイスにデータを記憶するように、かつ/あるいはそれらに記憶されたデータにアクセスするように構成され得る。
【００３８】
図4は、本明細書で論じる技法による、コンピューティングデバイスのメモリ内の証明書を管理するための態様を示すブロック図である。コンピューティングデバイス120は、1つまたは複数の証明書に関連付けられ得る。証明書は、ルート証明書および認証証明書を含むことができる。ワンタイムプログラマブルメモリ290のサイズは限られており、本明細書で開示する技法は、証明書のチェーンを記憶するために必要とされるメモリの量を減らすために、証明書全体を記憶することを回避する。コンピューティングデバイス120のメモリ290に証明書を記憶するのではなく、コンピューティングデバイス120に関する証明書情報を記憶するために必要とされるメモリの量を減らすために、証明書の各々のハッシュがメモリに記憶される。エンドユーザにコンピューティングデバイス120が提供される前に、ある時点においてプロビジョニングプロセスが実行される。このプロビジョニングプロセスは、エンドユーザにコンピューティングデバイス120が提供される前に、製造業者、再販売業者、ワイヤレス通信ネットワークプロバイダ、他のエンティティによって実行され得る。
【００３９】
図4に示す例では、n個の証明書からなるセットが、コンピューティングデバイス120上にプロビジョニングされ、nは、3以上の整数である。他の実装形態では、3個未満の証明書がコンピューティングデバイス120上にプロビジョニングされ得る。証明書(405-0、405-1、...および405-n)の各々にハッシュ関数410が適用されて、証明書の各々に関するハッシュ値(証明書のハッシュ415)を生成し、n個のハッシュ値が生じる。コンピューティングデバイス120のワンタイムプログラマブルメモリ290に、n個の証明書の各々のハッシュ値が記憶され得る。証明書の各々のハッシュ値は、対応する証明書がメモリ290内で占有する場合よりもかなり少ないスペースを占有することができ、その結果、コンピューティングデバイス120は、証明書情報を記憶するためにより少ないメモリ290を必要とすることができる。結果としてメモリ要件を低減することで、他のデータを記憶するために高価なワンタイムプログラマブルメモリ290を解放することができ、または結果的に、コンピューティングデバイス120によって必要とされるワンタイムプログラマブルメモリ290の全体量を低減することができ、コンピューティングデバイス120の製造コストを減らすのを助けることができる。
【００４０】
プロビジョニング技法はまた、メモリ290に記憶されるべき証明書ハッシュテーブル440を生成することを含み得る。ハッシュテーブル440は、メモリ290に記憶された証明書のハッシュ415と証明書に関連するアクティブ化および/または失効インジケータとして働くメモリ内のヒューズのセットとの間のマッピングを実現する。ハッシュテーブルは、証明書の各々に関するハッシュのハッシュ425を決定するために、証明書のハッシュ415にハッシュ関数420を適用することによって作成され得る。ハッシュ関数420は、ハッシュ関数410と同じハッシュ関数であってよく、または異なるハッシュ関数であってもよい。ハッシュ関数420は、ハッシュ値の各ハッシュ425が異なる値となるように選択され得る。記憶されるべき証明書の数および記憶されるべき証明書の各々のハッシュ値は、事前に知られているので、ハッシュ関数の選択により、衝突が回避され得るように各証明書に関するハッシュ値のハッシュ425を生成することが可能になる。メモリに記憶された証明書の各ハッシュ415は、証明書が失効しているかどうかを示す第1のヒューズまたは他のインジケータ430および証明書がアクティブ化されているかどうかを示す第2のヒューズまたは他のインジケータ435に関連付けられ得る。明瞭さのためにヒューズを「第1の」および「第2の」ヒューズと呼んでいるが、ヒューズの順序は、本例で指定する順序である必要はない。さらに、上記で論じたように、メモリ290は、ヒューズを利用しない異なるタイプのワンタイムプログラマブルメモリを使用して実装されてよく、言及されるヒューズは、メモリ290を実装するために使用されているメモリのタイプに適した値を記憶するためのインジケータを表すために使用され得る。
【００４１】
コンピューティングデバイス120は、メモリ290に記憶された証明書のうちの1つまたは複数に対して実行されるべき証明書アクションを識別する画像ファイルを受信するように構成され得る。画像ファイルは、実行されるべき失効および/またはアクティブ化アクションに関する証明書アクション情報を含むことができる。証明書アクション情報は、証明書アクションが実行されるべき証明書のハッシュを含むことができる。証明書全体ではなく証明書のハッシュを画像ファイルに記憶することで、コンピューティングデバイス120に提供されるべき画像ファイルのサイズ全体を縮小することができ、それにより、コンピューティングデバイスに画像ファイルを提供するために必要とされるネットワークリソース全体を低減することができ、その結果、帯域幅使用量が減り、デバイスが所与の時間期間にネットワークで転送できるデータ量の上限が適用されるコンピューティングデバイスにとってのデータ関連コストが減る。失効およびアクティブ化アクションを示す例示的なプロセスが、以下で詳細に論じる図6〜図12に示されている。
【００４２】
図5〜図14に示すプロセスの段階の順序は、本明細書で開示する技法の例として提供されており、示される特定の順序でこれらのプロセスの段階を実行するように本開示の範囲を限定するものではない。これらのプロセスの段階の順序は、本開示の範囲から逸脱することなく変更されてよい。さらに、追加の段階が加えられてよく、かつ/または1つもしくは複数の段階が、本明細書で論じるプロセスのうちの1つまたは複数から除去されてよい。
【００４３】
図5は、本明細書で論じる技法による、プロビジョニングするためのある例示的なプロセスの流れ図である。図5に示す技法は、メモリ290に記憶されるべき証明書をコンピューティングデバイス120にプロビジョニングするために使用され得る。図5に示す技法は、コンピューティングデバイス120の製造業者または販売業者によって、コンピューティングデバイス120によって使用されるべき証明書をプロビジョニングするために実行され得る。図5に示す技法は、プロビジョニングサーバがコンピューティングデバイス120のワンタイムプログラマブルメモリ290にデータを書き込むことができるようにするワイヤードまたはワイヤレス接続を介して、プロビジョニングサーバにコンピューティングデバイス120を接続することによって実行され得る。プロビジョニングサーバは、信頼できるエンティティ160によって実装され得、または1つもしくは複数の他のネットワークエンティティを含み得る。プロビジョニングサーバは、図5に示す技法の段階を実行するように構成され得る。プロビジョニングサーバは、図2に示すものと同様のコンピュータハードウェアを使用して実装され得る。だが、プロビジョニングサーバは、コンピューティングデバイス120上に含まれない追加のソフトウェア構成要素およびハードウェア構成要素を含んでよい。図5に示すプロセスは、図4に示すように、コンピューティングデバイス120のメモリ290内の証明書のハッシュ415およびハッシュテーブル440ならびに第1のヒューズまたは他のインジケータ430および第2のヒューズまたは他のインジケータ435のうちの1つまたは複数のセットを生成するために使用され得る。
【００４４】
コンピューティングデバイスにプロビジョニングされるべき1つまたは複数の証明書に関する証明書情報がアクセスされ得る(段階505)。証明書は、コンピューティングデバイス120にプロビジョニングされるべき1つまたは複数のルート証明書、認証証明書、および/または他のタイプの証明書を含むことができる。ルート証明書は、1つもしくは複数の認証証明書および各認証証明書の1つもしくは複数のバージョンに関連付けられ得る。プロビジョニングサーバは、コンピューティングデバイスにプロビジョニングされるべき証明書を含むデータベースにアクセスすることができる。
【００４５】
証明書の各々のハッシュが生成され得る(段階510)。プロビジョニングサーバは、コンピューティングデバイスにプロビジョニングされるべき証明書の各々のハッシュを生成するように構成され得る。コンピューティングデバイス120のワンタイムプログラマブルメモリ290に、証明書の各々のハッシュが記憶され得る(段階515)。プロビジョニングサーバはコンピューティングデバイス120のワンタイムプログラマブルメモリ290に、コンピューティングデバイス120のメモリ290においてよりコンパクトな証明書のチェーンを提供するために、証明書ではなく証明書のハッシュを記憶することができる。証明書のチェーンの占有面積が小さいほど、ワンタイムプログラマブルメモリ290内の消費スペースが少なくなり、ワンタイムプログラマブルメモリ290は、他のデータを記憶するために使用されてよく、またはコンピューティングデバイス120が、コンピューティングデバイス120によって必要とされる認証情報および他のデータを記憶するために本来必要とされるよりも少ないメモリを含むことが可能になり得る。
【００４６】
証明書の各々のハッシュ値をワンタイムプログラマブルメモリ内のインジケータのセットにマッピングするハッシュテーブルが生成され得る(段階520)。図4に示すハッシュテーブル440と同様のハッシュテーブルが、プロビジョニングサーバによってコンピューティングデバイス120のメモリ290内で作成され得る。ヒューズまたは他のインジケータのセットは、ハッシュ値のハッシュ425によって表される証明書に関連する、失効インジケータとして働く第1のヒューズまたは他のインジケータ430およびアクティブ化インジケータとして働く第2のヒューズまたは他のインジケータ435のうちの少なくとも1つを表すことができる。
【００４７】
1つまたは複数の証明書に関連する失効インジケータおよびアクティブ化インジケータのうちの少なくとも1つに関連するメモリ内の少なくとも1つのインジケータの値が設定され得る(段階525)。上記で論じたように、各インジケータが、コンピューティングデバイス120のメモリ290内の1つまたは複数のヒューズによって表され得、インジケータの値が、インジケータに関連するヒューズのうちの1つまたは複数を飛ばすことによって取消不能の形で設定され得る。プロビジョニングサーバは、1つまたは複数の証明書を、証明書に関連するアクティブ化インジケータヒューズを飛ばすことによってアクティブ化するように構成され得る。いくつかの実装形態では、メモリ290は、ヒューズを含まなくてよく、1つまたは複数のインジケータが、メモリ290を含むメモリのタイプに適した技法を使用して設定され得る。
【００４８】
プロビジョニングサーバは、いくつかの実装形態では一度に2つ以上のルート証明書をアクティブ化することができる。他の実装形態では、プロビジョニングサーバは、他の実装形態ではコンピューティングデバイス120上の単一のルート証明書のみをアクティブ化するように構成され得る。たとえば、コンピューティングデバイス120は、1つのルート証明書のみが一度にアクティブであり得るように構成され得、証明書管理ユニット364は、現在アクティブなルート証明書が失効し得る場合のみ証明書管理ユニット364が異なるルート証明書をアクティブ化するルートオブトラスト(ROT:Root of Trust)移転特徴を実装するように構成され得る。プロビジョニングサーバはまた、コンピューティングデバイス120上の1つまたは複数の属性証明書をアクティブ化するように構成され得る。プロビジョニングサーバは、コンピューティングデバイス120のメモリ290にプロビジョニングされている証明書に属性証明書の複数のバージョンが存在する場合に、属性証明書の1つまたは複数のバージョンをアクティブ化するように構成され得る。プロビジョニングサーバは、コンピューティングデバイス120のメモリ290にプロビジョニングされている証明書のうちの1つまたは複数を失効させるように構成され得る。プロビジョニングサーバは、コンピューティングデバイス120および/または他のコンピューティングデバイスにプロビジョニングされるべき証明書の管理者が、どの証明書がプロビジョニングされるべきであるか、ならびに各証明書のアクティブ化および/または失効設定を構成できるようにするユーザインターフェースを提供するように構成され得る。
【００４９】
図13は、本明細書で論じる技法による、コンピューティングデバイス上に証明書をプロビジョニングするために、またはデバイス上にすでにある証明書を管理するために使用され得る画像ファイルを生成するための例示的なプロセスの流れ図である。図13に示す技法は、プロビジョニングサーバを使用してメモリ290に記憶されるべき証明書をコンピューティングデバイス120にプロビジョニングするために使用され得る。図13に示す技法は、コンピューティングデバイス120の製造業者または販売業者によって、コンピューティングデバイス120によって使用されるべき証明書をプロビジョニングするために実行され得る。図13に示す技法は、コンピューティングデバイス120上に証明書をプロビジョニングするために使用され得る画像ファイルを生成することによって実行され得る。プロビジョニングサーバは、信頼できるエンティティ160によって実装され得、または1つもしくは複数の他のネットワークエンティティを含み得る。プロビジョニングサーバは、図2に示すものと同様のコンピュータハードウェアを使用して実装され得る。だが、プロビジョニングサーバは、コンピューティングデバイス120上に含まれない追加のソフトウェア構成要素およびハードウェア構成要素を含んでよい。
【００５０】
証明書アクションが実行されるべき1つまたは複数の証明書がアクセスされ得る(段階1305)。証明書アクションは、証明書がコンピューティングデバイス120にプロビジョニングされるプロビジョニングアクション、またはコンピューティングデバイス120上にすでにプロビジョニングされた証明書に関連するアクティブ化アクションもしくは失効アクションであり得る。
【００５１】
証明書に関して証明書アクション情報がアクセスされ得る(段階1310)。証明書は、コンピューティングデバイス120にプロビジョニングされるべき1つまたは複数のルート証明書、認証証明書、および/または他のタイプの証明書を含むことができる。ルート証明書は、1つもしくは複数の認証証明書および各認証証明書の1つもしくは複数のバージョンに関連付けられ得る。プロビジョニングサーバは、コンピューティングデバイスにプロビジョニングされるべき証明書を含むデータベースにアクセスすることができる。
【００５２】
証明書の各々に関してハッシュ値が生成され得る(段階1315)。プロビジョニングサーバは、コンピューティングデバイスにプロビジョニングされるべき証明書の各々のハッシュを生成するように構成され得る。プロビジョニングサーバは、コンピューティングデバイス120にプロビジョニングされた証明書とともに機能するときにコンピューティングデバイスが同じハッシュ関数を利用できるように、証明書のハッシュを生成するために使用されたハッシュ関数に関する識別子を画像ファイルに含めるように構成され得る。
【００５３】
証明書のハッシュ値および証明書アクション情報を含む画像ファイルが生成され得る(段階1320)。証明書のハッシュ値および証明書に関連する任意の証明書アクションが、コンピューティングデバイス120に提供されるべき画像ファイルに含まれ得る。証明書自体ではなく証明書のハッシュを含めることで、画像ファイルのサイズをかなり縮小することができ、それにより、ネットワーク帯域幅およびコンピューティングデバイス120に画像ファイルを送るためにこの帯域幅を利用することに関連するコストを減らすことができる。
【００５４】
アクティブである署名証明書によって画像ファイルが署名され得る(段階1325)。失効アクションおよび/またはアクティブ化アクションの場合、署名証明書は、コンピューティングデバイス120上でアクティブ化されていて、失効していない証明書であり得る。署名証明書は、証明書アクションの対象であり得る。たとえば、署名証明書は、コンピューティングデバイス120において画像ファイルが受信されたときに、コンピューティングデバイス120上で証明書がアクティブ化されていて、失効していない状態のままである限り、画像ファイルに含まれる証明書アクションにおいて失効し得る。プロビジョニングアクションの場合、証明書は、コンピューティングデバイス120上でまだアクティブ化されておらず、署名証明書は、署名証明書がアクティブかつ有効であることを保証するために、コンピューティングデバイス120の証明書管理ユニット364が信頼できるエンティティ160または別のネットワークエンティティとともに検証することができる証明書であり得る。
【００５５】
次いで、コンピューティングデバイス120に署名入り画像ファイルが提供され得る(段階1330)。その場合、プロビジョニングサーバは、ネットワーク110および/または他のネットワークを介してコンピューティングデバイス120に署名入り画像ファイルを送ることができる。プロビジョニングサーバは署名入り画像ファイルを、プロビジョニングサーバからまたは別のネットワークエンティティからダウンロードできるようにし得る。
【００５６】
図14は、本明細書で論じる技法による、プロビジョニングするためのある例示的なプロセスの流れ図である。図14に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図14のプロセスの段階を実装するための手段を提供する。図14に示すプロセスは、図13に示すプロセスによるなどして、プロビジョニングサーバによって生成された画像ファイルを使用してコンピューティングデバイス120をプロビジョニングするために使用され得る。
【００５７】
コンピューティングデバイス120において、モバイルデバイスにプロビジョニングされるべき証明書および証明書アクション情報を含む画像ファイルが受信され得る(段階1405)。画像ファイルは、画像ファイルがコンピューティングデバイス120上に証明書をプロビジョニングするためのものであることを示すプロビジョニングインジケータを含むことができる。ソフトウェアアップデートユニット362は、メモリ290内のインジケータを読み取るように、また証明書がコンピューティングデバイス120にすでにプロビジョニングされている場合にプロセスを停止するように構成され得る。ソフトウェアアップデートユニット362は、図14に示すプロビジョニングプロセスが完了すると、このインジケータを設定するように構成され得、またはプロビジョニングサーバは、図5に示すプロセスを完了させた後にこのインジケータを設定することができる。プロビジョニングサーバは、ネットワーク110および/または別のネットワーク接続を介してコンピューティングデバイス120に画像ファイルを送ることができる。コンピューティングデバイス120はまた、プロビジョニングサーバおよび/または信頼できるエンティティ160などの別のネットワークエンティティから、プロビジョニングサーバによって生成された画像ファイルをダウンロードするように構成され得る。画像ファイルは、コンピューティングデバイス120にプロビジョニングされるべき1つまたは複数の証明書と、画像ファイルに含まれる証明書のうちの1つまたは複数に対して実行されるべき1つまたは複数のアクションを識別する画像ファイルに含まれる1つまたは複数の証明書アクションインジケータとを含むことができる。ソフトウェアアップデートユニット362は、画像ファイルに含まれる証明書をコンピューティングデバイス120にプロビジョニングする前に、画像ファイルが有効な証明書によって署名されているかどうかを判断するように構成され得る。ソフトウェアアップデートユニット362は、プロビジョニングプロセスに進む前に、証明書管理ユニット364が信頼できるエンティティ160とともに署名証明書を検証することを要求するように構成され得る。ソフトウェアアップデートユニット362は、署名なし画像ファイルを拒否するように、または署名なし画像ファイルがメモリ290内の証明書に関連するアクティブ化および失効ビットへのアップデートを行うのを防ぐように構成され得る。
【００５８】
コンピューティングデバイスのワンタイムプログラマブルメモリに、プロビジョニングされるべき証明書のハッシュが書き込まれ得る(段階1410)。画像ファイルに含まれる証明書は、プロビジョニングサーバによってすでにハッシュされていることがあり、証明書のハッシュは、画像ファイルに含まれていることがある。証明書管理ユニット364は、ハッシュファイルに含まれる証明書のハッシュを、ハッシュが画像ファイルにおいて提供されていることに応答して、メモリ290にコピーするように構成され得る。証明書管理ユニット364は、証明書の各々のハッシュではなく証明書を含んだ画像ファイルをプロビジョニングサーバが提供した場合に、画像ファイルに含まれる証明書の各々のハッシュを生成するように構成され得る。証明書管理ユニット364は次いで、証明書のハッシュをメモリ290に書き込むことができる。
【００５９】
証明書の各々のハッシュ値をワンタイムプログラマブルメモリ内のインジケータのセットにマッピングするハッシュテーブルが生成され得る(段階1415)。図4に示すハッシュテーブル440と同様のハッシュテーブルが、証明書管理ユニット364によってコンピューティングデバイス120のメモリ290内で作成され得る。ヒューズまたは他のインジケータのセットは、ハッシュ値のハッシュ425によって表される証明書に関連する、失効インジケータとして働く第1のヒューズまたは他のインジケータ430およびアクティブ化インジケータとして働く第2のヒューズまたは他のインジケータ435のうちの少なくとも1つを含むことができる。上記で論じたように、第1のヒューズまたは他のインジケータ430および第2のヒューズまたは他のインジケータ435はそれぞれ、メモリ290がヒューズを含むワンタイムプログラマブルメモリのタイプである場合に、1つまたは複数のヒューズとして実装され得る。第1のヒューズまたは他のインジケータ430および第2のヒューズまたは他のインジケータ435はそれぞれ、使用されているワンタイムプログラマブルメモリのタイプに適した、第1のヒューズまたは他のインジケータ430および第2のヒューズまたは他のインジケータ435に関連する値を取消不能の形で設定するために使用され得るメモリ290内のアンチヒューズまたは他のタイプのインジケータによって実装され得る。
【００６０】
1つまたは複数の証明書アクションに基づいて、1つまたは複数の証明書の各々に関する失効インジケータおよびアクティブ化インジケータのうちの少なくとも1つに関連するメモリ内の少なくとも1つのインジケータの値が設定され得る(段階1420)。上記で論じたように、各インジケータが、コンピューティングデバイス120のメモリ290内の1つまたは複数のヒューズまたは他のインジケータによって表され得、インジケータの値が、ヒューズのうちの1つもしくは複数を飛ばすこと、またはさもなければインジケータに関連するワンタイムプログラマブルメモリ内の値を設定することによって、取消不能の形で設定され得る。メモリ290を実装するために他のタイプのワンタイムプログラマブルメモリが使用されている場合に、失効インジケータおよび/またはアクティブ化インジケータを設定するために、他のタイプのアクションが使用され得る。いくつかの実装形態では、メモリ290は、ヒューズを含まなくてよく、1つまたは複数のインジケータが、メモリ290を含むメモリのタイプに適した技法を使用して設定され得る。
【００６１】
証明書管理ユニット364は、証明書に関連するアクティブ化インジケータとして働く第2のヒューズもしくは他のインジケータ435および/または失効インジケータとして働く第1のヒューズの値を設定することによって、1つまたは複数の証明書をアクティブ化し、かつ/または失効させるように構成され得る。証明書管理ユニット364は、画像ファイルに含まれる証明書アクションインジケータに基づいて、証明書をアクティブ化し、かつ/または失効させるように構成され得る。証明書アクションインジケータはまた、証明書のハッシュ415およびハッシュテーブル440を生成するときに証明書管理ユニット364が正しいハッシュアルゴリズムを利用できるように、画像ファイルに含まれる証明書アクションインジケータに関連する証明書のハッシュを生成するために使用されたハッシュアルゴリズムを識別するインジケータを含むことができる。
【００６２】
図6は、本明細書で論じる技法による、コンピューティングデバイス上の証明書を管理するためのある例示的なプロセスの流れ図である。図6に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図6のプロセスの段階を実装するための手段を提供する。
【００６３】
モバイルデバイスにおいて、証明書アクションが実行されるべき証明書のハッシュを含む画像ファイルが受信され得る(段階605)。証明書アクションは、失効アクションまたはアクティブ化アクションであってよく、画像ファイルは、署名証明書によって署名されていてよい。画像ファイルは、ソフトウェアアップデート、構成ファイルアップデート、および/または失効および/もしくはアクティブ化情報に関する証明書アクション情報を含むことができる。コンピューティングデバイスのソフトウェアアップデートユニット362は、ワイヤードまたはワイヤレスネットワーク接続を介してコンピューティングデバイス120において画像ファイルを受信するように構成され得る。上記で論じたように、画像ファイルは、信頼できるエンティティ160または他のネットワークエンティティによって提供され得る。いくつかの実装形態では、画像ファイルは、ワイヤードまたはワイヤレスネットワーク接続を介してコンピューティングデバイス120に接続されている別のコンピューティングデバイスからアクセスされることもある。
【００６４】
署名証明書は、画像ファイルが信頼できるソースから来ていることを示すために画像ファイルに署名するために使用されているルート証明書または認証証明書である。署名証明書の有効性は、コンピューティングデバイス120のソフトウェアまたは構成ファイルへの任意のアップデートを実行する前にソフトウェアアップデートユニット362によってチェックされ得る。ソフトウェアアップデートユニット362はまた、署名証明書の有効性を、コンピューティングデバイス120のメモリ290内の1つまたは複数の証明書に対する任意の証明書アクションを実行する前にチェックすることができる。
【００６５】
コンピューティングデバイス120のメモリ290に記憶された証明書は、署名入り画像ファイルに証明書アクションインジケータを含めることによって管理され得る。インジケータは、コンピューティングデバイス120のワンタイムプログラマブルメモリ290に記憶され得る1つまたは複数の証明書に対して実行されるべき証明書アクションを識別することができる。証明書アクションは、証明書アクションが実行されるべき証明書のコピーに関連付けられ得る。代替的に、証明書アクションは、証明書アクションが実行されるべき証明書のハッシュに関連付けられ得る。証明書のハッシュは、コンピューティングデバイス120に提供されるべき画像ファイルのサイズを縮小するために、画像ファイルに含められ得る。証明書アクションインジケータはまた、証明書のハッシュをメモリ290に記憶された証明書のハッシュと比較するときに証明書管理ユニット364が正しいハッシュアルゴリズムを利用できるように、画像ファイルに含まれる証明書アクションインジケータに関連する証明書のハッシュを生成するために使用されたハッシュアルゴリズムを識別するインジケータを含むことができる。
【００６６】
署名証明書のハッシュ値を、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する少なくとも1つのハッシュ値と比較することによって、画像ファイルが有効な証明書によって署名されているかどうかの判断が行われ得る(段階610)。図4に関して上記で論じたように、コンピューティングデバイス120がプロビジョニングされるか、または最初に構成されるとき、コンピューティングデバイス120のワンタイムプログラマブルメモリ290に記憶される証明書のチェーンの占有面積を減らすために、コンピューティングデバイス120によって使用され得るルート証明書および/または認証証明書のハッシュが決定され、コンピューティングデバイス120のワンタイムプログラマブルメモリ290に記憶され得る。
【００６７】
画像ファイルが有効な証明書によって署名されており、証明書アクションが実行されるべき証明書がコンピューティングデバイスのワンタイムプログラマブルメモリ内で発見されていることに応答して、ワンタイムプログラマブルメモリ内の証明書に関連するインジケータを設定することによって、証明書に対して証明書アクションが実行され得る(段階615)。インジケータは、ワンタイムプログラマブルメモリ内の証明書に関連する少なくとも1つのヒューズを飛ばすことによって、または使用されているワンタイムプログラマブルメモリのタイプに適した値をメモリ290に取消不能の形で記憶するために使用され得るメモリ290内の別のタイプのインジケータを設定することによって、設定され得る。証明書管理ユニット364は、画像ファイルが有効な証明書によって署名されており、アクションが実行されるべき証明書がモバイルデバイスのメモリ290内で証明書管理ユニット364によって発見されていることに応答して、画像ファイルにおいて示される証明書アクションを実行するように構成され得る。証明書管理ユニット364は、特定のルート証明書または認証証明書を、その証明書が以前失効していない場合のみアクティブ化するように構成され得る。ヒューズを飛ばすことによって、または証明書が失効していることを示す証明書に関連するメモリ290内の他のインジケータを設定することによって、証明書が取消不能の形で失効し得る。証明書管理ユニット364は、ルート証明書を失効させる前にアクティブな任意の他のルート証明書があるかどうかを判断するように構成され得る。証明書管理ユニット364は、ルート証明書を、コンピューティングデバイス120のメモリ290に記憶されたアクティブで失効していない少なくとも1つの他のルート証明書がある場合のみ失効させるように構成され得る。
【００６８】
図7は、本明細書で論じる技法による、コンピューティングデバイス上で証明書がアクティブであるかどうかを判断するためのある例示的なプロセスの流れ図である。図7に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図7のプロセスの段階を実装するための手段を提供する。図7に示すプロセスは、図6に示すプロセスの段階610を実装するために使用され得る。
【００６９】
図7に示すプロセスは、コンピューティングデバイス120のメモリ290に記憶された証明書情報に従って、画像ファイルに署名するために使用された署名証明書がアクティブな証明書であるかどうかを判断するために、証明書管理ユニット364によって使用され得る。画像ファイルに署名するために使用された証明書がアクティブではないか、または失効している場合、証明書管理ユニット364は、メモリ290内の証明書を失効させるか、またはアクティブ化するために使用され得る、ファイルに含まれるいかなる証明書アクションインジケータも実行しないように構成され得る。さらに、証明書管理ユニット364は、署名証明書がアクティブな証明書であったか、それとも失効したかをソフトウェアアップデートユニット362に通知するように構成され得る。ソフトウェアアップデートユニット362は、署名証明書が失効しているか、またはアクティブではないことに応答して、画像ファイルのコンテンツに基づいて、ソフトウェアアップデートのインストールおよび/または構成ファイルへのアップデートを行わないように構成され得る。
【００７０】
署名証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値が識別され得る(段階705)。図4に関して上記で論じたように、証明書のチェーンの占有面積をかなり減らすために、証明書自体ではなく、ルート証明書および/または認証証明書の各々のハッシュがメモリ290に記憶され得る。署名証明書のハッシュ値は、画像ファイルが署名証明書のハッシュではなく署名証明書自体を含むことに応答して、証明書管理ユニット364によって決定され得る。署名証明書のハッシュは、証明書がメモリ290に含まれる証明書のうちの1つであるかどうかを判断するために、メモリ290に記憶された証明書の各々のハッシュと比較され得る。署名証明書のハッシュが、メモリ290内の証明書のいずれのハッシュとも一致しない場合、証明書管理ユニット364は、署名証明書がコンピューティングデバイス120上に記憶されたアクティブな証明書のうちの1つではないとの判断を行うように構成され得、プロセスは、段階710に進まずに終了し得る。一方、署名証明書のハッシュ値が、コンピューティングデバイス120のメモリ290に記憶された証明書のうちの1つのハッシュ値と一致すると証明書管理ユニット364が判断した場合、プロセスは段階710に進むことができ、一致するハッシュ値に関連する証明書がアクティブであり、署名証明書がコンピューティングデバイス120のメモリ290内のアクティブな証明書であることを示すかどうかの判断が行われ得る。
【００７１】
識別されたハッシュ値に関連する証明書がアクティブであるかどうかの判断が行われ得る(段階710)。図4に関して上記で論じたように、コンピューティングデバイス120のメモリ290にハッシュテーブルが記憶され得る。証明書管理ユニット364は、識別されたハッシュ値に関連する証明書がアクティブで失効しておらず、同じハッシュ値を有する署名証明書がアクティブで失効していない証明書であることを示すかどうかを判断するために、ワンタイムプログラマブルメモリ290内のヒューズまたは他のインジケータの値をチェックするように構成され得る。これらの条件が満たされる場合、署名証明書は有効であり、証明書管理ユニット364は、画像ファイルに含まれる証明書アクションに進むか、または画像ファイルにおいて指定された別のアクションを実行することができる。署名証明書がメモリ内のアクティブな証明書であるかどうかを判断するための例示的なプロセスが、以下で論じる図8に示されている。
【００７２】
図8は、本明細書で論じる技法による、コンピューティングデバイス120上で証明書がアクティブであるかどうかを判断するためのある例示的なプロセスの流れ図である。図8に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図8のプロセスの段階を実装するための手段を提供する。図8に示すプロセスは、図7に示すプロセスの段階710を実装するために使用され得る。図8に示すプロセスは、特定の証明書がアクティブとマークされていて、失効していないかどうかを、証明書に関連するワンタイムプログラマブルメモリ290内のヒューズをチェックすることによって判断するために、証明書管理ユニット364によって使用され得る。
【００７３】
識別されたハッシュ値のハッシュ値が決定され得る(段階805)。段階805における識別された証明書のハッシュ値のハッシュ値は、証明書管理ユニット364によって決定され得る。ハッシュ値のハッシュ値は、メモリ290内の証明書に関連するヒューズを調べるために使用され得る。
【００７４】
識別されたハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第2のヒューズまたは第2のインジケータが、証明書がアクティブ化されていることを示す値に設定されているかどうかの判断が行われ得る(段階810)。図4に関して上記で論じたように、コンピューティングデバイス120のメモリ290にハッシュテーブルが記憶され得る。ハッシュテーブルは、証明書の各々のハッシュをメモリ290内のヒューズのセットにマッピングすることができる。証明書がアクティブ化されている、および/または失効しているかどうかを示すために使用され得るメモリ290内のヒューズのセットのロケーションを識別する情報を取り出すために、ハッシュテーブルにおいて証明書のハッシュが調べられ得る。ヒューズまたは他のインジケータのセットは、証明書がアクティブであるかどうかを示す第2のヒューズまたは第2のインジケータと、証明書が失効しているかどうかを示す第1のヒューズまたは第1のインジケータとを含むことができる。証明書管理ユニット364は、署名証明書が失効しておらず、アクティブであるかどうかを判断するために、これらのヒューズまたは他のインジケータの値を読み取ることができる。これらの条件が満たされる場合、署名証明書は有効であり、証明書管理ユニット364は、画像ファイルに含まれる証明書アクションに進むか、または画像ファイルにおいて指定された別のアクションを実行することができる。証明書管理ユニット364は、証明書がアクティブであるかどうかを示す関連する第1のヒューズまたは第1のインジケータかどうかを判断することができる。第1のヒューズが飛ばされていないか、または第1のインジケータが設定されていない場合、証明書はアクティブ化されておらず、証明書はアクティブではないと証明書管理ユニット364が判断してプロセスは停止し得る。証明書がアクティブとマークされている場合、プロセスは段階815で続行することができる。
【００７５】
識別されたハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のヒューズまたは第1のインジケータが、証明書が失効していることを示す値に設定されているかどうかを判断する(段階815)。証明書管理ユニット364は、証明書に関連する第1のヒューズまたは第1のインジケータが飛ばされており、証明書が取消不能の形で失効していることを示すかどうかを判断することができる。証明書管理ユニット364は、第2のヒューズまたは他のインジケータが設定されており、第1のヒューズまたは他のインジケータが設定されていないことに応答して、証明書がアクティブで失効していないと判断するように構成され得る。証明書管理ユニット364は、第2のヒューズまたは第2のインジケータが設定されているかどうかにかかわらず、第1のヒューズまたは他のインジケータが設定されている場合に、証明書がアクティブではなく失効していると判断するように構成され得る。メモリ290を実装するために使用されたメモリのタイプに応じて、第1のヒューズを飛ばすこと、または証明書に関連する第1のインジケータを設定することによって、以前にアクティブな証明書が失効し得る。
【００７６】
図9は、本明細書で論じる技法による、コンピューティングデバイス上の証明書を失効させるためのある例示的なプロセスの流れ図である。図9に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図9のプロセスの段階を実装するための手段を提供する。図9に示すプロセスは、証明書アクションが失効アクションである、図6に示したプロセスの段階615を実装するために使用され得る。
【００７７】
失効アクションが実行されるべき証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリ290に記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値が識別され得る(段階905)。ソフトウェアアップデートユニット362は、メモリ290に記憶され得る証明書の失効に関する証明書アクション情報を含む画像ファイルを受信することができる。証明書アクション情報は、失効すべき証明書のハッシュ値を含むことができる。証明書アクション情報はまた、失効すべき証明書全体への参照または証明書全体のいずれかを含むことができ、証明書管理ユニット364は、証明書のハッシュ値を生成するために証明書にハッシュ関数を適用するように構成され得る。図4に関して上記で論じたように、コンピューティングデバイス120が利用し得る複数の証明書のハッシュ値が、コンピューティングデバイス120のメモリ290に記憶され得る。ハッシュ値がメモリ290に記憶されている、記憶された証明書は、ルート証明書、認証証明書、またはそれらの組合せを含むことができる。証明書管理ユニット364は、失効すべき証明書のハッシュ値と一致するメモリ内の証明書のハッシュ値を識別するために、証明書アクション情報に従って失効すべき証明書のハッシュ値を、メモリ290内の証明書の各々のハッシュと比較するように構成され得る。失効すべき証明書のハッシュとメモリ290内の証明書のハッシュとの間に一致が発見されなかった場合、失効すべきであった証明書がメモリ290内で発見されなかったため、プロセスは段階905で終了し得る。
【００７８】
識別されたハッシュ値のハッシュ値が決定され得る(段階910)。証明書がアクティブ化されている、および/または失効しているかどうかを示すために使用され得るメモリ290内のヒューズのセットのロケーションを識別する情報を取り出すために、段階905において識別された証明書のハッシュ値のハッシュ値が使用され得る。再び図4を参照すると、コンピューティングデバイス120のメモリ290にハッシュテーブルが記憶され得る。ハッシュテーブルは、証明書の各々のハッシュをメモリ290内のヒューズのセットにマッピングすることができる。証明書がアクティブ化されている、および/または失効しているかどうかを示すために使用され得るメモリ290内のヒューズのセットのロケーションを識別する情報を取り出すために、ハッシュテーブルにおいて証明書のハッシュが調べられ得る。ヒューズのセットは、証明書がアクティブであるかどうかを示す第2のヒューズと、証明書が失効しているかどうかを示す第1のヒューズとを含むことができる。証明書管理ユニット364は、証明書が失効しておらず、アクティブ化されているかどうかを判断するために、これらのヒューズの値を読み取ることができる。証明書が失効していることを示す第1のヒューズがすでに飛ばされている場合、証明書はすでに失効しており、プロセスは段階910で終了し得る。そうでない場合、プロセスは段階915で続行し得る。
【００７９】
証明書を取消不能の形で失効させるために、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のヒューズまたは第1のインジケータの値が設定され得る(段階915)。証明書管理ユニット364は、メモリ290がワンタイムプログラマブルメモリであるので、証明書を取消不能の形で失効させるために、第1のヒューズを飛ばすか、またはメモリ290内の失効すべき証明書に関連する第1のインジケータの値を設定するように構成され得る。第1のヒューズまたは他のインジケータによって表されるビットが設定されると、証明書は失効し、コンピューティングデバイス120上でアクティブ化できず、または失効していない状態にすることができない。
【００８０】
図10は、本明細書で論じる技法による、コンピューティングデバイス上のルート証明書を失効させるためのある例示的なプロセスの流れ図である。図10に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図10のプロセスの段階を実装するための手段を提供する。図10に示すプロセスは、証明書アクションが失効アクションである、図9に示したプロセスの随意の追加段階を実装するために使用され得る。図10に示すプロセスは、証明書に関連する第1のヒューズが飛ばされ、失効すべき証明書がルート証明書である、段階915の前の図9の段階のいずれかの前または後に実行され得る。図10に示すプロセスは、ルート証明書に対して失効が発せられる場合に、少なくとも1つの有効な他のルート証明書がコンピューティングデバイス120上に留まることを確実にするために使用され得る。
【００８１】
ワンタイムプログラマブルメモリ内の第1のヒューズまたは第1のインジケータの値を設定する前に、ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかの判断が行われ得る(段階1005)。証明書管理ユニット364は、失効すべき証明書を永続的に失効させる前に、コンピューティングデバイス120上においてアクティブで失効していない少なくとも1つの他のルート証明書があるかどうかを判断するように構成され得る。証明書管理ユニット364は、他のルート証明書のいずれかがアクティブで失効していないかどうかを判断するために、メモリ290内の証明書の各々に関連する第1のヒューズまたは第1のインジケータおよび第2のヒューズまたは第2のインジケータをチェックするように構成され得る。たとえば、メモリ290は、ヒューズを使用して実装され、他のルート証明書に関連する第2のヒューズは、証明書がアクティブであることを示すために飛ばされるべきであり、他のルート証明書に関連する第1のヒューズは、他のルート証明書が失効していないことを示して、飛ばされるべきではない。
【００８２】
図11は、本明細書で論じる技法による、コンピューティングデバイス上の証明書をアクティブ化するためのある例示的なプロセスの流れ図である。図11に示すプロセスは、図1〜図3に示すコンピューティングデバイス120などのコンピューティングデバイスにおいて実装され得、別段に規定されていない限り、コンピューティングデバイスのソフトウェアアップデートユニット362および証明書管理ユニット364は、図11のプロセスの段階を実装するための手段を提供する。図11に示すプロセスは、証明書アクションがアクティブ化アクションである、図6に示したプロセスの段階615を実装するために使用され得る。
【００８３】
アクティブ化アクションが実行されるべき証明書のハッシュ値と一致する、コンピューティングデバイスのワンタイムプログラマブルメモリ290に記憶された証明書に関連する複数のハッシュ値のうちのハッシュ値が識別され得る(段階1105)。ソフトウェアアップデートユニット362は、メモリ290に記憶され得る証明書のアクティブ化に関する証明書アクション情報を含む画像ファイルを受信することができる。証明書アクション情報は、アクティブ化されるべき証明書のハッシュ値を含むことができる。証明書アクション情報はまた、アクティブ化されるべき証明書全体への参照または証明書全体のいずれかを含むことができ、証明書管理ユニット364は、画像ファイルにおいて証明書のハッシュが提供されていないことに応答して、証明書のハッシュ値を生成するために証明書にハッシュ関数を適用するように構成され得る。図4に関して上記で論じたように、コンピューティングデバイス120が利用し得る複数の証明書のハッシュ値が、コンピューティングデバイス120のメモリ290に記憶され得る。ハッシュ値がメモリ290に記憶されている、記憶された証明書は、ルート証明書、認証証明書、またはそれらの組合せを含むことができる。証明書管理ユニット364は、アクティブ化されるべき証明書のハッシュ値と一致するメモリ内の証明書のハッシュ値を識別するために、証明書アクション情報に従ってアクティブ化されるべき証明書のハッシュ値を、メモリ290内の証明書の各々のハッシュと比較するように構成され得る。アクティブ化されるべき証明書のハッシュとメモリ290内の証明書のハッシュとの間に一致が発見されなかった場合、アクティブ化されるべきであった証明書がメモリ290内で発見されなかったため、プロセスは段階1105で終了し得る。
【００８４】
識別されたハッシュ値のハッシュ値が決定され得る(段階1110)。証明書がアクティブ化されている、および/または失効しているかどうかを示すために使用され得るメモリ290内のヒューズのセットのロケーションを識別する情報を取り出すために、段階1105において識別された証明書のハッシュ値のハッシュ値が使用され得る。再び図4を参照すると、コンピューティングデバイス120のメモリ290にハッシュテーブルが記憶され得る。ハッシュテーブルは、証明書の各々のハッシュをメモリ290内のヒューズのセットにマッピングすることができる。証明書がアクティブ化されている、および/または失効しているかどうかを示すために使用され得るメモリ290内のヒューズのセットのロケーションを識別する情報を取り出すために、ハッシュテーブルにおいて証明書のハッシュが調べられ得る。ヒューズのセットは、証明書がアクティブであるかどうかを示す第2のヒューズと、証明書が失効しているかどうかを示す第1のヒューズとを含むことができる。証明書管理ユニット364は、証明書が失効しておらず、アクティブ化されているかどうかを判断するために、これらのヒューズの値を読み取ることができる。証明書がすでにアクティブ化されていることを示す第2のヒューズが飛ばされている場合、証明書はすでにアクティブ化されており、プロセスは段階1110で終了し得る。そうでない場合、プロセスは段階1115で続行し得る。
【００８５】
証明書をアクティブ化するために、証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第2のインジケータの値が設定され得る(段階1115)。ヒューズを使用してメモリ290が実装される場合、証明書管理ユニット364は、証明書をアクティブ化するために、メモリ290内のアクティブ化されるべき証明書に関連する第1のヒューズを飛ばすように構成され得る。第2のヒューズによって表されるビットが設定されると、証明書はアクティブ化されるが、証明書は依然として、メモリ290内の証明書に関連する第1のヒューズを飛ばすことによって失効し得る。証明書管理ユニット364は、メモリがヒューズを使用しない場合にメモリ290を実装するために使用されたワンタイムプログラマブルメモリのタイプに適した技法を使用して、第2のインジケータを設定するように構成され得る。
【００８６】
図12は、本明細書で論じる技法による、コンピューティングデバイス上の証明書をアクティブ化するためのある例示的なプロセスの流れ図である。図12に示すプロセスは、証明書アクションがアクティブ化アクションである、図11に示したプロセスの随意の追加段階を実装するために使用され得る。図12に示すプロセスは、証明書に関連する第2のヒューズが飛ばされる、段階1115の前の図11の段階のいずれかの前または後に実行され得る。図12に示すプロセスは、すでに失効している証明書がメモリ290内でアクティブ化とマークされるのを防ぐために使用され得る。
【００８７】
証明書のハッシュ値のハッシュ値に関連するコンピューティングデバイスのワンタイムプログラマブルメモリ内の第1のインジケータが、証明書が失効していないことを示す値に設定されているかどうかの判断が行われ得る(段階1205)。メモリ290がヒューズを含む場合に、第1のヒューズが飛ばされている場合、証明書は、取消不能の形で失効しており、アクティブ化できない。証明書管理ユニット364は、証明書がすでに失効していることに応答して、証明書のアクティブ化を停止するように構成され得る。図12のプロセスが図11のプロセスの一部として、または図11のプロセスとともに実行されている場合、証明書管理ユニット364は、アクティブ化されるべき証明書が失効しているとの判断に応答して、図11に示すプロセスを停止するように構成され得る。証明書管理ユニット364は、メモリがヒューズを使用しない場合にメモリ290を実装するために使用されたワンタイムプログラマブルメモリのタイプに適した技法を使用して、第1のインジケータが設定されているかどうかを判断するように構成され得る。
【００８８】
本明細書で説明した方法は、用途に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せにおいて実装されてよい。ハードウェア実装形態の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明した機能を実行するように設計された他の電子ユニット、またはそれらの組合せにおいて実装され得る。
【００８９】
ファームウェアおよび/またはソフトウェアの実装形態の場合、方法は、本明細書で説明した機能を実行するモジュール(たとえば、手順、関数など)を用いて実装され得る。命令を有形に具現化するいずれの機械可読媒体も、本明細書で説明した方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリに記憶され、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内でまたはプロセッサユニットの外部に実装され得る。本明細書で使用される場合、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他のメモリを指し、特定のメモリのタイプもしくはメモリの数、または媒体のタイプに限定されるものではない。有形の媒体は、ランダムアクセスメモリ、磁気ストレージ、光学記憶媒体などのような、機械可読媒体の1つまたは複数の物理的な物品を含む。
【００９０】
機能は、ファームウェアおよび/またはソフトウェアにおいて実装される場合、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。例には、データ構造を用いて符号化されたコンピュータ可読媒体、およびコンピュータプログラムを用いて符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形式で記憶するために使用され得る、コンピュータによってアクセス可能な任意の他の媒体を備え得、本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標）(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、およびBlu-ray(登録商標）ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。そのような媒体はまた、機械可読であり得る非一時的媒体の例を提供し、コンピュータは、そのような非一時的媒体から読み取ることができる機械の一例である。
【００９１】
本明細書で論じた一般的な原理は、本開示または特許請求の範囲の趣旨または範囲から逸脱することなく、他の実装形態に適用され得る。
【符号の説明】
【００９２】
110  ネットワーク
115  ワイヤレス送信機
115a  ローカル地上ワイヤレス送信機
115b  ローカル地上ワイヤレス送信機
120  コンピューティングデバイス
140  ワイヤレス基地局
160  信頼できるエンティティ
170  衛星
170a  衛星
170b  衛星
200  バス
210  プロセッサ
225  ワイヤレスインターフェース
245  アンテナ
250  ワイヤレス信号
260  非一時的メモリ、メモリ
265  GNSSインターフェース
270  入出力インターフェース
275  アンテナ
280  信号
290  メモリ、ワンタイムプログラマブルメモリ
362  ソフトウェアアップデートユニット、機能ユニット
364  証明書管理ユニット、機能ユニット
366  データアクセスユニット、機能ユニット
410  ハッシュ関数
415  証明書のハッシュ
420  ハッシュ関数
425  ハッシュのハッシュ、ハッシュ値のハッシュ
440  証明書ハッシュテーブル、ハッシュテーブル
430  第1のヒューズまたは他のインジケータ
435  第2のヒューズまたは他のインジケータ
【図１】
2018533282.tif 000003
【図２】
2018533282.tif 000004
【図３】
2018533282.tif 000005
【図４】
2018533282.tif 000006
【図５】
2018533282.tif 000007
【図６】
2018533282.tif 000008
【図７】
2018533282.tif 000009
【図８】
2018533282.tif 000010
【図９】
2018533282.tif 000011
【図１０】
2018533282.tif 000012
【図１１】
2018533282.tif 000013
【図１２】
2018533282.tif 000014
【図１３】
2018533282.tif 000015
【図１４】
2018533282.tif 000016
【手続補正書】
【提出日】平成30年3月27日(2018.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上の証明書を管理するための方法であって、
前記コンピューティングデバイスにおいて、証明書アクションが実行されるべき第1の証明書のハッシュ値を含む画像ファイルを受信するステップであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、ステップと、
前記署名証明書のハッシュ値を、前記コンピューティングデバイスのワンタイムプログラマブルメモリにハッシュテーブルとして記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断するステップであって、前記署名証明書の前記ハッシュ値を比較することは、前記ハッシュテーブルにおいて前記署名証明書の前記ハッシュ値に基づいて前記署名証明書が有効であるかどうかを示すインジケータビットのアドレスを取得することをさらに含む、ステップと、
前記画像ファイルが前記有効な証明書によって署名されており、前記第1の証明書の前記ハッシュ値が前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリの前記ハッシュテーブル内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記第1の証明書に関連するインジケータビットの値を設定することによって、前記第1の証明書に対して前記証明書アクションを実行するステップと
を含む方法。
【請求項２】
前記署名証明書および前記第1の証明書は同じ証明書である、請求項1に記載の方法。
【請求項３】
前記署名証明書の前記ハッシュ値を、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断するステップは、
前記署名証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
識別された前記ハッシュ値に関連する前記証明書がアクティブであるかどうかを判断するステップは、
識別された前記ハッシュ値のハッシュ値を決定するステップと、
識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータビットが、前記証明書がアクティブであることを示す値に設定されているかどうかを判断するステップと
をさらに含む、請求項3に記載の方法。
【請求項５】
識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記証明書が失効していないことを示す値に設定されているかどうかを判断するステップ
をさらに含む、請求項4に記載の方法。
【請求項６】
前記証明書アクションは前記失効アクションであり、前記第1の証明書に対して前記証明書アクションを実行するステップは、
前記第1の証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
識別された前記ハッシュ値のハッシュ値を決定するステップと、
前記第1の証明書を取消不能の形で失効させるために、識別された前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータビットの値を設定するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記ワンタイムプログラマブルメモリ内の前記第1のインジケータビットの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記証明書アクションは前記アクティブ化アクションであり、前記第1の証明書に対して前記証明書アクションを実行するステップは、
前記第1の証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するステップと、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定するステップと、
前記第1の証明書をアクティブ化するために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータビットの値を設定するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記第1の証明書が失効していないことを示す値に設定されているかどうかを判断すること
によって、前記第1の証明書が失効しているかどうかを判断するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
装置であって、
証明書アクションが実行されるべき第1の証明書のハッシュ値を含む画像ファイルを受信するための手段であって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、手段と、
前記署名証明書のハッシュ値を、前記装置のワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断するための手段であって、前記第2の証明書の前記ハッシュ値を比較することは、ハッシュテーブルにおいて前記第2の証明書の前記ハッシュ値に基づいて前記第2の証明書が有効であるかどうかを示すインジケータビットのアドレスを取得することをさらに含む、手段と、
前記画像ファイルが前記有効な証明書によって署名されており、前記第1の証明書の前記ハッシュ値が前記装置の前記ワンタイムプログラマブルメモリの前記ハッシュテーブル内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記第1の証明書に関連するインジケータビットの値を設定することによって、前記第1の証明書に対して前記証明書アクションを実行するための手段と
を含む装置。
【請求項１１】
前記署名証明書および前記第1の証明書は同じ証明書である、請求項10に記載の装置。
【請求項１２】
前記署名証明書の前記ハッシュ値を、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断するための前記手段は、
前記署名証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１３】
識別された前記ハッシュ値に関連する前記証明書がアクティブであるかどうかを判断するための前記手段は、
識別された前記ハッシュ値のハッシュ値を決定するための手段と、
識別された前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第2のインジケータビットが、前記証明書がアクティブであることを示す値に設定されているかどうかを判断するための手段と
をさらに含む、請求項12に記載の装置。
【請求項１４】
識別された前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記証明書が失効していないことを示す値に設定されているかどうかを判断するための手段
をさらに含む、請求項13に記載の装置。
【請求項１５】
前記証明書アクションは前記失効アクションであり、前記第1の証明書に対して前記証明書アクションを実行するための前記手段は、
前記第1の証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定するための手段と、
前記第1の証明書を取消不能の形で失効させるために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータビットの値を設定するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１６】
前記ワンタイムプログラマブルメモリ内の前記第1のインジケータビットの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するための手段をさらに含む、請求項15に記載の装置。
【請求項１７】
前記証明書アクションは前記アクティブ化アクションであり、前記第1の証明書に対して前記証明書アクションを実行するための前記手段は、
前記第1の証明書の前記ハッシュ値と一致する、前記装置の前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別するための手段と、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定するための手段と、
前記第1の証明書をアクティブ化するために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第2のインジケータビットを設定するための手段と
をさらに含む、請求項10に記載の装置。
【請求項１８】
前記第1の証明書が失効しているかどうかを判断するための手段をさらに含み、前記第1の証明書が失効しているかどうかを判断するための前記手段は、
前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記装置の前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記第1の証明書が失効していないことを示す値に設定されているかどうかを判断するための手段
を含む、請求項17に記載の装置。
【請求項１９】
コンピューティングデバイスであって、
ワンタイムプログラマブルメモリと、
前記ワンタイムプログラマブルメモリに結合された少なくとも1つのプロセッサと
を含み、前記少なくとも1つのプロセッサは、
証明書アクションが実行されるべき第1の証明書のハッシュ値を含む画像ファイルを受信することであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、受信することと、
前記署名証明書のハッシュ値を、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断することであって、前記第2の証明書の前記ハッシュ値を比較することは、ハッシュテーブルにおいて前記第2の証明書の前記ハッシュ値に基づいて前記第2の証明書が有効であるかどうかを示すインジケータビットのアドレスを取得することをさらに含む、判断することと、
前記画像ファイルが前記有効な証明書によって署名されており、前記第1の証明書の前記ハッシュ値が前記ワンタイムプログラマブルメモリの前記ハッシュテーブル内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記第1の証明書に関連するインジケータビットの値を設定することによって、前記第1の証明書に対して前記証明書アクションを実行することと
を行うように構成される、コンピューティングデバイス。
【請求項２０】
前記署名証明書および前記第1の証明書は同じ証明書である、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記証明書アクションは前記失効アクションであり、前記第1の証明書に対して前記証明書アクションを実行するように構成される前記少なくとも1つのプロセッサは、
前記第1の証明書の前記ハッシュ値と一致する、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定することと、
前記第1の証明書を取消不能の形で失効させるために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第1のインジケータビットの値を設定することと
を行うようにさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２２】
前記少なくとも1つのプロセッサは、前記ワンタイムプログラマブルメモリ内の前記第1のインジケータビットの前記値を設定する前に、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値に関連する任意の他のルート証明書がアクティブで失効していないかどうかを判断するようにさらに構成される、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記証明書アクションは前記アクティブ化アクションであり、前記第1の証明書に対して前記証明書アクションを実行するように構成される前記少なくとも1つのプロセッサは、
前記第1の証明書の前記ハッシュ値と一致する、前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定することと、
前記第1の証明書をアクティブ化するために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第2のインジケータビットの値を設定することと
を行うようにさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２４】
前記少なくとも1つのプロセッサは、前記第1の証明書が失効しているかどうかを判断するようにさらに構成され、前記少なくとも1つのプロセッサは、
前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記第1の証明書が失効していないことを示す値に設定されているかどうかを判断する
ように構成される、請求項23に記載のコンピューティングデバイス。
【請求項２５】
コンピューティングデバイス上の証明書を管理するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読媒体であって、
証明書アクションが実行されるべき第1の証明書のハッシュ値を含む画像ファイルを受信することであって、前記証明書アクションは、失効アクションまたはアクティブ化アクションであり、前記画像ファイルは、署名証明書によって署名されている、受信することと、
前記署名証明書のハッシュ値を、前記コンピューティングデバイスのワンタイムプログラマブルメモリに記憶された証明書に関連する複数のハッシュ値と比較することによって、前記画像ファイルが有効な証明書によって署名されているかどうかを判断することであって、前記第2の証明書の前記ハッシュ値を比較することは、ハッシュテーブルにおいて前記第2の証明書の前記ハッシュ値に基づいて前記第2の証明書が有効であるかどうかを示すインジケータビットのアドレスを取得することをさらに含む、判断することと、
前記画像ファイルが前記有効な証明書によって署名されており、前記第1の証明書の前記ハッシュ値が前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内で発見されていることに応答して、前記ワンタイムプログラマブルメモリ内の前記証明書に関連するインジケータビットの値を設定することによって、前記第1の証明書に対して前記証明書アクションを実行することと
を前記コンピューティングデバイスに行わせるように構成された命令を含む、非一時的コンピュータ可読媒体。
【請求項２６】
前記署名証明書および前記第1の証明書は同じ証明書である、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記署名証明書の前記ハッシュ値を、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値と比較することによって、前記画像ファイルが前記有効な証明書によって署名されているかどうかを判断することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記署名証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
識別された前記ハッシュ値に関連する証明書がアクティブであるかどうかを判断することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２８】
前記証明書アクションは前記失効アクションであり、前記第1の証明書に対して前記証明書アクションを実行することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記第1の証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定することと、
前記第1の証明書を取消不能の形で失効させるために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータビットの値を設定することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記証明書アクションは前記アクティブ化アクションであり、前記第1の証明書に対して前記証明書アクションを実行することを前記コンピューティングデバイスに行わせるように構成された前記命令は、
前記第1の証明書の前記ハッシュ値と一致する、前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリに記憶された証明書に関連する前記複数のハッシュ値のうちのハッシュ値を識別することと、
前記第1の証明書の前記ハッシュ値のハッシュ値を決定することと、
前記証明書をアクティブ化するために、前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第2のインジケータビットの値を設定することと
を前記コンピューティングデバイスに行わせるように構成された命令をさらに含む、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記第1の証明書が失効しているかどうかを判断することを前記コンピューティングデバイスに行わせるように構成された命令をさらに含み、前記コンピューティングデバイスは、
前記第1の証明書の前記ハッシュ値の前記ハッシュ値に関連する前記コンピューティングデバイスの前記ワンタイムプログラマブルメモリ内の第1のインジケータビットが、前記第1の証明書が失効していないことを示す値に設定されているかどうかを判断する
ように構成される、請求項29に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2018533282.tif 000017
2018533282.tif 000018
2018533282.tif 000019