2016-03-25 14 views
5

電子を使ってクロスプラットフォーム用のスタンドアロンアプリを開発しています。電子キーで秘密鍵や安全な情報/データを保存する方法

プライベートキーのようなプライベートデータを保存したい場合は、私的なデータをアプリ内で の実行用に保存します。データの暗号化/復号化のような実行。

それとも

私は、ユーザーのパスワードのようないくつかの保護された情報を保存したい、アプリ

上の専有 データは安全な情報とにできないアプリの利用者のこれらの種類を格納するための任意の可能な方法はあります何か方法はありますか?

答えて

5

Keytarと呼ばれるAtomエディタ用のNPMモジュールが作成されています(Electron社製)。セキュアなストレージにネイティブOS APIを使用します。例えば。 OS Xのキーチェーン

https://github.com/atom/node-keytar

2

私はあなたが使用している特定の技術を知らないので、私の答えは一般的に重要なストレージ問題を指摘します。

まず、二つの大きな発言:

  1. でも、いくつかの重い特殊なハードウェア(銀行やその他の重要なシステムは、このために、ハードウェア・セキュリティ・モジュール-HSMs-を使用)で、あなたの鍵が盗まれた取得の危険性が常にあります。あなたが選んだことは、あなたの鍵の重要性とそれを保護するためにどれくらいあなたがしたいのかによって決まります。私はハードウェアに関連するソリューションについて言及しないようにしようとしています。なぜなら、これらのソリューションは大抵の場合、大部分の人にとって過度のものです
  2. あなたが従うことができます、しかし、良い習慣があります。https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet

さて、いくつかのアドバイスが。あなたが何をするにしても、あなたのキーをプレーンテキストで保存しないでください。公開鍵暗号を使用している場合は、PKCS12ファイル(通常は拡張子.p12または.pfx)がデータを保存する標準的な方法です。通常はパスワードで保護されています。

ここで問題が発生します。鍵を持っている場合は、それを使用する必要があります。キーを使用すると、少なくともRAMでは "平文"になります。したがって、鍵をできるだけ隔離した状態に保つためのアクセスを可能にする方法が必要です。アクションがユーザーによってトリガーされた場合、キーを使用する前にパスワードを尋ねることができるので、状況は比較的良好です。

ただし、アクションが自動化されている場合は、パスワードを保存する方法を見つける必要があります。

  1. は、コマンドラインでパスワードを尋ね:いくつかのPGPの実装のようにもセキュリティソフトウェアは素敵ではありません、このためのアプローチを持っているコマンドは私のパスワードを-password。これは、バットに入れて、働く。パスワードは保存されており、オペレーティングシステムに応じて、historyというコマンドでも使用できます。
  2. ファイルに保存します。少なくとも、コピーは残しませんが、パスワードは平文のままです。
  3. システムデータを暗号化キーとして使用して暗号化します。パスワードは比較的保護されていますが、移植性が失われ、コンピュータにアクセスする攻撃者はコントロールによって停止されません。
  4. サービスがオンになったらパスワードを尋ねます。少し妥当ですが、常に可能なわけではありません(サービスは重要ですが、1人だけがパスワードを持っていれば、可用性が損なわれる可能性があります)。
  5. スレッショルドの解読ではすばらしいことが起こる可能性がありますが、それはあまりにも多すぎます。

おそらくできることは、フレームワークが許可するものとシステムの使用方法によって異なりますが、さまざまなオプションの参考になると思います。いずれにしても、は、自分でに暗号化機能を実装していません。不正な暗号は、暗号を全く持たないよりも悪いです。

関連する問題