SAMLized Kerberos. Markus Franke, Dr. Oliver Pfaff



Ähnliche Dokumente
Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Containerformat Spezifikation

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Containerformat Spezifikation

Task: Nmap Skripte ausführen

Programmiertechnik II

Thema: Web Services. Was ist ein Web Service?

Sicheres Single Sign-On mit dem SAML Holder-of-Key Web Browser SSO Profile und SimpleSAMLphp

Informatik für Ökonomen II HS 09

OP-LOG

Leitfaden zur Nutzung von binder CryptShare

Digital signierte Rechnungen mit ProSaldo.net

Workflow, Business Process Management, 4.Teil

SECURITY DESIGN PATTERN FÜR EHEALTH-PLATTFORMEN

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

How-to: Webserver NAT. Securepoint Security System Version 2007nx

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Virtual Private Network. David Greber und Michael Wäger

Multicast Security Group Key Management Architecture (MSEC GKMArch)

Anbindung LMS an Siemens S7. Information

Erste Vorlesung Kryptographie

Secure Mail der Sparkasse Holstein - Kundenleitfaden -

Zeichen bei Zahlen entschlüsseln

Zeitstempel für digitale Dokumente. Ein neuer Dienst in der DFN-PKI

Lizenzierung von System Center 2012

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Datenübertragungsportal

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

FTP-Leitfaden RZ. Benutzerleitfaden

FAQ 04/2015. Auswirkung der ISO auf 3SE53/3SF13 Positionsschalter.

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Radius Server. Bericht im Studiengang Computerengineering an der HS-Furtwangen. Student: Alphonse Nana Hoessi Martikelnr.:227106

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

D i e n s t e D r i t t e r a u f We b s i t e s

Content Management System mit INTREXX 2002.

Möglichkeiten der verschlüsselten -Kommunikation mit der AUDI AG Stand: 11/2015

Softwareentwicklungspraktikum Sommersemester Grobentwurf

... MathML XHTML RDF

Sichere Kommunikation mit Ihrer Sparkasse

Nutzung und Erweiterung von IT-Standards zur Realisierung von Authentifizierung und Zugriffsschutz für Geo Web Services

Sichere Kommunikation mit Ihrer Sparkasse

Schritt 2: Konto erstellen

SDD System Design Document

Primzahlen und RSA-Verschlüsselung

Fachtagung Safety in Transportation Leitfaden für die IT Sicherheit auf Grundlage IEC 62443

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Eine Logikschaltung zur Addition zweier Zahlen

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Die Quantitative und Qualitative Sozialforschung unterscheiden sich bei signifikanten Punkten wie das Forschungsverständnis, der Ausgangspunkt oder

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Entwicklung und Einsatz von Signaturserverdiensten

Anforderungen an die HIS

Web Service Security

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Mindestanforderungen an. Inland ECDIS Geräte im Informationsmodus und vergleichbare Kartenanzeigegeräte. zur Nutzung von Inland AIS Daten

Installationsanleitung für pcvisit Server (pcvisit 15.0)

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Car-Net über WLAN Aufbau einer Internet-Verbindung über WLAN zur Nutzung von Car-Net

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

Import des persönlichen Zertifikats in Outlook 2003

Guide DynDNS und Portforwarding

Service-Orientierte Architekturen

ICS-Addin. Benutzerhandbuch. Version: 1.0

1 Dataport 12.Juli 2007 Internationale Standards zu Identity Management. Deckblatt. Harald Krause

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

Beispiele, um das Spektrum an Szenarien aufzuzeigen, die mit dem extra Standard möglich sind

Reporting Services und SharePoint 2010 Teil 1

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

Windows 8 Lizenzierung in Szenarien

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Hinweisblatt zur elektronischen Signatur des WP-Prüfungsvermerks. im Antragsjahr 2015

COMPUTER MULTIMEDIA SERVICE

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Installation und Inbetriebnahme von SolidWorks

Projekt. Evaline. Anleitung Stufe Kanton. Anleitung. Massnahmen- & Ressourcenplanung in den Gremien. Version 1.0

HTBVIEWER INBETRIEBNAHME

Digitale Signaturen. Sven Tabbert

Car-Net über WLAN Aufbau einer Internet-Verbindung über WLAN zur Nutzung von Car-Net

(c) 2014, Peter Sturm, Universität Trier

Maintenance & Re-Zertifizierung

Dieses Dokument erläutert die Einrichtung einer VPN-Verbindung zwischen einem LANCOM Router (ab LCOS 7.6) und dem Apple iphone Client.

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Kundeninformation zum Secure . Sparkasse Neu-Ulm Illertissen. ganz in Ihrer Nähe

Sichere für Rechtsanwälte & Notare

Nachrichten- Verschlüsselung Mit S/MIME

Ust.-VA ab Release 1.0.0

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Anleitung. Schritt für Schritt: iphone und ipad. Richten Sie Ihr -Konto mit Ihrem iphone oder ipad Schritt für Schritt ein.

Einrichtung eines -konto mit Outlook Express

Stammtisch Zertifikate

Transkript:

SAMLized Kerberos Markus Franke, Dr. Oliver Pfaff Siemens AG, Com ESY SEC Otto-Hahn-Ring 6 81730 München markus.franke@siemens.com oliver.pfaff@siemens.com Abstract: Dieser Beitrag stellt eine SAML-Erweiterung vor, die ein 3-Parteien- Authentifikationssystem mit einer Online-Authentication-Authority realisiert. Das Sicherheitsmodell dieses Authentifikationssystems basiert auf einem dedizierten Berechtigungsnachweis für die Nutzung von Authentifikationsaussagen auf der Basis von kryptographischen Mechanismen. 1 Einleitung Sicherheitsarchitekturen in verteilten IT-Systemen basieren auf dem Austausch von Sicherheitsaussagen wie etwa Identitäts-, Authentifikations- oder Autorisierungsaussagen. Um die gesicherte Bindung solcher Aussagen mit zugehörigen Systeminstanzen zu gewährleisten, erfordert ihre Inanspruchnahme oftmals die Vorlage eines dedizierten Berechtigungsnachweises. Kerberos- sowie PKI-basierte Systeme sind Beispiele für dieses sogenannte Beweis-Modell: Kerberos-basierte Systeme nutzen Kerberos-Tickets zum Austausch von Authentifikationsaussagen. Der explizite Nachweis der berechtigten Inanspruchnahme solcher Aussagen erfolgt anhand des Kerberos- Authenticators durch einen Proof-of-Possession für einen symmetrischen Schlüssel. Dieser Schlüssel wird zwischen Client und Target-Server etabliert. In PKI-basierten Systemen stellen Public-Key-Zertifikate eine Identitätsaussage 1 dar. Der explizite Nachweis der berechtigten Inanspruchnahme solcher Aussagen erfolgt durch einen Proof-of-Possession für den zugehörigen privaten Schlüssel. Dies geschieht anhand eines Sicherheitsprotokolls wie z.b. Kerberos-PKINIT, SSL/TLS oder S/MIME. 1 Aufgrund der zeitlichen Entkopplung zwischen der Authentifikation eines Antragstellers im Rahmen der Zertifikatsbeantragung und der Validierung des entsprechenden Zertifikats im Rahmen eines Authentifikationsprotokolles wird ein Public-Key-Zertifikat hier nicht als Authentifikationsaussage bezeichnet. 297

IT-Systeme, welche z.b. die Inanspruchnahme von Identitäts- oder Authentifikationsaussagen ohne einen dedizierten Berechtigungsnachweis ermöglichen, sind Identity- Theft-Angriffsszenarien ausgesetzt. Beispiele hierfür sind E-Commerce-Dienste, die HTTP-Cookies zum Austausch von Sicherheitsaussagen nutzen. Der Grad der Exponiertheit solcher Systeme hängt hierbei von Designdetails sowie operativen und administrativen Sicherheitsmaßnahmen ab. SAML (Security Assertion Markup Language) ist eine XML-basierte Technik zum Austausch von Sicherheitsaussagen. SAML unterstützt den dedizierten Berechtigungsnachweis für die Nutzung von SAML-Sicherheitsaussagen, ohne aber solche zu definieren. Dieses Dokument beschreibt eine SAML-Erweiterung, die SAML- Authentifikationsaussagen gesichert an berechtigte Systemteilnehmer bindet. 2 Anforderungen Zur Untersuchung dieser SAML-Erweiterung wird ein verteiltes IT-System betrachtet, das ein 3-Parteien-Authentifikationssystem mit einer Online-Authentication-Authority nutzt, und dessen Sicherheitsmodell die gesicherte Bindung von Authentifikationsaussagen an berechtigte Systemteilnehmer fordert. Die Kenntnis einer Authentifikationsaussage darf also alleine nicht ausreichend sein, um die zugehörige Identität eines Teilnehmers anzunehmen. Weiterhin wird zur Identity-Federation-Unterstützung gefordert, dass ein Client- Identifier, der zwischen einem Systemteilnehmer und einer Authentication-Authority verwendet wird, nicht zwingend für die Interaktion mit einem Target-Server genutzt werden muss. Das bedeutet, dass die Authentication-Authority Indirektionen bezüglich der Subjekt-Identität des Clients unterstützen muss. Die Abbildung 1 illustriert entsprechende Szenarien: Zentral Föderal Authenticate ID-A Server Authentication- Authority Authenticate ID-A Server Authentication- Authority ID-A Report ID-A* Report Client ID-A Transfer Server Client ID-A* Transfer Server Abbildung 1: 3-Parteien-Authentifikationsmodelle Zentrale 3-Parteien-Authentifikationsmodelle dienen typischerweise der Realisierung von organisationsinternen Sicherheitsdomänen; sie propagieren Subjekt-Identitäten aus einer zentralen Quelle in multiple Zielsysteme. Beispiele hierfür sind Kerberos- sowie PKI-basierte Authentifikationssysteme, wobei letztere im Gegensatz zu Kerberos auf Offline-Authentication-Authorities basieren. 298

Föderale 3-Parteien-Authentifikationsmodelle ermöglichen eine organisationsübergreifende Nutzung von Ressourcen in verschiedenen Sicherheitsdomänen; sie integrieren Subjekt-Identitäten von multiplen Zielsystemen. Dies kann etwa durch ein Mapping von Identitätsattributen (dargestellt in Abbildung 1) oder eine Referenz auf Identitätsattribute im Zielsystem geschehen und durch administrative Maßnahmen sowie geeignete Protokolltransaktionen zwischen den beteiligten Instanzen umgesetzt werden. Beispiele für diese Ansätze sind die SAML-Web-SSO-Profile sowie die Liberty-Alliance- Spezifikationen. 3 SAML SAML wird von einer OASIS-Arbeitsgruppe 2 spezifiziert. Die Version 1.1 von SAML ist als OASIS-Standard veröffentlicht (vgl. [Saml03]), während die Version 2.0 derzeit noch erarbeitet wird. Daher liegt diesem Beitrag die Version 1.1 zugrunde. AuthenticationStatement- 3, AttributeStatement- sowie AuthorizationDecisionStatement-Elemente bilden die zentralen Sicherheitsaussagen, die SAML spezifiziert. Diese Aussagen beschreiben das Subjekt der betreffenden Aussage jeweils durch ein Subject-Kindelement. Mehrere SAML- Statements können zu einer Assertion zusammengefasst werden. Mittels verschiedener SAML-Query-Typen ermöglicht das SAML-Protokoll die Akquisition von SAML-Assertion-Elementen im Rahmen eines Request/Response- Paradigmas. SAML spezifiziert zudem Protokollbindungen zum Austausch von SAML- Protokollnachrichten mittels SOAP-über-HTTP sowie Profile für Web-SSO. SAML erlaubt die explizite Bindung einer Sicherheitsaussage an berechtigte Systeminstanzen mittels des optionalen Subject-Kindelementes SubjectConfirmation. Dieses Element besteht aus den folgenden Kindelementen: ConfirmationMethod: Spezifiziert den Typ des Nachweisverfahrens per URN (holder-of-key, sender-vouches, artifact, bearer). SubjectConfirmationData: Stellt verfahrensspezifische Nachweisdaten bereit. Die Definition des Inhaltes dieses Elementes ist die Aufgabe einer SAML-Anwendung. ds:keyinfo: Spezifiziert kryptographische Schlüssel. Dieses Element wird von XML-Signature (vgl. [Xsig02]) definiert. 2 http://www.oasis-open.org/committees/security 3 Begriffe, die SAML spezifiziert, werden mit dem Schrifttypen Courier und ohne einen Namensraumpräfix dargestellt. Für SAMLized Kerberos-, XML-Signature- sowie XML-Encryption-Begriffe werden zusätzlich die Namensraumpräfixe samlkrb:, ds: sowie xenc: verwendet. 299

4 SAMLized Kerberos Mittels SubjectConfirmation erlaubt SAML die Authentifikation des berechtigten Nutzers einer Sicherheitsaussage über ein kryptographisches Protokoll. SAML spezifiziert selbst jedoch keine Mechanismen hierfür. Dieser Abschnitt untersucht eine SAML-Erweiterung, die Authentifikationsaussagen gesichert mit Systemteilnehmern bindet. 4.1 Voraussetzungen Der betrachteten SAML-Erweiterung liegt ein 3-Parteien-Authentifikationsmodell mit den folgenden Systeminstanzen zugrunde: Client (möchte die Dienste eines Target- Servers nutzen), Target-Server (stellt Dienste bzw. Ressourcen bereit) sowie SAMLized Kerberos-Authority (Online-Authentication-Authority). Zwischen Client und SAMLized Kerberos-Authority sowie Target-Server und SAMLized Kerberos-Authority werden langlebige symmetrische oder asymmetrische Schlüsselassoziationen als initial vorhanden vorausgesetzt. 4.2 Designprinzipien Die initiale Authentifikation zwischen Client und SAMLized Kerberos-Authority wird nicht durch SAMLized Kerberos spezifiziert, sondern erfolgt durch traditionelle Mittel auf Basis der vorausgesetzten Schlüsselassoziation, etwa mittels Kerberos, SSL/TLS, HTTP-Basic/Digest oder HTML-Formularen. Die dedizierte Bindung einer SAML-Authentication-Assertion mit einem Client erfolgt mittels Proof-of-Possession für kurzlebige Authentifikationsschlüssel, welche vom Client generiert werden. Für diese wird über die SAMLized Kerberos-Authority eine Schlüsselassoziation zwischen Client und Target-Server etabliert. Hierbei nutzt der Client den Generierungsschlüssel (SamlKrbGenerationKey) und der Target-Server den entsprechenden Validierungsschlüssel (SamlKrbValidationKey) zur Erzeugung bzw. Überprüfung von Authentifikationsinformation. 4.3 Protokoll-Primitive In diesem Abschnitt werden die Protokoll-Primitive von SAMLized Kerberos skizziert. Phase 1: Client SAMLized Kerberos-Authority Dieser Abschnitt beschreibt die Protokoll-Primitive, die zwischen Client und SAMLized Kerberos-Authority ausgetauscht werden. SAMLized Kerberos nutzt hierfür die Request/Response-Elemente des SAML-Protokolls. 300

Primitiv 1.1: Client SAMLized Kerberos-Authority Der Client fordert eine Authentifikationsaussage mittels eines SAML-Request- Elementes an. Da eine SAML-AuthenticationQuery die erforderlichen Informationen nicht transportieren kann, nutzt SAMLized Kerberos einen zusätzlichen Query-Typen samlkrb:authenticationquery, der die SAML- SubjectQuery erweitert und der mittels Request transferiert wird: samlkrb:authenticationquery samlkrb:authenticationmethod 1 1 1 0-1 0-1 0-1 Subject ds:keyinfo samlkrb:targetserver samlkrb:authority ds:signature Abbildung 2: Struktur einer samlkrb:authenticationquery Die samlkrb:authenticationquery besteht aus folgenden Kindelementen: Subject: Spezifiziert das Subjekt, für das eine Authentifikationsaussage angefordert wird. ds:keyinfo: Spezifiziert den SamlKrbValidationKey. samlkrb:targetserver: Spezifiziert den Target-Server. samlkrb:authority: Spezifiziert die SAMLized Kerberos-Authority. ds:signature: Signatur 4, die mittels SamlKrbGenerationKey über samlkrb:authenticationquery gebildet wird. Die Sicherung des Validierungsschlüssels SamlKrbValidationKey hängt vom Sicherheitskontext zwischen Client und SAMLized Kerberos-Authority ab. Liegt der Kommunikation etwa eine SSL/TLS-Transportsicherung mit bilateraler Authentifikation und Kanalverschlüsselung zugrunde, so ist ein Verzicht auf eine zusätzliche Sicherung dieses Validierungsschlüssels möglich. Der Schlüssel kann in diesem Fall etwa im Klartext mittels des ds:keyinfo-kindelementes ds:keyvalue übermittelt werden. Steht ein solcher Sicherheitskontext nicht zur Verfügung, so ist eine eigenständige Sicherung dieses Validierungsschlüssels erforderlich: 4 XML-Signature spezifiziert ds:signature und unterstützt kryptographische Prüfsummen auf Basis von asymmetrischen sowie symmetrischen Verfahren. Im vorliegenden Fall liefert die Prüfsumme einen Proof-of- Possession für SamlKrbGenerationKey und sichert die Integrität der samlkrb:authenticationquery (nicht aber deren Authentizität). 301

Das SAML-Request-Kindelement ds:signature ermöglicht eine Authentizitätssicherung für die Inhalte des Request-Elementes und damit auch für die eingebettete samlkrb:authenticationquery. Zur Vertraulichkeitssicherung für einen symmetrischen SamlKrbValidationKey kann die Erweiterung xenc:encryptedkey verwendet werden, die von XML- Encryption (vgl. [Xenc02]) für ds:keyinfo definiert wird. Primitiv 1.2: Client SAMLized Kerberos-Authority Nach einer erfolgreichen Client-Authentifikation und Prüfung des SAML-Request- Elementes mit der samlkrb:authenticationquery stellt die SAMLized Kerberos-Authority eine SAML-Authentication-Assertion aus, die an den Client gebunden wird. Diese SAML-Authentication-Assertion wird mittels einer SAML- Response an den Client übermittelt. Im Rahmen des betreffenden AuthenticationStatement Elementes (Abbildung 3, Zeilen 4-22) wird ein NameIdentifier- sowie ein SubjectConfirmation-Element bereitgestellt. Letzteres besteht aus: ConfirmationMethod: urn:oasis:names:tc:saml:1.0:cm:holder-of-key SubjectConfirmationData: Besteht aus einem leeren Kindelement samlkrb:confirmationdata (vgl. Fußnote 6 für eine Erörterung von Designalternativen). ds:keyinfo: Stellt den Validierungsschlüssel SamlKrbValidationKey bereit. Die SAMLized Kerberos-Authority sichert die Authentizität der SAML-Authentication- Assertion mittels XML-Signature (Abbildung 3, Zeilen 23-40). Hierbei handelt es sich um eine enveloped Signature auf Basis der Schlüsselassoziation zwischen der SAMLized Kerberos-Authority und dem Target-Server (Abbildung 3, Zeile 39). Bei der Bildung des Signaturwertes wird das SubjectConfirmationData-Kindelement samlkrb:confirmationdata mittels Transformationen (Abbildung 3, Zeilen 30-32) aus der Berechnung der kryptographischen Prüfsumme herausgenommen 5. Dieses Element wird im Folgenden vom Client modifiziert, um einen Berechtigungsnachweis einzufügen (vgl. Protokoll-Phase 2). 5 Zur Reduktion der Implementierungskomplexität von Signaturmechanismen beschreibt SAML ein XML- Signature-Profil. Dieses schränkt die zu unterstützenden Signaturtransformationen auf die enveloped Signature - sowie die exclusive Canoncalization -Transformationen ein (...SHOULD NOT contain transforms other than..., vgl. Kapitel 5.4.4 in [SAML03]). Die Randbedingungen, die dieses XML-Signature- Profil formuliert, beruhen jedoch nicht auf einer grundsätzlichen Limitierung. Das hier beschriebene Nachweisverfahren für SAML-Authentifikationsaussagen erfordert eine XML-Signature-Transformation jenseits dieser Randbedingungen. 302

Durch diese kryptographische Prüfsumme attestiert die SAMLized Kerberos-Authority die Bindung des Validierungsschlüssels SamlKrbValidationKey mit dem Client- Identifier. Im Falle eines öffentlichen Schlüssels SamlKrbValidationKey ist diese Sicherung bereits ausreichend. Im Falle eines symmetrischen Schlüssels sind zusätzlich Schlüsselverschlüsselungsmechanismen auf Basis der Schlüsselassoziation zwischen SAMLized Kerberos-Authority und Target-Server erforderlich. Hierfür kann wiederum die ds:keyinfo-erweiterung xenc:encryptedkey verwendet werden. Phase 2: Client Target-Server Dieser Abschnitt beschreibt die Protokoll-Primitive, die zwischen Client und Target- Server ausgetauscht werden. Der Transfer dieser Protokollprimitive ist eine Aufgabe des jeweiligen Anwendungsprotokolls. Die Betrachtung einer Anwendungsprotokoll- Integration ist nicht Gegenstand dieses Dokumentes. Primitiv 2.1: Client Target-Server Nach einer erfolgreichen SAML-Response-Prüfung generiert der Client mittels SamlKrbGenerationKey die Authentifikationsinformation zum Nachweis der berechtigten Nutzung der SAML-Sicherheitsaussage und fügt diese in das samlkrb:confirmationdata Element ein (Abbildung 3, Zeilen 15-16). Da dieses Element aus der Bildung des Signaturwertes ausgenommen wurde, ist diese Erweiterung der SAML-Authentication-Assertion durch den Client möglich, ohne die kryptographische Prüfsumme der SAMLized Kerberos-Authority zu invalidieren. Es gibt verschiedene Designmöglichkeiten für die Konstruktion der Authentifikationsinformation, die als Inhalt von samlkrb:confirmationdata bereitgestellt wird. Im symmetrischen bzw. asymmetrischen Fall bieten sich etwa HMAC- bzw. PKCS#1- basierte Transformationen des folgenden Typs an: Base64(salt, HMAC(SamlKrbGenerationKey, salt, noofiterations)) Base64(salt, Sign(SamlKrbGenerationKey, salt)) Hierbei gilt: salt ::= currenttime nonce targetserver wird durch die Konkatenation der aktuellen Systemzeit, einem Zufallswert, der genau einmal verwendet wird, sowie einem Target-Server-Identifier gebildet. noofiterations bildet eine Protokollkonstante. Die Abbildung 3 skizziert eine SAML-Authentication-Assertion für SAMLized Kerberos: 303

(1) <Assertion MajorVersion="1" MinorVersion="1" AssertionID="a75adf55-40cc-dbd8372ebdfc" (2) Issuer="acme.com" IssueInstant="2004-12-03T10:02:00Z"> (3) <Conditions NotBefore="2004-12-03T10:00:00Z" NotAfter="2004-12-03T10:05:00Z"/> (4) <AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" (5) AuthenticationInstant="2004-12-03T10:02:00Z"> (6) <Subject> (7) <NameIdentifier NameQualifier="acme.com" (8) Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"> (9) jdoe@acme.com (10) </NameIdentifier> (11) <SubjectConfirmation> (12) <ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</ConfirmationMethod> (13) <SubjectConfirmationData> (14) <samlkrb:confirmationdata ConfirmationMethod="urn: "> (15) [Base64(salt,HMAC(SamlKrbGenerationKey,salt,noOfIterations)) or (16) Base64(salt,Sign(SamlKrbGenerationKey,salt))] (17) </samlkrb:confirmationdata> (18) </SubjectConfirmationData> (19) <ds:keyinfo>[samlkrbvalidationkey (opt. encrypted)]</ds:keyinfo> (20) </SubjectConfirmation> (21) </Subject> (22) </AuthenticationStatement> (23) <ds:signature> (24) <ds:signedinfo> (25) <ds:canonicalizationmethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> (26) <ds:signaturemethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> (27) <ds:reference URI=""> (28) <ds:transforms> (29) <ds:transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> (30) <ds:transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> (31) <ds-xpath:xpath Filter="subtract">//samlkrb:ConfirmationData</ds-xpath:XPath> (32) </ds:transform> (33) </ds:transforms> (34) <ds:digestmethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> (35) <ds:digestvalue>abc...</ds:digestvalue> (36) </ds:reference> (37) </ds:signedinfo> (38) <ds:signaturevalue>def...</ds:signaturevalue> (39) <ds:keyinfo>[schlüsselassoziation SAMLized Kerberos-Authority/Target-Server]</ds:KeyInfo> (40) </ds:signature> (41) </Assertion> Abbildung 3: Skizze einer SAML-Authentication-Assertion für SAMLized Kerberos 6 Primitiv 2.2: Client Target-Server Die Validierung einer SAML-Authentication-Assertion für SAMLized Kerberos erfordert insbesondere die Verifikation der kryptographischen Prüfsumme, die von der SAMLized Kerberos-Authority gebildet wurde, sowie die Prüfung der Authentifikationsinformation, die durch den Client bereitgestellt wurde: 6 Abhängig von den gegebenen Sicherheitsanforderungen kann es zur Vermeidung einer Impersonation des Clients durch den Target-Server im Fall einer symmetrischen Schlüsselassoziation zwischen diesen Instanzen - erforderlich werden, Informationen zum Target-Server gesichert an die Authentifikationsaussage zu binden. Dies kann etwa durch eine Erweiterung des Elementes samlkrb:confirmationdata um die Kindelemente samlkrb:confirmationtarget sowie samlkrb:confirmationcode geschehen: Das Element samlkrb:confirmationtarget trägt Informationen zum Target-Server, die von der SAMLized Kerberos-Authority eingefügt werden. Das Element samlkrb:confirmationcode trägt die Authentifikationsinformation, die der Client generiert (wie zuvor beschrieben), wobei nun eine Substraktionsfilter-Transformation mit dem Wert //samlkrb:confirmationcode verwendet wird. 304

Eine erfolgreiche Prüfung der kryptographischen Prüfsumme stellt die Authentizität der empfangenen Sicherheitsnachricht sicher. Diese Validierungsoperation geschieht anhand der langlebigen Schlüsselassoziation zwischen der SAMLized Kerberos-Authority und dem Target-Server. Aufgrund der gewählten Signatur-Transformationen (Abbildung 3, Zeilen 28-33) sind die Inhalte des gesamten Assertion-Elementes ohne das ds:signature- Element sowie das samlkrb:confirmationdata-element (Abbildung 3, Zeilen 14-17) authentizitätsgesichert. Insbesondere impliziert dies eine Authentizitätsaussage der SAMLized Kerberos-Authority (Abbildung 3, Zeilen 1-2) über die Bindung zwischen dem Validierungsschlüssel SamlKrbValidationKey (Abbildung 3, Zeile 19) und dem Client-Identifier (Abbildung 3, Zeile 7-10). Eine erfolgreiche Prüfung der samlkrb:confirmationdata repräsentiert einen Proof-of-Possession für den Schlüssel SamlKrbGenerationKey und stellt die Bindung der Sicherheitsnachricht mit dem Client sicher. Diese Validierungsoperation geschieht anhand des kurzlebigen Validierungsschlüssels SamlKrbValidationKey, der von der SAMLized Kerberos-Authority mit dem Client-Identifier gebunden wurde. Durch eine Auswertung des salt-wertes können Replay-Angriffe entdeckt werden. Nach der Validierung der SAML-Authentication-Assertion sendet der Target-Server eine Protokollantwort. Zur Realisierung der Target-Server-Authentifikation gegenüber dem Client kann im Fall einer symmetrischen Schlüsselassoziation zwischen Client und Target-Server ein entsprechendes Verfahren wie in Protokoll-Primitiv 2.1 verwendet werden. Im asymmetrischen Fall kann eine Target-Server-Authentifikation von dem zugrundeliegenden Sicherheitskontext (etwa SSL/TLS mit Server-Authentifikation) erbracht werden. 4.4 Zentrale Schlüsselgenerierung durch die SAMLized Kerberos-Authority Als Designalternative ist eine zentrale Schlüsselgenerierung für die Schlüsselassoziation zwischen Client und Target-Server durch die SAMLized Kerberos-Authority grundsätzlich möglich. Dieses Modell besitzt allerdings nachteilige Auswirkungen auf die Anforderungen hinsichtlich der Vertrauenswürdigkeit der Authentication-Authority: Im Fall der Generierung der kurzlebigen Authentifikationsschlüssel durch den Client stellt die SAMLized Kerberos-Authority eine conditionally trusted third party (vgl. [MOV97]) für asymmetrische Schlüsselassoziationen zwischen Client und Target-Server dar, während sie eine unconditionally trusted third party für symmetrische Schlüsselassoziationen bildet. Im Fall der Generierung der kurzlebigen Authentifikationsschlüssel durch die SAMLized Kerberos-Authority stellt die SAMLized Kerberos-Authority sowohl für symmetrische als auch für asymmetrischer Schlüsselassoziationen eine unconditionally trusted third party dar. 305

4.5 Identity-Federation Hierfür wird angenommen, dass ein Anwender unterschiedliche Identitätsmerkmale ID- A bzw. ID-A* in der Sicherheitsdomäne der SAMLized Kerberos-Authority bzw. des Target-Servers besitzt (vgl. Abbildung 1). ID-A sowie ID-A* repräsentieren jeweils Identitätsattribute, die das Subjekt in der betreffende Sicherheitsdomäne darstellen. Ist die betreffende Identitätsassoziation der SAMLized Kerberos-Authority etwa durch ein Mapping oder eine Referenz bekannt, so erlaubt die Ausdrucksfähigkeit von SAML die Darstellung der entsprechenden Indirektion zwischen den Protokollphasen 1 und 2. Hierfür können AuthenticationStatement- sowie AttributeStatement- Elemente eingesetzt werden. Dies erlaubt die Unterstützung von Szenarien, bei denen Produzenten sowie Konsumenten von Authentifikationsaussagen zu unterschiedlichen Sicherheitsdomänen gehören. 5 Leistungsmerkmale Dieser Abschnitt untersucht SAMLized Kerberos-Leistungsmerkmale im Vergleich zu den SAML-Web-SSO-Profilen, den Liberty-Alliance-Spezifikationen sowie Kerberos. 5.1 Vs. SAML-Web-SSO sowie Liberty-Alliance Die SAML-Web-SSO-Profile beschreiben ein 3-Parteien-Authentifikationssystem mit einer Online-Authentication-Authority. Sie ermöglichen ein domänenübergreifendes Web-SSO sowie Identity-Federation auf Basis von administrativ eingerichteten Mappings zwischen den Subjekt-Identitätsmerkmalen in den jeweiligen Domänen. Zum Transfer einer Identitätsassoziation können AuthenticationStatement- sowie AttributeStatement-Elemente eingesetzt werden. Die Liberty-Alliance (www.project-liberty.org; vgl. [Lap03]) spezifiziert ein Protokoll- Framework für Identity-Federation. Dieses beschreibt ein 3-Parteien-Authentifikationssystem auf der Basis von SAML. Liberty-Alliance erweitert hierfür die SAML-Web- SSO-Profile, um die aktive Beteiligung des Anwenders im Rahmen einer Account- Federation (anstelle administrativer Einrichtung) zu ermöglichen. Die Identitätsassoziation wird hierbei durch eine Referenz im Rahmen eines SAML- AuthenticationStatement-Elementes transportiert. SAMLized Kerberos unterscheidet sich von den SAML-Web-SSO-Profilen sowie Liberty-Alliance durch den expliziten Berechtigungsnachweis für Authentifikationsaussagen. Während das Sicherheitsmodell von SAMLized Kerberos auf der kryptographischen Bindung von Authentifikationsaussagen an berechtigte Systemteilnehmer beruht, basieren die Sicherheitsarchitekturen der SAML-Web-SSO-Profile sowie der Liberty-Alliance-Spezifikationen nicht auf dem Beweis-Modell, also dem expliziten Berechtigungsnachweis für Authentifikationsaussagen. 306

5.2 Vs. Kerberos Kerberos (vgl. [Krb93]) spezifiziert ein 3-Parteien-Authentifikationssystem mit einer Online-Authentication-Authority, dessen Sicherheitsarchitektur das Beweis-Modell zugrunde liegt. SAMLized Kerberos unterscheidet sich von Kerberos durch folgende Eigenschaften: Erstauthentifikation: Kerberos unterstützt für die initiale Authentifikation des Clients gegenüber der Kerberos-Authority lediglich Verfahren, die Kerberos selbst definiert. SAMLized Kerberos definiert die Erstauthentifikation nicht und unterstützt beliebige Verfahren für die initiale Client-Authentifikation. Kerberos ermöglicht zudem keine Bereitstellung von Metadaten zur Erstauthentifikation für den Target-Server, etwa Angaben zu Authentifikationsverfahren, -algorithmen, -schlüsselstärken. SAMLized Kerberos unterstützt die Bereitstellung solcher Metadaten. Kryptographische Verfahren: Kerberos unterstützt asymmetrische Schlüsselassoziationen lediglich zwischen Client und Kerberos-Authority. SAMLized Kerberos unterstützt symmetrische sowie asymmetrische Schlüsselassoziationen zwischen allen betrachteten Instanzen. Kerberos basiert darüber hinaus auf der Verwendung von Verschlüsselungsprimitiven zur Realisierung von Authentifikationsdiensten. SAMLized Kerberos verwendet hierfür Authentifikationsprimitive. Big Brother -Eigenschaft: Durch die zentrale Schlüsselgenerierung stellt Kerberos stets eine unconditionally trusted third party dar. SAMLized Kerberos kann Architekturen realisieren, in denen die SAMLized Kerberos- Authority eine conditionally trusted third party repräsentiert. Identity-Federation: Kerberos ermöglicht keine Indirektion hinsichtlich der Subjekt-Identität zwischen den Kommunikationsbeziehungen eines Clients mit einer Kerberos-Authority sowie einem Target-Server. Das bedeutet, dass Kerberos keine Identity-Federation realisiert. SAMLized Kerberos unterstützt Identity-Federation. 6 Fazit Der vorliegende Beitrag hat eine SAML-Erweiterung vorgestellt, welche ein 3-Parteien- Authentifikationssystem mit einer Online-Authentication-Authority realisiert. Dieses Authentifikationssystem basiert auf dem dedizierten Berechtigungsnachweis für die Nutzung von Authentifikationsaussagen auf Basis kryptographischer Mechanismen und ermöglicht Identity-Federation. Die Leistungsmerkmale dieses Verfahrens unterscheiden sich von denen der SAML- Web-SSO-Profile bzw. Liberty-Alliance sowie Kerberos: 307

Gegenüber den SAML-Web-SSO-Profilen sowie Liberty-Alliance differenziert sich das vorgestellte System hinsichtlich des zugrundeliegenden Sicherheitsmodelles, das den Nachweis einer berechtigten Nutzung für Authentifikationsaussagen erfordert. Gegenüber Kerberos differenziert sich das vorgestellte System durch die Unterstützung von Identity-Federation, geringere Anforderungen an die Vertrauenswürdigkeit der Authentication-Authority, größere Flexibilität hinsichtlich nutzbarer kryptographischer Verfahren sowie in Bezug auf die mit den SAML-Protokolldaten verfügbaren Metadaten. Das in diesem Beitrag vorgestellte Authentifikationssystem zeigt die Verwendung von SAML-Authentication-Assertion-Elementen im sogenannte Beweis-Modell, das einen expliziten Berechtigungsnachweis für Authentifikationsaussagen erfordert: Die SAML-Spezifikation erlaubt Berechtigungsnachweise für die Nutzung von Sicherheitsaussagen über das SubjectConfirmation-Element, ohne aber selbst solche zu definieren. Das betrachtete 3-Parteien-Authentifikationssystem erweitert SAML um einen zusätzlichen Query-Typen sowie einen Berechtigungsnachweis für AuthenticationStatement-Elemente. Für die Realisierung von SAMLized Kerberos sind die Leistungsmerkmale von XML-Signature sowie XML-Encryption fundamental wichtig. Das Protokoll-Layout, das SAMLized Kerberos zugrunde liegt, erlaubt verschiedene Design-Alternativen und Erweiterungen. Dies betrifft insbesondere den Typ des Authentifikationsprotokolles sowie die Konstruktion der Authentifikationsinformation, die zwischen Client und Target-Server ausgetauscht wird. Mit den vorgestellten Techniken ist auch die Umsetzung von Sicherheitsarchitekturen möglich, die ein Beweis-Modell für Sicherheitsnachrichten auf Basis von AttributeStatementoder AuthorizationDecisionStatement-Elementen erfordern. Literaturverzeichnis [Krb93] The Kerberos Network Authentication Service (V5). IETF RFC 1510, 1993, ftp://ftp.isi.edu/in-notes/rfc1510.txt [Lap03] Liberty ID-FF Protocols and Schema Specification Version 1.2. Liberty Alliance Project, 2003. http://www.project-liberty.org/specs/liberty-idff-protocols-schema-v1.2.pdf [MOV97] Menezes, A.J., van Oorschot, P.C., Vanstone, S.A.: Handbook of Applied Cryptography. CRC Press 1997 [Saml03] Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML) V1.1. OASIS Standard, 2003. http://www.oasis-open.org/committees/download.php/ 3406/oasis-sstc-saml-core-1.1.pdf [Xenc02] XML Encryption Syntax and Processing. W3C Recommendation, 2002. http://www.w3.org/tr/xmlenc-core [Xsig02] XML-Signature Syntax and Processing. W3C Recommendation, 2002. http://www.w3.org/tr/xmldsig-core 308