2008-09-02 11 views
3

Googleドキュメントなどの一部のWebアプリケーションは、ユーザーによって生成されたデータを格納します。その所有者だけが読むことができるデータ。またはそうでないかもしれません?ウェブアプリケーションのユーザーからのデータを暗号化する

私の知る限り、このデータはそのままリモートデータベースに保存されます。リモートシステム(たとえばsysadminなど)に十分な特権を持つ人が私のデータを潜んでいると、私のプライバシーが危険にさらされる可能性があります。

このデータをリモートデータベースに暗号化して保存すると、データの所有者だけが暗号化を解除できる最適なソリューションは何ですか?このプロセスをユーザーに透過的にする方法(自分のパスワードを知らないので、自分のデータを暗号化する鍵としてユーザのパスワードを使用することはできません)。

答えて

6

サーバーで暗号化/復号化を実行すると、ログファイルなどのどこかにクリアテキストがダンプされないようにする方法がありません。

JavaScript/Java/ActiveXなどを使用してブラウザ内で暗号化/復号化を行う必要があります。ユーザーとして、暗号化されていない情報をサーバーに返送しないように、Webサービスのクライアント側を信頼する必要があります。

カール

-1

いいえ、あなたはパスワードを使用することはできませんが、パスワードハッシュを使用することができます。ただし、Googleドキュメントはすべて共有に関するものなので、そのような方法では、各ユーザーのドキュメントのコピーを保存する必要があります。

4

私はCarlの頭を釘付けにしていると思いますが、私はどのWebサイトでも機密情報/個人情報/特権情報を提供していると言いたいと思います。この信頼を確立するためのサービスプロバイダの責任。これは創業以来何度も質問されてきた質問の1つであり、私たちの指紋でコード化された独自のSSL証明書を取得するまではさらに成長し続けます。 '指はまだユーザーに取り付けられていることをどのように知るのですか?'

1

まあ、私はAmazons AWSに類似したプロセスを考えています。リモートに保存されていないプライベートパスワードで認証します。ハッシュを使用してユーザーを検証します。次に、メインと長いテスト済みのアルゴリズムのいずれかを使用して証明書を生成し、安全なページから提供します。その後、公開鍵/秘密鍵アルゴリズムを使用して、ユーザーの物を暗号化することができます。

しかし、主な問題は変わりません。十分な特権を持つ人がデータにアクセスできる(たとえば、あなたのサーバーをハッキングする)場合、あなたは失われてしまいます。十分な時間と力があれば、すべてが壊れる可能性があります。それは時間の問題です。

しかしGPG/PGPなどのアルゴリズムやアプリケーションは非常によく知られており、Webアプリケーションを保護する方法で実装でき、平均的なユーザーが処理できるスコアで使いやすさを保つことができると思います。

編集は私が@CarlUnkwntechに追いつくと、そのステートメントを追加したい:あなたはサイト自体を信用していない場合は、離れたプライベートなデータを与えることはありません。誰かがサーバーをハックする前でさえ... ;-)

1

Auron質問:クライアントのデータを暗号化/復号化するための鍵をどのように生成しますか?このキーはどこに保管しますか?

このキーは、通常、ユーザーが選択したパスワードから派生しています。あなたはそれを保存しない、あなたはそれを覚えてユーザーを信頼する。格納できるものは、そのユーザーに関連付けられた塩分の値で、例えば虹のテーブル攻撃に対するセキュリティを強化するものです。

暗号を正しく取得するのは難しいですが、AxCryptXecretsのオフラインクライアントのソースコードを見ることをお勧めします。

カール

関連する問題