×
Namespaces

Variants
Actions
Revision as of 07:41, 30 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

アプリケーション署名

From Nokia Developer 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 07:41.
197 page views in the last 30 days.