| 

.NET C# Java Javascript Exception

3
Hallo zusammen,
ich habe eine Benutzerdatenbank (MS SQL 2008) in der ich persönliche Daten (Name, Adresse, Telefon etc.) und auch Passwörter (ja, Passwörter! Hashes kann ich leider nicht verwenden weil ich die Passwörter an andere externe Seiten weitergeben muss). Dazu habe ich 2 Fragen, eine technische und eine administrative:
1. Wie verschlüssele ich die Daten am besten? Hab das Thema in den letzten Jahren nicht verfolgt, würde aber natürlich die internen .net-Klassen (.net 4.0) verwenden wollen, mit Salt. Welche Methode ist dafür am besten geeignet (AES?) ?
2. Was würdet ihr verschlüsseln, nur das Passwort oder auch die Benutzerdaten? Ist für eine öffentliche Internetseite auf nem fremden Host. Ich bin zwar nicht so paranoid das ich dem Hoster was unterstellen würde aber es wäre natürlich der Tod meiner Seite wenn irgendwie doch Daten rauskommen würden. Andererseits macht es die Fehlersuche natürlich ungleich komplizierter wenn man keine Echtnamen mehr drin hat und die Werte noch nicht mal selber entschlüsseln kann weil ich das Entschlüssel-Passwort des Benutzers natürlich nicht speichere...
Danke im voraus!
News:
02.03.2011
Gast
31 1
2 Antworten
4
Zu 1.
Ich verwende diese Verschlüsselung mit Salt: System.Security.Cryptography.Aes
Edit:
Auf der englischen Seite gibt es auch Beispiele. Dieser Link ist nun besser.
Edit2:
Zu 2., da sonst niemand antwortet:
Ich verschlüssel nur das Passwort. Wenn die Anwendung fertig ist, darf sowieso nur per SSL darauf zugegriffen werden.
Dann bleibt nur noch der Hoster des geringsten Misstrauens auszuwählen ;o)
Edit3:
Abschließend mein Tipp:
Passwort wie oben angegeben verschlüsseln und nur SSL-Verbindungen zulassen.
02.03.2011
Jürgen Luhr 6,9k 1 8
Prima, danke für den Link und den Tipp!
– Gast 02.03.2011
2
zu 1.: Ich hatte darüber mal ein "Tutorial" basierend auf Microsoft in Deutsch verfasst: http://www.just-about.net/verschlusselung-mit-net

zu 2.: Wenn du die Daten weitergibst solltest du meines Erachtens alles verschlüsseln. Denn wenn der Nutzername Klartext ist, gibt das einen wunderbaren Anhaltspunkt für Bruteforce-Angriffe und selbst aus einer Kombination von Straße und Hausnummer kann man Dinge ableiten die für deine Nutzer im realen Leben sehr unangenehm werden.
02.03.2011
Hendrik Lösch 1,4k 8
Danke für das Tutorial!
Zu 2: Ich gebe nur Benutzername und Passwort weiter. Die anderen personenbezogenen Daten (Strasse etc) werden nur in meiner SQL DB gespeichert und nicht weitergegeben. ICh weiss nur nicht ob ich die auch nur verschlüsselt speichern sollte falls es doch mal ein Hacker irgendwie auf meinen Hoster schafft... Aber das Debugging wird im Zweifelsfall natürlich schwieriger... Sicherheit gegen einfache Fehlersuche.... keine einfache Entscheidung.
Ich 02.03.2011
Wenn die Daten so sensibel sind, darf der Zugriff nur per SSL erfolgen. Da sollte die Sicherheit größer sein, als ein selbstverschlüsselter Benutzername.
Zudem würde ich die Frage der Verantwortung nicht ausser Acht lassen. Kommt ein Hacker trotz SSL auf den Server, würde ich dem Hoster ganz schön einheizen. Ohne SSL liegt die Datensicherheit bei dir alleine. (Das ist nur meine Einstellung und nicht rechtlich fundiert.)
Jürgen Luhr 02.03.2011

Stelle deine .net-Frage jetzt!