ソフトウェアにデジタル署名を行うために認証局のコンピュータシステムを使用するコンピュータ実施方法であって、要求に含まれるソフトウェアにデジタル署名することを求める前記要求をソフトウェア開発者から受信するステップと、前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするステップであって、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述する、ステップと、少なくとも部分的に前記セキュリティポリシーに基づいて、前記要求が有効であるか否かを決定するステップと、前記要求が有効であることを示す前記決定に応答して、前記ソフトウェアのデジタル署名を行うステップと、前記デジタル署名されたソフトウェアを前記ソフトウェア開発者に提供するステップと、を含む方法。前記要求を前記ソフトウェア開発者から受信するステップは、前記ソフトウェア開発者によって既にデジタル署名されたソフトウェアにデジタル連署することを求める要求を受信するステップを含む、請求項1に記載のコンピュータ実施方法。少なくとも部分的に前記セキュリティポリシーに基づいて前記要求が有効であるか否かを決定するステップは、前記要求を前記ソフトウェア開発者から受信した条件を識別するステップと、前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較するステップと、前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーに記述された有効な要求の前記基準とマッチするか否かを決定するステップと、前記要求の前記識別された条件が、前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行うステップと、前記要求の前記識別された条件が、前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するステップと、を含む、請求項1に記載のコンピュータ実施方法。評判情報をデジタル証明書に埋め込むステップであって、前記評判情報は、前記有効な要求の前記基準とマッチする前記要求の前記識別された条件を示す、ステップと、前記デジタル証明書を前記ソフトウェア開発者に提供するステップと、をさらに包含する、請求項3に記載のコンピュータ実施方法。前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップをさらに含み、前記セキュリティ措置は、前記要求を拒否することを含む、請求項3に記載のコンピュータ実施方法。前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップをさらに含み、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項3に記載のコンピュータ実施方法。前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取るステップと、前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるステップと、をさらに含む、請求項1に記載のコンピュータ実施方法。前記ソフトウェアにデジタル連署することを求める前記要求の受信に応答して、前記ソフトウェアにデジタル署名するために前記ソフトウェア開発者による署名鍵の使用が予期されているか否かを検証するために、認証局に連絡を取るステップであって、前記署名鍵は、前記認証局によって提供される、ステップと、前記署名鍵の前記使用が予期されていないという決定に応答して、前記署名鍵が盗まれたことを決定するステップと、をさらに含む、請求項2に記載のコンピュータ実施方法。前記ソフトウェア開発者による有効な要求の前記基準が、有効な要求を提出する特定のマシン識別子、地理位置情報であってそこから有効な要求が前記ソフトウェア開発者によって出される地理位置情報、有効な要求を出す前記ソフトウェア開発者に関係する社員の識別子、および前記ソフトウェア開発者が有効な要求を出し得る期間の内の少なくとも1つを含む、請求項1に記載のコンピュータ実施方法。コンピュータ実行可能コードを保存する非一時的コンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記コードは、コンピュータプロセッサによって実行される際に、要求に含まれるソフトウェアにデジタル署名することを求める前記要求をソフトウェア開発者から受信するステップと、前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするステップであって、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述する、ステップと、少なくとも部分的に前記セキュリティポリシーに基づいて、前記要求が有効であるか否かを決定するステップと、前記要求が有効であることを示す前記決定に応答して、前記ソフトウェアのデジタル署名を行うステップと、前記デジタル署名されたソフトウェアを前記ソフトウェア開発者に提供するステップと、を含むステップを行う、コンピュータプログラム製品。前記コードは、前記プロセッサによって実行される際に、前記要求を前記ソフトウェア開発者から受信した条件を識別するステップと、前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較するステップと、前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーに記述された有効な要求の前記基準とマッチするか否かを決定するステップと、前記要求の前記識別された条件が前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行うステップと、前記要求の前記識別された条件が前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するステップと、を含むステップをさらに行う、請求項10に記載のコンピュータプログラム製品。前記コードは、前記プロセッサによって実行される際に、評判情報をデジタル証明書に埋め込むステップであって、前記評判情報は、前記有効な要求の前記基準とマッチする前記要求の前記識別された条件を示す、ステップと、前記デジタル証明書を前記ソフトウェア開発者に提供するステップと、を含むステップをさらに行う、請求項11に記載のコンピュータプログラム製品。前記コードは、前記プロセッサによって実行される際に、前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップを含むステップをさらに行い、前記セキュリティ措置は、前記要求を拒否することを含む、請求項11に記載のコンピュータプログラム製品。前記コードは、前記プロセッサによって実行される際に、前記要求が変則であるとの決定に応答してセキュリティ措置を講じるステップを含むステップをさらに行い、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項11に記載のコンピュータプログラム製品。前記コードは、前記プロセッサによって実行される際に、前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取るステップと、前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるステップと、を含むステップをさらに行う、請求項10に記載のコンピュータプログラム製品。ソフトウェアにデジタル署名を行うための認証局のコンピュータシステムであって、前記システムは、コンピュータプロセッサと、前記コンピュータプロセッサで実行されるように構成されたコンピュータプログラムモジュールを保存する非一時的コンピュータ可読記憶媒体と、を含み、前記コンピュータプログラムモジュールは、要求に含まれるソフトウェアにデジタル署名することを求める前記要求をソフトウェア開発者から受信するように構成された署名要求モジュールと、要求検証モジュールであって、前記ソフトウェア開発者に関連するセキュリティポリシーにアクセスするように構成され、前記セキュリティポリシーは、前記ソフトウェア開発者による有効な要求の基準を記述し、少なくとも部分的に前記セキュリティポリシーに基づいて、前記要求が有効であるか否かを決定するように構成された、要求検証モジュールと、ソフトウェア署名モジュールであって、前記要求が有効であることを示す前記決定に応答して、前記ソフトウェアのデジタル署名を行うように構成され、かつ前記デジタル署名されたソフトウェアを前記ソフトウェア開発者に提供するように構成された、ソフトウェア署名モジュールと、を含む、コンピュータシステム。前記要求検証モジュールは、前記要求を前記ソフトウェア開発者から受信した条件を識別し、前記識別した条件を、前記ソフトウェア開発者の前記セキュリティポリシーに記述された有効な要求の前記基準と比較し、前記比較に基づいて、前記要求の前記識別された条件が、前記セキュリティポリシーによって記述された有効な要求の前記基準とマッチするか否かを決定し、前記要求の前記識別された条件が前記有効な要求の前記基準とマッチすることに応答して、前記要求が有効であることを決定し、前記ソフトウェアにデジタル署名を行い、かつ前記要求の前記識別された条件が前記有効な要求の前記基準とマッチしないことに応答して、前記要求が変則であることを決定するようにさらに構成された、請求項16に記載のコンピュータシステム。前記ソフトウェア署名モジュールはさらに、評判情報をデジタル証明書に埋め込むように構成され、前記評判情報は、前記有効な要求の前記基準とマッチする前記要求の前記識別された条件を示し、前記デジタル証明書を前記ソフトウェア開発者に提供するように構成された、請求項17に記載のコンピュータシステム。前記要求検証モジュールは、前記要求が変則であるとの決定に応答してセキュリティ措置を講じるようにさらに構成され、前記セキュリティ措置は、前記要求が有効であることを確認するために、前記ソフトウェア開発者に連絡を取ることを含み、前記確認は、前記ソフトウェア開発者からセキュリティ認証情報を受信することを含む、請求項17に記載のコンピュータシステム。前記要求検証モジュールはさらに、前記要求の受信に応答して、前記要求が有効であることを検証するために、前記ソフトウェア開発者に関係する利害関係者に連絡を取り、かつ前記要求が有効であることを検証する前記利害関係者からのセキュリティ認証情報が受信されるまでは、前記要求の処理を控えるように構成される、請求項17に記載のコンピュータシステム。従って、盗まれた、および/または悪用されたデジタル証明書によって生じる問題に対処する必要性がある。上記および他の必要性は、ソフトウェアにデジタル署名を行うために認証局のコンピュータシステムを使用する、コンピュータ実施方法、コンピュータシステム、および実行可能コードを保存する非一時的コンピュータ可読記憶媒体によって満たされる。コンピュータ実施方法のある実施形態は、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するステップを含む。ソフトウェア開発者に関連するセキュリティポリシーにアクセスする。セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述する。コンピュータ実施方法は、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定する。要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名が行われる。コンピュータ実施方法は、デジタル署名されたソフトウェアをソフトウェア開発者に提供する。ソフトウェアにデジタル署名を行うための認証局のコンピュータシステムの実施形態は、コンピュータプロセッサと、コンピュータプロセッサで実行されるように構成されたコンピュータプログラムモジュールを保存する非一時的コンピュータ可読記憶媒体とを含む。コンピュータプログラムモジュールは、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するように構成された署名要求モジュールを含む。モジュールはさらに、ソフトウェア開発者に関連するセキュリティポリシーにアクセスするように構成され、セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述し、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定するように構成された要求検証モジュールを含む。最後に、モジュールは、要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名を行い、かつデジタル署名されたソフトウェアをソフトウェア開発者に提供するように構成されたソフトウェア署名モジュールを含む。コンピュータプログラム製品の実施形態は、コンピュータ実行可能コードを保存する非一時的コンピュータ可読記憶媒体を含み、このコードは、コンピュータプロセッサによって実行される際に、要求に含まれるソフトウェアにデジタル署名することを求める要求をソフトウェア開発者から受信するステップを含むステップを行う。ソフトウェア開発者に関連するセキュリティポリシーにアクセスする。セキュリティポリシーは、ソフトウェア開発者による有効な要求の基準を記述する。ステップはさらに、少なくとも部分的にセキュリティポリシーに基づいて、要求が有効であるか否かを決定するステップを含む。要求が有効であることを示す決定に応答して、ソフトウェアのデジタル署名が行われる。ステップは、デジタル署名されたソフトウェアをソフトウェア開発者に提供するステップを含む。この概要に記載の特徴および利点、並びに以下の詳細な説明は、包括的なものではない。多くの追加の特徴および利点は、この図面、明細書、および特許請求の範囲を鑑みれば、当業者には明らかとなるであろう。図面は、例示のみを目的として、本発明のある実施形態を示す。当業者であれば、本明細書に記載される本発明の原理から逸脱することなく、本明細書に示される構造および方法の代替実施形態を用いることが可能であることは、以下の記載から容易に認識されるであろう。図1は、ある実施形態によるコンピュータ環境100のハイレベル図である。図1は、認証局CA101、開発者コンピュータシステム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上の他のコンピュータからコンテンツを検索および表示することをユーザに許可するMICROSOFTINTERNETEXPLORER、MOZILLAFIREFOX、APPLESAFARI、またはGOOGLECHROME等のウェブブラウザを含むパーソナルコンピュータでもよい。他の実施形態では、クライアント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、PCIExASPCIExpressAdvancedSwitching等の技術を用いたリンクを含み得る。同様に、ネットワーク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を説明するために包含されたものである。他の実施形態、特定の実施形態の動作、およびは、本発明の範囲を限定するものではない。本発明の範囲は、以下の特許請求の範囲によってのみ限定されるものである。上記の記載から、本発明の精神および範囲になお包含される多くの変更例が、当業者には明らかとなるであろう。