Auf dieser Seite ist Wissen rund um Secure Socket Layer (SSL), TSL, TSL2, Zertifikate (Certificates), Digitale Signatur, Server- und Client-Zertifikate, Smart-Cards und ähnlichen Themen gespeichert. !!!Microsoft Smartcards might use Kerberos V5 authentication with X.509 v3 certificates. (Kann auch NTLM genutzt werden?) !!Links * [http://technet.microsoft.com/en-us/library/cc780170(v=ws.10).aspx] * [http://technet.microsoft.com/en-us/library/bb457114.aspx] !!NTLM * [http://davenport.sourceforge.net/ntlm.html] !!SPNEGO * [http://msdn.microsoft.com/en-us/library/ms995330.aspx] !!!Kerberos v5 Dieses Verfahren unterstützt Public-Private-Challenges, Smart-Card-Authentification und digitale Signatur. In Java steht dafür das GSS-System zur Verfügung, der Einstiegspunkt ist GSSManager.getInstance(). Die kryptographischen Verfahren werden durch OIDs ausgewählt: {{{ Oid krb5 = new Oid("1.2.840.113554.1.2.2"); Oid spnego = new Oid("1.3.6.1.5.5.2"); }}} Server-Credentials erzeugen: {{{ GSSCredential credentials = manager.createCredential(null, GSSCredential.DEFAULT_LIFETIME, spnegoMechOid, GSSCredential.ACCEPT_ONLY); }}} !!Links * [http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html] * [http://thejavamonkey.blogspot.de/2008/04/clientserver-hello-world-in-kerberos.html] * [https://forums.oracle.com/message/6387090] * [http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.zseries.doc%2Finfo%2Fzseries%2Fae%2Frsec_SPNEGO_config_krb5.html] * [http://s2.diffuse.it/blog/show/6602-SPNEGO_authentication_and_credential_delegation_with_Java] Mit Kerberos v5 können komplexe Protokolle realisiert werden, allerdings nur mit entsprechender Konfiguration. Es besteht die Möglichkeit, die Parameter durch System-Properties in Java zu setzen oder in einer krb5.conf festzulegen: * [http://stackoverflow.com/questions/1431999/java-and-kerberos-authentication-krb5-conf-versus-system-setproperty] !!!Certificates erzeugen !!Client Authentication Certificate [http://www.impetus.us/~rjmooney/projects/misc/clientcertauth.html] !!!SSL Zertifikate für Apache Um ein Zertifikat zu beantragen, sind zunächst 2 Dateien zu erzeugen: * __ssl.key:__ Ein Private-Key, der wiederverwendet werden kann * __ssl.csr:__ Ein Certificate Service Request, der wiederverwendet werden kann Damit läd man dann den eigentlichen Key von der Certificate Authority herunter: * __ssl.crt:__ Ein Key, der nur zusammen mit dem Private-Key ssl.key verwendet werden kann * __sub.class1.server.ca.pem:__ Ein Indermediate Key, der von der Certificate Authority unterschrieben ist * __ca.pem:__ Der Root Certification Authority key !!!Apache SSL Die Keys werden in der httpd.conf eingetragen: {{{ SSLCertificateFile "D:/ssl.crt" SSLCertificateKeyFile "D:/ssl.key" SSLCertificateChainFile "D:/sub.class1.server.ca.pem" SSLCACertificateFile "D:/ca.pem" }}}