vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Verschlüsselung 
Autor: ModeratorDaveS (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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Verschlüsselung1.019napo18.02.04 12:07
Re: Verschlüsselung888ModeratorDaveS18.02.04 12:27
Re: Verschlüsselung781napo18.02.04 12:41
Re: Verschlüsselung912ModeratorDaveS18.02.04 14:06

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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