LoginSignup
2
1

More than 3 years have passed since last update.

コードサイニング証明書って何よ

Last updated at Posted at 2019-06-12

コードサイニング証明書とは

コードサイニング証明書は、ソフトウェアにデジタル署名を行う電子署名用の証明書です。
ソフトウェアの配布元を認証し、なりすましや内容の改ざんなどがされていないことを保証し、ユーザの手元に責任をもってソフトウェアを届けることができます。

  • 誰が作ったのか
  • 改ざんなどされていないこと

を保証するためのものなんですね。

署名の手順

  • コードサイニング証明書取得
  • 配布するコードのハッシュ値を生成
  • コードサイニング証明書の秘密鍵を使ってハッシュ値を暗号化 ※デジタル署名という
  • 配布するコード、デジタル署名されたハッシュ値、コードサイニング証明書のパッケージを作成

ダウンロード時の検証手順

  • コードサイニング証明書の有効性を確認
  • コードサイニング証明書に含まれる公開鍵を取得
  • コードと暗号化されたハッシュ値に分離
  • 暗号化されたハッシュ値を公開鍵で複合
  • コードのハッシュ値を作成
  • 複合したハッシュ値とコードから作成したハッシュ値を突合
  • 同一であれば改ざんがなく真正であることが証明される

なるほど、考えた人頭いい。

タイムスタンプの取得が必須

  • タイムスタンプ付きで署名されたコードは、証明書が有効期限切れになっても署名が有効。
  • タイムスタンプなしでも署名はできるが、証明書の有効期限が切れると署名も無効になってしまいアプリケーションの利用ができなくなってしまう。

参考ページ
コードサイニング (Codesigning) 証明書とは:DigiCert(デジサート)
コードサイニング証明書とは?|GMOグローバルサイン【公式】
コードサイニング証明書のタイムスタンプとは
タイムスタンプとは何ですか

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1