Indhold
Introduktion
Certificate Revocation Authority (CRA) er et tool til NSP platformen der er ansvarlig for at opretholde en database med informationer om de certifikater der er trukket tilbage af udstederen. Databasen skal replikeres til alle NSP miljøer således at data er tilgængelig for SecurityValve og SecurityHandler. CRA er udviklet som en J2EE web applikation og anvender Spring til konfiguration og skedulering. Konfigurationsfilerne er specifikke for JBoss8/Wildfly som skal anvendes. Servicen kan også hente Intermediate CA certifikater, som kan anvendes af SEAL istedet for online adgang til disse.
Begreber
- Certificate Authority (CA)
En udsteder af X.509 certifikater. Nets og TDC er eksempler på CA’er. En CA har et enkelt rod CA certifikat og muligvis flere intermediate CA certificater som bruges til at udstede slutbruger-certifikater. - Certificate Revocation
Tilbagekaldelse af et certifikat. Hvis et certifikat bliver kompromiteret kan det stadig anvendes på grund af den struktur som X.509 certifikater har. En CA vælger derfor at tilbagekalde et certifikat hvis det er nødvendigt. - Certificate Revocation List (CRL)
En liste af tilbagekaldte certifikater. Listen vedligeholdes og offentliggøres af en CA. Det er op til CA’en hvor mange forskellige CRL’er der indgår i infrastrukturen. Et certifikat udsted af en OCES CA, indeholder en URL til den CRL som certifikatet vil optræde på hvis det tilbagekaldes. - Certificate Revocation Source (CRS)
Boostrapping af CRA sker ved at angive et antal CRS’er, der til sammen indeholder alle de CRL’er der ønskes monitoreret i infrastrukturen. En CRS indeholder en eller to URL’er til CRL’er (en hvis der er tale om et OCES1 certifikat og 2 hvis det er et OCES2 certifikat) samt den certifikatkæde der knytter CRL’erne til NSP/OCES
Algoritme
For hver CRS som CRA er konfigureret med, hentes der en eller to CRL’er som gemmes i databasen. CRA verificerer først at CRS’en indeholder en valid OCES certifikatkæde og tjekker derefter om der er ændringer til CRL’erne. CRL’erne downloades, deres signatur verificeres og de tilbagekaldte serienumre gemmes i databasen. Hvis et af CA certifikaterne tilbagekaldes vil dette blive markeret i databasen således at alle certifikater, der peger på den tilhørende CRL, tilbagekaldes. Intermediate CA certifikaterne hentes fra listen af konfiguerede en ad gangen. Kan et ikke skaffes stopper indlæsningen ved denne og de efterfølgende forsøges ikke hentet.
Databasen
CRA har et relativt simpelt databaselayout bestående af tre tabeller. En tabel med CRL endpoints, en tabel med revokerede certifikater og en tabel med Intermediate CA certifikater.
Endpoints
Tabellen crl har følgende felter:
- id
Teknisk identifikation af rækken - Allokeres automatisk af MySQL. - url
Det endpoint hvor en CRL hentes fra. - lastmodified
Opdateres med et nyt timestamp hver gang CRL’en downloades fra endpointet. - nextupdate
Det tidspunkt (timestamp) den sidst hentede version af CRL’en er gyldig til.
Revokeringer
Tabellen revoked har følgende felter:
- id
Teknisk identifikation af rækken - Allokeres automatisk af MySQL. - crlid
Teknisk identifikation af den række fra tabellen crl som denne revokering kommer fra. - serialnumber
Serienummerer på det certifikat der er trukket tilbage. - added
Det tidspunkt (timestamp) rækken blev tilføjet til tabellen. - since
Det tidspunkt (timestamp) revokeringen trådte i kraft.
Hvis en CRL er udstedt af en CA og denne CA trækkes tilbage, så vil alle dens rækker i revoked blive slettet og en enkelt række med NULL i serialnumber vil blive oprettet. Et certifikat skal derfor betragtes som trukket tilbage hvis dets CRL endpoint findes i crl og dets serienummer findes i revoked eller der findes en række med serienummeret NULL.
CA certifikater
Tabellen caintermediate har følgende felter:
- id
Teknisk identifikation af rækken - Allokeres automatisk af MySQL. - url
Det endpoint hvor et certifikat hentes fra. certificate
Det hentede certifikat, base64 encodedlastmodified
Det tidspunkt recorden er sat ind i databasen