RAOs kunnen inloggen met een SCM gebruikersnaam en wachtwoord, of via SURFconext. Dat laatste heeft de voorkeur en bied ook de mogelijkheid om 2FA af te dwingen. Voor accounts die inloggen door middel van een wachtwoord kan een persoonscertificaat als tweede factor worden gebruikt, bij voorkeur opgeslagen op beveiligde hardware. Het is ook mogelijk om een persoonscertificaat in de browser op te slaan, maar zeker indien je ook de wachtwoordmanager van de browser gebruikt voegt dit geen factor toe.

Stappen

  1. Genereer een persoonscertificaat
    • Dit certificaat moet uitgegeven zijn door Sectigo (anders wordt het niet herkend in SCM). Bovendien moet het email adres in het certificaat overeenkomen (hoofdlettergevoelig) met het email adres van het RAO account.
    • Het aanvragen van persoonscertificaten kan via een enrollment form in SCM, via de REST API, of (als je kan inloggen met SURFconext) via de portal
      • Het is mogelijk om hiervoor een 'email signing and encryption' certificaat te gebruiken. 'Personal Authentication' werkt niet, omdat het certificaat moet zijn uitgegeven door Sectigo's publieke CA.
  2. Activeer het client certificate voor toegang tot SCM voor het RAO account. Dit kan een andere beheerder dan jijzelf in SCM door de settings voor het RAO account aan te passen. Ga naar SettingsAdmins → <RAO account> → EditAuthentication. Selecteer bij Client Certificate het Serial Number (16 bytes, hexadecimaal) van het certificaat dat gebruikt moet worden.

Let op:

  • Denk er aan om het serial aan te passen indien een nieuw persoonscertificaat wordt aangevraagd!
  • Authenticatie met het persoonscertificaat wordt alleen afgedwongen wanneer wordt ingelogd met een Sectigo gebruikersnaam en wachtwoord, niet bij SURFconext login.


Persoonscertificaat op een Yubikey

LET OP! Tot op heden hebben we GEEN goede ervaringen met het opslaan van je persoonscertificaat op een Yubikey. In sommige gevallen werkt het altijd, andere gevallen werkt het soms, en weer andere gevallen werkt het helemaal niet. Daarom raden we deze oplossing ten zeerste af. Als je ervaring hebt opgedaan hoe dit op een stabiele manier te gebruiken, dan horen we dat uiteraard graag!

Indien je zowel je wachtwoord voor SCM als het persoonscertificaat in de browser opslaat is er feitelijk geen sprake van een tweede factor. We raden daarom ten sterkste aan om óf een losse wachtwoordmanager te gebruiken óf een persoonscertificaat op een HSM/YubiKey te gebruiken.

Yubikeys (zoals de NEO en de 4/5 series) kunnen gebruikt worden voor het veilig opslaan van persoonscertificaten een bijbehorende sleutels op basis van de PIV applet op die keys, via de USB CCID (smartcard) interface.

Het activeren van de CCID interface en het genereren van certificaten kan met door Yubico geleverde tools:

De versies in linux distributies zijn vaak niet de meest recente. Voor Ubuntu is een Personal Package Archive beschikbaar met de laatste versies.

Je kunt een bestaand certificaat met bijbehorende private sleutel importeren vanaf een PKCS#12 bestand, maar voor 2-factor-authenticatie is het beter de sleutels te genereren op de yubikey zelf.

Yubikey prepareren

Voordat je de Yubikey kunt gebruiken zul je deze moeten personaliseren door de PIN en de management key aan te passen.

  • De default PIN code is 123456. De default PUK code is 12345678.
  • De default management key is 010203040506070801020304050607080102030405060708.

NB: PIN hoeft niet numeriek te zijn!

Gebruik hiervoor de GUI (Yubikey Manager) of de command line tool (ykman).

Yubikey prepareren
# check if the PIV applet is enabled
$ ykman info
Device type: YubiKey 5C
Serial number: 10174716
Firmware version: 5.1.2
Form factor: Keychain (USB-C)
Enabled USB interfaces: OTP+FIDO+CCID

Applications
OTP     	Enabled	
FIDO U2F	Enabled	
OpenPGP 	Enabled	
PIV     	Enabled	
OATH    	Enabled	
FIDO2   	Enabled	

# if not, enable PIV
$ ykman config usb --enable PIV
Enable PIV.
Configure USB interface? [y/N]: y

# change the PIN
$ ykman  piv change-pin
Enter your current PIN: 123456
Enter your new PIN: ******
Repeat for confirmation: ******
New PIN set.

# change management key (3DES, i.e. 24 byte hex string)
$ ykman  piv change-management-key
Enter your current management key [blank to use default key]: 010203040506070801020304050607080102030405060708
Enter your new management key: ************************************************
Repeat for confirmation: ************************************************

Zie ook:

Certificaat installeren

Het installeren van het certificaat bestaat uit de volgende stappen:

  1. genereer sleutels op het token
  2. genereer een CSR op het token voor de gegenereerde sleutels
  3. vraag een certificaat aan op basis van de CSR
  4. importeer het certificaat op het token

Gebruik hiervoor de GUI (Yubikey Manager) of de command line tool (ykman).

PIV kent een aantal verschillende slots om certificaten en keys in op te slaan. Gebruik voor authenticatie slot 9a. Dit slot is bedoeld voor authenticatie (waarbij de PIN eenmalig bij inloggen wordt gevraagd).

Certificaat installeren op een yubikey
# generate RSA key pair on device, store public key in file public_key.pem
$ ykman piv generate-key 9a public_key.pem
Enter a management key [blank to use default key]: ************************************************

# generate CSR containing public key
$ ykman piv generate-csr -s dummy 9a public_key.pem csr.pem
Enter PIN: ******

# have your CA issue the cert, store in the file cert.pem, then import this certificate
$ ykman piv import-certificate 9a cert.pem 
Enter a management key [blank to use default key]: ************************************************

# check the result
$ ykman piv info
PIV version: 5.1.2
PIN tries remaining: 3
CHUID:	544f5e9e7c861eeb9a3fb33b11947030c389d11ba722ba2b6a170db6d3b4abc822c35dd98d3880c4118013f766b0f75058d5058514cc96c7886079
CCC: 	No data available.
Slot 9a:
	Algorithm:	RSA2048
	Subject DN:	O=Example Org,C=NL,CN=John Doe,1.2.840.113549.1.9.1=jd@example.edu
	Issuer DN:	C=NL,O=GEANT Vereniging,CN=GEANT Personal CA 4
	Serial:		27835300298793449651833267015920948735
	Fingerprint:	7929996d570ea256eca021e894293cd89d8853594323669bc120e135ed99ec18
	Not before:	2020-04-16 00:00:00
	Not after:	2021-04-16 23:59:59

Certificaat op je Yubikey gebruiken in je browser

De slots op je Yubikey met daarin opgeslagen sleutels en certificaten kunnen worden gebruikt vanuit je browser via PKCS#11, een standaard API voor het gebruik van cryptografische hardware.

Yubico levert hiervoor de driver YKCS11, die de PKCS#11 functies vertaalt naar PIV APDUs. Deze driver heet libykcs11 en wordt geïnstalleerd met samen met yubico-piv-tool.

Firefox

In Firefox is het mogelijk een PKCS#11 module te laden. via Preferences | Privacy & Security | Security Devices...

Zie hiervoor de documentatie van Yubico Adding YKCS11 Security Device.

Overige tokens of browsers

Vraag certificaten-beheer@surf.nl.


  • No labels