25 February 2008
ページ ツール |
Flash、FlexまたはHMTL+Ajaxのいずれかの開発手法を用いたAdobe AIRアプリケーションの開発に精通していること。
初級
本記事を最大限に活用するには、Firefox* 2.0(またはそれ以降)Webブラウザと以下のいずれかが必要です。
Adobe AIRアプリケーションを配布する準備が整ったら、ユーザシステム上でAdobe AIRインストーラがインストール処理を行えるようにするために、アプリケーションにデジタル署名を付与する必要があります。Adobe AIRランタイムはネイティブアプリケーション同様のユーザ権限で実行されます。つまり、ローカルファイルシステムへのアクセス、ネットワーク操作、ビットマップ処理、ローカルデータへのアクセスなどがすべて可能になります。アプリケーションへのデジタル署名付与が条件化されることで、アドビはアプリケーションの提供元の有効性確認を通じてエンドユーザに信頼を提供することができ、これと同時にアプリケーションを開発したデベロッパーに対しては、リッチインターネットアプリケーションのデスクトップへの展開を可能にする、ユーザシステムへの周知的なアクセスが許可されます。
アドビでは、AIRアプリケーションの開発方法として、Flex Builder 3、Flash CS3 Professional、Dreamweaver CS3といった複数の選択肢を提供しています。本記事では、認定認証局(CA)から発行されたデジタル署名証明書を利用して、配布対象のAdobe AIRアプリケーションに署名を付与する方法を紹介します。Adobe AIRを始めたばかりで、できるだけ出費を抑えたいような場合は、未認証の証明書を利用してアプリケーションに署名することも可能です。この場合、発行者が不明な状態でAIRランタイムにアプリケーションをインストールさせ、動作検証などの作業に取り組むことができます。
デベロッパーが開発したアプリケーションをインストールするにあたり、事実上、エンドユーザは、デベロッパーがユーザのファイルの中身をチェックして財務データなどを得体の知れないサーバにアップロードしたり、ローカル上の画像を削除、または勝手に電子メールを配信するなどの不正を働かないことを信用することになります。エンドユーザにとって重要なのは、インストールしようとしているソフトウェアが信頼のおけるベンダ(発行者)から提供されていることと、そのソフトウェアがベンダの手元を離れてから改ざんされていないことを確信・信頼できることです。読者はデベロッパーとして、優れたアプリケーションを開発し、これを世界に向けてリリースします。しかし、いったんアプリケーションをリリースすると、第三者がそのアプリケーションを改ざんしたり、悪質な仕掛けを組み込んでから再配布するといったことに対しては、自らコントロールできないのが実情です。エンドユーザ側では、Webからインストールするものは、どこかで改ざんされていたり、信頼のおけない悪質なソフトウェアベンダによって配布されている恐れがあることに注意する必要があります。
エンドユーザから信頼を得るための唯一の方法は、アプリケーションに、ThawteやVeriSignといった認証局(CA)と呼ばれる信頼されたサードパーティベンダから発行されたセキュリティ証明書を利用して、デジタル署名を付与することをデベロッパーに義務づけることです。AIRランタイムがアプリケーションをエンドユーザのマシンにインストールするには、AIRアプリケーションにデジタル署名が付与されていることが絶対条件となります。デジタル署名は商用ソフトウェア開発業界に広く普及しており、PDAで実行されるモバイルアプリケーションから主要オペレーティングシステム用のデバイスドライバや大手発行者のデスクトップアプリケーション、そしてAIRアプリケーションに至るまでで用いられています。皆さんも、誰が実際に開発し、どこからコードが供給され、そしてリリース後に改ざんされているかどうかさえ分からないにもかかわらず、ランダムなソフトウェアを意図的にインストールしてシステムの安定性が失われるかも知れないというリスクに直面したことが何度もあるはずです。当該ソフトウェアの出所とその正当性が検証できれば、安心度が上がることは間違いありません。
また、デジタル署名を利用することで、エンドユーザは当該ソフトウェアの組織関係を検証することができます。例えば、筆者はアドビソフトウェアの証明書を利用してアプリケーションに署名することはできません。これによって、偽のアプリケーションが開発される恐れが排除されます。このような規制がなかった場合、スパイウェアの作者はアドビ製と偽ったPhotoshop.exeアプリケーションを手軽に作成し、エンドユーザの税務処理ソフトウェアから不正に抜き出した銀行口座情報をもとに、無断で小切手を作成するかも知れません。
コード署名の義務づけは、エンドユーザが、インストール対象製品の発行者の身元と、コードが発行者の署名後に改ざんされていないことを信用できるようにすることで、上記のような悪用シナリオを防ぎます。
アプリケーションをリリースする前夜まで待って、コード署名手続きを始めることは避けるようにしましょう。認証局から証明書を取得するには事務手続きが発生するため、幾分の時間がかかります。証明書を取得した後も、習得および試行錯誤にもある程度の余裕が必要です。また、アプリケーションの個々のバージョンを、別々の証明書で署名してリリースしないように注意する必要があります。
動作検証用の自己署名証明書、企業の公式な証明書のどちらを使用するとしても、いったん証明書を用いてAIRアプリケーションに署名を付与すると、当該バージョンのAIRアプリケーションは同じ証明書を用いてパブリッシュされたバージョンでのみアップデートすることができます。つまり、デベロッパーの動作検証用証明書で署名したアプリケーションを作成・リリースし、後日、本稼働用の証明書で署名したアプリケーションを再リリースするといったことはできません。この場合は別に新規アプリケーションのリリースが必要となります。従来のアプリケーションに対する自動アップデート処理はすべて失敗し、別途のアプリケーションとしてしかインストールすることができません。
では、証明書の取得方法へと解説を進めることにします。
Adobe AIRアプリケーションにデジタル署名を付与する際、デベロッパーは、クラス3の高信頼性証明書であればどのCAから発行されたものでも使用できます。ただし、エンドユーザのマシンの大半(Mac OS XまたはWindows)にはVeriSignおよびThawteのみがプリインストールされ、オペレーティングシステムによって信頼されています。アプリケーションをインストールする際、Adobe AIRランタイムは信頼された証明書が含まれた、オペレーティングシステムのキーストアを使用します。オペレーティングシステムが信頼するものであれば、AIRも同様に信頼します。ユーザは、自らのシステム上にThawteまたはVeriSignのいずれかのルート証明書を所有することが大半であるため、Adobe AIRがアプリケーションをインストールする際には、発行者の有効性を確認することができます。本記事では、デベロッパーによる手続きが簡単な、Thawteからの証明書取得を前提に解説を進めていきます。ThawteまたはOverusing以外の認証局を利用した場合、(ソフトウェアのデベロッパーではなく)エンドユーザまたは(エンタープライズネットワークではコンピュータ管理担当の)システム管理者が、当該認証局のルート証明書を手動でインストールしなければならなくなります。
メモ: デベロッパーは、Adobe AIRアプリケーションに自己署名証明書でデジタル署名を付与し、アプリケーションの動作を検証することができます。この場合、AIRランタイムがアプリケーションをインストールしようとする際には、発行元が不明であることの警告がユーザに表示されます(図1参照)。(もちろん、ユーザがデベロッパーの自己署名証明書を自らのマシンにインストールしている場合はこの限りではありません。)
公式のAdobe AIR Developer Certificateは、Thawte社のWebサイトより販売されています。以下に示す解説では、Firefoxブラウザを使用してThawteから証明書を購入します。以下の手続きではFirefoxブラウザが必要になりますが、これは、このブラウザを使用するのが最も簡単な方法であるからです。Thawteでは、1年あたりUS$300からの価格で証明書を提供しています。
メモ: セキュリティプロトコル、Javaツールおよびコマンドラインに精通している場合は、使用中のJava証明書をAdobe AIRアプリケーションの署名に適した形式にすることも可能です。この場合、証明書とプライベートキーを適切な形式に変換するためにJavaの署名ツールが必要となります。最終的にはP12ファイルが必要です。Javaコマンドラインツールを使用する方法は、本ドキュメントの解説対象ではありません。証明書を入手する上で、ThawteとFirefoxを利用する方法が最も簡単です。この手続きは証明書を使用し続ける上で、一度きりで済みます。
コード署名を行う上で最も簡単なのが、Thawteから公式のAdobe AIR Developer Certificateを取得する方法です。ここでは、Firefox Webブラウザを使用してThawteから証明書を入手する方法を解説します。Firefoxを使用することが非常に重要です。これは、購入する証明書がFirefoxの証明書マネージャにインストールされ、そこから、Adobe AIRアプリケーションの署名時に用いられる、アドビツールで必要な特定の形式に書き出されるからです。
次のステップは、Thawte Webサイト上、3段階の手続きの最初にあたる、「Configure your Enrollment」のタイトルが付いたステップです。
メモ: 署名時に使用するツールによっては、ファイルの拡張子を「.pfx」に変更しなければならないことがあります。
証明書が入手できたら、次は実際のAdobe AIRアプリケーションに署名を付与する作業です。Thawteから取得した証明書の使い方については、ご利用のツールにあった解説を次の中から選んで参照してください。
Flex BuilderでAIRアプリケーションに署名を付与するのは簡単です。CAから証明書を入手したら、これを既存のディレクトリで保管します。この解説では、例として証明書を c:\mydev\certificates\に保存することにします。Firefoxから証明書を書き出す際に使用したパスワードを忘れないように注意してください。このパスワードは後に、アプリケーションに署名を付与する際に必要となります。
Flex Builder 3からAdobe AIRアプリケーションを書き出すには、手続きの一環としてコード署名の手順が発生します。署名を付与せずにアプリケーションを書き出すことはできません。書き出しウィザードには、動作検証用の自己署名証明書を作成するオプションと、前述の手順でThawte(またはその他の認定認証局)から取得した証明書を使用するオプションが用意されています。
Flex Builder 3でAIRアプリケーションに署名を付与するための手順
次に、ユーザが読者のWebサイトからAIRファイルをダウンロードしてインストールするのと同じように、完成したアプリケーションを読者のマシン上にインストールしてみましょう。他のツールを利用する際の署名プロセスに興味がない場合は、AIRインストレーションの動作検証の節にお進みください。
デベロッパーによっては、リッチ開発ツールを使用するのではなく、Flex 3 SDKと好みのテキストエディタ(Emacs、VI、TextMateなど)、そしてFlex SDKコマンドラインコンパイラ(mxmlc.exe)を利用してAIRアプリケーション開発に取り組んでいる方もおられます。また、コード、コンパイル、デプロイなどを管理するビルドサーバが導入されているため、ネットワーク共有にアップロードする前に、AIRアプリケーションが自動的に署名されることが必要なケースもあります。Flex SDKを使用したり、ビルドサーバによるビルド管理が行われている場合は、開発したAIRアプリケーションのパッケージ化および署名にADTアプリケーションを使用する必要があります。読者がコマンドラインに精通しているのであれば、既に、Adobe LiveDocsのFlex SDKを使用した初めてのAIRアプリケーション開発の節に目を通されているかと思います。ここには、SDKの原型で署名する必要のある、AIRアプリケーションを初めて開発する上で有用な情報が記載されています。
Flex SDKで記述したAIRアプリケーションに署名を付与するには、前述の方法でCAから証明書を入手する必要があります。ただし動作検証用には、Flex 3 SDK/binディレクトリに配置されたADTアプリケーションを利用して、コマンドラインから自己署名証明書を作成することができます。この際、Flex SDK/binディレクトリがシステムパスに存在することを確認するようにしてください。これにより、開発したアプリケーションとそのソースコードの関係のように、たとえ他の位置から実行する場合でも、このアプリケーションが見つかるようになります。
コマンドラインから自己署名証明書を作成する手順は以下の通りです。
コマンドウィンドウ(Windows)もしくはシェルアプリケーション(OS X)を起動し、以下を入力します。
adt -certificate -cn AnythingHere 1024-RSA test_cert.pfx password
AnythingHereの部分をご自分の一般名、証明書ファイルのtest_cert.pfxをご自分のもの(拡張子がPFXのファイル名であることに注意してください)、passwordを任意のパスワードにそれぞれ置き換えます。この際、パスワードを忘れないように注意してください。
ADTアプリケーションを実行したディレクトリに、「test_cert.pfx」の部分が置き換わった名前の証明書が作成されます。 このファイルへのパスを忘れないように控えておきます。
adt -package -storetype pkcs12 -keystore test_cert.pfx -storepass
password TestApp.air TestApp-app.xml TestApp.swf
test_cert.pfxの部分には、先ほど作成した証明書、またはFirefoxから書き出された証明書を指定します。TestApp-app.xmlは、開発したアプリケーションをAIRランタイムに説明するためのディスクリプタファイル。そして、TestApp.swfが、mxmlcアプリケーションを使用してコマンドラインからSWFをコンパイルした際に生成されたアプリケーションファイルです。TestApp.airの部分が今から作成するAIRパッケージの名前になります。エンドユーザには、この名前で配布されます。storepassに渡す値は、Firefoxから証明書を書き出した際に使用したパスワード、または上記の手順で自己署名証明書を作成する際に使用したパスワードです。
作業はこれだけです。コマンドラインからAIRアプリケーションをパッケージ化し、署名を付与することができました。次は、AIRインストレーションの動作検証の節を参照してください。
Flashデベロッパーは、Flash CS3 Professional用Adobe AIRアップデートを使用することでAIRファイルを生成できます。ここでは、Adobe LiveDocsのFlash CS3を使用した初めてのAIRアプリケーション開発に目が通されていること、Flash CS3 AIRアップデートがインストールされていること、そしてFlashベースのAIRアプリケーションが制作済みであることを前提に解説を進めていきます。Flashアプリケーションをデスクトップ向けにパッケージ化する機能には、あわせてAIRアプリケーションに署名を付与する機能が実装されています。
ここでの作業を開始する前に、前述の解説に従って認証局から証明書を入手する必要があります。(Flex Builder 3での作業同様に、Flash CS3 AIRアップデート上でも自己署名型のデベロッパー動作検証用証明書を作成できます。)
Flash CS3 ProfessionalでAdobe AIRアプリケーションに署名を付与するための手順
このダイアログボックスはデフォルトのウィンドウスタイルやバージョン、ID、AIRパッケージ名などといった、AIRランタイムのパラメータを設定するために用いられるものなので、既に見慣れているはずです。ダイアログボックス中段のインストーラ設定の節にある、アイテム「電子署名」に注目します。ここには、使用中の証明書のステータスを示すラベルがあります。この欄の設定を当該アプリケーションに対して初めて行う場合は、「AIRファイルを署名するための証明書を選択」と表示されます。AIRファイルには必ず署名が必要です。動作検証用の自己署名証明書、本運用向けのThawte認定証明書のどちらであれ、証明書を選択せずにAIRファイルを作成することはできません。
これで作業が完了しました。インストールの動作を検証するために、生成されたAIRファイルをダブルクリックし、Adobe AIRインストーラによる処理動作を確認してみます。ここまでのご褒美としてコーヒー休憩を挟んでから、AIRインストレーションの動作検証の節にお進みください。
WebデベロッパーおよびWebデザイナーは、Dreamweaver CS3用Adobe AIR拡張機能を利用して、手軽にHTMLベースのWebアプリケーションからAIRファイルを生成できます。ここでは、Adobe LiveDocsのDreamweaverを使用した初めてのHTMLベースAIRアプリケーション開発に目が通されていること、Dreamweaver CS3用Adobe AIR拡張機能がインストールされていること、そしてAIRアプリケーションが制作済みであることを前提に解説を進めていきます。
ここでの作業を開始する前に、前述の解説に従って認証局から証明書を入手する必要があります。(FlashおよびFlexでの作業時同様に、Dreamweaver上でも自己署名型のデベロッパー動作検証用証明書を作成できます。)
Dreamweaver CS3上でHTMLベースのAIRアプリケーションに署名を付与するための手順
このダイアログボックスは、ウィンドウのスタイルやサイズ、始動時に用いられるHTMLページなどといった、AIRランタイムのパラメータを設定するために使用されるものなので、既に見慣れているはずです。項目名「*Digital Signature」の欄にある「Set」ボタンをクリックします。
これで作業が完了しました。次に、AIRインストレーションの動作検証を行います。
生成された.airファイル(AirProject.airなど)をダブルクリックすると、AIRのインストール手続きが始まります(Adobe AIRランタイムがインストールされていることを確認するようにしてください)。インストールプロセスの最初の手順では、Adobe AIRインストーラにより、コード発行者についての情報が表示されます。自己署名証明書を利用して署名を付与した場合は、オペレーティングシステムが自己署名型の証明書を信頼しないことから、ユーザに対して発行者が不明であることを告知するダイアログボックスが表示されます(図14参照)。この動作はエンドユーザに不安を与えるものであることから、アプリケーションのインストールが即座に中止される原因となります。ただし、動作検証を目的とするデベロッパーにとっては問題にならないので、そのままインストール処理の動作検証を行います。リスクを冒すのが好きなユーザは、「インストール」ボタンをクリックすることで、読者が開発した未信頼のアプリケーションをそのまま読み込むことができます。
開発したAIRアプリケーションを有効な証明書で署名した場合、ユーザには、身元が確認された有効な発行者の記載があるAdobe AIRインストールダイアログボックスが表示されるので、ユーザに安心を提供できます(図15参照)。
Adobe AIRアプリケーションの署名とインストールについては、これだけ知っていれば十分と言えるでしょう。
アドビでは、AIRアプリケーションの開発および署名付与に関して数多くの選択肢を提供しています。これと同様に、証明書の購入場所およびその方法に関しても、数多くの選択肢が提供されています。証明書の取得にあたっては、本記事の解説に従い、Thawteから入手することを強くお勧めします。本記事で解説した方法なら、Firefoxを利用して非常に簡単に作業を進めることができますが、クラス3の高信頼性証明書であれば、どの証明書でも使用することは可能です。ただし、すべてのPCとMacにデフォルトでインストールされているのは、VeriSignとThawteのルート証明書であることに注意するようにしてください。
ADTコマンドラインツール、Flex Builder 3、AIRサポートが備わったDreamweaver CS3またはFlash CS3のどれを使用するとしても、AIRアプリケーションに署名を付与するプロセスは同じです。まず、認証局より証明書を取得し、これを、使用する開発ツールの要件にそって、適切なファイル形式(P12またはPFX)で使用できるようにします。そして最後に、ご利用中のアドビ開発ツール上でアプリケーションに署名を付与します。
アプリケーションをリリースする直前になってから、証明書や署名手続きの心配を始めることは避けるようにしましょう。認証局からの証明書取得手続きを即座に始めるとともに、実際にAdobe AIRアプリケーションに署名を付与するビルドプロセスの理解を深め、そのすべての設定作業を行うために、半日ほど時間の余裕をもつようにしてください。
Tutorials and samples |
AIR blogs |
More |
AIR Cookbooks |
More |
| 01/20/2012 | Skinnable Transform Tool |
|---|---|
| 01/18/2012 | Recording webcam video & audio in a flv file on local drive |
| 12/12/2011 | Date calculations using 'out-of-the-box' functions |
| 11/29/2011 | Button compatibility with NativeComboBox |