+

JP2019522834A - コードパッケージバリアント - Google Patents

コードパッケージバリアント Download PDF

Info

Publication number
JP2019522834A
JP2019522834A JP2018556851A JP2018556851A JP2019522834A JP 2019522834 A JP2019522834 A JP 2019522834A JP 2018556851 A JP2018556851 A JP 2018556851A JP 2018556851 A JP2018556851 A JP 2018556851A JP 2019522834 A JP2019522834 A JP 2019522834A
Authority
JP
Japan
Prior art keywords
package
code
variants
code package
variant
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
JP2018556851A
Other languages
English (en)
Other versions
JP6668505B2 (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2019522834A publication Critical patent/JP2019522834A/ja
Application granted granted Critical
Publication of JP6668505B2 publication Critical patent/JP6668505B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/563Static detection by source code analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

例示の実施態様はコードパッケージバリアントに関する。本システムはクライアントサーバと開発環境とデジタル署名環境と中央サーバとを備える。開発環境はコードパッケージの第1部分の複数のバリアントを生成する。デジタル署名環境は、コードパッケージの同じ第2部分を用いて、コードパッケージの第1部分の複数のバリアントの各バリアントについて異なるデジタル署名を作成する。中央サーバは、コードパッケージの第1部分の複数のバリアントのうちのあるバリアントをコードパッケージの第2部分及び対応するデジタル署名とともに含む完全なコードパッケージをクライアントサーバに送信する。中央サーバは、コードパッケージの第2部分を伴わない、コードパッケージの第1部分の複数のバリアントの残余と、複数のバリアントの残余の各デジタル署名とを含む不完全なコードパッケージをクライアントサーバに送信する。【選択図】図1

Description

サイバー攻撃は、ネットワーク上のデバイス内にあるコードイメージに存在する攻撃ベクトルを利用することができる。サイバー攻撃の効力を低減する戦略は、ネットワーク上のデバイス間にわたるコードダイバーシティを用いることを含みうる。コードダイバーシティ戦略は、攻撃者が単一のコードイメージ内に攻撃ベクトルを発見した場合にターゲットとすることができるネットワーク上のデバイスの数を削減することができる。
本開示によるコードパッケージバリアント(code package variants:コードパッケージ変異体)のシステムの一例の図である。 本開示によるコードパッケージバリアントのシステムの一例のブロック図である。 本開示によるコードパッケージバリアントの一例示の方法を示す図である。
ネットワークにわたるデバイス間でインストール用のコードイメージを多様化することによって、ネットワーク上でのサイバー攻撃によって利用することができる攻撃ベクトルの拡散を減少させることができる。例えば、コードダイバーシティの幾つかの手法は、コードイメージのビルド(build)時点においてデバイスのコードイメージの複数のバリアントを作成することによって、同じ攻撃ベクトルがデバイスの複数のコードイメージに存在する確率を低減することができる。コードダイバーシティの幾つかの手法は、特定のデバイスのデバイスモデルごとに異なるコードイメージを作成することができる。
これとは対照的に、本明細書において説明する例は、稼働時(ビルド時点の後)に展開されるデバイスモデルごとに複数の異なるコードイメージを有するより高レベルのコードダイバーシティを実施することができる。本明細書において用いられるようなコードイメージは、コンピューティングネットワーク上のデバイスにインストールすることができるバイナリコードを含みうる。コードイメージは、ファームウェア又はソフトウェアなどのバイナリコードを含みうる。バイナリコードは、プロセッサによって実行可能なコンピュータ命令の集合体を含みうる。バイナリコードは、その結果、コンピュータ命令の実行の結果からもたらされる動作によって規定される機能を有することができるか又はこの機能に関連付けることができる。コードイメージは、イメージ署名や、シェルスクリプトや、構成データファイルや、デバイスによって用いられる他の初期化データなども含みうる。
コードダイバーシティ戦略を実施することは、コードイメージの複数のバリアントを作成、記憶、及び/又は送信することを伴うことができる。例えば、コードイメージは、特定のサイズを有することができる。例えば、コードイメージは、100メガバイト、10000個のコードイメージ、1テラバイトなどでありうる。コードイメージが100メガバイトである一例では、10000個の多様なコードイメージを記憶するのに、多様化されたコードイメージのリリース当たり、1テラバイトの記憶空間が消費される。そのようなリリースの送信時間は、リリースのサイズに依存し得る。大きなリリースほど、送信を完了するのにより長い期間が利用され得る。
本開示によるコードイメージの複数の部分のバリアントを送信することは、複数のパッケージバリアントを生成するために、完全なコードパッケージと、完全なコードパッケージの対応する部分と反復して交換されるコードパッケージの部分の複数のバリアントとを送信することを含むコードダイバーシティ戦略を実施することができる。また、コードパッケージの第1の部分の各バリアントは、完全なコードパッケージに存在するコードパッケージの第2の部分を含まないので、データ記憶及び/又はデータ送信の節約を実現することができる。
図1は、本開示による、コードパッケージバリアントを送信するシステム100の図を示している。本明細書において用いられるようなコードパッケージは、コードイメージを含みうる。このコードパッケージは、クライアントデバイス用のソフトウェアコードイメージ及び/又はファームウェアコードイメージであるコードイメージを含みうる。例えば、コードパッケージは、クライアントサーバによって管理されるデバイスを印刷するソフトウェア更新及び/又はファームウェア更新を含みうる。
コードパッケージは、複数の異なる及び/又は個別のイメージ、バンドル又はパッケージファイルを含みうる。パッケージファイルは、クライアントデバイスの個々の構成要素、機能、特定用途向け集積回路(ASICs)、及び/又はプロセッサに対応することができる。例えば、クライアントデバイスは、プリンタの印刷エンジンの制御、プリンタの制御パネルの管理、プリンタの内蔵FAXの管理、プリンタのスキャナの管理、プリンタの紙送り機構の管理、プリンタのビンの管理、プリンタのトレイの管理、プリンタのステープラの管理、及び/又はプリンタのフィニッシャの管理を行う異なる構成要素、機能、ASICs、及び/又はプロセッサを備えることができる。パッケージファイルは、これらの異なる構成要素、機能、ASICs、及び/又はプロセッサのそれぞれに対応するコードを含みうる。コードパッケージは、クライアントデバイスのアプリケーションコード、接続性/ネットワーキングファームウェア、オペレーティングシステムファームウェア、印刷エンジンファームウェア、及び/又は他の構成要素ファームウェアの個別のパッケージファイルを含みうる。
システム100は、コードパッケージの開発、ビルド、テスト、及び/又は展開に関連したコンピューティングシステムを備えることができる。システム100は、中央サーバ102を備えることができる。中央サーバ102は、コードパッケージの開発、ビルド、テスト、及び/又は展開に関連したサーバを含みうる。中央サーバ102は、コードパッケージの開発、ビルド、テスト、及び/又は展開に関連した個別のコンピューティングシステムに対してデータを送受信することができる。中央サーバ102は、クライアントデバイスファームウェア更新などのサービスをクライアントサーバ104に提供するコンピューティングシステムを備えることができる。中央サーバ102は、複数のクライアントサーバ104及び/又はクライアントデバイスが利用することができる複数のコードパッケージを備えることができる。例えば、中央サーバ102は、クライアントデバイスの製造業者及び/又はサービスプロバイダに関連付けることができ、クライアントデバイスに関連したファームウェア更新を展開するのに利用することができる。中央サーバ102は、クライアントデバイスとの通信及び/又はクライアントデバイスを管理するクライアントサーバ104へのファームウェア更新の配信を行うのに利用されるウェブサイトに関連したウェブサーバでありうる。中央サーバ102は、ファイル(例えば、パッケージファイル、コードパッケージなど)をサービングするファイルサーバでありうる。中央サーバ102は、ウェブサービス記憶ロケーションなどの共有記憶ロケーションに記憶されたファイルのレポジトリを備えることができる。
システム100は、パッケージファイルを開発する開発環境110を備えることができる。中央サーバ102は、パッケージファイルを開発する開発環境110を備えることができる。中央サーバ102は、パッケージファイルを開発する開発環境110に関連した個別のコンピューティングシステムに対してデータを送受信することができる。中央サーバ102は、後処理ソフトウェアをパッケージファイルに対して実行して、機能的に同等であるパッケージファイルのバイナリコードバリアントを作成する後処理環境を備えることができる。中央サーバ102は、後処理ソフトウェアをパッケージファイルに対して実行して、機能的に同等であるパッケージファイルのバイナリコードバリアントを作成する後処理環境に関連した個別のコンピューティングシステムに対してデータを送受信することができる。
システム100は、クライアントサーバ104を備えることができる。クライアントサーバ104は、複数のクライアントデバイスを管理するサーバ及び/又はデバイス管理ツールを含みうる。クライアントサーバ104は、クライアント/サーバソフトウェアアーキテクチャのクライアント側における、クライアントネットワーク上のエンタープライズ多機能プリンタなどの複数のクライアントデバイスを管理するコンピューティングシステムを含みうる。
クライアントサーバ104は、ローカルエリアネットワーク(LAN)又はインターネットなどのワイドエリアネットワーク(WAN)などのコンピュータネットワークを介して中央サーバ102と通信することができる。クライアントサーバ104は、様々なコマンド、要求、及びファイル(例えば、パッケージファイル、コードパッケージなど)を中央サーバ102と往復して送受信することができる。Nの受信の管理、及び/又は完全なコードパッケージ106及び完全なコクライアントサーバ104は、クライアントデバイスの管理運営、完全なコードパッケージ106及び不完全なコードパッケージ108−1、108−2...108−Nの送信の要求の管理、完全なコードパッケージ106及び不完全なコードパッケージ108−1...108−ードパッケージバリアントのデバイスへの分配の管理を行うクライアントデバイス管理ツールを含みうる。
システム100は、完全なコードパッケージ106及び不完全なコードパッケージ108−1...108−Nをビルドする開発環境110の構成要素を備えることができる。中央サーバ102は、完全なコードパッケージ106及び不完全なコードパッケージ108−1...108−Nをビルドする開発環境110の構成要素を備えることができる。中央サーバ102は、完全なコードパッケージ106及び不完全なコードパッケージ108−1...108−Nをビルドする開発環境110に関連した個別のコンピューティングシステムに対してデータを送受信することができる。開発環境110は、完全なコードパッケージ106及び不完全なコードパッケージ108−1...108−Nのパッケージファイル構成要素をビルドするコンピューティング構成要素を備えることができる。上記で説明したように、コードパッケージは、ファームウェア更新に対応する複数のパッケージファイルを含みうる。開発環境110は、これらのパッケージファイルのコードイメージをビルドするコンピューティング構成要素を備えることができる。
システム100は、コードパッケージの第1の部分の複数のバリアントを生成する後処理構成要素を備えることができる。中央サーバ102は、後処理構成要素も備えることができる。中央サーバ102は、後処理構成要素に関連した個別のコンピューティングシステムに対してデータを送受信することができる。例えば、後処理構成要素は、コードパッケージの第1の部分の複数のバリアントを生成する後処理ソフトウェアを含みうる。コードパッケージの第1の部分は、コードパッケージのオペレーティングシステムファームウェアバンドル部分に対応するパッケージファイル(例えば、OSパッケージ)でありうる。例えば、コードパッケージが、Windows CEを動作させるデバイスを対象としている場合、第1の部分は、Windows CEオペレーティングシステムファームウェアパッケージファイルでありうる。
後処理構成要素は、ビルドプロセス中にOSパッケージに対して処理を行うことができる。後処理構成要素は、OSパッケージファイルを処理して、OSパッケージファイルの複数のバリアントを生成することができる。コードパッケージの第1の部分のバリアントは、第1の部分のバイナリコードバリアントとすることができる。例えば、バリアントは、OSパッケージファイルと異なるとともに互いに異なるバイナリコードを有するOSパッケージバリアントでありうる。第1の部分及び第1の部分のバリアントは、バイナリコードバリアントであるにもかかわらず、クライアントデバイス上でのそれらの実行の最終効果に関して機能的に同等とすることができる。
コードパッケージの第1の部分のバリアントは、オリジナルの第1の部分を処理することによって生成することができる。例えば、オリジナルのOSパッケージファイルをビルドすることができる。このOSパッケージファイルのバリアントは、オリジナルのOSパッケージファイル内のライブラリ(例えば、動的リンクライブラリブロック)、機能ブロック、及び/又はサブ機能ブロックのランダム化によって生成することができる。複数のバリアントの各バリアントは、機能的に同等であるが、複数のバリアントの他のバリアントと異なるバイナリコードを含むバイナリコードバリアントとすることができる。
第1の部分と複数のバリアントとの間のコード変異性(code variability)及び第1の部分の複数のバリアント間のコード変異性は、コードパッケージのセキュリティ強度を改善することができる。例えば、第1の部分の1つのバリアントを対象にして成功したコードインジェクション攻撃は、異なるバイナリコードイメージを有する別のバリアントに対して成功する可能性は極めて低い。
第1の部分のバリアントは、不完全なコードパッケージ108−1...108−Nとして利用することができる。不完全なコードパッケージ108−1...108−Nは、OSパッケージのバリアントなどの第1の部分バリアントを含みうる。不完全なコードパッケージ108−1...108−Nは、完全なコードパッケージ106に含まれる他のパッケージファイルなどの、完全なコードパッケージ106に存在する他の部分を除外することができる。不完全なコードパッケージ108−1...108−Nは、ファームウェア更新のOSパッケージファイルのバイナリコードバリアントに限定することができる。
システム100は、コードパッケージの異なるデジタル署名を作成するデジタル署名環境112を備えることができる。デジタル署名環境112は、中央サーバとは別のサーバ上に配置することができ、制御された環境において保守することができる。デジタル署名環境112は、完全なコードパッケージ106の異なるデジタル署名を作成するのに利用することができる。ソフトウェアコードイメージ及び/又はファームウェアコードイメージに関するデジタル署名は、コードイメージに不正変更を加えることを防止することができ、創作者によってビルドされた真正なコードイメージとしてソフトウェアコードイメージ及び/又はファームウェアコードイメージを認証することを可能にすることができる。デジタル署名を作成することは、秘密鍵を含むハードウェアセキュリティモジュールを用いて、完全なコードパッケージ106を処理することを含みうる。ハッシュを、完全なコードパッケージ106及び/又はコードパッケージ106のパッケージファイル構成要素に関して計算することができる。秘密鍵は、このハッシュに基づいてデジタル署名値を計算するのに用いることができる。そして、結果として得られたデジタル署名は、完全なコードパッケージ106に付加する(appended:アペンドする)ことができる(例えば、クライアントサーバにおいて付加することができる)。その結果、完全なコードパッケージ106は、複数のパッケージファイル及び付加されたデジタル署名を含みうる。
デジタル署名環境112は、完全なコードパッケージ106において利用されるのと同じ第2の部分を用いて、コードパッケージの第1の部分の複数のバリアントの各バリアントについて異なるデジタル署名を作成するのに利用することができる。コードパッケージの第2の部分は、第1の部分を除外したコードパッケージ106の部分を含みうる。例えば、第2の部分は、第1の部分バリアントを生成する後処理ソフトウェアによって処理されたOSパッケージファイル以外の完全なコードパッケージ106のパッケージファイルを含みうる。完全なコードパッケージ106の第2の部分は、完全なコードパッケージ106に付加されたデジタル署名を除外することができる。
デジタル署名環境112は、秘密鍵を含むハードウェアセキュリティモジュールを用いて、完全なコードパッケージ106の第1の部分バリアント及び第2の部分を処理することによって第1の部分バリアントのそれぞれのデジタル署名を作成することができる。ハッシュを、コードパッケージ106及び/又はそのパッケージファイルの第1の部分バリアント及び第2の部分に関して計算することができる。秘密鍵は、このハッシュに基づいてデジタル署名値を計算するのに用いることができる。そして、結果として得られたデジタル署名は、対応する不完全なコードパッケージ108−1...108−Nに付加することができる。不完全なコードパッケージ108−1...108−Nは、完全なコードパッケージ106の第1の部分のバリアントと、不完全なコードパッケージ108−1...108−Nに付加された対応するデジタル署名と含みうるが、不完全なコードパッケージ108−1...108−Nは、第1の部分のバリアント及び第2の部分に関して計算されたハッシュに基づいている付加されたデジタル署名を含むにもかかわらず、完全なコードパッケージ106の第2の部分を除外することができる。
中央サーバ102は、ネットワークにわたってファイルをクライアントサーバ104に送信することができる。例えば、中央サーバ102は、完全なコードパッケージ106をクライアントサーバ104に送信することができる。完全なコードパッケージ106を送信することは、様々なパッケージファイルを含むファームウェアコードイメージを送信することを含みうる。完全なコードパッケージ106を送信することは、コードパッケージの第1の部分の複数のバリアントのうちの1つのバリアントを送信することを含みうる。例えば、完全なコードパッケージ106を送信することは、ビルドプロセス中にビルドされたオリジナルの第1の部分でありかつ他の第1の部分バリアントの基礎であるコードパッケージの第1の部分の複数のバリアントのうちの上記1つのバリアントを送信することを含みうる。第1の部分の複数のバリアントのうちの上記1つのバリアントを送信することは、OSパッケージファイルなどのパッケージファイルを送信することを含みうる。
完全なコードパッケージ106を送信することは、コードパッケージの第2の部分を送信することを含みうる。第2の部分を送信することは、第1の部分以外のファームウェア更新の部分を送信することを含みうる。第2の部分を送信することは、第1の部分バリアントとともに加えられると、ファームウェア更新リリース全体を構成する残りのパッケージファイルを送信することを含みうる。例えば、第2の部分を送信することは、OSパッケージファイルとともに、クライアントデバイスのファームウェア更新リリースに関連したパッケージファイルの全体を構成するOSパッケージファイル以外のパッケージファイルを送信することを含みうる。
完全なコードパッケージ106を送信することは、コードパッケージの第1の部分及び第2の部分に対応するデジタル署名を送信することを含みうる。例えば、デジタル署名を送信することは、完全なコードパッケージ106の第1の部分及び第2の部分に関して計算されたハッシュからのデジタル署名を送信することを含みうる。
中央サーバ102は、不完全なコードパッケージ108−1...108−Nをクライアントサーバ104に送信することができる。不完全なコードパッケージ108−1...108−Nを送信することは、コードパッケージの第1の部分の複数のバリアントの残余を送信することを含みうる。コードパッケージの第1の部分の複数のバリアントの残余を送信することは、オリジナルのOSパッケージファイルのバイナリバリアントを生成する後処理を受けたオリジナルのOSパッケージファイル以外のOSパッケージファイルのバイナリコードバリアントを送信することを含みうる。例えば、中央サーバ102は、完全なコードパッケージ160に組み込まれることになるオリジナルのOSパッケージファイルをビルドすることができる。加えて、中央サーバは、オリジナルのOSパッケージファイルの3つのバイナリコードバリアントを生成することができる。これらの3つのバイナリコードバリアントは、3つの不完全なコードパッケージ108−1...108−Nを作成するのに利用される。そのような例では、コードパッケージの第1の部分の複数のバリアントの残余を送信することは、オリジナルのOSパッケージファイルの3つのバイナリコードバリアントを送信することを含みうる。
加えて、不完全なコードパッケージ108−1...108−Nをクライアントサーバ104に送信することは、複数のバリアントの残余のそれぞれのデジタル署名を送信することを含みうる。例えば、不完全なコードパッケージ108−1...108−Nを送信することは、第1の部分の特定のバリアントに関連した不完全な特定のコードパッケージに付加された、この特定のバリアントに対応するデジタル署名を送信することを含みうる。
不完全なコードパッケージ108−1...108−Nを送信することは、コードパッケージの第2の部分を有しないコードパッケージの第1の部分の複数のバリアントの残余と、それらの複数のバリアントの残余のそれぞれのデジタル署名とを送信することを含みうる。例えば、不完全なコードパッケージ108−1...108−Nを送信することは、ファームウェア更新の残りの非OSパッケージファイルを含めずに、OSパッケージファイルバリアントと、OSパッケージファイルバリアント及びファームウェア更新の残りの非OSパッケージファイルから計算されたハッシュに基づくそれらの対応するデジタル署名とを送信することを含みうる。したがって、不完全なコードパッケージ108−1...108−Nは、完全なコードパッケージ106よりも小さなものでありうる。なぜならば、完全なコードパッケージ106は、ファームウェア更新の残りの非OSパッケージファイルを含みうるからである。
クライアントサーバ104は、完全なコードパッケージ106及び/又は不完全なコードパッケージ108−1...108−Nを受信することができる。クライアントサーバ104は、完全なコードパッケージ106及び複数の不完全なコードパッケージ108−1...108−Nを利用して複数の完全なコードパッケージバリアントを生成することができる。クライアントサーバ104は、複数の完全なコードパッケージバリアントをクライアントデバイスにインストールすることができる。複数のクライアントデバイスのうちの、クライアントサーバ104によって管理されるクライアントデバイスのそれぞれは、コードパッケージの同じ第2の部分と、コードパッケージの第1の部分の複数のバリアントのうちの異なるバリアントとを含む完全なコードパッケージバリアントをクライアントサーバ104から受信することができる。
図2は、本開示による、コードパッケージバリアントの一例示のシステム220のブロック図である。システム220は、図1に示すシステム100と同じものとすることもできるし、異なるものとすることもできる。システム220は、少なくとも1つのリモートシステムと通信することが可能な少なくとも1つのコンピューティングデバイスを備えることができる。図2の例では、システム220は、プロセッサ222及びコンピュータ可読媒体224を備える。以下の説明は、単一のプロセッサ及び単一のコンピュータ可読媒体に言及するが、これらの説明は、複数のプロセッサ及びコンピュータ可読媒体を有するシステムにも当てはまり得る。そのような例では、命令を複数のコンピュータ可読媒体にわたって分散(例えば、記憶)することができ、命令を複数のプロセッサにわたって分散(例えば、複数のプロセッサによって実行)することができる。
プロセッサ222は、中央処理装置(CPU)、マイクロプロセッサ、及び/又はコンピュータ可読媒体224に記憶された命令の取り出し及び実行に適した他のハードウェアデバイスでありうる。図2に示す特定の例では、プロセッサ222は、コードパッケージバリアントを送信する命令226、228及び230を、受信、決定及び送信することができる。命令の取り出し及び実行に代えて又はこれらに加えて、プロセッサ222は、コンピュータ可読媒体224内の命令の機能を実行する或る数の電子構成要素を備える電子回路を備えることができる。本明細書において説明及び図示する実行可能命令の表現(例えば、ボックス)に関して、実行可能命令及び/又は電子回路の一部又は全ては、特定のボックス内に含めることができ、及び/又は、図示した異なるボックス若しくは図示しない異なるボックスに含めることができることが理解されるであろう。
コンピュータ可読媒体224は、実行可能命令を記憶する任意の電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、又は他の物理記憶デバイスとすることができる。したがって、コンピュータ可読媒体224は、例えば、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、記憶ドライブ、光ディスクなどでありうる。コンピュータ可読媒体224は、図2に示すように、システム220内に配置することができる。この状況では、実行可能命令は、システム220上に「インストール」することができる。加えて及び/又は代替的に、コンピュータ可読媒体224は、例えば、システム220がポータブル/外部/リモート記憶媒体から命令をダウンロードすることを可能にするポータブル記憶媒体、外部記憶媒体又はリモート記憶媒体とすることができる。この状況では、実行可能命令は、「インストールパッケージ」の一部とすることができる。本明細書において説明するように、コンピュータ可読媒体224は、宛先マーク(destination marks)とともに、スキャンする実行可能命令を用いてコード化することができる。
図2を参照すると、完全なコードパッケージ命令226は、プロセッサ(例えば、222)によって実行されると、第1の部分と、第2の部分と、完全なコードパッケージに対応するデジタル署名とを含む当該完全なコードパッケージをシステム220に受信させることができる。完全なコードパッケージは、クライアントサーバにおいて受信することができ、中央サーバから受信することができる。完全なコードパッケージは、クライアントサーバによって管理される複数のデバイスのファームウェア更新及び/又はソフトウェア更新を含みうる。完全なコードパッケージは、累積することでファームウェア更新及び/又はソフトウェア更新を構成する複数のパッケージファイルを含みうる。
完全なコードパッケージは、少なくとも2つの部分から構成することができる。第1の部分は、バイナリコードバリエーションの導入のターゲットとされる特定のパッケージファイルを含みうる。例えば、第1の部分は、ターゲットとされるクライアントデバイス(例えば、特定のタイプのクライアントデバイス、クライアントデバイスモデル、特定のソフトウェアを実行しているクライアントデバイスなど)のオペレーティングシステムに関連したOSパッケージファイルでありうる。第1の部分は、オペレーティングシステム、デバイスドライバ、カーネルライブラリ、及び/又はターゲットとされるクライアントデバイスのファームウェアの他の基礎的部分を含みうる。
第2の部分は、バイナリコードバリエーションの導入のターゲットとされる特定のパッケージファイル以外のパッケージファイルを含みうる。例えば、第2の部分は、アプリケーションコード、接続性/ネットワーキングファームウェア、エンジンファームウェア、及び/又は他のクライアントデバイス構成要素にそれぞれ関連した複数のパッケージファイルでありうる。第2の部分は、ファームウェア更新リリースを構成するOSパッケージファイル以外の残りのパッケージファイルを含みうる。
不完全なコードパッケージ命令228は、プロセッサ(例えば、222)によって実行されると、複数の不完全なコードパッケージをシステム220に受信させることができる。これらの複数の不完全なコードパッケージのそれぞれは、第2の部分を伴わない第1の部分の複数のバリアントのそれぞれのバリアントと、第1の部分のバリアント及び第2の部分に対応するデジタル署名とを含む。不完全なコードパッケージは、第2の部分を含まないので、完全なコードパッケージよりも小さなものでありうる。例えば、完全なコードパッケージは、第1のデータサイズを有することができる一方、コードパッケージの第1の部分のみ及び/又はコードパッケージの第1の部分のバリアントは、第1のデータサイズのごく一部(例えば、10%、15%など)である第2のデータサイズのOSパッケージファイルでありうる。例えば、第1のデータサイズが150メガバイトであり、第2のデータサイズが20メガバイトである場合、完全なコードパッケージ及び不完全なコードパッケージの10000個の第1の部分バリアントを送信することを含むシステム220を利用することは、200ギガバイトの第1の部分バリアント及び150メガバイトの完全なコードパッケージを送信すること及び/又は受信することを伴うことができる。これとは対照的に、同じ10000個の第1の部分バリアントのそれぞれを第2の部分とともに送信することは、1.5テラバイトを送信すること及び/又は受信することを伴う。システム220は、送信時間及び/又は中央サーバ若しくはクライアントサーバ上のデータ記憶の87パーセントの削減を生み出すことができる。
完全なコードパッケージバリアント命令230は、プロセッサ(例えば、222)によって実行されると、完全なコードパッケージ及び複数の不完全なコードパッケージを利用して複数の完全なコードパッケージバリアントをシステム220に生成させることができる。バリアント命令230は、プロセッサ(例えば、222)によって実行されると、第1の部分及び完全なコードパッケージに対応するデジタル署名を、複数の不完全なコードパッケージのうちの1つの不完全なコードパッケージと交換することによって、複数の完全なコードパッケージバリアントのうちの1つの完全なコードパッケージバリアントをシステム220に生成させることができる。したがって、システム220は、上述した交換を利用することによって、異なる第1の部分バリアントと、同じ第2の部分と、一意の異なる第1の部分バリアント及び同じ第2の部分の組み合わせに対応するデジタル署名とを有する複数の完全なコードパッケージバリアントを構築可能とすることができる。複数の完全なバリアントは、完全なコードパッケージの第2の部分を再利用し、署名及び異なる第1の部分バリアントを、複数の異なる第1の部分バリアント及び対応するデジタル署名の組み合わせのうちの別の組み合わせと反復して取り替えることによって生成することができる。上掲の例を10000個の第1の部分バリアントについて続けると、システム220は、1つの完全なコードパッケージ及び10000個の不完全なコードパッケージを利用して、10001個の異なる完全なコードパッケージバリアントを生成することができる。コードパッケージバリアントを構築する命令は、プリンタなどの複数のクライアントデバイスを管理するクライアントサーバ上にロードされるプロセッサ実行可能命令を含みうる。
バリアントインストール命令(図示せず)は、プロセッサ(例えば、222)によって実行されると、複数の完全なコードパッケージバリアントのクライアントデバイスへのインストールをシステム220に行わせることができる。例えば、クライアントサーバは、複数の完全なコードパッケージバリアントを、クライアントサーバによって管理される複数の対応するデバイスに分配することができる。これらの完全なコードパッケージバリアントは、クライアントデバイスに対する追加の変更を伴わない(例えば、クライアントデバイスに対する追加のファームウェア変更を用いない)標準的な形式でクライアントデバイス上にインストールすることができる。例えば、クライアントデバイスの観点からは、完全なコードパッケージバリアントは、インストールされて、コードパッケージバリアントの第1の部分及び第2の部分が1つのコードパッケージバリアントとして同時に受信されたかのように機能することができる。
図3は、本開示による、コードパッケージバリアントの一例示の方法340を示している。342において、方法340は、中央サーバから、複数のデバイスを管理するクライアントサーバに、完全なコードパッケージを送信することを含みうる。この完全なコードパッケージは、第1の部分と、第2の部分と、完全なコードパッケージに対応するデジタル署名とを含みうる。
342において、方法340は、中央サーバから、複数のデバイスを管理するクライアントサーバに、複数の不完全なコードパッケージバリアントを送信することを更に含みうる。これらの複数の不完全なコードパッケージバリアントの各不完全なコードパッケージバリアントは、第2の部分を伴わない第1の部分の複数のバリアントのそれぞれのバリアントと、第1の部分の複数のバリアントのうちのこのバリアント及び第2の部分に対応するデジタル署名とを含みうる。
これらの完全なコードパッケージ及び複数の不完全なコードパッケージバリアントの送信は、クライアントサーバによって管理される複数のデバイスに対するファームウェア更新の要求を中央サーバにおいて受信することに応答して実行することができる。例えば、クライアントサーバは、当該クライアントサーバが管理しているクライアントデバイスに対するファームウェア更新の要求を中央サーバに送信することができる。この要求に基づいてクライアントサーバに送信する不完全なコードパッケージの量は、中央サーバにおいて決定することができる。中央サーバは、要求を受信すると、完全なコードパッケージ及び不完全なコードパッケージをクライアントサーバに送信することができる。
344において、方法340は、クライアントサーバにおいて、複数の完全なコードパッケージバリアントを構築することを含むことができ、これらの複数の完全なコードパッケージバリアントの各完全なコードパッケージバリアントは、異なる不完全なコードパッケージバリアントと、完全なコードパッケージからの第2の部分とを含む。異なる不完全なコードパッケージバリアントは、機能的に同等であるファームウェア更新のOSパッケージファイルのバイナリコードバリアントを含みうる。第2の部分は、ファームウェア更新の一部であるOSパッケージファイル以外の複数のパッケージファイルを含みうる。不完全なコードパッケージバリアントを、対応するデジタル署名とともに、完全なコードパッケージに存在する第1の部分及びデジタル署名に反復して置き換えることができる。
346において、方法340は、複数のデバイスにわたって複数の完全なコードパッケージバリアントをインストールすることを含みうる。複数の完全なコードパッケージバリアントをインストールすることは、異なるバイナリコードイメージを有する機能的に同等の完全なコードパッケージを、クライアントサーバによって管理される同じモデルのクライアントデバイスにわたってインストールすることを含みうる。
本開示の上記詳細な説明では、本開示の一部をなす添付図面への言及がなされている。添付図面には、例示として、本開示の例をどのように実施することができるのかが示されている。これらの例は、当業者が本開示の例を実施することができるように十分詳細に説明されており、他の例を利用することができること、並びに、本開示の範囲から逸脱することなく、プロセスの変更、電気的な変更、及び/又は構造的な変更を行うことができることが理解されるであろう。
本開示における図は、番号付けの慣例に従っており、最初の桁は図面の図番に対応し、残りの桁は図面における要素又は構成要素を特定する。本開示における様々な図に示す要素は、本開示の或る数の追加例を提供するために追加、交換、及び/又削除することができる。加えて、図に提供された要素の大きさ及び相対縮尺は、本開示の例を示すことを意図したものであり、限定的な意味に解釈されるべきでない。特に図面における参照符号に関して本明細書において用いられるような指示子「N」は、そのような指示子が付された或る数の特定の特徴部を、本開示の例を用いて含めることができることを示している。指示子は、同じ数又は異なる数の特定の特徴部を表すことができる。さらに、本明細書において用いられるような「或る数」の要素及び/又は特徴部は、そのような要素及び/又は特徴部のうちの1つ以上を指すことができる。
本明細書において用いられるような「ロジック」は、本明細書において説明した特定の動作及び/又は機能などを実行する代替的な又は追加の処理リソースであり、この処理リソースは、メモリに記憶されてプロセッサによって実行可能なコンピュータ実行可能命令、例えば、ソフトウェア、ファームウェアなどと対照的なハードウェア、例えば、様々な形態のトランジスタロジック、特定用途向け集積回路(ASIC)などを含む。

Claims (15)

  1. クライアントサーバと、
    コードパッケージの第1の部分の複数のバリアントを生成する開発環境と、
    前記コードパッケージの同じ第2の部分を用いて、前記コードパッケージの前記第1の部分の前記複数のバリアントの各バリアントについて異なるデジタル署名を作成するデジタル署名環境と、
    中央サーバであって、
    前記コードパッケージの前記第1の部分の前記複数のバリアントのうちの1つのバリアントを、前記コードパッケージの前記第2の部分及び対応するデジタル署名とともに含む完全なコードパッケージを前記クライアントサーバに送信することと、
    前記コードパッケージの前記第2の部分を伴わない、前記コードパッケージの前記第1の部分の前記複数のバリアントの残余と、前記複数のバリアントの前記残余のそれぞれのデジタル署名とを含む不完全なコードパッケージを前記クライアントサーバに送信することと
    を行う、中央サーバと
    を備えてなるシステム。
  2. 前記完全なコードパッケージは、ファームウェアコードイメージを含む、請求項1に記載のシステム。
  3. 前記複数のバリアントの各バリアントは、前記複数のバリアントの他のバリアントと異なるバイナリコード要素を含む機能的に同等のコード要素を含む、請求項1に記載のシステム。
  4. 前記クライアントサーバによって管理される複数のクライアントデバイスの各クライアントデバイスは、前記コードパッケージの同じ前記第2の部分と、前記コードパッケージの前記第1の部分の前記複数のバリアントのうちの異なるバリアントとを含むコードパッケージを受信する、請求項1に記載のシステム。
  5. 前記コードパッケージは、パッケージファイルを含む、請求項1に記載のシステム。
  6. 前記コードパッケージの前記第1の部分は、オペレーティングシステムパッケージファイルを含む、請求項5に記載のシステム。
  7. 前記コードパッケージの前記第1の部分の前記複数のバリアントは、前記コードパッケージのオペレーティングシステムパッケージファイル部分内の動的リンクライブラリブロックと機能ブロックとサブ機能ブロックとをランダム化することによって生成される、請求項1に記載のシステム。
  8. プロセッサによって実行可能な命令を含む非一時的コンピュータ可読媒体であって、該命令は前記プロセッサに対し、
    第1の部分と、第2の部分と、完全なコードパッケージに対応するデジタル署名とを含む該完全なコードパッケージを受信させ、
    複数の不完全なコードパッケージであって、該複数の不完全なコードパッケージのそれぞれは、前記第2の部分を伴わない、前記第1の部分の複数のバリアントのそれぞれのバリアントと、前記第1の部分の前記バリアント及び前記第2の部分に対応するデジタル署名とを含む、複数の不完全なコードパッケージを受信させ、
    前記完全なコードパッケージ及び前記複数の不完全なコードパッケージを利用して、複数の完全なコードパッケージバリアントを生成させる
    ことを特徴とする、非一時的なコンピュータ可読媒体。
  9. 前記第1の部分の前記複数のバリアントは、前記コードパッケージのオペレーティングシステムパッケージファイル部分内のライブラリブロックと機能ブロックとサブ機能ブロックとをランダム化することによって生成される、請求項8に記載の非一時的なコンピュータ可読媒体。
  10. 前記第1の部分及び前記完全なコードパッケージに対応する前記デジタル署名を前記複数の不完全なコードパッケージのうちの1つの不完全なコードパッケージと交換することによって、前記複数の完全なコードパッケージバリアントのうちの1つの完全なコードパッケージバリアントを生成する命令を更に含む、請求項8に記載の非一時的なコンピュータ可読媒体。
  11. 前記複数の不完全なコードパッケージのそれぞれは、前記完全なコードパッケージよりも小さいものである、請求項10に記載の非一時的なコンピュータ可読媒体。
  12. 中央サーバから複数のデバイスを管理するクライアントサーバに対し、
    第1の部分と、第2の部分と、完全なコードパッケージに対応するデジタル署名とを含む該完全なコードパッケージと、
    複数の不完全なコードパッケージバリアントであって、該複数の不完全なコードパッケージバリアントの各不完全なコードパッケージバリアントは、前記第2の部分を伴わない、前記第1の部分の複数のバリアントのそれぞれのバリアントと、前記第1の部分の前記複数のバリアントのうちの前記バリアント及び前記第2の部分に対応するデジタル署名とを含む、複数の不完全なコードパッケージバリアントと
    を送信するステップと、
    複数の完全なコードパッケージバリアントを、前記クライアントサーバにおいて構築するステップであって、該複数の完全なコードパッケージバリアントの各完全なコードパッケージバリアントは、異なる不完全なコードパッケージバリアントと、前記完全なコードパッケージからの前記第2の部分とを含むものである、前記クライアントサーバにおいて構築するステップと、
    前記複数のデバイスにわたって前記複数の完全なコードパッケージバリアントをインストールするステップと
    を含んでなる方法。
  13. 前記複数のデバイスに対するファームウェア更新の要求を前記中央サーバにおいて受信するステップを含み、前記送信するステップは、該要求を受信するステップに応答して行われる、請求項12に記載の方法。
  14. 前記要求において指定されたコードダイバーシティレベルに基づいて、送信する不完全なコードパッケージバリアントの量を前記中央サーバにおいて決定するステップを含む、請求項13に記載の方法。
  15. 前記複数の不完全なコードパッケージバリアントの各不完全なコードパッケージバリアントは、前記複数の不完全なコードバリアントの他の不完全なコードパッケージバリアントと異なるバイナリコード要素を含む機能的に同等のコード要素を含む、請求項12に記載の方法。
JP2018556851A 2016-07-28 2016-07-28 コードパッケージバリアント Expired - Fee Related JP6668505B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/044499 WO2018022065A1 (en) 2016-07-28 2016-07-28 Code package variants

Publications (2)

Publication Number Publication Date
JP2019522834A true JP2019522834A (ja) 2019-08-15
JP6668505B2 JP6668505B2 (ja) 2020-03-18

Family

ID=61017501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018556851A Expired - Fee Related JP6668505B2 (ja) 2016-07-28 2016-07-28 コードパッケージバリアント

Country Status (6)

Country Link
US (1) US11023581B2 (ja)
EP (1) EP3437011B1 (ja)
JP (1) JP6668505B2 (ja)
KR (1) KR102198999B1 (ja)
CN (1) CN109074458B (ja)
WO (1) WO2018022065A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789075B2 (en) * 2017-09-29 2020-09-29 Nxp B.V. Method and apparatus for security certified smart card OS diversification system
CN113330438A (zh) * 2019-01-30 2021-08-31 惠普发展公司,有限责任合伙企业 安全代码映像分发
US12086257B2 (en) * 2020-04-24 2024-09-10 Omnissa, Llc Trusted firmware verification
US11431510B1 (en) * 2020-04-30 2022-08-30 Wells Fargo Bank, N.A. Code-sign white listing (CSWL)
US20220237300A1 (en) * 2021-01-22 2022-07-28 Microsoft Technology Licensing, Llc Firmware component identification and vulnerability assessment
CN113296828B (zh) * 2021-05-26 2024-10-18 北京京东振世信息技术有限公司 一种发布应用的方法、服务器和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130311765A1 (en) * 2012-05-17 2013-11-21 Sony Computer Entertainment Inc. Information processing apparatus, data generation method, information processing method, and information processing system
US20140007074A1 (en) * 2012-06-27 2014-01-02 Google Inc. Methods for updating applications
WO2015200046A1 (en) * 2014-06-27 2015-12-30 Qualcomm Incorporated Dynamic patching of multiple, functionally equivalent variations of various software modules for security reasons
US20160132317A1 (en) * 2014-11-06 2016-05-12 Intertrust Technologies Corporation Secure Application Distribution Systems and Methods

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2000269279A1 (en) 2000-01-14 2001-07-24 Microsoft Corporation Producing a new black box for a digital rights management (drm) system
KR100506785B1 (ko) 2000-11-17 2005-08-08 비트폰 코포레이션 정보의 업데이트 및 배포 시스템 및 방법
US20050188203A1 (en) * 2004-02-19 2005-08-25 Jp Mobile Operating L.P. Method for packaging information with digitally signed software without breaking signature
US7512936B2 (en) 2004-12-17 2009-03-31 Sap Aktiengesellschaft Code diversification
US8312545B2 (en) * 2006-04-06 2012-11-13 Juniper Networks, Inc. Non-signature malware detection system and method for mobile platforms
US8312941B2 (en) 2006-04-27 2012-11-20 TDY Industries, LLC Modular fixed cutter earth-boring bits, modular fixed cutter earth-boring bit bodies, and related methods
US8510859B2 (en) * 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8201164B2 (en) * 2007-07-20 2012-06-12 Microsoft Corporation Dynamically regulating content downloads
US20090063620A1 (en) * 2007-08-29 2009-03-05 Hanna Ihab M Novel method and system for controlling access to features of a software program
US20090083268A1 (en) * 2007-09-25 2009-03-26 International Business Machines Corporation Managing variants of artifacts in a software process
KR20100066576A (ko) 2007-10-04 2010-06-17 오픈픽 인크. 펌웨어 이미지 갱신 및 관리
WO2010010430A2 (en) * 2008-07-25 2010-01-28 Lee Kok-Wah Methods and systems to create big memorizable secrets and their applications in information engineering
US8214630B2 (en) * 2009-02-24 2012-07-03 General Instrument Corporation Method and apparatus for controlling enablement of JTAG interface
US8484474B2 (en) 2010-07-01 2013-07-09 Rockwell Automation Technologies, Inc. Methods for firmware signature
US8925009B2 (en) * 2010-12-10 2014-12-30 Verizon Patent And Licensing Inc. Graphics handling for electronic program guide graphics in an RVU system
US8595510B2 (en) * 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
TWI455562B (zh) 2011-12-27 2014-10-01 Jrsys Internat Corp 使用圖形碼的雙通道電子簽章系統及相關的方法和電腦程式產品
US8489469B1 (en) * 2012-08-30 2013-07-16 Elbex Video Ltd. Method and structure for simplified coding of display pages for operating a closed circuit E-commerce
US9286912B2 (en) 2012-09-26 2016-03-15 The Nielsen Company (Us), Llc Methods and apparatus for identifying media
US8918768B2 (en) 2012-12-06 2014-12-23 Apple Inc. Methods and apparatus for correlation protected processing of data operations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130311765A1 (en) * 2012-05-17 2013-11-21 Sony Computer Entertainment Inc. Information processing apparatus, data generation method, information processing method, and information processing system
JP2013239989A (ja) * 2012-05-17 2013-11-28 Sony Computer Entertainment Inc 情報処理装置、データ生成方法、情報処理方法、および情報処理システム
US20140007074A1 (en) * 2012-06-27 2014-01-02 Google Inc. Methods for updating applications
WO2015200046A1 (en) * 2014-06-27 2015-12-30 Qualcomm Incorporated Dynamic patching of multiple, functionally equivalent variations of various software modules for security reasons
US20160132317A1 (en) * 2014-11-06 2016-05-12 Intertrust Technologies Corporation Secure Application Distribution Systems and Methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MICHAEL FRANZ: "E UNIBUS PLURAM :MASSIVE-SCALE SOFTWAWE DIVERSITY AS A DEFENSE MECHANISM", PROCEEDINGS OF THE 2010 WORKSHOP ON NEW SECURITY PARADIGMS,( NSPW '10), JPN5017005489, 2010, US, pages 7 - 16, ISSN: 0004171862 *

Also Published As

Publication number Publication date
WO2018022065A1 (en) 2018-02-01
CN109074458A (zh) 2018-12-21
CN109074458B (zh) 2022-04-15
EP3437011B1 (en) 2020-12-16
EP3437011A4 (en) 2019-11-06
KR20180131588A (ko) 2018-12-10
US20190156029A1 (en) 2019-05-23
US11023581B2 (en) 2021-06-01
EP3437011A1 (en) 2019-02-06
KR102198999B1 (ko) 2021-01-06
JP6668505B2 (ja) 2020-03-18

Similar Documents

Publication Publication Date Title
JP6668505B2 (ja) コードパッケージバリアント
TWI380216B (en) System and method for automated operating system installation
Moran et al. A firmware update architecture for Internet of Things
JP4936549B2 (ja) サーバ装置、管理システム、管理方法、記憶媒体、プログラム
JP2010055525A (ja) 画像形成装置、ライセンス判定方法、プログラム及び記録媒体
CN113938321B (zh) 可扩展的运维管理系统、方法、电子设备和可读存储介质
US20120062944A1 (en) Image forming apparatus, network system, control method, and storage medium
US20120054743A1 (en) Information Processing Apparatus and Client Management Method
JP2015138297A (ja) 配信システム及びその制御方法
JP2006099307A (ja) 分散サーバへのアプリケーションセットのインストール方法
JPWO2008146408A1 (ja) ライセンス管理プログラム、ソフトウェア利用制御方法およびライセンス管理装置
JP2009301111A (ja) ネットワーク機器管理装置およびその制御方法、プログラム、記憶媒体
US20090150882A1 (en) System and method for software application installation
CN110866743A (zh) 提供装置、处理系统以及通信方法
US11775275B2 (en) Secure code image distribution
US9158527B2 (en) Upgrade system and method having adaptive changeable upgrade process
US20160197793A1 (en) Network system, and control method for network system
JP5510535B2 (ja) 情報処理装置、ライセンス判定方法、プログラム、及び記録媒体
JP2019160057A (ja) プリントサーバーと、その制御方法とプログラム
JP2014179909A (ja) 画像形成装置、ネットワークシステム、方法およびプログラム
Moran et al. RFC 9019: A Firmware Update Architecture for Internet of Things
JP2017167755A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
CN113535429B (zh) 数据处理方法、装置、设备、介质及程序产品
CN116975158B (zh) 请求处理方法、装置、计算机设备和存储介质
KR101890138B1 (ko) Vagrant를 이용한 개발 환경 중앙 관리 시스템 및 개발 환경 중앙 관리 방법, 이를 수행하기 위한 기록 매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200226

R150 Certificate of patent or registration of utility model

Ref document number: 6668505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

LAPS Cancellation because of no payment of annual fees
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载