Labo CA - SSL - S/MIME
Dit labo heeft tot doel om het belang en de mogelijkheden
van certificaten te leren kennen.
Het labo bestaat uit 4 delen.
In Windows 2008 stellen we een standalone CA op en configureren we IIS voor SSL
(secure socket layer) zodat een beveiligde https-sessie mogelijk is.
In Linux gebruiken we Thunderbird om de mogelijkheden van S/MIME te ervaren
en configureren we Apache voor SSL.
Vermits er verschillende machines en verschillende besturingssystemen
nodig zijn, werk je in groepjes van twee (zelf te kiezen).
Verslag
Van al je activiteiten schrijf je een elektronisch verslag.
Vermeld bovenaan de twee namen van de groep.
Verder vermeld je steeds
-
vraagnummer
-
wat je doet
-
met welke commando's
-
problemen die je tegenkomt
-
hoe je ze oplost.
Op het einde van deze labosessie plaats je het verslag op de U-schijf onder
de directory Beveiliging/certificaten met als titel certificaten.txt.
Uiterste datum om in te dienen: 29/10/2009 om 13u20.
Vooraf
Voor de eerste twee onderdelen van het labo (CA en IIS-SSL)
is het nodig een Windows2008-computer ter beschikking te hebben met
Internet Explorer om de volledige functionaliteit van de CA-server te
kunnen benutten.
Voor het vierde deel is er een Linux-machine nodig voor het opzetten van apache met SSL;
als CA gebruiken we de computer uit deel 1.
Deel 1: installatie van een CA
Dit document geeft een
volledige uitleg over het opstellen van verschillende soorten CA's. Vermits het de bedoeling is dat je een
standalone root CA (zelfstandige basis-CA) installeert, zijn alleen de desbetreffende
paragrafen van belang. De keuze van hash-algoritme en sleutellengte is hier niet echt relevant.
De gegevens over de CA vul je zo zinvol mogelijk in; alleen moet je wel als naam voor de CA de naam van de computer opgeven.
Controleren of je opgezette CA functioneert, kan je bijvoorbeeld doen door op je Windows2008-machine te browsen naar
http://naam_CA/certsrv.
Bemerk dat je hiervoor de Certification Authority Web Enrollment role service moet installeren.
Aangevraagde certificaten moeten natuurlijk op je CA worden ondertekend en uitgegeven. Dit gebeurt door gebruik te maken
van het Certificate Authority Tool op je windows2008-machine.
Een uitgegeven certificaat kan worden geïnstalleerd door opnieuw
te browsen naar http://naam_CA/certsrv en de gepaste
opties te selecteren.
Deel 2: configureren van IIS voor SSL
SSL staat voor Secure Socket Layer en is een protocol
dat zich situeert tussen TCP en de toepassingslaag.
In praktijk maakt het protocol eigenlijk vaak deel uit van de
toepassingen zelf.
Het protocol zelf wordt besproken in de theorielessen.
We gebruiken SSL om een beveiligde verbinding
op te zetten tussen webbrowser en webserver via https.
Meestal volstaat het dat de webserver een certificaat bezit
dat getekend is door een CA. Sommige toepassingen willen bovendien
ook dat de client zich door middel van een certificaat
kan authenticeren. Deze optie zullen we hier NIET voorzien.
Zorg er voor dat de computer waar je IIS installeert verschillend is van de computer
waarop de CA is geïnstalleerd.
Willen we IIS kunnen https-aanvragen laten behandelen over SSL,
dan moet IIS een getekend certificaat installeren.
Vermits IIS geen browser is, kan dit niet gebeuren zoals
je in het eerste deel hebt uitgeprobeerd.
Volgende drie stappen zijn nodig:
-
Vooreerst moet er een certificaataanvraag gebeuren.
Deze aanvraag wordt geëxporteerd naar een bestand
in een formaat volgens pkcs10 (zie theorieles S/MIME).
Hoe dat precies moet gebeuren vind je
hier.
De Internet Services Manager kan je terugvinden door het commando
"mmc /a" uit te voeren en de gepaste snap-in toe te voegen.
- Vervolgens moet het bestand met de certificaataanvraag
doorgestuurd worden via IE naar de CA en deze moet
het getekend certificaat terugsturen. Nadat het
certificaat is toegekend, moet je het downloaden.
Bewaar de bestanden met het certificaat (een pkcs7-object)
en het certificeringspad.
Deze link beschrijft de volledige procedure.
Opgelet, laat je niet misleiden door de titel van de webpagina! Alle nuttige info kan je vinden in de derde paragraaf
- Tot slot moet het certificaat geïnstalleerd worden bij IIS in
de Internet Services Manager volgens
deze procedure.
Eens IIS herstart is, moet je alle pagina's van je server uitsluitend via het
https-protocol kunnen opvragen, test ook uit of de webpagina's enkel via https kunnnen bereikt
worden. Indien dit niet
het geval is dan dien je een instelling te veranderen aan de default-website. Wat gebeurt er
bij de eerste verbinding en waarom?
Deel 3: gebruik van S/MIME
Om S/MIME te kunnen gebruiken en uittesten is het noodzakelijk
een mail-client te gebruiken die dit aankan. Zowel Outlook als
Mozilla/Thunderbird zijn hier op voorzien, maar vermits de bewaarde mails
in Thunderbird gewoon als tekstbestanden worden opgeslagen, verkiezen
we Thunderbird.
Start twee computers op in Linux en log op beide toestellen in als lokale gebruiker (niet als root).
Vergeet niet dat je ergens een verslag hebt bewaard en dat je
dit nog verder moet aanvullen.
Vervolgens start je Thunderbird op (Menu->Internet->thunderbird) en
moet je je mail-configuratie correct invullen. Maak hiervoor gebruik van je Gmail e-mailaccount. Indien je niet over een Gmail account beschikt, maak je er een aan.
Pas je Gmail-account aan zodat je met thunderbird al je berichten met POP3 (geen IMAP) kan afhalen. Om met thunderbird berichten te kunnen versturen geef je als smtp-server mail-out.hogent.be op. Meer informatie over het instellen van thunderbird voor gebruik met Gmail kan je hier vinden.
Stuur een mail naar elkaar om te zien of alles correct werkt.
De opgevraagde mails worden bewaard in het bestand
"/home/lokalegebruiker/.thunderbird/xxxxx.default/Mail/Local Folders/Inbox"
Dit bestand is gewoon editeerbaar en als tekst te bekijken.
Indien je er voor zorgt dat in je inbox nooit meer dan 1 mail is bewaard en dat
je ook die map (inbox) compacteert (rechts klikken), kan je steeds makkelijk het
juiste formaat van die mail nagaan.
Controleer elk ontvangen bericht en noteer hoe het formaat er uit ziet!
Alle beveiliginsinstellingen en certificaten kan je bewerken via de optie
Privacy en Security binnen je preferences.
Alle certificaten die je voor de volgende opdrachten nodig hebt,
kan je aanvragen aan http://aphrodite/certsrv via de firefox webbrowser.
De aangevraagde certificaten worden door aphrodite automatisch uitgegeven en
moeten ook via firefox worden opgehaald.
Omdat thunderbird zijn certificaten blijkbaar op een andere plaats opslaat,
moet je de certificaten exporteren (backup) in firefox en importeren in
thunderbird.
Voer nu volgende opdrachten uit:
-
Om S/MIME te kunnen gebruiken moet je mail-client vooreerst
het certificaat van de root-CA (aphrodite) installeren.
Haal het certificaat op en importeer het in thunderbird.
Vervolgens moet je mail-client ook voor zichzelf
een certificaat aanvragen en installeren via firefox en hier exporteren via backup.
Vraag: waarom wordt naar een wachtwoord gevraagd?
Het moet tot slot ook geïmporteerd en geïnstalleerd worden in thunderbird.
-
Verzend naar je compagnon een bericht dat je probeert te encrypteren.
Waarom lukt dat niet?
Waarom lukt dit wel als je naar jezelf een mail stuurt?
-
Verzend een getekend bericht naar je compagnon. Bij ontvangst wordt
het gebruikte certificaat automatisch geïnstalleerd. Controleer dit en
verifieer ook de vingerafdruk.
Hoe wordt de mail-boodschap getoond?
Voor de aardigheid kan je dat bericht eens wijzigen (zie plaats hiervoor beschreven),
thunderbird afsluiten en opnieuw starten, en kijken hoe dat bericht nu
getoond wordt. Maak onderscheid tussen het editeren van de body en van
de handtekening.
Vraag 1: wordt de boodschap 'signed' of 'clear signed' verstuurd?
Vraag 2: Hoe kan je dat uitmaken, waaraan kan je dat zien?
Vraag 3: Wat is het verschil tussen beide manieren?
Pas nu eens de naam en het email-adres van je account aan en
stuur nu opnieuw een gesigneerde mail en kijk wat er gebeurt.
-
Verstuur een geëncrypteerd bericht (niet getekend). Pas opnieuw het
ontvangen bericht
aan en kijk wat er gebeurt als thunderbird opnieuw is opgestart.
-
Verstuur een bericht dat zowel gecodeerd als gehandtekend is. Wat is
het formaat?
Verander de file vooraan en kijk wat er met het getoond bericht gebeurt.
Doe hetzelfde met uitsluitend een wijziging achteraan.
-
Exporteer je certificaat, en verwijder het nadien in thunderbird. Probeer
het opnieuw te importeren. Doe dit nogmaals maar verander eerst het
geëxporteerde bestand.
-
Ga na op welke manier een certificaat wordt aangevraagd. Bekijk hiertoe
de bron van de webpagina zowel in Internet Explorer als in Firefox.
Wat gebeurt er precies bij het 'submitten' van het formulier.
Waarom lukt het aanvragen van een certificaat niet via Konqueror?
Waar wordt de private key en de publieke sleutel aangemaakt?
Welke sleutel(s) zit(ten) opgeslagen in het certificaat?
Deel 4: configureren van Apache voor SSL
In dit onderdeel gebruiken we een computer in linux
en configureren we de Apache-webserver zodat die kan werken met SSL.
De verschillende stappen die we
moeten ondernemen zijn is essentie dezelfde als in deel 2.
Hoe je deze stappen kan realiseren kan je
hier vinden.
Let wel: de installatie van Apache en van de module voor SSL hoef je niet meer te doen. De
configuratiefile voor SSL kan je vinden in de directory /etc/httpd/conf.d/.
Om de certificaten aan te vragen en te downloaden gebruik je best Konqueror
wegens problemen met Mozilla Firefox.
-
Configureer Apache zodanig dat we via https://jouw-computernaam/ beveiligde pagina's
kunnen oproepen. Test uit.
-
De bedoeling van dit punt is er voor te zorgen dat de client browser niet zo maar
toegang krijgt tot de https-webserver. Hij moet kunnen geïdentificeerd worden
door een certificaat. Hiertoe moet vooreerst de configuratie van de server aangepast
worden; dit kan je vinden in hetzelfde document als hiervoor gebruikt.
Let wel: het
root-certificaat van aphrodite staat in het DER-formaat maar dit moet omgezet worden
naar het PEM-formaat.
De client-browser mag nu zo maar geen toegang meer krijgen tot de webserver.
Hij moet eerst een webserver-certificaat aanvragen aan aphrodite en dit installeren.
Eens dit gebeurd is, zou hij wel toegang moeten hebben.
|