JP2018005613A - 更新方法、プログラム、情報処理装置、及び更新データ生成装置 - Google Patents

更新方法、プログラム、情報処理装置、及び更新データ生成装置 Download PDF

Info

Publication number
JP2018005613A
JP2018005613A JP2016132534A JP2016132534A JP2018005613A JP 2018005613 A JP2018005613 A JP 2018005613A JP 2016132534 A JP2016132534 A JP 2016132534A JP 2016132534 A JP2016132534 A JP 2016132534A JP 2018005613 A JP2018005613 A JP 2018005613A
Authority
JP
Japan
Prior art keywords
hash value
module
encrypted
update
module list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016132534A
Other languages
English (en)
Inventor
卓実 道下
Takumi Michishita
卓実 道下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016132534A priority Critical patent/JP2018005613A/ja
Publication of JP2018005613A publication Critical patent/JP2018005613A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】不正なアップデートの実行を防止することができる更新方法を提供する。【解決手段】モバイル端末102は、暗号部605が復号化されたコンテンツリスト207のハッシュ値である解析直前ハッシュ値と、暗号部605が暗号化される前のコンテンツリスト207のハッシュ値であるチェック用ハッシュ値206とが一致するか否かを判別し、判別結果に基づいてアップデートの開始及び中止のいずれかを決定する。【選択図】図7

Description

本発明は、更新方法、プログラム、情報処理装置、及び更新データ生成装置に関する。
アプリケーションやファームウェア等のコンテンツがインストールされた情報処理装置としてのモバイル端末が知られている。モバイル端末はインストールされたコンテンツの各処理を実行するための複数の実行プログラムを格納する。モバイル端末は、インストールされたコンテンツの不具合の修正や機能の追加といったアップデートを行う場合、格納された各実行プログラムを、サーバ等から取得された新たな実行プログラムに更新する(例えば、特許文献1参照)。モバイル端末は、格納された複数の実行プログラムのうち、サーバが提供する新たな実行プログラムのバージョンと異なる実行プログラムのみを取得する差分アップデートを行う場合がある。差分アップデートを行う場合、モバイル端末は、新たな実行プログラムを取得する前に、サーバが提供する実行プログラムの名称や当該実行プログラムのバージョンを含むコンテンツリストをサーバから取得し、当該コンテンツリストを解析する。モバイル端末は当該モバイル端末に格納された各実行プログラムのバージョンとコンテンツリストに含まれる各実行プログラムのバージョンとを比較し、バージョンに差がある実行プログラムを特定し、特定された実行プログラムをサーバから取得する。
ところで、サーバから提供される新たな実行プログラムは、セキュリティの観点から署名暗号化処理が施されているが、コンテンツリストは、上述した通り、モバイル端末によって解析可能なように署名暗号化処理が施されていない。そのため、悪意あるユーザによってコンテンツリストの内容が改ざんされ、不正なアップデートが行われる可能性がある。これに対応して、サーバは、コンテンツリストを提供する際に当該コンテンツリストを特定可能なチェック用ハッシュ値も提供する。モバイル端末はコンテンツリストの解析を開始する直前にコンテンツリストのハッシュ値を算出し、算出されたハッシュ値(以下、「解析直前ハッシュ値」という。)及びチェック用ハッシュ値の差に基づいてコンテンツリストの改ざんを検知する。
特開2011−100328号公報
しかしながら、上述した従来のモバイル端末では、コンテンツリストの改ざんを検知することができない場合がある。例えば、コンテンツリストを取得してからモバイル端末がコンテンツリストの解析を開始するまでの間に悪意あるユーザによってコンテンツリストが改ざんされ、且つコンテンツリストの改ざん内容に対応してチェック用ハッシュ値も改ざんされてしまうと、モバイル端末はコンテンツリストの改ざんを検知することができない。その結果、モバイル端末では不正なアップデートが行われてしまうといった問題が生じる。
本発明の目的は、不正なアップデートの実行を防止することができる更新方法、プログラム、情報処理装置、及び更新データ生成装置を提供することにある。
上記目的を達成するために、本発明の更新方法は、取得されたモジュールリストが示すモジュールの更新を行う更新方法であって、前記モジュールリストを特定する第1のハッシュ値を取得する取得ステップと、前記モジュールリストのハッシュ値を第2のハッシュ値として算出する算出ステップと、前記第1のハッシュ値及び前記第2のハッシュ値が一致するか否かを判別する判別ステップと、前記判別ステップの判別結果に基づいて前記モジュールの更新の開始及び前記モジュールの更新の中止のいずれかを決定する決定ステップとを有し、前記モジュールリストの一部は暗号化され、前記第1のハッシュ値は、前記一部が暗号化される前の前記モジュールリストのハッシュ値であり、前記第2のハッシュ値は、前記一部が暗号化されたモジュールリストを復号化したモジュールリストのハッシュ値であることを特徴とする。
本発明によれば、不正なアップデートの実行を防止することができる。
本発明の実施の形態に係る情報処理装置としてのモバイル端末を含む通信システムの構成を概略的に示すブロック図である。 図1のサーバが配信する配信データセットを説明するための図である。 図1のモバイル端末のメインシステムモジュールの構成を概略的に示すブロック図である。 図1のサーバの構成を概略的に示すブロック図である。 図1のサーバで実行される生成処理の手順を示すフローチャートである。 図2のコンテンツリストを説明するための図である。 図1のモバイル端末で実行される更新処理の手順を示すフローチャートである。 図7のステップS705における解析直前ハッシュ値及びチェック用ハッシュ値の比較を説明するための図である。 図7の更新処理の変形例の手順を示すフローチャートである。
以下、本発明の実施の形態を図面を参照しながら詳述する。
本実施の形態では、情報処理装置としてのモバイル端末に本発明を適用した場合について説明するが、本発明の適用先はモバイル端末に限られない。インストールされたコンテンツのアップデートを行うクライアントPC等の情報処理装置であれば本発明を適用することができる。
また、本実施の形態では、更新データ生成装置としてのサーバに本発明を適用した場合について説明するが、本発明の適用先はサーバに限られない。情報処理装置にインストールされたコンテンツのアップデートを行うための各データを生成するPC(Personal Computer)等の装置であれば本発明を適用することができる。
図1は、本発明の実施の形態に係る情報処理装置としてのモバイル端末102を含む通信システム100の構成を概略的に示すブロック図である。
図1において、通信システム100は、更新データ生成装置としてのサーバ101及びモバイル端末102を備え、サーバ101及びモバイル端末102はネットワーク103を介して接続されている。モバイル端末102は制御部104及び操作部114を備え、制御部104及び操作部114は接続されている。制御部104は、CPU105、ROM106、RAM107、HDD108、操作部I/F109、USBI/F110、及びネットワークI/F112を備える。CPU105、ROM106、RAM107、HDD108、操作部I/F109、USBI/F110、及びネットワークI/F112はシステムバス113を介して互いに接続されている。
サーバ101はモバイル端末102等にインストールされたコンテンツの不具合の修正や機能の追加といったアップデートを行うための図2の配信データセット200を生成し、当該配信データセット200をモバイル端末102等に送信する。配信データセット200は、暗号化コンテンツファイル201〜205、チェック用ハッシュ値206、及びコンテンツリスト207(モジュールリスト)を含む。各暗号化コンテンツファイル201〜205はサーバ101が提供する各実行プログラムを署名暗号化したデータである。チェック用ハッシュ値206はコンテンツリスト207を特定するハッシュ値である。コンテンツリスト207は各暗号化コンテンツファイル201〜205に関する情報、例えば、各暗号化コンテンツファイル201〜205の名称やバージョン情報等であり、詳細は後述する。
モバイル端末102はインストールされたコンテンツの各処理を実行するための複数の実行プログラムを格納する。モバイル端末102はサーバ101等から配信データセット200を取得すると、当該配信データセット200に基づいてモバイル端末102に格納された実行プログラムのうち配信データセット200に対応する実行プログラムを更新する。また、モバイル端末102は差分アップデートも実行可能である。モバイル端末102は、アップデートを行う際にサーバ101からチェック用ハッシュ値206及びコンテンツリスト207を取得し、ROM106等に格納された各実行プログラムのバージョンとコンテンツリスト207の各暗号化コンテンツファイル201〜205のバージョンとを比較する。その後、モバイル端末102はバージョンに差分がある実行プログラムに対応する暗号化コンテンツデータを取得し、当該暗号化コンテンツデータを復号化してROM106等に格納された実行プログラムを更新する。
制御部104はモバイル端末102全体を統括的に制御する。CPU105はROM106に格納されたプログラムを実行して後述する図3のメインシステムモジュール300の各処理を実行する。ROM106はCPU105で実行されるプログラムや各データを格納する。RAM107はCPU105の作業領域として用いられ、また、RAM107は各データの一時格納領域として用いられる。HDD108はROM106の拡張領域として用いられ、プログラム及び各データを格納する。操作部I/F109は操作部114とデータ通信を行う。USBI/F110はUSBメモリやUSBキーボード等の外部USBデバイス111とデータ通信を行う。例えば、USBI/F110はモバイル端末102に接続されたUSBメモリから当該USBメモリに格納された配信データセット200を取得する。ネットワークI/F112はネットワーク103を介して接続されたサーバ101とデータ通信を行う。例えば、ネットワークI/F112はサーバ101から配信データセット200を取得する。なお、モバイル端末102は、配信データセット200の取得において、USBI/F110及びネットワークI/F112のいずれを用いた場合でも同様の処理を行う。本実施の形態では、一例として、ネットワークI/F112を介してサーバ101から配信データセット200を取得する場合について説明する。操作部114はモバイル端末102のユーザインターフェースであり、タッチパネル式の図示しない表示部及び操作キーを備える。
図3は、図1のモバイル端末102のメインシステムモジュール300の構成を概略的に示すブロック図である。
図3において、メインシステムモジュール300は、操作制御モジュール301、アプリケーション制御モジュール302、セキュリティ制御モジュール303、USB制御モジュール304、及び通信処理モジュール305を備える。また、メインシステムモジュール300は、ファイル整合性チェックモジュール306、ダウンロード形式判別モジュール307、コンテンツ差分判別モジュール308、データ復号モジュール309、及びコンテンツ更新処理モジュール310を備える。メインシステムモジュール300の各処理は、CPU105がROM106やHDD108に格納されたプログラムを実行することによって行われる。
操作制御モジュール301は操作部I/F109によって操作部114の制御を行う。アプリケーション制御モジュール302はモバイル端末102にインストールされたアプリケーションの実行を制御する。セキュリティ制御モジュール303は暗号化されたデータの管理等を行ってモバイル端末102におけるセキュリティの制御を行う。USB制御モジュール304はUSBI/F110による外部USBデバイス111とのデータ通信を制御し、例えば、外部USBデバイス111から配信データセット200を取得する。通信処理モジュール305はネットワークI/F112によるサーバ101とのデータ通信を制御し、例えば、サーバ101から配信データセット200を取得する。
ファイル整合性チェックモジュール306は取得された配信データセット200がユーザによって改ざんされたか否かを判別する。ダウンロード形式判別モジュール307は取得された配信データセット200の形式を判別し、判別結果に基づいて当該配信データセット200のチェック方法を決定する。コンテンツ差分判別モジュール308はROM106やHDD108に格納された複数の実行プログラムから被更新プログラム(被更新モジュール)を特定する。具体的に、コンテンツ差分判別モジュール308は、ROM106やHDD108に格納された各実行プログラムのバージョンと、サーバから配信されたコンテンツリスト207の実行プログラムのバージョンとを比較する。コンテンツ差分判別モジュール308は比較した結果、バージョンに差分がある実行プログラムを被更新プログラムとして特定する。データ復号モジュール309は署名暗号化された各データを復号化する。コンテンツ更新処理モジュール310は、ROM106やHDD108に格納された実行プログラムをサーバ101から取得された新たなバージョンの実行プログラムに更新する。
図4は、図1のサーバ101の構成を概略的に示すブロック図である。
図4において、サーバ101は、制御部400及び操作部408を備え、制御部400及び操作部408は接続されている。制御部400は、CPU401、ROM402、RAM403、HDD404、操作部I/F405、及びネットワークI/F406を備える。CPU401、ROM402、RAM403、HDD404、操作部I/F405、及びネットワークI/F406はシステムバス407を介して互いに接続されている。
制御部400はサーバ101全体を統括的に制御する。CPU401はROM402に格納されたプログラムを実行して各制御を行う。ROM402はCPU401で実行されるプログラムや各データを格納する。RAM403はCPU401の作業領域として用いられ、また、RAM403は各データの一時格納領域として用いられる。HDD404はROM402の拡張領域として用いられ、プログラム及び各データを格納する。例えば、HDD404は生成された配信データセット200を格納する。操作部I/F405は操作部408とデータ通信を行う。ネットワークI/F406はネットワーク103を介して接続されたモバイル端末102とデータ通信を行い、例えば、HDD404に格納された配信データセット200をモバイル端末102に送信する。操作部408はサーバ101のユーザインターフェースであり、図示しない表示部及びキーボードを備える。
次に、サーバ101による配信データセット200の生成について説明する。
図5は、図1のサーバ101で実行される生成処理の手順を示すフローチャートである。
図5の処理は、サーバ101のCPU401がROM402やHDD404に格納されたプログラムを実行することによって行われる。
図5において、まず、CPU401は、アップデートの内容に対応する複数の実行プログラムを取得する(ステップS501)。次いで、CPU401は取得された各実行プログラムを署名暗号化し(ステップS502)、暗号化コンテンツファイル201〜205を生成する。次いで、CPU401は、各暗号化コンテンツファイル201〜205の名称及び各暗号化コンテンツファイル201〜205のバージョンを含むコンテンツリスト207を生成する(ステップS503)。
次いで、CPU401は、各暗号化コンテンツファイル201〜205のハッシュ値を算出し、コンテンツリスト207に算出された各ハッシュ値を設定する(ステップS504)。次いで、CPU401はコンテンツリスト207にサーバ101の機種情報を設定する(ステップS505)。ステップS503〜S505の処理の実行が完了すると、図6に示すコンテンツリスト207が生成される。コンテンツリスト207は、バージョン情報601、暗号化コンテンツデータに関する情報602、及び機種情報603を備える。バージョン情報601は配信データセット200のバージョン情報である。暗号化コンテンツデータに関する情報602は各暗号化コンテンツファイル201〜205の名称、バージョン情報、及びハッシュ値であり、ステップS503,S504の処理によって設定される。機種情報603は配信データセット200を生成したサーバ101を特定する機種IDやサーバ101のOSバージョン等であり、ステップS505の処理によって設定される。
次いで、CPU401はコンテンツリスト207のハッシュ値を算出し、算出結果をチェック用ハッシュ値206としてHDD404等に格納する(ステップS506)。次いで、CPU401はコンテンツリスト207の一部を署名暗号化する(ステップS507)。具体的に、図6に示すように、CPU401は、コンテンツリスト207のうち機種情報603の部分のみを署名暗号化し、被更新プログラムの特定に用いられる暗号化コンテンツデータに関する情報602等を署名暗号化しない。以下では、図6に示すように、コンテンツリスト207のうち署名暗号化されない部分を非暗号部604と定義し、署名暗号化された部分を暗号部605と定義する。
次いで、CPU401は、暗号化コンテンツファイル201〜205、チェック用ハッシュ値206、及びコンテンツリスト207を含む配信データセット200を生成する(ステップS508)。その後、CPU401は当該配信データセット200をHDD404等に格納して、本処理を終了する。サーバ101は、例えば、モバイル端末102等から差分アップデートの実行要求を受信すると、配信データセット200に含まれるチェック用ハッシュ値206及びコンテンツリスト207をモバイル端末102に送信する。
図7は、図1のモバイル端末102で実行される更新処理の手順を示すフローチャートである。
図7の処理は、図1のCPU105がROM106やHDD108に格納されたプログラムを実行することによって行われる。
図7において、まず、CPU105はユーザの操作部114の操作等によってコンテンツの差分アップデートの指示を受け付け(ステップS701)、サーバ101からチェック用ハッシュ値206及びコンテンツリスト207を取得する(ステップS702)。次いで、CPU105は取得されたコンテンツリスト207を復号化し(ステップS703)、復号化されたコンテンツリスト207のハッシュ値を解析直前ハッシュ値として算出する(ステップS704)。次いで、CPU105は解析直前ハッシュ値及びチェック用ハッシュ値206が一致するか否かを判別する(ステップS705)。
ここで、チェック用ハッシュ値206は暗号部605が暗号化される前のコンテンツリスト207から算出されたハッシュ値である。また、解析直前ハッシュ値は暗号部605が復号化された後のコンテンツリスト207から算出されたハッシュ値である。本来、チェック用ハッシュ値206及び解析直前ハッシュ値は、図8(a)に示すように、同じ内容のコンテンツリスト207から算出されたハッシュ値であるので、一致するはずである。
ところが、コンテンツリスト207を取得してからステップS703の処理を開始するまでの間に悪意あるユーザによってコンテンツリスト207の内容が改ざんされてしまう可能性がある。コンテンツリスト207は、暗号化された暗号部605の内容を改ざんされることはないが、暗号化されない非暗号部604の内容を改ざんされる場合がある。この場合、解析直前ハッシュ値は内容が改ざんされた非暗号部604、及び復号化された暗号部605を含むコンテンツリスト207から算出されたハッシュ値である。つまり、解析直前ハッシュ値は、図8(b)に示すように、チェック用ハッシュ値206と異なる内容のコンテンツリスト207から算出されたハッシュ値であるので、チェック用ハッシュ値206及び解析直前ハッシュ値は一致しない。これにより、ステップS702で取得された後にコンテンツリスト207が改ざんされたことを検知可能である。
また、コンテンツリスト207の改ざんに対応してチェック用ハッシュ値206も改ざんされる可能性がある。チェック用ハッシュ値206の改ざんとして、例えば、図8(c)に示すように、内容が改ざんされた非暗号部604、及び内容が改ざんされずに暗号化されたままの暗号部605を含むコンテンツリスト207から導出されたハッシュ値をチェック用ハッシュ値206に置き換える場合が考えられる。この場合、改ざんされたチェック用ハッシュ値206は内容が改ざんされた非暗号部604、及び暗号化された暗号部605を含むコンテンツリスト207から算出されたハッシュ値であり、解析直前ハッシュ値は内容が改ざんされた非暗号部604、及び復号化された暗号部605を含むコンテンツリスト207から算出されたハッシュ値である。つまり、改ざんされたチェック用ハッシュ値206及び解析直前ハッシュ値は、図8(c)に示すように、同じ内容のコンテンツリスト207ではあるが、暗号部605の状態、具体的に、暗号部605が暗号化されているか否かが異なるコンテンツリスト207から算出されたハッシュ値であるので、一致しない。これにより、ステップS702で取得された後にチェック用ハッシュ値206及びコンテンツリスト207の両方が改ざんされたことも検知可能である。
ステップS705の判別の結果、解析直前ハッシュ値及びチェック用ハッシュ値206が一致しないとき、CPU105はアップデートを中止する。その後、CPU105は操作部114及びサーバ101にアップデートを中止した旨のエラーを通知し(ステップS706)、本処理を終了する。
ステップS705の判別の結果、解析直前ハッシュ値及びチェック用ハッシュ値206が一致したとき、CPU105はコンテンツリスト207に基づいて被更新プログラムを特定する(ステップS707)(モジュール特定ステップ)。次いで、CPU105は特定された被更新プログラムを更新するための新たなバージョンの実行プログラムをサーバ101から取得し(ステップS708)、アップデートを開始する(ステップS709)。CPU105は、アップデートの実行を完了すると、操作部114及びサーバ101にアップデートの実行を完了した旨を通知し(ステップS710)、本処理を終了する。
上述した図7の処理によれば、チェック用ハッシュ値206及び解析直前ハッシュ値が一致するか否かの判別結果に基づいてアップデートの開始及び中止のいずれかが決定されるモバイル端末102によって取得されたコンテンツリスト207の暗号部605は暗号化されている。また、チェック用ハッシュ値206は暗号部605が暗号化される前のコンテンツリスト207のハッシュ値であり、解析直前ハッシュ値は暗号化された暗号部605が復号化されたコンテンツリスト207のハッシュ値である。これにより、図8(b)及び図8(c)に示すように、コンテンツリスト207の非暗号部604やチェック用ハッシュ値206の改ざんを確実に検知することができ、もって、不正なアップデートの実行を防止することができる。
また、上述した図7の処理では、コンテンツリスト207のうち被更新プログラムを特定するために必要な暗号化コンテンツデータに関する情報602は暗号化されない。これにより、コンテンツリスト207が暗号化されても、コンテンツリスト207に基づいて被更新プログラムを特定することができ、もって、ユーザの所望する差分アップデートを行うことができる。
さらに、上述した図7の処理では、解析直前ハッシュ値が算出された直後にステップS705の判別処理を実行する。これにより、ステップS704で算出された解析直前ハッシュ値がステップS705の判別処理の実行が開始されるまでに悪意あるユーザによってチェック用ハッシュ値206として設定されるといった不正な処理が行われるのを防止することができる。
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。
例えば、取得されたコンテンツリスト207が暗号化されているか否かに基づいて解析直前ハッシュ値の算出方法を決定しても良い。
図9は、図7の更新処理の変形例の手順を示すフローチャートである。
図9の処理は、図1のCPU105がROM106やHDD108に格納されたプログラムを実行することによって行われる。
ここで、例えば、モバイル端末102のバージョンダウンを実行する場合、モバイル端末102は当該モバイル端末102のバージョンダウンを行うための配信データセット(以下、「バージョンダウンデータセット」という。)をサーバ101から取得する。ところが、バージョンダウンデータセットには、上述した図7の処理に対応しないコンテンツリスト207、つまり、暗号部605が暗号化されていないコンテンツリスト207が含まれている可能性がある。暗号化されていないコンテンツリスト207を復号化して算出された解析直前ハッシュ値及びチェック用ハッシュ値206を比較すると、正しい比較結果を得ることができない場合があり、その結果、モバイル端末102のバージョンダウンを実行することができないという問題が生じる。
これに対応して、本実施の形態では、取得されたコンテンツリスト207が暗号化されているか否かに基づいて解析直前ハッシュ値の算出方法を決定する。
図9において、まず、CPU105は、図7のステップS701,S702の処理を行う。次いで、CPU105は取得されたコンテンツリスト207が暗号化されているか否かを判別する(ステップS901)。
ステップS901の判別の結果、取得されたコンテンツリスト207が暗号化されているとき、CPU105は図7のステップS703以降の処理を行う。一方、ステップS901の判別の結果、取得されたコンテンツリスト207が暗号化されていないとき、CPU105は、ステップS701で受け付けた指示がモバイル端末102のバージョンダウンに対応する指示であるか否かを判別する(ステップS902)。ステップS902では、CPU105は、例えば、ROM106等に格納された各実行プログラムのバージョンと取得されたコンテンツリストの各暗号化コンテンツファイルのバージョンとを比較する。比較した結果、格納された各実行プログラムのバージョンが取得されたコンテンツリストの各暗号化コンテンツファイルのバージョンより新しい場合、CPU105は受け付けた指示がモバイル端末102のバージョンダウンに対応する指示であると判別する。一方、取得されたコンテンツリストの各暗号化コンテンツファイルのバージョンが格納された各実行プログラムのバージョンと一致する又は新しい場合、CPU105は受け付けた指示がモバイル端末102のバージョンダウンに対応する指示でないと判別する。
ステップS902の判別の結果、受け付けた指示がモバイル端末102のバージョンダウンに対応する指示でないとき、CPU105はステップS706以降の処理を行う。一方、ステップS902の判別の結果、受け付けた指示がモバイル端末102のバージョンダウンに対応する指示であるとき、CPU105は、復号化処理を行わず、ステップS702で取得されたコンテンツリストのハッシュ値を解析直前ハッシュ値として算出する(ステップS903)。次いで、CPU105は図7のステップS705以降の処理を行う。
上述した図9の処理では、取得されたコンテンツリスト207が暗号化されているか否かに基づいて解析直前ハッシュ値の算出方法が決定される。すなわち、コンテンツリスト207の仕様に適した算出方法によって解析直前ハッシュ値が算出される。これにより、算出された解析直前ハッシュ値及びチェック用ハッシュ値の正しい比較結果を得ることができ、もって、正しい比較結果を得ることができないことに起因するモバイル端末102のバージョンダウンが実行されなくなる事態を回避することができる。
本発明は、上述の実施の形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 サーバ
102 モバイル端末
105,401 CPU
206 チェック用ハッシュ値
207 コンテンツリスト
602 暗号化コンテンツデータに関する情報

Claims (11)

  1. 取得されたモジュールリストが示すモジュールの更新を行う更新方法であって、
    前記モジュールリストを特定する第1のハッシュ値を取得する取得ステップと、
    前記モジュールリストのハッシュ値を第2のハッシュ値として算出する算出ステップと、
    前記第1のハッシュ値及び前記第2のハッシュ値が一致するか否かを判別する判別ステップと、
    前記判別ステップの判別結果に基づいて前記モジュールの更新の開始及び前記モジュールの更新の中止のいずれかを決定する決定ステップとを有し、
    前記モジュールリストの一部は暗号化され、
    前記第1のハッシュ値は、前記一部が暗号化される前の前記モジュールリストのハッシュ値であり、
    前記第2のハッシュ値は、前記一部が暗号化されたモジュールリストを復号化したモジュールリストのハッシュ値であることを特徴とする更新方法。
  2. 前記モジュールリストから被更新モジュールを特定するモジュール特定ステップを更に有し、
    前記モジュールリストのうち前記被更新モジュールを特定するために必要なデータは暗号化されないことを特徴とする請求項1記載の更新方法。
  3. 前記判別ステップは、前記第2のハッシュ値が算出された直後に判別することを特徴とする請求項1又は2記載の更新方法。
  4. 前記モジュールリストが暗号化されているか否かに基づいて前記第2のハッシュ値の算出方法を決定することを特徴とする請求項1乃至3のいずれか1項に記載の更新方法。
  5. 取得されたモジュールリストが示すモジュールの更新を行う更新方法をコンピュータに実行させるプログラムであって、
    前記更新方法は、
    前記モジュールリストを特定する第1のハッシュ値を取得する取得ステップと、
    前記モジュールリストのハッシュ値を第2のハッシュ値として算出する算出ステップと、
    前記第1のハッシュ値及び前記第2のハッシュ値が一致するか否かを判別する判別ステップと、
    前記判別ステップの判別結果に基づいて前記モジュールの更新の開始及び前記モジュールの更新の中止のいずれかを決定する決定ステップとを有し、
    前記モジュールリストの一部は暗号化され、
    前記第1のハッシュ値は、前記一部が暗号化される前の前記モジュールリストのハッシュ値であり、
    前記第2のハッシュ値は、前記一部が暗号化されたモジュールリストを復号化したモジュールリストのハッシュ値であることを特徴とするプログラム。
  6. 取得されたモジュールリストが示すモジュールの更新を行う情報処理装置であって、
    前記モジュールリストを特定する第1のハッシュ値を取得する取得手段と、
    前記モジュールリストのハッシュ値を第2のハッシュ値として算出する算出手段と、
    前記第1のハッシュ値及び前記第2のハッシュ値が一致するか否かを判別する判別手段と、
    前記判別手段による判別結果に基づいて前記モジュールの更新の開始及び前記モジュールの更新の中止のいずれかを決定する決定手段とを備え、
    前記モジュールリストの一部は暗号化され、
    前記第1のハッシュ値は、前記一部が暗号化される前の前記モジュールリストのハッシュ値であり、
    前記第2のハッシュ値は、前記一部が暗号化されたモジュールリストを復号化したモジュールリストのハッシュ値であることを特徴とする情報処理装置。
  7. 前記モジュールリストから被更新モジュールを特定する特定手段を更に備え、
    前記モジュールリストのうち前記被更新モジュールを特定するために必要なデータは暗号化されないことを特徴とする請求項6記載の情報処理装置。
  8. 前記判別手段は、前記第2のハッシュ値が算出された直後に判別することを特徴とする請求項6又は7記載の情報処理装置。
  9. 前記モジュールリストが暗号化されているか否かに基づいて前記第2のハッシュ値の算出方法を決定することを特徴とする請求項6乃至8のいずれか1項に記載の情報処理装置。
  10. モジュールリストが示すモジュールを更新する更新データを生成する更新データ生成装置であって、
    前記モジュールリストを生成する生成手段を備え、
    前記生成手段は、前記モジュールリストの一部を暗号化することを特徴とする更新データ生成装置。
  11. 前記モジュールリストから被更新モジュールが特定され、
    前記生成手段は、前記モジュールリストのうち前記被更新モジュールを特定するために必要なデータを暗号化しないことを特徴とする請求項10記載の更新データ生成装置。
JP2016132534A 2016-07-04 2016-07-04 更新方法、プログラム、情報処理装置、及び更新データ生成装置 Pending JP2018005613A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016132534A JP2018005613A (ja) 2016-07-04 2016-07-04 更新方法、プログラム、情報処理装置、及び更新データ生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016132534A JP2018005613A (ja) 2016-07-04 2016-07-04 更新方法、プログラム、情報処理装置、及び更新データ生成装置

Publications (1)

Publication Number Publication Date
JP2018005613A true JP2018005613A (ja) 2018-01-11

Family

ID=60949392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016132534A Pending JP2018005613A (ja) 2016-07-04 2016-07-04 更新方法、プログラム、情報処理装置、及び更新データ生成装置

Country Status (1)

Country Link
JP (1) JP2018005613A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020177616A (ja) * 2019-04-17 2020-10-29 未來市股▲ふん▼有限公司 モバイルデバイス及びそのデータ共有方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020177616A (ja) * 2019-04-17 2020-10-29 未來市股▲ふん▼有限公司 モバイルデバイス及びそのデータ共有方法

Similar Documents

Publication Publication Date Title
KR102159540B1 (ko) 정보처리장치, 정보처리 시스템, 정보처리방법, 및 컴퓨터 프로그램
CN103460195B (zh) 用于安全软件更新的系统和方法
US8392709B1 (en) System and method for a single request—single response protocol with mutual replay attack protection
EP3258407B1 (en) Apparatus, method, and program for controlling profile data delivery
US20170318011A1 (en) User authentication method for enhancing integrity and security
JP2017021434A (ja) 情報処理装置及びその制御方法
JP6720581B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP4093723B2 (ja) 構造を持った文書に対する電子署名方法及び装置
US20150302202A1 (en) Program verification apparatus, program verification method, and program verification program
WO2014108993A1 (ja) 認証処理装置、認証処理システム、認証処理方法および認証処理プログラム
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP2016177551A (ja) 出力装置、プログラム、出力システム及び出力方法
CN110889131B (zh) 一种文件共享系统
CN108540447B (zh) 一种基于区块链的证书验证方法及系统
WO2019120038A1 (zh) 数据加密存储
KR20180046593A (ko) 펌웨어 서명 검증과 보안키 관리를 위한 사물인터넷 디바이스의 펌웨어 업데이트 시스템
JP2021152975A (ja) 情報処理装置、制御方法、およびプログラム
JP2013062650A (ja) データ検証装置、データ検証装置のデータ検証方法、データ検証プログラムおよびデータ検証システム
JP2018067807A (ja) 電子署名システム、電子署名クライアント、電子署名プログラム、サーバ及び電子署名方法
JP2018005613A (ja) 更新方法、プログラム、情報処理装置、及び更新データ生成装置
CN108616528B (zh) 一种云存储方法和系统
CN112749383A (zh) 软件认证方法和相关产品
US20150333909A1 (en) Information processing system and information processing method
CN110780900A (zh) 电力采集终端升级方法、系统和电力采集终端
JP7184198B2 (ja) 検証情報作成システム、検証情報作成方法、および、検証情報作成プログラム