| |

VB.NET - FortgeschritteneRe: Verschlüsselung | |  | Autor: DaveS (Moderator) | Datum: 18.02.04 14:06 |
| Also, meine Frage war eigentlich nicht warum Daten verschlüsselt werden sollen, sondern warum die Schlüssel verschlüsselt werden müssen. Wenn du etwa einen Schlüssel aus einem Passwort generierst kannst du die Schlüssel jederzeit neu generieren. Allerdings ist es nicht so empfehlenswert immer den gleichen Schüssel zu benutzen. Besser generierst du immer einen neuen Schlüssel für neue Daten, der verschlüsselt zusammen mit den Daten abgelegt wird, und verschlüsselst diesen Key mit einem Masterkey. Der kann aus einem Passwort generiert werden, oder wird verschüsselt abgelegt mit einem Schlüssel, der aus dem Passwort generiert wird. Die Frage ist ob nur der ursprüngliche Benutzer die Daten entschlüsseln darf, oder ob ein gemeinsamer Masterkey verwendet werden soll. Soll der Schlüssel lokal abgespeichert werden, oder eher in einer Serveranwendung?
RSA ist ein asymetrisches Verfahren. Zu RSA gehören zwei Keys, ein public Key und ein private Key. Du musst nur den pirvate Key geheim halten. Daten verschlüsselt mit dem Public key kann nur von jemendem entschlüsselt werden, der den private Key kennt. Daten, die mit dem private Key verschlüsselt werden können mit dem public Key entschlüsselt werden, was hauptsächlich ein Beweis ist, dass die Daten vom Besitzer des private Keys stammen. Allerdings ist RSA Verschlüsselung extren langsam, und wird meistens nur benutzt um etwa eine Session Key, oder vielleicht hier den Masterkey zu verschlüsseln. Die eigentlichen Daten werden dann mit einem generierten Key verschlüsselt. Solche keys sind dann für ein symmetrisches Verfahren wie RC2, das wesentlich schneller ist (der eine Key verschlüsselt und entschlüsselt die Daten).
Die .Net RSA Klassen können die Keyinformation als Xml exportieren (nicht sehr empfehlenswert für einen private Key), als RSAParameters Objekt, oder in einem Keycontainer ablegen, oder die Daten können ephemeral sein. Ein Key Container ist wo ein CSP (Crypto Service Provider) solche Schlüssel (normalerweise verschlüsselt) ablegt. Jede Anwendung kann sein Container einem Namen geben um Konflikte zu vermeiden. Key Containers können Benutzer oder Maschine bezogen sein. Die MS CSPs benutzen dafür für Benutzer bezogene Containers das User Pofile. Ein Key Container ist daher nur eine Datei, die über Cryptofunktionen mit einem Namen angesprochen wird und einem einzelnen Benutzer (üblicherweise) zugeordnet ist.
Wie du das machst ist erklärt in MSDN mit einem Beispiel im .Net Framework Developer's Guide unter dem Titel "Generating Keys for Encryption and Decryption".
Übrigens, noch eine gute Einführung ist in MSDN mit dem Titel "The Cryptography API, or How to Keep a Secret" von Robert Coleridge. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|