PKI in the Enterprise

Door Equator op donderdag 06 maart 2008 20:23
Categorie: Work, Views: 1774

Voorbeeld van een implementatie van PKI in een middelgrote tot grote omgeving



In deze posting wil ik een soort best-practice configuratie beschrijven van een Microsoft Enterprise CA voor de volgende doelen:
  • Smartcard Logon
  • Secure E-Mail
  • EFS
Hiervoor hebben we in ieder geval 1 ding nodig, en dat is een Microsoft Windows Server 2003 Enterprise Edition.
Technisch gezien kunnen we ook gebruik maken van een Standard Edition van MS Windows Server 2003, maar de Enterprise Edition geeft ons net wat meer mogelijkheden als het gaat om Certificate Templates

Installatie
We zullen de Microsoft Certificate Services moeten installeren indien deze nog niet geinstalleerd staan. Tijdens de installatie kunnen we kiezen voor een 4tal verschillende opties:
  • Stand Alone Root CA
  • Stand Alone Sub-ordinate CA
  • Enterprise Root CA
  • Enterprise Sub-ordinate CA
Tenzij je reeds een andere Root CA hebt kan je hier kiezen voor de "Enterprise Root CA". Heb je reeds een bestaande RootCA, kies dan voor de "Enterprise Sub-ordinate CA".

Er is een mogelijkheid om te kiezen of je gebruik wilt maken van de geavanceerde opties. Kies voor de geavanceerde opties. Nu kun je kiezen welke Certificate Store je wilt gebruiken, maar vooral hoe groot je Root CA Sleutel moet worden. Standaard is dit 1024 bytes. Zet deze op 2048 of 4096. 4096 bytes maakt de sleutelset groter, en dus moeilijker te kraken. (Als hij al te kraken is ;) )

Geef een nette "Common Name" op voor de Root CA en definieer een geldigheidsperiode van ten minste 5 jaar.

De Certificate Services worden nu geinstalleerd.

Wanneer de installatie afgerond is, starten we de Certificate Authority Management Console via de Admninistrative Tools.


Security Groups
Omdat we niet zomaar iedereen de mogelijkheid willen geven om gebruik te maken van de verschillende certificaten, dienen we enkele Security Groepen te creeren in de Active Directory.
Ik laat een ieder de keuze over de naamgeving, maar voor hen die geen fantasie hebben
  • G_CERT_SMARTCARD
  • G_CERT_SECUREMAIL
  • G_CERT_EFS
Deze groepen gaan we verderop gebruiken om de toegang tot de Certificate Tempates te definieren.

Automatisch uitrollen van Certificaten
Voordat we verder gaan, moeten we 1 belangrijke instelling zetten.
  • Klik met de rechtermuisknop op de Naam van de Root CA in de Certificate Authority Management Console en klik op "Properties"
  • Selecteer het tabblad "Policy Module"
  • Klik op "Properties"
  • Selecteer de onderste optie (Automatically issue the certificate)
  • Klik 2 keer op "OK"
Configureren van de Certificate Templates
Klap de boomstructuur open en open het mapje "Certificate Templates".
Na een standaard installatie van de Microsoft Certificate Services staan er verschillende Certificate Templates gedefinieerd die gebruikt kunnen worden tijdens een aanvraag. Dit zijn echter de standaard Microsoft Templates, en die willen we juist niet hebben

Selecteer al deze templates, en verwijder deze door met de rechtermuisknop er op te klikken en de kiezen voor "Delete".

Nu hebben we de uitgangssituatie die we willen hebben.

Voor elk van de bovenstaande doelen gaan we een eigen template maken. Hiervoor moeten we de "Certificates Template" MMC plugin hebben welke te starten is via de rechtermuisknop in het - nu lege - vak van de

Certificate Templates, en te kiezen voor "Manage"

In de Certificate Templates Management Console staan alle beschikbare Templates die aangezet kunnen worden om uit te rollen.
In deze lijst staat een Template met de naam "Smartcard Logon". Deze Template gaan we gebruiken om ons eigen SmartCard Logon Template te bouwen. Let er op dat je niet gebruik maakt van de bestaande Template "SmartCard User" want deze willen we niet gebruiken. Deze bevat namelijk ook een optie voor "Secure E-Mail", en in dit voorbeeld wil ik dit uit elkaar houden.

Selecteer de Template en klik er op met de rechtermuisknop. Kies uit het context-menu de optie "Duplicate Template"
  • Verander de Template Display Name Naar iets herkenbaars. Wederom, voor diegene zonder fantasie: "<BEDRIJFSNAAM> Smartcard Logon"
  • Ga naar het Tabblad "Request Handling"
  • Verander de Purpose naar "Signature & Smartcard Logon"
  • Verander de minimum Key Size naar "2048"
  • Ga naar het Tabblad "Security"
  • Verwijder de group "Authenticated Users"
  • Voeg de Security groep toe die we eerder gemaakt hebben. (G_CERT_SMARTCARD)
  • Geef deze groep de rechten: Read, Enroll rechten.
  • Klik op "OK"
Iets dergelijk gaan we doen voor ons Secure E-mail Template. Echter hiervoor kopieren we de "User" template.
Selecteer de Template en klik er op met de rechtermuisknop. Kies uit het context-menu de optie "Duplicate Template"
  • Verander de Template Display Name Naar iets herkenbaars. Wederom, voor hen VB: "<BEDRIJFSNAAM> Secure E-Mail"
  • Ga naar het Tabblad "Request Handling"
  • Verander de minimum Key Size naar "2048"
  • Ga naar het Tabblad "Subject Name"
  • Verander het Subject Name Format naar "Common Name"
  • Ga naar het Tabblad "Extensions"
  • Selecteer "Application Policies"
  • Klik op de knop "Edit"
  • Verwijder alles behalve "Secure E-Mail"
  • Ga naar het Tabblad "Security"
  • Verwijder de group "Authenticated Users"
  • Voeg de Security groep toe die we eerder gemaakt hebben. (G_CERT_SECUREMAIL)
  • Geef deze groep de rechten: Read, Enroll, Auto-Enroll rechten.
  • Klik op "OK"
Voor ons laatste template (EFS) doe we wederom vrijwel hetzelfde.
Selecteer de "User" Template en klik er op met de rechtermuisknop. Kies uit het context-menu de optie "Duplicate Template"
  • Verander de Template Display Name Naar iets herkenbaars. Wederom, voor diegene zonder fantasie: "<BEDRIJFSNAAM> EFS"
  • Ga naar het Tabblad "Request Handling"
  • Verander de minimum Key Size naar "2048"
  • Ga naar het Tabblad "Subject Name"
  • Verander het Subject Name Format naar "Common Name"
  • Ga naar het Tabblad "Extensions"
  • Selecteer "Application Policies"
  • Klik op de knop "Edit"
  • Verwijder alles behalve "Encrypted File System"
  • Ga naar het Tabblad "Security"
  • Verwijder de group "Authenticated Users"
  • Voeg de Security groep toe die we eerder gemaakt hebben. (G_CERT_EFS)
  • Geef deze groep de rechten: Read, Enroll, Auto-Enroll rechten.
  • Klik op "OK"
Zoals je gezien hebt gaan we SmartCard Logon Certificates niet automatisch enrollen. Deze certificaten willen we rustig uit kunnen rollen.


Certificaten "enablen" voor uitgifte
Sluit het Certificate Templates Mangement Console, en breng de Certificate Authority Management Console naar voren. Klap - indien deze niet open staat - de map Certificate Templates open.

We hebben nu geen enkel Certificate Template in onze lijst staan.
Hier gaan we de door ons gemaakte Templates in plaatsen, door met de rechtermuisknop in het lege veld te klikken, en te kiezen voor: New -> Certificate Template to issue.
Kies uit de lijst de door ons gemaakte Templates (Je kan er meerdere selecteren door de Ctrl toets ingedrukt te houden) en klik op "OK"

N.B. Kom je nu tot de ontdekking dat je de door ons gemaakte Certificaten niet kan vinden, dan moet ik je telerustelen. Je hebt naar alle waarschijnlijkheid geen Windows Server 2003 Enterprise Edition. Je kan alleen de bestaande Templates selecteren. Dit werkt nog steeds, echter kan je wat lastiger een scheiding maken tussen de verschillende toepassingen..


Auto-Enroll aanzetten
We gaan nu ervoor zorgen dat voor de gebruikers uit de Security Group G_CERT_SECUREMAIL & G_CERT_EFS de certificaten automatisch uitgerold worden. Dit doen we met een Group Policy Object.

Let erop dat je dit niet meteen voor alle gebruikers aanzet, maar eerst een aantal testgebruikers. Hou de Security Group dus klein.

Maak een aparte GPO aan, waarin je op User Configuration >> Windows Settings >> Security Settings >> Publik Key Policies: Autoenrollment Settings de volgende settings definieerd:
Enroll Certificates Automatically
x Renew expired Certificates
x Update Certificates that use Certificate Templates

Wanneer de gebruiker deze settings toegapast krijgt zal er een 2 tal certificaten uitgerold worden.

Testen
Log aan op een werkstation en een gebruikers die de GPO die we eerder hebben gedefinieerd toegepast krijgen, waarvan het gebruikersaccount lid is van de groep G_CERT_SECUREMAIL en G_CERT_EFS.

Open een MMC console, en voeg de Snap-in "Certificates" toe. Selecteer de certificaten van het Gebruikersaccount, en klik op OK.
Klap de Certificate tree uit, en open de map "Personal"
Hierin zouden nu 2 certificaten moeten staan. De "Issued To" naam zou de Common Name van de gebruiker moeten zijn, en ze moeten allebei "Issued By" zijn door je eigen gedefinieerde Root CA.

Als het goed is gegaan, kan je deze 2 certificaten nu ook vinden in de Active Directory, in het tabblad "Published Certificates" (Je moet hiervoor wel de Advanced Features aangezet hebben in het Menu View )

In een volgende posting zal ik laten zien wat je met deze certificaten kan doen, en probeer ik de procedure van de SmartCard te voltooien. Maar dat is voor een andere keer.

Ideeën, kritiek etc zijn nog steeds welkom ;) En ohja, piccies volgen nog..

Volgende: Ik ben verslaafd 28-03
Volgende: PKI (Deel 2) 21-12

Reacties


Door T.net user Alex), maandag 26 mei 2008 15:34

Heel interessante reeks, Equator. Please more. :)

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.