Kort introduktion til service

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 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.

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 tilbagkaldne 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
Komponent og versioner

Se leverancebeskrivelse

Kontaktoplysninger, servicebeskrivelse og testforhold
CRA er udviklet, driftet og vedligeholdt af SDS, og alle henvendelser skal foregå gennem National Servicedesk.

Detaljer omkring servicen er beskrevet i guide til anvenderere og test af servicen er beskrevet i testvejledningen.

Leverancer

Release 1.1.14

Indeholder rettelser til QA kommentarer til:

Release 1.1.13

Release 1.1.12

(fejlrettelser)

Rettelsen i services.xml fra release 1.1.10 er trukket tilbage.

Release 1.1.11

Rettelse til release 1.1.10, da nogle ændringer fra SDS-4328 og SDS-4202 var faldet ud af releasen.

Release 1.1.10

Findings fundet ifm. brug af CRA på KIH rettet.

Der er også fundet en uhensigtsmæssighed ifm. et af oprydningsjobbene, cleanIfGhostSerialNumberActivated, som gør at dette oprydningsjob ikke bør aktiveres.

Ændringer til konfiguration:

I filen services.xml er rettet følgende. cleanIfGhostSerialNumberActivated er sat til false og checkDatabaseConnection er tilføjet:

<bean id="certificateRevocationCleanUp" class="dk.nsi.nsp.cra.CertificateRevocationCleanUpImpl">
	    <constructor-arg ref="certificateRevocationStoreDatabase"/>
        <constructor-arg ref="certificateRevocationSources"/>
        <constructor-arg ref="status"/>
        <!--  Activate cleanup functionality -->
        <property name="cleanActivated" value="true" />
        <property name="cleanIfRootExpiredActivated" value="true" />
        <property name="cleanIfIntermediateExpiredActivated" value="true" />
        <property name="cleanIfGhostUrlActivated" value="true" />
        <!-- Sat til false, da den bruger al CPU hvis aktiveret -->
        <property name="cleanIfGhostSerialNumberActivated" value="false" />
        <!-- Tilføjet i forbindelse med KIH rettelserne -->
        <property name="checkDatabaseConnection" value="true" />
    </bean>


Release 1.1.9

Release 1.1.8

CRA er blevet opdelt i maven-moduler.

Rettet  følgende:

<bean id="certificateRevocationStoreDatabase" class="dk.nsi.nsp.cra.db.DBCertificateRevocationStoreImpl" init-method="init">
	<constructor-arg ref="cra.db"/>
	<property name="rewriteBatchedStatements" value="true"/>
	<property name="cleanupSerialNumbersBatchSize" value="500"/>
	<property name="initialWaitForDatabaseConnection" value="20000"/>
	<property name="retriesWhenDatabaseConnectionFail" value="6"/>
	<property name="waitBetweenDatabaseConnectionRetries" value="5000"/>
</bean>
<task:scheduled-tasks scheduler="scheduler">
	<!--  Execute  dk.nsi.nsp.cra.CertificateRevocationAuthorityImpl.update -->
	<!--  initial-delay: milliseconds until first run (1 minutes)-->
    <!--  fixed-delay: 30 minutes-->
    <task:scheduled ref="certificateRevocationAuthority" method="update" initial-delay="60000" fixed-delay="1800000"/>

    <!--  Execute  dk.nsi.nsp.cra.CertificateRevocationCleanUpImpl.cleanup -->
    <!--  initial-delay: milliseconds until first run (2 minutes)-->
    <!--  fixed-delay: milliseconds until next run from completion of previous run (1 min)-->
   	<task:scheduled ref="certificateRevocationCleanUp" method="cleanup" initial-delay="120000" fixed-delay="60000"/>
</task:scheduled-tasks>

Release 1.1.7

Release 1.1.6

Tilføjet følgende:
<property name="cleanupSerialNumbersBatchSize" value="500"/>

til certificateRevocationStoreDatabase-bean i services.xml.

Release 1.1.5

Leverancen er tagget som release-1.1.5.

Rettelse af kode efter finding ved release.

Parameter til aktivering af oprydning af udløbet rod-certifikat var ikke stavet ens i opsætning og i koden. Ændret værdien fra "cleanIfRootExpiredActivate" til "cleanIfRootExpiredActivated" i koden.

Release 1.1.4

Leverancen er tagget som release-1.1.4.

Rettelse af kode efter QA findings:

Release 1.1.3

Leverancen er tagget som release-1.1.3.

Følgende JIRA sager indgår i leverancen.