JP2014505318A - 安全なソフトウェアの更新のためのシステム及び方法 - Google Patents

安全なソフトウェアの更新のためのシステム及び方法 Download PDF

Info

Publication number
JP2014505318A
JP2014505318A JP2013553630A JP2013553630A JP2014505318A JP 2014505318 A JP2014505318 A JP 2014505318A JP 2013553630 A JP2013553630 A JP 2013553630A JP 2013553630 A JP2013553630 A JP 2013553630A JP 2014505318 A JP2014505318 A JP 2014505318A
Authority
JP
Japan
Prior art keywords
update
key
checksum
encrypted
file
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.)
Granted
Application number
JP2013553630A
Other languages
English (en)
Other versions
JP6332970B2 (ja
Inventor
エイブラハム,ベスティン
ミラー,ケリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Healthcare Diagnostics Inc
Original Assignee
Siemens Healthcare Diagnostics 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 Siemens Healthcare Diagnostics Inc filed Critical Siemens Healthcare Diagnostics Inc
Publication of JP2014505318A publication Critical patent/JP2014505318A/ja
Application granted granted Critical
Publication of JP6332970B2 publication Critical patent/JP6332970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

安全なソフトウェアの更新は、ターゲットデバイスに、更新定義、秘密暗号キー及び公開署名キーを有する更新ユーティリティを提供する。実行可能更新プログラム、対称キーで暗号化されたプログラムのチェックサム、公開暗号キーで暗号化された暗号化対称キー、及び、秘密署名キーで準備されたデジタル署名を備える携帯型媒体で、ソフトウェアの更新パッケージは準備される。更新プロセスは、デジタル署名を認証し、秘密暗号キーを使用して対称キーを復号化し、そして、対称キーを使用してチェックサムを復号化する。新しいチェックサムが、実行可能更新プログラムのために生成され、復号化されたチェックサムと比較される。不一致が更新プロセスの間に検出される場合には、プロセスは中止される。それ以外の場合には、破損、ウイルス及び第三者の干渉に対して比較的高い保証度で、ソフトウェアの更新はインストール可能となる。

Description

連邦政府資金による研究開発の記載
発明の背景
本発明は、概略的に、インストール前にソフトウェアを検証するソフトウェアの更新機能に関する。より具体的には、インストール前の安全な検証を伴うソフトウェアの更新の実施に関する。
スタンドアロンベースで多くの場合作動する埋め込みデバイスを含む、ソフトウェアアプリケーションを実行する様々なタイプのデバイスは、それらの有用なサイクル寿命に渡ってソフトウェアの更新を提供される場合がある。デスクトップPC及び他の汎用コンピュータなどの、コンピュータデバイスの場合、更新は、通信リンクで通常は実行され、例えば、LAN、WAN、イントラネット又はインターネットへのネットワーク接続によって、提供される。通信リンクによって、コンピュータは、比較的容易にコンピュータにインストールすることができる更新を、ダウンロード又は検索することができる。
例えば埋め込みシステムに多くの場合存在する、計算エンジン及びソフトウェアを備えたスタンドアロンデバイスの場合には、ソフトウェアの更新は、物理的なコンポーネントによって実施される傾向にある。例えば、新たなソフトウェアの更新を備えるようにプログラムされたROMを交換することによって、いくつかのスタンドアロンデバイスは、更新される。別の手法としては、RAMカードを交換するか又は磁気若しくは電子メディアから半永久的なメモリにソフトウェアをロードする。場合によっては、新たなソフトウェアをアップロードするために、例えばネットワーク接続などの、通信リンクをデバイスに適用することによって、埋め込みシステムが更新される。
ソフトウェアの更新のインストールに関連して生じる1つの問題は、ソフトウェアのインストール及び実行前のソフトウェアの更新の検証である。例えば、ソフトウェアが破損、修正、又は、ウイルスに感染していないことを確認するために、検証は、多くの場合、行われる。ソフトウェアを検証する1つの普及している技術は、ソフトウェアの更新インストールのために使用される所与のファイルのチェックサムを計算することである。多くの場合、ソフトウェアの更新は、バイナリ又はイメージタイプのファイルの形であり、このファイルに、チェックサムアルゴリズムを容易に適用することができる。典型的なチェックサムアルゴリズムはMD5(メッセージ・ダイジェスト5)アルゴリズムであり、このアルゴリズムでは、アルゴリズムが適用されるファイルのブロックが、ファイル内容を表す高度に固有な数をもたらすように再帰的アルゴリズムに従って組み合わせられる。MD5は、時には暗号化ハッシュ関数と呼ばれ、128ビットハッシュ値又はチェックサムを提供する。異なるファイル内容が同じチェックサムをもたらす可能性は極めて低いため、MD5は、多くの場合、添付ファイルの安全性を確認するために、使用される。
ソフトウェアの更新ファイルに埋め込まれる破損、修正又は悪性コードといった、ソフトウェアの更新の際にまぬがれない潜在的なセキュリティ問題のために、ソフトウェアの更新用のソフトウェアファイルを更に安全なものとする技術が開発されている。セキュリティ対策としては、改竄又は破損に対してファイル内容及び/又はチェックサム値を保護する技術が挙げられる。このようなセキュリティ技術の1つは、ファイル内容及び/又はチェックサム値に対する暗号化の適用であり、例えば、データを暗号化及び復号化するために使用される公開キー/秘密キーのペアを用いることにより、達成される。このタイプの非対称暗号化は、公開キーを使用して暗号化されたデータを復号化するために、秘密キーが使用される。特定のデバイスのソフトウェアがこのタイプのセキュリティを使用して更新されることになった場合、秘密キーは更新されるデバイスに割り当てられるが、デバイスは、公開/秘密キーのペアのセキュリティ設計の目的を妨害する傾向にある。
データを安全なものとするために使用されることがある別のセキュリティ対策は、電子署名と共にデジタル証明書を獲得及び適用することである。ドキュメントが請求されたソースからのものであるという高いレベルの検証を、デジタル証明書は、提供する。通常は、ハッシュ値又はチェックサムといった、比較的固有の値をもたらすように、ドキュメント又はデータは処理される。非対称の公開/秘密キーのペア中からの署名者の秘密キーを使用して、ハッシュ値又はチェックサムが暗号化され、デジタル署名がもたらされる。デジタル証明書がデジタル署名を使用して作成され、送信しそしてオリジナルデータを引き出して遠隔地で認証することができるデジタル署名されたデータがもたらされ、データ用のハッシュ値又はチェックサムが計算され、公開/秘密キーのペア中からの公開キーを使用してデジタル署名が復号化されてオリジナルのハッシュ値又はチェックサムが獲得され、それから、計算及び伝送されたハッシュ値又はチェックサムを比較して、デジタル署名が有効であるかどうか判定され、そして、データのソース及び完全性が認証される。
しかしながら、デジタル証明書には、多くの場合、証明書及びその結果生じるデジタル署名の現時点での有効性を確認すべく、有効期限が提供される。加えて、デジタル証明書は、現時点で通用し、有効であることを確認するために、有効性が頻繁にチェックされ、このチェックは、継続的にデジタル証明書を維持するために、通信リンクを通じて頻繁に実行される。スタンドアロンデバイスの場合、デジタル証明書の使用は、一般的にコストが高く、高度なセキュリティ維持技術であり、この技術は、更新されることになるデバイスとの通信リンクを用いることによって、他のセキュリティギャップの導入を可能にする。
安全な更新環境を提供する別の手法は、更新用の信頼された環境を生成するためにカーネルレベルの保護を実施することである。しかしながら、この手法は、更新を可能にするためにソフトウェアの更新のためのセキュリティ機構がデバイスに配信されるという点で、上述したものと同じいくらかの欠点を有し、その結果、検査のためのセキュリティ機構が危険に晒される。加えて、いくらかのシステムは、多くの場合、フルカーネルモードにおいて作動するが、フルカーネルモードは、カーネルレベルの保護による信頼された環境を実施するために、通常は操作不可とされる。
安全なソフトウェアの更新のための更に別の選択肢は、ソフトウェアの更新を内蔵したハードウェア暗号化デバイスを利用することである。しかしながら、このタイプのセキュリティ実施は、更新されるデバイス又はオペレーティングシステムとの適合性の問題をもたらし、その結果、このようなハードウェア暗号化デバイスは、多くのシステムで使用できない。加えて、デジタル証明書又は非対称若しくは対称の暗号キーにアクセスすることによって、ハードウェア暗号化は通常動作し、このアクセスは、更新中のデバイスに提供される通信リンクに通常依存する。
一般的に、通信リンクの更なるコスト、複雑さ及び潜在的なセキュリティギャップを伴わないデバイスへのインストール前にソフトウェアの更新を検証するはっきりとそして確実に有用な技術は存在しない。
発明の概要
本発明によれば、ソフトウェアの更新が適用されるデバイスに有効な通信リンクに依存しない、安全なソフトウェアの更新機能が提供される。破損され、悪意のあるソフトウェアを備え、認可されず、又は、他のタイプの完全性/セキュリティ問題を有する可能性のある更新のインストールを防止するために、インストール前に、安全な機能を使用して、ソフトウェアの更新は確認及び検証される。ソフトウェアの更新は外付けのハードウェアデバイスを使用して適用することが可能で、例えば、ハードウェアデバイスを、更新されるデバイスの入出力ポートに取り付けることができる。外付けのハードウェアデバイスの例としては、シリアル又はパラレルポート接続可能デバイス、USBフラッシュドライブなどの、USBタイプデバイスだけでなく、ソフトウェアの更新パッケージを格納することが可能な他の任意の携帯型、接続可能ハードウェアデバイスが挙げられる。
例示的な実施形態によれば、ソフトウェアの更新を受け取るデバイスは、起動するとすぐに、外部に接続可能な記憶デバイス上の特定の位置で特定のデータを検索する更新ユーティリティを備える。更新ユーティリティが外部に接続された記憶装置の予め決められた位置に予め決められたデータを確認する場合には、確認及び検証プロセスは進行可能だが、適切なデータ及び位置を検出できない場合には更新ユーティリティは中止される。
本発明の例示的な実施形態によれば、確認及び検証プロセスは、ソフトウェアの更新で使用されるファイルのチェックサムを演算し、実行可能更新ファイルにチェックサムをパッケージ化することによって、実施される。次に、実行可能更新ファイルが、パッケージチェックサムを生成するために処理され、それから、パッケージチェックサムが、対称キー、すなわちセッションキーで暗号化される。次に、セッションキー自体が、公開キーで暗号化され、公開キーと相補的な秘密キーが、ソフトウェアの更新が適用されるデバイスに常駐する更新ユーティリティに埋め込まれる。それから、暗号化されたセッションキーが、デジタル署名をもたらすために、公開/秘密キーのペア中からの秘密キーによって、デジタル署名される。秘密キーは、例えば、ソフトウェアの更新製作者の側で安全に保持されることによって、秘密保持される。公開/秘密キーのペア中からの公開キーは、ソフトウェアの更新を受け取るデバイスに常駐の更新ユーティリティに埋め込まれる。
安全なパッケージチェックサム、安全なセッションキー及びデジタル署名は、すべて、XMLファイルなどのドキュメントに配置され、次に、ソフトウェアの更新を受け取るユニットに更新を行うために使用されるハードウェアデバイスに、ドキュメントが格納される。ソフトウェアの更新を行うために使用される実行可能及び/又はデータファイルも、ソフトウェアの更新を確認、検証及びインストールするために使用されるすべてのファイル及びデータを備える割当パッケージを提供する記憶デバイスに格納される。
本発明の例示的な実施形態によれば、デバイスに常駐するソフトウェアの更新ユーティリティを起動させることによって、デバイスへのソフトウェアの更新が実施される。更新ユーティリティは、接続された記憶デバイスを検索する。記憶デバイスには、更新を行うための特定のファイル及びデータが位置する。本発明の一態様によれば、更新ユーティリティは、記憶デバイスの明示的な位置で明示的なファイル又はデータを検出しようと試み、データ、ファイル又は位置の特定の条件が満たされない場合には、更新プロセスを中止することができる。格納されたデータ及びファイルが正確に検索され及び/又は位置づけられていると更新ユーティリティが判定する場合には、確認及び/又は検証プロセスを開始することができる。
確認及び/又は検証プロセスとしては、ドキュメントファイルからデジタル署名を読み取ること及び常駐更新ユーティリティに埋め込まれた公開キーを使用してデジタル署名のソースを検証することが挙げられる。検証は、特定の結果を獲得するために、デジタル署名を復号化すべく公開キーを用いて実施することが可能で、その結果は、テキストブロックの形とすることができ、この場合には、暗号化されたセッションキーに相当する。このように獲得されたデジタル署名の復号化の結果は、特定の値の集合と比較される。この場合には、特定の値の集合は、ドキュメントファイルから同様に読み出された暗号化されたセッションキーである。復号化の結果と値の集合が合致する場合には、更新の有効な及び認可されたソースが示され、そして、更新の進行が許可可能となる。更新ソースが、上記の技術による復号化の結果と値の集合の間の合致によって認証されない場合には、更新プロセスは終了する。
デジタル署名が認証され、更新のための認可されたソースが検証された場合には、続いて、更新ユーティリティは、暗号化されたセッションキーを読み出して、更新ユーティリティに埋め込まれた秘密キーを使用してセッションキーを復号化する。復号化されたセッションキーは、次に、パッケージチェックサム値を復号化するために用いられ、パッケージチェックサム値は、実行可能ファイルの完全性を評価するために、実行可能更新ファイルの算出されたチェックサム値と比較される。
本発明の一態様によれば、更新ユーティリティは、実行可能な更新のチェックサムを確認及び検証し、算出され及び読み出されたチェックサムが合致すると判定された場合には、実行可能ファイルに実行許可を与える。更新ファイルは、格納されたファイル及びデータのチェックサムの読み出しを実行し、データ及びファイルの完全性に検証するために、データ及びファイルの追加的なチェックサムを演算する。完全性が検証可能な場合には、ファイル及びデータは、更新のためにインストールされる。
本発明は、下記の添付図面を参照にして、以下でより詳細に説明される。
ソフトウェアの更新ターゲットデバイス及び記憶媒体のコンテンツを示したブロック図である。 ソフトウェアの更新プロセスの準備及びインストールをそれぞれ示す、フローチャートである。 ソフトウェアの更新プロセスの準備及びインストールをそれぞれ示す、フローチャートである。
発明の詳細な説明
本発明は、比較的高いセキュリティレベルによって、ソフトウェアを実行する予定のシステムに記憶させる前に、ソフトウェアの更新の完全性を確認する、システム及び方法を提供する。暗号化のための対称及び非対称のキー並びに更新を認証するデジタル署名を使用して、セキュリティは、実施される。対称キー暗号化方式は、保護されるデータ又はドキュメントを暗号化そして復号化するために、キーを使用する。対称キー暗号化及び復号化アルゴリズムは、非対称キーアルゴリズムより通常は効率的であり、その結果、複雑でなく及び/又は時間をかけずに、その実施が可能である。しかしながら、対称キーシステム方式によって利用可能なセキュリティレベルは、暗号化/復号化方法を使用する当事者間のキーの秘匿性に依存する。対称キーが所期の当事者以外に明らかとなる場合、対称キーを用いて暗号化されるいかなるデータ又はドキュメントのセキュリティも危険に晒される。
非対称キー暗号化及び復号化は、同一データ又はドキュメントを復号化するために使用されるのとは異なるキーを、データ又はドキュメントを暗号化するために使用する。多くの場合公開/秘密キーのペアと呼ばれ、公開キーは、受信当事者に安全に配信されることになるデータを暗号化するために通常は用いられる。所期の受信当事者は、暗号化のために使用される公開キーとペアになる秘密キーを所有する。秘密キーは受信当事者によって秘密に保持され、その結果、一般に秘密キーを所有する当事者だけが、公開キーを使用して暗号化されたメッセージを復号化することができる。公開/秘密キーのペア中からの秘密キーを所有する当事者に対してメッセージを安全に送信することができる誰にでも、公開キーを利用可能とすることができる。非対称キーセキュリティ方式によって維持可能なセキュリティレベルは、秘密キーの秘匿性の維持に依存する。
非対称キー暗号化のための別の適用としては、デジタル署名が挙げられ、多くの場合、デジタルセキュリティ証明書で使用される。この適用の場合には、データ又はドキュメントを送信するために使用されるかもしれないデータ、ドキュメント又はメッセージといったアイテムを暗号化、すなわち署名、するために、非対称公開/秘密キーのペア中からの秘密キーが、使用される。受信データの信頼性の検証を望んでいる当事者は、署名を検証して、データのソースを確認するために、合致した公開キーを適用することができる。このタイプのデジタル証明書セキュリティは、署名をする当事者によって使用される秘密キーの秘匿性に依存する。
対称及び非対称キーの生成は、適切にドキュメント化され、当業者に公知であるため、生成についての更に詳細な説明は省略される。本発明の例示的な実施形態によれば、異なったシステムへの様々なソフトウェアの更新の適用で、暗号化及び復号化のために、単一の対称キーを、生成及び使用可能である。代替として、又は加えて、それぞれのソフトウェアの更新及び/又は更新されるそれぞれのシステムのために、異なる対称キーを生成することができる。同様に、安全なソフトウェアの更新を配信するために、単一の非対称公開/秘密キーのペアを生成することができ、ペア中からの秘密キーが、ソフトウェアの更新ソース又は発信者によって、安全に、秘密に保持される。加えて、安全なソフトウェアの更新のために、1つ以上の異なった公開/秘密非対称キーのペアを生成することができ、ペア中からの秘密キーが、ソフトウェアの更新が適用されることになるデバイスに提供される。いずれの場合でも、公開/秘密キー及び対称キーは、固有のものとなるように、生成及び維持されて、メンテナンス及び管理業務を支援することができ、又は、ソフトウェアの更新若しくはデバイスに対して別個のものとなるように生成及び保持され、例えば、トラッキングデバイス及び更新を支援することができる。
ここで図1を参照にすると、安全なソフトウェアの更新を実施するシステム100のブロック図が示される。システム100は、ソフトウェアの更新ターゲットデバイス110及び更新関連のプログラムファイルを格納するソフトウェアの更新媒体120を備える。デバイス110は、プロセッサを有するコンピューティングデバイス、及び、デバイス110の様々な操作機能を実行するために使用されるソフトウェア並びにデータを格納する1つ以上のタイプの搭載記憶装置として、通常実施される。デバイス110に格納されるソフトウェアの一部として、更新ユーティリティ112が、提供される。例えば、ID及びパスワードによって維持可能な一定のアクセス権を有する管理者によって等、安全な状況下で開始されるように、ユーティリティ112は、実施可能である。ユーティリティ112は、更新プロセスの一部として公知の状態にデバイス110を設定するために動作することができ、ソフトウェアの更新に備えて他の管理機能を実行することができる。例えば、デバイス110のプロセッサの実行前にデバイス110のメモリにロードされるかもしれない、実行可能更新プログラムに実行許可を与える前に更新を検証するために、ユーティリティ112は、所期のソフトウェアの更新のセキュリティ評価を行うことができる。
ユーティリティ112は、ソフトウェアの更新の初期処理のために予め設定された更新定義114を備えるように、実施される。また、ユーティリティ112は、公開/秘密非対称キーのペア中からの秘密復号キー116の他に、公開/秘密非対称キーのペア中からの公開署名キー118を備える。ユーティリティ112のコンポーネントは、ソフトウェアの更新のセキュリティ、検証及び確認に関与するために、各々、順番に使用される。例えば、媒体120のコンテンツが適切に構成されているかを判定するために、ソフトウェアの更新の初期プロセスの間、更新定義114は使用される。
更新定義114は、ソフトウェアの更新の開始に応じて、ユーティリティ112が予想した特定のデータの記憶のための媒体120上の特定の記憶位置を示すことができる。例えば、更新定義114は、フォルダ位置、ファイル位置、ファイルのデータ位置、又は、媒体120のハードウェア特性若しくはアクセス媒体120に使用されるハードウェア機構によって定義されるデータ位置の1つ以上を特定するリテラル又はハードコード化識別子を備えることができる。例示的な実施形態によれば、媒体120は、ファイルアロケーションテーブル(FAT)ファイルシステム又はNTFS(ニューテクノロジー・ファイルシステム)ファイルシステムによって編成することができる。このようなFAT又はNTFSファイルシステムによって、更新定義114は、ファイル名若しくは符号及び/又はファイル若しくは符号が位置するディレクトリ若しくはフォルダを定義することができる。ユーティリティ112は、媒体120のコンテンツが予想通りであるかを判定する最初の試験として、記憶媒体120に含まれる特定のファイル名又は符号を、検索することができる。一例として、ユーティリティ112は、媒体120のコンテンツを承認するかを判定するために、更新定義114に従って、update.exe名を有するファイル、又は、XMLファイルの<update1>のタグを、検索することができる。したがって、更新定義114の使用は、第1セキュリティ閾値を形成し、ソフトウェアの更新の完全性を確認する一助となる。ユーティリティ112が更新定義114によって示されるような適切な位置に適切なデータを見つけ出す場合には、ソフトウェアの更新プロセスを継続することができ、他の場合には、終了することになる。
ユーティリティ112は、復号/署名キー116、118にアクセスする。このキーは、安全なソフトウェアの更新で使用される公開/秘密非対称キーのペア中からの半分を各々形成する。キー116は、公開/秘密非対称暗号/復号キーのペア中からの秘密復号キーで、キー118は、公開/秘密非対称署名キーのペア中からの公開署名キーである。ソフトウェアの更新用の媒体120に提供される情報を復号化及び認証するために、キー116、118は、それぞれ用いられる。媒体120に格納される様々なコンポーネントは、キー116、118に対応している公開/秘密キーのペア中からの残りの半分によって、暗号化される。したがって、インストール前にソフトウェアの更新の態様を検証するために、キー116、118は、媒体120に提供される情報を復号化、ロック解除又は認証するべく、ユーティリティ112によって使用可能である。
媒体120は、ソフトウェアの更新のセキュリティをサポートするために使用されるアイテムを提供する更新ドキュメント122を備える。例えば、更新ドキュメント122は、暗号化された対称、すなわちセッション、キーを備えるXMLファイルとして実施することができ、公開/秘密非対称暗号/復号キーのペア中からの公開暗号キーで暗号化される。暗号化キー124は、セキュリティ機構をソフトウェアの更新に提供するために用いられるセッションキーを獲得すべく、秘密キー116を使用して、復号化することができる。加えて、更新ドキュメント122はデジタル署名126を提供する。デジタル署名は、暗号化対称キー124及び公開/秘密非対称署名キーのペア中からの秘密署名キーで形成される。デジタル署名126は、対応する公開/秘密非対称署名キーのペア中からの公開署名キー118を使用して認証されるように、設計される。
更新ドキュメント122に加えて、媒体120は、所期のソフトウェアの更新を実施するために使用される更新実行可能ファイル128を格納する。媒体120は、また更新ファイル130を備える。この更新ファイルは、安全なソフトウェアの更新プロセスで使用することが可能な0個以上のファイルに相当する。例示的な実施形態によれば、一度安全なソフトウェアの更新の検証プロセスが完了すると、更新実行可能ファイル128は実行制御される。ソフトウェアの更新の検証後、デバイス110上にソフトウェアの更新をインストールするために、更新実行可能ファイル128は、実行することができる。
更新実行可能ファイル128及び/又は更新ファイル130は、ソフトウェアの更新を開始及び検証するためにユーティリティ112によって使用される新しいバージョンのコンポーネントを備えてもよい。例えば、新しいバージョンの更新定義114、秘密暗号キー116及び/又は公開署名キー118を、場合によっては新しいバージョンのユーティリティ112と共に、インストール及び更新プロセスの間に、デバイス110にインストールすることができる。インストール及び更新プロセスは、将来のソフトウェアの更新のための検証を開始及び実行する固有のユーティリティ112を提供可能にすることによって、将来の日付での更なる更新のためのデバイス110を準備することができる。
ここで図2を参照すると、フローチャート200に、本発明に従って安全なソフトウェアの更新を準備するためのプロセスが示される。ブロック210に示されるように、プロセスは、本明細書では暗号キーのペア及び署名キーのペアと称される2つの公開/秘密非対称のキーのペア中からの生成又は取得から開始される。いずれのキーのペアも暗号及び/又はデジタル証明のために使用できるという点で、暗号及び署名キーのペアは抽象的に扱われる。本解説では、暗号キーのペアは暗号化目的のために使用され、署名キーのペアはデジタル証明書生成及び認証のために使用される。
暗号及び署名キーのペアが利用可能となった後、様々な更新コンポーネントを備える更新ユーティリティが、ソフトウェアの更新によって更新されるターゲットシステム又はデバイスに提供される。ブロック212に示されるように、更新コンポーネントは、更新定義、秘密復号キー及び公開署名キーを備えることができる。更新定義、秘密復号キー及び公開署名キーは、図1のユーティリティ112に示される。ターゲットデバイスに提供されたこれらのコンポーネントは、デバイスに提示されるソフトウェアの更新を検証、確認及び認証するために、用いられる。ターゲットデバイスに確立された更新ユーティリティ及びコンポーネントを利用して、安全なソフトウェアの更新を、更新ユーティリティ及びコンポーネントに基づいて実施することが可能となる。
安全なソフトウェアの更新は、所与のデバイスへの更新アプリケーション用の所与の媒体プラットホームに割り当てられた更新パッケージで構成することができる。ブロック214に示されるように、ソフトウェアの更新インストールプロセスで使用されることになる各々のファイルのためのチェックサム値の演算から、更新パッケージは、生成開始される。比較的高いレベルの完全性の検証を更新ファイルに提供するために、MD5アルゴリズムを使用して、チェックサムを生成することができる。
ブロック216に示されるように、一度チェックサムが演算されると、実行可能更新ファイルは生成され、チェックサムが実行可能更新ファイルに埋め込まれる。一度更新の完全性が本発明に従って検証されると、埋め込まれたチェックサムは、ターゲットデバイスに更新をインストールするために使用される実行可能イメージの一部を形成する。次に、ブロック218に示されるように、実行可能更新ファイルを処理して、チェックサムを生成する。実行可能更新ファイルの完全性の比較的高いレベルの保証を獲得するために、ここでもまた、MD5アルゴリズムを使用して、チェックサムを生成することができる。
プロセスは、ブロック220に示されるように、セッションキーの生成又は取得を継続する。セッションキーは、対称暗号キーである、生成中のソフトウェアの更新に固有であるか、又は、所与のデバイス若しくはソフトウェアの更新のために一般的であるように、セッションキーは、生成することができる。ブロック222に示されるように、次に、セッションキーは、実行可能更新ファイルのチェックサムを暗号化するために用いられる。ブロック224に示されるように、次に、セッションキー自体が、公開/秘密暗号/復号キーのペア中からの公開暗号キーを使用して、暗号化され、暗号化されたセッションキーに相当する第1データブロックが形成される。特定のデバイスへの追加的な更新ができるようにするため、及び、セッションキーの暗号化のためのソースの維持を確実にするために、公開暗号キーは、ソフトウェアの更新開発者又は発信者に保持される。
ブロック226に示されるように、ソフトウェアの更新パッケージの生成のためのプロセスは、暗号化されたセッションキーに相当する第1データブロックから、デジタル署名の生成を継続する。デジタル署名は、公開/秘密署名キーのペア中からの秘密署名キーで生成され、この秘密署名キーも、ソフトウェアの更新提供者又は発信者によって保持される。暗号化されたセッションキーを認証するために使用されるデジタル署名が有効なままであることを確実にするために、秘密署名キーは、ソフトウェア発信者又は提供者に秘密に保持される。暗号化されたセッションキーに相当する第1データブロックは、秘密署名キーを使用して暗号化され、デジタル署名が作成される。
一度、暗号化された実行可能チェックサム、暗号化されたセッションキー及びデジタル署名が生成されると、ブロック228に示されるように、ソフトウェアの更新プロセスの一部として使用されるパッケージドキュメントに、アイテムが配置される。暗号化された実行可能チェックサム、暗号化されたセッションキー及びデジタル署名は、安全な更新完全性検証プロセスを逆転させるために、チェックサム、復号化又は認証アルゴリズムによって読み出し及び使用することができるXMLタグ又は符号化データのブロックの形をとることができる。例示的な実施形態によれば、暗号化されたチェックサム、暗号化されたセッションキー及びデジタル署名は、ソフトウェアの更新検証プロセスで用いられるXMLタグとして、XML形式にされたファイルに配置される。
安全なソフトウェアの更新を生成するためのプロセスは、例えば、携帯型記憶媒体を使用してターゲットデバイス位置へ配布するための更新パッケージを生成することで終わる。更新パッケージは、前もって生成されたパッケージドキュメントを備え、パッケージドキュメントは、XMLファイル、実行可能更新ファイル及びソフトウェアの更新を実行するために使用されることになるファイルとすることができる。生成された更新パッケージは、ソフトウェアの更新を受け取ることになるターゲットデバイスのユーティリティ及びコンテンツを引き立たせ、その結果、ターゲットデバイスユーティリティ及び更新パッケージの組み合わせは、安全なソフトウェアの更新を実施するために、互いに機能することが可能となる。
ここで図3を参照にすると、フローチャート300に、本発明によるソフトウェアの更新インストールプロセスが示される。ブロック310に示されるように、フローチャート300に示されるソフトウェアの更新プロセスは、ターゲットシステム又はデバイスへの記憶媒体の接続又は取り付けから始まる。更新記憶媒体は、検証されてターゲットデバイスにインストールされることになる、安全なソフトウェアの更新を実行するための更新パッケージを備える。本発明の例示的な実施形態によれば、ソフトウェアの更新プロセスはターゲットデバイスから開始されるが、記憶媒体に格納された実行可能ソフトウェアによって更新を開始させることができる。ターゲットデバイスに提供されるソフトウェアの更新オプションを管理者権限を有するユーザによって選択可能とすることにより、安全な更新プロセスの開始は、ブロック312に示されるように、例えば、ターゲットデバイスによって実施可能である。ソフトウェアの更新オプションは、例えば、図1に示されるように、安全なソフトウェアの更新を実施するためのコンポーネントと共に、ターゲットデバイスに提供される更新ユーティリティを起動させることができる。
安全な更新プロセスの開始に応じて、ターゲットデバイスは、コンテンツが予想通りであることを検証するために、記憶媒体のコンテンツの所定のチェックを実行する。記憶媒体に配置されるファイルのコンテンツ及び性質に関する予想は、ターゲットデバイスに前もって提供された更新定義によって定義される。例えば、更新定義は、記憶媒体に配置されたファイルの一定のタグ又は識別子を特定することができ、記憶媒体の様々なタグ、識別子又はファイルの個々の位置を特定することができる。更新された定義による記憶媒体のコンテンツのチェックは、フローチャート300のブロック314に示される。判定ブロック316に示されるように、記憶媒体のコンテンツが更新定義で特定される予想と合致しない場合には、判定ブロック316の「いいえ」枝路を介して到達するブロック318に示されるように、ソフトウェアの更新は中止される。ソフトウェアの更新をインストールの前に中止する場合には、ソフトウェアの更新インストールが中止又は失敗したというメッセージを、ユーザに伝えることができる。
記憶媒体のコンテンツが更新定義によって特定される予想と適合する場合には、記憶媒体コンテンツはこの閾値テストを通過したと考えられ、判定ブロック316から出る「はい」枝路によって示されるように、ソフトウェアの更新インストールプロセスを継続することができる。ブロック320に示されるように、ソフトウェアの更新インストールプロセスは、更新パッケージの認証を可能にするために、パッケージドキュメントからデジタル署名及び暗号化されたセッションキーに相当する第1データブロックの読み出しを継続する。
デジタル署名が公開署名キーによって処理される。公開署名キーは、デジタル署名によって保護されているデータのソース及び完全性の認証ができるように、ターゲットデバイスに予め提供される。公開署名キーは、デジタル署名から獲得されるような、暗号化されたセッションキーに相当する第2データブロックを獲得すべく、デジタル署名を復号化するために使用される。次に、第2データブロックが、暗号化されたセッションキーに相当するパッケージドキュメントから読み出された第1データブロックと比較される。公開署名キーでデジタル署名を復号化して、その結果獲得された第2データブロックを、デジタル署名を認証するために第1データブロックと比較するステップは、デジタル署名認証専用のソフトウェアモジュールで、任意に実行することができる。認証操作は、フローチャート300のブロック322に示され、ソフトウェアの更新のソースが検証されるかどうかを示す結果を伴う。
判定ブロック324は、デジタル署名が認証されるかどうかの判定を示す。デジタル署名が認証されない場合には、例えば、算出及び処理されたハッシュ値が合致しないことを意味し、判定ブロック324からブロック318への「いいえ」枝路によって示されるように、ソフトウェアの更新は中止される。デジタル署名が認証される場合には、判定ブロック324からの「はい」枝路で示されるように、ソフトウェアの更新インストールプロセスは継続する。
デジタル署名が適切に認証される場合には、ブロック328に示されるように、安全なソフトウェアの更新プロセスは、暗号化されたセッションキーの復号化を継続する。秘密復号キーを使用して、暗号化されたセッションキーは、復号化される。秘密復号キーは、更新ユーティリティの一部としてターゲットデバイスに前もって提供される。ブロック340に示されるように、実行可能更新ファイルの暗号化されたチェックサムを読み出し、ブロック342に示されるように、復号化されたセッションキーによって実行可能チェックサムを復号化することにより、プロセスは継続する。したがって、チェックサムが改竄されなかった又は損なわれなかったという比較的高いレベルの保証によって、実行可能チェックサムは、実行可能更新ファイルの完全性を検証するために、利用可能となる。その結果、ソフトウェアの更新が、損なわれず、又は、いかなるウイルスも含まず、又は、発信開発者若しくは提供者以外のソースから到着していないという高い信頼度で、ソフトウェアの更新の確認及び検証を、ターゲットデバイスで、続行することができる。
ブロック344に示されるように、更新実行可能ファイルの検証は、実行可能ファイルのチェックサムのローカル生成を継続する。ローカルチェックサムは、上記したようにもたらされた、更新パッケージからのチェックサムと比較され、実行可能更新ファイルの完全性を判定する。チェックサムが合致するかの判定は、判定ブロック346に示される。チェックサムが合致しない場合には、判定ブロック346からブロック318への「いいえ」枝路によって示されるように、ソフトウェアの更新インストールは中止される。
チェックサムが合致する場合には、判定ブロック346からブロック348への「はい」枝路によって示されるように、実行可能更新ファイルに実行許可を与えることができる。実行可能更新ファイルに実行許可が与えられるまで、フローチャート300に示される処理は、ソフトウェアの更新を確認及び検証するために記憶媒体からデータを読み出しそしてデータを処理するターゲットデバイスによって実施される。一度、実行可能更新ファイルに実行制御許可が与えられると、実行可能更新ファイルは、ターゲットデバイスのメモリにロードされ、更新インストールを実施するために搭載プロセッサによって実行可能となる。
実行可能更新ファイルによって行われる操作の1つは、ブロック350に示されるように、更新ファイルの完全性に確実にするために、更新パッケージに含まれる各々のファイルのチェックサムをローカルで生成することである。チェックサムは、MD5アルゴリズムを使用して生成可能であり、実行可能更新ファイルに埋め込まれたチェックサムと比較され、チェックサムが合致するか判定される。チェックサムが合致するかを判定するための、ローカルで生成されたチェックサム値と埋め込まれたチェックサム値の比較は、判定ブロック352に示される。チェックサムのいずれかが合致しない場合には、判定ブロック352からブロック318への「いいえ」枝路によって示されるように、ソフトウェアの更新インストールは中止される。チェックサムが合致する場合には、ブロック354へと誘導される判定ブロック352の「はい」枝路で示されるように、インストール設定に従ってターゲットデバイスにソフトウェアの更新をインストールするために、実行可能更新ファイルは更新ファイルを処理する。本発明の例示的な実施形態によれば、更新されるターゲットデバイスにソフトウェアをもたらすために、ターゲットデバイスの永続的記憶装置に更新ファイルから得たデータを格納すべく、実行可能更新ファイルは実行可能である。
本発明はターゲットデバイスを一般にコンピュータデバイスとして説明するが、発明されたシステム及び方法は、コンピュータデバイスに関連して必ずしも案出されないターゲットデバイス、システム又は方法で、一般に実施可能である。本発明のシステム及び/又は方法を利用可能なこのようなターゲットの例としては、テレビ、携帯電話、自動車車両、医療機器だけでなく、データベースアプリケーション又は埋め込みシステムといった、ソフトウェアの更新の典型的なターゲットが挙げられる。一般に、ソフトウェアを実行する任意のタイプの処理システムによって、発明されたシステム又は方法は適用可能である。
本明細書に説明される操作は、全く例示的であり、順不同である。更に、操作は、適切な場合に任意の順序で使用可能で、部分的に使用可能である。上記の実施形態を考慮して、発明されたシステム、デバイス、方法及び/又は用途は、コンピュータシステムに転送又は格納されるデータに関係した様々なコンピュータ実施操作を利用できることを理解すべきである。これらの操作は、物理量の物理的操作を必要とする。必ずではないが、通常、これらの量は、格納、転送、組み合わせ、比較、また、操作可能な電気、磁気、光信号といった形をとる。
本発明の一部を形成する本明細書で説明をした操作のいくらかは、有用な機械操作である。本発明は、また、これらの操作を実行するデバイス又は装置に関する。所要の目的のために装置を特別に構成することができ、又は、装置を、コンピュータに格納されるコンピュータプログラムによって選択的に起動若しくは構成される汎用コンピュータとすることができる。特に、下で説明される、1つ以上のコンピュータ可読媒体に接続された1つ以上のプロセッサを利用する様々な汎用機を、本明細書の教示に従って書き込まれたコンピュータプログラムによって、使用することができるが、必要な操作を行う、より専門的な装置を構成するほうがより好都合である。
発明されたシステム及び方法は、また、コンピュータ可読媒体上のコンピュータ可読コードとして実施することができる。コンピュータ可読媒体はデータを格納することができる任意のデータ記憶デバイスであり、データは、その後、コンピュータシステムによって読み出し可能である。コンピュータ可読媒体の例としては、ハードディスク、読み取り専用メモリ、ランダムアクセスメモリ、CD―ROM、CD―R、CD―RW、磁気テープ並びに他の光学及び非光学データ記憶デバイスが挙げられる。コンピュータ可読コードが分散型で格納及び実行されるように、コンピュータ可読媒体を、ネットワーク接続コンピュータシステムに分散することもできる。
上記の説明は、本発明の特定の実施形態を目的としている。しかしながら、他の変形及び修正が、これらの利点の一部又は全部の達成と共に、説明された実施形態に行われてもよいことは、明らかである。本明細書において説明された手順、プロセス及び/又はモジュールは、プログラム命令、ファームウェア又はこれらの組み合わせを有するコンピュータ可読媒体として実施された、ハードウェア、ソフトウェアで実現することができる。例えば、メモリ又は他の記憶デバイスからのプログラム命令を実行するプロセッサによって、本明細書において説明された機能を、実行することができる。したがって、添付の請求の範囲の目的は、本発明の真の趣旨及び範囲内にあるすべてのこのような変形及び修正を網羅することである。

Claims (28)

  1. ターゲットデバイスにソフトウェアの更新を実施するシステムであり、
    ソフトウェアの更新の検証を行うために記憶装置の更新コンポーネントにアクセスするように動作する更新ユーティリティと、
    第1の非対称暗号キーのペア中からの第1暗号キーと、
    チェックサムアルゴリズムと、
    を実施するために、前記記憶装置に接続され、前記記憶装置に格納された命令を読み出しそして実行するように操作可能なプロセッサを含み、
    前記更新ユーティリティが、暗号化されたチェックサム及び更新プロセスファイルを備える更新データを受け取るように動作し、前記暗号化されたチェックサムが、前記更新プロセスファイル及び前記第1の非対称暗号キーのペア中からの第2暗号キーを使用して生成され、
    前記更新ユーティリティが、第1チェックサムを獲得するために前記第1暗号キーを使用して前記更新データを処理するように更に動作し、
    前記更新ユーティリティが、第2チェックサムを生成して、前記第1チェックサムが前記第2チェックサムと合致する場合には前記更新プロセスファイルに実行許可を与えるために、前記チェックサムアルゴリズムを使用して前記更新プロセスファイルを処理するように更に動作するシステム。
  2. 第2の非対称暗号キーのペア中からの第1署名キーを更に含み、前記更新ユーティリティが、前記第2の非対称暗号キーのペア中からの第2署名キーで生成されたデジタル署名の受け取りに応答して、前記第1署名キーを使用して前記デジタル署名を認証する、請求項1に記載のシステム。
  3. 前記第1暗号キーが、公開/秘密キーのペア中からの秘密キーである、請求項1に記載のシステム。
  4. 前記第1署名キーが、公開/秘密キーのペア中からの公開キーである、請求項2に記載のシステム。
  5. 前記更新データを記述する更新定義を更に含み、前記更新データが前記更新定義と適合しない場合には、前記更新ユーティリティが前記ソフトウェアの更新を中止するように動作する、請求項1に記載のシステム。
  6. 前記プロセッサに選択的に接続され、前記ソフトウェアの更新のための前記更新データ及び前記更新プロセスファイルを格納するように動作する着脱可能な外付け記憶デバイスを更に含む、請求項1に記載のシステム。
  7. 前記更新データが、
    暗号化されたセッションキーを更に含み、前記セッションキーが対称暗号キーで、前記第2暗号キーを使用して暗号化され、
    前記暗号化されたチェックサムが、前記セッションキーによって暗号化される、
    請求項6に記載のシステム。
  8. 前記更新ユーティリティが、前記セッションキーを獲得するために前記第1暗号キーを使用して前記暗号化されたセッションキーを復号化し、前記第1チェックサムを獲得するために前記セッションキーで前記暗号化されたチェックサムを復号化するように、更に動作する、請求項7に記載のシステム。
  9. 前記更新データが、前記暗号化されたセッションキー及び第2の非対称暗号キーのペア中からの秘密署名キーを使用して生成されたデジタル署名を更に含む、請求項7に記載のシステム。
  10. ソフトウェアの更新を実施するための固定更新データを格納する記憶デバイスであり、
    前記固定更新データが、
    ターゲットシステムに前記ソフトウェアの更新をインストールするために実行可能な更新ファイルと、
    対称暗号キーであるセッションキーを使用して暗号化される暗号化されたチェックサムであって、前記更新ファイルから演算されたチェックサムと、
    非対称暗号キーのペア中からの第1暗号キーで前記セッションキーを暗号化することによって生成された暗号化されたセッションキーと、
    を含む記憶デバイス。
  11. 前記第1暗号キーが、公開/秘密キーのペア中からの公開キーである、請求項10に記載のデバイス。
  12. 前記暗号化されたセッションキー及び非対称暗号キーのペア中からの秘密キーを使用して生成されたデジタル署名を更に含む、請求項10に記載のデバイス。
  13. 前記暗号化されたチェックサム、前記暗号化されたセッションキー及び前記デジタル署名を備える更新ドキュメントを更に含む、請求項12に記載のデバイス。
  14. 前記更新ドキュメント及び更新ファイルが、記憶デバイスに、予め決められた各名称及び各位置で提供される、請求項13に記載のデバイス。
  15. 前記更新ドキュメントが、XML形式のファイルである、請求項14に記載のデバイス。
  16. 数値演算プロセッサを備えるターゲットデバイス上のソフトウェアの更新を実施する方法であって、
    第1の非対称暗号キーのペア中からの第1暗号キーを使用して生成された暗号化されたチェックサム及び前記ソフトウェアの更新を設定するための更新プロセスファイルを備える更新データを受け取るステップと、
    第1チェックサムを獲得するために、前記第1の非対称暗号キーのペア中からの第2暗号キーを使用して前記更新データを処理するステップと、
    チェックサムアルゴリズムを使用して前記更新プロセスファイルから第2チェックサムを演算するステップと、
    前記第1チェックサムが前記第2チェックサムと合致する場合には前記更新プロセスファイルに実行許可を与えるステップと、
    を含む方法。
  17. 前記暗号化されたチェックサム及び第2の非対称暗号キーのペア中からの第1署名キーを使用して形成されたデジタル署名を受け取るステップと、
    前記第2の非対称暗号キーのペア中からの第2署名キーを使用して前記デジタル署名を認証するステップと、
    を更に含む、請求項16に記載の方法。
  18. 前記第2暗号キーが、公開/秘密キーのペア中からの秘密キーである、請求項16に記載の方法。
  19. 前記第2署名キーが、公開/秘密キーのペア中からの公開キーである、請求項17に記載の方法。
  20. 前記更新データを記述する更新定義と前記更新データの各特性を比較するステップと、
    前記各特性が前記更新定義と適合しない場合には前記ソフトウェアの更新を中止するステップと、
    を更に含む、請求項16に記載の方法。
  21. 対称暗号キーである暗号化されたセッションキーを受け取るステップであって、前記暗号化されたセッションキーが、前記第1暗号キーを使用して暗号化されるステップと、
    前記セッションキーを獲得するために前記第2暗号キーを使用して前記暗号化されたセッションキーを復号化するステップと、
    前記第1チェックサムを獲得するために前記セッションキーで前記暗号化されたチェックサムを復号化するステップと、
    を更に含む、請求項16に記載の方法。
  22. 前記暗号化されたセッションキー及び第2の非対称暗号キーのペア中からの秘密署名キーを使用して生成されたデジタル署名を受け取るステップと、
    前記第2の非対称暗号キーのペア中からの公開署名キーを使用して前記デジタル署名を認証するステップと、
    を更に含む、請求項21に記載のシステム。
  23. ソフトウェアの更新を実施するためにソフトウェアの更新パッケージを準備して、記憶デバイスに固定形式で格納させる方法であって、
    ターゲットシステムに前記ソフトウェアの更新をインストールするために実行可能な更新ファイルを準備するステップと、
    前記更新ファイルのチェックサムを演算するステップと、
    対称暗号キーであるセッションキーを使用して前記チェックサムを暗号化するステップと、
    第1の非対称暗号キーのペア中からの第1暗号キーによって前記セッションキーを暗号化するステップと、
    前記記憶デバイスに前記更新ファイル、前記暗号化されたチェックサム及び前記暗号化されたセッションキーを格納するステップと、
    を含む方法。
  24. 前記第1暗号キーが、公開/秘密キーのペア中からの公開キーである、請求項23に記載の方法。
  25. 前記暗号化されたセッションキー及び第2の非対称暗号キーのペア中からの秘密キーを使用してデジタル署名を生成するステップを更に含む、請求項23に記載の方法。
  26. 前記記憶デバイスの更新ドキュメントに前記暗号化されたチェックサム、前記暗号化されたセッションキー及び前記デジタル署名を格納するステップを更に含む、請求項25に記載の方法。
  27. 前記更新ドキュメント及び更新ファイルを、前記記憶デバイスに、予め決められた各名称及び各位置で提供するステップを更に含む、請求項26に記載の方法。
  28. 前記更新ドキュメントが、XML形式のファイルである、請求項27に記載の方法。
JP2013553630A 2011-02-11 2012-02-13 安全なソフトウェアの更新のためのシステム及び方法 Active JP6332970B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161441843P 2011-02-11 2011-02-11
US61/441,843 2011-02-11
US201161523491P 2011-08-15 2011-08-15
US61/523,491 2011-08-15
PCT/US2012/024801 WO2012109640A2 (en) 2011-02-11 2012-02-13 System and method for secure software update

Publications (2)

Publication Number Publication Date
JP2014505318A true JP2014505318A (ja) 2014-02-27
JP6332970B2 JP6332970B2 (ja) 2018-05-30

Family

ID=46639238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013553630A Active JP6332970B2 (ja) 2011-02-11 2012-02-13 安全なソフトウェアの更新のためのシステム及び方法

Country Status (6)

Country Link
US (1) US9276752B2 (ja)
EP (1) EP2659373B1 (ja)
JP (1) JP6332970B2 (ja)
CN (1) CN103460195B (ja)
ES (1) ES2902644T3 (ja)
WO (1) WO2012109640A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503153A (ja) * 2014-11-28 2018-02-01 トムソン ライセンシングThomson Licensing アプリケーションのインテグリティを確かめることを提供する方法及びデバイス
JP2018503157A (ja) * 2014-11-28 2018-02-01 トムソン ライセンシングThomson Licensing アプリケーション整合性の検証を提供する方法及びデバイス
JP2018117342A (ja) * 2016-12-08 2018-07-26 ジーエヌ ヒアリング エー/エスGN Hearing A/S 聴覚装置、ユーザ付属装置、および聴覚装置設定を更新するための方法

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249259B1 (en) * 1999-09-07 2007-07-24 Certicom Corp. Hybrid signature scheme
JP5553670B2 (ja) * 2010-04-19 2014-07-16 キヤノン株式会社 管理装置、その制御方法およびプログラム
US9396325B2 (en) * 2011-03-21 2016-07-19 Mocana Corporation Provisioning an app on a device and implementing a keystore
DE102011107795A1 (de) 2011-07-15 2013-01-17 Fresenius Medical Care Deutschland Gmbh Verfahren und Vorrichtung zur entfernten Überwachung und Steuerung von medizinischen Fluidmanagementgeräten
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US9165163B2 (en) * 2012-11-30 2015-10-20 Broadcom Corporation Secure delivery of processing code
KR20150098635A (ko) 2013-02-04 2015-08-28 샵킥, 인크. 블루투스 및 하이브리드―모드 송신기들을 이용한 존재 검출
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
NL2010454C2 (en) * 2013-03-14 2014-09-16 Onlock B V A method and system for authenticating and preserving data within a secure data repository.
US9877082B2 (en) * 2013-03-15 2018-01-23 Echostar Technologies Llc Addressable realtime messaging for television receivers
US9137016B2 (en) * 2013-06-20 2015-09-15 Hewlett-Packard Development Company, L.P. Key pair updates based on digital signature states
WO2015013474A2 (en) * 2013-07-25 2015-01-29 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
US9253200B2 (en) * 2013-10-28 2016-02-02 GM Global Technology Operations LLC Programming vehicle modules from remote devices and related methods and systems
US9374355B2 (en) 2013-10-28 2016-06-21 GM Global Technology Operations LLC Programming vehicle modules from remote devices and related methods and systems
EP2884692B1 (en) 2013-12-13 2020-05-20 Nxp B.V. Updating software on a secure element
CN104915591A (zh) * 2014-03-10 2015-09-16 联想(北京)有限公司 一种数据处理方法及电子设备
FR3023400A1 (fr) * 2014-07-04 2016-01-08 Schneider Electric Ind Sas Procede de gestion de l'installation d'une application sur un dispositif electronique
US9325506B2 (en) 2014-09-23 2016-04-26 Red Hat, Inc. Cryptographically enforcing strict separation of environments
US9698825B2 (en) 2014-10-22 2017-07-04 Quest Software Inc. Fast update of data packet checksums
US10489145B2 (en) 2014-11-14 2019-11-26 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
EP3026559A1 (en) * 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
EP3026560A1 (en) * 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US10089099B2 (en) * 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10158953B2 (en) * 2015-07-02 2018-12-18 Gn Hearing A/S Hearing device and method of updating a hearing device
US9935945B2 (en) * 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
US10013558B1 (en) * 2015-12-17 2018-07-03 Lockheed Martin Corporation Method and computer readable medium for secure software installation mechanism
US11831654B2 (en) * 2015-12-22 2023-11-28 Mcafee, Llc Secure over-the-air updates
WO2017195161A1 (en) * 2016-05-13 2017-11-16 nChain Holdings Limited A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
US10536611B2 (en) 2016-05-27 2020-01-14 Hewlett-Packard Development Company, L.P. Printer authentication
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10218696B2 (en) * 2016-06-30 2019-02-26 Microsoft Technology Licensing, Llc Targeted secure software deployment
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
DE102016215068A1 (de) * 2016-08-12 2018-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Warten eines Fahrzeuges
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
EP3334185B1 (en) 2016-12-08 2021-06-02 GN Hearing A/S Hearing system, devices and method of securing communication for a user application
US11295017B2 (en) * 2017-01-31 2022-04-05 Ford Global Technologies, Llc Over-the-air updates security
US10416985B2 (en) 2017-02-16 2019-09-17 Ford Global Technologies, Llc Method and apparatus for multi cycle vehicle software update compliance handling
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10623188B2 (en) * 2017-04-26 2020-04-14 Fresenius Medical Care Holdings, Inc. Securely distributing medical prescriptions
US10455416B2 (en) 2017-05-26 2019-10-22 Honeywell International Inc. Systems and methods for providing a secured password and authentication mechanism for programming and updating software or firmware
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
CN109309645A (zh) * 2017-07-26 2019-02-05 中国人民解放军装备学院 一种软件分发安全保护方法
US20190108009A1 (en) * 2017-10-05 2019-04-11 Harman International Industries, Incorporated Generating checksums on trusted storage devices for accelerated authentication
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US10346608B2 (en) * 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
DE102018202626A1 (de) * 2018-02-21 2019-08-22 Siemens Aktiengesellschaft Verfahren zur rechnergestützten Parametrierung eines technischen Systems
CN108595978A (zh) * 2018-03-30 2018-09-28 平安科技(深圳)有限公司 信息屏蔽方法、装置、终端及计算机可读存储介质
US11642183B2 (en) * 2018-06-06 2023-05-09 Verily Life Sciences Llc Systems and methods for fleet management of robotic surgical systems
JP7100502B2 (ja) * 2018-06-13 2022-07-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
US10776094B2 (en) * 2018-07-29 2020-09-15 ColorTokens, Inc. Computer implemented system and method for encoding configuration information in a filename
US11023419B2 (en) * 2018-08-13 2021-06-01 Sap Se Folder key management
US10805087B1 (en) 2018-09-28 2020-10-13 Amazon Technologies, Inc. Code signing method and system
US10725767B2 (en) * 2018-10-15 2020-07-28 Dell Products, L.P. Systems and methods for reinforced update package authenticity
GB2579034B (en) * 2018-11-15 2021-05-05 Trustonic Ltd Software installation method
CN113330438A (zh) 2019-01-30 2021-08-31 惠普发展公司,有限责任合伙企业 安全代码映像分发
EP3716115A1 (en) * 2019-03-29 2020-09-30 General Electric Company Reporting and configuration enhancements of on-board certified software
EP3716114A1 (en) * 2019-03-29 2020-09-30 General Electric Company Method and system for remote load of on-board certified software
TWI718525B (zh) * 2019-04-26 2021-02-11 英屬維爾京群島商伊格拉斯控股有限公司 應用於安全製造的控管系統及其方法
US11435907B2 (en) * 2019-06-27 2022-09-06 EMC IP Holding Company LLC Ensuring data authenticity using notary as a service
CN111026419A (zh) * 2019-11-08 2020-04-17 深圳市有方科技股份有限公司 一种单片机的应用程序升级方法、装置及系统
US10997297B1 (en) * 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
US11121864B1 (en) * 2020-03-13 2021-09-14 International Business Machines Corporation Secure private key distribution between endpoint instances
CN111814139B (zh) * 2020-07-02 2023-05-09 深圳市法拉第电驱动有限公司 汽车电机控制器程序安全加载系统及方法
US11343079B2 (en) * 2020-07-21 2022-05-24 Servicenow, Inc. Secure application deployment
EP3945703A1 (de) * 2020-07-29 2022-02-02 Siemens Mobility GmbH Verfahren, netzwerk, computerprogrammprodukt und vorrichtung zum ferngesteuerten aktualisieren eines zielgerätes in einem netzwerk, insbesondere in einem bahnautomatisierungssystem
CN112433742A (zh) * 2020-11-26 2021-03-02 中电金融设备系统(深圳)有限公司 安全的固件更新方法、装置、设备及存储介质
EP4060536A1 (en) * 2021-03-17 2022-09-21 Secure Thingz Limited A provisioning control apparatus and method for provisioning electronic devices
US11681811B1 (en) * 2021-06-25 2023-06-20 Northrop Grumman Systems Corporation Cybersecurity for configuration and software updates of vehicle hardware and software based on fleet level information
US11409866B1 (en) 2021-06-25 2022-08-09 Northrop Grumman Systems Corporation Adaptive cybersecurity for vehicles
CN117897703A (zh) * 2021-08-30 2024-04-16 高通股份有限公司 功能安全性软件映像完整性验证器
CN113849212A (zh) * 2021-09-30 2021-12-28 蜂巢能源科技有限公司 一种软件升级控制方法、装置及电子设备
CN114598464B (zh) * 2022-03-08 2024-04-16 潍柴动力股份有限公司 一种数据更新方法和控制器
CN115396121B (zh) * 2022-10-26 2023-03-24 广州万协通信息技术有限公司 安全芯片ota数据包的安全认证方法及安全芯片装置
CN116048585B (zh) * 2023-02-09 2023-08-25 国核自仪系统工程有限公司 工控安全防护系统及其软件更新方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312415A (ja) * 2000-03-29 2001-11-09 Hewlett Packard Co <Hp> 不揮発性メモリにファームウェアをダウンロードするための方法及び装置
JP2004288074A (ja) * 2003-03-25 2004-10-14 Nec Engineering Ltd プログラムダウンロード方式
JP2008165593A (ja) * 2006-12-28 2008-07-17 Seiko Epson Corp 情報読取装置及び情報読取装置の制御方法
JP2009020697A (ja) * 2007-07-11 2009-01-29 Murata Mach Ltd 画像形成装置
JP2009124520A (ja) * 2007-11-16 2009-06-04 Fujitsu Ltd データ送付方法および電子機器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062451A1 (en) * 1998-09-01 2002-05-23 Scheidt Edward M. System and method of providing communication security
US7055027B1 (en) * 1999-03-22 2006-05-30 Microsoft Corporation System and method for trusted inspection of a data stream
DE19953837A1 (de) * 1999-11-09 2001-05-23 Fresenius Medical Care De Gmbh Software-Update für ein medizinisches Gerät
US20020112161A1 (en) 2001-02-13 2002-08-15 Thomas Fred C. Method and system for software authentication in a computer system
US20050149923A1 (en) * 2002-05-28 2005-07-07 Sheng Lee System update protocol
US20040259633A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Remote authentication of gaming software in a gaming system environment
US7591012B2 (en) 2004-03-02 2009-09-15 Microsoft Corporation Dynamic negotiation of encryption protocols
US9489496B2 (en) * 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US7502946B2 (en) * 2005-01-20 2009-03-10 Panasonic Corporation Using hardware to secure areas of long term storage in CE devices
US7734911B2 (en) * 2005-05-31 2010-06-08 Tricipher, Inc. Secure login using augmented single factor split key asymmetric cryptography
CN101278260B (zh) * 2005-06-07 2012-07-18 威睿公司 使软件程序免于弱点和攻击的约束注入方法
US20070288890A1 (en) 2006-05-17 2007-12-13 Ipreo Holdings, Inc. System, method and apparatus to allow for a design, administration, and presentation of computer software applications
US7809955B2 (en) * 2006-10-17 2010-10-05 Blue Ridge Networks, Inc. Trustable communities for a computer system
US7958371B2 (en) 2007-05-09 2011-06-07 Sony Computer Entertainment Inc. Methods and apparatus for secure operating system distribution in a multiprocessor system
US20100058317A1 (en) * 2008-09-02 2010-03-04 Vasco Data Security, Inc. Method for provisioning trusted software to an electronic device
US8495749B2 (en) * 2009-01-16 2013-07-23 Nokia Corporation Method, apparatus and computer program product for a content protection system for protecting personal content
JP2011243093A (ja) * 2010-05-20 2011-12-01 Canon Inc 情報処理装置、ユーザ認証方法、及びコンピュータプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312415A (ja) * 2000-03-29 2001-11-09 Hewlett Packard Co <Hp> 不揮発性メモリにファームウェアをダウンロードするための方法及び装置
JP2004288074A (ja) * 2003-03-25 2004-10-14 Nec Engineering Ltd プログラムダウンロード方式
JP2008165593A (ja) * 2006-12-28 2008-07-17 Seiko Epson Corp 情報読取装置及び情報読取装置の制御方法
JP2009020697A (ja) * 2007-07-11 2009-01-29 Murata Mach Ltd 画像形成装置
JP2009124520A (ja) * 2007-11-16 2009-06-04 Fujitsu Ltd データ送付方法および電子機器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503153A (ja) * 2014-11-28 2018-02-01 トムソン ライセンシングThomson Licensing アプリケーションのインテグリティを確かめることを提供する方法及びデバイス
JP2018503157A (ja) * 2014-11-28 2018-02-01 トムソン ライセンシングThomson Licensing アプリケーション整合性の検証を提供する方法及びデバイス
JP2018117342A (ja) * 2016-12-08 2018-07-26 ジーエヌ ヒアリング エー/エスGN Hearing A/S 聴覚装置、ユーザ付属装置、および聴覚装置設定を更新するための方法

Also Published As

Publication number Publication date
CN103460195B (zh) 2016-04-13
WO2012109640A2 (en) 2012-08-16
EP2659373A4 (en) 2017-07-05
EP2659373B1 (en) 2021-10-27
US9276752B2 (en) 2016-03-01
JP6332970B2 (ja) 2018-05-30
ES2902644T3 (es) 2022-03-29
WO2012109640A3 (en) 2013-05-16
CN103460195A (zh) 2013-12-18
US20130318357A1 (en) 2013-11-28
EP2659373A2 (en) 2013-11-06

Similar Documents

Publication Publication Date Title
JP6332970B2 (ja) 安全なソフトウェアの更新のためのシステム及び方法
CN109075976B (zh) 取决于密钥认证的证书发布
CN109313690B (zh) 自包含的加密引导策略验证
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
US9847880B2 (en) Techniques for ensuring authentication and integrity of communications
US7694139B2 (en) Securing executable content using a trusted computing platform
EP1618451B1 (en) Associating software with hardware using cryptography
US8856536B2 (en) Method and apparatus for secure firmware download using diagnostic link connector (DLC) and OnStar system
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
US11361087B2 (en) Security data processing device
EP1835432A1 (en) Optimized integrity verification procedures
US20130152180A1 (en) Device using secure processing zone to establish trust for digital rights management
EP3025235B1 (en) Anti-piracy protection for software
KR20170089859A (ko) 애플리케이션 무결성의 검증을 제공하기 위한 방법 및 디바이스
US11153074B1 (en) Trust framework against systematic cryptographic
US20170262658A1 (en) Method and device for providing verifying application integrity
WO2017191472A1 (en) A verification system and method
JP6387908B2 (ja) 認証システム
CN116561734A (zh) 一种验证方法、装置、计算机及计算机配置系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141104

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161024

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20161111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170901

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171006

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6332970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250