Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

アプリケーション署名

From Wiki
Jump to: navigation, search
Article Metadata
Article
Translated:
By masatoshi
Last edited: hamishwillee (30 May 2013)

次も参照: Certificates and their uses

何故、アプリケーション署名が必要か?

アプリケーション署名とは、秘密キーでアプリケーションに署名するということです。各秘密キーに対して、対応する公開キーと証明書(certificate)があります。例えば、TrustCenter Publisher ID 証明書、開発者証明書、自己作成証明書(通称、"自己署名"証明書)などがあります。

署名されたアプリケーション・パッケージを端末にインストールするとき、アプリケーション・インストーラは、署名(signature)を検査し、公開キーの証明書を端末に入っているルート証明書(root certificate)に対して検査します。もし(アプリケーションを署名している)証明書が正当なルート証明書までたどることが出来るのならば、アプリケーション・パッケージは、ルート証明書が信頼されていることの延長として、信頼されている(trusted)と見なされます。もし、自己署名証明書だけを持つキーで、アプリケーションが署名されたならば、証明書は、有効なルート証明書までたどることが出来ません。よって、アプリケーション・パッケージは信頼されません(untrusted)

信頼されたパッケージは、警告メッセージが減り、ソフトウェアはより強力なケイパビリティ(capabilities)にアクセスできます。Java ME にとって、署名されたMIDlet は、制限されたJava API を使用するときに、ユーザへの確認メッセージが減ります。

用語と定義

署名(signing) と証明(certification)や、証明(certification)と証明書(certificate)、証明書発行とアプリケーション証明を混乱しないでください。これらの用語は、時々取り替えて使用されます。しかし、実際にはしないでください。これらは完全に違うものです。

  • 署名(Signing)は、技術的行動で、秘密キー(private key)を使って、ソフトウェア・パッケージに電子署名(digital signatre)を作成します(S60ではSIS ファイル、Java では署名されたJava)。(公開キーと秘密キーからなる)キーのペアは、(認証)機関(authority) 発行の証明書か自己署名証明書を持つことが出来ます。証明書は署名自体には影響しませんが、署名の伝達を信頼します。
  • 証明書(Certificate)は、公開キーと秘密キーの所有者の証明です。ある認証機関(certification authority, 通称「発行者」、Nokia やVerisign 等) が発行した証明書は、公開キーとプライベートキーが、証明書中に記述されている、あるエンティティ(entity,所有者'subject')に所属していることを示します。もし、証明書が自己作成(自己署名)されている場合は、証明書は信頼性を全く伝達しません。この場合、証明書は、単に技術的必要性から作成されただけです。
  • 証明(Certification) は、アプリケーションは、共通のテスト基準に対してテストさて、証明されたことを意味します。アプリケーションはキーで署名されます。そのキーに対応する証明書は、端末にあるルート証明書までたどることが出来ます。よって、ユーザがそのようなアプリケーションを(正当なルート証明書を持つ)端末にインストールするときに、アプリケーションと端末の間に信頼があります。アプリケーション・インストーラは、署名(signature)を検査し、アプリケーションが信頼されたソースからきていることを立証(verify)します。もし、アプリケーションが、証明(certfy)されていない場合(相当するルート証明書が端末にない場合)、アプリケーションをインストールするときに、ユーザは注記を受け取ります。
  • 証明書発行(Certificate issuance)は、証明機関が、ある公開/秘密キーのペアに結びついた証明書を発行する行為を挿します。これは、アプリケーションの証明と同じではありません。証明機関は、アプリケーションを証明するテストハウスと同じではありません。
  • 信頼された(trusted)ソフトウェア・パッケージは、通常、あるキーで署名された物です。そのキーの証明書は、信頼されたルート証明書までたどることが出来ます。自己署名証明書で署名されたパッケージや、全く署名されていない場合は、信頼されていません(untrusted)

S60 特有事項

S60 3rd Edition について話すときに、重要な違いがあります。それは、ソフトウェア・パッケージの署名は必須だが、証明はそうでない、ということです。ソフトウェア・パッケージは技術的に署名が必要ですが、対応する証明書は、信頼された機関から発行される必要はありません。しかしながら、あるケイパビリティ(capabilities)は、パッケージが証明されること(信頼された証明書を持つキーでの署名)を要求するかも知れません。

テスト・プログラムの署名

業界に広く共通して受け入れられているテスト・プログラム(Symbian Signed やJava Verified)でアプリケーションがテストされるとき、テスト・ハウス(繰り返しになりますが、これは証明機関とは違います)は、テストに合格後、証明を管理します(つまり、ソフトウェア・パッケージを、信頼された証明書を持つキーで、署名します)。

This page was last modified on 30 May 2013, at 04:41.
248 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×