4.3. Installation og brug af certifikater i programmer og miljøer

Dette afsnit beskriver installation og brug af certifikater i forskellige programmer og miljøer.

4.3.1. KDE 2

Dette afsnit beskriver hvordan rodcertifikat installation fungerer i KDE 2.

Beskrivelsen er baseret på KDE version 2.2.1. Mekanismerne for håndtering af certifikater er blevet meget forbedret i KDE version 3.0. Se Afsnit 4.3.2. Hvis man bruger KDE og vil bruge certifikater, bør man absolut opgradere til KDE 3. Beskrivelsen af proceduren for KDE 2 vil blive fjernet fra kommende udgaver af denne bog.

KDE har et Krypto modul du kan finde i KDE's Kontrolcenter under personliggørelse. Antageligvis burde man kunne installere certifikater via dette modul. Imidlertid er det foreløbigt ikke lykkedes for mig at gøre dette. Muligvis kan man kun tilføje egne certifikater. Tilføjelsen af rodcertifikatet må du foreløbigt klare manuelt.

KDE bruger sit eget ssl modul, kssl. KDE programmer (som konqueror og kmail) burde således alle virke, såfremt de relevante certifikater er installeret. Der findes en fil, ca-bundle.crt, der indeholder en lang række certifikater som KDE accepterer som rodcertifikater som udgangspunkt. For at tilføje KMD-CA's certifikat, kan du kopiere denne fil til dit hjemmekatalog, og tilføje filen til enden af den. I det følgende er disse skridt beskrevet. (Bemærk at det kan skifte en smule hvor ca-bundle.crt ligger).


$ mkdir -p $HOME/.kde/share/apps/kssl/caroot
$ cat /usr/share/apps/kssl/caroot/ca-bundle.crt KMD-CA-Server.crt.pem \
> $HOME/.kde/share/apps/kssl/caroot/ca-bundle.crt

Bemærk at det er filen KMD-CA-Server.crt.pem der bruges, ikke KMD-CA-Server.crt. Der er selvfølgelig andre måder at tilføje og rette i $HOME/.kde/share/apps/kssl/caroot/ca-bundle.crt fil på.

Når du har tilføjet rodcertifikatet, kan du tjekke din sikkerhed på KMD-CA's hjemmeside, ved at besøge siden og følge "check sikkerheds" pilene. Når den sikre forbindelse er oprettet kan du klikke på vis|sikkerhed i konquerors menu - det skulle gerne frembringe et billede som Figur 4-1.

Figur 4-1. KDE sikkerheds dialog

Peer certifikater på SSL forbindelser bliver iøvrigt placeret i $HOME/.kde/share/config/ksslpolicies.

4.3.2. KDE 3

KDE 3 indeholder stærkt forbedredet understøttelse af håndtering af certifikater.

Det er således muligt at klikke direkte på KMD-CA's rodcertifikat på deres hjemmeside i konqueror og installere det derfra. Nedenstående billedserie illustrerer denne process.

Figur 4-2 viser KMD's hjemmeside. For at installere Server rodcertifikatet skal man klikke på "1. Installer KMD-CA Servers rodcertifikat".

Figur 4-2. KDE 3, KMD-CA installation af rodcertifikater, startside

Figur 4-3 viser siden for installation af KMD-CA's Server rodcertifikat. hjemmeside. For at installere Server rodcertifikatet skal man klikke på "Installer KMD-CA Servers rodcertifikat".

Figur 4-3. KDE 3, KMD-CA installation af Server rodcertifikat

Figur 4-4 viser KDE 3's certifikat import dialog. Man kan enten vælge at importere alt (i det her tilfælde er der kun eet certifikat), eller importere et enkelt certifikat ved at klikke på det.

Figur 4-4. KDE 3, Certifikat import dialog

Figur 4-5 viser detaljer om certifikatet.

Figur 4-5. KDE 3, Certifikat import dialog, detaljer

Figur 4-6 viser en dialogboks der fremkommer efter at have klikket importer på Figur 4-5.

Figur 4-6. KDE 3, import succes dialog.

Figur 4-7 viser en dialogboks der fremkommer efter at have klikket "Kryptohåndtering..." på Figur 4-5.

Figur 4-7. KDE 3, Kryptohåndtering

Dialogboksen i Figur 4-7 kan også findes gennem KDE's kontrolcenter. (Det ses at jeg har to KMD-CA certifikater installeret – det er fordi jeg også har et KMD-CA test certifikat installeret).

Når du har tilføjet rodcertifikatet, kan du tjekke din sikkerhed på KMD-CA's hjemmeside, ved at besøge siden og følge "check sikkerheds" pilene. Når den sikre forbindelse er oprettet kan du klikke på vis|sikkerhed i konquerors menu – det skulle gerne frembringe et billede som Figur 4-8.

Figur 4-8. KDE sikkerheds dialog

4.3.3. Gnus

Certifikater understøttes endnu kun i udviklingsversionen af Gnus. Det er den der også er kendt som Oort Gnus. Metoderne i dette afsnit er afprøvet med nyeste version af Oort Gnus som jeg har hentet fra CVS-arkivet på http://quimby.gnus.org/gnus/.

Kommende versioner af Gnus (versionsnumre højere end 5.8.8 og 5.9) vil inkludere certifikatunderstøttelse.

Metoden virker under GNU Emacs version 20.3 og nyere og under XEmacs 20.4 og nyere (ældre versioner af Emacs understøttes ikke længere af Gnus).

Gnus bruger OpenSSL til håndteringen af certifikater (se Kapitel 2) og i dokumentationen af Gnus anbefales det at OpenSSL bør være version 0.9.6 eller højere da der har vist sig fejl med tidligere versioner.

I de følgende afsnit beskrives først hvorledes du installerer rodcertifikater samt egen nøgle og certifikat. Dernæst beskrives hvordan du kan håndtere andres certifikater og så slutter vi af med at beskrive hvordan du bruger alle herlighederne til daglig.

4.3.3.1. Installer CA-rodcertifikat i Gnus

Først og fremmest skal du skaffe dig et rodcertifikat fra en CA og dette skal konverteres til PEM-format. Hvordan dette gøres er beskrevet hhv. i Afsnit 4.1 og i Afsnit 4.2. Det er kun nødvendigt at installere KMD-CA's Kvalificeret Person-rodcertifikat i Gnus.

Vi skal nu have fortalt Gnus at den skal benytte rodcertifikatet. Dette kan gøres på to måder. Enten ved at angive en direkte sti til certifikatet eller ved at angive et katalog der indeholder certifikatet. Hvis du vælger sidstnævnte løsning kan du installere rodcertifikater fra flere CA'er i kataloget – til gengæld er der krav til navngivningen af filen med rodcertifikatetet.

Begge metoder konfigureres fra Emacs' customize-interface så i Emacs taster du:


M-x customize-group RET smime RET

hvilket giver mulighed for at konfigurere certifikathåndteringen i Gnus (se Figur 4-9). Udfyld enten "Smime Ca Directory" eller "Smime Ca File".

Figur 4-9. Placering af CA-certifikat(er)

Rodcertifikater der installeres i kataloget skal som sagt navngives på en særlig måde. Filen skal navngives med X.509 hash-værdien af certifikatet. Det gøres så nemt som:


$ mv KMD-CA-KPerson.crt.pem `openssl x509 -noout -hash -in KMD-CA-KPerson.crt.pem`.0

4.3.3.2. Installer eget certifikat og privat nøgle i Gnus

Du skal naturligvis være i besiddelse af et nøglepar – dvs. en offentlig og en privat nøgle. Det er beskrevet andetsteds i denne bog hvordan du skaffer dem.

Gnus kræver at den offentlige og den private nøgle samles i en fil, men før vi kan det bliver vi nødt til at konvertere den offentlige nøgle til PEM-format (den private nøgle er allerede i PEM-format hvis du har brugt metoden i denne bog til at generere den med ellers skal den også konverteres). Konvertering af certifikater fra KMD-CA er beskrevet i Afsnit 4.2, men metoden vises også her for fuldstændighedens skyld.

For at konvertere den offentlige nøgle (det er den du henter hos KMD-CA og som også kaldes dit personlige certifikat) gør du følgende:


$ openssl x509 -inform DER -in cert.crt -outform PEM -out cert.pem

Nu skal den offentlige og private nøgle samles til en fil:


$ cat Mit_Navn_Nøgle.pem cert.pem > ~/.mit-certifikat

og så skal vi have fortalt Gnus at certifikatet eksisterer. Gå atter ind i customize-interfacet i Emacs:


M-x customize-group RET smime RET

Angiv under "Smime Keys" hvor certifikatet ligger og til hvilken mailadresse det knytter sig (se Figur 4-10).

Figur 4-10. Placering af eget certifikat

Gnus skulle nu være i stand til at håndtere dit certifikat.

4.3.3.3. Installer andres offentlige nøgler i Gnus

Håndteringen af andre folks offentlige nøgler (dem du vil skrive krypteret med) er desværre ikke særlig udbygget i Gnus.

Der er implementeret to metoder. Den ene forudsætter at man har nøglen i en fil og angiver den rette fil når man krypterer sine beskeder. Den anden kan hente nøglen på en DNS-server (se RFC 2538).

Førstnævnte metode er standard og fungerer smertefrit og intuitivt. Anden metode er meget lidt brugt (forfatteren af S/MIME delen af Gnus kender kun et certifikat der er gemt på en DNS-server - nemlig hans eget) så den vil ikke blive beskrevet her.

Gnus har desværre ingen metoder til automatisk at gemme den offentlige nøgle fra signerede eller krypterede mails man modtager (men det er dog forholdsvis lige til at gemme dem alligevel, se senere). Gnus har desværre heller ingen metoder til at hente offentlige nøgler fra LDAP-nøgleservere (fx ldap://certifikater.kmd.dk).

Glade e-lisp-hackere går friskt i gang ...

4.3.3.4. Send signeret og krypteret e-post fra Gnus

For at signere eller kryptere en mail i Gnus skal du under redigeringen fra menuen "Attachments" vælge enten "S/MIME Sign" eller "S/MIME Encrypt" (se Figur 4-11. Tastaturgenvejene er hhv. C-c RET s s og C-c RET c s.

Figur 4-11. Signering af mail

Der bliver indsat en kode i mailen og når man sender mailen afsted (C-c C-c) bliver man spurgt om hvilken nøgle der skal bruges (Figur 4-12) og nøglens passphrase (Figur 4-13).

Figur 4-12. Signering af mail

Figur 4-13. Signering af mail

Kryptering foregår ganske tilsvarende. Ydermere bliver man spurgt om i hvilken fil modtagerens offentlige nøgle er.

4.3.3.5. Verificer og dekrypter e-post i Gnus

Når du læser en krypteret mail spørger Gnus selv om den skal dekryptere mailen (Figur 4-14) og spørger efter din private nøgles passphrase (Figur 4-15).

Figur 4-14. Gnus spørger selv om den skal dekryptere en krypteret mail

Figur 4-15. Din private nøgles passphrase skal bruges ved dekryptering af mail

Hvis du læser en mail der blot er signeret bliver den ikke automatisk verificeret og du bliver heller ikke spurgt om du vil verificere den.

Du kan kende en signeret (og en krypteret) mail på det lille "p" i statuslinjen (se Figur 4-16).

Figur 4-16. Det lille "p" fortæller at mailen er signeret og/eller krypteret

Den store "knap" (teksten mellem "[[" og "]]", se Figur 4-17) der også fortæller om signaturen er o.k. vises ikke som standard af Gnus. For at få den at se skal du tilføje følgende til din .gnus:


(setq gnus-buttonized-mime-types
      '("multipart/signed"))

Figur 4-17. Denne "knap" indeholder information om signaturen

For at verificere den signerede mail vælges menuen "Article / MIME" og menupunktet "Verify and Decrypt" (Figur 4-18) eller tastaturgenvejen W s. Når mailen er verificeret vises resultatet i knappen (se Figur 4-19).

Figur 4-18. Vælg dette punkt for at verificere en signeret mail

Figur 4-19. Signaturen var i orden

Knappen er som sagt en knap og hvis man klikker på den med midterste museknap eller placerer cursoren (point) på den og taster return vises al information om signaturen og certifikatet. Et uddrag af disse oplysninger kan ses på Figur 4-20.

I blandt oplysningerne kan man også finde afsenderens offentlige nøgle og det er således muligt med almindelige, simple Emacs-kommandoer at gemme nøglen til senere brug (marker region, M-x write-region).

Figur 4-20. Oplysninger om signaturen og certifikatet