JP2009500905A - セキュアパッチシステム - Google Patents

セキュアパッチシステム Download PDF

Info

Publication number
JP2009500905A
JP2009500905A JP2008519305A JP2008519305A JP2009500905A JP 2009500905 A JP2009500905 A JP 2009500905A JP 2008519305 A JP2008519305 A JP 2008519305A JP 2008519305 A JP2008519305 A JP 2008519305A JP 2009500905 A JP2009500905 A JP 2009500905A
Authority
JP
Japan
Prior art keywords
patch
key
digital signature
signature
secret
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
JP2008519305A
Other languages
English (en)
Other versions
JP4875075B2 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority claimed from PCT/US2006/019941 external-priority patent/WO2007005140A1/en
Publication of JP2009500905A publication Critical patent/JP2009500905A/ja
Application granted granted Critical
Publication of JP4875075B2 publication Critical patent/JP4875075B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

秘密保護及び鍵紛失耐性を高めることができるパッチサーバ、パッチクライアント、及び対応する方法が提供される。パッチサーバは、第1の鍵生成プラットフォーム、及び第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォームを備える。複数の第1の秘密鍵又は第2の秘密鍵をそれぞれ含む第1の秘密鍵群及び第2の秘密鍵群が、第1の鍵生成プラットフォーム又は第2の鍵生成プラットフォームを使用してそれぞれ生成される。第1の秘密鍵のうちの1つが第1の秘密鍵群から選択され、第2の秘密鍵のうちの1つが第2の秘密鍵群から選択される。第1のデジタル署名が、パッチ及び第1の秘密鍵に基づいて生成される。第2のデジタル署名が、パッチ及び第2の秘密鍵に基づいて生成される。パッチは、第1のデジタル署名及び第2のデジタル署名と共にパッチクライアントに送信される。

Description

本発明は、包括的にはソフトウェアアップデートに関し、特に、分散システムでのソフトウェアアップデートの安全な配信に関する。
多くのコンピュータメディア又は通信システムは、不正データアクセス又はワームの拡散を許し得るセキュリティホールの問題を有する。それにより、相当なダメージが発生し得る。通常、このようなセキュリティホールは、パッチとも呼ばれるセキュリティ関連ソフトウェアアップデートにより塞がれる。分散システムでは、パッチサーバによりパッチを生成し、それから複数のパッチクライアント、例えば、通信システムのモバイルユニット又は埋め込みプロセッサを有する消費者機器に配信することができる。
しかし、安全ではないシステムからロードされるパッチもやはり、悪意のある改竄から保護する必要がある。そうしなければ、ウィルス又はワームがやはり有効な攻撃を行い得る。例えば、サービス拒絶(DoS)攻撃をGSM(移動通信用グローバルシステム)ネットに対して実行し得るため、1無線セル当たりたった1つのアクティブ装置が感染するだけで、システム全体をブロックするのに十分である。
従来技術によるシステムでは、多くの場合、非対称暗号法とも呼ばれる公開鍵暗号法(PKC)が使用されて、安全ではないネットワークを介して秘密鍵を送信することを回避することにより、パッケージの配信を保護する。基本概念は、2つの鍵、すなわち暗号化のみに適用可能であると共に一般に公開される公開鍵(PK)及びメッセージを復号化するために知らなければならない復号鍵とも呼ばれる秘密鍵(SK)があることである。セキュリティは、公開鍵から秘密鍵を導出することの困難さ及び秘密鍵を知ることなく暗号化されたメッセージを復号化することの困難さに頼っている。
PKCの特殊な応用例がデジタル署名である。デジタル署名では、或る文書の暗号ハッシュ値が計算され、次いでこのハッシュ値が、作成者の秘密鍵を使用して暗号化され、デジタル署名が作成される。署名は、或る形態で文書に添付される。作成者の公開鍵を知る者は誰でも、文書のハッシュ値を計算し、公開鍵を使用して添付された署名を復号化し、その結果をハッシュ化された文書と比較することができる。別法として、デジタル署名は、作成者の秘密鍵を使用してハッシュ値を復号化することにより生成することもできる。検証のために、文書の受信者は再びハッシュ値を計算し、公開鍵を使用して復号化し、その結果を提供された署名と比較することができる。
正しいデジタル署名は、作成者が秘密鍵を知っていること(真正性)、署名が作成されてから、追加、削除、又は内容の変更により、又は内容の順番を部分的に入れ替えることにより文書が変更されていないこと(完全性)を証明する。後者は、利用される暗号ハッシュ関数、例えば、MD5(メッセージダイジェストアルゴリズム5)、SHA−1(セキュアハッシュアルゴリズム1)、又はRIPEMD−160(Race Integrity Primitives Evaluation Message Digest 160)のプロパティにより提供される。しかし、例えば、秘密鍵が署名作成中に盗まれたか否かを調べることはできない。
信頼できない相手、すなわち秘密を知らない相手もデジタル署名をチェックすることができるため、非対称暗号化がデジタル署名に使用されることが多い。しかし、PKCには、気付かれるという欠点及び遅いという欠点がある。さらに、PKCシステムのセキュリティホールは介入者攻撃によるものであり得る。これは、公開鍵の真正性を何等かの方法で証明することができる場合に回避することができる。状況によっては、公開鍵の暗号チェックサム、いわゆるフィンガープリントを計算し、例えば、電話を介して受信者に直接伝えることで十分である。しかし、複雑で動的に変化する環境では、これは不可能である。したがって、公開鍵が信頼できる階層組織によりデジタル署名される公開鍵基盤(PKI)がこのために使用される。しかし、PKI基盤の実施及び保守は高価である。さらに、例えば、RSA(リベスト−シャミール−アドルマン)暗号が使用される場合、PKCからいくつかのさらなる危険性及び問題が生じる。PKCの遅さの他に、平文の部分部分にランダムビットが埋められる。その理由は、そうしなければ数種類の攻撃が可能であるためである。したがって、平文は通常、公開鍵で直接暗号化されない。直接暗号化されることに代えて、ランダムセッション鍵が生成されて、例えば、AES(Advanced Encryption Standard)又はトゥーフィッシュ(Two-fish)を使用する従来の対称暗号法に使用される。ハイブリッドプロトコルと呼ばれるこういったプロトコルでは、セッション鍵のみが、公開鍵を使用して暗号化され、暗号文に追加される。
しかし、ハイブリッドプロトコルを使用する場合であってもやはり、セッション鍵を、例えば512ビット長又は1024ビット長にランダムに追加する必要がある。パディングが不十分であると、セキュリティが低減する。
さらに、秘密RSA鍵内のビットがハードウェア又は攻撃者により反転され、この秘密鍵がメッセージの定義に使用される場合、公開鍵を因数分解することが可能であり、そのため、セキュリティが完全に崩壊する。これはPKCシステムでの相当な危険性に繋がる。
さらに、トラップドアを公開鍵の生成に組み入れることができる。作成アルゴリズムの変更を知っている攻撃者は、公開鍵から秘密鍵を容易に推測することが可能であるため、この場合でもセキュリティが完全に崩壊する。
したがって、従来技術による多くのパッチシステムはPKCを回避しようとする。信頼できるサーバと埋め込みプロセッサのようなクライアントとの間にダイアログがあるシステム(例えば、GSM電話)では、(おそらくスマートカード内の)シリアル化鍵及びチャレンジ応答プロトコルが簡易で堅牢な解決策を提供するであろう。しかし、多くのシステムでは、これは適用不可能である。例えば、受信者がブート時間中に固定されており、且つ受動的である場合、シリアル化は不可能である。
別法として、当事者が秘密を共有する従来技術によるシステムは、HMAC(メッセージ認証のための鍵付きハッシング)のような暗号チェックサムを使用する。したがってその一例が、鍵がSIM(加入者識別モジュール)カードにより配布されるGSM/UMTS(移動通信用グローバルシステム/ユニバーサル移動通信システム)携帯電話における認証及び鍵処理である。この解決策はPKCよりも簡易であり、高速であり、且つ堅牢である。しかし、HMAC暗号チェックサムにより完全性を提供することができるが、対応する秘密鍵はEP(埋め込みプロセッサ)受信者のファームウェア内に固定される。したがって、この秘密HMAC鍵が漏れると、すべてのチェックサムの価値が無くなることになる。
したがって、多くの従来技術によるパッチシステムはデジタル署名を使用する。しかし、完全性の保証が十分ではないことが多い。パッチがリバースエンジニアリングされた場合、セキュリティホールをやはり見つけることが可能である。署名付きパッチはその信頼性しか保証せず、セキュリティを保証しない。セキュリティは、作成者の信頼によってのみ提供される。さらに、すべてのパッチクライアントのパッチに同じ公開鍵を使用して署名することには、安全性が著しく低いという欠点がある。秘密鍵が漏れると、すべてのセキュリティが失われる。さらに発生する可能性の高い状況は、秘密鍵が失われる状況である。この場合、それ以上のパッチをリリースすることができず、すべてのパッチクライアントはますます安全でなくなる。
したがって、従来技術の欠点を解消することができる改良されたパッチサーバ、パッチクライアント、及び対応する方法が提供される。実施の形態は、秘密保護及び鍵紛失耐性を高めることができる。そして、これは資産保護を強化する。さらに、鍵の暴露に対する保護を向上させることができる。他の実施の形態は、鍵生成に依然としてセキュリティホールがある場合に弱い鍵の危険性を低減することができる。
一態様によれば、パッチサーバは、パッチクライアントに接続され、パッチクライアントにパッチを提供する。パッチサーバは、第1の鍵生成プラットフォーム、第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォーム、第1の鍵セレクタ、第2の鍵セレクタ、第1の署名生成器、第2の署名生成器、及び送信器を含む。第1の鍵生成プラットフォームは、複数の第1の秘密鍵を含む第1の秘密鍵群を生成するように構成される。第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォームは、複数の第2の秘密鍵を含む第2の秘密鍵群を生成するように構成される。第1の鍵セレクタ及び第2の鍵セレクタは、第1の秘密鍵群及び第2の秘密鍵群から第1の秘密鍵及び第2の秘密鍵のうちの1つをそれぞれ選択するように構成される。第1の署名生成器は、パッチ及び選択された第1の秘密鍵に基づいて第1のデジタル署名を生成するように構成される。第2の署名生成器は、パッチ及び選択された第2の秘密鍵に基づいて第2のデジタル署名を生成するように構成される。送信器は、第1のデジタル署名及び第2のデジタル署名と共にパッチをパッチクライアントに送信するように構成される。
さらなる実施の形態では、パッチサーバは、ランダムセッション鍵を生成するように構成されるセッション鍵生成器と、対称暗号アルゴリズムを使用してランダムセッション鍵でパッチを暗号化するように構成される第1の暗号化構成要素と、マスタ鍵でランダムセッション鍵を暗号化するように構成される第2の暗号化構成要素とをさらに備え、上記送信器は、上記第1のデジタル署名及び上記第2のデジタル署名並びに上記暗号化されたランダムセッション鍵と共に上記パッチを暗号化された形態で上記パッチクライアントに送信するようにさらに構成される。
さらなる実施の形態では、パッチサーバの上記第1の暗号化構成要素は、上記対称暗号アルゴリズムを使用して、上記ランダムセッション鍵で上記第1のデジタル署名及び上記第2のデジタル署名を暗号化するようにさらに構成され、上記送信器は、暗号化された形態の上記第1のデジタル署名及び上記第2のデジタル署名並びに上記暗号化されたランダムセッション鍵と共に上記パッチを暗号化された形態で上記パッチクライアントに送信するようにさらに構成される。
別の態様によれば、パッチをパッチクライアントに提供する方法が提供される。複数の第1の秘密鍵を含む第1の秘密鍵群が、第1の鍵生成プラットフォームを使用して生成される。複数の第2の秘密鍵を含む第2の秘密鍵群が、第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォームを使用して生成される。第1の秘密鍵のうちの1つが第1の秘密鍵群から選択され、第2の秘密鍵のうちの1つが第2の秘密鍵群から選択される。第1のデジタル署名が、パッチ及び選択された第1の秘密鍵に基づいて生成される。第2のデジタル署名が、パッチ及び選択された第2の秘密鍵に基づいて生成される。パッチは、第1のデジタル署名及び第2のデジタル署名と共にパッチクライアントに送信される。
さらなる実施の形態では、本方法は、上記パッチに基づいて第1のハッシュ値を計算すること、及び上記第1のハッシュ値に基づいて第2のハッシュ値を計算することをさらに含み、上記第1のデジタル署名を生成することは、上記第2のハッシュ値及び上記選択された第1の秘密鍵に基づいて当該第1のデジタル署名を生成することを含む。
さらなる実施の形態では、本方法は、上記第2のハッシュ値に基づいて第3のハッシュ値を計算することをさらに含み、上記第2のデジタル署名を生成することは、上記第3のハッシュ値及び上記選択された第2の秘密鍵に基づいて当該第2のデジタル署名を生成することを含む。
さらなる実施の形態では、本方法は、複数のハッシュ値を計算することをさらに含み、上記パッチは複数の記録を含み、上記複数のハッシュ値を計算することは、上記パッチに含まれる最後の記録に基づいて当該複数のハッシュ値の第1のハッシュ値を計算することを含み、上記複数のハッシュ値を計算することは、上記パッチに含まれる最後から次の各記録及び当該複数のハッシュ値の最後に計算された各ハッシュ値に基づいて、当該複数のハッシュ値のさらなる各ハッシュ値を計算することをさらに含む。
さらなる実施の形態では、上記第1のデジタル署名を生成することは、上記複数のハッシュ値の最後に計算されたハッシュ値に基づいて当該第1のデジタル署名を生成することを含み、上記パッチを送信することは、当該パッチを上記第1のデジタル署名及び上記第2のデジタル署名並びに上記複数のハッシュ値と共に上記パッチクライアントに送信することを含む。
さらなる実施の形態では、上記第2のデジタル署名を生成することは、上記複数のハッシュ値の最後に計算されたハッシュ値に基づいて当該第2のデジタル署名を生成することを含み、上記パッチを送信することは、当該パッチを上記第1のデジタル署名及び上記第2のデジタル署名並びに上記複数のハッシュ値と共に上記パッチクライアントに送信することを含む。
さらなる実施の形態では、本方法は、どの第1の秘密鍵が上記第1の秘密鍵群から選択されたかを示す第1の鍵インジケータ及びどの第2の秘密鍵が上記第2の秘密鍵群から選択されたかを示す第2の鍵インジケータを含む鍵インジケータを生成することをさらに含み、上記パッチを送信することは、当該パッチを上記第1のデジタル署名及び上記第2のデジタル署名並びに上記鍵インジケータと共に上記パッチクライアントに送信することを含む。
さらなる実施の形態では、上記鍵インジケータを生成することは、上記第1のデジタル署名及び上記第2のデジタル署名のうちの一方をダミー署名として識別するダミーインジケータをさらに含む当該鍵インジケータを生成することを含む。
さらなる実施の形態では、本方法は、ランダムセッション鍵を生成すること、対称暗号アルゴリズムを使用して、上記パッチを上記ランダムセッション鍵で暗号化すること、及び上記ランダムセッション鍵をマスタ鍵で暗号化することをさらに含み、上記パッチを送信することは、上記第1のデジタル署名及び上記第2のデジタル署名並びに上記暗号化されたランダムセッション鍵と共に上記パッチを暗号化された形態で上記パッチクライアントに送信することを含む。
さらなる実施の形態では、本方法は、上記対称暗号アルゴリズムを使用して、上記第1のデジタル署名及び上記第2のデジタル署名を上記ランダムセッション鍵で暗号化すること、及び上記ランダムセッション鍵をマスタ鍵で暗号化することをさらに含み、上記パッチを送信することは、上記暗号化された第1のデジタル署名及び上記暗号化された第2のデジタル署名並びに上記暗号化されたランダムセッション鍵と共に当該パッチを暗号化された形態で上記パッチクライアントに送信することを含む。
さらなる態様は、パッチサーバに接続されてパッチサーバからパッチを受信するパッチクライアントに関連する。パッチクライアントは、第1の記憶手段及び第2の記憶手段、第1の鍵セレクタ及び第2の鍵セレクタ、並びに第1の署名検証構成要素及び第2の署名検証構成要素を備える。第1の記憶手段は、第1の鍵生成プラットフォームにより生成された複数の第1の公開鍵を含む第1の公開鍵群を記憶する。第2の記憶手段は、第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォームにより生成された複数の第2の公開鍵を含む第2の公開鍵群を記憶する。第1の鍵セレクタ及び第2の鍵セレクタは、第1の公開鍵群及び第2の公開鍵群から第1の公開鍵及び第2の公開鍵のうちの1つをそれぞれ選択するように構成される。第1の署名検証構成要素は、選択された第1の公開鍵を使用して、パッチと共にパッチサーバから受信する第1のデジタル署名を検証するように構成される。第2の署名検証構成要素は、選択された第2の公開鍵を使用して、パッチと共にパッチサーバから受信する第2のデジタル署名を検証するように構成される。パッチクライアントは、第1のデジタル署名及び第2のデジタル署名の検証結果が第1のデジタル署名及び第2のデジタル署名の真正性並びに完全性をそれぞれ示す場合のみ、パッチをインストールするように構成される。
さらなる実施の形態では、パッチクライアントは、上記パッチに基づいて第1のハッシュ値を計算するように構成される第1のハッシャと、上記第1のハッシュ値に基づいて第2のハッシュ値を計算するように構成される第2のハッシャとをさらに備え、上記第1の署名検証構成要素は、上記第2のハッシュ値に基づいて上記第1のデジタル署名を検証するようにさらに構成される。
さらなる実施の形態では、パッチクライアントは、上記第2のハッシュ値に基づいて第3のハッシュ値を計算するように構成される第3のハッシャをさらに備え、上記第2の署名検証構成要素は、上記第3のハッシュ値に基づいて上記第2のデジタル署名を検証するようにさらに構成される。
さらなる実施の形態では、上記第1の署名検証構成要素は、上記パッチと共に上記パッチサーバから受信される第1のハッシュ値に基づいて、上記第1のデジタル署名を検証するようにさらに構成され、上記第2の署名検証構成要素は、上記第1のハッシュ値に基づいて上記第2のデジタル署名を検証するようにさらに構成される。
さらなる実施の形態では、上記第1の鍵セレクタは、上記パッチと共に上記パッチサーバから受信される第1の鍵インジケータに従って上記第1の公開鍵のうちから上記1つの第1の公開鍵を選択するようにさらに構成され、上記第2の鍵セレクタは、上記パッチと共に上記パッチサーバから受信される第2の鍵インジケータに従って上記第2の公開鍵のうちから上記1つの第2の公開鍵を選択するようにさらに構成される。
さらなる実施の形態では、パッチクライアントは、上記パッチと共に上記パッチサーバから受信されるダミーインジケータが、上記第1のデジタル署名又は上記第2のデジタル署名をダミー署名としてそれぞれ識別する場合、当該第1のデジタル署名又は当該第2のデジタル署名を検証する結果を無視するようにさらに構成される。
さらなる実施の形態では、パッチクライアントは、マスタ鍵を記憶する第3の記憶手段と、上記パッチと共に上記パッチサーバから受信される暗号化されたランダムセッション鍵を復号化して、ランダムセッション鍵を得るように構成される第1の復号化構成要素と、上記ランダムセッション鍵を使用して対称復号化アルゴリズムを適用することにより上記パッチを復号化するように構成される第2の復号化構成要素とをさらに備える。
さらなる実施の形態では、上記第2の復号化構成要素は、上記ランダムセッション鍵を使用して上記対称復号アルゴリズムを適用することにより、上記第1のデジタル署名及び上記第2のデジタル署名を復号化するようにさらに構成される。
さらなる実施の形態では、上記マスタ鍵は、上記第3の記憶手段に記憶されている他の情報の中に隠されて上記第3の記憶手段に記憶される。
さらなる実施の形態では、上記マスタ鍵は、パッチクライアントの製造工程中に上記第3の記憶手段に入力される。
さらなる実施の形態では、上記第1の公開鍵群及び上記第2の公開鍵群は、パッチクライアントの製造工程中に上記第1の記憶手段及び上記第2の記憶手段にそれぞれ入力される。
さらに別の態様によれば、パッチをパッチクライアントにインストールする方法が提供される。パッチは、第1のデジタル署名及び第2のデジタル署名と共にパッチクライアントに接続されたパッチサーバから受信される。第1の鍵生成プラットフォームにより生成された複数の第1の公開鍵を含む第1の公開鍵群が、パッチクライアントに記憶される。さらに、第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォームにより生成された複数の第2の公開鍵を含む第2の公開鍵群が、パッチクライアントに記憶される。第1の公開鍵のうちの1つの鍵及び第2の公開鍵のうちの1つの鍵が、第1の公開鍵群及び第2の公開鍵群からそれぞれ選択される。第1のデジタル署名が選択された第1の公開鍵を使用して検証され、第2のデジタル署名が選択された第2の公開鍵を使用して検証される。パッチは、第1のデジタル署名及び第2のデジタル署名の検証結果が、第1のデジタル署名及び第2のデジタル署名の真正性並びに完全性をそれぞれ示す場合のみ、パッチクライアントにインストールされる。
さらなる実施の形態では、本方法は、上記パッチに基づいて第1のハッシュ値を計算すること、及び上記第1のハッシュ値に基づいて第2のハッシュ値を計算することをさらに含み、上記第1のデジタル署名を検証することは、上記第2のハッシュ値に基づいて当該第1のデジタル署名を検証することを含む。
さらなる実施の形態では、本方法は、上記第2のハッシュ値に基づいて第3のハッシュ値を計算することをさらに含み、上記第2のデジタル署名を検証することは、上記第3のハッシュ値に基づいて当該第2のデジタル署名を検証することを含む。
さらなる実施の形態では、本方法は、上記パッチと共に上記パッチサーバから第1のハッシュ値を受信することをさらに含み、上記第1のデジタル署名を検証することは、上記第1のハッシュ値に基づいて当該第1のデジタル署名を検証することを含み、上記第2のデジタル署名を検証することは、上記第1のハッシュ値に基づいて当該第2のデジタル署名を検証することを含む。
さらなる実施の形態では、本方法は、上記パッチと共に上記パッチサーバから第1の鍵インジケータ及び第2の鍵インジケータを受信することをさらに含み、上記第1の公開鍵のうちの上記1つの鍵を選択することは、上記第1の鍵インジケータに従って上記第1の公開鍵のうちの当該1つの鍵を選択することを含み、上記第2の公開鍵のうちの上記1つの鍵を選択することは、上記第2の鍵インジケータに従って上記第2の公開鍵のうちの当該1つの鍵を選択することを含む。
さらなる実施の形態では、本方法は、上記パッチと共に上記パッチサーバからダミーインジケータを受信すること、及び上記ダミーインジケータが、上記第1のデジタル署名又は上記第2のデジタル署名をそれぞれダミー署名として示す場合、当該第1のデジタル署名又は当該第2のデジタル署名の検証結果を無視することをさらに含む。
さらなる実施の形態では、本方法は、上記パッチサーバから上記パッチと共に暗号化されたランダムセッション鍵を受信すること、マスタ鍵を上記パッチクライアントに記憶すること、上記マスタ鍵を使用して上記暗号化されたランダムセッション鍵を復号化することであって、それにより、ランダムセッション鍵を得る、復号化すること、及び上記ランダムセッション鍵を使用して対称復号化アルゴリズムを適用することにより、上記パッチを復号化することをさらに含む。
さらなる実施の形態では、本方法は、上記ランダムセッション鍵を使用して、上記対称復号化アルゴリズムを適用することにより上記第1のデジタル署名及び上記第2のデジタル署名を復号化することをさらに含む。
さらなる実施の形態では、上記マスタ鍵を上記パッチクライアントに記憶することは、当該マスタ鍵を当該パッチクライアントに記憶されている他の情報の中に隠して記憶することを含む。
さらなる実施の形態では、本方法は、上記パッチクライアントの製造工程中に、上記マスタ鍵を当該パッチクライアントに入力することをさらに含む。
さらなる実施の形態では、本方法は、上記パッチクライアントの製造工程中に、上記第1の公開鍵群及び上記第2の公開鍵群を当該パッチクライアントに入力することをさらに含む。
添付図面は、本発明の原理を説明するために本明細書に組み込まれてその一部を成す。図面は、本発明を、本発明をどのように作って使用することができるかについて例示され説明される例のみに限定するものとして解釈されるべきではない。さらなる特徴及び利点が、添付図面に示される本発明の以下のより具体的な説明から明らかになるであろう。
本発明の例示的な実施形態について、図面を参照してこれより説明する。パッチクライアント、例えば或る装置の埋め込みプロセッサのソフトウェアは、パッチを安全ではないシステムから得る可能性がある。本実施形態は、これらパッチが適用されるときに改竄されないことを保証することができる。例えば、或るウィルス又はワームにより悪意のあるパッチが行われ得る。ソフトウェア又はパッチ自体の未発見のセキュリティホールが同じ影響を有することも可能であり得る。本実施形態は、パッチクライアントをこのような状況の悪影響から保護することができる。
図1に、一実施形態によるパッチシステムの構成要素を示す。パッチサーバ100は複数のパッチクライアント140に接続されて、セキュリティ関連ソフトウェアアップデート、すなわちパッチをパッチクライアントに提供する。パッチクライアントは、例えば、埋め込みシステム、パーソナルコンピュータ、又はメディア/通信装置であってもよい。パッチクライアントは、任意の種類の適した接続、例えば、無線又は有線接続を通じてパッチサーバ100に接続することができる。パッチサーバ100はコンピュータ又は分散コンピュータシステムであってもよい。
図示の実施形態によれば、パッチサーバ100は3つの鍵生成プラットフォーム110、120、130を含む。プラットフォーム110、120、130は互いに別個であることができ、鍵の生成及び処理の両方の機能を提供することができる。一般に、プラットフォームは、ソフトウェアを実行できるようにするハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方の或る種の枠組みを表す。本実施形態の鍵生成プラットフォーム110、120、130は、異なるアプリケーション及びハードウェアに基づき、並列に使用することができる。これは、鍵生成装置に組み込まれたトラップドアに関してセキュリティを向上させることができる。しかし、HSM(ハードウェアセキュリティモジュール)が許容できる唯一のベースである実施形態では、鍵生成に異なるソフトウェア及びハードウェアを使用することは重要ではない可能性がある。
実施形態によれば、第1の鍵生成プラットフォーム110は、nCipherのnShield HSMのいくらかの助けにより鍵を生成して記憶する。第2の鍵生成プラットフォーム120は、Knoppix Linuxの下で鍵を生成して使用することができる。Knoppix Linuxは、RAM(ランダムアクセスメモリ)のみで動作し、ハードディスクにトレースを残さない。生成された鍵は、暗号化された形態で外部に記憶することができる。第2の鍵生成プラットフォーム120での鍵処理は、OpenSSLにより達成することができる。さらに、秘密鍵をアンロックして使用するには2人の異なる人が順にタイプしなければならないように、長いパスフレーズを分割することができる。第3の鍵生成プラットフォーム130は、従来通りにOpenSSLにより鍵を処理するが、SELinux(セキュリティ強化Linux)システム又は或る等価の高セキュリティオペレーティングシステムの下でそれを行う。別法として、第3の鍵生成プラットフォーム130はクリプトカードを使用することができる。
秘密鍵の漏出を防ぐことに関する信頼性を高めるために、秘密共有法(「(k,n)閾値法(k of n operator cards)」)をnShieldに使用することができる。独立した当事者を署名プロセスに含め、鍵を第1の鍵生成プラットフォーム110の2人の管理者又は管理者群に分けることができる。
本実施形態のパッチシステムは、鍵生成プラットフォーム110、120、130により生成されて管理される秘密鍵の様々なサブセットを使用する複数の署名でパッチに署名する。対応する公開鍵も鍵生成プラットフォーム110、120、130によりそれぞれ生成し、パッチクライアント140の製造中にパッチクライアント140に入力することができる。次いで、公開鍵をパッチクライアント140の公開鍵行列150に記憶する。
パッチは、パッチクライアント140に送信される前に、ランダムセッション鍵を使用して対称暗号化することができる。そして、ランダムセッション鍵を、すべてのパッチクライアント140に一般的に使用することができる、鍵暗号鍵(KEF)160とも呼ばれる秘密マスタ鍵を使用して暗号化することができる。これは、従来技術によるPKCシステムからの速度及び簡易さの増大を提供することができる。さらに、暗号化アルゴリズムの未知の弱点に対する保護を増大させることができる。同じ鍵で暗号化される平文の部分がより小さいため、攻撃者がこれらの弱点を利用することが難しくなり得る。KEK鍵160は、パッチサーバ100により安全に記憶することができる。
パッチクライアント140では、KEK鍵160を隠れた形態で記憶してセキュリティを向上させることができる。このために、ハードウェア手段及びソフトウェア手段を組み合わせることができる。例えば、128ビット鍵を、いくつかの128ビット部分からのXOR(排他的OR)ゲーティング(秘密分割)を介して構築することができる。データをプログラムにわたって分散させることができ、これを見つけることは困難である。
さらに、例えば、プログラムのいくつかのまったく異なる場所にあるマクロにより行われたクレイジー計算を介して動的に割り当てられる関数ポインタを使用することにより、リバースエンジニアリングへの対策を提供すると共に、デバッガを使用できないようにすることができる。このような秘密分割は、実際に誰にも鍵を知られずに、プログラムのみが実行中に一時的に鍵を構築できるように、暗号化中に利用することができる。
公開鍵行列150及び鍵暗号鍵160は、各パッチクライアント140がユーザに販売される前にベンダーによりパッチクライアント140にプラグインすることができる。対応する秘密鍵は、ベンダー側の安全な場所に残すことができる。本実施形態でのように、公開鍵は固定であり、秘密鍵の変更は不可能であり、破棄のみが可能である。したがって、秘密鍵をパッチサーバ100内に隠すことができる。
各パッチクライアント140は、リプレイ攻撃を防ぐために、最後に受信したパッチのシーケンス番号を記憶するリセット不可能カウンタを含むことができる。これにより、既知のセキュリティホールを有するより古いパッチが適用されるのを防ぐことができる。このために、パッチクライアント140は、例えば、パッチと共に受信するタイムスタンプを無線受信する時刻と突き合わせてチェックすることができる。
各パッチは複数のパッチ記録を含むことができる。オーバーフローを使用した攻撃を防ぐために、パッチ記録の数及びサイズはソフトウェアにより制限することができる。パッチングが完了している限り、パッチ記録をアクティブ化しなくてもよい。したがって、単一のパッチ記録のチェックサムを計算する必要がなくてもよい。
本実施形態によれば、12個の鍵ペアがパッチの署名に使用される。各パッチは3つの署名を含むことができ、各署名は、より詳細に後述するように、4個から成る群からの1つの鍵に基づく。根本的な原理を図2及び図3に示す。
図2は、パッチサーバ100により生成され管理される1組の秘密鍵200〜255を示す。第1の秘密鍵群260は4つの秘密鍵200〜215を含むことができる。同様に、第2の秘密鍵群270は4つの他の秘密鍵220〜235を含むことができ、第3の秘密鍵群280はさらなる4つの秘密鍵240〜255を含むことができる。第1の鍵生成プラットフォーム110、第2の鍵生成プラットフォーム120、及び第3の鍵生成プラットフォーム130が、第1の秘密鍵群260、第2の秘密鍵群270、及び第3の秘密鍵群280をそれぞれ生成し処理することができる。一実施形態によれば、3つの秘密鍵群260、270、280は異なる信用レベルを有し得る。
鍵生成プラットフォーム110、120、130では、HSMを使用して、秘密鍵200〜255の違法抽出を防ぐことができる。別法として、例えば、安全な記憶並びに完全な信頼性という利点を提供することができる、HSM及びKnoppix/OpenSSLに基づく「混合鍵」を使用してもよい。さらに、これにより、別のHSM装置を必要とすることなく鍵の生成及び鍵の復元を制御することができる。秘密鍵200〜255へのアクセス権は、協働しない群に分割することができる。さらに、秘密共有(HSMの場合には(3,5)閾値法)の原理を利用することができる。
対応する公開鍵は、図3により詳細に示す、パッチクライアント140の行列150に記憶することができる。
第1の公開鍵群360は、第1の秘密鍵群260の秘密鍵200〜215のそれぞれに対応する4つの公開鍵300〜315を含むことができる。第1の公開鍵群360は、第1の鍵生成プラットフォーム110により生成されて、製造中にパッチクライアント140に入力しておくことができる。第2の鍵生成プラットフォーム120により生成されて、且つベンダーによりパッチクライアント140に入力された第2の公開鍵群370は、第2の秘密鍵群270の秘密鍵に対応する4つの公開鍵320〜335を含むことができる。最後に、第3の公開鍵群380は、第3の秘密鍵群280の4つの秘密鍵240〜255に対応する4つの公開鍵340〜355から成ることができる。第3の公開鍵群380は、第3の公開鍵生成プラットフォーム380により生成され、販売前にパッチクライアント140に記憶しておくことができる。
秘密鍵200〜255は標準化されたフォーマットで生成することができる。これは、鍵のバックアップ及び惨事復元を提供することができる。さらに、鍵生成は、任意のセキュリティプロバイダに依存しなくてもよい。RSA暗号を適用する実施形態では、公開鍵300〜355は、モジュラス(すなわち、秘密鍵素数の積pq)及び公開鍵指数を介してC個のヘッダとして直接処理することができる。署名は、RSAのCryptoCME及びBSAFEライブラリ並びにHSM装置と協働するOpenSSLによりサポートされるPKCS#1(公開鍵暗号化標準#1)において生成することができる。
一実施形態では、公開鍵300〜355は1024ビット長であることができる。しかし、他の実施形態では、他の鍵長を使用してもよい。例えば、512ビットRSA又はDSA(デジタル署名アルゴリズム)鍵を使用して、記憶容量及び署名チェックの計算時間を節減することができる。KEK鍵160とは対照的に、公開鍵300〜355はパッチクライアント140内に隠さなくてもよい。本実施形態によれば、KEK鍵160はすべてのパッチクライアント140のマスタ鍵であり、ビット長128ビットを有する。例えば、KEK鍵160は128ビットAES鍵であることができる。別法として、128ビットトゥーフィッシュ鍵又は256ビットAES鍵、又は他の任意の適した鍵をKEK鍵160に使用してもよい。
12個の鍵ペアをパッチの署名に使用することが単なる特定の例にすぎないことに留意されたい。別法として、より少数又は多数の鍵群を利用してもよく(この場合、パッチサーバ100はそれぞれ、より少数又はより多数の鍵生成プラットフォームを含む)、各公開/秘密鍵群が4つよりも少数又は多数の公開/秘密鍵を含んでもよい。さらに、行列内の鍵の配置は、例示だけのために選択されたものである。公開鍵及び秘密鍵を記憶するために他の様々な形態を使用してもよい。特に、3つの秘密鍵群260、270、280は、3つの鍵生成プラットフォーム110、120、130を使用して別個に記憶して処理することができる。セキュリティのために、各秘密鍵群260、270、280の個々の秘密鍵200〜255でさえも別個に記憶することができる。
これより、図4〜図8、図11および図14を参照して、第1の実施形態によるパッチサーバ100の動作について説明する。この実施形態では、パッチクライアント140は、パッチ全体を読み取った後に、パッチと共にパッチサーバ100から提供される署名を検証することができる。
図4は、実施形態によるパッチサーバ100の全体的な動作を示す。ステップ400において、ハッシュチェインを行うことができる。ハッシュチェイン400は、図5に示すような4つのステップを含み得る。
最初に、ステップ510において、パッチをハッシングすることにより、基本ハッシュ値Hを計算することができる。その後、ステップ520において、基本ハッシュ値Hと値0を有するバイトとの結合(H|‘0’)をハッシングすることにより、第1のハッシュ値Hを計算することができる(ここで、「|」は結合を意味し、‘0’は値0を有するバイトである)。次いで、ステップ530において、ステップ520において計算された第1のハッシュ値Hと値1を有するバイト‘1’との結合(H|‘1’)をハッシングすることにより、第2のハッシュ値Hを計算することができる。最後に、ステップ530から得られる第2のハッシュ値Hと値2を有するバイト‘2’との結合(H|‘2’)をハッシングすることにより、第3のハッシュ値Hを計算することができる(ステップ540)。
本実施形態によれば、各パッチは、ステップ420において3つのハッシュ値H、H、及びHに基づいて計算される(以下参照)3つの署名を含むことに留意されたい。他の実施形態では、パッチはより少数又はより多数の署名を含んでもよい。これら実施形態では、ハッシュチェイン400はそれに応じてより短い場合もあれば、より長い場合もある。
図4に戻ると、ここで、ステップ420において署名を作成するための秘密鍵をステップ410において選択することができる。本実施形態による秘密鍵選択410の個々のステップを図6に示す。
秘密鍵は、ステップ610において、第1の秘密鍵群260から選択することができる。次いで、ステップ620において、第2の秘密鍵を第2の秘密鍵群270から選択することができる。同様に、ステップ630において、第3の秘密鍵を第3の秘密鍵群280から選択することができる。
図示するステップの順番は単に例示のためだけに選択されたことを理解されたい。もちろん、秘密鍵は任意の他の順序で選択してもよい。別法として、ステップ400においてハッシュチェインを実行する前に、秘密鍵のいくつか又はすべてを選択してもよい。さらに、異なる数の秘密鍵群260〜280を使用する実施形態では、秘密鍵の選択410は、それに応じて図6に示す3つのステップ600〜630よりも少数又は多数の選択ステップを含み得る。
秘密鍵の選択410の後、ステップ420において、3つのデジタル署名D〜Dを生成することができ、これらを後に、真正性及び完全性をチェックできるように、パッチクライアント140に送信されるパッチに追加することができる。秘密鍵の選択410を図7により詳細に示す。
ステップ710において、ステップ610において選択された第1の秘密鍵を使用して、ステップ520において計算された第1のハッシュ値Hに署名することにより、第1のデジタル署名Dを計算することができる。次いで、ステップ720において、ステップ620において第2の秘密鍵群270から選択された第2の秘密鍵を使用して、ステップ530から得られる第2のハッシュ値Hに署名することにより、第2のデジタル署名Dを計算することができる。最後に、ステップ730において、ステップ630において選択された第3の秘密鍵を使用して、ステップ540において計算された第3のハッシュ値Hに署名することにより、第3のデジタル署名Dを計算することができる。したがって、本実施形態は各種類の1つの鍵に基づく三重署名(signature triples)を利用する。
それにより、ハッシュ値H〜Hのそれぞれを署名することは、選択された各秘密鍵を使用しての暗号化(又は利用される署名アルゴリズムに応じて復号化)が後に続く別のハッシュ演算を含み得る。別法として、単に、対応する選択された秘密鍵で各ハッシュ値H〜Hを暗号化又は復号化することにより、デジタル署名D〜Dを計算してもよい。鍵生成プラットフォーム110〜130にどの実施が使用されるかに応じて、デジタル署名D〜Dの作成に他のアルゴリズムを使用することができる。ここでも、図7に示すステップの特定の順番は単に例示的な性質を有するにすぎない。他の実施形態では、デジタル署名D〜Dは任意の他の順番で作成してもよく、又は署名作成ステップ420を、ハッシュチェインステップ400及び/又は秘密鍵選択ステップ410に差し込むこともできる。例えば、第1のハッシュ値Hが計算され(ステップ520)、第1の秘密鍵が選択された(ステップ610)直後に、第1のデジタル署名Dを計算するステップ710を実行してもよい。第2のデジタル署名Dの計算720も同様に前に持ってくることができる。さらに、より多数又はより少数のデジタル署名がパッチに追加される実施形態では、署名作成420はそれに応じてより多数又はより少数の計算ステップを含み得る。
ステップ420において署名が作成された後、ステップ430において、署名のうちの1つをダミー署名とすべきか否かを判断することができる。ダミー署名の使用により、侵害された鍵又は失われた鍵を安全にスキップすることが可能になる。例えば、仮にステップ610〜630のうちの1つのステップにおいて、侵害されていることが分かっている秘密鍵が選択された場合、ステップ430において、対応するデジタル署名をダミー署名にすべきであると判断することができる。このために、パッチサーバ100は、秘密鍵200〜255のどれが盗まれたか、又は失われたこと、すなわちこれ以上使用すべきではないことを何等かの適当な形態で記憶することができる。これは、例えば、対応するルックアップテーブルを保持することにより行うことができる。したがって、本実施形態によれば、失われた鍵、又は盗まれた鍵を安全にスキップすることができる。そのような鍵を取り消して交換する必要はなくてもよい。
ダミー署名を使用すべき場合、ステップ440において、ステップ420において作成された各デジタル署名をダミーで置き換えることができる。別法として、署名をダミー署名にすべきか否かの判断430は、署名作成前にしてもよく、署名をダミー署名とすべき場合、各署名にダミーを直接使用して、対応する署名作成ステップ710、720、730をスキップすることができる。
ステップ450において、鍵インジケータを作成することができる。鍵インジケータは、3つの秘密鍵群260、270、280からどの鍵がステップ410において選択されたかを特定することができる。鍵インジケータの例示的な構成を図11に示す。
本実施形態によれば、鍵インジケータは8ビット整数値である。最初の2ビットは、第1の秘密鍵群260の4つの秘密鍵200〜215のうちのどれが、第1のデジタル署名Dの作成用に選択されたかを指定する第1の鍵インジケータ1210を表すことができる。例えば、これら最初の2ビットの値が3である場合、これは、第3の秘密鍵210がステップ610において選択され、ステップ710において適用されたことを示すことができる。次の2ビットは、第2の秘密鍵群270の4つの秘密鍵220〜235のうちのどれが、第2のデジタル署名の作成(ステップ720)用に選択された(ステップ620)かを示す第2の鍵インジケータ1220を構築することができる。同様に、第5のビット及び第6のビットを第3の鍵インジケータ1230に使用して、ステップ730での第3のデジタル署名の生成用に、4つの秘密鍵240〜255のうちのどれがステップ630において選択されたかを特定することができる。
より多数又はより少数の秘密鍵群が使用される実施形態では、鍵インジケータはそれに応じてより多数又はより少数の個々の鍵インジケータ1210〜1230を含むことができる。さらに、各秘密鍵群260、270、280が4つよりも多数又は少数の秘密鍵を含む実施形態があってもよい。この場合、第1の鍵インジケータ1210〜第3の鍵インジケータ1230はそれに応じてより長くてもよく、又はより短くてもよい。さらに、個々の鍵インジケータ1210〜1230は異なる順序であってもよい。
鍵インジケータは、ダミー署名が使用されたか否か、使用された場合、署名のどれがダミー署名であるかをさらに特定することができる。このために、図11に示す鍵インジケータの最後の2ビットは、ダミーインジケータ1240を表す。本実施形態によれば、ダミーインジケータ1240は、その2ビットの値が0である場合、3つすべての署名D〜Dが有効な署名であることを特定する。値が1、2、又は3の場合、それにより第1の署名、第2の署名、又は第3の署名がそれぞれダミー署名であることを示すことができる。別法として、もちろん、ダミーインジケータの値を別様に割り当ててもよい。
他の実施形態では、3つよりも多数又は少数の署名を使用して、パッチを署名してもよい。その場合、ダミーインジケータ1240はそれに応じて2ビットよりも長くてもよく、又は短くてもよい。さらに、2つ以上の署名がダミー署名であってもよい。このような実施形態では、ダミーインジケータ1240も2ビットよりも長くなり得る。
鍵インジケータが作成されると、ステップ460において、パッチブロックを組み立てることができる。本実施形態によれば、パッチブロックは図11に示すフォーマットを有する。
図11に示すように、パッチブロック1100は、ステップ710において作成された第1のデジタル署名1110で開始することができ、その後、ステップ720及び730においてそれぞれ生成された第2のデジタル署名1120及び第3のデジタル署名1130に続く。署名1110〜1130に続き、パッチブロック1110はステップ450から得られる鍵インジケータ1140を含むことができる。最後に、パッチ1150自体をパッチブロック1140に含めることができる。図11に示すパッチブロック1100の特定の構成を、本発明を限定するものとして解釈すべきではない。他の実施形態では、パッチブロック1100は別の方法で配置することができる。
パッチブロックの組み立て後、ステップ470において、KEK暗号化を行うことができる。本実施形態によるKEK暗号化470を図8により詳細に示す。
ステップ810において、以下において対称鍵とも呼ばれるランダムセッション鍵を生成することができる。セッション鍵の生成は、例えば、nCipher HSM装置のオペレータカード上で共有される秘密鍵により、パスフレーズの分割された部分によりセキュア化することができる。他の実施形態では、対称鍵をパッチ送信処理中に生成しなくてもよく、それに代えて、予め生成してパッチサーバ100に記憶してもよい。このような実施形態では、対称鍵をハードウェア内で隠すことができる。これは様々な方法で達成することができる。例えば、コードは通常、多くの人々に見られることになるため、分散ソースからの鍵生成がこの目的を果たすことができる。これにより、鍵がどのように作成されたかのすべての詳細を誰にも知られずに、必要な場合にはすべての情報を再構築することができるようになる。別法として、対称鍵を或るHSM内に隠すことができる。さらに、このような実施形態のパッチサーバ100は、対称鍵が失われた場合に対称鍵を再構築するための何等かの堅牢な方法を含むことができる。
ステップ820において、ランダムセッション鍵を使用して、ステップ460において組み立てられたパッチブロック1100を暗号化することができる。これは、AES暗号化を使用して達成することができる。最後に、ステップ830において、KEK鍵160を使用してランダムセッション鍵を暗号化することができる。他の実施形態では、ステップ820及び830は逆順に実行してもよい。
KEK暗号化470中、すべての情報(いくつかの理由により平文である必要があり得るヘッダ部を除く)を出力フィードバックモード(OFB)で暗号化することができる。これにより、パッチを後にパッチクライアント140においてストリームとして復号化することができるようになる。パディングは必要でなくてよく、何等問題なく、記録毎の復号化が可能であり得る。代替の実施形態では、代わりに、暗号フィードバックモード(CFB)をストリーム暗号化に使用してもよい。CFBモードは平文依存であり、エラーが少なくとも1ブロックにわたって拡散する。しかし、OFBモードを使用する場合、或る攻撃者による1ビットの反転又は追加であっても、ブロック破損と同じ致命的な影響を有し、パッチクライアント140でのデジタル署名検証は両方の場合で失敗することになる。したがって、OFBモードを使用する場合、セキュリティが強化される。
デジタル署名D〜Dは、KEK暗号化ステップ470を実行する前にパッチブロック1100(ステップ460)に含められるため、デジタル署名も、本実施形態による暗号化により保護される。これは、攻撃者がセキュリティホールを見つける危険性を低減することができる。
対称KEK暗号化470をさらに安全にするために、OFBモードで使用される初期化ベクトルを一意に、すなわちすべてのパッチ間で決して繰り返すことができないように選択することができる。これは、例えば、初期化ベクトルの固定部にシーケンス番号を含めることにより達成することができる。別法として、タイムスタンプをこのために使用してもよい。
ここで図4に戻り、ステップ480において、送信ブロックを組み立てることができる。本実施形態の送信ブロックの構成を図14に示す。
特に、送信ブロック1400は、暗号化されたパッチ1420が後に続く暗号化されたセッション鍵1410から成ることができ、これらはそれぞれステップ830及び820から生成される。本実施形態によれば、暗号化されたセッション鍵は128ビット長である。他の実施形態では、別法として他のセッション鍵長を使用してもよい。最後に、ステップ490において、送信ブロックをパッチクライアント140に送信することができる。
すでに述べたように、署名中のハードウェア故障は秘密鍵を暴露し得る。この危険性を回避するために、ステップ420において作成された署名を、パッチクライアント140に送信する(ステップ490)前にチェックすることができる。それにより、各署名D〜Dを異なるプログラムによりチェックすることができる。例えば、(まだ販売されていない)パッチクライアント140が、チェックすべき署名を含む実際のパッチで起動するか否かをベンダーにより検証することができる。
上記実施形態によれば、パッチクライアント140のデジタル署名D〜Dの検証は、パッチ1150の全体を読み取った後でのみ可能であり得る。しかし、他の実施形態では、パッチのあらゆる記録の真正性及び完全性を復号化直後にチェックすることが望ましいことがある。これにより、図9、図10、及び図13を参照してこれより説明する第2の実施形態を可能にすることができる。
この実施形態では、パッチサーバ100の全体の動作が図4に示す動作に対応することができ、秘密鍵選択410、ダミー処理430及び440、鍵インジケータ作成450、KEK暗号化470、送信ブロック組み立て480並びに送信ブロック送信490は上述したものと同じであり得る。しかし、変更されたハッシュチェイン400及び署名作成420を利用することができる。さらに、パッチブロック組み立て460により、上記とは異なる構成を有するパッチブロックを生成することができる。
まず、パッチブロックを扱い、本実施形態によるその構成を図13に示す。第1の実施形態のパッチブロック1100と同様に、パッチブロック1300は3つのデジタル署名(D〜D)1310、1320、1330で始まり、その後に鍵インジケータ1340が続くことができる。鍵インジケータ1340は、図11を参照して上述した鍵インジケータ1140に対応することができる。しかし、デジタル署名1310、1320、1330は、図10を参照して後述するように、第1の実施形態のデジタル署名とは異なる方法で計算することができる。さらに、パッチの各記録(R〜R)1355、1365、1375、1385の前に、暗号ハッシュ値(H〜H)1350、1360、1370、1380を配置することができる。
本実施形態によるハッシュ値1350、1360、1370、1380の計算は、図4のステップ400において実行され、図9により詳細に示される。
まず、ステップ910において、送信すべきパッチのn番目の記録R1385と0ビットから成るハッシュ値“”との結合(R|0)をハッシングすることにより、ハッシュ値H1380を計算することができる。代替の実施形態では、ステップ910において記録Rのみをハッシングすることができる。次いで、ステップ920において、(n−1)番目の記録Rn−11375と先に計算されたハッシュ値H1380との結合(Rn−1|H)をハッシングすることにより、ハッシュ値Hn−11370を計算することができる。続けて、ステップ930〜940と同様にしてハッシュ値Hn−2〜Hを計算することができる。他の実施形態では、最後のステップ940をスキップして、ステップ940から得られるハッシュ値Hに代えて第1の記録Rを後続ステップに使用してもよい。しかし、図9に示す実施形態は、より簡易且つより堅牢なプログラミングを可能にすることができる。
本実施形態により変更された書名作成420を図10に示す。
ステップ1010において、図6のステップ610において選択された第1の秘密鍵を使用して第1のハッシュ値H1350を署名する(すなわち、図7に関連して上述したように、ハッシングして暗号化/復号化するか又は単に復号化/暗号化する)ことにより、第1のデジタル署名D1310を計算することができる。それに応じて、ステップ1020において、ステップ620において選択された第2の秘密鍵を使用して第1のハッシュ値H1350を署名することにより、第2のデジタル署名D1320を計算することができる。最後に、ステップ1030において、ステップ630から得られる第3の秘密鍵を使用して第1のハッシュ値H1350を署名することにより、第3のデジタル署名D1330を生成することができる。
ステップの図示された順番は、本発明を限定するものとして解釈されるべきではない。例えば、デジタル署名D〜Dは異なる順序で計算されてもよい。さらに、計算ステップ1010〜1030を図6に示す秘密鍵選択ステップ及び/又は図9に示すハッシュチェインステップに差し込んでもよい。例えば、第1のハッシュ値Hが計算され、対応する秘密鍵が選択された直後にデジタル署名D〜Dを計算してもよい。
パッチサーバ100が、暗号化されたパッチを含む送信ブロック1400をパッチクライアント140に送信すると、公開鍵行列150及びKEK鍵160を使用して、パッチをパッチクライアント140に安全にインストールすることができる。一実施形態による、パッチクライアント140により実行される安全なパッチインストールプロセスについて、図15〜図17を参照してこれより説明する。このパッチインストールプロセスは、デジタル署名D〜D1110、1120、1130がパッチ全体を復号化した後でのみ検証される一実施形態において利用することができる。
まず図15を参照すると、ステップ1500において、送信ブロック1400をパッチクライアント140で受信することができる。次いで、ステップ1510において、KEK鍵160を使用して、暗号化されたランダムセッション鍵1410を復号化することができる。ステップ1520において、ステップ1510において先に得られたランダムセッション鍵を使用して、暗号化されたパッチブロック1420をAESアルゴリズム下で復号化することができる。ステップ1510及び1520での復号化は、図8に関連して上述したOFBモードを使用して達成することができる。
ステップ1530において、署名の検証に使用すべき公開鍵を選択することができる。これを図16により詳細に示す。
まず、ステップ1610において、ステップ1520において先に復号化された第1の鍵インジケータ1210を使用して、第1の公開鍵を第1の公開鍵群360から選択することができる。特に、第1の鍵インジケータ1210が指す、公開鍵300〜315の中の鍵を第1の公開鍵として選択することができる。選択された第1の公開鍵は、ステップ610(図6参照)においてパッチサーバ100により選択された第1の公開鍵に対応することができる。したがって、ステップ1620及び1630は、第2の鍵インジケータ1220及び第3の鍵インジケータ1230をそれぞれ使用して、第2の公開鍵群370及び第3の公開鍵群380から第2の公開鍵及び第3の公開鍵をそれぞれ選択することを含むことができる。第2の公開鍵及び第3の公開鍵は、ステップ620及び630においてパッチサーバ100によりそれぞれ選択された第2の公開鍵及び第3の公開鍵にそれぞれ対応することができる。
もちろん、公開鍵選択ステップ1610〜1630は、任意の他の順序で実行してもよい。さらに、3つよりも多数又は少数の公開鍵群360〜380(及びそれに応じて3つよりも多数又は少数の秘密鍵群260〜280)が使用される実施形態では、公開鍵選択1530はそれに応じてより多数又はより少数の選択ステップを含み得る。
公開鍵を選択した後、ステップ1540において、署名1110〜1130を検証することができる。本実施形態による署名検証のサブステップを図17に示す。
最初に、ステップ700において、ハッシュチェインを実行することができる。実施形態によれば、パッチクライアント140により実行されるハッシュチェイン700は、図5を参照して上述したパッチサーバ100により形成されるハッシュチェインに対応する。
次いで、ステップ710において、ステップ520、530、及び540から得られるハッシュ値H、H及びHのそれぞれを再びハッシングすることができる。ステップ710〜730においてパッチサーバ100により実行される署名がさらなるハッシングを含まず、復号化/暗号化のみを含む実施形態では、ステップ1710をスキップすることができる。
ステップ1710に続き、ステップ1520において暗号化されたパッチブロック1420を復号化したときに得られるデジタル署名(D〜D)1110、1120、1130を、第1の公開鍵、第2の公開鍵、及び第3の公開鍵のそれぞれを使用して復号化することができる。
次いで、ステップ1750〜1770において、ステップ1720〜1740から得られる復号化されたデジタル署名を、ステップ1710において得られた、再びハッシングされたハッシュ値H〜Hのそれぞれと比較することができる。ステップ1710がスキップされる実施形態では、復号化されたデジタル署名をハッシュ値H〜Hのそれぞれと直接比較することができる。
ステップ1780において、デジタル署名(D〜D)1110、1120、1130の中にダミー署名があるか否かを判断することができる。これは、鍵インジケータ1140のダミーインジケータ1240をチェックすることにより達成することができる。
ダミー署名がある場合、ステップ1790において、セキュアパッチインストールプロセスの残りの過程中に、ダミーインジケータ1240によりダミー署名として識別されるデジタル署名を無視することを確定することができる。他の実施形態では、上述したように2つ以上のデジタル署名がダミー署名であってもよい。このような実施形態では、それ以降のパッチインストールプロセス中にすべてのダミー署名を無視することができる。
ステップ1780において、ダミーインジケータ1240がすべてのデジタル署名1110〜1130が有効な署名である、すなわちダミー署名がないことを特定することが明らかになった場合、ステップ1790を行わず、セキュアパッチインストールの後続ステップ中に、すべてのデジタル署名1110、1120、1130を考慮することができる。
署名がステップ1540において検証されると、ステップ1550において、すべてのデジタル署名1110、1120、1130が順序通りか否かを判断することができる。本実施形態によれば、これは、比較ステップ1750〜1770により身元が明らかになった場合である。順序通りの場合、ステップ1560において、パッチをパッチクライアント140にインストールすることができる。ステップ1560は、パッチインストールの成功のリポートをパッチクライアント140のユーザに提供すること、及び/又はパッチサーバ100にそれに応じて通知することを含み得る。
しかし、ステップ1750〜1770のうちの少なくとも1つにより、復号化されたデジタル署名が対応する(ハッシングされた)ハッシュ値と同一ではないことが明らかになった場合、ステップ1570において、受信したパッチをパッチクライアント140にインストールすべきではないと判断することができる。これは、例えば、エラーメッセージをユーザに提供すること、及び/又はパッチサーバ100にパッチインストール失敗を通知することを含むことができる。
図15〜図17に示すステップの特定の順序は単に例示だけのために選択されたことを理解されたい。他の実施形態では、個々のサブステップは異なる順序に配置されてもよく、例えば、復号化ステップ1720〜1740を比較ステップ1750〜1770に差し込んでもよい。さらに、ハッシングステップ1710を3つの異なる個々のサブステップに分け、これを比較ステップ1720〜1770における復号化に差し込んでもよい。さらに、ハッシュチェイン1700の個々のステップ510〜540をハッシング復号化ステップ及び比較ステップ1710〜1770に分散させてもよい。
さらに、より多数又はより少数の秘密鍵群及び公開鍵群が使用される実施形態では、署名検証1540はそれに応じてより多数又はより少数のハッシングステップ、復号化ステップ、及び比較ステップ1710〜1770を含み得る。
さらに、ステップ1780及び1790におけるダミー処理を、第1の復号化ステップ1720の前に、又はさらには署名検証1540が開始されるとき、又は公開鍵選択1530の前に持ってきてもよい。このような実施形態のステップ1780において、特定の署名1110、1120、1130がダミー署名であると判断される場合、対応する公開鍵選択ステップ1530及び署名検証ステップ1700〜1770をスキップすることができる。例えば、第3のデジタル署名Dがダミー署名である場合、必ずしも、ステップ540において第3のハッシュ値Hを計算し、ステップ1630において第3の公開鍵を選択し、ステップ1710において第3のハッシュ値Hをハッシングし、ステップ1740において第3のデジタル署名を復号化し、且つ/又はステップ1770の比較ステップを必ずしも実行しなくてもよい。
すでに上述したように、本実施形態のパッチインストール方式では、暗号化されたパッチブロック1420の全体を復号化した後でのみ、署名を検証することができる。しかし、パッチの個々の記録を復号化した直後にパッチをインストールすべきか否かを検証することが望ましい実施形態があり得る。このような実施形態でのパッチサーバ100の動作については、図9、図10、及び図13に関連して上述した。パッチクライアント140が実行する、対応するセキュアパッチインストールについて、図18〜図20を参照しながらこれより説明する。
図18のステップ1800において、送信ブロック1400をパッチクライアント140において受信することができる。ステップ1810において、送信ブロック1400に含まれる暗号化されたランダムセッション鍵1410を、KEK鍵160を使用して復号化することができる。このステップは図15のステップ1510に対応することができる。
その後、ステップ1820において、ステップ1810において得られたランダムセッション鍵を使用して、暗号化されたパッチブロック1420に含まれる情報を復号化することができる。ステップ1820において実行される復号化は、ステップ1520において実行される復号化と同じように達成することができる。しかし、本実施形態によれば、暗号化された署名及び暗号化された鍵インジケータのみをステップ1820において復号化し得る。暗号化されたパッチブロック1420の残りの部分は、ステップ1840及び1850において後で記録毎に復号化することができる。
ステップ1830において、ステップ1820において検索された鍵インジケータ1340に基づいて、公開鍵を選択することができる。これは、図15を参照して上述した公開鍵選択1530に対応することができる。次いで、ステップ1840において、ステップ1820において得られたデジタル署名(D〜D)1310、1320、1330を検証することができる。これを図19により詳細に示す。
最初に、ステップ1900において、両方とも送信ブロック1400で受信されたパッチの暗号化された第1のハッシュ値及び暗号化された第1の記録を、ステップ1810において得られたランダムセッション鍵を使用して復号化することができる。これは、図15に関連して上述したステップ1520における復号化と同じように達成することができる。その後、ステップ1910において、ステップ1900で復元された第1のハッシュ値H1350をハッシングすることができる。他の実施形態、特に、ステップ1010〜1030においてパッチサーバ100により実行される署名がいかなるハッシングも含まない実施形態では、ステップ1910をスキップすることができる。
その後、ステップ1920〜1940において、ステップ1830においてそれぞれ選択された第1の公開鍵〜第3の公開鍵を使用して、ステップ1820から得られるデジタル署名(D〜D)1310〜1330を復号化することができる。次いで、ステップ1920〜1940の各結果をステップ1950〜1970において、ステップ1910の結果とそれぞれ比較することができる。ステップ1910がスキップされる実施形態では、ステップ1920〜1940から得られる復号化された署名を、代わりにステップ1900から得られるハッシュ値Hと比較することができる。
最後に、ステップ1980及び1990においてダミー署名処理を実行することができる。これは、図17のステップ1780及び1790に関連して上述したダミー署名処理に対応することができる。
ここでも、図18及び図19に示すステップの特定の順序は単なる例示にすぎず、本発明を限定するものとして理解されるべきではない。他の実施形態では、各ステップを異なる順序にしてもよく、例えば、差し込みが可能である。さらに、ステップ1980及び1990のダミー署名処理を前に、例えば、署名検証1840が始まるとき、又は公開鍵選択1830の前に持ってきてもよい。このような実施形態では、ダミーインジケータ1240によりダミー署名として識別されたデジタル署名に関連する公開鍵選択ステップ1830及び署名検証ステップ1900〜1970をすべて、スキップすることができる。
ここで図18に戻ると、ステップ1850において、暗号化されたパッチブロック1420の残りを記録毎に復号化することができる。本実施形態による記録毎のパッチ復号化方式を図20に示す。
これにより、まず、ステップ2000において、すべての署名D〜Dが順序通りであるか否かをチェックすることができる。ステップ2000は、すべての比較ステップ1950〜1970により身元が明らかにされているか否かを判断することを含むことができる。上述したように、結果としてダミーの署名はこの判断において無視することができる。
そうではない場合、すなわち復号化された署名D〜D(ハッシングされた)ハッシュ値Hと同一ではない場合、ステップ2050において、そのパッチはインストールすべきではないと判断することができる。これは図15のステップ1570に対応することができる。
しかし、すべての署名が順序通りである場合、暗号化されたパッチブロック1420に含まれる暗号化された第2のハッシュ値及び暗号化された第2のパッチ記録を、ステップ1810において得られたランダムセッション鍵を使用して復号化することができる。ステップ2005の復号化は、上述したステップ1820の復号化と同じように実行することができる。次いで、ステップ2010において、第1の記録R1355(ステップ1900においてすでに得られている)とステップ2005において得られる第2のハッシュ値H1360との結合(R|H)をステップ2010においてハッシングすることができる。
その結果を、先に得られている(復号化ステップ1900において)ハッシュ値H1350と比較することができる。ステップ2020において、これら2つのハッシュ値が同一ではないと判断される場合、パッチ復号化方式はステップ2050に進み、パッチをインストールすべきか否かを判断する。その他の場合、ステップ2005〜2020を適宜、第3のハッシュ値〜最後のハッシュ値と暗号化されたパッチブロック1420内の各記録とに対して繰り返すことができる。
ステップ2020での比較の答えが復号化されたすべてのハッシュ値及び記録で肯定である場合、ステップ2035において、最後のパッチ記録R1385とゼロビットから成るハッシュ値“”との結合(R|0) を計算することができる。この値は、ステップ2045において、パッチブロック1300の最後のハッシュ値H1380と比較することができる。
ステップ2040において、2つの値が同一であると判断される場合、ステップ2045においてパッチをインストールし、ユーザ及び/又はパッチサーバ100にパッチインストール成功を通知することができる。その他の場合、ステップ2040において、パッチをインストールすべきではないと判断することができる。
図18〜図20に示す実施形態によれば、たった1つのパッチ記録が破損している場合であっても、受信されたパッチはステップ2045において全体的にインストールされるか、又はまったくインストールされないかのいずれかである。このような一実施形態では、パッチ内で、1ビットが反転されたか、又は1バイトが削除/挿入されただけで、パッチクライアント140の起動を阻止するのに十分である。これは、セキュリティの向上、例えば、ユーザが単に先天的に異常なパッチを受信したという印象を得るようにパッチを変更するワームに対する保護を提供することができる。
しかし、セキュリティがこの程度まで要求されない他の実施形態では、ステップ2000、2020、又は2040の各答えが肯定であるパッチの記録1355、1365、1375、1385をインストールしてもよい。したがって、ステップ2000、2020、又は2040の否定の答えがステップ2050でのパッチ全体の無視に繋がらず、現在チェックされている記録1355、1365、1375、1385のみの無視に繋がり得る。このようなシステムでは、それでもやはり、例えば、パッチを受信したときにMD5和をチェックするようにユーザに強制するか、又はパッチインストールプロセスに何等かの予備チェックを含むときに、セキュリティを強化することができる。OFBモードはエラーを局所に留めるため、パッチの個々の記録1355、1365、1375、1385のみの考慮(regarding)はOFB暗号モードの使用により可能にすることができる。
説明した実施形態によれば、パッチクライアント140により自動的にセキュアパッチインストールプロセスが達成され、ユーザはプロセスにいかなる影響も有さない。さらに、ユーザはまた、パッチクライアント140内で何が起こっているのかを見る可能性をまったく有さない。しかし、ステップ1570又は2050においてユーザにエラーメッセージを提供するか、又はパッチがステップ1560又は2045において正しくインストールされたことを報告することができる。
さらに、本実施形態によれば、上述したセキュリティ機能をオフにすることは不可能であり得る。これは、セキュリティディセーブルピンの状態について報告する「シャドウ」変数による攻撃を防ぐことができる。
セキュリティ機能のオフが性能のために望ましい実施形態では、この変数がいかなるソフトウェアによっても変更不可能なことを保証することができる。これは、このような変数を設定するソフトウェアも攻撃される恐れがあるためである。
実施形態の上記説明から明らかなように、秘密鍵保護及び鍵紛失耐性を増大させたソフトウェアアップデート方法及びシステムが提供される。特に、異なる鍵生成プラットフォーム110、120、130を使用することにより、セキュリティを大幅に増大させることができる。
異なる作成プラットフォーム110、120、130からの鍵を組み合わせることにより、鍵生成に使用されるプラットフォーム110、120、130がセキュリティホールを有する場合に生じる弱い署名鍵の危険性が低減される。通常、この危険性は、非常に高価な、新しい鍵を埋め込むようなシリコンでのハードウェア変更の問題に繋がる。したがって、提案される、異なるプラットフォーム110、120、130で生成される鍵の組み合わせは、製造費及びメンテナンス費も低減する。
鍵紛失、すなわち、鍵がもはや利用できない場合に対する保護は、行列150から選択すべき鍵を指すビットインジケータ1140、1340を使用することにより達成することができる。それにより、鍵を紛失した場合にハードウェア又はユーザ廃棄リストを変更する必要をなくすことができる。
さらに、提案される、3つのデジタル署名D〜Dのために12個の鍵を含む行列から3つの鍵を使用することにより、鍵が明らかにされるか、又は盗まれ、それにより公衆に知られた場合に対する保護を増大させることができる。これは、攻撃者が偽のパッチを挿入するのをより困難にすることができる。攻撃をセットアップするには、(異なる方法又はエンティティにより保護することができる)少なくとも完全な組の秘密鍵を得て鍵行列の3つすべての列260、270、280からの鍵組を形成する必要がある。このような場合であっても、漏洩が知られないと仮定して、すべてのパッチクライアント140のたった約1/64が偽のパッチに感染するだけである。漏洩が知れた場合、理論上、セキュリティは最大で10個までの鍵が侵害されても破壊されず、上記鍵インジケータ1140、1340の2ビットを含むダミーインジケータ1240により、秘密鍵群260、270、280のうちの1つの群の4つすべての鍵が侵害されてもかまわない。4つの署名が使用され、ダミー署名が許されない代替の実施形態では、確率は1/64から1/256にさらに低減する(この場合少なくとも4つの秘密鍵が漏出しなければならない)。しかし、このような実施形態では、セキュリティを維持するために、各秘密鍵群に少なくとも1つの有効な鍵がなければならない。
図5及び図9に関連して上述したハッシュチェインにより、誰も同じパッチパッケージに署名したか否かを述べることができない署名プロセスに異なる当事者を含めることができる。これは、コストを同レベルに保ちながら、いくつかの状況においてさらなるセキュリティを提供することができる。
さらに、図5及び図9のハッシュチェインは、重要なセキュリティの勝利を提供する。最新の結果により、MD5及びSHA−0(セキュアハッシュアルゴリズム0)のような暗号ハッシュ関数の致命的な欠陥についてのヒントが提供されている。SHA−1を破ることができるか否か、さらには使用可能なように破ることができるか否かは明らかではない。しかし、同じSHA−1ハッシュ値を有する意味のある異なるテキストを構築することができる場合であっても、これが図5及び図9に示すハッシュチェインにより提供されるような2つ、又はさらには3つ以上に連鎖したハッシュに対して可能であることはまったく現実的ではない。
提案される概念は、入念な鍵管理と組み合わせられた異種の(heterogeneous)公開鍵を使用するいくつかのデジタル署名D〜Dを使用してパッチの完全性を非常に良好に保証する。HSM鍵のみが使用される実施形態であっても、セキュリティは依然として高い。パッチの内容は、パッチクライアントのファームウェアに隠すことができるKEK鍵での暗号化により保護することができる。
信頼できる第三者(TTP)がセキュリティプロセスに関与する実施形態では、署名する必要があるのはハッシュ値のみであってもよい。それにより、パッチソースを示す危険性を回避することができるため、セキュリティをさらに強化することができる。提案される解決策のコストは、得るものと比較して低い。パッチの作成及び配信は、いくつかのインスタンスがこのプロセスに関与する実施形態であっても、鍵の処理、バックアップ、デジタル署名、及び暗号化よりもはるかに高価である。パッチクライアント140の製造費は略固定され、上記セキュアパッチ機能を追加することによる変化はほんのわずかであり得る。パッチクライアント140の起動中に復号化及び署名のチェックに必要な時間は最小であり得る。しかし、従来技術による平凡なパッチサーバに勝るセキュリティの獲得は相当なものである。したがって、提案される実施形態は、対応するコストを過度に増大させることなく、パッチシステムのセキュリティ、信頼性、及び効率を大幅に増大させることができる。
本発明を、本発明により構築される物理的な実施形態に関連して説明したが、上記教示に鑑みて、本発明の範囲から逸脱することなく添付の特許請求の範囲内で本発明の各種の変更、変形、及び改良を行い得ることが当業者には明らかであろう。さらに、当業者が精通していると確信される分野については、本明細書において述べる本発明を不必要に曖昧にしないように説明しなかった。したがって、本発明が特定の例示的な実施形態により限定されるべきではなく、添付の特許請求の範囲によってのみ限定されるべきであることを理解されたい。
本発明の実施形態はコンピュータ技術の分野において適用可能であり、ひいては産業分野において使用することができる。
一実施形態によるパッチシステムの構成要素を示すブロック。 一実施形態による秘密鍵管理を示すブロック図。 一実施形態による公開鍵管理を示すブロック図。 一実施形態によるパッチ送信を示す流れ図。 一実施形態によるハッシュチェインのステップを示す図。 一実施形態による秘密鍵選択を示す流れ図。 一実施形態による署名作成を示す流れ図。 一実施形態によるKEK暗号化のステップを例証する図。 別の実施形態によるハッシュチェインのステップを示す流れ図。 他の実施形態による署名作成を示す流れ図。 一実施形態によるパッチブロックおよび鍵インジケータの構成を示すブロック図。 別の実施形態によるパッチブロックの構成を示すブロック図。 一実施形態による送信ブロックを示すブロック図。 一実施形態によるパッチインストールプロセスを示す流れ図。 一実施形態による公開鍵選択を示す流れ図。 一実施形態による署名検証を例証する流れ図。 別の実施形態によるパッチインストールを示す流れ図。 他の実施形態による署名検証を示す図。 他の実施形態による記録毎のパッチ復号化を示す流れ図。

Claims (10)

  1. パッチクライアント(140)に接続され、前記パッチクライアントにパッチ(1150、1355、1365、1375、1385)を提供するパッチサーバ(100)であって、
    複数の第1の秘密鍵(200〜215)を含む第1の秘密鍵群(260)を生成するように構成される第1の鍵生成プラットフォーム(110)と、
    複数の第2の秘密鍵(220〜235)を含む第2の秘密鍵群(270)を生成するように構成され、前記第1の鍵生成プラットフォームとは異なる、第2の鍵生成プラットフォーム(120)と、
    前記第1の秘密鍵群から前記第1の秘密鍵のうちの1つを選択する(410、610)ように構成される第1の鍵セレクタと、
    前記第2の秘密鍵群から前記第2の秘密鍵のうちの1つを選択する(410、620)ように構成される第2の鍵セレクタと、
    前記パッチ及び前記選択された第1の秘密鍵に基づいて第1のデジタル署名(1110、1310)を生成する(420、710、1010)ように構成される第1の署名生成器と、
    前記パッチ及び前記選択された第2の秘密鍵に基づいて第2のデジタル署名(1120、1320)を生成する(420、720、1020)ように構成される第2の署名生成器と、
    前記第1のデジタル署名および前記第2のデジタル署名と共に前記パッチを前記パッチクライアントに送信する(490)ように構成される送信器とを備える、パッチサーバ。
  2. 前記パッチに基づいて第1のハッシュ値を計算する(400、510)ように構成される第1のハッシャと、
    前記第1のハッシュ値に基づいて第2のハッシュ値を計算する(400、520)ように構成される第2のハッシャと、
    をさらに備え、
    前記第1の署名生成器は、前記第2のハッシュ値に基づいて前記第1のデジタル署名を生成する(420、710)ようにさらに構成される、請求項1に記載のパッチサーバ。
  3. 前記第2のハッシュ値に基づいて第3のハッシュ値を計算する(400、530)ように構成される第3のハッシャをさらに備え、
    前記第2の署名生成器は、前記第3のハッシュ値に基づいて前記第2のデジタル署名を生成する(420、720)ようにさらに構成される、請求項2に記載のパッチサーバ。
  4. 複数のハッシュ値を計算する(400、910〜940)ように構成されるハッシャをさらに備え、
    前記パッチは複数の記録(1355、1365、1375、1385)を含み、
    前記ハッシャは、前記パッチに含まれる最後の記録(1385)に基づいて前記複数のハッシュ値の第1のハッシュ値を計算する(400、910)ようにさらに構成され、
    前記ハッシャは、前記パッチに含まれる最後から次の各記録及び前記複数のハッシュ値の最後に計算された各ハッシュ値に基づいて、前記複数のハッシュ値のさらなる各ハッシュ値を計算する(400、920〜940)ようにさらに構成される、請求項1に記載のパッチサーバ。
  5. 前記第1の署名生成器は、前記複数のハッシュ値の前記最後に計算されたハッシュ値に基づいて前記第1のデジタル署名を生成する(420、1010)ようにさらに構成され、
    前記送信器は、前記パッチを前記第1のデジタル署名及び前記第2のデジタル署名並びに前記複数のハッシュ値と共に前記パッチクライアントに送信するようにさらに構成される、請求項4に記載のパッチサーバ。
  6. 前記第2の署名生成器は、前記複数のハッシュ値の前記最後に計算されたハッシュ値に基づいて前記第2のデジタル署名を生成する(420、1020)ようにさらに構成され、
    前記送信器は、前記パッチを前記第1のデジタル署名及び前記第2のデジタル署名並びに前記複数のハッシュ値と共に前記パッチクライアントに送信するようにさらに構成される、請求項4または5に記載のパッチサーバ。
  7. どの第1の秘密鍵が前記第1の秘密鍵群から選択されたかを示す第1の鍵インジケータ(1210)およびどの第2の秘密鍵が前記第2の秘密鍵群から選択されたかを示す第2の鍵インジケータ(1220)を含む鍵インジケータ(1140、1340)を生成するように構成される鍵インジケータ生成器
    をさらに備え、
    前記送信器は、前記パッチを前記第1のデジタル署名及び前記第2のデジタル署名並びに前記鍵インジケータと共に前記パッチクライアントに送信するようにさらに構成される、請求項1乃至6のいずれか1項に記載のパッチサーバ。
  8. 前記鍵インジケータ生成器は、前記第1のデジタル署名または前記第2のデジタル署名のうちの一方をダミー署名として識別するダミーインジケータ(1240)をさらに含む前記鍵インジケータを生成するようにさらに構成される、請求項7に記載のパッチサーバ。
  9. パッチクライアント(140)にパッチ(1150、1355、1365、1375、1385)を提供する方法であって、
    第1の鍵生成プラットフォーム(110)を使用して、複数の第1の秘密鍵(200〜215)を含む第1の秘密鍵群(260)を生成するステップ、
    前記第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォーム(120)を使用して、複数の第2の秘密鍵(220〜235)を含む第2の秘密鍵群(270)を生成するステップ、
    前記第1の秘密鍵群から前記第1の秘密鍵のうちの1つを選択するステップ(410、610)、
    前記第2の秘密鍵群から前記第2の秘密鍵のうちの1つを選択するステップ(410、620)、
    前記パッチおよび前記選択された第1の秘密鍵に基づいて第1のデジタル署名(1110、1310)を生成するステップ(420、710、1010)、
    前記パッチおよび前記選択された第2の秘密鍵に基づいて第2のデジタル署名(1120、1320)を生成するステップ(420、720、1020)、および
    前記第1のデジタル署名および前記第2のデジタル署名と共に前記パッチを前記パッチクライアントに送信するステップを含む方法。
  10. パッチサーバ(100)に接続され、前記パッチサーバからパッチ(1150、1355、1365、1375、1385)を受信する(1500、1800)パッチクライアント(140)であって、
    第1の鍵生成プラットフォーム(110)により生成された複数の第1の公開鍵(300〜315)を含む第1の公開鍵群(360)を記憶する第1の記憶手段と、
    前記第1の鍵生成プラットフォームとは異なる第2の鍵生成プラットフォーム(120)により生成された複数の第2の公開鍵(320〜335)を含む第2の公開鍵群(370)を記憶する第2の記憶手段と、
    前記第1の公開鍵群から前記第1の公開鍵のうちの1つを選択する(1530、1610、1830)ように構成される第1の鍵セレクタと、
    前記第2の公開鍵群から前記第2の公開鍵のうちの1つを選択する(1530、1620、1830)ように構成される第2の鍵セレクタと、
    前記選択された第1の公開鍵を使用して、前記パッチと共に前記パッチサーバから受信される第1のデジタル署名(1110、1310)を検証する(1540、1720、1750、1840、1920、1950)ように構成される第1の署名検証構成要素と、
    前記選択された第2の公開鍵を使用して、前記パッチと共に前記パッチサーバから受信される第2のデジタル署名(1120、1320)を検証する(1540、1730、1760、1840、1930、1960)ように構成される第2の署名検証構成要素とを備え、
    前記パッチクライアントは、前記第1のデジタル署名および前記第2のデジタル署名の検証結果が、前記第1のデジタル署名及び前記第2のデジタル署名のそれぞれの真正性及び完全性を示す場合のみ、前記パッチをインストールする(1560、2045)ように構成される、パッチクライアント。
JP2008519305A 2005-06-30 2006-05-23 セキュアパッチシステム Active JP4875075B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE102005030590.3 2005-06-30
DE102005030590A DE102005030590B4 (de) 2005-06-30 2005-06-30 Sicheres Patchsystem
US11/219,260 2005-09-02
US11/219,260 US7127067B1 (en) 2005-06-30 2005-09-02 Secure patch system
PCT/US2006/019941 WO2007005140A1 (en) 2005-06-30 2006-05-23 Secure patch system

Publications (2)

Publication Number Publication Date
JP2009500905A true JP2009500905A (ja) 2009-01-08
JP4875075B2 JP4875075B2 (ja) 2012-02-15

Family

ID=37110635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519305A Active JP4875075B2 (ja) 2005-06-30 2006-05-23 セキュアパッチシステム

Country Status (5)

Country Link
US (1) US7127067B1 (ja)
JP (1) JP4875075B2 (ja)
CN (1) CN101213814B (ja)
DE (1) DE102005030590B4 (ja)
TW (1) TWI429255B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020092336A (ja) * 2018-12-06 2020-06-11 三菱電機インフォメーションシステムズ株式会社 長期署名データ生成装置および長期署名データ生成方法
JP2020141425A (ja) * 2020-06-10 2020-09-03 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム
JP2022507151A (ja) * 2018-11-12 2022-01-18 サードウェイブ,インコーポレイティド 安全な無線ファームウェアアップグレード
JP7426031B2 (ja) 2018-12-29 2024-02-01 シャンハイ ウェイリアン インフォメーション テクノロジー カンパニー リミテッド 鍵セキュリティ管理システムおよび方法、媒体、ならびにコンピュータプログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPS169002A0 (en) 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
US7813510B2 (en) * 2005-02-28 2010-10-12 Motorola, Inc Key management for group communications
US7876902B2 (en) * 2006-08-31 2011-01-25 Microsoft Corporation Distribution of encrypted software update to reduce attack window
EP2535830B1 (en) * 2007-05-30 2018-11-21 Ascensia Diabetes Care Holdings AG Method and system for managing health data
DE102007052180A1 (de) * 2007-10-31 2009-05-07 Fujitsu Siemens Computers Gmbh Verfahren, Rechnersystem und Computerprogrammprodukt
US20090132999A1 (en) * 2007-11-21 2009-05-21 At&T Corp. Secure and fault-tolerant system and method for testing a software patch
US8595486B2 (en) * 2008-07-15 2013-11-26 Industrial Technology Research Institute Systems and methods for authorization and data transmission for multicast broadcast services
US20100329458A1 (en) * 2009-06-30 2010-12-30 Anshuman Sinha Smartcard, holder and method for loading and updating access control device firmware and/or programs
TWI448148B (zh) * 2010-08-27 2014-08-01 Tatung Co 可自動驗證ksv金鑰及自我重建hdcp金鑰組之顯示器裝置及其方法
US10298684B2 (en) 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
US8874990B2 (en) * 2011-04-01 2014-10-28 Cleversafe, Inc. Pre-fetching data segments stored in a dispersed storage network
US11418580B2 (en) 2011-04-01 2022-08-16 Pure Storage, Inc. Selective generation of secure signatures in a distributed storage network
TWI451741B (zh) * 2012-03-19 2014-09-01 Chiou Haun Lee 以xor運算於三方通訊之加解密方法
CN102904721B (zh) * 2012-09-20 2015-04-08 湖北省电力公司电力科学研究院 用于智能变电站信息安全控制的签名、认证方法及其装置
US8949594B2 (en) * 2013-03-12 2015-02-03 Silver Spring Networks, Inc. System and method for enabling a scalable public-key infrastructure on a smart grid network
US10135621B2 (en) * 2013-12-31 2018-11-20 Nxp B.V. Method to reduce the latency of ECDSA signature generation using precomputation
DE102015108336A1 (de) * 2015-05-27 2016-12-01 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Ausführen einer sicherheitsrelevanten Anwendung, Computersystem und Anordnung
CN106559217B (zh) * 2015-09-29 2019-09-20 腾讯科技(深圳)有限公司 一种动态加密方法、终端、服务器
US10659234B2 (en) * 2016-02-10 2020-05-19 Cisco Technology, Inc. Dual-signed executable images for customer-provided integrity
KR101893518B1 (ko) 2016-10-28 2018-10-04 한국전자통신연구원 제어 시스템의 업데이트 관리 장치, 업데이트 검증 장치 및 그 방법
CN111046389A (zh) * 2018-10-11 2020-04-21 东硕资讯股份有限公司 固件组件安全更新的方法以及用以实施的携行计算机站
US11138295B2 (en) 2019-03-11 2021-10-05 Good Way Technology Co., Ltd. Method for securely updating firmware components and docking station using the same
US11347895B2 (en) * 2019-12-03 2022-05-31 Aptiv Technologies Limited Method and system of authenticated encryption and decryption
TWI756631B (zh) * 2020-02-12 2022-03-01 瑞昱半導體股份有限公司 具有韌體驗證機制的電腦系統及其韌體驗證方法
TWI807707B (zh) * 2022-03-21 2023-07-01 中華電信股份有限公司 安全性軟體更新系統、方法及電腦可讀媒介

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
JPH11282672A (ja) * 1998-03-31 1999-10-15 Hitachi Software Eng Co Ltd オンラインプログラム転送方法およびオンラインプログラム実行システム
EP2306260B1 (en) * 2000-09-21 2014-02-26 BlackBerry Limited Software code signing system and method
US7424706B2 (en) * 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022507151A (ja) * 2018-11-12 2022-01-18 サードウェイブ,インコーポレイティド 安全な無線ファームウェアアップグレード
JP7364674B2 (ja) 2018-11-12 2023-10-18 サードウェイブ,インコーポレイティド 安全な無線ファームウェアアップグレード
JP2020092336A (ja) * 2018-12-06 2020-06-11 三菱電機インフォメーションシステムズ株式会社 長期署名データ生成装置および長期署名データ生成方法
JP7426031B2 (ja) 2018-12-29 2024-02-01 シャンハイ ウェイリアン インフォメーション テクノロジー カンパニー リミテッド 鍵セキュリティ管理システムおよび方法、媒体、ならびにコンピュータプログラム
JP2020141425A (ja) * 2020-06-10 2020-09-03 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム

Also Published As

Publication number Publication date
CN101213814B (zh) 2012-02-08
CN101213814A (zh) 2008-07-02
TWI429255B (zh) 2014-03-01
US7127067B1 (en) 2006-10-24
DE102005030590B4 (de) 2011-03-24
DE102005030590A1 (de) 2007-01-04
TW200711436A (en) 2007-03-16
JP4875075B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
JP4875075B2 (ja) セキュアパッチシステム
CN109194466B (zh) 一种基于区块链的云端数据完整性检测方法及系统
JP3872107B2 (ja) 暗号キー回復システム
US9311487B2 (en) Tampering monitoring system, management device, protection control module, and detection module
US10057071B2 (en) Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component
KR100702499B1 (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
US8744078B2 (en) System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
US8938617B2 (en) One way authentication
Chikouche et al. A privacy-preserving code-based authentication protocol for Internet of Things
CN111614621B (zh) 物联网通信方法和系统
JP2004280284A (ja) 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
CN112702318A (zh) 一种通讯加密方法、解密方法、客户端及服务端
CN110855667B (zh) 一种区块链加密方法、装置及系统
Alsalami et al. Uncontrolled randomness in blockchains: Covert bulletin board for illicit activity
Backendal et al. MEGA: malleable encryption goes awry
CN115208615A (zh) 一种数控系统数据加密传输方法
CN116419217A (zh) Ota数据升级方法、系统、设备及存储介质
CN114143098B (zh) 数据存储方法和数据存储装置
CN110995671A (zh) 一种通信方法及系统
CN108242997B (zh) 安全通信的方法与设备
KR101290818B1 (ko) 보안 패치 시스템
CN115549910B (zh) 一种数据传输方法、设备以及存储介质
KR20200060930A (ko) 텔레매틱스 장치간 암호화 통신 방법
KR20200130866A (ko) 모바일 장치용 변조 방지 데이터 인코딩
Haller Cloud Storage Systems: From Bad Practice to Practical Attacks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090508

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

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: 20111026

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4875075

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

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250