[Openstandaarden] verslag meeting eID 2005-02-26 Brussel
Peter Vandenabeele
peter.vandenabeele at mind.be
Mon Mar 7 10:02:08 CET 2005
On Sun, Mar 06, 2005 at 10:38:55PM +0100, Sander Devrieze wrote:
> Op zondag 6 maart 2005 21:23, schreef Peter Vandenabeele:
> <snip>
> > Multi-user chat (op chat rooms dus, niet in 1-on-1 chat met op voorhand
> > bekende personen) is IMO voor volwassenen, en a fortiori voor kids, een
> > van de toepassingen waar je in eerste instantie anonimiteit wenst te
> > gebruiken als bescherming van je privacy en soms zelfs van je fysische
...
> Ge ziet het een beetje verkeerd denk ik.
Wel, als iedereen anders een veilige implementatie in gedachten had, en
ik de enige was die nog niet mee was, dan heb je gelijk. Maar misschien
was dat niet zo en dan heb ik reden om aan de bel te trekken.
> Die chatruimtes zouden zo werken:
> 1) kamer enkel toegankelijk voor personen jonger dan X aantal jaar.
> 2) om die kamer te betreden moet de client van de gebruiker contact opnemen
^^^^^^^^^^^^^^^^^^^^^^^
referentie [A], zie verder
> met een eID-server van de overheid.
> 3) die overheidsserver stuurt dan een bericht naar de server met de
> chatruimte. Bijvoorbeeld: "ok, deze persoon met bijnaam Z die op uw
> chatruimte Y wilt aanmelden is idd jonger dan X jaar: laat hem/haar dus maar
> binnen" (of niet)
> 4) maw: de identiteit voor de persoon blijft nog steeds anoniem voor de andere
> chatters en voor diegene die de chatruimte aanbiedt.
...
> Lees eens http://mail.jabber.org/pipermail/standards-jig/2004-July/005804.html
> voor meer voorbeelden.
Interessante link. Gelijkaardige vraagstukken in financial trading worden daar
professioneel besproken. Er wordt wel uitgegaan van veilige clients, als ik het
goed begrijp. En alleen de humans in het scenario worden als "malicious" beschouwd
(wel het zijn ook traders en analysten ;-) [joke !]
> <snip>
> > Een trusted server die mijn kaart mag benaderen is IMHO alleen:
> > * een server van de overheid
> > * een server die ik met SSL over IP benader, omdat ik via dns en whois
> > wel weet wie dat IP adres beheert (als de lokale interface tussen
> > de kaart en de IP verbinding veilig is ... zou de SSL link vanop de
> > kaart zelf kunnen komen als de bandbreedte klein genoeg is ??)
> > * een server van een vriend, mijn werk, de dokter, de mutualiteit, ...
> > * elke server waarvan het helemaal geen kwaad kan dat men weet wie je
> > bent met alle ID gegevens die zonder decryptie van je kaart zijn te
> > lezen
>
> Ik zou het toch houden op "enkel een server van de overheid"...
^^^^^^^^^^^^^^^^^^^^^^
referentie [B], zie verder
Ik zie dus 2 fundamentele requirements aan het systeem om privacy te
beschermen, en ik snap nog niet hoe die juist zullen worden ingevuld
in de scenario's van M$ en de minister:
Req. 1: "informatie maskering"
==============================
Er zijn applicaties waar je enkel partiele gegevens wil bekendmaken/bewijzen. Als je
alle publiek zichtbare gegevens van de kaart wil bekendmaken aan de partij die de kaart
afleest, is er geen probleem natuurlijk, ze doen maar (en eenmaal ze die gegevens hebben,
kan je ze toch niet meer technologisch verhinderen deze verder te copieren of te
publiceren). Ik noem die doelstelling "informatie maskering" (sommige info wil ik
maskeren, sommige wil ik bekendmaken/bewijzen). Bijv.
* leeftijd wil ik vrijgeven en bewijzen, maar Voornaam/Achternaam wil ik maskeren
* ZIP code wil ik bewijzen (voor toegang tot lokaal containerpark, daar heb ik ook
een RFID kaartje voor ...), maar de rest niet
Req. 2: "tegenpartij authenticatie"
===================================
In sommige gevallen wil ik alleen volledige of gedeeltelijke gegevens
ter beschikking stellen aan een partij nadat deze zich heeft
geauthenticeerd. Zoals in Req. 1 gesteld, kan ik een partij niet
technisch verhinderen om een gegevens te copieren, publiceren, agregeren
eenmaal ik ze heb doorgegeven, maar ik kan wel legaal maatregelen nemen
(confidentialiteit eisen), _als_ ik zeker weet aan wie ik de gegevens
doorgeef. Voorbeeld:
* aan mijn bank wil ik gerust al mijn informatie beschikbaar stellen,
maar ik wil wel zeker weten dat die applicatie die de gegevens komt
vragen van mijn bank komt.
* aan de mensen van KetnetKick geef ik nu al veel gegevens door van mijn
kids (inclusief Full Name, geboortedatum, ZIP, maar niet full address),
maar ik reken erop dat de VRT die 400,000 entries met het nodige respect
voor privacy behandelt ...
Ik zie nu 3 opties om die "maskering" veilig te realizeren:
Optie A: beperkte kaart
========
De kaart (certificaat + private key signing functie) of een publiek certificaat
(alleen data, geen elektronica) bevat alleen die subset van data die we willen
tonen/bewijzen aan de applicatie (of publiek maken) maken. In de vorm van een
"kaart" met een private key en signing functie is dit wel relatief duur. Maar
als dit bijvoorbeeld een certificaat is voor de associate tussen een nick
(met een geheim paswoord op een jabber server) en de echte leeftijd, kost het
niet veel om dit te maken (als iemand trusted dit certificaat wil tekenen).
In jouw voorstel genereert de eID server van de overheid eigenlijk zo'n
tijdelijk beperkt certificaat.
Optie B: trusted client
========
Je hebt een trusted client bij je. Die client is van jezelf, interfacet
aan 1 kant met je eID kaart en aan de andere kant met de applicatie
tegen welke je wil authenticeren. Dan kan je je eigen trusted client
vetrouwen dat die de data zal maskeren die je wil maskeren.
Optie C: trusted masking server
========
Er is een trusted server (van de overheid of privaat uitgebaat) die alleen die
data doorgeeft die je wil vrijgeven aan een applicatie. Jijzelf staat in
verbinding met die trusted server om je identiteit te bewijzen en die
server levert een token af of een tijdelijke associatie (certificaat) tussen een
nick en een bepaald gegeven (bijv. leeftijd of ZIP of ...).
Het resultaat van zo'n trusted masking server zin o.a. tijdelijke certificaten
zoals in Optie A.
Voor Req. 2 (tegenpartij authenticatie) zie ik volgende opties:
Optie A: kaart checkt authenticatie tegenpartij
========
Als ik het geod begrijp, doet de kaart nu al authenticatie van de
gemeentelijke computer om schrijfrechten op de kaart toe te staan.
Dan reken je er ook op dat de applicatie die de private key van
de gemeente kent ook een echte trusted application is. Nu kan dat
nog bewaakt worden door 1 geisoleerde computer per gemeente of zo
te nemen, maar er is wel een risico dat als die geheime sleutel lekt,
iedereen at will op die kaart kan beginnen schrijven ...
Het is me niet duidelijk als er ook een authenticatie van de tegenpartij
nodig is om bepaalde gegevens van de kaart te lezen (adres, foto, ...) ?
(graag feedback als iemand weet hoe dat juist zit :-)
Het lijkt redelijk moeilijk om voor veel andere entiteiten ook die check
op de kaart toe te voegen. De overheid zou een aantal applicaties
kunnen tekenen die dan als second level op de kaart mogen schrijven,
maar dan krijg je een proliferatie van "trusted" applicaties en als
1 ervan dan breekt, kan je die niet individueel revoken.
Je zou individuele certificates op de kaart kunnen zetten van alle
trusted applicaties, maar dan moet ofwel de kaart altijd de revocation
list gaan checken (altijd online zijn), of fysisch teruggeroepen worden
om een on-chip revocation list up te daten wanneer zo'n applicatie
gekraakt wordt ...
Optie B: trusted client
========
Dit is veel realistischer. Je bouwt een trusted client zodat je
tenminste zeker weet dat je echt over SSL met je bank praat, voor
je toegang geeft tot je kaart.
Optie C: trusted application authention server
========
Het zou inderdaad denkbaar zijn dat de overheid een lijst bijhoudt
van alle applications waarop ze de nodige audit heeft uitgevoerd
en die je dus met een (relatief) gerust hart kan aanspreken. Op
die manier hoeven niet al die applicaties zelf bepaalde overheids-
keys te hebben, maar kan de overheid ze toch (tijdelijk, altijd
onmiddellijk te herroepen met een white list) te certifieren. Dit
werkt alleen online, maar is wel goed te implementeren.
Discussie:
==========
Je voorstel gebruikt optie C (trusted masking server). Ik zie nog 2
open vragen :
* er wordt ook gebruik gemaakt van een client [A]. Hoe weten we dat
die veilig is ? Wel als we zelf iets bouwen met Linux en jabber is
er een redelijke kans dat dat lukt. En dat is toch een voordeel
t.o.v. sommige andere besturingssystemen.
* is de overheid bereid om een dergelijke masking server te hosten ?
Ik had hier nog niks van gezien (maar misschien was dat altijd al
het plan en heb ik hett niet gezien). Was dit altijd al het plan
van M$ en de minister (om een door de overheid uitgebate masking
server op te zetten) ?
Nu ja, als de overheid het niet doet, zou je het natuurlijk ook
privaat kunnen doen. Gewoon met goed beheer en voldoende audit een
trusted masking server opzetten (die publiek verifieerbare associaties
garandeert tussen een nick een leeftijd bijv.).
Een alternatief dat ik vroeger had voorgesteld is dat iedere ouder
voor zijn eigen kids als "trusted masking server" optreedt. Ik
als ouder bevestig met mijn digitale handtekening dat de nick
cookie at hotmail.com [fictief] , geassocieerd is met een zoon/dochter
van mij van minder dan 12 jaar. Het voordeel hiervan is dat niemand
een mega-database kan creeeren waar al die associaties met de
achterliggende full data gestockeerd zouden kunnen zijn. Als iedereen
dit gewoon thuis doet, komt de gemaskeerde data nooit naar buiten
en wordt nooit samen geagregeerd (de niet gemaskeerde data wel
natuurlijk, want die moet publiek verifieerbaar zijn).
Het probleem dat blijft liggen is dat van de trusted client. Ideaal zou
je een soort dedicated device willen met:
* een interface naar eID
* toetsenbordje
* schermpje (zodat je ziet wat je tekent)
* uplink naar untrusted netwerk (USB, Eth, Bluetooth, IR)
Dit bestaat natuurlijk al vele jaren, maar is altijd te duur gebleken
voor massa toepassingen.
Maar, iedereen heeft een gsm. Misschien is het denkbaar om je gsm
te gebruiken als je er een interface naar de kaart bij kan zetten ?
Maar het is me niet duidelijk hoelang we een gsm nog als een trusted
device kunnen beschouwen ... aan de andere kant ben ik meer geneigd
om mijn gsm (nadruk op _mijn_ device dat _ik_ beheer) te vertrouwen
als client om de afscherming van mijn kaart te doen en ook verificatie
van de applicaties die met mijn kaart mogen communiceren.
Er zijn initiatieven (Xen etc.) die meerder OS'en naast elkaar mogelijk
maken op 1 PC en dat is misschien de oplossing hiervoor. Je PC (of open
gsm op Linux) draait dan niet alleen Linux, maar ook een kleine
gecertifieerde applicatie die als trusted client dient voor dit
soort applicaties. Met een stukje hardware bescherming kan je er
dan voor zorgen dat alleen je eigen, gecertifieerde applicatie
door de HW interface naar de eID kaart kan (omdat alleen die
applicatie een speciale code op outpout pinnen kan prodcuren). En
als je ineens een FPGA gebruikt, kan die code zelfs persoonlijk
zijn en wijzigen in de tijd (gewoon de gecertifieerde applicatie
persoonlijk hercompileren). Lijkt me niet zo makkelijk te kraken
van op een afstand (als Xen zijn werk goed doet).
Over je opmerking [B] dat je alleen een server van de overheid wil
trusten. Ik zou er meer trusten als er ofwel een certificatie is
van de applicatie aan de andere kant of als ik zelf met een trusted
client de info kan maskeren die ik wil maskeren.
Some toughts ...
Peter
> <snip>
>
> --
> Mvg, Sander Devrieze.
>
> xmpp:sander at l4l.be ( http://jabber.l4l.be/ )
More information about the Openstandaarden
mailing list