2017-10-15 5 views
0

SQLの暗号化に関する質問があります。アプリケーションのコード(C#)でデータを暗号化し、暗号化されたデータをデータベースに格納するのは、組み込みのSQL暗号化オプション私が好きなSQL-CLR関数を使用してSQL Serverで暗号化されたデータを検証するSafey

こと:

  1. あなたが別のサーバー上のデータベースを復元する場合、またはSQLレプリケーションの使用時にデータを復号化することができますを確認することを心配する必要はありません。私はあなたがそれを行うことができる特別なキーを生成することができますが、あまりにも多くのオーバーヘッドがあることを知っています。

  2. 暗号化方式と暗号化されたデータを完全に分離します。

ユーザのパスワードの検証は、ユーザの入力とハッシュされたパスワードを比較することによってアプリケーションのコードで行われます。私は誰も特定のパスワードを持つユーザーの数を確認するためにクエリを実行する必要はないと考えています。

一方、暗号化されたデータがクレジットカード番号である場合、特定のカードがいつ使用されたかを知るためにクエリを実行することは異常ではない。

この問題を解決するために、SQL-CLR関数を使用して暗号化されたデータを検証することを検討しています。これは、検証のためにのみ使用され、暗号化には使用されません。

私は、このユーザー関数をリレーするストアドプロシージャをいくつか作成して、データをクエリできるようにしたい場合は、これがどれほど安全かどうか疑問です。

ありがとうございます!

+0

「暗号化されたデータの検証」とはどういう意味ですか?それを即座に解読することを意味しますか? – Alex

+0

パフォーマンスの影響を考慮しましたか?例えば。データベースなどに索引を作成したいと思いますか?自分でホイールを再発明するのではなく、既存のアプローチ(オンラインでチュートリアルを探す)を実装することを強くお勧めします。セキュリティがあれば、すべての努力をミュートにする簡単なミスをするのは簡単です。それは鎖の中で最も弱いリンクです。 – Alex

答えて

0

私はPCIの問題を尋ねています。特定のカードがいつ使用されたかを知る必要があるのはなぜですか?分析/報告または捜査/紛争/その他の目的のため。

あなたの販売店のプロセッサー(私はあなたがそのポストに基づいてマーチャントであると仮定しています)は、販売時点で実際のカード番号をトークン化する方法を持っている可能性があります。このトークンを使用すると、分析/レポートを作成できます。

アプリケーション層で暗号化されたデータベースに暗号化されたデータを格納し、データベースで復号化する方法を提供すると、暗号化の利点がすべて失われる可能性があります。

C#アプリでカード番号を暗号化し、既に暗号化された値を使用してそのデータベースをクエリできますか?

「暗号化されたデータの検証」をお手伝いできますか?

関連する問題