web-dev-qa-db-ja.com

キーストアをバージョン管理に保存すべきでない理由はありますか?

キーストア(.jks)を使用して、Androidアプリケーションに署名するために使用する証明書を保存しています。Androidドキュメントとコミュニティは私に感銘を与えました決してこのファイルを失うことの重要性、しかし私はそれをどこに保存すべきかについてのガイダンスを見つけられませんでした。

それをGitに保存するのはひどい考えですか(つまり、セキュリティに影響がありますか)?

キーストア自体と内部の秘密鍵の両方に強力なパスワードが設定されていると想定します。

34
ZoFreX

Gitリポジトリへの読み取りアクセス権を持つ人は誰でも秘密鍵を取得します。これはセキュリティの問題と見なされるため、お勧めしません。 GITリポジトリが完全にプライベートである場合、つまり、誰もアクセスできない場合(つまり、GitHubのプライベートリポジトリではなく、ローカルディスクまたは100%で制御するインフラストラクチャのgitリポジトリ)、秘密鍵を次のように配置します。ローカルディスクに保存するので安全です。

キーストア自体と内部の秘密鍵の両方に強力なパスワードがあると想定します

(「公開」)秘密鍵の場合、パスワードが最後の防御方法であることに注意してください。それが何らかの形で危険にさらされる(推測、盗難、ひび割れ)場合、それは終わりです。

さらに、すべての開発者(存在する場合)がリリースキーにアクセスする必要があるわけではないことは間違いありません。あなたがそれを持っている必要があるならば、それをレポから渡してください。しかし、私は最初にセキュリティポリシーを再考します。

18
Marcin Orlowski

アプリを更新するには、次の2つが必要です。

  • アプリケーションを所有するGooglePlayデベロッパーコンソールへのアクセス。
  • 正しいキーストアで署名されたAPK

証明書をリポジトリに入れて開発者と共有することで、1つのセキュリティトークンを放棄することになります。

Google Play Dev Consoleアカウントが安全であれば、問題はありません。しかし、それはあなたのシナリオに依存します。

それをリポジトリに入れるのははるかに簡単です:

  • リポジトリは多くの場所で複製され、通常は適切にバックアップされます。
  • 開発者チームはgradleを使用して、製品リリースに自動的に署名できます。

多くの人はそれを1枚または複数のSDカードに入れてどこかに置くことを好みます。しかし、ほとんどの人は自分のオフィスに「どこか」と呼ばれる場所を持っていません。それでも数年で読むことができますか?

さらに2つの考慮事項:

  1. Androidアプリの製品所有者が会社で変更された場合、古い所有者がまだコピーを持っているかどうかはわかりません。また、誰がそのコピーにアクセスできるかは誰にもわかりません。キーを変更することはできません。したがって、キーが一度ある人から別の人に渡された場合、それは安全でないと見なされなければなりません。

  2. もちろん、完全に非公開にすることもできます。それは誰も知らないあなたのパスワードによって保護されています。しかし、あなたが死んだらどうなりますか?誰かがあなたのアプリを更新したいかもしれません。それは不可能。秘密にされている秘密鍵は、あなたが死ぬと失われます。

ですから、リポジトリに入れても大丈夫だと思います。 Googleアカウントを保護するように注意してください。このアカウントでは、パスワードを変更したり、two-faktorをアクティブにしたりすることができます。

6
Janning