|
|
AIR ファイルへの電子署名認定されている証明機関(CA)が発行した証明書を使用して AIR インストールファイルに電子署名すると、インストールしているアプリケーションが誤ってまたは悪意をもって変更されていないことをユーザに確実に保証することができ、署名したユーザは署名者(発行者)と見なされます。AIR のインストール中に発行者名が表示されるのは、信頼できる証明書、またはインストールされているコンピュータで信頼されている証明書にチェーン化されている証明書を使用して AIR アプリケーションに署名している場合です。それ以外の場合、発行者名は「不明」として表示されます。 重要: 悪意のあるエンティティは、なんらかの方法で署名されているキーストアファイルを取得するか、秘密キーを見つけ出し、署名者の ID で AIR ファイルを偽造する可能性があります。
コード署名証明書に関する情報コード署名証明書の使用に関連するセキュリティの保証、制限、および法的義務の概要については、証明機関運用規定(CPS)および発行側の証明機関が発行する利用規約に記載されています。AIR コード署名証明書を現在発行している証明機関の規約について詳しくは、次のサイトを参照してください。 ChosenSecurity(http://www.chosensecurity.com/products/tc_publisher_id_adobe_air.htm) ChosenSecurity CPS (http://www.chosensecurity.com/resource_center/repository.htm) GlobalSign(http://www.globalsign.com/developer/code-signing-certificate/index.htm) GlobalSign CPS(http://www.globalsign.com/repository/index.htm) Thawte CPS(http://www.thawte.com/cps/index.html) Thawte Code Signing Developer's Agreement(英語)(http://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/develcertsign.pdf) 日本ベリサイン CPS(VeriSign Japan CPS)(http://www.verisign.co.jp/repository/CPS/) クライアント ID 利用規約(Digital ID 利用規約)(https://www.verisign.co.jp/repository/SUBAGR.html) AIR コード署名についてAIR ファイルに署名が行われると、電子署名がインストールファイルに含まれます。署名には、署名後に AIR ファイルが変更されていないことを検証するために使用されるパッケージのダイジェストと、発行者 ID を検証するために使用する署名証明書に関する情報が含まれます。 AIR では、証明書が信頼できるかどうかを確認するために、オペレーティングシステムの証明書ストアを通じてサポートされる公開キーインフラストラクチャ(PKI)を使用します。AIR アプリケーションがインストールされているコンピュータでは、発行側の情報を検証するために、AIR アプリケーションの署名に使用されている証明書そのものを信頼するか、信頼できる証明機関の証明書にリンクしている証明書のチェーンを信頼する必要があります。 AIR ファイルが、信頼できるルート証明書(およびこれには通常すべての自己署名入り証明書が含まれる)のいずれにもチェーン化されていない証明書で署名されている場合、発行者側の情報は検証できません。AIR は、AIR パッケージが署名後に変更されていないか確認できますが、ファイルの実際の作成者および署名者を知ることはできません。 注意: ユーザは自己署名入り証明書を信頼することができ、その証明書で署名された AIR アプリケーションには、発行者名として証明書の共通名フィールドの値が表示されます。AIR では、ユーザが信頼済みの証明書を指定することはできません。証明書(秘密キーを含まない)はユーザに個別に提供する必要があります。ユーザはオペレーティングシステムが提供するメカニズムのいずれかを使用するか、適切なツールを使用してシステムの証明書ストア内の適切な場所に証明書を読み込む必要があります。
AIR 発行者 ID についてAIR ファイルのインストール時に、AIR アプリケーションインストーラによって発行者 ID が生成されます。これは、AIR ファイルの作成に使用される証明書に固有の ID です。複数の AIR アプリケーションに対して同じ証明書を再利用すると、それらのアプリケーションの発行者 ID は同じになります。AIR アプリケーションは、発行者 ID とアプリケーション ID との組み合わせによって一意に識別されます。 アプリケーションが LocalConnection クラスを使用して別の AIR アプリケーションと通信するには、その AIR アプリケーションの発行者 ID を認識している必要があります(アプリケーション間通信 を参照してください)。 NativeApplication.nativeApplication.publisherID プロパティを読み取って、インストールされているアプリケーションの発行者 ID を識別できます。 発行者 ID を計算するには、Name、CommonName、Surname、GivenName、Initials、GenerationQualifier、DNQualifier、CountryName、localityName、StateOrProvinceName、OrganizationName、OrganizationalUnitName、Title、Email、SerialNumber、DomainComponent、Pseudonym、BusinessCategory、StreetAddress、PostalCode、PostalAddress、DateOfBirth、PlaceOfBirth、Gender、CountryOfCitizenship、CountryOfResidence、および NameAtBirth のフィールドを使用します。証明機関が発行した証明書を更新する場合、または自己署名入り証明書を再生成する場合に、発行者 ID を同じにするにはこれらのフィールドも同じにする必要があります。また、CA が発行した証明書のルート証明書および自己署名入り証明書の公開キーも同じにする必要があります。 証明書の形式についてAIR 署名ツールは、Java Cryptography Architecture(JCA)を通じてアクセスできるすべてのキーストアを受け入れます。これには、PKCS12 形式のファイル(通常 .pfx または .p12 ファイル拡張子が付いている)などのファイルベースのキーストア、Java .keystore ファイル、PKCS11 ハードウェアキーストア、およびシステムキーストアが含まれます。ADT がアクセスできるキーストア形式は、ADT の実行に使用される Java ランタイムのバージョンと設定によって異なります。PKCS11 ハードウェアトークンなど一部の種類のキーストアにアクセスするには、追加のソフトウェアドライバや JCA プラグインのインストールと設定が必要になる場合があります。 AIR ファイルに署名する際は、既にあるコード署名証明書をほとんどの場合使用できます。また、AIR アプリケーションの署名用であることを明示して発行された新しい証明書を取得することもできます。例えば、VeriSign、Thawte、GlobalSign または ChosenSecurity の次の種類の証明書はどれでも使用できます。
注意: 証明書は、コード署名用に作成されたものである必要があります。SSL やその他の種類の証明書を使用して AIR ファイルに署名することはできません。
タイムスタンプAIR ファイルに署名するときは、パッケージングツールで、タイムスタンプ局のサーバを照会して、単独で検証可能な署名の日時を取得します。取得したタイムスタンプは AIR ファイルに埋め込まれます。署名した証明書が署名時に有効である限り、AIR ファイルは証明書の期限が切れた後もインストールできます。一方、タイムスタンプを取得していない場合は、証明書の期限が切れたり証明書が取り消されたりすると、AIR ファイルはインストールできなくなります。 デフォルトでは、AIR パッケージングツールでタイムスタンプを取得します。ただし、タイムスタンプサービスが使用できないときにアプリケーションをパッケージ化できるようにするには、タイムスタンプ機能をオフにします。公開配布されているすべての AIR ファイルにはタイムスタンプを含めることをお勧めします。 AIR パッケージングツールで使用されるデフォルトのタイムスタンプ局は、Geotrust です。 証明書の取得証明書を取得するには、通常は証明機関の Web サイトにアクセスし、その会社の取得プロセスに従います。AIR ツールに必要なキーストアファイルを生成するツールは、購入した証明書の種類、受信側コンピュータでの証明書の格納方法、および場合によっては証明書の取得に使用するブラウザによって異なります。例えば、Adobe Developer Certificate を Thawte から取得して書き出すには、Mozilla Firefox を使用する必要があります。これにより、Firefox ユーザインターフェイスから証明書を .p12 または .pfx ファイルとして直接書き出せます。 AIR インストールファイルのパッケージ化に使用する AIR 開発ツール(ADT)を使用して自己署名入り証明書を生成できます。一部のサードパーティツールも使用できます。 自己署名入り証明書の生成手順、および AIR ファイルの署名手順については、ADT(AIR 開発ツール)を使用した AIR インストールファイルのパッケージ化を参照してください。また、Flex Builder、Dreamweaver、および AIR update for Flash を使用して AIR ファイルを書き出し、署名することもできます。 次の例で、Thawte 証明機関から AIR Developer Certificate を取得し、それを ADT で使用できるように準備する方法を説明します。 例:Thawte からの AIR Developer Certificate の取得注意: コード署名証明書を取得して準備する方法は他にも多数あり、この例は単にその 1 つに過ぎません。ポリシーや手続きは証明機関ごとに異なります。
AIR Developer Certificate を購入するには、Thawte Web サイトへのアクセスに Mozilla Firefox ブラウザを使用する必要があります。証明書の秘密キーは、ブラウザのキーストアに格納されます。Firefox キーストアがマスタパスワードで保護されていること、およびコンピュータそのものが物理的に安全であることを確認してください(取得プロセスが完了すると、ブラウザのキーストアから証明書と秘密キーを書き出して削除できます)。 証明書登録プロセス中に、秘密キーと公開キーのぺアが生成されます。秘密キーは自動的に Firefox キーストア内に格納されます。Thawte の Web サイトに証明書を要求する場合も証明書を取得する場合にも同じコンピュータとブラウザを使用する必要があります。
重要: 秘密キーと証明書は Firefox キーストアにも格納されます。これにより証明書ファイルの追加のコピーを書き出せますが、証明書と秘密キーのセキュリティを維持するために保護する必要がある別のアクセスポイントも提供されます。
証明書の変更状況によって、AIR アプリケーションを署名するために使用する証明書の変更が必要になる場合があります。これには、次のような場合があります。
署名証明書は AIR アプリケーションの ID を決定する要素の 1 つであるため、単純に、別の証明書でアプリケーションに署名して更新することはできません。AIR で AIR ファイルがアップデートであることを認識できるようにするには、元の AIR ファイルと更新された AIR ファイルを同じ証明書を使用して署名する必要があります。そうしないと、新しい AIR ファイルは、既存のインストールを更新するのではなく、新しいアプリケーションとしてインストールされます。 AIR 1.1 では、移行署名を使用して、アプリケーションの署名証明書を変更できます。移行署名は、アップデートの AIR ファイルに適用される 2 つめの署名です。移行署名では元の証明書が使用されます。これによって、署名者がアプリケーションの元の発行者であることが証明されます。 重要: 元の証明書の有効期限が切れたり、失効したりする前に、証明書を変更する必要があります。証明書の有効期限が切れる前に、移行署名を使用して署名されたアップデートを作成していない場合、ユーザはアップデートをインストールする前に、アプリケーションの既存のバージョンをアンインストールする必要があります。商用証明書は、通常、更新して有効期限切れを回避できます。自己署名入り証明書は更新できません。
証明書を変更するには:
移行署名を適用する手順については、アプリケーション証明書を変更するための AIR ファイルへの署名を参照してください。 更新された AIR ファイルがインストールされると、アプリケーションの ID が変更されます。この ID の変更には、次のような影響があります。
元のバージョンのアプリケーションと新しいバージョンのアプリケーションとの間でデータを移行する処理は、アプリケーションで実行する必要があります。暗号化されたローカルストア(ELS)内のデータを移行するには、証明書で変更を行う前に、データを書き出す必要があります。新しいバージョンのアプリケーションで、以前のバージョンの ELS を読めなくなる場合があります(データを移行するよりも、再作成した方が簡単である場合もあります)。 できる限り多くの以降のアップデートに移行署名を適用し続ける必要があります。そうしないと、元のバージョンからアップグレードしていないユーザは、最新のアップデートをインストールする前に、中間移行バージョンをインストールするか、現在のバージョンを再インストールする必要があります。最終的には、元の証明書の有効期限が切れ、移行署名を適用することができなくなります(ただし、タイムスタンプ機能を無効にしている場合を除き、以前に移行署名を使用して署名された AIR ファイルは有効なままです。移行署名にはタイムスタンプが付加され、証明書の有効期限が切れた後でも AIR で署名を受け入れることができます)。 移行署名を含む AIR ファイルは、別の意味では通常の AIR ファイルです。元のバージョンがないシステムにアプリケーションをインストールした場合、AIR では通常の方法で新しいバージョンをインストールします。
注意: 商用証明機関から発行された証明書を更新する場合、通常、証明書を移行する必要はありません。識別名が変更されていない限り、更新された証明書の発行者 ID は元の証明書の発行者 ID と同じになります。識別名を確認するために使用される証明書の属性の一覧については、AIR 発行者 ID についてを参照してください。
用語集ここでは、公開配布するアプリケーションへの署名方法を決定する際に理解しておく必要があるいくつかの用語を示します。
|