Praktisch alle Anwendungen, die eine Authentifizierung über X.509 Zertifikate unterstützen, sind damit realisierbar.
Apache httpd
Einfach SSL Client Authentifizierung aktivieren:
SSLVerifyClient require
SSLRequireSSLNginx
Selbstverständlich geht das auch mit Nginx.
ssl_client_certificate /usr/local/nginx/conf/ssl/ca.crt;
ssl_verify_client optional;
location /admin {
  if ($ssl_client_verify != SUCCESS) {
  return 403;
  break;
  }Mit diesem Config Beispiel ist der Zugang zum Pfad Admin nur möglich, wenn ein mit einem Client Zertifikat Zertifikat authentifiziert wurde, das von der in ca.crt definierten CA signiert wurde.
SSH
Das X.509 Client Zertifikat findet auch hier Verwendung, zunächst wird der Public Key benötigt.
ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.soDamit werden alle Public Keys, die OpenSSH erkennt, im OpenSSH Format ausgegeben. Damit
man nich jedes Mal die pkcs11 Lib manuell angegben werden muss, sollte in der Datei
~/.ss/config folgender Eintrag vorgenommen werden:
Host *
    ForwardX11 yes
    Ciphers aes256-ctr
    PKCS11Provider /usr/lib64/p11-kit-proxy.soDamit wird automatisch immer das Token verwendet, wenn vom Server ein entsprechender
Key angefordert wird.
Curl
Gerade im Umfeld von Microservices und Zero-Trust stellt sich die Frage, wie man die Zugangsdaten der Microservices untereinander absichert. Auch hier können Smartcards oder HSM eine Lösung sein.
curl \
  --location \
  --verbose \
  --key 'pkcs11:token=SmartCard-HSM%20(UserPIN);id=%8E%A2%E9%94%17%5B%47%9D%99%18%76%3E%CA%83%08%29%B5%A5%3C%6D;type=private?pin-value=111111' \
  --cert 'pkcs11:token=SmartCard-HSM%20(UserPIN);id=%8E%A2%E9%94%17%5B%47%9D%99%18%76%3E%CA%83%08%29%B5%A5%3C%6D;type=cert' \
  https://example.com/admin/In diesem Beispiel wird für die Authentifizierung in Curl ein Client Zertifikat genutzt, das sich auf einer Smartcard befindet.
      
Kommentare