質問

Google ドキュメントなどの一部の Web アプリケーションは、ユーザーが生成したデータを保存します。所有者だけが読み取ることができるデータ。またはそうでないかもしれません?

私の知る限り、このデータはリモート データベースにそのまま保存されています。したがって、リモート システムで十分な権限を持つ誰か (たとえば、システム管理者) が私のデータを隠すことができた場合、私のプライバシーが侵害される可能性があります。

このデータを暗号化してリモート データベースに保存し、データの所有者だけが復号化できるようにするための最良の解決策は何でしょうか?このプロセスをユーザーに透過的にするにはどうすればよいでしょうか?(ユーザーのパスワードを知る必要がないため、ユーザーのパスワードをデータ暗号化のキーとして使用することはできません)。

役に立ちましたか?

解決

暗号化/復号化がサーバー上で実行される場合、平文がログ ファイルなどのどこかにダンプされていないことを確認する方法はありません。

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

カール

他のヒント

カール、うまく言ったと思いますが、私が言いたかったのは、どの Web サイトでも、機密/個人/特権情報を提供する場合は、ある程度の信頼が必要であり、それは Web サイトの責任です。サービスプロバイダーがこの信頼を確立します。これは、インターネット上でその誕生以来、何度も尋ねられてきた質問の 1 つであり、私たち全員が指紋にエンコードされた独自の SSL 証明書を取得するまで、この質問はさらに増え続けるでしょう。 「指がまだユーザーに接続されていることがどのようにしてわかりますか?」。

そうですね、Amazon の AWS と同様のプロセスを検討します。リモートに保存されていないプライベート パスワードを使用して認証します。ユーザーの検証にはハッシュのみが使用されます。次に、長期にわたってテストされた主要なアルゴリズムの 1 つを使用して証明書を生成し、これを安全なページから提供します。その後、公開鍵/秘密鍵アルゴリズムを使用してユーザーの暗号化を行うことができます。

しかし、主な問題は同じままです。十分な権限を持つユーザーがデータにアクセスできる場合 (次のようにします)。サーバーがハッキングされた場合)、あなたは道に迷ってしまいます。十分な時間と力があれば、すべてを壊すことができます。それは時間の問題です。

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

編集 追いつきたい @カール そして アンクウンテック そして彼らの声明を追加します:サイト自体を信頼できない場合は、個人データを渡さないでください。それは、誰かがサーバーをハッキングする前のことです...;-)

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

通常、キーはユーザーが選択したパスワードから派生します。それを保存するのではなく、ユーザーがそれを覚えていることを信頼します。たとえば、レインボー テーブル攻撃に対するセキュリティを強化するために、そのユーザーに関連付けられたソルト値を保存できる可能性があります。

暗号を正しく理解するのは難しいです ;-) のソースコードを見ることをお勧めします。 アクスクリプト そしてのために ゼクレッツ' オフラインクライアント。

カール

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top