Secure HTTP

Dieses von der Firma EIT 1994 entwickelte Protokoll stellt eine um Sicherheitsmerkmale erweiterte Version des Hypertext Transfer Protokolls dar. Das herkömmliche HTTP, welches im Wesentlichen nur einen Zugriffsschutz für eine Ressource mittels Benutzernamen und Paßwort realisiert wird damit um Verschlüsselungsmechanismen, Authentifizierung und die Verwendung von Signaturen erweitert. S-HTTP kennt zwei unterschiedliche kryptografische Formate für die Verschlüsselung seiner zu transportierenden Daten:

PKCS-7
Dieser Standard für asymmetrische Verschlüsselungen wurde von der Firma RSA Data Security Inc. entwickelt und definiert eine Reihe verschiedener Inhaltstypen für Nachrichten wie z.B.: unterschriebene Daten, geordnete Daten, gepackte Daten, etc...

MIME (Multipurpose Internet Mail Extensions) Object Security Standard (MOSS)
Dieses Verfahren beherrscht eine Reihe verschiedener Algorithmen welche dafür sorgen sollen, daß unterschiedliche MIME-Nachrichten jeweils unterschiedlich kodiert werden.

Zu Beginn werden analog zu SSL durch Client und Server die Übertragungsmodalitäten ausgehandelt. Die wesentliche Vorgehensweise des Verfahrens ist die Einbettung von HTTP-Nachrichten in S-HTTP Nachrichten um eine sichere Übertragung zu gewährleisten. [WP97]

HTTP-Erweiterungen

Um eine S-HTTP Übertragung auch als solche zu identifizieren und zu ermöglichen, werden einige grundlegende Erweiterungen des HTTP vorgenommen:

  • HTTP wird um zwei Header erweitert: SECURITY und NONCE

  • Es wird ein neuer URL-Typ mit der Bezeichnung "shttp://" eingeführt

  • Es werden neue Requests wie z.B. GET/SERVER-CERTIFICATE ergänzt.

  • S-HTTP Server müßen unter anderem Zertifikate unterstützen

  • Die Fehlerklassen 3 (Umleitungen) und 4 (Client-Fehler) werden erweitert; neue Fehler sind z.B. "402" Zahlung erhalten, "420" Sicherheit Neuversuch, etc....

Desweiteren werden die Teile des HTTP-Nachrichtenformates sowohl für Requests (Nachrichten von Client zum Server) als auch für Reponses (Nachrichten vom Server zum Client) um einige Angabe erweitert.

Request Line
Sie ist Teil eines Client-Seitigen Request und beinhaltet normalerweise einen Uniform Resource Identifier (URI) zur Identifikation einer Server-Seitigen Ressource und eine Methode die beschreibt wie der Server mit dieser Ressource zu verfahren hat (GET, HEAD, POST). Im Falle von S-HTTP ist die Methode immer als SECURE angegeben.

Status Line
Als Teil eines Server-Seitigen Reponse enthält die Status Line Informationen über die Protokollversion und den Status der Übertragung. Bei S-HTTP enthält sie jedoch immer die Bezeichnung "Secure-HTTP/1.2 200 OK" um zu verhindern, das konkrete Informationen über den Status von z.B. Zahlungstransaktionen erkennbar sind.

Header Lines
Sie beinhalten zusätzliche Informationen über die Verbindung. S-HTTP nutzt dies zur Angabe des Austauschformates, des Übertragungsformates oder des Schlüsselaustausches.

HTML-Erweiterungen

Auch die HTML wird partiell erweitert. Dies betrifft insbesondere das "<A>" Tag für die Definition von Querverweisen (Links) aller Art. Hinzugefügt werden die Parameter:

  • DN zum Anzeigen der Signatur des Empfängers

  • NONCE zur Definition eines Antwort Strings bei einer Anfrage

  • CRYPTOP zur Angabe der vom Empfänger benötigten Zertifikate