Ich stimme Mayo, aber Verschlüsselung in der DB könnte die Wartung des gesamten Systems vereinfachen.
Bei der Verschlüsselung auf der Anwendungsebene müssen Sie die Schlüssel, die Authentifizierungs- und Autorisierungsphase für die Schlüssel und die Visualisierung der Daten verwalten (entsprechend dem, was Mayo geschrieben hat).
Wenn Sie Application Encryption wählen, müssen Sie sich nicht nur in der Entwicklungsphase, sondern auch in der Wartungsphase Gedanken über die Korrektheit des Algorithmus machen. Sie müssen Unit-Test für keine Regression implementieren. Sie müssen die Änderung des Verschlüsselungsalgorithmus verwalten, weil Sie vielleicht einen anderen und besseren Algorithmus wünschen.
Und Sie müssen sicher sein, dass verschlüsselte Daten immer entschlüsselt werden. Das liegt nicht auf der Hand, denn Software hat Bugs und so weiter. Verlorene Daten sind schlimmer als klare Daten ;-)
Sicher können Sie eine bekannte Verschlüsselungsbibliothek verwenden, aber all die verbleibenden Dinge sind eine riesige Arbeit für Sie zu tun.
Verschlüsselung in der DB schützt nur in der DB, aber Sie können erwägen, irgendeine Art von SSL-Kommunikation mit der DB zu verwenden. Ich denke (aber ich bin mir nicht sicher) TDE implementiert diese Art von sicherer Kommunikation.
Anwendung wird vom Benutzer verwendet, eine nicht vertrauenswürdige Einheit. Sie müssen berücksichtigen, dass die Daten in der Anwendung verloren gehen. Warum? Wenn ich Daten von einem System stehlen möchte, das Verschlüsselung der Daten auf Anwendungsebene oder DB-Ebene implementiert, könnte es genug sein, eine Fotokamera zu verwenden, um die Daten zu erhalten! Sehr einfach!
Sie müssen die Sicherheit des Systems berücksichtigen, aber auch die Funktionalität. Mehr ist die Sicherheit, weniger ist die Funktionalität. Ich hoffe, meine Überlegungen werden Ihnen nützlich sein.
Warum haben Sie in Ihrer Frage einen Link zu Ihrem Unternehmen veröffentlicht? –
Tut mir leid, die Angewohnheit der Gewohnheit, denn das ist, wie ich mich auf meinem Blog abmelde. Jetzt entfernt. –
Ich habe hier auf StackOverflow eine gute Antwort geschrieben, in der eine gute Möglichkeit beschrieben wird, die Verschlüsselung auf Anwendungsebene mit Hilfe von [RijndaelManaged] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx) hinzuzufügen) Klasse, und habe eine ziemlich große HÖLLE drüber. Ich bin "ASSUMING" Sie werden an die DB-Verschlüsselung geleitet werden. –