DevTrain

Autor: Christian Mairoll

Symmetrische und Asymmetrische Verschlüsselung in .NET

Die Verwendung von Verschlüsselung wird durch das .NET Framework sehr vereinfacht. Es ist nicht mehr notwendig auf die Krypto-API von Windows zurückzugreifen. Es sind alle wichtigen Verschlüsselungsmethoden im Framework als Managed Code verfügbar.

Der maßgebende Namespace hierfür ist System.Security.Cryptography. Dieser enthält Klassen zur Ver- und Entschlüsselung von Daten. Darunter fallen Klassen für symmetrische wie auch asymmetrische Verschlüsselung. Die spezifischen Verschlüsselungsklassen sind alle von gemeinsamen Basisklassen abgeleitet. Dadurch können unterschiedliche Verschlüsselungsmethoden gleich verwendet werden.

Symmetrische Algorithmen

Unter symmetrischen Algorithmen versteht man Algorithmen, bei den zur Ver- und Entschlüsselung der gleiche Schlüssel verwendet werden. Symmetrische Algorithmen arbeiten sehr viel performater als Asymetrische Algorithmen. Sie sind dafür ausgelegt, große Datenmengen in sehr kurzer Zeit zu Ver- und Entschlüsseln. Symmetrische Algorithmen sind unter anderem DES, TripleDES und Rijndael. Symmetrische Algorithmen können nur da verwendet werden, wo der Schlüssel nicht übermittelt werden muß. Außer man übermittelt den Schlüssel für Symmetrische Verschlüsselung über einen Kanal der mit Asymmetrischer Verschlüsselung gesichert ist.

Asymmetrische Algorithmen

Um jemanden einen Symmetrischen Schlüssel auf sicherem Weg zu übermitteln benötigt man die Asymmetrische Verschlüsselung. Asymmetrisch heißt, daß für die Verschlüsselung der Daten ein anderer Schlüssel verwendet wird als zur Entschlüsselung. Es gibt also einen öffentlichen und einen privaten Schlüssel (public & private key). Der Empfänger der Daten erzeugt einen öffentlchen und einen privaten Schlüssel. Der öffentliche Schlüssel wird an die Gegenstelle übermittelt. Diese verwendet den privaten Schlüssel des Empfängers um die Daten zu verschlüsseln. Entschlüsselt werden können die Daten jedoch nur vom Besitzer des passenden privaten Schlüssels. Ein Angreifer, der die Datenübertragung abhorcht, hat somit keine Chance die Daten zu entschlüsseln, da Ihm der private Schlüssel fehlt. Je nach Schlüsselstärke würde es selbst mit den leistungsfähigsten Computern der Erde Jahre dauern den privaten Schlüssel zu knacken. Bekannte asymmetrische Algorithmen sind zum Beispiel RSA und DSA.

So funktioniert SSL

Sicher haben Sie schon oft Webseiten aufgerufen, die per SSL (Secure Socket Layer) übertragen wurden. Diese sind erkennbar daran, daß die URL mit https beginnt. Wissen Sie auch was hier eigentlich passiert und warum die Daten sicher übermittelt werden?

Ihr Browser erzeugt kurzfristig einen privaten und einen öffentlichen Schlüssel. Der öffentliche Schlüssel wird dem Webserver übermittelt. Dieser verwendet den öffentlichen Schlüssel um einen neuen erzeugten symmetrischen Schlüssel verschlüsselt zum Browser zurück zu übermitteln. Der Browser empfängt den symmetrischen Schlüssel und kann ab sofort die symmetrisch verschlüsselten Webseiten-Daten des Servers empfangen und entschlüsseln. Diese Technik ist zielführend, da die komplette asymmetrische Verschlüsselung aller Webseiten zu rechenintensiv wäre.


Erfasst am: 19.02.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=825
© Copyright 2003 ppedv AG - http://www.ppedv.de