On Fri, 28 Apr 2006 16:27:01 +0200, "J.K.Arning" <spam@arning.dk>
wrote:
>Ved nogle af jer om det er muligt og i givet fald hvordan, at benytte den
>digitale signatur som alle danskere kan få via TDC, som logon til en privat
>internet tjeneste?
Jeg har lavet et yderst simpelt eksempel på
https://ter.dk/ hvor man
kan logge ind med sin digitale signatur. Det er sat op "uden videre".
(mit SSL-certifikat er udløbet - jeg bruger det udelukkende til
testformål)
Jeg har skrevet et par ustrukturerede fodnoter på
http://stock.ter.dk/ssl_howto.txt for Apache og OpenSSL, men i grove
træk:
1. Skaf et SSL-certifikat (eller lav ét selv). Det er som led i
SSL-protokollen at klienten bliver bedt om den digitale signatur.
2. I SSL-opsætningen i Apache tilføjer du, at klienten skal valideres,
samt hvilken CA, det skal valideres op imod:
SSLVerifyClient require
SSLCACertificateFile ocesca.crt
"ocesca.crt" er TDCs OCES rodcartifikat, og filen kan hentes fra
http://www.certifikat.dk/rootcert.html (Rodcertifikat TDC OCES CA)
3. I din applikation opsamler du så informationer om certifikatet. Du
kan for eksempel sætte sætte en option, så certifikat-dataen bliver
eksporteret:
SSLOptions +ExportCertData
Derefter bliver bl.a. SSL_CLIENT_CERT eksporteret som en
servervariabel, som din webapplikation så kan opsamle. For PHP kan det
fx gøres på denne måde:
<?php
header("Content-Type: text/plain");
$cert = openssl_x509_parse($_SERVER['SSL_CLIENT_CERT']);
var_dump($cert);
?>
... og presto, så er du kørende! Brug serienummeret som unik
identifikator på klientcertifikatet, idet flere folk naturligvis kan
hedde det samme.
Et par yderligere betragtninger:
Dokumentation til de fleste OpenSSL-kommandoer finder du fx på:
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC17
For gamle OpenSSLer kunne man kun overordnet sætte for SSL-opsætningen
om man krævede at brugeren var logget ind eller ej. Nu kan man gøre
det på .htaccess-niveau (fx mappeniveau eller filniveau). Jeg har fx
valgt kun at gøre det for en enkelt mappe.
I det hele taget er det så let at implementere, at jeg er overrasket
over at det ikke benyttes flere steder. Problemet er nok bl.a., at
selv om der er tale om et unikt og godkendt certifikat, så står man
ikke tilbage med yderligere information ud over personens navn, og et
unikt serienummer, som man ikke nødvendigvis kan holde op imod noget
andet. Så identifikationen kan godt være begrænset til sig selv, men
det kan på sigt også være relevant nok.
Men auktionssites og deslige kunne snildt benytte det for i det
mindste at have fået én bekræftelse på brugerens navn. Det er også
billigere end at skulle hive navnet ud fra kreditkort-validering, men
sikkert ikke så udbredt endnu.
I og med at alle kan implementere det, kan det dog også tænkes, at det
måske vil bruges i forbindelse med svindel. Lige nu betragtes digital
signatur stadigvæk som noget, man bruger op imod myndigheder, men der
er som sådan ikke nogen begrænsning her. Så det at man kan bruge
diigtal signatur kan måske få en del folk til at tillægge sitet en
sikkerhed, der ikke er grundlag for (men derimod netop fortælle ens
eget navn til websitet).
Jeg ved ikke om Mozilla/Firefox endelig har forbedret deres
certifikat-politik, men jeg mener (sikkert i modsætning til øvrige
nørder) at al den snak og kritik, der var om sikkerheden med
certifikater i Firefox var berettiget. Firefox' "master
password"-system er så belastende og uhensigtsmæssigt, at det vil være
en daglig hindring at benytte det, plus at man (da jeg installerede
certifikatet) ikke blev opfordret til at benytte et master password.
Det er også knudret, at dette master password skal være fælles for
alle ens koder (både vilkårlige passwords til vilkårlige logins, og så
til ens digitale signatur) og at man ikke blot kan bruge signaturens
eget kodeord.
Det betyder, at der sikkert er mange Firefox-brugere, for hvem man
uden videre kan se navnet på. Så meget for anonymitet. En detaljeret
beskrivelse af problemstillingen sendt via bugzilla, markeret som
sikkerhedsrelateret, sendt for præcis 11 måneder siden, er stadigvæk
"UNCONFIRMED" uden at nogen er assigned til den. Jeg forstår ikke
hvorfor folks browsertillid kan være så høj?
--
- Peter Brodersen
Ugens værktøj - sammensæt og opdel PDF-filer:
http://pdf.ter.dk/