7

SQL Server 2005 データベースに接続された ASP .NET 2.0 Web サイトがあります。このサイトは非常にシンプルで、給与などのスタッフに関する情報が保存されています。

給与の値を暗号化して、Web アプリを使用する許可されたスタッフを除いて、誰も (私を含む) 見ることができないようにする最良の方法は何ですか?

SQL プロファイラーを実行して情報を表示できるので、SQL Server で暗号化/復号化したくないので、Web サーバーの BLL で暗号化/復号化が行われると仮定しますか?

また、誰かがブラウザと Web サーバー間の HTTP 応答を傍受するのを阻止するために SSL が必要ですか?

どうもありがとう!

アンソニー

4

5 に答える 5

4

SSL は、盗聴を防ぐための最善の策ですが、それでも可能性があることに注意してください。

もう 1 つの点として、SQL Server 2005 はすぐに使用できるテーブル レベルの暗号化をサポートしています。ここにそれに関する記事があります。従業員にリンクされた SALARY テーブルを作成し、そのテーブルを暗号化しておくことができます。

于 2008-09-29T14:41:08.450 に答える
3

webapp の開発者は引き続き給与の数値にアクセスできますが、これはすべて信頼の問題です。これに対抗するために、暗号化/復号化がクライアント側で行われるモデルに切り替えることができますが、これはより面倒であり、100% 安全ではありません。セキュリティは常に利便性とトレードオフの関係にあります。

HTTP トラフィックの傍受をより困難にするために、TLS/SSL (つまり、HTTPS) を使用する必要があります。

あなたが考えているかもしれない攻撃は、あなた自身の暗号化された給与額をあなたが興味を持っている人のものに置き換えてから、経理部門に電話してあなたの現在の給与額を尋ねることです. 攻撃を無効にする 1 つの方法は、暗号化された給与フィールドの内容に、それが属する人物を参照させることです。

于 2008-09-29T14:50:49.113 に答える
2

ここでコードで使用できる暗号化方法は多数あります。キーと「ソルト」を取るものを必ず選択してください (毎回同じキーを使用するのではなく)。給与を暗号化するたびに同じキー (salt なし) を使用すると、同じ給与を持つ 2 人の従業員が同じ暗号化された値をデータベースに表示し、給与情報のセキュリティが損なわれます。

各従業員の一意の ID をソルトとして使用できます。

于 2008-09-29T14:44:01.297 に答える
2

機密性の高い Web トラフィック (ログインは言うまでもありません) の傍受を防ぐには SSL が必要ですが、それではサーバー側の暗号化の問題は解決しません。

開発者がデータにアクセスできないようにすることは、難しいことです。実際に機能させるには、すべての暗号化/復号化を、アクセスできないマシンでのみ行う必要があります。理論的には、クライアント マシン上の給与データを解読する何らかのブラウザ拡張機能を作成する必要があります。あなたの雇用主は、クライアント側のコードにバックドアを入れないようにあなたを十分に信頼する必要があります (または、少なくともコード監査の可能性をあなたの頭上に保持します)。

ほとんどの場合、開発者がデータを開示しないことを信頼する方が簡単です。知る必要がある場合にのみ保持することをお勧めしますが、最終的には知っておく必要がある人もいます。(たとえば、会計担当者は給与データを常に見ています。)

于 2008-09-29T14:45:46.487 に答える
2

トランスポート セキュリティに SSL を使用することは間違いありません。Web サーバーとデータベース サーバー間の転送用に IPSec をセットアップすることもできます。

データベースでの保護に関しては、SQL Server 2005 にはいくつかの暗号化機能があります。

1) EncryptByAsymKey - http://msdn.microsoft.com/en-us/library/ms186950.aspx
2) EncryptByKey - http://msdn.microsoft.com/en-us/library/ms174361.aspx
3) EncryptByPassPhrase - http://msdn.microsoft.com/en-us/library/ms190357.aspx
4) EncryptByCert - http://msdn.microsoft.com/en-us/library/ms188061.aspx

明らかに、これらすべてに関連する復号化機能があります。

キーまたは選択したものを Web サーバー (machine.config または web.config またはどこかに) に保存し、暗号化のためにストアド プロシージャに (または SQL と共に) 渡すことができます。

于 2008-09-29T14:47:06.483 に答える