2011-12-16 9 views
1

非対称暗号の仕組みを知っています。私は2つのキーがあることを知っています(プライベートとパブリックの1つ)。非対称暗号を使用したファイルの保護

誰かが通信しようとしたときに、公開鍵をメッセージをその公開鍵で暗号化した後、それぞれのメッセージを秘密鍵を持つユーザだけが復号化することができます。

さて、私は毎時間は、データベースを読み込み、データを抽出し、私は必要なファイルに保存し、アプリケーションを必要とする...

を私はNode.jsのを使用していると私はこのような何かをする必要があり別のサーバーに送信する。
私の問題は、ファイルが他の人に見えるようにしたいということです。私はSSHを使って転送するので、問題はありません。 私はそのサーバの管理者ではないので、それを読むことができます。残念ながら、管理者は両方のサーバーで同じです。 私の考えは、公開鍵でファイルを暗号化することです。秘密鍵(私)を持っている人だけがそれを解読できます。

私はそれはのようなものを使用して無意味だと思う:

var key = 'blablabla' 

私は、公開鍵を使用している場合は、問題はない、すべてがそれを読むことができます.....それは確かに公開されています。しかし、この公開鍵では誰もメッセージを解読することができないので、一方向暗号化のようなものが です。

この仕事をするために署名者/検証者が必要かどうか誰かに教えてもらえますか、あるいはopensslで2つの鍵(public/private)を生成してそれらの鍵を暗号/ dechiperに渡す必要がありますか?私は、暗号モジュールを見ているんだけど、何も例がない....一般的に

答えて

3

、あなたの考えは正しいです - あなたは、公開鍵を使って暗号化し、あなたの秘密鍵を使って復号化します。しかしながら、実際には、この手順はより複雑である。ランダムな対称鍵が生成され、その鍵を使用してデータが暗号化されます。次に、公開鍵を用いてランダム鍵を暗号化する。暗号化された鍵は、暗号化されたデータとともに受信者に送信されます。反対側では、暗号化された鍵は秘密鍵を使用して解読され、その後データは解読される。

OpenPGPキーまたはX.509証明書を使用してジョブを実行できます。

OpenPGPの場合、標準では(ユーザレベルで)アトミックプロシージャとして暗号化と復号化が行われます。 X.509証明書の場合、PKCS#7/CMSを使用する必要があります。

OpenSSLライブラリはPKCS#7/CMSの操作を提供しますが、OpenSSLのnodeJS APIを見ると、そのAPIは非常に限定されており、これらの機能は公開されません。おそらく、OpenSSLとインターフェースして欠けている機能を提供する独自のnodeJSモジュールを書くことができます。

また、OpenPGPキーとnode-gpgモジュールを使用することもできます。そのモジュールはgnupgを使って実際のジョブを実行するので、gnupgをインストールする必要があります。

残念ながら、nodeJS wikiで提供されているサードパーティのモジュールリストに他の適切なライブラリはありません。

+0

OpenSLLの代わりにOpenPGPを使用しても違いはありませんか?どちらもPKCS#7/CMSを使用 – Dail

+0

@Dail OpenPGPはPKCS#7/CMSとは関係ありません。 –

+0

ops、実は私は....間違って読んでいます。 – Dail

関連する問題