JP5598828B2 - ソフトウェア署名証明書評判モデル - Google Patents

ソフトウェア署名証明書評判モデル Download PDF

Info

Publication number
JP5598828B2
JP5598828B2 JP2013534928A JP2013534928A JP5598828B2 JP 5598828 B2 JP5598828 B2 JP 5598828B2 JP 2013534928 A JP2013534928 A JP 2013534928A JP 2013534928 A JP2013534928 A JP 2013534928A JP 5598828 B2 JP5598828 B2 JP 5598828B2
Authority
JP
Japan
Prior art keywords
request
software
valid
computer
software developer
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.)
Active
Application number
JP2013534928A
Other languages
English (en)
Other versions
JP2014500997A (ja
JP2014500997A5 (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.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of JP2014500997A publication Critical patent/JP2014500997A/ja
Publication of JP2014500997A5 publication Critical patent/JP2014500997A5/ja
Application granted granted Critical
Publication of JP5598828B2 publication Critical patent/JP5598828B2/ja
Active 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party

Description

本発明は、概して、コンピュータセキュリティに関し、特に、認証局によるコード署名を利用した、コンピュータシステム上での悪質および/または不正なコード(すなわちマルウェア)の実行の防止に関する。
寄生コンピュータウイルスは、一般的に、コンピュータシステムに保存された他の実行可能プログラムにウイルスコードを忍ばせることによって、コンピュータシステムを感染させる。このコードは、他のファイルおよび/またはコンピュータシステムを感染させ、コンピュータシステム上のデータを破壊し、あるいは、他の悪意のある行為を行い得る。トロイの木馬、ワーム、キーストロークグラバー(keystroke grabber)等を含む他の種類の悪質なコードもまた、コンピュータシステムに被害を与え得る。従って、コンピュータシステム上でウイルスまたは他の悪質なコードの感染および/または実行を防止する強い願望が存在する。
攻撃を防止するための技術の1つは、ソフトウェアがウイルスまたは他の悪質なコードによって変更されたか否かを検出する機構を確立することである。コード署名は、変更を検出するための技術の1つである。デジタル署名されたコードは、コードが変更されたか否かを検出するためにコンピュータシステムが使用可能な値をコンピュータプログラム内に含む。従って、コード署名は、実行可能コンテンツの改ざんを防止する。
従来のシステムでは、ソフトウェア開発者は、コードに署名するために、署名鍵および対応するデジタル証明書を認証局(CA)から入手する。デジタル証明書は、証明書が失効するまで、ソフトウェア開発者によって使用することができる。失効時には、証明書は、証明書を発行した認証局によって更新される必要がある。しかしながら、証明書が有効な期間中は、ソフトウェア開発者は、認証局とそれ以上やり取りする必要はない。従って、署名鍵の使用は、認証局には未知のものである。
マルウェアの作者は、合法的なソフトウェア会社からコード署名証明書を盗み取ったり、多くの偽の商号の下で証明書を登録したりし始めた。認証局には、デジタル証明書の使用が分からないので、マルウェアの作者は、マルウェアにデジタル署名を行うために、正規の証明書を使用することができる。マルウェアにデジタル署名を行うことにより、反マルウェアシステムが、多くの場合、署名されたソフトウェアに対してより高い信頼を置き、署名されたコードは悪意のないものと見なすことから、これらのシステムが回避される。
従って、盗まれた、および/または悪用されたデジタル証明書によって生じる問題に対処する必要性がある。
上記および他の必要性は、ソフトウェアにデジタル署名を行うために認証局のコンピュータシステムを使用する、コンピュータ実施方法、コンピュータシステム、および実行可能コードを保存する非一時的コンピュータ可読記憶媒体によって満たされる。コンピュータ実施方法のある実施形態は、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するステップを含む。ソフトウェア開発者に関連するセキュリティポリシーにアクセスする。セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述する。コンピュータ実施方法は、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定する。要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名が行われる。コンピュータ実施方法は、デジタル署名されたソフトウェアをソフトウェア開発者に提供する。
ソフトウェアにデジタル署名を行うための認証局のコンピュータシステムの実施形態は、コンピュータプロセッサと、コンピュータプロセッサで実行されるように構成されたコンピュータプログラムモジュールを保存する非一時的コンピュータ可読記憶媒体とを含む。コンピュータプログラムモジュールは、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するように構成された署名要求モジュールを含む。モジュールはさらに、ソフトウェア開発者に関連するセキュリティポリシーにアクセスするように構成され、セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述し、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定するように構成された要求検証モジュールを含む。最後に、モジュールは、要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名を行い、かつデジタル署名されたソフトウェアをソフトウェア開発者に提供するように構成されたソフトウェア署名モジュールを含む。
コンピュータプログラム製品の実施形態は、コンピュータ実行可能コードを保存する非一時的コンピュータ可読記憶媒体を含み、このコードは、コンピュータプロセッサによって実行される際に、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するステップを含むステップを行う。ソフトウェア開発者に関連するセキュリティポリシーにアクセスする。セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述する。ステップはさらに、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定するステップを含む。要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名が行われる。ステップは、デジタル署名されたソフトウェアをソフトウェア開発者に提供するステップを含む。
この概要に記載の特徴および利点、並びに以下の詳細な説明は、包括的なものではない。多くの追加の特徴および利点は、この図面、明細書、および特許請求の範囲を鑑みれば、当業者には明らかとなるであろう。
ある実施形態によるコンピュータ環境のハイレベルブロック図である。 ある実施形態による、認証局、クライアント、またはソフトウェア開発者コンピュータシステムとして使用される典型的なコンピュータを示すハイレベルブロック図である。 ある実施形態による認証局の詳細図を示すハイレベルブロック図である。 ある実施形態による、ソフトウェアに署名を行うために認証局によって行われるステップを示すフローチャートである。
図面は、例示のみを目的として、本発明のある実施形態を示す。当業者であれば、本明細書に記載される本発明の原理から逸脱することなく、本明細書に示される構造および方法の代替実施形態を用いることが可能であることは、以下の記載から容易に認識されるであろう。
図1は、ある実施形態によるコンピュータ環境100のハイレベル図である。図1は、認証局(CA)101、開発者コンピュータシステム103、およびクライアント105を示す。描写を単純化および明確にするために、1つのクライアント105および1つの開発者システム103のみを図1に示している。コンピュータ環境100の実施形態は、ネットワーク115に接続した、数千または数百万のクライアント105および/または開発者103、および複数のCA101を有し得る。
一般的に、CA101は、コンピュータプログラム(時に、「ソフトウェア」または「コード」と呼ばれる)の認証、検証、および暗号化を支援するために、セキュリティ認証情報、署名鍵(秘密/公開鍵ペア)、および/または他のデータを発行および管理する団体である。CA101は、公開鍵に基づいた技術を用いて、秘密/公開鍵ペアを生成する。CA101は、CAの公開鍵を用いて解読が可能な暗号化情報を含む証明書を発行する。CAの公開鍵は、よく知られたものであり、かつ簡単に検証されるので、関係者らは、公開鍵を用いることにより、CA101によって発行された証明書が正規のものであることを検証できる。
ある実施形態では、CA101は、開発者の公開鍵を指定するソフトウェア開発者103に証明書を発行する。ソフトウェア開発者103は、ソフトウェアを開発し、開発者の秘密鍵(「署名鍵」)を用いてそれにデジタル署名を行い、開発者の公開鍵を指定するCA101によって発行された証明書と共にソフトウェアを配布することができる。クライアント105等の第三者は、CAの公開鍵を用いることにより、証明書を解読し、証明書がCA101によって開発者103に発行されたものであり、かつ変更されていないことを検証できる。さらに、第三者は、証明書内の開発者の公開鍵を使用することにより、開発者のデジタル署名を検証し、ソフトウェアが変更されているか否かを検出することができる。従って、CA101によって提供される機能性により、改ざんなしに(すなわち、クライアント105は、どのような改ざんも検出することができる)、開発者コンピュータシステム103からクライアント105へのソフトウェアの伝達が可能となる。
背景のセクションに述べたように、上記環境の問題点の1つは、ソフトウェアの署名を行う際に、ソフトウェア開発者103がCA101とやり取りする必要のないことである。その結果、開発者の証明書が、開発者103自身または開発者の秘密鍵を入手した悪意のある第三者によって悪用を受ける。この問題および他の問題に対処するために、ある実施形態では、CA101自体が、ソフトウェア開発者103から受け取ったソフトウェアに署名する。あるいは、CA101は、ソフトウェア開発者103によって署名されたソフトウェアに連署してもよい。
署名の一部として、CA101は、署名されたソフトウェアに付属される高信頼証明書を作成する。CA101は、ソフトウェア署名プロセスに含まれるので、CA101は、コード署名鍵の使用を監視し、開発者103からの署名要求が正規のものであるとCAが判断した場合のみ、高信頼証明書を発行することができる。さらに、CA101の一実施形態は、ソフトウェアの署名を要求している開発者103の評判を評価し、評価を記述した情報を証明書に埋め込む。さらに、CA101による連署が必要とされる一実施形態においては、CAは、連署を欠いた環境100にあるソフトウェアを識別することにより、コード署名鍵の悪用を検出することができる。
ある実施形態では、開発者システム103は、クライアント105で実行されるソフトウェア(すなわち、コンピュータプログラムまたはコード)を開発するために、ソフトウェア開発者によって利用される。開発者コンピュータシステム103は、クライアント105での実行に適応したソフトウェアを開発するために開発者が使用するソフトウェア開発システムモジュール(「SDS」と呼ばれる)107を含む。SDS107は、開発者が実行可能コードを書く、コンパイルする、リンクさせる、およびデバッグすることを可能にする機能性を含む。
ある実施形態では、開発者コンピュータシステム103は、署名要求モジュール109を含む。署名要求モジュール109は、CA101と通信し、SDS107によって作成された完成したソフトウェアにCA101が署名(または連署)することを要求する。開発者システム103のユーザは、CA101によって提供される安全なウェブポータルを介して、または電子メールを含む他の手段を用いて、ソフトウェア署名要求をCA101に提出してもよい。署名要求モジュール109は、CA101によって提供されるウェブポータルを用いて自動的に自身を認証し、開発者システム103のユーザに対して、署名要求をCA101に手作業で提出するように通知してもよい。
さらに、署名要求モジュール109は、署名鍵および対応するデジタル証明書を入手するために、CA101と通信することができる。署名要求モジュール109は、CA101または他の認証局によって提供された署名鍵を用いて、SDS103を用いて開発されたソフトウェアに署名してもよい。署名要求モジュール109は、次に、ソフトウェアに署名するために署名要求モジュール109によって使用された署名鍵の使用をCA101が承認するために、署名されたソフトウェアに連署するようにCA101に要求してもよい。
ある実施形態では、署名要求モジュール109は、SDS107に組み込まれる。あるいは、署名要求モジュール109は、SDS107、または一旦ソフトウェアが作成されると開発者によって呼び出される別個のモジュールである。署名要求モジュール109は、SDS107を用いて開発されたソフトウェアの全てにCA101が署名することを自動的かつ透過的に(すなわち、開発者の介入なしに)要求する自動化プロセスとして実施されてもよい。この自動化の実施形態により、開発者側の署名されたコードを作成する負担が低減される。
開発者システム103がCA101によって署名または連署されたソフトウェアを受け取ると、開発者システム103は、署名されたソフトウェアをクライアント105に配布することができる。開発者システム103は、小売店で箱入りのソフトウェアを販売する、および/またはソフトウェアをインターネットからダウンロードできるようにすること等による一般的な流通経路を介して、署名されたソフトウェアを配布してもよい。
ある実施形態では、クライアント105は、ソフトウェアアプリケーションのダウンロード、インストール、および/または実行を含む行為を行うために、一人または複数のユーザによって使用されるコンピュータである。クライアント105は、例えば、ウェブサーバおよびネットワーク115上の他のコンピュータからコンテンツを検索および表示することをユーザに許可するMICROSOFT INTERNET EXPLORER、 MOZILLA FIREFOX、 APPLE SAFARI、またはGOOGLE CHROME等のウェブブラウザを含むパーソナルコンピュータでもよい。他の実施形態では、クライアント105は、携帯情報端末(PDA)、携帯電話、ポケットベル、テレビの「セットトップボックス」等のコンピュータ以外のネットワーキング可能デバイスである。この説明目的で、「クライアント」という用語は、ソフトウェアアプリケーションまたはマルウェアまたは他の脅威を構成し得る他のエンティティに直面するサーバやゲートウェイ等のコンピュータも含む。例えば、クライアント105は、企業ネットワークおよびインターネット間に位置するネットワークゲートウェイでもよい。
ある実施形態では、クライアント105は、ソフトウェアを実行する前に、それに関連する証明書および署名を評価する。クライアント105は、証明書/署名に基づいて、ソフトウェアに関する信用レベル(すなわち、信頼性)を決定し、その信用レベルに基づいて、ソフトウェアを実行するか否か、およびその実行方法も決定する。例えば、ある実施形態では、ソフトウェアがCA101によって連署されており、CAからの証明書が、開発者103の評判が良いことを示す場合には、クライアント105は、追加の予防措置を取ることなく、ソフトウェアを実行する。クライアント105は、ソフトウェアが信頼できるソフトウェア開発者によって作成されており、従って、悪意のあるものではないことの保証として、CAの署名および評判評価を扱う。ある実施形態では、クライアント105は、CA101によって連署されていないソフトウェアの実行を止めてもよい。あるいは、ソフトウェアがCA101によって連署されていない場合、または、開発者103の評判が良いとは言えないことをCAの証明書が示す場合には、クライアント105は、マルウェアのスキャンを行った後にのみソフトウェアを実行する、または限定された特権でソフトウェアを実行する等の、追加の予防措置を講じてソフトウェアを実行してもよい。
認証局101、クライアント105、および開発者システム103間の通信は、ネットワーク115を介して行われる。ある実施形態では、ネットワーク115は、標準的な通信技術および/またはプロトコルを使用する。従って、ネットワーク115は、イーサネット、802.11、ワイマックス(WiMAX)、3G、デジタル加入者回線(DSL)、非同期転送モード(ATM)、インフィニバンド(InfiniBand)、PCI ExAS(PCI Express Advanced Switching)等の技術を用いたリンクを含み得る。同様に、ネットワーク115で使用されるネットワークプロトコルは、マルチプロトコル・ラベル・スイッチング(MPLS)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、シンプルメール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)等を含み得る。ネットワーク115上でやり取りされるデータは、ハイパーテキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)等を含む技術および/またはフォーマットを使用して表すことができる。さらに、リンクの全てまたは一部は、セキュア・ソケット・レイヤー(SSL)、トランスポート層セキュリティ(TLS)、複数の仮想プライベート・ネットワーク(VPN)、インターネット・プロトコル・セキュリティ(IPsec)等の従来の暗号化技術を用いて、暗号化することができる。別の実施形態では、エンティティは、上記のものに代えて、またはそれらに加えて、カスタマイズされた、および/または専用データ通信技術を用いることができる。実施形態に応じて、ネットワーク115は、インターネット等の他のネットワークへのリンクも含むことができる。
図2は、ある実施形態による、CA101、開発者システム103、および/またはクライアント105として機能するコンピュータ200のハイレベルブロック図である。図示されているのは、チップセット204に接続された少なくとも1つのプロセッサ202である。チップセット204に同じく接続されているのは、メモリ206、記憶装置208、キーボード210、グラフィックスアダプタ212、ポインティングデバイス214、ネットワークアダプタ216である。ディスプレイ218は、グラフィックスアダプタ212に接続されている。ある実施形態では、チップセット204の機能性は、メモリコントローラハブ220およびI/Oコントローラハブ222によって提供される。別の実施形態では、メモリ206は、チップセット204の代わりに、プロセッサ202に直接接続される。
記憶装置208は、ハードドライブ、コンパクトディスク利用の読み出し専用メモリ(CD−ROM)、DVD、または固体メモリデバイス等の任意の非一時的コンピュータ可読記憶媒体である。メモリ206は、プロセッサ202によって使用される命令およびデータを保持する。ポインティングデバイス214は、マウス、トラックボール、または他の種類のポインティングデバイスでもよく、キーボード210と一緒に用いて、コンピュータシステム200にデータを入力する。グラフィックスアダプタ212は、ディスプレイ218上に画像および他の情報を表示させる。ネットワークアダプタ216は、コンピュータシステム200をローカルまたは広域ネットワークに接続させる。
当該技術分野で公知のように、コンピュータ200は、図2に示されている構成要素とは異なる、および/または他の構成要素を有し得る。さらに、コンピュータ200は、特定の図示された構成要素を欠いていてもよい。ある実施形態では、認証局101として機能するコンピュータ200は、キーボード210、ポインティングデバイス214、グラフィックスアダプタ212、および/またはディスプレイ218を持たない。さらに、記憶装置208は、ローカルおよび/またはコンピュータ200からリモートであってもよい(ストレージ・エリア・ネットワーク(SAN)内で具体化される等)。
当該技術分野で公知のように、コンピュータ200は、本明細書に記載の機能性を提供するコンピュータプログラムモジュールを実行するように適応される。本明細書において使用されるように、「モジュール」という用語は、特定の機能性を提供するために利用されるコンピュータプログラム論理を意味する。従って、モジュールは、ハードウェア、ファームウェア、および/またはソフトウェアにおいて実施され得る。ある実施形態では、プログラムモジュールは、記憶装置208に保存され、メモリ206にロードされ、プロセッサ202によって実行される。
図3は、ある実施形態によるCA101の詳細図を示すハイレベルブロック図である。図3に示されるように、CA101は、互いに通信する複数のモジュールを含む。当業者であれば、CA101の他の実施形態が、本明細書に記載したモジュールとは異なる、および/または他のモジュールを有し得ること、およびこれらの機能性がモジュール間で異なる方法で割り振られ得ることを認識するであろう。
ある実施形態では、鍵データベース309は、ソフトウェア開発者103からの要求に応じて、ソフトウェアに署名するためにCA101が使用する1つまたは複数の秘密/公開鍵ペアを保存する。当該技術分野で公知のように、鍵は、通常、ランダムまたは疑似ランダム技術に従って生成される長整数等の数値である。公開鍵暗号化は、秘密鍵/公開鍵ペアを利用する。これらの鍵は、秘密鍵を用いて暗号化されたメッセージが公開鍵を用いて解読でき、逆もまた同様にできるが、公開鍵およびメッセージを用いて(少なくとも妥当な時間内では)秘密鍵を計算することはできないように関連付けられる。CA101は、例えば、Diffie−Hellman、ナップザック、DSA、および/またはRSA鍵生成スキームを利用した技術を含む従来の技術を用いて、鍵ペアの生成を行ってもよい。
ポリシーデータベース311は、CA101と通信するソフトウェア開発者103に関するセキュリティポリシー(すなわち、プロフィール)を保存する。ある実施形態では、ソフトウェア開発者のセキュリティポリシーは、CA101が、ソフトウェア開発者103からの有効なソフトウェア署名要求を予期できる基準または条件を記述する。ソフトウェア開発者103は、有効なソフトウェア署名要求のデフォルト条件または条項を示す自身のセキュリティポリシーをCA101に提供することができる。CA101は、ソフトウェア開発者103がソフトウェアに署名するようにCA101に要求する実際の(すなわち現実の)条件の観察結果に基づいて、ソフトウェア開発者103のセキュリティポリシーを更新してもよい。ソフトウェア開発者103は、有効な署名要求の更新した条件を提供することもできる。あるいは、ソフトウェア開発者103は、CA101にセキュリティポリシーを提供しなくてもよい。セキュリティポリシーを提供しないことにより、ソフトウェア開発者103は、CA101に向けられるソフトウェア署名要求に対する制約に欠ける。従って、CA101は、ソフトウェア開発者103がソフトウェアに署名するようにCA101に要求する条件の観測結果に基づいて、ソフトウェア開発者101に関するセキュリティポリシーを生成してもよい。
既に述べたように、セキュリティポリシーは、署名要求が、有効あるいはセキュリティポリシーに対して変則であるかを決定するために、CA101によって検証されなければならない具体的な条件を規定することができる。例えば、ソフトウェア開発者のセキュリティポリシーは、有効なソフトウェア署名要求をCA101に提出し得るソフトウェア開発者103に関連するコンピュータシステムのマシンIDおよび/または社員(すなわちスタッフ)を記述し得る。セキュリティポリシーは、地理位置情報であってそこからのソフトウェア開発者の署名要求をCA101が予期し得る地理位置情報も記述し得る。例えば、セキュリティポリシーは、米国内に位置するコンピュータシステムからの署名要求の受信のみが許可されることを示してもよい。指定された地理位置情報は、より具体的な場所であってそこからの要求はCA101によって受信されなければならない都市名コードあるいは郵便番号等のより具体的な場所を記述することもできる。ある実施形態では、セキュリティポリシーは、ソフトウェアのビルド日時のソフトウェア開発者のスケジュールを記述することもできる。ビルド日時は、CA101が完成したソフトウェアに署名するようにソフトウェア開発者からの要求を受信することが予期できる期間(例えば、日、週、または月)を示す。加えて、ソフトウェア開発者は、悪質な特性に関してソフトウェアを分析することによって、提出されたソフトウェアが悪質なものではないとCA101が検証することをそのポリシー内に示してもよい。他の実施形態では、ソフトウェア開発者のポリシーは、本明細書に記載されたもの以外の規則を包含してもよい。
署名要求モジュール301は、開発者コンピュータシステム103からソフトウェア署名要求を受信する。ある実施形態では、開発者コンピュータシステム103からの要求に含まれるソフトウェアは、無署名でもよい。あるいは、その要求に含まれるソフトウェアは、開発者コンピュータシステム103によって既に署名されていてもよい。従って、ソフトウェア開発者は、CA101がソフトウェアに連署または副署することを要求している。ある実施形態では、要求は、CA101によって提供される安全なウェブポータルを介して、署名要求モジュール301によって受信される。ソフトウェア開発者103は、ユーザ名およびパスワード等の認証情報を用いて、安全なウェブポータルにログインする。認証情報が検証されると、ソフトウェア開発者103は、署名要求モジュール301によって受信されるソフトウェア署名要求を提供する。あるいは、ソフトウェア署名モジュール301は、電子メール等の他の手段によって、要求を受信してもよい。
ある実施形態では、署名された/無署名のソフトウェアに加えて、署名要求は、要求の条件を記述する情報(例えばメタデータ)を含む。ある実施形態によれば、署名要求モジュール301は、要求自体からメタデータを入手する。例えば、署名要求モジュール301は、要求を提出した開発者コンピュータシステム103のマシンIDおよび/またはコンピュータシステム103の要求が提出された日付および時間を、要求に関連するメタデータから入手してもよい。さらに、署名モジュール301は、ウェブポータルであってそこから要求が提出されたウェブポータルに提供されたユーザ名および/またはパスワードを示すメタデータから、要求を提出しているユーザを識別してもよい。
加えて、署名要求モジュール301は、要求からメタデータを得てもよい。署名要求モジュール301は、要求の出所を示す地理位置情報等のメタデータを得てもよい。地理位置情報を決定するためには、署名モジュール301は、IPアドレスであってそこから要求が受信されたIPアドレスを観察してもよい。さらに、ソフトウェアの署名要求が電子メールによって送信された場合には、署名要求モジュール301は、要求を提出した人の電子メールアドレスに基づいて、要求を提出しているユーザを識別してもよい。
ある実施形態では、署名要求モジュール301は、ソフトウェア開発者103からのソフトウェア署名要求の過去のパターンを識別する。署名要求モジュール301は、少なくとも部分的に識別された要求パターンに基づいて、ソフトウェア開発者のセキュリティポリシーを更新する。従って、ソフトウェア開発者システム103は、有効な署名要求を示すセキュリティポリシーにおいて、初期基準を規定済みの場合もあるが、署名要求モジュール301は、ソフトウェア開発者の実際の署名要求のパターンに従ってポリシーを変更する。例えば、ソフトウェア開発者は、有効な要求がカリフォルニアからのもののみであることをセキュリティポリシーに示していた場合もある。しかしながら、署名要求モジュール301は、CA101に対するソフトウェア開発者の署名要求の履歴に基づいて、ソフトウェア開発者からの有効な署名要求は、実際には、カリフォルニアおよびニューヨークからのものであると決定することができる。
ある実施形態では、要求検証モジュール303は、ソフトウェア開発者システム103から受信したソフトウェア署名要求が有効であるか変則であるかを決定する。要求検証モジュール303は、要求の条件がソフトウェア開発者103のセキュリティポリシーに示された条項と一致していれば要求が有効であると決定する。すなわち、要求検証モジュール303は、署名要求の条件が、開発者のセキュリティポリシーに示されるようなソフトウェア開発者103の一般的署名パターンに一致するか否かを識別する。要求の条件がソフトウェア開発者のセキュリティポリシーと矛盾する場合には、その要求は変則である。要求が有効または変則であるかを決定するために、要求検証モジュール303は、要求に関連する情報(例えばメタデータ)を、ポリシーデータベース311に保存されたソフトウェア開発者のセキュリティポリシーと比較する。要求の条件がソフトウェア開発者のセキュリティポリシーと一致する(すなわちマッチする)ことを示す比較に応答して、要求検証モジュール303は、要求が有効であると決定する。
例えば、ソフトウェア開発者のセキュリティポリシーは、有効な要求が米国からのもののみであって、かつ、特定のマシンIDからのもののみであることを示してもよい。要求検証モジュール303は、ソフトウェア開発者のセキュリティポリシーを、要求の出所を示す要求からのメタデータ並びに要求をCA101に送信したソフトウェア開発者システム103のマシンIDを示すメタデータと比較する。メタデータから、要求検証モジュール303は、カリフォルニアからのものであり、かつ開発者のセキュリティポリシーに記載されたマシンIDからの要求を決定する。従って、要求検証モジュール303は、その要求が有効であると決定する。
しかしながら、要求の条件がソフトウェア開発者のセキュリティポリシーと矛盾する(すなわちマッチしない)ことを比較が示す場合には、要求検証モジュール303は、要求が変則であると識別する。要求が変則であることに応答して、要求検証モジュール303は、1つまたは複数のセキュリティ措置を行ってもよい。ある実施形態では、セキュリティ措置は、変則要求を悪意のあるものとして扱い、自動的に署名要求を拒否することを含む。従って、要求検証モジュール303は、ソフトウェアの署名/副署を拒む。あるいは、要求検証モジュール303は、変則要求を悪意のあるものとして自動的に扱わなくてもよい。代わりに、要求検証モジュール303は、要求を提出したソフトウェア開発者に連絡を取ることを含むセキュリティ措置を行ってもよい。ソフトウェア開発者に連絡を取ることにより、要求検証モジュール303は、要求が実際に有効な要求であるか否かを決定することができる。さらに、要求検証モジュール303は、要求を有効にするためのパスワードをソフトウェア開発者が提供することを求めてもよい。パスワードが検証されると、要求検証モジュール303は、その要求を有効であると見なすことができる。
例えば、要求が変則であると要求検証モジュール303が決定したことに応答して、要求検証モジュールは、要求に関するメッセージの電子メールまたは電話によって、ソフトウェア開発者103と連絡を取ってもよい。このメッセージは、開発者からのソフトウェア署名要求が、開発者のセキュリティポリシーと一致しなかったために変則であったことを示してもよい。例えば、開発者のセキュリティポリシーは、有効な署名要求は米国からのみ受信されるが、変則要求の出所は中国であることを示してもよい。従って、この要求は疑わしいと見なされ、ソフトウェア開発者103は連絡を受ける。加えて、このメッセージには、CA101に対してソフトウェア開発者自身が本物であることを証明するために、ソフトウェア開発者にパスワードを提供することを要求する等の、ソフトウェア開発者に対するチャレンジ質問を含んでいてもよい。次に、CA101がソフトウェア開発者に関連する正しいパスワードを受け取ったことに応答して、この要求は、有効であると決定される。
認証局101は、マルウェア検出モジュール307をさらに含む。幾つかの実施形態では、要求検証モジュール303は、署名要求が変則であるか否かを決定するために、マルウェア検出モジュール307を呼び出し、受信したソフトウェアをスキャンする。マルウェア検出モジュール307は、悪質な特性に関して、ソフトウェア開発者システム103からの署名要求に含まれるソフトウェアを分析する。すなわち、マルウェア検出モジュール307は、受信したソフトウェアがマルウェアである、またはマルウェアを含むかを識別する。従って、マルウェア検出モジュール307は、要求の条件がソフトウェア開発者のセキュリティポリシーと一致する場合であっても、悪質なソフトウェアが署名されることを防止する。悪質なソフトウェアがマルウェア検出モジュール307によって検出されたことに応答して、悪質なソフトウェアに関連する要求は、自動的に拒否される。悪質なソフトウェアは、マルウェアに基づくマルウェア署名を開発するために、マルウェア検出モジュール307によって保存されてもよい。マルウェア署名は、クライアントに保存されるアンチウイルスソフトウェアを更新するために、クライアント105に送信される。
ある実施形態では、要求検証モジュール303は、署名鍵が盗まれたか否かも決定する。既に署名されたソフトウェアに連署する要求を受信すると、要求検証モジュール303は、ソフトウェアに署名するためにソフトウェア開発者システム103によって使用された署名鍵を発行した既知の証明書の所有者(それ自身以外)と連絡を取る。認証局と連絡を取ることにより、要求検証モジュール303は、認証局が開発者システム103による署名鍵の使用を予期しているか否かを決定する。すなわち、要求検証モジュール303は、証明書の所有者が署名鍵の使用を予期していることを認証する。証明書の所有者が、1つまたは複数の自身の証明書の使用を予期していることを確認することにより、要求検証モジュール303は、署名鍵が盗まれたかどうかを検出することができる。
加えて、要求検証モジュール303は、開発者コンピュータシステム103によって提出された各署名要求を検証するために、利害関係者と連絡を取ってもよい。ある実施形態では、利害関係者は、開発者103の行為によって影響を受ける開発者103と関係する人または団体または組織である。要求検証モジュール303は、開発者コンピュータシステム103によって提出されたソフトウェア署名要求が正規のものであることを検証するために、利害関係者に連絡を取る。利害関係者は、開発者コンピュータシステムの要求の正当性を検証するパスワード等の認証情報を提供することによって、要求を検証してもよい。ある実施形態では、要求が検証されるまでは、要求検証モジュール303は、要求に関連するソフトウェアが署名されることを阻止することができる。すなわち、要求検証モジュール303は、要求の正当性が利害関係者によって検証されるまでは、要求の処理を控えることができる。
ソフトウェア署名モジュール305は、ソフトウェアにデジタル署名を行う。ある実施形態によれば、ソフトウェア署名モジュール305は、有効な署名要求に関連するソフトウェアにのみ署名を行う。署名を行うために、ソフトウェア署名モジュール305は、ソフトウェアのハッシュを計算するためのハッシュ関数を用いる。ある実施形態では、ソフトウェア署名モジュール305は、鍵データベース309からの秘密鍵を用いて、ハッシュを暗号化する。別の実施形態では、秘密鍵は、ハッシュを生成するために、ハッシュ関数自体によって利用され、これによって、ハッシュの別個の暗号化を行う必要性が排除される。
ソフトウェア署名モジュール305は、ハッシュを暗号化するために使用される秘密鍵に対応する公開鍵を指定する高信頼コード署名証明書も作成する。ある実施形態では、ソフトウェア署名モジュール305は、証明書内に評判情報を入れる。評判情報は、署名されたソフトウェアの信頼性および/または開発者103の評判を示す。評判情報は、ソフトウェア開発者の署名要求の検証中に満たされたソフトウェア開発者のセキュリティポリシーの条項および/または署名要求の提出を利害関係者が確認したことの表示を含んでいてもよい。ソフトウェア開発者のポリシーのどの条項が満たされたかに基づいてCA101によって計算された評判スコア等の評判に関する他の表示を、証明書内に包含してもよい。
ある実施形態では、評判情報に基づいて、異なるレベルの信頼性を証明書内に包含してもよい。例えば、証明書が評判情報を欠く場合には、ソフトウェア署名モジュール305は、その証明書に「信頼できる」レベルを割り当ててもよい。ソフトウェア開発者のセキュリティポリシーは検証されていないが、ソフトウェアがCA101によって署名/連署されている事実は、ソフトウェアが信頼できることを十分に保証する。加えて、ソフトウェアの署名に先立って、証明書に示されるソフトウェア開発者のセキュリティポリシーの条件がCA101によって検証済みである場合には、ソフトウェア署名モジュール305は、証明書に「非常に信頼できる」レベルを包含してもよい。最後に、利害関係者が要求の正当性を確認し、かつCA101が証明書に評判情報として示されるソフトウェア開発者のセキュリティポリシーの条項を検証した場合には、ソフトウェア署名モジュール305は、証明書に「極めて信頼できる」レベルを包含してもよい。
証明書の作成後に、ソフトウェア署名モジュール305は、暗号化されたハッシュおよび証明書を保存する。暗号化されたハッシュおよび証明書を保存することにより、ソフトウェア署名モジュール305は、効果的にソフトウェアに署名する。ソフトウェア署名モジュール305は、ソフトウェアと一緒に配布するための暗号化されたハッシュおよび証明書をソフトウェア開発者コンピュータシステム103に送信してもよい。
ある実施形態では、CA101は、無署名ソフトウェア検出モジュール313をさらに含む。無署名ソフトウェア検出モジュール313は、CA101によって署名/連署が行われていない環境100にある署名されたソフトウェアを識別する。既に述べたように、クライアント105は、CA101によって署名/連署されたソフトウェアのみを実行することができる。無署名ソフトウェア検出モジュール313は、実行を拒絶された無署名ソフトウェアを示す連絡をクライアント105から受信してもよい。あるいは、無署名ソフトウェア検出モジュール313は、環境100における無署名ソフトウェアの指摘を他の外部ソースから受信してもよい。
図4は、ある実施形態による、ソフトウェア開発者からの署名要求に含まれるソフトウェアに署名を行うためにCA101によって行われるステップを示すフローチャートである。他の実施形態は、異なる順序で図示したステップを行う、および/または異なるステップまたは追加のステップを行う。さらに、これらのステップの一部は、認証局101以外の団体によって行うことができる。
ある実施形態では、CA101は、ソフトウェア開発者からソフトウェアの署名要求を受信する(401)。CA101は、要求を提出したソフトウェア開発者のセキュリティポリシーにアクセスする(403)。CA101は、要求の条件をソフトウェア開発者のセキュリティポリシーと比較する(405)。CA101は、要求の条件がソフトウェア開発者のセキュリティポリシーと一致するか否かに基づいて、要求が変則であるか否かを決定する(407)。要求の条件がセキュリティポリシーと矛盾する場合には、その要求は変則であり、CA101がセキュリティ措置を講じる(409)。セキュリティ措置は、要求を拒否する、または変則要求に関してソフトウェア開発者に連絡を取ることを含み得る。要求が有効であることに応答して、CA101は、ソフトウェアに署名する(411)。CA101は、署名したソフトウェアをソフトウェア開発者に返却し、要求を遂行する(413)。
署名/連署されたソフトウェアをCA101からソフトウェア開発者が受け取ると、ソフトウェア開発者は、署名されたソフトウェアをクライアント105に配布する。クライアント105は、それを実行する前に、ソフトウェアに関連する証明書および署名を評価する。クライアント105は、証明書に含まれる評判情報に基づいて、ソフトウェアの信頼性レベルを決定することができる。信頼性レベルに基づいて、クライアント105は、信頼レベルに基づいて、ソフトウェアを実行するか否か、およびその実行方法を決定する。例えば、「極めて信頼できる」レベルは、ソフトウェアが信頼できるソフトウェア開発者によって作成されており、悪意のあるものではないことをクライアント105に示すことができる。従って、クライアント105は、予防措置を何ら講じることなく、ソフトウェアを実行することができる。
上記の記載は、ある実施形態による認証局101を説明するために包含されたものである。他の実施形態、特定の実施形態の動作、およびは、本発明の範囲を限定するものではない。本発明の範囲は、以下の特許請求の範囲によってのみ限定されるものである。上記の記載から、本発明の精神および範囲になお包含される多くの変更例が、当業者には明らかとなるであろう。

Claims (20)

  1. ソフトウェアにデジタル署名を行うために認証局のコンピュータシステムを使用するコンピュータ実施方法であって、
    要求に含まれるソフトウェアにデジタル署名することを求める前記要求をソフトウェア開発者から受信するステップと、
    前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするステップであって、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述する、ステップと、
    少なくとも部分的に、有効な要求の前記基準の内の1つまたは複数が満たされているか否かに基づいて、前記要求が有効であるか否かを決定するステップと、
    前記要求が有効であることを示す前記決定に応答して、前記コンピュータシステムを使用して前記ソフトウェアのデジタル署名を行うステップと、
    前記デジタル署名されたソフトウェアに関連する評判情報をデジタル証明書に埋め込むステップであって、前記評判情報は、前記要求が有効であるか否かの前記決定において満たされたのは、有効な要求の前記1つまたは複数の基準のどれであるのかを示し、有効な要求の前記1つまたは複数の基準は、地理位置情報であってそこから有効な要求が前記ソフトウェア開発者によって出される地理位置情報含む、ステップと、
    前記デジタル署名されたソフトウェアおよび前記デジタル証明書を前記ソフトウェア開発者に提供するステップと、
    を含むコンピュータ実施方法。
  2. 前記要求を前記ソフトウェア開発者から受信するステップは、
    前記ソフトウェア開発者によって既にデジタル署名されたソフトウェアにデジタル連署することを求める要求を受信するステップを含む、請求項1に記載のコンピュータ実施方法。
  3. 前記要求が有効であるか否かを決定するステップは、
    前記要求を前記ソフトウェア開発者から受信した条件を識別するステップと、
    前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較するステップと、
    前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーに記述された有効な要求の前記基準とマッチするか否かを決定するステップと、
    前記要求の前記識別された条件が、前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行うステップと、
    前記要求の前記識別された条件が、前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するステップと、
    を含む、請求項1に記載のコンピュータ実施方法。
  4. 前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップをさらに含み、前記セキュリティ措置は、前記要求を拒否することを含む、請求項3に記載のコンピュータ実施方法。
  5. 前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップをさらに含み、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、
    前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項3に記載のコンピュータ実施方法。
  6. 前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取るステップと、
    前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるステップと、
    をさらに含む、請求項1に記載のコンピュータ実施方法。
  7. 前記ソフトウェアにデジタル連署することを求める前記要求の受信に応答して、前記ソフトウェアにデジタル署名するために前記ソフトウェア開発者による署名鍵の使用が予期されているか否かを検証するために、認証局に連絡を取るステップであって、前記署名鍵は、前記認証局によって提供される、ステップと、
    前記署名鍵の前記使用が予期されていないという決定に応答して、前記署名鍵が盗まれたことを決定するステップと、
    をさらに含む、請求項2に記載のコンピュータ実施方法。
  8. 前記ソフトウェア開発者による有効な要求の前記基準が、有効な要求を提出する特定のマシン識別子、有効な要求を出す前記ソフトウェア開発者に関係する社員の識別子、および前記ソフトウェア開発者が有効な要求を出し得る期間の内の少なくとも1つをさらに含む、請求項1に記載のコンピュータ実施方法。
  9. コンピュータ実行可能コードを保存する非一時的コンピュータ可読記憶媒体であって、前記コードがコンピュータプロセッサによって実行されることにより、前記コンピュータプロセッサは、
    要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するステップと、
    前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするステップであって、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述する、ステップと、
    少なくとも部分的に、有効な要求の前記基準の内の1つまたは複数が満たされているか否かに基づいて、前記要求が有効であるか否かを決定するステップと、
    前記要求が有効であることを示す前記決定に応答して、前記ソフトウェアのデジタル署名を行うステップと、
    前記デジタル署名されたソフトウェアに関連する評判情報をデジタル証明書に埋め込むステップであって、前記評判情報は、前記要求が有効であるか否かの前記決定において満たされたのは、有効な要求の前記1つまたは複数の基準のどれであるのかを示し、有効な要求の前記1つまたは複数の基準は、地理位置情報であってそこから有効な要求が前記ソフトウェア開発者によって出される地理位置情報含む、ステップと、
    前記デジタル署名されたソフトウェアおよび前記デジタル証明書を前記ソフトウェア開発者に提供するステップと、
    を含むステップを行う、コンピュータ可読記憶媒体
  10. 前記コードがコンピュータプロセッサによって実行されることにより、前記コンピュータプロセッサは、
    前記要求を前記ソフトウェア開発者から受信した条件を識別するステップと、
    前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較するステップと、
    前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーに記述された有効な要求の前記基準とマッチするか否かを決定するステップと、
    前記要求の前記識別された条件が前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行うステップと、
    前記要求の前記識別された条件が前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するステップと、
    を含むステップをさらに行う、請求項9に記載のコンピュータ可読記憶媒体
  11. 前記コードがコンピュータプロセッサによって実行されることにより、前記コンピュータプロセッサは、
    前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップを含むステップをさらに行い、前記セキュリティ措置は、前記要求を拒否することを含む、請求項10に記載のコンピュータ可読記憶媒体
  12. 前記コードがコンピュータプロセッサによって実行されることにより、前記コンピュータプロセッサは、
    前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップを含むステップをさらに行い、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、
    前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項10に記載のコンピュータ可読記憶媒体
  13. 前記コードがコンピュータプロセッサによって実行されることにより、前記コンピュータプロセッサは、
    前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取るステップと、
    前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるステップと、
    を含むステップをさらに行う、請求項9に記載のコンピュータ可読記憶媒体
  14. ソフトウェアにデジタル署名を行うための認証局のコンピュータシステムであって、前記システムは、
    コンピュータプロセッサと、
    前記コンピュータプロセッサで実行されるように構成されたコンピュータコードを保存する非一時的コンピュータ可読記憶媒体と、
    を含み、
    前記コンピュータコードが実行されることにより、前記システムは、
    要求に含まれるソフトウェアにデジタル署名することを求める前記要求をソフトウェア開発者から受信するステップと、
    前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするステップであって、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述する、ステップと、
    少なくとも部分的に、有効な要求の前記基準の内の1つまたは複数が満たされたか否かに基づいて、前記要求が有効であるか否かを決定するステップと、
    前記要求が有効であることを示す前記決定に応答して、前記ソフトウェアのデジタル署名を行うステップと、
    前記デジタル署名されたソフトウェアに関連する評判情報をデジタル証明書に埋め込むステップであって、前記評判情報は、前記要求が有効であるか否かの前記決定において満たされたのは、有効な要求の前記1つまたは複数の基準のどれであるのかを示し、有効な要求の前記1つまたは複数の基準は、地理位置情報であってそこから有効な要求が前記ソフトウェア開発者によって出される地理位置情報含む、ステップと、
    前記デジタル署名されたソフトウェアおよび前記デジタル証明書を前記ソフトウェア開発者に提供するステップと、
    を含むステップを行う、コンピュータシステム。
  15. 前記コンピュータコードが実行されることにより、前記システムは、
    前記要求を前記ソフトウェア開発者から受信した条件を識別するステップと、
    前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較するステップと、
    前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーに記述された有効な要求の前記基準とマッチするか否かを決定するステップと、
    前記要求の前記識別された条件が前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行うステップと、
    前記要求の前記識別された条件が前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するステップと、
    を含むステップをさらに行う、請求項14に記載のコンピュータシステム。
  16. 前記コンピュータコードが実行されることにより、前記システムは、
    前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップを含むステップをさらに行い、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、
    前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項15に記載のコンピュータシステム。
  17. 前記コンピュータコードが実行されることにより、前記システムは、
    前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取るステップと、
    前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるステップと、
    を含むステップをさらに行う、請求項15に記載のコンピュータシステム。
  18. デジタル証明書に埋め込まれた前記評判情報は、前記デジタル署名されたソフトウェアの信頼性のレベルを示す、請求項1に記載のコンピュータ実施方法。
  19. クライアントデバイスによる前記デジタル署名されたソフトウェアの実行は、少なくともデジタル証明書に埋め込まれた前記評判情報の部分に基づく、請求項18に記載のコンピュータ実施方法。
  20. デジタル証明書に埋め込まれた前記評判情報は、前記ソフトウェア開発者による有効な要求の前記基準のうちの一つに一致する、前記要求が前記ソフトウェア開発者から受信される少なくとも一つの条件を特定する、請求項1に記載のコンピュータ実施方法。

JP2013534928A 2010-10-19 2011-09-29 ソフトウェア署名証明書評判モデル Active JP5598828B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/907,308 US8621591B2 (en) 2010-10-19 2010-10-19 Software signing certificate reputation model
US12/907,308 2010-10-19
PCT/US2011/053881 WO2012054204A1 (en) 2010-10-19 2011-09-29 Software signing certificate reputation model

Publications (3)

Publication Number Publication Date
JP2014500997A JP2014500997A (ja) 2014-01-16
JP2014500997A5 JP2014500997A5 (ja) 2014-07-03
JP5598828B2 true JP5598828B2 (ja) 2014-10-01

Family

ID=44774182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013534928A Active JP5598828B2 (ja) 2010-10-19 2011-09-29 ソフトウェア署名証明書評判モデル

Country Status (5)

Country Link
US (1) US8621591B2 (ja)
EP (1) EP2652663B1 (ja)
JP (1) JP5598828B2 (ja)
CA (1) CA2814497C (ja)
WO (1) WO2012054204A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122877B2 (en) 2011-03-21 2015-09-01 Mcafee, Inc. System and method for malware and network reputation correlation
US9106680B2 (en) 2011-06-27 2015-08-11 Mcafee, Inc. System and method for protocol fingerprinting and reputation correlation
US9336137B2 (en) 2011-09-02 2016-05-10 Google Inc. System and method for performing data management in a collaborative development environment
US20130067533A1 (en) * 2011-09-11 2013-03-14 Microsoft Corporation Generating a test license for a developer application
US8745616B1 (en) * 2011-09-23 2014-06-03 Symantec Corporation Systems and methods for providing digital certificates that certify the trustworthiness of digitally signed code
US8738706B1 (en) 2011-11-16 2014-05-27 Google Inc. Systems and methods for collaborative document editing
US8799634B2 (en) * 2011-12-23 2014-08-05 Blackberry Limited Method and system for temporarily reconfiguring system settings of a computing device during execution of a software application
US8931043B2 (en) 2012-04-10 2015-01-06 Mcafee Inc. System and method for determining and using local reputations of users and hosts to protect information in a network environment
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
CA2906306C (en) 2013-03-15 2022-09-06 Anchor Orthopedics Xt Inc. Apparatus and methods for loading suture
US9565211B2 (en) * 2013-03-15 2017-02-07 True Ultimate Standards Everywhere, Inc. Managing exchanges of sensitive data
US9864873B2 (en) 2013-03-15 2018-01-09 Trustarc Inc Managing data handling policies
US9202057B2 (en) 2013-08-30 2015-12-01 Symantec Corporation Systems and methods for identifying private keys that have been compromised
US9497194B2 (en) * 2013-09-06 2016-11-15 Oracle International Corporation Protection of resources downloaded to portable devices from enterprise systems
US9338012B1 (en) * 2013-10-04 2016-05-10 Symantec Corporation Systems and methods for identifying code signing certificate misuse
CN105580023B (zh) 2013-10-24 2019-08-16 迈克菲股份有限公司 网络环境中的代理辅助的恶意应用阻止
US9246923B1 (en) 2014-01-19 2016-01-26 Google Inc. Developer risk classifier
US9111093B1 (en) 2014-01-19 2015-08-18 Google Inc. Using signals from developer clusters
WO2015134034A1 (en) 2014-03-07 2015-09-11 Hewlett-Packard Development Company, L.P. Network security for encrypted channel based on reputation
US9521153B2 (en) * 2014-08-18 2016-12-13 Dell Products L.P. Platform trust extension
US11032266B2 (en) * 2014-12-23 2021-06-08 Mcafee, Llc Determining the reputation of a digital certificate
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US10642976B2 (en) * 2015-06-27 2020-05-05 Mcafee, Llc Malware detection using a digital certificate
JP6531564B2 (ja) * 2015-08-26 2019-06-19 富士ゼロックス株式会社 情報処理システム
US20170093586A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Techniques for managing certificates on a computing device
US9894045B1 (en) * 2015-12-14 2018-02-13 Symantec Corporation Determining application reputation based on deviations in security rating scores
GB2547921B (en) * 2016-03-03 2019-05-29 F Secure Corp Authenticating or controlling software application on end user device
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US11277261B2 (en) * 2018-09-21 2022-03-15 Netiq Corporation Blockchain-based tracking of program changes
CN110008688B (zh) * 2019-03-07 2020-10-13 北京华安普特网络科技有限公司 一种网站防挂马检测方法
US20230214822A1 (en) * 2022-01-05 2023-07-06 Mastercard International Incorporated Computer-implemented methods and systems for authentic user-merchant association and services

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3649006B2 (ja) * 1998-11-19 2005-05-18 三菱電機株式会社 電子検印システム
EP2278429B1 (en) * 2000-09-21 2014-03-12 BlackBerry Limited Software code signing system and method
JP2002318634A (ja) * 2001-04-20 2002-10-31 Hitachi Ltd 電子署名検証方法及びシステム、並びに電子署名検証プログラム及びこのプログラムを記録した記録媒体
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US20070074033A1 (en) * 2005-09-29 2007-03-29 Research In Motion Limited Account management in a system and method for providing code signing services
JP2008158686A (ja) * 2006-12-21 2008-07-10 Toshiba Corp プログラム検証装置及び方法、プログラム検証に基づく署名システム
WO2009111401A1 (en) 2008-03-04 2009-09-11 Apple Inc. Managing code entitlements for software developers in secure operating environments
US20090228704A1 (en) * 2008-03-04 2009-09-10 Apple Inc. Providing developer access in secure operating environments

Also Published As

Publication number Publication date
CA2814497A1 (en) 2012-04-26
EP2652663A1 (en) 2013-10-23
WO2012054204A1 (en) 2012-04-26
JP2014500997A (ja) 2014-01-16
US20120096516A1 (en) 2012-04-19
EP2652663B1 (en) 2019-10-30
CA2814497C (en) 2016-05-03
US8621591B2 (en) 2013-12-31

Similar Documents

Publication Publication Date Title
JP5598828B2 (ja) ソフトウェア署名証明書評判モデル
US11329989B2 (en) Token-based access control and grouping
US10318336B2 (en) Posture assessment in a secure execution environment
CN109075976B (zh) 取决于密钥认证的证书发布
US10452853B2 (en) Disarming malware in digitally signed content
JP7426475B2 (ja) 分散化されたデータ認証
US10715514B1 (en) Token-based credential renewal service
US20190124097A1 (en) Detecting lateral movement by malicious applications
US8286225B2 (en) Method and apparatus for detecting cyber threats
US20090178138A1 (en) Stateless attestation system
US10673862B1 (en) Token-based access tracking and revocation
JP2009518762A (ja) インテグリティデータベースサービスを用いた、トラステッドプラットフォーム上のコンポーンテントのインテグリティの検証方法
AU2016318602A1 (en) Secured user credential management
US10567171B2 (en) Client-side security key generation
Black et al. Be careful who you trust: Issues with the Public Key Infrastructure
Gruschka et al. Analysis of the current state in website certificate validation
US20210209240A1 (en) Information processing device, information processing method, information processing program, and information processing system
McLuskie et al. X. 509 certificate error testing
US20240048569A1 (en) Digital certificate malicious activity detection
Zissis et al. Trust coercion in the name of usable public key infrastructure
US20240022546A1 (en) Master ledger and local host log extension detection and mitigation of forged authentication attacks
WO2003067850A1 (en) Verifying digital content integrity
Foltz et al. Enterprise Security with Endpoint Agents
Nikkarinen Security in Authentication Systems and How Usability and Human Factors Contribute to Security in OneID
Jaiswal Analyzing and addressing the security issues of non-browser web-connected applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140519

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140519

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5598828

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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