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#
SPNEGO#
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:
Certificates erzeugen#
Client Authentication Certificate#
http://www.impetus.us/~rjmooney/projects/misc/clientcertauth.htmlSSL 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"