© best_vector/Shutterstock.com
Windows Developer
Verschlüsselung mit Microsofts CryptoAPI - Teil 2

Kryptografie in der neuen Welt


Applikationen neuartiger Technologie sind nicht aufzuhalten: Microsofts neue Laufzeitumgebung Metro drängt sowohl in den Mobil- als auch in den Desktopmarkt. Allerdings stehen die im vorigen Teil der Serie besprochenen APIs in der schönen neuen Welt nicht zur Verfügung.

Artikelübersicht

Teil 1: Einführung in die Kryptografie

Teil 2: Verschlüsselung mit Microsofts CryptoAPI, 1

Teil 3: Verschlüsselung mit Microsofts CryptoAPI, 2

Teil 4: Alles Zufall oder was?

Als diensterfahrener Programmierer könnte man sich an dieser Stelle zur manuellen Realisierung eines Algorithmus gemüßigt fühlen, für Durchschnittsentwickler ist das jedoch keine kluge Entscheidung. Das Portieren von Bouncy Castle und Co. mag eine Teillösung sein, ist am Ende aber nicht wirklich befriedigend. Erfreulicherweise bietet Microsoft mit dem Windows.Security.Cryptography Namespace eine Alternative an. In diesem Artikel wollen wir die darin enthaltenen Klassen kurz vorstellen und auf eine innovative Möglichkeit zur Nutzung von Zufallszahlengeneratoren eingehen.

Eine Frage des Konzepts

Windows.Security.Cryptography ist ein reiner Containernamespace, der nur eine für die Verarbeitung von Algorithmenklassen aufgerüstete Variante von Buffer enthält. Die eigentliche Intelligenz findet sich in den Unter-Namespaces Core, Certificates und DataProtection.

Core ist für die Bereitstellung von „klassischen“ Algorithmen zuständig. Certificate enthält diverse Klassen, die sich mit Zertifikatsketten befassen. In DataProtection findet sich eine weitere Hilfsklasse, die Daten unter Nutzung von accountspezifischen Schlüsseln sichert – sie soll in diesem Artikel keine weitere Rolle spielen.

Die im letzten Teil der Serie besprochene Klassenstruktur ist unter Windows RT nicht implementiert. Microsoft setzt stattdessen auf ein zweistufiges Verfahren, das sich allerdings nur schwer um eigene Algorithmenimplementierungen erweitern lässt.

Auf der obersten Ebene stehen nun als Provider bezeichnete Klassen: Tabelle 1 zeigt, welche Klasse für welche Algorithmenfamilie zuständig ist. Die Nutzung eines bestimmten Algorithmus erfolgt durch das Einreichen eines „Algorithmenschlüssels“, der an OpenAlgorithm zu übergeben ist.

Klasse

Inhalt

AsymmetricKeyAlgorithmProvider

Asymmetrische Verschlüsselungsalgorithmen

HashAlgorithmProvider

Algorithmen zur Errechnung von Hashes

MacAlgorithmProvider

Algorithmen zur Errechnung von Message Authentication Codes (MACs)

SymmetricKeyAlgorithmProvider

Symmetrische Verschlüsselungsalgorith...

Windows Developer
Verschlüsselung mit Microsofts CryptoAPI - Teil 2

Kryptografie in der neuen Welt

Applikationen neuartiger Technologie sind nicht aufzuhalten: Microsofts neue Laufzeitumgebung Metro drängt sowohl in den Mobil- als auch in den Desktopmarkt. Allerdings stehen die im vorigen Teil der Serie besprochenen APIs in der schönen neuen Welt nicht zur Verfügung.

Tam Hanna


Applikationen neuartiger Technologie sind nicht aufzuhalten: Microsofts neue Laufzeitumgebung Metro drängt sowohl in den Mobil- als auch in den Desktopmarkt. Allerdings stehen die im vorigen Teil der Serie besprochenen APIs in der schönen neuen Welt nicht zur Verfügung.

Artikelübersicht

Teil 1: Einführung in die Kryptografie

Teil 2: Verschlüsselung mit Microsofts CryptoAPI, 1

Teil 3: Verschlüsselung mit Microsofts CryptoAPI, 2

Teil 4: Alles Zufall oder was?

Als diensterfahrener Programmierer könnte man sich an dieser Stelle zur manuellen Realisierung eines Algorithmus gemüßigt fühlen, für Durchschnittsentwickler ist das jedoch keine kluge Entscheidung. Das Portieren von Bouncy Castle und Co. mag eine Teillösung sein, ist am Ende aber nicht wirklich befriedigend. Erfreulicherweise bietet Microsoft mit dem Windows.Security.Cryptography Namespace eine Alternative an. In diesem Artikel wollen wir die darin enthaltenen Klassen kurz vorstellen und auf eine innovative Möglichkeit zur Nutzung von Zufallszahlengeneratoren eingehen.

Eine Frage des Konzepts

Windows.Security.Cryptography ist ein reiner Containernamespace, der nur eine für die Verarbeitung von Algorithmenklassen aufgerüstete Variante von Buffer enthält. Die eigentliche Intelligenz findet sich in den Unter-Namespaces Core, Certificates und DataProtection.

Core ist für die Bereitstellung von „klassischen“ Algorithmen zuständig. Certificate enthält diverse Klassen, die sich mit Zertifikatsketten befassen. In DataProtection findet sich eine weitere Hilfsklasse, die Daten unter Nutzung von accountspezifischen Schlüsseln sichert – sie soll in diesem Artikel keine weitere Rolle spielen.

Die im letzten Teil der Serie besprochene Klassenstruktur ist unter Windows RT nicht implementiert. Microsoft setzt stattdessen auf ein zweistufiges Verfahren, das sich allerdings nur schwer um eigene Algorithmenimplementierungen erweitern lässt.

Auf der obersten Ebene stehen nun als Provider bezeichnete Klassen: Tabelle 1 zeigt, welche Klasse für welche Algorithmenfamilie zuständig ist. Die Nutzung eines bestimmten Algorithmus erfolgt durch das Einreichen eines „Algorithmenschlüssels“, der an OpenAlgorithm zu übergeben ist.

Klasse

Inhalt

AsymmetricKeyAlgorithmProvider

Asymmetrische Verschlüsselungsalgorithmen

HashAlgorithmProvider

Algorithmen zur Errechnung von Hashes

MacAlgorithmProvider

Algorithmen zur Errechnung von Message Authentication Codes (MACs)

SymmetricKeyAlgorithmProvider

Symmetrische Verschlüsselungsalgorith...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang