Toepassingen van cryptografie
Toepassingen van cryptografie Gerard Tel
Instituut voor Informatica en Informatiekunde Universiteit Utrecht
iv
Inhoudsopgave
Inhoudsopgave
v
Voorwoord
ix
1 DMCA (Costyn van Dongen ) 1.1 Artikelen in de DMCA . . 1.2 Gevolgen . . . . . . . . . . 1.3 Gevallen van Misbruik . . 1.4 In Europa: de EUCD . . . 1.5 Kwaad en erger: CBDTPA 1.6 Conclusie . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
1 1 2 3 7 8 9
2 An.on (Roman Kakisina ) 2.1 Inleiding . . . . . . . . . . 2.2 Proxies & Mixen . . . . . 2.3 Java Anon Proxie (JAP) . 2.4 Samenvatting en conclusie
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
11 11 13 15 18
(Pieter Poorthuis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
) . . . .
3 The 3.1 3.2 3.3 3.4
Free Network Project Wat is Freenet . . . . . . Ontstaansgeschiedenis . Werking van Freenet . . Drempels voor Freenet .
. . . .
. . . .
. . . .
. . . .
21 21 22 22 27
4 Geheimen in hardware, een case study: XBOX (Frank Verbruggen 4.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Geheimen bewaren in hardware, de XBOX bootsector kraak . . . . 4.3 Mogelijke verbeteringen in de veiligheid van hardwaregeheimen . . . 4.4 Kraken van de hard-disk in de XBOX . . . . . . . . . . . . . . . . .
) . . . .
. . . .
. . . .
29 29 30 35 35
. . . .
39 39 39 41 44
5 DVD versleuteling - CSS (Guido Diepen ) 5.1 Geschiedenis DVD . . . . . . . . . . . . 5.2 De (schijn)oplossingen . . . . . . . . . . 5.3 (De)coderen met CSS . . . . . . . . . . . 5.4 Stappenplan decoderen DVD . . . . . . . v
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
vi
Inhoudsopgave
5.5 5.6 5.7
Kraken van CSS - DeCSS . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Het programma DeCSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 Virtual Private Networks (Nabil el Ouali ) 6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . 6.2 Protocollen . . . . . . . . . . . . . . . . . . . . . 6.3 VPN/Firewall oplossingen vs Stand alone VPN’s . 6.4 Samenvatting . . . . . . . . . . . . . . . . . . . . 7 Windows 2000 Advanced Server (Bas Ribbers 7.1 Korte platform beschrijving . . . . . . . . . 7.2 Kerberos Server Authentication . . . . . . . 7.3 Secure Networking . . . . . . . . . . . . . . 7.4 Encrypting File System (EFS) . . . . . . . . 7.5 Smart Cards . . . . . . . . . . . . . . . . . . 7.6 Windows 2000 Public Key Infrastructure . . 8 Biometrie (Lars Hemel ) 8.1 Passwords versus Biometrie 8.2 Introductie van biometrische 8.3 Vingerafdrukken . . . . . . 8.4 Vingerafdruk scanners . . . 8.5 Smartcards . . . . . . . . . 8.6 Conclusie . . . . . . . . . .
) . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . .
51 51 52 56 57
. . . . . .
59 59 60 61 61 63 63
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
67 67 68 70 71 74 75
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
77 77 78 78 79 81 82 83
10 CyberVote: Elektronische Verkiezingen (Joris Valkonet ) 10.1 Eisen kiessystemen . . . . . . . . . . . . . . . . . . . . . . 10.2 Elementen van Verkiezingsprotocollen . . . . . . . . . . . . 10.3 Twee typen kiesprotocollen . . . . . . . . . . . . . . . . . . 10.4 CyberVote . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Bulletin Board Model (Cramer, Gennaro en Schoenmakers) 10.6 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
85 85 87 90 92 92 95
. . . . . . systemen . . . . . . . . . . . . . . . . . . . . . . . .
9 Fraunhofer SMM (Marcel Blokpoel ) 9.1 Wie is Fraunhofer? . . . . . . . . 9.2 Wat is SMM? . . . . . . . . . . . 9.3 Waarom SMM? . . . . . . . . . . 9.4 Toepassing . . . . . . . . . . . . . 9.5 Niveaus . . . . . . . . . . . . . . 9.6 Evaluatie en daarna . . . . . . . . 9.7 Toekomst . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
11 SmartGun (Kevin Kwee ) 97 11.1 Het SmartGun project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.2 Voorloper van de SmartGun: Radio Frequency Technology . . . . . . . . 100 11.3 Biometric Technology: Pattern Analysis . . . . . . . . . . . . . . . . . . 102
Toepassingen van cryptografie
vii
11.4 System Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 11.5 Samenvatting en conclusies . . . . . . . . . . . . . . . . . . . . . . . . . . 109 12 Informatiebeveiliging binnen Siemens (Stefan Holdermans ) 12.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Gebruik van public-keycryptografie . . . . . . . . . . . . . . 12.3 Overzicht van Siemens’ public-keyinfrastructuur . . . . . . . 12.4 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
111 . 111 . 112 . 117 . 122
13 ITicket/Ticket Solution (Gerd-Jan van Gils ) 123 13.1 ITicket/Ticket Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 13.2 Beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 13.3 De toekomst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 14 Digital Credentials (Peter Scheer ) 14.1 Het Model . . . . . . . . . . . . . . . 14.2 Tonen van een Digital Credential . . 14.3 Aanvragen van een Digital Credential 14.4 Beperken van het gebruik . . . . . . 14.5 Conclusie . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
131 131 135 138 139 140
15 Pailliers Public-Key Cryptosysteem (Jurn Franken ) 15.1 Public-Key encryptie . . . . . . . . . . . . . . . . . . 15.2 Deciding Composite Residuosity . . . . . . . . . . . . 15.3 Een nieuw Probabilistic Encryption Scheme . . . . . 15.4 A New One-Way Trapdoor Permutation . . . . . . . 15.5 Bijna kwadratische decryptie complexiteit . . . . . . 15.6 Efficientie en Implementatie Aspecten . . . . . . . . . 15.7 Verklaring gebruikte notaties . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
141 141 142 142 143 144 145 146
16 Cryptografie met elliptische krommen (Erik Jan van Leeuwen ) 16.1 Eindige lichamen . . . . . . . . . . . . . . . . . . . . . . . . . . 16.2 Elliptische krommen over eindige lichamen . . . . . . . . . . . . 16.3 Elliptische krommen in cryptografie . . . . . . . . . . . . . . . . 16.4 Aanvallen op het ECDLP . . . . . . . . . . . . . . . . . . . . . 16.5 Evaluatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
147 147 150 154 157 159
17 Wireless security (Gido van 17.1 WEP . . . . . . . . . . . 17.2 Veiligheid van WEP . . 17.3 Draadloos veilig? . . . . 17.4 Conclusie . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
163 163 164 166 168
. . . .
169 . 169 . 171 . 175 . 177
der Star . . . . . . . . . . . . . . . . . . . .
) . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
18 AES - Rijndael (Niels Egberts ) 18.1 Totstandkoming van een standaard . . . . . . . 18.2 Specificaties van Rijndael . . . . . . . . . . . . . 18.3 De veiligheid van AES . . . . . . . . . . . . . . 18.4 Een chronologisch tijdoverzicht van het ontstaan
. . . . .
. . . .
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . . . . . . . van AES
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . .
. . . .
. . . .
viii
Inhoudsopgave
18.5 Samenvatting en Conclusies . . . . . . . . . . . . . . . . . . . . . . . . . 177 19 Real-time aanval op 19.1 Inleiding . . . . . 19.2 Werking . . . . . 19.3 De aanval . . . . 19.4 Conclusie . . . .
A5/1 (Eelko Penninkx ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
179 179 180 182 186
Bibliografie
187
Index
191
Voorwoord
Deze bundel is ontstaan uit het college Cryptografie dat in het najaar van 2002 aan de Universiteit Utrecht werd gegeven. Om de besproken stof te koppelen aan de praktijk van de cryptografie deed elke deelnemer een kleine case study als project. Er werd een cryptografisch systeem of toepassing bestudeerd, waarover een voordracht van 20 minuten werd gehouden. Vragen die werden behandeld waren o.a.: Waar is het voor gemaakt en wat doet het systeem precies? Hoe werkt het? Wie maken (of maakten) er gebruik van en is (was/wordt) het systeem veilig? Kan het worden gekraakt? Welke delen van de theorie worden in dit systeem toegepast? Over de 19 case studies werden 17 voordrachten gehouden op een mini-symposium op 9 december. Alle geschreven bijdragen treft u in deze bundel aan. De bundel kan beschouwd worden als een aanvulling op het boek Cryptografie: Beveiliging van de digitale maatschappij van Gerard Tel [Tel02], dat bij het college werd gebruikt. Stijl en layout van het boek zijn in de bijdragen in deze bundel overgenomen. De schrijvers van de bijdragen in deze bundel zijn: Marcel Blokpoel, Guido Diepen, Costyn van Dongen, Niels Egberts, Jurn Franken, Gerd-Jan van Gils, Lars Hemel, Stefan Holdermans, Roman Kakisina, Kevin Kwee, Erik Jan van Leeuwen, Nabil el Ouali, Eelko Penninkx, Pieter Poorthuis, Bas Ribbers, Peter Scheer, Gido van der Star, Joris Valkonet, Frank Verbruggen. We hopen dat alle lezers aan deze bundel plezier zullen beleven en dat de bundel als een zinvolle aanvulling op het boek wordt beschouwd. Gerard Tel, Januari 2003.
ix
Hoofdstuk 1 DMCA Door Costyn van Dongen
De DMCA, oftewel de Digital Millenium Copyright Act is een door het Congress van de Verenigde Staten ingestelde wet voor het beschermen van intellectuele eigendommen (IE). De artiest, auteur, programmeur kan de wetten gebruiken om op deze manier onrechtmatig kopie¨eren tegen te gaan, en zo geen geld te verliezen. Het concept ‘digital rights management‘ (DRM) is voortgekomen uit het idee dat er een eind moest komen aan ongeauthorizeerd kopi¨eren en distribueren van digitale intellectuele eigendommen. Op zich is dit natuurlijk niet zo’n slecht idee. De DMCA heeft het dan ook sinds 1998 onrechtmatig gemaakt om DRM systemen te omzeilen. De wet maakt alleen geen onderscheid tussen het omzeilen van DRM voor doeleinden die de auteurswet overtreden, en het omzeilen van DRM voor wettige ‘eigen gebruik’ doeleinden. Eigen gebruik doeleinden, in het Engels ’fair use’, houdt in dat een persoon voor zichzelf een kopie mag maken, van bijvoorbeeld een CD die in eigendom is, om te beluisteren in de auto of op werk. Het betekent dus dat als men een CD koopt met DRM, dat men geen recht heeft om een legale kopie te maken voor eigen gebruik, zonder daarvoor de DRM te omzeilen.
1.1
Artikelen in de DMCA
De relevante delen van de DMCA luiden: Sec. 1201. Circumvention of copyright protection systems (a) VIOLATIONS REGARDING CIRCUMVENTION OF TECHNOLOGICAL MEASURES- (1)(A) No person shall circumvent a technological measure that effectively controls access to a work protected under this title. The prohibition contained in the preceding sentence shall take effect at the end of the 2-year period beginning on the date of the enactment of this chapter. 1
2
DMCA
(2) No person shall manufacture, import, offer to the public, provide, or otherwise traffic in any technology, product, service, device, component, or part thereof, that– 1. is primarily designed or produced for the purpose of circumventing a technological measure that effectively controls access to a work protected under this title; 2. has only limited commercially significant purpose or use other than to circumvent a technological measure that effectively controls access to a work protected under this title; or 3. is marketed by that person or another acting in concert with that person with that person’s knowledge for use in circumventing a technological measure that effectively controls access to a work protected under this title. Dus, men mag geen DRM omzeilen en nergens aan werken en niets verkopen wat DRM omzeilt. De complete text van de DMCA is te vinden op: http://thomas.loc.gov/cgi-bin/query/z?c105:H.R.2281.ENR:
1.2 1.2.1
Gevolgen
Ontnomen Rechten Eigen Gebruik
Het auteursrecht biedt de auteurs middelen om zich te beschermen tegen misbruik, maar er bestaan ook enkele uitzonderingen, rechten voor de consument wat betreft hun gekochte IE waarop auteursrecht rust: • Het is toegestaan om kopie¨en te maken voor eigen gebruik. Daaronder wordt verstaan backup kopie (voor het geval het orgineel beschadigd wordt in verloop van gebruik), een kopie voor gebruik op andere plekken en media (je mag een kopie van een CD maken voor op je werk, je mag een CD ‘rippen’ en omzetten naar MP3 of Ogg Vorbis om het daarna in een persoonlijke MP3 speler te kunnen beluisteren, je mag van gekochte CDs remixes maken voor eigen luister plezier). • Het is toegestaan om onderdelen uit een IE te kopie¨eren voor academische en journalistiek doeleinden. Een journalist kan onderdelen uit een boek citeren voor een recensie of parodie doeleinden, bijvoorbeeld. • Als men een boek heeft gekocht, mag men het daarna weer verkopen. Er is geen restrictie op het doorverkopen van boeken. Je mag alleen geen kopie¨en van het boek maken.
1.3 Gevallen van Misbruik
3
De invoering van de DMCA bracht dus een vermindering van rechten met zich mee voor de consument. Het bedrijfsleven is er op vooruit gegaan, de consument er op achteruit. Als een consument een door DRM beveiligd werk koopt, mag hij niet meer z’n eigen gebruik rechten uitoefenen, omdat dat in zou houden dat de DRM omzeild zou moeten worden. Ik citeerde een stuk tekst uit de DMCA in het vorige onderdeel. Gelukkig dat er geen DRM op het DMCA document zaten, anders had ik niet rechtmatig deze tekst in mijn tekst kunnen zetten. 1.2.2
Onderzoek naar encryptie in gevaar
De DMCA zegt dus eigenlijk dat onderzoek naar bestaande beveiligingen opeens verboden zou zijn. Als een encryptie schema gebruikt is voor het beveiligen van een document, bijvoorbeeld, is het opeens onrechtmatig geworden om onderzoek te doen naar de veiligheid van dit encryptie schema. Het proberen te breken van encryptie schemas is een belangrijk onderdeel van onderzoek in encryptie. Bruce Schneier, in z’n artikel over het geval van Felten vs. RIAA (ivm SDMI, dit geval beschreven in sectie 1.3.1), zei: ”9. Unlike many academic disciplines, security is inherently adversarial. Researchers who invent security systems are always competing with those who break security systems. Due to the nature of how security works, it is impossible to categorically state that a security system is secure. It may be secure against all known attacks, but there is no guarantee that a successful attack will not be invented tomorrow. Despite not being able to prove security, it is quite possible to definitively show insecurity, by explaining how to break a system, or by publicly demonstrating one’s ability to do so. Since the presence of a negative result (break-in) shows that a security system is insecure, security can only be demonstrated by the lack of such results.” Dus, een belangrijk onderdeel van onderzoek naar beveiligingen is het schrijven van code om proberen een bestaand encryptie schema te breken. Hier volgt een aantal echte gevallen die zich hebben voorgedaan de laatste aantal jaren.
1.3
Gevallen van Misbruik 1.3.1
Professor Felten en de SDMI
In september 2000 werd er door een groep bekend als de SDMI, de Secure Digital Music Initiative, een nieuwe manier van beveiliging van digitale muziek voorgesteld. Dit maakte gebruik van watermerken die in de muziek verborgen zitten, die verder voor de beluisteraar niet te horen waren. Een muziekbestand zou vervolgens gebonden zijn aan het programma om een bestand af te spelen. Zo zou kopie¨eren naar een andere computer zinloos zijn omdat het afspeelprogramma van de ander het afspelen zou weigeren. Het watermerk was een manier van identificeren van bestanden.
4
DMCA
De SDMI daagde onderzoekers in de informatica wereld uit in een wedstrijd om het watermerk uit een muziek stuk te halen zonder dat de kwaliteit daarvan hoorbaar achteruit ging. Enkele onderzoekers van Princeton University zijn hier in geslaagd, samen met collegas van Rice University en Xerox. Toen ze hun resultaten wilden publiceren op een conferentie kwamen juristen van de SDMI die stelde dat de wetenschappers wettelijk zouden worden vervolgd als ze hun resultaten zouden presenteren. Dit werd ook gemeld aan de werkgevers van de wetenschappers en aan de organisatoren van de conferentie. Tegen hun zin in hebben de wetenschappers toen hun werk niet op de conferentie publiek gemaakt. Pas na het aangespannen van een rechtzaak in de Amerikaanse Federal Court, konden ze uiteindelijk hun werk publiceren. Meer informatie over de SDMI te vinden op de site van Professor Felten: http://www.cs.princeton.edu/sip/sdmi/ 1.3.2
Dimitry Sklyarov en Adobe
Adobe kwam in 2001 met hun e-Book file formaat. Dit formaat leek op PDF, maar het was speciaal bedoeld voor het publiceren van boeken in electronisch formaat. De inhoud was versleuteld om kopi¨eren tegen te gaan. Deze encryptie was makkelijk te breken omdat de sleutel in het document zelf was verborgen. De Russische programmeur Dimitry Sklyarov had een programma geschreven, de Advanced e-Book Processor, dat deze e-Books omzette naar PDF formaat. Het programma werd vervolgens verkocht door zijn werkgever, Elcomsoft Co. Ltd. om e-Books over te kunnen zetten op PDAs en laptops vanaf PCs. Blinden zouden de software kunnen gebruiken om hun e-Book te laten voorlezen door text-to-speech programmas. Toen Dimitry in Juli 2001 naar de Amerikaanse beveiligings conventie DEFCON ging om daar een presentatie over z’n werk te geven, lichtte Adobe de FBI hierover in. De FBI heeft Dimitry toen gearresteerd en in de gevangenis gestopt, waar hij 5 maanden in voorarrest heeft gezeten, wachtend op z’n proces. Hij mocht uiteindelijk in December 2001 van de Department of Justice (DoJ) naar huis, maar de DoJ is nog steeds bezig met een proces tegen z’n werkgever, Elcomsoft. Dimitry heeft nooit een auteursrecht geschonden door het kopie¨eren van e-Books, maar heeft alleen een programma geschreven dat mischien ooit door mensen die hij niet zou kennen, gebruikt zou worden om de auteurswet te schenden. Dimitry’s programma is vooral populair onder de blinden, die met behulp van zijn programma de gedecodeerde texten in een text-to-speech programma kunnen doen, zodat het boek hun voorgelezen wordt. En het programma van Dimitry was zo dat je alleen het kon decoderen als men het al kon lezen met een geauthorizeerde e-Book reader (en er dus recht op had). Onlangs (5 December, 2002), is er in de rechtzaak van Elcomsoft tegen Adobe (die sinds een paar weken weer op gang was) uitgekomen dat Adobe op het web geen enkel eBook heeft kunnen vinden dat met de tool van Elcomsoft gekraakt was. Een engineer bij Adobe vertelde dat, na uitgebreid zoeken, hij geen enkel e-Book had kunnen vinden dat met de Advanced e-Book Processor gekraakt was. Meer hierover te vinden op: http://www.reuters.co.uk/newsArticle.jhtml?type=internetNews&storyID=1855398 Sinds het geval van Dimitry zijn er al verschillende onderzoekers in encryptie, zoals
1.3 Gevallen van Misbruik
5
landgenoot Niels Ferguson, die hun resultaten niet publiceren of ander onderzoek zijn gaan doen. 1.3.3
Niels Ferguson en Intel
Intel had een encryptie systeem bedacht voor video streams, het zogenaamde HDCP, High bandwidth Digital Content Protection. Niels Ferguson had een groot zwakke plek in dit encryptie schema gevonden, maar na Dimitry heeft Niels alle referenties naar, en publicaties van zijn onderzoek van zijn website gehaald. Hij gaf als reden dat hij ook regelmatig naar de Verenigde Staten ging en bang was gearresteerd te worden. 1.3.4
FatWallet en WalMart
De site FatWallet is een site voor consumenten door consumenten, waar mensen de prijslijsten van de dag van winkels, winkeltips, kritiek over winkels, en dergelijke kan plaatsen. Enkele dagen voor ‘Black Friday’ (de dag na Thanksgiving), werd er anoniem de prijslijsten van een aantal warenhuizen op de site geplaatst. Dit nog voordat de warenhuizen zelf hun lijsten hadden gepubliceerd. Het was dus kennelijk een probleem van een employee die de informatie uitlekte. Wallmart, een grote supermarkt keten in de VS, en verschillende andere warenhuizen vonden dit niet leuk en hebben de DMCA gebruikt om FatWallet hiermee te laten stoppen. Hun argument was dat op hun prijzen een auteursrecht rustte, en dat FatWallet in overtreding was van de auteurswet. Prijzen van goederen zijn feiten, niet IE, en het gebruik van de DMCA is eigenlijk niet van toepassing. Maar sites zoals FatWallet hebben geen geld om dit in het gerechtshof uit te vechten, en halen dan maar de lijsten van hun site. De DMCA is in dit geval gemakkelijkste wetstelsel om te gebruiken. Als de DMCA er niet was zou er een andere wet gebruikt zijn om de websites te onderdrukken. Dit gebeurt in de VS steeds meer de laatste tijd. Een groot bedrijf klaagt een kleine aan, ook al is het kleine bedrijf in de meeste gevallen duidelijk niet schuldig, maar omdat het grote bedrijf meer geld heeft dan het kleine, moet het kleine bedrijf wel meewerken. ”He who has the most money, wins.” 1.3.5
MP3 maken
Een gevolg van de DMCA zou kunnen zijn dat je binnenkort niet meer CDs die je gekocht hebt naar MP3 (of ander formaat) kan rippen en op CD branden, of naar je draagbare MP3 speler uploaden. Als een CD dan beveiligd is, en je gebruikt een programma wat die beveiliging omzeilt, ben je onrechtmatig bezig, volgens de DMCA. Het maken van persoonlijke kopie¨en voor eigen gebruik was altijd toegestaan onder de auteurswet, maar bedrijven kunnen nu, door het op de markt brengen van CDs met kopieerbeveiliging, dit verhinderen. De programmas die deze CDs ‘repareren’ zijn onrechtmatig onder DMCA, en de bedrijven kunnen de auteurs hiervan nu vervolgen.
6
DMCA
Er zijn nu al beveiligde CDs op de markt. Platen maatschapijen zoals Sony en Universal hebben al meerdere CDs hier in Nederland uitgebracht. Deze hebben een Table of Contents (TOC) die met opzet corrupt is, en door computer CD-ROM spelers als onleesbaar gezien worden (of, in het geval van de iMac, er ook nog helemaal niet meer uit te krijgen zijn). Normale CD spelers die alleen audio CDs kunnen lezen kijken niet naar de TOC en zullen de CD wel afspelen. Nu had iemand ondekt dat door een bepaald spoor op de CD met een zwarte stift te markeren, de CD weer leesbaar zou worden voor CD-ROM spelers. Volgens de DMCA zou de stift dus eigenlijk een ‘circumvention device’ zijn en dusdanig verboden. Maar, gelukkig voor Staedler en andere fabrikanten, moet het wel primair voor omzeilings doeleinden gemaakt zijn, zoals is beschreven in de DMCA (zie sectie 1.1). 1.3.6
DVDs kijken zonder MS Windows: DeCSS
Op 3 februari 2000 besliste een Amerikaanse rechter in New York, Judge Kaplan, dat de decryptie software DeCSS beveiliging op DVDs omzeilt en dus strijdig is met de DMCA. Het was niet de bedoeling van de programmeur van DeCSS om onrechtmatig kopie¨en te gaan maken van DVDs, maar hij wilde slechts zijn DVD collectie ook op zijn computer onder Linux kunnen bekijken. Hij had de DeCSS code verkregen door ‘reverse engineering’ toe te passen op een stuk bestaande software. Reverse engineering is toegestaan onder de autersrechtwet. Helaas maakte dit niet uit voor de rechtzaak. De rechter deed de uitspraak dat het in het vervolg onrechtmatig is om de DeCSS software te verspreiden. Niet dat dit veel geholpen heeft, want er zijn steeds meer sites met DeCSS software en ook intussen spelers onder Linux die DVDs kunnen afspelen. Over DeCSS is een nog een ander hoofdstuk in het boek gewijd, zie hoofdstuk 5. 1.3.7
Verdere gevallen
Er zijn nog meer gevallen van wetenschappers en onderzoekers die hun resultaten niet publiceren, omdat ze bang zijn te worden vervolgd door bedrijven die de DMCA gebruiken om hun slecht uitgedachte producten te beschermen. Zo zijn er ook onderzoekers die niet meer naar conferenties in de Verenigde Staten gaan. Zo worden een aantal conferenties niet meer in de VS gehouden. Ze zijn verhuisd naar andere landen, waar de onderzoekers in ieder geval niet vervolgd kunnen worden door de FBI. Een meer uitgebreide lijst van gevallen waarin de DMCA misbruikt is kan worden gevonden bij de Electronic Frontier Foundation, die een white paper hebben geschreven Unintended Consequences: Three Years Under the DMCA. Te vinden op hun website: http://www.eff.org/IP/DMCA/20020503_dmca_consequences.html En het trefwoord DMCA intypen in Google levert natuurlijk ook veel informatie op.
1.4 In Europa: de EUCD
1.4
7
In Europa: de EUCD
In Europa hebben we de European Union Copyright Directive (EUCD). Dit is een aantal richtlijnen die door de EU zijn opgezet, volgens een mandaat van de door de VS gedomineerde WIPO, oftewel de World Intellectual Property Organization. De individuele EU lidstaten zijn verplicht binnen een bepaald termijn deze richtlijnen te gebruiken om in eigen land de wetgeving aan te passen, dan wel nieuwe wetten in te voeren. De overheden hebben tot 22 December 2002 de tijd. Een goed overzicht van de huidige implementatiestatus is te vinden op: http://wiki.ael.be/index.php/EUCD-Status 1.4.1
Status van de EUCD in Nederland
In Nederland bestaat de EUCD nu als concept wetsvoorstel, het wetsvoorstel Uitvoering Richtlijn Auteursrecht (Kamerstuk 28 482). Op de website van het Ministerie van Justie is een dossier te vinden over de huidige status van de auteursrecht wetsvoorstel: http://www.justitie.nl/themas/wetgeving/dossiers/auteursrecht/index.asp Op het moment ligt het wetsvoorstel bij de Tweede Kamer. Die moet uiteindelijk nog beslissen over de implementatie. Voor meer informatie, zie: http://www.xs4all.nl/~phulshof/reactie_wetsvoorstel.html 1.4.2
Problemen met de Uitvoering Richtlijn Auteursrecht
De Uitvoering Richtlijn Auteursrecht heeft, net zoals de DMCA, een artikel die gaat over technologische beveiligingen en het eventuele omzeilen daarvan. Dit artikel (Artikel 6) houdt niet veel anders in dan de DMCA, en vormt dus ook een zelfde gevaar voor gebruiksrechten en wetenschappelijk onderzoek naar beveiliging. Het bedrijfsleven, consumenten en academici hebben in november 2001 kans gehad om in een forum te reageren op het wetsvoorstel. Hierop hebben verschillende instanties gereageerd, waaronder BUMA/STEMRA, het Nederlands Uitgeversverbond, de Nederlandse Vereniging voor de Rechtspraak, de NLIP (Branchevereniging van Nederlandse Internetproviders), de Stichting Auteursrechtbelangen en de Orde van Advocaten, om er maar een paar te noemen. De complete lijst is te vinden op: http://www.justitie.nl/themas/wetgeving/dossiers/\ auteursrecht/integrale_reacties/Integrale_reacties.asp De reacties van deze partijen hebben er uiteindelijk niet toe geleid dat het betreffend artikel zodanig werd aangepast dat de Uitvoering Richtlijn Auteursrecht geen gevaar meer is voor de gebruiksrecht en wetenschappelijk onderzoek naar beveiliging. Eenendertig deskundigen op het gebied van technologie en auteursrecht hebben op 9 oktober 2002 een open brief gestuurd aan de leden van de vaste Kamercommissie Justitie en de ICT-woordvoerders van de fracties. Hierin zetten zij hun bezwaren uiteen tegen het huidige wetsvoorstel. Ze geven ook een oplossing aan, namelijk een verandering in het wetsvoorstel die er zou toe moeten leiden, dat er in ieder geval geen ambiguiteiten meer mogelijk zijn in interpretatie van de wet. Ze vragen aan de Kamercommissie en ICT-woordvoerders om:
8
DMCA
• garanties te scheppen dat werken in het publieke domein openlijk en vrijelijk toegankelijk zullen blijven en • een expliciete vrijwaring te cre¨eren in het wetsvoorstel van consumentenen onderzoeksrechten, conform overweging 48 van de Richtlijn: “Een dergelijke rechtsbescherming moet in overeenstemming zijn met het evenredigheidsbeginsel en mag niet leiden tot een verbod van inrichtingen of activiteiten die een ander commercieel doel of nut hebben dan het omzeilen van de technische beveiliging. Deze bescherming mag met name het onderzoek op het gebied van de cryptografie niet hinderen.” (cursivering van ondergetekenden). Deze brief is te vinden op: http://www.xs4all.nl/overxs4all/auteursrecht/auteurswet.html We moeten maar zien of dit effect heeft gehad als de wet in werking treed op 22 december 2002. Het kan nog erger, zoals we in het volgende onderdeel zien.
1.5
Kwaad en erger: CBDTPA
De CBDTPA, de Consumer Broadband and Digital Television Promotion Act (was bekend als de SSSCA: Security Systems Standards and Certification Act), doet nog een schepje bovenop de DMCA. De CBDTPA is een voorgestelde wet in de VS, die makers van hardware en software verplicht om er voor te zorgen dat er in elk ‘consumer electronics device’ kopieer beveiliging zit (DRM). Dit voorstel is door de Walt Disney Corporation geschreven en door verder lobbyen van hun in de Senaat als voorstel gekomen. Op deze manier zou het onwettig worden om electronica te verkopen die geen kopieerbeveiliging had. Verder zou het ook onrechtmatig zijn om materiaal waar auteursrecht op zit te distribueren zonder adequate beveiliging. Alle hardware bedrijven in de VS zouden dan DRM moeten implementeren in hun apparaten, en buitenlandse bedrijven die geen DRM in hun apparatuur hebben zouden niet hun spullen mogen verkopen in de VS. Gevolgen? Men wordt dus verplicht om DRM software en hardware (zeg maar ‘policeware’) te hebben op elk electronisch apparaat wat inhoud met auteursrecht zou kunnen bevatten. Het onrechtmatig maken om dit te verwijderen. Alternatieve operating systemen zijn dan ook onrechtmatig, omdat deze de policeware niet zouden hebben of willen hebben. Installeren van bijvoorbeeld Linux of FreeBSD zou je dus in de gevangenis kunnen belanden. De wet is nog niet ingevoerd door Congres, omdat het nog door Senator Patrick Leahy is geblokkeerd. De wet kan alleen nog wel ter discussie komen volgend jaar. Er zijn ook nog andere senatoren die met vergelijkbare wetsvoorstellen bezig zijn. Zie een artikel in Wired Online: http://www.wired.com/news/politics/0,1283,51425,00.html
1.6 Conclusie
9
1.6
Conclusie
De DMCA en EUCD zijn niet duidelijk waar de wetten en richtlijnen die zij aangeven wel en niet van toepassing zijn. Er zouden veranderingen en duidelijkheid in het woordgebruik van de wetten moeten komen, zodat de consumenten dezelfde rechten blijft houden en het wetenschappelijk onderzoek naar cryptografie en beveiligingsmethodes gewoon mag doorgaan.
10
DMCA
Hoofdstuk 2 An.on Door Roman Kakisina
An.on staat voor ”anonimitat online”. Het is een project dat in 2001 is opgezet door het Unabh¨angigen Landeszentrum f¨ ur Datenschutz Schleswig-Holstein, de TU Dresden en de FU Berlin en duurt tot en met het jaar 2003. Het wil een bijdrage leveren aan de huidige protocollen en infrastructuur ten behoeve van de anonimiteit en onwaarneembaarheid op het internet. Het doel van het project is dan ook een anonimiteit en onwaarneembaarheid te bewerkstelligen voor elke gebruiker van het internet. Dit heeft geleid tot de ontwikkeling van een tool, JAP, welke kosteloos gedownload kan worden van de website http://anon.inf.tu-dresden.de/. Om Jap en de idee¨en erachter beter in kaart te brengen zullen allereerst een aantal zaken aan de orde komen die de basis hebben gevormd van de uiteindelijke tool. In volgende sectie zullen een aantal eenvoudige mogelijkheden, welke de anonimiteit zou verhogen, uiteen worden gezet. En wat voor rol deze hebben gespeeld in jap, wordt in de daarop volgende sectie verduidelijkt.
2.1 2.1.1
Inleiding
Waarom, Wie en Wat?
Waarom is anonimiteit op internet zo belangrijk? Allereerst omdat het een van onze grondrechten is. De grondwet gebiedt, volgens de bescherming van persoonlijke gegevens, dat deze gegevens slechts dan voor anderen bekend mogen worden, mits de betreffende persoon daarmee instemt. Bovendien is het zeer begrijpelijk dat mensen die hulp of advies zoeken op het internet niet willen dat iedereen weet van hun problemen. Gebruikersgegevens worden ook voor bedrijven en instanties interessanter. Zij gebruiken deze om zogenaamde profielen samen te stellen om ze vervolgens te belasten met spam, een van de grootste ergenissen van het internet. 11
12
An.on
Kader 2.1: Niet iedereen is even enthousiast. 3. Dezember 2002 PRESSEMITTEILUNG Autorit¨are Staaten behindern AN.ON Deutsche Firmen und Organisationen mit ausl¨andischen Dependancen nutzen f¨ ur ihre Internetrecherchen offenbar zunehmend das im AN.ON-Projekt entwickelte Anonymit¨atstool ”JAP”. Mit diesem Tool ist es m¨oglich, auch aus L¨andern mit beschr¨anktem Internetzugriff freien Informationszugang zu erlangen. Unterdessen wurde bereits vereinzelt der Zugriff auf die Anonymit¨atsserver aus solchen L¨andern, die u ugen, unterbunden. Darauf ¨ber keine demokratische Staatsform verf¨ hat nunmehr das Projekt AN.ON seinerseits reagiert. In einigen F¨allen konnte inzwischen eine L¨osung gefunden werden, um die Sperrung des Zugriffs auf die Anonymit¨atsserver zu umgehen. Die Behinderung von AN.ON durch undemokratische Staaten werfe nat¨ urlich die Frage auf, ”ob die Anonymisierung der Anonymisierung m¨oglich ist”, meint Dr. Hannes Federrath, Leiter der JAP-Entwicklung an der FU Berlin und TU Dresden. Der Leiter des Unabh¨angigen Landeszentrums f¨ ur Datenschutz, Dr. Helmut B¨aumler, erkl¨arte, der Vorgang zeige zweierlei: ”Fortschrittliche Datenschutztechnologien sind nicht nur f¨ ur den Schutz der Privatsph¨are der B¨ urgerinnen und B¨ urger notwendig, sondern auch f¨ ur die Wirtschaft von zunehmender Bedeutung. Zum anderen ist bezeichnend, dass der Anonymisierungsdienst AN.ON vornehmlich undemokratischen Staaten ein Dorn im Auge ist. Sie f¨ urchten die Autonomie der Internetnutzer und sehen ihre Chancen schwinden, diese auf Schritt und Tritt zu u ¨berwachen.” Een groot deel van de mensen denkt al te beschikken over anonimiteit op internet. Alles wat zij doen achter hun computer zijn toch zaken waar niemand anders weet van heeft. Niets is minder waar. Door de activiteiten op het net, hetzij het bezoeken van een website, hetzij het versturen van een email, wordt er door elke gebruiker een digitaal spoor achtergelaten, waaruit veel van die activiteiten te achterhalen is. Informatie waarover instanties als de politie en geheime diensten maar al te graag willen beschikken, maar voor anderen, bijvoorbeeld je Internet Service Provider (ISP) meer een last is. Iedereen zou in principe dit digitale spoor kunnen ’waarnemen’, mits zij toegang hebben tot het net. Dit geldt voor zowel interne waarnemers, mensen van ISP, netwerkbeheerders en andere gebruikers die lokaal op hetzelfde netwerk zitten, als voor de externe waarnemers. Deze laatste moet weliswaar meer moeite doen, maar kunnen toch nog betrekkelijk makkelijk aan de gegevens komen. Wat kan dan precies waargenomen worden? Alle gegevens op het internet worden verzonden in kleine datapakketten. Al deze pakketten bevatten een adres en geadresseerde,
2.2 Proxies & Mixen
13
welke gerepresenteerd worden door een uniek nummer, het zogenaamde IP-adres. Bij elke sessie op het internet krijgt elke gebruiker een dergelijk nummer toegewezen. Wanneer er gebruik wordt gemaakt van een inbelverbinding wordt het IP-adres verbonden met je telefoonaansluiting. Waarnemers hoeven ’slechts’ toegang te hebben tot die toewijzing en de datapakktetten om zo profielen te kunnen cre¨eren. 2.1.2
Cookies
Een ander aspect welke anonimiteit op het net beperkt, zijn zogenaamde cookies. Deze geven bezoekers van een bepaalde website een uniek kenmerk die bij elk bezoek van de webserver wordt overhandigd. Om de anonimiteit te verhogen zullen gebruikers cookies en javascript moeten uitschakelen. Het nadeel daarvan is dat veel websites dan niet meer toegankelijk zijn, omdat velen gebruik maken van die gegevens om instellingen aan te passen om zodoende de site voor de bestemde browser te optimaliseren. Om toch de cookies op een of andere manier uit te schakelen zijn er al vele tools beschikbaar die kosteloos zijn te downloaden. Deze zorgen ervoor dat cookies eenmaal worden aangenomen, maar na elke sessie weer worden verwijderd. De tool cookiecooker gaat daarin nog een stap verder. Deze gooit de cookies niet weg, maar mengt ze over een netwerk van cookie-servers met cookies van andere gebruikers, met als gevolg dat de betreffende webservers verward raken en niet in staat zullen zijn correcte profielen samen te stellen. 2.1.3
Anonimiteit & Onwaarneembaarheid
De gedachte dat absolute anonimiteit als enkeling niet te bereiken is, vormt de basis van het project. Wanneer deze enkeling echter lid is van een groep, waarvan de overige leden hetzelfde gedrag vertonen, is het voor een waarnemer moeilijker te constateren welk lid welke website aanvraagt, omdat er nu onderscheid gemaakt moet worden gemaakt tussen een groter aantal gebruikers waarvan de verschillen minimaal zijn. Onwaarneembaarheid gaat nog een stapje verder. Deze houdt in dat een waarnemer u ¨berhaupt niet kan bepalen of een gebruiker op een bepaald tijdstip actief is of niet. Zogenaamde dummy-traffic speelt hierbij een cruciale rol. Dummy-traffic is verkeer dat wordt gegenereerd wanneer een gebruiker niet actief is, waardoor die gebruiker op elk willekeurig moment dataverkeer heeft en het voor een waarnemer ten alle tijde de schijn heeft dat die gebruiker actief is.
2.2
Proxies & Mixen 2.2.1
Proxies
Om anonimiteit te bereiken, dat wil zeggen voor de webserver onbekend te blijven, dienen aanvragen niet direct gericht te worden tot de webserver, maar moet dat gebeuren via een omweg. Hiervoor zijn de anon-proxies ge¨ıntroduceerd. Dit zijn als het ware
14
An.on
vervangers van de browser. De gebruiker vraagt nu niet de browser maar de proxies om een bepaalde website, waarna de proxie namens die gebruiker de betreffende webserver vraagt om de website en het antwoord vervolgens laadt in de browser. Op deze manier kan anonimiteit jegens de webserver worden bereikt en zelfs jegens je ISP, mits versleuteling is toegepast. Echter voor de proxie is nog steeds bekend welke aanvraag bij welke gebruiker en webserver hoort. Bij het gebruik van proxies is het zaak meer dan een proxie te gebruiken om je aanvraag te behandelen. Zou er tot een bepaald moment slechts 1 proxie gebruikt worden dan is het voor een waarnemer goed mogelijk te achterhalen welk aanvraag bij welk IP-adres hoort. Een ander nadeel van proxies is het feit dat weinig bescherming biedt tegenover externe waarnemers, die alle verbindingen in de gaten houden (Big Brother ). Deze kunnen zeer nauwkeurig nagaan op welk tijdstip een aanvraag de proxie is ingegaan. Zelfs versleuteling zou hiertegen geen bescherming bieden, omdat na lange observatie alsnog het verband te leggen is tussen IP-adres en aanvraag vanwege de korrelatie wat betreft tijd tussen die twee. 2.2.2
Mix-Netwerk
Een mix-netwerk bestaat uit een aantal computers, de mixen, die over het internet met elkaar vebonden zijn. Het concept van de mix is ontwikkeld door David Chaum in 1981 voor de anonieme verzending van email. Met een aantal aanpassingen, die niet verder besproken zullen worden, is het concept goed toe te passen op het anoniem surfen. In tegenstelling tot een aaneensluiting van proxies, bieden mixen ook bescherming tegen waarnemers van alle verbindingen. In een mix worden aanvragen namelijk veranderd en opnieuw verstuurd. Zowel de ingaande als de uitgaande datapakketten hebben gelijke grootte, opdat grootte geen criterium zou kunnen zijn om verbanden te leggen tussen ingaande en uitgaande pakketten van een mix om op die manier relaties tussen IP-adressen en webservers te kunnen vinden. Ook zal een mix niet direct alle verwerkte data doorsturen. Nadat een pakketje is verwerkt/veranderd, wordt eerst gewacht totdat er een bepaald aantal pakketten verstuurd kan worden. De volgorde van de pakketten wordt gemixt en vervolgens worden ze tegelijkertijd verzonden naar de volgende mix of webserver. Hierdoor kunnen waarnemers, zelfs als ze alle verbindingen in de gaten houden, niet vaststellen welke gebruiker welke aanvraag heeft gedaan. Het aanvragen van een website is te vergelijken met het anoniem versturen van een brief via meerdere postkantoren. De afzender stuurt het eerste postkantoor de aanvraag die meerdere malen is ’beveiligd’ met behulp van enveloppen. Het postkantoor opent de envelop, waarin opnieuw een envelop zit met het adres van het tweede postkantoor. Deze opent vervolgens die envelop en stuurt de envelop die daar weer in zit naar de volgende etc. De brief is de aanvraag, de postkantoren de verschillende mixen en het uiteindelijke
2.3 Java Anon Proxie (JAP)
15
Kader 2.2: Java Anon Proxie
adres de website. Het is belangrijk dat de afzender zijn brief dusdanig beveiligd dat de brieven slechts in de juiste volgorde van postkantoren open te maken zijn. Hiervoor dient de afzender zijn beveiliging te beginnen met de laatste in de volgorde, opdat alleen deze in staat zal zijn het resultaat te lezen. Vervolgens dient hij deze weer te beveiligen tegen de voor laatste van de volgorde etc. (In de volgende sectie zal uitgebreider worden ingegaan op deze procedures). Bij het gebruik van de mixen is het noodzakelijk dat er meer dan ´e´en gebruikt wordt. Wanneer er slechts ´e´en gebruikt wordt, zou dat ten koste van de anonimiteit gaan, omdat de betreffende mix kennis heeft van zowel de aanvraag als van wie deze afkomstig is. Het uiteindelijk aantal mixen, waarover een gebruiker zijn aanvragen gemixt wil hebben is afhankelijk van het vertrouwen van de gebruiker in de mixen. Er hoeft er maar een betrouwbaar te zijn, om anonimiteit te bewerkstelligen. Hierdoor zijn de keuzes van mixen dan ook zeer belangrijk Deze dienen zorgvuldig uitgekozen te worden. Want wanneer al de mixen met elkaar samenwerken is het mogelijk van de gebruikers te achterhalen welke websites door welke gebruiker is aangevraagd. Hierbij wordt gedacht aan instellingen en instanties bij welke discretie sowieso bevorderd wordt, zoals kerkelijk organisaties of banken.
2.3
Java Anon Proxie (JAP)
De Java Anon Proxie is opgebouwd uit 3 componenten, de infoservice, mix-kaskaden en jap. Zie kader 2.2.
16
An.on
2.3.1
Infoservice
Dit is een databank welke informatie bijhoudt van de actuele mix-kaskaden. Deze gegevens kunnen door een gebruiker worden opgevraagd om vervolgens de mate van anonimiteit van die gebruiker te bepalen. 2.3.2
Mix-Kaskaden
Het is nu wel duidelijk dat er meer dan 1 mix gebruikt moet worden. Nu was de vraag hoe dit te implementeren, waarbij gekozen moest worden uit 2 mogelijkheden. De eerste was de gebruiker de mogelijkheid te geven zelf een volgorde van mixen samen te stellen. Dit is de meest gebruikersvriendelijke keuze, maar zou wel ten koste gaan van de anonimiteit. Zou iedereen zijn of haar eigen volgorde mogen kiezen, is de kans groter dat er heel veel verschillende routes zijn. Het zou dan voor een waarnemer makkelijker zijn om gebruikers te onderscheiden, dat wil zeggen dat de anonimiteit gevaar loopt. Uiteindelijk is er gekozen voor zogenaamde mix-kaskaden. Dit zijn niets anders dan vaste volgordes van mixen. Een mix behoort tot hoogstens 1 mix-kaskade en een mix-kaskade bestaat uit minstens 2 mixen. Een gebruiker kan uiteindelijk wel uit verschillende mix-kaskaden kiezen. 2.3.3
Jap
De Jap is een programma dat elke gebruiker op zijn computer dient te installeren. Bij de installatie ervan wordt eerst verbinding gezocht met de infoservice, welke bepaalt of de laatste update is gebruikt. Vervolgens zal de gebruiker moeten kiezen over welke mix-kaskaden deze wil dat de aanvragen worden verstuurd. Dit programma versleutelt de aanvraag van de gebruiker en stuurt ze vervolgens naar de eerste mix-kaskade. Uiteindelijk zal de Jap het verkregen versleutelde antwoord van die kaskade terugkrijgen en die inladen in de browser. 2.3.4
Versleuteling
Jap maakt gebruik van zowel symmetrische als asymmetrische versleuteling. Voor de symmetrische versleuteling wordt AES gebruikt met een sleutellengte van 128 bits. En voor Assymetrische versleuteling wordt er gebruikt gemaakt van RSA met een sleutellengte van 1024 bits. Het programma Jap weet de volgorde van mixen, mix1 . . . mixa , die door een gebruiker is gekozen. De versleutelingsprocedure voor de aanvraag gebeurt in a stappen, met a het aantal gebruikte mixen. Het bericht, de aanvraag, wordt met behulp van de 128bits sleutel met AES versleuteld. Dit gebeurt symmetrisch vanwege effici˝entie redenen. Bij het gebruik van RSA is het noodzakelijk dat elke gebruiker ervan, in dit geval de verschillende mixen, beschikt over een geheime sleutel en een publieke sleutel. Met deze publieke sleutels zullen de symmetrische sleutels versleuteld worden.
2.3 Java Anon Proxie (JAP)
17
Kader 2.3: Versleuteling in Jap Mixvolgorde Publieke sleutels Geheime sleutels Symmetrische sleutel
mix1 . . . mixa pn van mixn met n=1 . . . a gn van mixn met n=1 . . . a k1
Encryptie van x1 Stap 1: Ek1 (x1 )=x2 , Epa (k1 )=k2 Stap 2: Ek2 (x2 )=x3 , Epa−1 (k2 )=k3 ... Stap a: Eka (xa )=xa+1 , Ep1 (ka )=ka+1 Decryptie van xa+1 , ka+1 Mix 1: Dg1 (ka+1 )=ka , Dka (xa+1 )=xa Mix 2: Dg2 (ka )=ka−1 , Dka−1 (xa )=xa−1 ... Mix a: Dga (k2 )=k1 , Dk1 (x2 )=x1 In stap 1 wordt aanvraag x symmetrisch versleuteld met een door Jap gekozen sleutel k1 . Vervolgens wordt deze sleutel versleuteld met de publieke sleutel mixa . Het resultaat hiervan, k2 , dient als symmetrische sleutel in de volgende stap. In stap 2 wordt de inmiddels versleutelde aanvraag x nogmaals versleuteld met de symmetrische sleutel, k2 , verkregen door de versleuteling van de symmetrische sleutel gekozen door Jap. Vervolgens wordt k2 weer versleuteld met de publieke sleutel van mixa−1 . Dit gaat zo door tot in stap a ook de publieke sleutel van de eerste mix is gebruikt om de symmetrische sleutels te encrypten. Het uiteindelijke resultaat daarvan zal naar de eerste mix worden verstuurd. Het nut van deze versleutelingen is dat het bericht en de oorspronkelijk symmetische sleutel dusdanig zijn ge˝encrypt dat het resultaat slechts te achterhalen is wanneer de bovenstaande procedure in de omgekeerde volgorde, dus de volgorde van mixen die de gebruiker heeft gekozen, weer wordt gedecrypt. Dit is slechts mogelijk met behulp van de geheime sleutels van alle gebruikte mixen. Hierdoor is het zo dat de eerste mix alleen kennis heeft van wie de aanvraag afkomstig is, maar weet niet voor welke webserver. En de laatste mix weet slechts voor welke webserver de aanvraag geldt, maar niet van wie deze afkomstig is. Op de terugweg kan dankbaar gebruik worden gemaakt van het feit dat alle mixen nog beschikken over een symmetrische sleutel. Het antwoord van de webserver wordt allereerst verzonden naar de laatste mix (mixa ). Deze versleutelt het antwoord met ’zijn’ symmetrische sleutel en stuurt het door naar mixa−1 . Deze doet hetzelfde met ’zijn’ symmetrische sleutel en stuurt het op zijn beurt weer door naar de vorige mix. Totdat uiteindelijk de eerste mix het versleutelde antwoord naar Jap terugstuurt. Deze heeft als enige (mixa uitgezonderd) kennis van alle symmetrische sleutels, waardoor deze het
18
An.on
antwoord kan ontsleutelen en de opgevraagde site kan laden in de browser. 2.3.5
Zwakheden
Doel van het project was een anonimiseringsdienst te ontwikkelingen, welke bestand zou zij tegen een zeer sterke aanvaller/waarnemer. Het huidige systeem heeft echter 2 grote zwakheden: • Een mix mag niet door een aanvaller gecontroleerd worden en niet samenwerken met een mix. • Een aanvaller mag niet alle gebruikers controleren. Op dit moment is het systeem nog in ontwikkeling en zijn er nog een tal van mogelijke aanvallen denkbaar. Het systeem is nog niet dusdanig sterk dat het aanvallen van een zeer sterke aanvaller kan afslaan. Dit komt deels doordat veel van de mixfunctionaliteiten nog niet volledig zijn ge¨ımplenteerd. Ook kan zogenaamde dummy-traffic nog niet ge¨ımplenteerd worden. Dit vanwege efficientie-overwegingen. Alle gebruikers beschikken over zeer snelle verbindingen en om dummy-traffic te kunnen realiseren zonder in te moeten leveren op de kwaliteit van de dienst zullen de mixen een veelvoud van het huidige dataverkeer moeten kunnen verwerken. Ook filtert Jap nog geen cookies. Om werkelijk anoniem te kunnen surfen zal de gebruiker: • de aanname van cookies uitschakelen, • cookies regelmatig verwijderen of • een tool downloaden die ze verwijdert
2.4
Samenvatting en conclusie
Anonimiteit en onwaarneembaarheid op internet is zeer moeilijk te realiseren. Inmiddels zijn er al verschillende anonymizers te dowloaden. Dit zijn tools die het een gebruiker mogelijk moet maken, anoniem over het internet te surfen. Zij hebben hun model echter gebasseerd op de aanname van een betrekkelijk zwakke aanvaller, omdat een sterke niet realistisch zou zijn op internet. In 95% van de observaties zullen zij wel gelijk hebben, maar om die overige 5% uit te sluiten is het zaak uit te gaan van een zo sterk mogelijke aanvaller. Stel bijvoorbeeld dat een encryptietool 99 van de 100 berichten goed versleuteld, maar de 100ste als klare tekst verstuurt. Dan zou deze tool toch niet te bruikbaar zijn. Er zijn echter situaties/aanvallen denkbaar, waarvoor er nog geen betrouwbaar systeem denkbaar is, maar waar de onder andere de ontwikkelaars van Jap de mogelijkheden nog aan het onderzoeken zijn.
2.4 Samenvatting en conclusie
19
Inmiddels maken duizenden gebruikers gebruik van Jap. Dit houdt in dat de huidige mix-servers een enorme verkeerslast moeten dragen. Uiteindelijk kunnen de betrokken instanties deze kosten niet alleen dragen. Men is dan ook bezig oplossingen te vinden voor dit probleem. Zo wordt er gedacht de anonimiseringsdienst niet meer kosteloos aan te bieden. Een andere mogelijkheid zou zijn de Jap-diensten door de verschillende staten te laten financieren. Ook de (technische) mogelijkheden hiervoor worden nader onderzocht. Voor verdere informatie verwijs ik u naar de volgende sites: • http://anon.inf.tu-dresden.de/ • http://www.inf.tu-dresden.de/ hf2/anon/index.html • http://www.datenschutzzentrum.de/projekte/anon/index.htm
20
An.on
Hoofdstuk 3 The Free Network Project Door Pieter Poorthuis
I worry about my child and the Internet all the time, even though she’s too young to have logged on yet. Here’s what I worry about: I worry that 10 or 15 years from now, she will come to me and say: ”Daddy, where were you when they took freedom of the press away from the Internet?” – Mike Godwin
3.1
Wat is Freenet
”Freenet is an adaptive peer-to-peer network application that permits the publication, replication, and retrieval of data while protecting the anonymity of both authors and readers.” – Heiko Jehmlich Freenet is een groot peer-to-peer netwerk zonder centraal (administratie)systeem, waarbij de opslag- en netwerkcapaciteit van alle computers gebundeld wordt om allerlei informatie gratis en anoniem te verspreiden. Freenet bereikt dit door de volgende eigenschappen: 1. Freenet is robuust, doordat het geen centraal (administratie)punt heeft. Er is dus geen centraal punt dat kan uitvallen. Informatie wordt altijd versleuteld opgeslagen, en verspreidt zich zeer snel over het hele netwerk. Hierdoor is het voor aanvallers vrijwel onmogelijk om een denial-of-service aanval op bepaalde informatie uit te voeren. 2. Freenet is prive, doordat het zeer moeilijk is om te erachter te komen welke informatie door wie wordt opgevraagd. De informatiestroom verloopt vrijwel altijd via meerdere nodes, zonder dat een node weet wat het begin- of het eindstation is. 21
22
The Free Network Project
3. Freenet is veilig, doordat alle informatie versleuteld en met een bekende checksum is opgeslagen, veel informatie is digitaal ondertekend en alle informatie wordt versleuteld verstuurd. 4. Freenet is efficient, doordat de beschikbaarheid van informatie schaalt met de vraag. De belasting op servers wordt gespreid, zodat Freenet geen last van het beruchte Slashdot-effect.
3.2
Ontstaansgeschiedenis
Ian Clarke is de oprichter van The Free Network Project. In juli 1999 heeft hij zijn paper A Distributed Decentralised Information Storage and Retrieval System gepubliceerd, wat zowel diende als raamwerk voor de technische uitvoering van het huidige Freenet als de noodzakelijke maatschappelijke verantwoording. De noodzaak voor een entiteit als Freenet wordt gebaseerd op het recht van vrijheid van meningsuiting: de enige manier om van dit recht verzekerd te zijn is iedereen de kans te geven anoniem te blijven. Kort na de publicatie van zijn paper hebben Clarke en een klein aantal vrijwilligers The Free Network Project opgestart. In maart 2000 kwam versie 0.1 uit en sindsdien is er veel geschreven over Freenet, echter meer over de implicaties voor het copyright dan over het hogere doel, de vrijheid van communicatie. De huidige versie is 0.5, dat een nog niet volwassen, maar al wel stabiel en werkbaar Freenet biedt.
3.3
Werking van Freenet
De interne werking van Freenet is te beschrijven met de volgende punten, die alle nader worden toegelicht: 1. Keys identificeren van een document 2. Opslaan beschikbaar stellen/mirroren van documenten 3. Queries (informatie over) een document opvragen 3.3.1
Keys
Met behulp van keys worden documenten geidentificeerd, waardoor het voor een eindgebruiker mogelijk wordt om bepaalde informatie op te vragen. Ook worden keys gebruikt tijdens het toevoegen van informatie, om te kijken of deze informatie zich al bevindt op het netwerk. Tijdens de ontwikkeling van Freenet tot nu toe zijn een aantal type keys ontwikkeld, waarvan de volgende in gebruik zijn: 1. Content-Hash-Key
3.3 Werking van Freenet
23
2. Keyword-Signed-Key 3. Signature-Verification-Key 4. Signed-Subspace-Key Content-Hash-Key De CHK is het werkpaard van Freenet: alle documenten worden ge¨ıdentificeerd door middel van de CHK. Derden kunnen dus elk document opvragen met de CHK. (N.B. Sommige documenten kunnen op meerdere manieren versleuteld zijn opgeslagen, waardoor je deze documenten wel kunt opvragen, maar de plain-text inhoud niet kunt zien) Een CHK wordt op de volgende manier gegenereerd: 1. CHK = File Key = hash(inhoud) 2. k = random encryption key van 132 bits 3. Encrypt inhoud met BCKG(k) De File Key is een 160 bits SHA-1 hash van de onversleutelde inhoud van het document. Deze hash koppelt het document aan een unieke bitstring en heet derhalve de File Key. Met de File Key worden documenten op het laagste niveau ge¨ıdentificeerd. Deze File Key wordt ook als controlesom gebruikt, zodat de ontvanger van een document de integriteit van het document kan controleren. Het veranderen van de inhoud door tussenliggende cancer-nodes wordt door de File Key computationeel ondoenlijk gemaakt. Nadat k is gekozen, wordt met een deterministische Block Cipher Key Generator (BCKG) een Rijndael-encryption key gegenereerd. Hiermee wordt het document versleuteld. Aan een CHK wordt gerefereerd met: CHK@File Key, Encryption Key Een voorbeeld van zo’n referentie is CHK@zdfaGTyeEygcbWqBOmVYW0BcGC8JAwE,fpR1hig2f0YqrYARYI0KHg Voor het decrypten van de inhoud van het document, wordt de Rijndael-encryption key gegenereerd uit de meegeleverde Encryption Key. Aangezien Rijndael een symmetrisch encryption-algoritme is, kan met de encryption key het document ook weer worden ontsleuteld. Het genereren van de encryption key gebeurt weer met de deterministische BCKG. Omdat de herbergende node alleen de CHK heeft, kan hij zijn eigen informatie niet ontsleutelen. Dit is een belangrijke eigenschap, aangezien dit plausibele onwetenheid van de node-eigenaar met betrekking tot de opgeslagen en langskomende informatie impliceert.
Keyword-Signed-Key De KSK wordt gevormd door een verzameling keywords die de inhoud van een document omschrijven. De verzameling keywords is de documentnaam en is geen meta-data voor search-engines. Derden kunnen dit document opvragen met de documentnaam.
24
The Free Network Project
De inhoud van een KSK is altijd een pointer naar een ander document (met een CHK of een SVK). Een KSK wordt op de volgende manier gegenereerd: 1. Private key k = hash(documentnaam) 2. Public key y = gk mod p (p = IPSec 1024 bits priemgetal, g = 2) 3. Encrypt inhoud met k 4. Signeer versleutelde inhoud met het Digital Signature Algorithm. 5. KSK = File Key = hash(y)
Zoals in het plaatje te zien, is de File Key de SHA-1 hash van de public key. De File Key wordt gebruikt om een document te identificeren en de integriteit van de inhoud te controleren. De SHA-1 hash van de keywords dient als basis voor de encryption key; met de BCKG wordt een Rijndael encryption key gegenereerd, zodat de inhoud (een pointer naar een CHK of SVK) versleuteld wordt opgeslagen. Na het toevoegen van een document aan Freenet wordt de documentnaam openbaar gemaakt, waardoor iedere gebruiker het versleutelde document kan opvragen en ontsleutelen. Aan een KSK wordt gerefereerd met: KSK@Documentnaam Hierin zit dus genoeg informatie om een document op te vragen en te ontsleutelen! Signature-Verification-Key Een SVK is een key die als inhoud een pointer heeft naar een ander document (met een SVK of CHK). Het speciale van de SVK is dat de inhoud digitaal gesigneerd wordt, zodat het mogelijk wordt voor de eigenaar om de inhoud van een SVK te wijzigen. Dankzij de private key heeft de eigenaar dus volledige controle over zijn documenten. Een SVK wordt als volgt gegenereerd: 1. Genereer een public - private keypair 2. Verencryption key de data met een key 3. Signeer de data met de private key
3.3 Werking van Freenet
25
4. SVK = File Key = hash(public key) Aan een SVK wordt gerefereerd met: SVK@File Key,Encryption Key Een voorbeeld van een referentie is: SVK@XChKB7aBZAMIMK2cBArQRo7v05ECAQ,7SThKCDy QCuODt8xPKzHA Ook hier geldt: de encryption key zit niet in de SVK, maar wordt gebruikt om de inhoud van de SVK te decrypten! Signed-Subspace-Key Het probleem van KSK’s is dat ze een zogenaamde flat-global-namespace hebben; er zit geen verplichte structuur in de naamgeving, zoals in een directory-structuur. Aangezien er geen centraal administratiepunt is, kan key-squatting een groot probleem worden. Key-squatting is het in gebruik nemen van KSK’s zodat derden deze KSK niet meer kunnen gebruiken. Gelukkig is hiervoor een mooie oplossing verzonnen. Iedereen op Freenet heeft de mogelijkheid een eigen stalling te cre¨eren: een persoonlijke subspace. Binnen deze subspace kan alleen de eigenaar van de private key documenten toevoegen of wijzigen. Het aanmaken van een SSK loopt volgens de volgende stappen: 1. Genereer een public - private keypair 2. Verzin een documentnaam 3. Encrypt inhoud met hash(documentnaam) 4. Signeer de hash(documentnaam) + versleutelde inhoud 5. SVK = hash(public key) 6. File Key = hash(SVK+hash(documentnaam)) Aan een SSK wordt gerefereerd met: SSK@Documentnaam, SVK
26
The Free Network Project
3.3.2
Opslaan van documenten
Elke gebruiker van Freenet communiceert met zijn eigen node met behulp van het Freenet Client Protocol. Dit protocol legt een laag bovenop het HTTP protocol, zodat elke web-browser met een node kan communiceren. Het toevoegen, opvragen en wijzigen van informatie is dus mogelijk met standaard software. De precieze werking van dit protocol is echter niet interessant voor de werking van Freenet. De eenvoudigste manier om een document op te slaan is met behulp van een CHK. De gebruiker stuurt de inhoud van zijn document naar zijn node. Deze rekent de CHK uit en stuurt deze naar alle naburige nodes. Al deze nodes vragen op hun beurt aan al hun naburige nodes of deze CHK al bekend is. Als het document nieuw is, kiest de gebruikers-node een random encryption key, versleutelt de inhoud en stuurt de inhoud samen met de al berekende CHK naar alle naburige nodes. Deze nodes zullen het document opslaan of doorgeven naar hun naburige nodes, dit opdat andere nodes niet kunnen bewijzen dat de node bepaalde informatie beheert. Nadat de gebruiker een document heeft opgeslagen, kan hij een KSK of een SSK toevoegen met als inhoud een referentie aan een CHK plus de encryption key. Het toevoegen zelf gaat op eenzelfde manier als met de CHK’s, zodat doublanten niet worden toegelaten op Freenet. Het wijzigen van een document kan alleen als het document met behulp van een SSK ge¨ıdentificeerd wordt. De inhoud van een SSK bestaat niet alleen uit een pointer naar een CHK, maar ook uit een versienummer. Als een gebruiker een oude SSK toevoegt met een hoger versienummer, zullen alle nodes die deze SSK beheren de SSK vervangen. Omdat een SSK met het Digital Signature Algorithm ondertekend wordt, is een update alleen mogelijk als de gebruiker de private key van de subspace heeft. Ongeldige handtekeningen worden natuurlijk niet toegelaten door de nodes. 3.3.3
Opvragen van documenten
Met behulp van eerder genoemde CHK’s, KSK’s en SSK’s wordt een Uniform Resource Identifier (URI) gevormd. Een URI kan op verschillende manieren in elkaar zitten en is een unieke verwijzing naar een document, inclusief de eventuele decryptie-sleutel De syntax van een URI is: freenet:KeyType@KeyVal,CryptoKey/Subspace De KeyType is CHK, SVK, KSK of SSK. De KeyVal is de zoekterm: voor de CHK en de SVK zijn dit de hash-waarden van de inhoud van het document, voor de KSK en de SSK is dit de documentnaam. De CryptoKey is de basis van de encryption key voor de CHK en de SVK. De SSK gebruikt geen CryptoKey maar een Subspace, wat hetzelfde is als de File Key van de bijbehorende SVK. Voor KSK’s wordt geen CryptoKey of Subspace gebruikt. Als een gebruiker een request doet met een URI, krijg dit request een Hops-To-Live waarde. Deze HTL wordt gebruikt om een afgekapte depth-first zoektocht te beginnen:
3.4 Drempels voor Freenet
3.4
27
Drempels voor Freenet
Freenet is een vrijwel anoniem netwerk; geen enkele node weet precies waar welke informatie bewaard wordt of naar toe gaat. Maar juist omdat het netwerk zo anoniem is, kleven er ook nadelen aan. 3.4.1
Zoeken
Zoeken naar documenten op basis van keywords is nog onmogelijk. Dit impliceert dat informatie alleen vindbaar is met een goede key. Op dit moment worden er wel ad hoc oplossingen gebruikt, zoals documenten vol met links. Het zoekprobleem zit hem in de gedistribueerde natuur van Freenet: het is wel mogelijk om zoekmachines a la Google te gebruiken, maar het probleem is dat hierdoor een centraal punt ontstaat, dat uitgeschakeld kan worden. Er zijn al idee¨en aangedragen voor gedistribueerde zoeksystemen (zoals in FASD, door Amr. Z. Kronfol), maar van implementatie is nog geen sprake. 3.4.2
De wet
Freenet is gebouwd met als doel ultieme vrijheid van meningsuiting. Censuur en copyright zijn de twee grootste obstakels in de wet voor dit doel. Gelukkig is Freenet zo gebouwd dat het onmogelijk is om het af te sluiten, door moedwillig bepaalde nodes uit te schakelen. Freenet zelf zal dus blijven bestaan, zelfs na inmenging van (wanna-be) destructieve instanties. Maar in hoeverre is de eindgebruiker te traceren en/of verantwoordelijk te stellen voor illegale data die via zijn node loopt? Er is hier helaas geen jurispredentie over, maar het gezonde verstand meldt dat een gebruiker een professionele kraker met veel tijd en heel veel geluk moet zijn wil hij weten welke informatie via zijn node loopt.
28
The Free Network Project
Het niet kraken van stevige encryptie zal nooit onder nalatigheid kunnen vallen, en dus is een beroep op plausibele onwetenheid een realistisch uitgangspunt. 3.4.3
Gebruikers
Met het aantal gebruikers, en hieraan gekoppeld de opslagcapaciteit, rekenkracht en bandbreedte, valt of staat Freenet. Freenet is nog lang niet volwassen, maar de software begint al een aardig stabiel netwerk op te bouwen. Hoe de toekomst eruit ziet valt niet te zeggen, maar sinds 11 september zijn niet alleen de restrictieve krachten sterker geworden. Zonder vrijheid van meningsuiting is een democratie ondenkbaar, en zodra Freenet warm is gelopen, zal dit de anti-restrictieve krachten veel goed doen.
Hoofdstuk 4 Geheimen in hardware, een case study: XBOX Door Frank Verbruggen
De XBOX, de game console die door Microsoft geproduceerd wordt, is oorspronkelijk alleen voor games bedoeld. Dit voornamelijk door de lage kostprijs van het geheel (een XBOX is goedkoper dan de afzonderlijke onderdelen die erin zitten). Als reactie hierop heeft een groepje vrijetijdstechneuten bedacht dat het de moeite wel waard zou zijn om te kijken of ze de console ook voor oneigenlijke doeleinden konden gebruiken. Zo kwam er een team in het leven dat als doel had om Linux op een XBOX te draaien. Microsoft heeft in eerste instantie een aantal beveiligingen aangebracht in de XBOX om dit tegen te gaan. Dienteneinde zijn verschillende, vaak op cryptografie gebaseerde veiligheidssystemen, toegepast binnen de XBOX. Recentelijk is door een student aan MIT (Massachusets Institute of Technology) een goedkope en relatief gemakkelijke manier ontdekt om de XBOX beveiliging te kunnen omzeilen. Op deze manier heeft men met vrij groot gemak de XBOX kunnen kraken. Deze student heeft een duidelijk verslag van de uitvoering van het experiment gepubliceerd onder toezicht van Microsoft. Hieruit zijn een aantal zaken op te maken over de mate waarin men geheimen in hardware kan gebruiken. Na zijn grote succes lagen nog een aantal andere obstakels op het pad van de techneuten. Onder andere een beveiliging op de hard-disk in de XBOX heeft langere tijd gezorgd voor vertraging bij het rondkrijgen van het XBOX-Linux project. Deze ontdekking is gepubliceerd en wordt uitgebreid aan het licht gebracht in onderhavig hoofdstuk.
4.1
Inleiding
De XBOX, Microsoft’s eerste game console op de publieke markt, is volledig gebaseerd op de technologie van de personal computers. Alvorens het systeem op de markt is gekomen 29
30
Geheimen in hardware, een case study: XBOX
heeft Microsoft nagedacht over hoe de beveiligingen binnen de hardware aangebracht dienden te worden. Dit was voornamelijk noodzakelijk gezien het feit dat ze het systeem tegen een lagere prijs op de markt wilden brengen dan de totaalprijs van de individuele onderdelen. Hierdoor is het voor Microsoft niet wenselijk dat andere software op het systeem gedraaid kan worden dan de daarvoor bedoelde eenheden (games). Een aantal veiligheideisen zijn ontworpen waaraan het systeem diende te voldoen. Voorbeelden hiervan zijn een beveiligde kernel en een beveiliging op de interne hard-disk. Na goed nagedacht te hebben over de uitvoering van dergelijke veiligheidseisen in de console, ontwierp Microsoft een naar hun idee redelijk veilig systeem. Door het opslaan van de door hun gebruikte algoritme in de hardware, is echter een kritieke fout gemaakt. Al na korte tijd werd deze fout door Andrew ”Bunny”Huang gebruikt om het systeem te kraken. Tijdens het booten van het systeem heeft hij een onderscheppingsactie uitgevoerd. In de bytes die hij had afgevangen had hij alle gegevens die door Microsoft geheim gehouden werden. Hierdoor was de veiligheid van de XBOX, totaal gebaseerd op de veiligheid van de beveiligde kernel, in een klap gereduceerd tot nul. De uitvoering, analyses en denkstappen in dit proces zijn voor het belangrijkste deel opgenomen in onderhavig document. Aangezien meedere mensen alternatieve mogelijkheden inzagen voor het gebruik van de XBOX kwamen er techneuten die vonden dat op de XBOX Linux moest kunnen draaien. Er zit toch zeker een X in de naam, zelfs 2, dus dan moet het wel Linux draaien, is de humoristische gedachte achter dit experiment. Gezien het feit dat de XBOX voor dergelijke functionaliteiten niet bedoeld is, heeft Microsoft stappen ondernomen tegen dit soort misbruik. Om dit tegen te gaan zijn een aantal beveiligingen aangebracht. Zo is voor de hard-disk, waarvan in de XBOX gebruik gemaakt wordt, een security ATA unlock code nodig voordat deze actief wordt. Om Linux draaiend te krijgen op de XBOX moest deze beveiliging omzeild worden. Er was reeds code die dit probleem per XBOX brute-force aan kon pakken. Dit was niet wenselijk. Totdat iemand wederom een byte analyse deed van het systeem en er achter kwam dat er een betere manier was om het brute-force gedeelte van de XBOX te omzeilen, was dit alles actueel
4.2
Geheimen bewaren in hardware, de XBOX bootsector kraak
Op 26 mei 2002 is het een MIT student, Andrew “Bunny” Huang, gelukt om het belangrijkste gedeelte van de beveiliging in de XBOX te omzeilen. Deze beveiliging is speciaal bedoeld om mensen vanaf het moment van opstarten niet de mogelijkheid te geven alternatieve software op de XBOX te draaien. Hij gebruikte hiervoor een zeer beperkt aantal resources en kreeg het voor elkaar om de bootsector beveiliging van het systeem te omzeilen. Daarmee verschafte hij zichzelf potentiele toegang tot alle elementen van de hardware. Hij deed dit alles in verband met zijn afstudeerscriptie en in compleet overleg met Microsoft. Nadat dit lukte, werd hij de eerste officiele kraker van het XBOX systeem. Microsoft heeft er strikt op toegezien dat alles legaal bleef en Bunny niet teveel publiceerde. Dit om te voorkomen dat iemand zijn werk kon kopieren.
4.2 Geheimen bewaren in hardware, de XBOX bootsector kraak
31
Uiteindelijk publiceerde hij een paper waarin uitgelegd werd wat de fundamentele ’denk en doe stappen’ waren tijdens de ontmanteling van het systeem. 4.2.1
De bootsector beveiliging
Elk beveiligingssysteem heeft ergens zijn basis in het geheim houden van een bepaald belangrijk aspect, zoals bijvoorbeeld een sleutel. Het is hierdoor altijd zo, dat de veiligheid van het systeem nooit sterker is dan het geheim van de sleutel. Er zijn een hoop beveiligingssystemen die hier onvoldoende rekening mee houden en daardoor niet sterk beveiligen. Binnen de XBOX zijn een geheime sleutel en een geheim algoritme het geheim. Deze worden gebruikt om de kernel bootloader te decrypten. De kernel bootloader is een klein stuk code dat er specifiek voor bedoeld is om het systeem op te kunnen starten. Het laadt de kernel (het centrale deel van ieder besturingssysteem) in, in het geheugen en zorgt ervoor dat deze gestart wordt. Duidelijk is dat de kernel bootloader in de XBOX niet gewoon, maar geencrypt is opgeslagen. Zowel de kernel als de kernel bootloader staan geencrypt in onbeveiligd FLASH ROM. Dit is geheugen dat in principe alleen lezen is, maar met een speciale applicatie in een keer herschreven kan worden. Daarna verifieert de kernel de autenticiteit en integriteit van de werkende applicatie. Op deze wijze propageert de veiligheid zich, gebaseerd op het geheim zijn van de sleutel en het bootloader decrypt algoritme. Het kraken van de XBOX betekende dat Dhr. Huang erachter is gekomen welk decryptie-algoritme en welke sleutel gebruikt worden in de XBOX om de kernel bootloader te decrypten. 4.2.2
Dieper ingaan op de opstartcommando’s van de XBOX
De XBOX start door een 512-byte geheim codeblock uit het geheugen te laden dat gehardcode is in het zogeheten ”Southbridge System ASIC”. Dit is een stuk geheugen dat gebruikt wordt om langzamere elementen in de computer te verbinden en hierbij speciaal gebruikt wordt om de kernel bootloader te laden. Dit codeblok voert vervolgens de volgende stappen uit: • Laden van de ”Jam Tables”, dat wil zeggen het initialiseren van de chipsets. • Processor caches aan zetten. • Decrypten van de kernel bootloader, die in het FLASH ROM zit. • Decryptie verifieren. • Jumpen naar de gedecrypte kernel bootloader. De kernel bootloader gaat vervolgens de kernel initialiseren door deze te decrypten. Het gedecrypte beeld wordt gedecompressed en geverifieerd, zodat de gedecompresste kernel correct is. Deze verificatie gebeurt aan de hand van een magisch getal dat aan het einde van de decompressie staat. De laatste stap is om naar de gedecrypte kernel te gaan. Een belangrijk aspect hierbij is dat de sleutel voor de decryptie van de kernel aanwezig is in het gedecrypte beeld van de kernel bootloader. Deze wordt nooit naar
32
Geheimen in hardware, een case study: XBOX
het hoofdgeheugen geschreven. Hierdoor wordt een groot scala late aanvallen op XBOX afgeweerd. Belangrijk voor het voorbereiden van mogelijke aanvallen was te bekijken waar de fouten zaten in de beveiliging van het systeem. 4.2.3
Evaluatie van de beveiliging in het systeem
Tijdens het booten wordt de decryptie uitgevoerd door een voor ons nu nog onbekend algoritme, met een nog onbekende sleutel. Dit is op zich een redelijk veilig systeem. Vraag blijft natuurlijk of het veilig genoeg is. Totale veiligheid zou impliceren dat het verkrijgen van informatie een verzwakking in het signaal in de processor tot gevolg zou moeten hebben. Op zich is dit technisch gezien mogelijk. Na een goede analyse bleek dat niet in alle componenten de informatie beveiligd was. Op een aantal plaatsen bleek de geheime informatie in plain overgestuurd te worden. Deze plaatsen zijn dan ook nader geanalyseerd. Verdere beveiligingen die aangebracht zijn omvatten onder andere het ”Magisch Getal”van 32 bits. Dit is een toevoeging die garandeert dat de code van Microsoft afkomstig is. Deze toevoeging is in principe alleen bij Microsoft bekend. Dit getal is aangebracht achter de code van de kernel bootloader maar is geen goede beveiliging. Een belangrijke afweging was de haalbaarheid van het wijzigen van het FLASH ROM om te kijken wat er gebeurd. Echter door al deze beveiligingen lijkt het niet goed haalbaar om zo’n aanval op het systeem te proberen. Daarnaast is er door Microsoft een slimme stap ondernomen om dit soort aanvallen tegen te gaan. Het interne FLASH ROM is een afleidingsmaneuvre om kraakpogingen af te slaan. De echte inhoud kwam echter uit een extern FLASH ROM. 4.2.4
Mogelijke aanpakken
Het simpelweg vervangen van het FLASH ROM leek dus geen oplossing. De code zou echter op verschillende andere plaatsen best in plain langs kunnen komen. Een evaluatie van dergelijke plaatsen leek dus op zijn plaats. Een opsomming: • Door middel van reverse engineren van de MCPX Southbridge ASIC signalen afvangen. • Gebruik maken van de JTAG “boundary scan” op de Pentium processor, en via die mogelijkheid signalen afvangen. • Afluisteren aan het main memory om te kijken of er misschien informatie over de bootsequence heengeschreven werd. • De processor Northbridge (beheerder van de snelle componenten van de hardware) bus afluisteren met een logische analyseerder of zelfgemaakte hardware. • De HyperTransport Northbridge-Southbridge bus afluisteren met zelfgemaakte hardware.
4.2 Geheimen bewaren in hardware, de XBOX bootsector kraak
33
Evaluatie mogelijke aanpakken • De meest directe aanpak van het reverse engineren van de MCPX Southbridge ASIC werd vrijwel direct verworpen; het ASIC was gemaakt op een 0.13 micro schaal, met hoogstwaarschijnlijk 6 of 7 lagen. Hierdoor zou het achterhalen van het geheime bootblock een dure grap worden. Het zou ontlageringsfacaliteiten en electronenmicroscopen vereisen en viel duidelijk niet binnen het budget. • Het gebruik maken van de JTAG faciliteiten van de processor werd verworpen op basis van het feit dat de TRST# pin, die de JTAG-chain reset, was gefabriceerd op een dusdanige wijze dat aanpassing bijna onmogelijk was gemaakt. • Het afluisteren van het SDRAM werd verworpen op basis van het feit dat het continu scannen van het complete geheugen een enorm consumerende taak zou zijn. Afgezien daarvan zou het mogelijk moeten zijn om tijdens het proces deze gegevens nooit naar het geheugen te schrijven, maar in het processor caches te houden. Al met al was het een te moeilijke taak, met een te kleine kans van slagen om te proberen. • De processor Northbridge afluisteren werd verworpen op grond van een te zware taak, door het afluisteren van te veel gegevens tegelijk. Ook omdat niet gegarandeerd kon worden dat het signaal hierdoor niet zo sterk zou verzwakken, dat daardoor de instructies niet correct uitgevoerd zouden worden op de processor. • Het afluisteren van de HyperTransport bus leek echter nog geen slecht idee. Over protocollen voor deze bus was al veel bekend en vrijgegeven. Maar ook is het aantal signalen dat doorgegeven wordt door deze bus vrij laag. Deze bus lag daarnaast open op de kaart waardoor het gemakkelijk was om hier hardware op aan te sluiten. 4.2.5
Verder onderzoek voor afluisteren van Hyper Transport bus
Het voornaamste probleem in het afluisteren van de Hyper Transport bus zit hem in de hoge snelheid waarmee deze bus zijn signalen overstuurt. Dit is de reden dat Microsoft ervoor gekozen had om de informatie ongeencrypt te versturen over deze bus. Dit gebeurt met een snelheid van 200 MHz Double Data Rate. Een ander belangrijk probleem zit hem in het gebruik van differentiele signalen. Dit is voornamelijk een probleem aangezien de huidige hardware, voor het afluisteren van dergelijke buses bijna nooit is uitgerust met de mogelijkheid voor ondersteuning van differentiele signalen. 4.2.6
Stappen in het afluisteren van de Hyper Transport bus
De oplossing voor het tweede probleem zat hem in de handigheid van Dhr. Huang, die een zelfgemaakte differentieel naar single ended signaal convertor maakte. Deze convertor was relatief goedkoop, maar vereiste een grote hoeveelheid vakkennis. De zelfgemaakte tapkaart werd vervolgens aangesloten op een FGPA, welke single ended signalen kan analyseren (het is een logische analyseerder). Hardware van verschillende
34
Geheimen in hardware, een case study: XBOX
fabrikanten werd gebruikt om die zelfgemaakte tapkaart te ontwikkelen. Na het maken van deze aftapkaart werd het aangesloten op de Hyper Transport bus door middel van voorzichtig en vakkundig solderen. Hierna begon de moeilijke taak van het analyseren van de signalen. De logische analyseerder was op zichzelf niet krachtig genoeg om de snelheid bij te houden. Door een slimme truuk uit te halen lukte het uiteindelijk om de 200 MHz DDR terug te brengen naar een 100 MHz breedband Single Data Rate (32 bit bus). De eerste stap was om het reset signaal te bepalen. Het reset signaal komt namelijk met constante snelheid door de bus en geeft daarmee een goed timingmechanisme, inclusief een nulpunt. Beiden zijn essentieel in de verdere analyse. Dit is gedaan door alle signalen die zich als reset signaal gedroegen te traceren tot een klein stukje buiten de Hyper Transport bus. Eigenlijk is dus niet met zekerheid te zeggen welk signaal nou eigenlijk het reset signaal was. In principe doet dit er ook niet toe, aangezien het gekozen signaal zich gedraagt als het reset signaal. Hiermee was een begin gemaakt aan de analyse. Vervolgens was het nodig een mapping tussen de geregistreerde (en dus vervormde) signalen en de signalen die over de Hyper Transport bus gaan te bepalen. Dit werd gedaan door eenmaal opgevangen patronen te vergelijken met bekende gedeelten van het FLASH ROM. Gelukkig waren specifieke gedeelten van het interne FLASH ROM en het geheime externe FLASH ROM identiek, wat de analyse voor de mapping een stuk eenvoudiger maakte. De simpele 1-tjes tellen techniek was hierbij voldoende om een sterke correlatie te bepalen. Hierna volgde het onderscheid maken tussen code die voortkwam uit het FLASH ROM en de geheime gehardcode sleutel en het eerste decryptiealgoritme. Hierbij waren nog andere elementen van belang zoals de opstartcode voor de taken zoals beschreven in sectie 4.2.2. Ook hier kwam veel kennis bij kijken aangezien de codes die door de aftapkaart doorgegeven werden handmatig zijn beoordeeld. Het is bijvoorbeeld zo dat de eerste 24 miljoen codes genegeerd konden worden omdat deze de “jam tables” initialiseerden. Hierbij kwam het gebruik van het reset signaal sterk terug in de toepassing. Daardoor konden snel grote hoeveelheden codes geanalyseerd en genegeerd worden. Een anders ondoenlijke taak werd hierdoor doenlijk. Na een vergelijking van de codes met de bekende gedeelten van het niet functionele interne FLASH ROM, welke gebruikt werd om goed onderscheid te kunnen maken, werd eindelijk de geheime code bekend. Na het reverse engineren van deze codes werd geconstateerd dat het geheime algoritme RC-4 met een 128 bits sleutel moest zijn. Omdat de signalen enkel afgevangen waren, was echter nog niet duidelijk waar de sleutel zich in het geheugen bevond. Hiervoor is een brute-force search toegepast. Gebruik makend van een aantal professioneel gegokte sleutels werd door toepassing een sterk beeld duidelijk van de gebruikte sleutel en daarmee het totale geheime bootblok. Hierna was het nog maar een koud kunstje om de hardcode te vervangen voor een nieuwe hardcode die de gebruiker voor zichzelf wenst. Men hoeft enkel maar rekening te houden met de structuur intern van de XBOX en met de controles die in de tussentijd uitgevoerd worden. Dergelijke zaken waren echter van ondergeschikt belang. Het was gelukt om de optie te creeren om zelfbedachte code op de XBOX te laten draaien.
4.3 Mogelijke verbeteringen in de veiligheid van hardwaregeheimen
4.2.7
35
Effect van kraken van de XBOX
Na het kraken van de bootsequence van de XBOX was het voor een ieder met genoeg kennis mogelijk om zelfbedachte codes te draaien op de XBOX. Een duidelijk geleerde les komt hierdoor ook aan het licht; ’hoge snelheden alleen zijn niet genoeg om de veiligheid van een systeem te garanderen’. Andere maatregelen zullen genomen moeten worden om een gezonde veiligheid te garanderen.
4.3
Mogelijke verbeteringen in de veiligheid van hardwaregeheimen
Men had encryptie over de hoge snelheidsbussen kunnen gebruiken. Dit had echter op zich weer andere problemen met zich meegebracht zoals een hoger stroomverbruik en hoge afhankelijkheid van het correct overbrengen van gegevens. Het zou dan zo zijn dat het verkeerd overbrengen van 1 bit, zelfs in een cycle waarin niets door de processor wordt gedaan, zou betekenen dat grote hoeveelheden data onbetrouwbaar worden. De beste oplossing hiervoor zou dan ook zijn om geen enkele bus in het systeem te vertrouwen en gebruik te maken van een asymmetrisch algoritme om het geheel te versleutelen. Het grootste probleem hiervan is dat het zeer moeilijk tot praktisch onmogelijk is om een initialisatie code, een bootcode, een sleutel en een algoritme te implementeren in slechts 512 bytes. Belangrijk is het om te realiseren dat als je geheimen in hardware stopt men er vroeg of laat achter gaat komen wat die geheimen zijn. Ze zijn immers voor het oprapen en de varieteit aan aanvallen op dergelijke systemen is enorm. Een van de sterkste alternatieven in de schemering van dergelijke aanvallen en verdediging ertegen is, om je systeem met een compleet ander format uit te rusten, en daar een patent op te nemen. Ondanks dat patenten ’maar’ 20 jaar stand houden is dit een eeuwigheid in de gaming industrie. Zo is het bijvoorbeeld nog geen 20 jaar geleden dat de originele Nintendo uitkwam.
4.4
Kraken van de hard-disk in de XBOX
Afgezien van de voorgaande bespreking van een kraak van de boot van de XBOX zijn er nog andere aspecten die binnen de XBOX beveiligd zijn. De hard-disk in de XBOX is er een van en is beveiligd met een ATA beveiligingssysteem. Dit wil zeggen dat de harddisk na een boot niet reageert totdat een speciale unlock-code gestuurd is. Deze code is natuurlijk beveiligd, en wordt onder andere berekend uit een zeer grote bitstring van 128 byte (1024 bits). Deze bitstring heet EEPROM en bevat een groot aantal, per XBOX verschillende, gegevens over het systeem zelf. Hierdoor wordt niet alleen de veiligheid van het gebruik van de HD beter, maar wordt het ook onmogelijk om een andere HD in de XBOX te monteren. Daarvan zijn de goede gegevens immers niet opgeslagen. Om deze gegevens niet makkelijk na te kunnen laten maken wordt de EEPROM gebruikt in
36
Geheimen in hardware, een case study: XBOX
een functie die tezamen met een 16 byte string een unlock code genereert. Deze wordt dan met een SECURITY UNLOCK ATA commando naar de HD gestuurd welke daarna vrij gegeven kan worden. 4.4.1
Het probleem
Deze beveiliging is er lange tijd in geslaagd om mensen te beperken in het gebruik van de XBOX voor andere doeleinden. Er was in principe wel een fabrikant, Speedbump, die een unlock code generator had bedacht, maar had alleen nog veel last met de 16 byte key. Dit was voor de belangrijkste groepering die zich bezig houdt met onbedoelde doeleinden voor de XBOX, namelijk het Linux XBOX team een niet acceptabel obstakel. Het Linux XBOX team is een team wat zich bezig houdt met het op een legale manier runnend krijgen van Linux op de XBOX. Er werd dan ook hevig gediscussieerd tot iemand op vrijdag 13 september 2002 een oplossing bedacht voor het probleem. 4.4.2
Cyptografisch algoritme
Hier een stuk code van Speedbump die zich bezig houdt met de decryptie actie: HMAC_SHA1 (key_hash, EEPROMKey, 16, (unsigned char*) data_hash, 20, NULL, 0 ) rc4_prepare_key ( key_hash, 20, &RC4_key ) // decrypt data (from EEPROM) with generated key rc4_crypt(data1, 8, &RC4_key) rc4_crypt(data2, 20, &RC4_key) Hierin kun je duidelijk terug zien dat de eerder bedoelde sleutel van 16 byte de EEPROM sleutel is. Deze is echter nergens meer gebruikt nadat de key hash ervan berekend is door de HMAC SHA1 methode. De data hash is echter voor iedere XBOX verschillend, en deze kunnen we daarom niet uitbuiten, wat we echter wel kunnen doen is proberen de HMAC SHA1 methode uit te buiten door hierin de EEPROMKey niet langer te gebruiken. De code in HMAC SHA1 is als volgt: Void HMAC_SHA1 ( unsigned char *result, unsigned char *key, int key_length, unsigned char *text1, int text1_length, unsigned char *text2, int text2_length ) { unsigned char state1[0x40] unsigned char state2[0x40+0x14] int i
4.4 Kraken van de hard-disk in de XBOX
37
for (i=0x40-1; i>=key_length; --i) state1[i] = 0x36 for (; i>=0; --i) state1[i] = key[i] ^ 0x36 Seq1 quick_SHA1 ( &state2[0x40], state1, 0x40, text1, text1_length, text2, text2_length NULL ) for (i=0x40-1; i>=key_length; --i) state2[i] = 0x5C for (; i>=0; --i) state2[i] = key[i] ^ 0x5C Seq2 quick_SHA1 ( result, State2, 0x40+0x14, NULL ) 4.4.3
Idee achter de kraak
Nu kunnen we gaan kijken naar de twee interessante gedeeltes uit deze code. Dat zijn Seq1, en Seq2 waar de aanroepen naar quick SHA1 in gedaan worden. Na zorgvuldig onderzoek van de byte strings die uit de eerste toepassing van het algoritme kwamen, viel op dat de eerste 20 bytes altijd dezelfde informatie weergaven, te weten de 20 bytes uit data hash. Toen dit eenmaal opgemerkt was kon een initialisatiestap ondernomen worden die precies hetzelfde deed. Hierdoor kon simpel het eerste blok gegevens nagebootst worden. De rest van de gegevens werd verder genegeerd omdat bleek dat deze in de uiteindelijke berekening niet verder gebruikt werden. Echter, er moest nog steeds een lange bytestring gegenereerd worden. Deze was echter voor de rest leeg, gezien het feit dat hij er toch niet toe deed. Dit was de voornaamste ontdekking die benodigd was voor het genereren van een correcte uitkomst. Natuurlijk mag het duidelijk zijn dat de tweede aanroep van het quick SHA1 algoritme hetzelfde gedrag vertoonde. Het ironische gedeelte is dat ook hierbij geen extra gegevens gebruikt werden. Al met al was dus de EEPROM sleutel geheel overbodig en werd enkel gebruikt om de codering complexer te doen overkomen dan deze daadwerkelijk was. Omdat de nieuwe codering geen gehele bytestring van dezelfde lengte meer genereerde was deze nieuwe code nog sneller dan de voorheen gebruikte. Een goede conclusie zou dus zijn niet te verwachten dat beveiliging beter gaat werken naarmate deze er complexer uit ziet, maar enkel naarmate de intrinsieke complexiteit omhoog gaat.
38
Geheimen in hardware, een case study: XBOX
Hoofdstuk 5 DVD versleuteling - CSS Door Guido Diepen
In dit hoofdstuk zal ik proberen een introductie te geven tot de beveiliging die wordt gebruikt om ervoor te zorgen dat DVD’s niet op illegale wijze gebruikt kunnen worden, het zogenaamde Content Scrambling System (CSS).
5.1
Geschiedenis DVD
Nadat de CD al weer een behoorlijke tijd geleden is ge¨ıntroduceerd kwam men tot de ontdekking dat de 650 MB die door de CD werden geboden soms niet meer voldoende is. Een van de industrie¨en die hier veel last van had was de filmindustrie. Deze wilden namelijk de mogelijkheid hebben om films met een hoge kwaliteit te kunnen verkopen. De oplossing werd gevonden in de Digital Versatile Disk, de DVD. Dit schijfje dat er hetzelfde uitziet als een CD kan veel meer informatie bevatten dan een normale CD. Ook voor de softwareindustrie en de muziekindustrie biedt de extra hoeveelheid data die kan worden opgeslagen een voordeel. Hoewel de filmindustrie nu de mogelijkheid heeft om films digitaal met een hoge kwaliteit te verkopen aan de mensen kwamen ze tot de ontdekking dat de combinatie hoge kwaliteit en digitaal wel een ander probleem opleverde: Het is een perfecte bron om te kopieren zonder enig kwaliteitsverlies. Aangezien de filmindustrie hiermee niet blij was hebben ze er voor gekozen om het zomaar kunnen kopieren van de films onmogelijk te maken.
5.2
De (schijn)oplossingen
Om het probleem van het illegaal gebruik van DVD’s tegen te gaan heeft de filmindustrie een aantal oplossingen bedacht: 39
40
DVD versleuteling - CSS
• Gemiddelde grootte van de bestanden en de DVD • Regiocodering • Versleuteling van de data 5.2.1
Grootte
Allereerst heeft de filmindustrie een voordeel in het feit dat de gemiddelde grootte van de bestanden op een DVD behoorlijk aan de hoge kant is, namelijke 1 Gigabyte. Niet alleen het feit dat de losse bestanden op de DVD groot zijn, maar ook het feit dat de totale grootte van een DVD ongeveer 4 tot 6 Gigabyte is voor een normale film, is een nadeel voor de gemiddelde persoon die een film even wil kopieren. 5.2.2
Regiocodering
Een van de problemen die de filmindustrie heeft is dat over het algemeen films niet op hetzelfde tijdstip worden uitgegeven op de verschillende plaatsen in de hele wereld. Typisch zal een film eerst in Amerika worden uitgegeven en zal een aantal weken tot maanden later pas in Europa en verder worden uitgegeven. Voor de filmindustrie zou het makkelijk zijn als ze konden bepalen dat een film niet eerder op DVD verschijnt in een bepaalde regio voordat de film eerst nog in de bioscoop is geweest. Ze hebben de oplossing gevonden in het opdelen van de wereld in 8 regio’s zoals te zien is in onderstaand figuur.
Op het plaatje missen nog twee regio’s, namelijk 7 en 8. Regio 7 is op dit moment gereserveerd en Regio 8 wordt gebruikt voor inter-regionale diensten als bijvoorbeeld vliegtuigen en cruiseschepen. Op het moment dat een DVD in bijvoorbeeld Amerika wordt uitgegeven, wat regio 1 is, zal er op de DVD ook staan dat hij bedoeld is voor regio 1. Op het moment dat
5.3 (De)coderen met CSS
41
er wordt geprobeerd het schijfje in een andere regio af te spelen zou dit niet moeten werken. Het probleem ligt in het feit dat er tot begin van 2000 DVD Spelers verkocht mochten worden die regiovrij waren, ze waren in staat om schijfjes van alle regio’s af te spelen. De filmindustrie was hier niet heel gelukkig mee en besloot dat er iets aan gedaan moest worden. Het is dan ook sinds begin 2000 niet meer toegestaan aan DVD drive fabrikanten om de zogenaamde regiovrije drives te fabriceren. Echter heeft deze oplossing niet echt heel veel zin aangezien de regiocontrole wordt gedaan door een klein stukje software in de DVD drive zelf, de firmware. Fabrikanten maken niet voor elk van de regio’s verschillende drives, ze maken 1 drive en ze maken voor de verschillende regio’s verschillende firmwares. Voor bijna alle merken en types DVD drive zijn er op het internet al nieuwe firmwares te vinden die ervoor zorgen dat de DVD drive weer regiovrij zal zijn. 5.2.3
Versleuteling
De filmindustrie heeft als oplossing tegen illegaal gebruik er voor gekozen de data op de DVD te coderen. Aangezien copyright op digitale content namelijk zeer moeilijk, bijna onmogelijk is hebben ze een copyright op het versleutelingsalgoritme. Op het moment dat iemand de codering dan kraakt overtreedt hij de copyright wet en kan hij daarop aangepakt worden. In de volgende sectie zal ik dieper ingaan op CSS, het versleutelingsalgoritme wat wordt gebruikt.
5.3
(De)coderen met CSS
De versleuteling die door de filmindustrie wordt gebruikt voor het beveiligen van de data op een DVD heeft veel weg van de versleuteling die wordt gebruikt voor GSM communicatie. Er zijn een aantal overeenkomsten te vinden tussen de encryptie voor GSM telefonie (hoofdstuk 19) en voor DVD encryptie: • Versleutelen van de data door deze te XOR-en met een pseudo-random bitstring. • Gebruik van Linear Feedback Shift Registers (LFSR) voor het genereren van de pseudo-random bitstring. • Een aantal denkfouten in het ontwerp Een van de grootste denkfouten die in het ontwerp van CSS is gemaakt die tevens ook gemaakt is bij het ontwerpen van de versleuteling voor GSM is het feit dat er bij beide ontwerpen voor gekozen is niet alleen de sleutel van de encryptie geheim te houden, maar ook de complete manier van versleuteling. Volgens Kerckhoffs’ principe werkt dit niet en ook bij GSM is dit al uitgekomen (hoofdstuk 19).
42
DVD versleuteling - CSS
5.3.1
Linear Feedback Shift Registers
Net als bij de GSM versleuteling werkt CSS versleuteling eigenlijk door de data bitsgewijs te XOR-en met een pseudo-random bitstring. Op het moment dat de ontvanger dezelfde willekeurige bitstring kan genereren als de persoon die de data versleuteld heeft en hij de versleutelde data bitsgewijs met deze zelfde bitstring XOR-ed, dan zal het uiteindelijke resultaat weer de originele data zijn. Het genereren van deze zelfde bitstring wordt gedaan met behulp van de zogenaamde Linear Feedback Shift Registers. Een LFSR is een bitrij waar de Feedback functie aan de hand van een aantal bits in de rij een nieuwe waarde berekent en deze weer toevoegt aan het register. Onderstaand figuur geeft een schematische weergave.
Echter bij het ontwerpen van CSS heeft men er voor gekozen iets van dit standaardontwerp af te wijken. De waarde die uit de feedback functie komt is tevens de uitvoer waarde en de originele uitvoer waarde verdwijnt gewoon naar de prullebak. Onderstaand figuur geeft dit in schema weer.
Bij CSS wordt er gebruik gemaakt van 2 van dit soort LFSR registers, namelijk een 17 en een 25 bits. Deze worden respectievelijk gevuld met 2 en 3 bytes. Bij beide registers wordt er een bit op 1 gezet zodat null-cycling wordt voorkomen. Als initi¨ele waarden van deze registers worden de bytes van de sleutels gebruikt. 2 bytes van de sleutel worden in het LFSR-17 register gezet en de overige 3 bytes worden in het LFSR-25 register gezet. De uiteindelijke pseudo random bitstring wordt gevormd door de uitvoer van deze twee registers op te tellen met meename van het carrybit van de vorige optelling volgens het volgende schema:
5.3 (De)coderen met CSS
43
In bovenstaand plaatje zijn twee inverters die allebei aan of uit kunnen staan. Voor de verschillende doeleinden waar CSS voor wordt gebruikt zullen de inverters wel of niet aan staan volgens de volgende tabel: Inverteren uitvoer LFSR Mode LFSR-17 LFSR-25 Authenticatie Ja Nee Sessie sleutel Nee Nee Titel sleutel Nee Ja Datastroom Ja Nee Nu kan gedefinieerd worden dat een blok data gecodeerd kan worden door hem bitsgewijs te XOR-en met de bitstring die wordt gemaakt door een sleutel van bytes op te delen naar 2 bytes voor LFSR-17 en 3 voor LFSR-25. Als de persoon die de gecodeerde data weer wil decoderen zal hij alleen de sleutel weer moeten verdelen over de twee LFSR’s en deze weer een bitstring moeten laten genereren. Deze bitstring die de gebruiker genereert is exact hetzelfde als de bitstring die de data heeft gecodeerd. Op het moment dat de versleutelde data nu weer bitsgewijs wordt geXOR-ed met deze bitstring zal de origele plaintext weer tevoorschijn komen (x ⊕ k ⊕ k = x). Overigens is er door de ontwerpers ook nog voor gekozen de invoerdata voor de XOR eerst nog door een S-Box te halen. Het probleem is dat het algoritme officieel nog steeds geheim is en men alleen kan gissen naar de exacte reden waarom dit gedaan is. 5.3.2
Gebruikte sleutels
Bij CSS wordt er gebruik gemaakt van een behoorlijk aantal verschillende sleutels. Deze sleutels zijn allemaal 40 bits (5 bytes) zodat ze netjes verdeeld kunnen worden over de twee LFSR’s. Sessie sleutel: De Sessie sleutel wordt gebruikt om het verkeer dat tussen de DVD Drive en de DVD player zelf te versleutelen. Dit omdat het transport kanaal waarover de data gaat niet onder controle staat en dus afgeluisterd zou kunnen worden. Player sleutel: De player sleutel is een van de 409 unieke sleutels die worden uitgedeeld door de DVD CCA aan bedrijven die een DVD player (zowel software als hardware) maken. Indien het bedrijf zich niet houdt aan de licentievoorwaarden die gelden voor CSS kan zo’n sleutel ingetrokken worden.
44
DVD versleuteling - CSS
Disk sleutel: De Disk sleutel is eigenlijk een van de meest belangrijke sleutels op de DVD. Dit is namelijk de sleutel waarmee alle andere sleutels op de DVD te decoderen zijn. Titel sleutel: Elk van de verschillende videobestanden op een DVD kan versleuteld zijn met een eigen titel sleutel. Deze titelsleutel kan worden gedecodeerd met behulp van de Disk sleutel. Sector sleutel: Elke sector op de DVD die eigenlijke film data bevat kan optioneel ook nog gecodeerd worden met een sector sleutel. Deze staat op een vaste plaats in de plaintext header van de sector.
5.4
Stappenplan decoderen DVD
Hier volgt een stappenplan dat wordt doorgelopen op het moment dat een gebruiker een gecodeerd regiogebonden schijfje in een DVD speler stopt en probeert deze af te spelen. 5.4.1
Controle regio
De drive zal kijken of de regio die op de DVD staat gelijk is aan de regio waarin de speler staat op dat moment. Indien dat niet het geval is kan dit, afhankelijk van de implementatie van de DVD drive, leiden tot twee resultaten: • Totaal geen data. Er zal totaal geen data door de drive verstrekt worden aan het programma dat probeert data in te lezen van de DVD. • Wel data, maar geen sleutels. De DVD drive zal alle data gewoon aan het programma dat daarom vraagt leveren. Het enige wat de drive wel achterhoudt is het stukje geheime data op de DVD waarin de gecodeerde sleutels staan. 5.4.2
Wederzijds authenticeren
Allereerst zullen de DVD drive en de DVD speler elkaar moeten authenticeren. Het is eigenlijk ge¨ımplementeerd als een tweevoudige authenticatie, namelijk de Player die zich bij de drive authenticeert en vice versa. De laatste wordt eigenlijk niet echt gebruikt. Indien een player zich kan authenticeren bij een DVD Drive, dan zal deze DVD drive de speler voorzien van een stukje data dat op een geheime sector van de DVD drive staat. Deze data bevat de versleutelde Disk keys en de versleutelde titel keys. 5.4.3
Decoderen Disk sleutel
Nadat de player zichzelf succesvol heeft geauthenticeerd bij de drive en er ook nog blijkt dat de regio’s van de drive en de DVD gelijk zijn zal de speler proberen de Disk sleutel te decoderen. Dit decoderen gaat als volgt: Bereken Keydisk = D(dkx , Kpx ) voor alle player sleutels x die de speler heeft. Controleer
5.5 Kraken van CSS - DeCSS
45
vervolgens of Keydisk = D(Hashdiskkey , Keydisk ). De hash van de Diskkey in de laatste vergelijking is niets anders dan de diskkey versleuteld met de diskkey zelf, het is dus geen oneway functie. Met deze waarde kan een player dus controleren of de disksleutel die hij heeft gevonden eigenlijk wel correct is. 5.4.4
Decoderen Titel sleutel
Aangezien de player zich heeft geauthenticeerd bij de drive zal hij ook toegang krijgen tot de sector met alle versleutelde titel sleutels. Het enige wat er nu moet gebeuren is dat de disksleutel in de 2 LFSR’s wordt gezet om de pseudo-random bitstring van 40 bits te genereren waarmee de versleutelde titelsleutel gedecodeerd kan worden. 5.4.5
Decoderen datastroom
De player zal elke keer een sector van 2048 bytes opvragen. De eerste 128 bytes van een datasector bestaan uit een plaintext header. Op bytes 80 t/m 84 staat optioneel een sleutel waarmee die sector versleuteld is. De player zal de titel sleutel eerst bitsgewijs moeten XOR-en met deze 5 bytes. Daarna wordt het resultaat in de twee LFSR’s gezet om vervolgens de benodigde pseudo-random bitstring te genereren waarmee het datagedeelte van de sector gedecodeerd kan worden. Voor het decoderen van de sleutels moet er eerst nog een extra stap gedaan worden. De ontwerpers hebben namelijk ervoor gekozen om bij het coderen van sleutels de data eerst nog een extra keer door elkaar te husselen middels een manglefunctie.
5.5
Kraken van CSS - DeCSS
Het probleem dat door CSS ontstond is dat DVD’s niet konden worden afgespeeld op platformen anders dan Windows en Macintosh. Voor sommige mensen die alleen andere platformen zoals bijvoorbeeld Linux gebruiken was dit wel een probleem, zij konden namelijk geen DVD’s kijken. Verder was het voor de gebruiker ook niet meer mogelijk om een eigen (gecomprimeerde) kopie te maken voor het kijken op een andere computer indien daar geen DVD Drive inzat. Deze twee redenen zorgen ervoor dat er vanaf de introductie van de DVD werd gezocht naar manieren om de versleuteling te omzeilen. Het nadeel dat de filmindustrie had was dat DVD films afgespeeld moeten kunnen worden op een normale PC. Op het moment dat een PC in staat is om de DVD versleuteling te decoderen om een film op het scherm te kunnen toveren, is er op dat moment ergens in het geheugen de decryptie manier aanwezig. Het is redelijk makkelijk met een disassembler een programma weer terug te krijgen naar meer leesbaarder assembly code van waaruit het weer mogelijk is om C code te genereren.
46
DVD versleuteling - CSS
5.5.1
Vinden van de playersleutel
Een van de opties die er was voor de krakers was het zoeken naar de playersleutel. Op het moment dat je de playersleutel hebt kun je met die playersleutel de bijbehorende versleutelde disksleutel decoderen om vervolgens de rest van de sleutels op te vragen en te decoderen. Voor de playersleutel geldt ook gewoon, op het moment dat een computer een DVD kan decoderen, moet de playersleutel ergens in het geheugen voorkomen. De sleutel kon eigenlijk niet zomaar in de code staan, maar moest volgens de CSS licentie volledig gecodeerd in de programma source van de player staan. Bij Xing hadden ze echter een klein foutje gemaakt en (per ongeluk) was de player sleutel ongecodeerd in de source gezet waardoor de krakers hier gewoon gebruik van konden maken. Bij het kraken van CSS op deze manier is er echter wel een nadeel. Op het moment dat de DVD-CCA (Copy Control Association) uitvindt dat een bepaalde player sleutel gevonden is zulen ze ervoor zorgen dat die player sleutel in de DVD’s die vanaf dat moment geleverd worden niet meer te gebruiken is doordat ze de met die playersleutel gecodeerde disksleutel niet meer in het geheime stuk op de DVD zetten. Vanaf dat moment is het dus niet meer mogelijk om met die playersleutel disksleutels op nieuwe DVD’s te decoderen. 5.5.2
Vinden van de disksleutel
Een andere manier is te proberen de disksleutel zelf te kraken. Nadat een aantal hackers eerst de code van een DVD player onder windows hadden teruggezet naar C-code en op het internet hadden gepubliceerd kon een cryptografie expert opmaken dat CSS gebruik maakte van 40 bits disksleutels. Hij heeft hier toen een programma voor geschreven dat al deze 240 (≈ 1099 miljard) mogelijkheden afging en controleerde gewoon of de uitkomst van het decoderen van de hash van de disksleutel weer gelijk was aan de disksleutel. Dit bruteforce-algoritme zocht alle 240 mogelijkheden af in 17 uur. Na gemiddeld 8.5 uur had het programma dus de disksleutel gevonden. Op het moment dat deze sleutel bekend was kon de DVD dus simpel gedecodeerd worden en afgespeeld onder elk willeurig afspeelprogramma. Het voordeel van deze methode was dat je op deze manier niet meer afhankelijk was van een of meerdere playersleutels, dus de DVD-CCA kon alle sleutels intrekken en dan nog kon elke DVD uiteindelijk bekeken worden. Het probleem is echter wel dat het maximaal dus 17 uur kostte. Hier kwam later wel verbetering in. 5.5.3
Verbeteringen
De bruteforce manier gaat er vanuit dat we helemaal niets hebben aan data die ons eventueel kan helpen. Op het moment dat men CSS wil kraken en er zijn 6 bytes van de gedecodeerde uitvoer beschikbaar op de een of andere manier kunnen de gebruikte initi¨ele waarden van de beide LFSR’s (en dus de sleutel) bepaald worden in 216 op de volgende manier: 1. Kies willekeurige waarde voor LFSR-17 (216 mogelijkheden) 2. Bereken drie uitvoer bytes van LFSR-17
5.6 Het programma DeCSS
47
3. Bereken uit de eerste drie bytes van de gecodeerde invoer en van de gecodeerde uitvoer de drie bytes die zijn gegenereerd door LFSR-25 (=elke twee getallen van elkaar aftrekken) 4. Controleer of de gevonden waarde van LFSR-25 correct was door nog drie bytes van de gecodeerde invoer te decoderen en te kijken of deze gelijk is aan de gedecodeerde uitvoer Alhoewel deze methode heel snel werkt, was hij niet echt heel erg bruikbaar omdat het niet vaak gebeurde dat je 6 of meer bytes van de gedecodeerde uitvoer tot je beschikking had. Enige tijd later kwam men tot de ontdekking dat men gebruik kon maken van de bits die in beide LFSR’s gezet worden ter voorkoming van null-cycling. Deze extra verbetering leverde op dat men niet 6 maar nog maar 5 bytes van gedecodeerde uitvoer nodig had terwijl het nog steeds 216 tijd kostte. Verder was er ook nog het probleem dat voor de sleutels de data eerst nog een keer goed door elkaar worden gehusseld. Het bleek dat deze mangle functie in 28 tijd gekraakt kon worden. Op het moment dat de twee methoden gecombineerd werden moest er per oplossing nog twee mogelijkheden getest worden. Dit levert als uiteindelijk resultaat op dat CSS gekraakt kan worden in 225 (≈ 33 miljoen). Dit kon in 1999 op de high-end computers (Pentium III - 450 MHz) gedaan worden in ongeveer 18 seconden. Het feit dat er gebruik gemaakt wordt van 40 bits sleutels die gekraakt kunnen worden in 225 tijd geeft aan dat er een aantal fouten in het ontwerp van CSS zitten.
5.6
Het programma DeCSS
De persoon die door de media wordt gezien als de persoon die CSS heeft gekraakt was de toen 16 jarige Jon Johanson uit Noorwegen. In tegenstelling tot wat de media ons doet geloven is hij niet de persoon die CSS heeft gekraakt. Samen met een aantal hackers uit Duitsland en Nederland heeft hij de Xing player gereverse engineered om de playersleutel uit Xing te halen. Deze sleutel hebben ze in een programma DeCSS gestopt. Dit programma decodeerde de gecodeerde databestanden van de DVD tot normale MPEG videobestanden zodat de film afgespeeld kon worden onder Linux. Dit laatste was het eigenlijke doel van Jon en zijn vrienden: het in staat kunnen zijn tot kijken van DVD’s onder Linux. Het programma wat ze geschreven hadden werd door Jon gepubliceerd op de website van de familie van Jon. Het probleem was dat het programma DeCSS wat geschreven was een beveiliging omzeilde om zo de echte data te verkrijgen. Volgens de DMCA is dit laatste niet toegestaan en op last van de Amerikaanse justitie werden Jon en zijn vader door de Noorse politie gearresteerd. Toen Jon toevallig een keer in New York was voor een conferentie was er precies op dat moment ook een rechtszaak tegen DeCSS. Jon ging in het publiek zitten en werd prompt aangewezen door een van de mensen die ondervraagd werd als zijnde de programmeur van DeCSS.
48
DVD versleuteling - CSS
Op het moment van schrijven loopt er nog steeds een rechtszaak in Noorwegen tegen Jon Johanson. Hij wordt aangeklaagd omdat hij digitale inbraak zou hebben gepleegd. Tot op heden zijn alleen mensen die bijvoorbeeld ingebroken hadden bij banken aangeklaagd op dit punt. Jon heeft ook voor de rechtbank gezegd dat hij onschuldig is. Op dit moment zijn er meedere programma’s die in staat zijn om CSS codering te decoderen. Het CSS programma is in bijna elke bekende programmeertaal al een keertje uitgewerkt. Onderstaande code is de op dit moment kleinst bekende perl implementatie van DeCSS. #!/usr/bin/perl # 472-byte qrpff, Keith Winstein and Marc Horowitz <
[email protected]> # MPEG 2 PS VOB file -> descrambled output on stdout. # usage: perl -I
:::: qrpff # where k1..k5 are the title key bytes in least to most-significant order s’’$/=\2048;while(<>){G=29;R=142;if((@a=unqT="C*",_)[20]&48){D=89;_=unqb24,qT,@ b=map{ord qB8,unqb8,qT,_^$a[--D]}@INC;s/...$/1$&/;Q=unqV,qb25,_;H=73;O=$b[4]<<9 |256|$b[3];Q=Q>>8^(P=(E=255)&(Q>>12^Q>>4^Q/8^Q))<<17,O=O>>8^(E&(F=(S=O>>14&7^O) ^S*8^S<<6))<<9,_=(map{U=_%16orE^=R^=110&(S=(unqT,"\xb\ntd\xbz\x14d")[_/16%8]);E ^=(72,@z=(64,72,G^=12*(U-2?0:S&17)),H^=_%64?12:0,@z)[_%8]}(16..271))[_]^((D>>=8 )+=P+(~F&E))for@a[128..$#a]}print+qT,@a}’;s/[D-HO-U_]/\$$&/g;s/q/pack+/g;eval
Dit programma doet verder niets aan het decoderen van sleutels, alleen aan de eigenlijke datastroom. De gebruiker zal eerst op een andere manier (zijn ook weer andere programma’s voor) de titelsleutels moeten bepalen voordat hij de databestanden met dit programma kan terugzetten naar een MPEG videobestand.
5.7
Conclusie
Het doel van de filmindustrie om er voor te zorgen dat het niet mogelijk is om illegaal gebruik te maken is niet helemaal gelukt. Allereerst hebben ze met de regiocodering op zich wel een slim systeem bedacht, het probleem ligt echter in het feit dat vrijwel alle van de op dit moment gangbare DVD drives die regiogebonden zijn op vrij eenvoudige wijze om te zetten zijn tot een regiovrije DVD drive. Dat dit zo makkelijk is heeft gewoon te maken met het feit dat de DVD drives van binnen toch allemaal hetzelfde zijn en er in de fabriek alleen een ander stukje firmware ingezet wordt. Dit stukje software hoeft alleen maar vervangen te worden door een regiovrije variant en de speler zal in staat zijn alle regio’s af te spelen. De andere oplossing die ge¨ıntroduceerd werd, CSS, is uiteindelijk ook zeer snel gekraakt. Men ging er van uit dat als men alles maar geheim hield, dus niet alleen de sleutels maar ook de manier van versleutelen, het veilig zou zijn. De gang van zaken rond CSS is dus eigenlijk een kopie van de gang van zaken rond de versleuteling van GSM en steunt ook op Kerckhoffs’ principe, namelijk dat de cryptografische bescherming alleen moet berusten op geheimhouding van de sleutel en niet op de geheimhouding van het complete algoritme. Een ander probleem is sleutellengte van 40 bits. De gekozen sleutellengte heeft waarschijnlijk te maken met het exportverbod op sterke encryptiemiddelen in Amerika.
5.7 Conclusie
49
Het probleem is echter dat 40 bits tegenwoordig niet meer als veilig wordt beschouwd: DES werd met zijn 56 bits onveilig geacht aangezien het in 8 dagen te kraken was op 40 computers. Het probleem is echter dat er bij het ontwerpen van CSS een aantal grote fouten gemaakt zijn waardoor de effectieve sleutellengte neerkomt op ongeveer 25 bits en het kraken van de 40 bits disksleutel nog maar iets van 5 seconden op de huidige generatie computers kost. Ook is door de fouten het redelijk slimme systeem van de 400+ playersleutels die eventueel ingetrokken kunnen worden helemaal overbodig geworden aangezien de manier van kraken er niet eens gebruik meer van maakt. De filmindustrie zit nu echter met het probleem dat ze het niet meer zomaar om kunnen zetten. Als ze nu het algoritme willen aanpassen zullen ze ervoor moeten zorgen dat iedereen met zijn DVD speler teruggaat naar de winkel om het nieuwe algoritme erin te laten zetten. Dit zal waarschijnlijk niet gaan gebeuren. Het lijkt er dus op dat het algoritme compleet overbodig is geworden als versleutelingsalgoritme. Het enige wat er nog wel blijft is dat het algoritme nog steeds geheim is en dat iedereen die het publiceert de copyright op het versleutelingsalgoritme overtreedt.
50
DVD versleuteling - CSS
Hoofdstuk 6 Virtual Private Networks Door Nabil el Ouali
In dit hoofdstuk zal het onderwerp virtual private networks (VPN’s) behandeld worden. Wat zijn ze eigenlijk, wat bieden ze, waarvoor worden ze gebruikt en wat zijn de belangrijkste producten?
6.1
Inleiding
In de tijdperk dat de new economy zijn doorbraak heeft gemaakt, waren er een aantal kwesties die onder de loep genomen moesten worden. Het is algemeen bekend dat het internet een scala aan nieuwe dingen mogelijk heeft gemaakt, denk hierbij aan de booming van de e-Business medio de jaren negentig in zijn verschillende vormen (B2B, B2C, etc.). Het internet heeft dit mogelijk gemaakt omdat het twee karakteristieken heeft, het is alom aanwezig en het is “open”. In het begin werden deze twee punten als plus punten beschouwd (dat zijn ze nog steeds), maar ze hebben wel een keerzijde. Ze vormen wel het zwakke punt van het nieuwe medium. Denk hierbij aan de twee bedrijven die een deel van hun systemen willen koppelen omdat bijvoorbeeld de ene de supplier is van de ander, dan zouden deze bedrijven willen dat het dataverkeer geheim blijft om verschillende triviale redenen. Er zijn er een tal situaties waarbij de geheimhouding van de dataverkeer zeer gewenst is, wetend dat dit verkeer onderhevig kan zijn aan verschillende soorten aanvallen zoals spoofing, session hijacking, sniffing, en man-in-the-middle aanvallen. Daarom moest men een oplossing vinden voor deze problematiek, en dat is min of meer gelukt door gebruik te maken van VPN’s (Virtual Private Networks). Zoals de naam suggereert gaat het bij VPN’s niet alleen om priv´e netwerken maar deels om priv´e netwerken en deels om publieke netwerken of een combinatie van beide, waarbij de illusie gewekt wordt dat het om prive netwerken gaat vandaar dat men het woord virtueel ervoor heeft gekozen. 51
52
Virtual Private Networks
VPN’s zijn IP-gebaseerd netwerken (meestal over het publieke internet) die gebruik maken van encryptie en “tunneling” om ´e´en of meer van de volgende doelstellingen mogelijk te maken: • Werknemers de mogelijkheid geven om afstand in te loggen op het netwerk van het bedrijf waar zij werkzaam zijn (remote access). • Koppeling maken tussen twee netwerken van het zelfde bedrijf die fysiek van elkaar verwijderd zijn, dus het hoofdkantoor en de kleinere kantoren(Intranet). • Uitbreiding van de IT-infrastructuur van een bedrijf door partners en klanten te koppelen aan eigen netwerk (Extranet). In het vervolg van het verslag zal de technologie waarop VPN’s zijn gebaseerd in grote lijnen uiteengezet worden, waar de nadruk zal liggen op de cryptografische technieken. Daarna zal een beknopte beschrijving van de bestaande VPN’s gegeven worden met diens voordelen en nadelen.
6.2
Protocollen
VPN technologie is gebaseerd op wat bekend staat onder “Tunneling” strategie. Tunneling houdt in dat data als het ware wordt ingepakt in ´e´en of meerdere protocollen. Maar voordat ik de gebruikte protocollen de revue laat passeren, is het van wezenlijk belang dat deze protocollen aan de veiligheidseis voldoen. Hiermee wordt bedoeld dat er aan de volgende eisen moet worden voldaan: • Geheimhouding: Dit wordt gerealiseerd door gebruik te maken van cryptografie (encryptie). • Integriteit: Het wordt gewaarborgd door gebruik te maken van message authentication codes (MACs) of digitale handtekeningen of van one-way hashfuncties. De meest gebruikte hashfuncties zijn de MD-5 en SHA-1 en RIPE-MD-160. • Authenticiteit: deze laatste eis wordt gerealiseerd door gebruik te maken van digitale certificaten en van password authenticatie. Er wordt voornamelijk gebruik gemaakt van multi-factor authenticatie. Veel VPN’s maken gebruik van SecurID van Security dynamics, het is een “token card” dat secret key encryptie met een one-time password combineert. De uiteindelijke password wordt automatisch gegenereerd door een tijdstempel samen te versleutelen met de geheime sleutel. De one-time password blijft maar voor korte duur geldig, meestal 30 tot 60 seconden. De eerste protocol zal betrekkelijk uitvoerig behandeld worden, om een algemene idee te geven, de resterende protocolen zullen daarentegen in het kort beschreven worden.
6.2 Protocollen
53
6.2.1
IPSec (internet protocol security)
Het is een protocol dat werd ontworpen om de enige standaard te worden voor VPN’s, maar het is niet het geval, later zal blijken waarom. IPSec is een set van authenticatie en encryptie protocollen, dat door de IETF (Internet Engineering Task Force) werd ontworpen. Het is voornamelijk bedoeld voor bedrijven die over netwerken beschikken die de TCP/IP protocol gebruiken. Een normale TCP/IP pakket ziet er als volgt uit:
Twee belangrijke onderdelen van Ipsec zijn de Authentication Header (AH) en de Encapsulated Security Payload (ESP). Met behulp van een hash functie (MD5 of SHA-1) wordt in de authentication header aan elk pakketje een digitale handtekening toegevoegd, gebaseerd op de afzender en de inhoud van de payload. Zo kan voor elk pakketje vastgesteld worden van wie dit afkomstig is en tevens, dat de inhoud onderweg niet is veranderd. Om de inhoud en de afzender geheim te houden wordt het gehele pakketje versleuteld. Dit is de tunneling mode ESP: het pakketje gaat als het ware ondergronds, dus onzichtbaar, door het Internet (zie figuur 2).
De oorspronkelijke IP Header wordt dus ook meeversleuteld, en de nieuwe pakket wordt gestopt in een nieuwe pakket, waarbij deze laatste wordt voorzien van een nieuwe IP Header, die niet eens geldig hoeft te zijn (zie Figuur 3). Deze mode wordt voornamelijk gebruikt wanneer data het eigen IP netwerk moet verlaten en over het internet moet om zijn bestemming te bereiken, daarom wordt de IP Header ook versleuteld, om aanvallen
54
Virtual Private Networks
van man-in-the-middle te vermijden.
Het is ook mogelijk dat alleen de data wordt versleuteld, dit wordt transport mode ESP genoemd. Dit wordt voornamelijk gebruikt wanneer de data over een eigen priv´e netwerk verstuurd wordt (bijvoorbeeld in een intranet), de daadwerkelijke IP Header wordt niet versleuteld. De ESP header bevat de volgende headers: • Security Parameter Index (SPI): een 32 bits getal dat de Security Association specificeert. • Sequence Number (SN): een teller (om replay aanvallen tegen te gaan). De eerste twee headers worden wel geauthenticeerd maar niet versleuteld, de resterende headers daarentegen worden zowel geauthenticeerd als versleuteld. • Payload: de originele pakket met data. • Padding: arbitraire toegevoegde data terwille in het orde brengen van het aantal bytes(voor algoritmen die vaste data grootte vereisen). • Padding length: geeft de grootte van de padding data aan. • Next header: geeft de type aan van de data en de protocol zelf. Bij de Authentication header wordt er naast de SPI en de SN een authenticatie header toegevoegd in de vorm van een digitale handtekening. Hiervoor wordt de MD5 algoritme gebruikt of SHA-1. Voor de versleuteling wordt DES of 3DES gebruikt, hiermee wordt voldaan aan geheimhoudingseis. Maar voordat daadwerkelijk pakketen worden verstuurd moeten de twee communicerende partijen afspreken hoe zij hun informatie willen beveiligen, en aan welke eisen zij willen voldoen. Hiervoor zijn procedures ontwikkeld zoals (ISAKMP/Oakley is de algemeen gebruikte methode, waarbij ISAKMP staat voor Internet Security Association and Key Management Protocol) (zie: http://www.cisco.com/univercd/cc/td/doc/ product/software/ios120/12cgcr/secur c/scprt4/scike.pdf). IPSec is geschikt voor het implementeren van intranetten en extranetten, maar het telewerken is achtergebleven bij het maken van deze standaard. Daarom hebben verschillende fabrikanten ervoor gekozen om de standaard uit te breiden om het toch mogelijk te maken. Dit heeft voor gevolg dat conflicten bij gebruik kunnen ontstaan. Een van de voordelen dat IPSec biedt is dat het te gebruiken valt bij aanwezigheid van gevarieerd hardware en software.
6.2 Protocollen
55
6.2.2
Point-to-Point Tunneling Protocol (PPTP)
PPTP is een protocol dat werd ontwikkeld door verschillende bedrijven waaronder Microsoft en 3Com. De eerste versie van het protocol werd als niet volledig veilig beschouwd, maar de laatste versie wel. Het doel van deze protocol was aanvankelijk dat het eenvoudig moet zijn, en dat het verschillende protocols moet ondersteunen zonder gebruik te maken van een public key infrastructuur (PKI). De PPTP maakt gebruik van een TCP connectie waarbij een tunnel wordt bijgehouden, en van de methode Generic Routing Encapsulation om pakketten in te pakken. Deze pakketten kunnen versleuteld en/of gecomprimeerd worden. 6.2.3
Layer Two Tunneling Protocol (L2TP)
Het is een protocol waarbij de voordelen van PPTP en L2F (een protocol die aanvankelijk werd gebruikt in VPN’s van Cisco Systems) werden gecombineerd. Deze protocol maakt gebruik van een subprotocol dat Point-to-Point (PPP) heet. Deze laatste maakt het mogelijk dat L2TP toegepast kan worden op netwerken die van de volgende protocollen gebruik maken: TCP/IP, IPX, X.25, ATM en Appletalk niet te vergeten. Wanneer de L2TP tunnels de vorm hebben van IP pakketten, dan wordt er gebruik gemaakt van van de IPSec, transport mode om precies te zijn. Hierbij voldoen de pakketten aan de veiligheidseis, en bovendien worden ze tegen replay aanvallen beschermd. De subprotocol PPP verschaft L2TPeen groot voordeel, omdat het verschillende authenticatie opties bevat, zoals CHAP, MS-CHAP, MS-CHAPv2 en Extensible Authentication Protocol (EAP) dat het gebruik maken van token cards en smartcards ondersteunt. L2TP kan gebruikt worden voor intranetten, extranetten en telewerken(remote access). Maar bij ´e´en van de eerste versies van het protocol kon een gebruiker maar ´e´en tunnel tot stand brengen, terwijl het wenselijk is dat een gebruiker meerdere connecties zou willen maken. In de laatste versie van het protocol schijnt dit mogelijk te zijn. 6.2.4
SOCKS Network Security Protocol
Deze protocol wordt vooral gebruikt om extranetten tot stand te brengen. Het geeft de mogelijkheid om content-filtering toe te passen, waarbij de toegang wordt geweigerd tot bepaalde applicaties. Opmerking: De hiervoor beschreven protocollen kunnen worden gecombineerd. De L2TP protocol kan bijvoorbeeld binnen een intranet gebruikt worden waar bijvoorbeeld gebruik wordt gemaakt van IPX. Mocht de informatie over het internet moeten, dan kan L2TP gecombineerd worden met IPSec om beter aan de veiligheidseis te voldoen.
56
Virtual Private Networks
6.3
VPN/Firewall oplossingen vs Stand alone VPN’s
De gebruikte VPN’s kunnen in twee hoofdcategorieen verdeeld worden, stand-alone VPN gateways en ge¨ıntegreerde VPN/firewall oplossingen. In het geval dat een VPN apart wordt geplaatst ten opzichte van de firewall, dan kan dat leiden tot problemen en complicaties voor de netwerkbeheerders, in termen van management en veiligheid. 6.3.1
Vpn/firewall oplossing
Ge¨ıntegreerde VPN/firewall oplossingen voldoen aan alle kritische eisen waaraan de invoering van een VPN zou moeten voldoen door de volgende punten mogelijk te maken: • Bescherming tegen gevaren van het internet: Door gebruik van de ge¨ıntegreerde oplossing, krijgt de VPN gateway en daarvoor de “connectivity” van de VPN bescherming van de firewall. Denial of service aanvallen die zich bij stand-alone VPN gateways kunnen voorden, worden hiermee vermeden. • Toegangscontrole tot alle verkeer: Het integreren van de VPN gateway en de firewall geeft de mogelijkheid om het dataverkeer heel goed te controleren. Omdat de firewall en de VPN, gebruikers informatie en gespecificeerde groepen delen, kan er nauwlettend gecontroleerd worden wat de groepen doen, en of ze over de juiste toegangsinformatie beschikken. Bovendien wordt de data ontsleuteld en gecontroleerd op inhoud, zodat alleen maar toegestane informatie door de firewall mag. • Gecentraliseerd management: Ge¨ıntegreerde VPN implementaties vergemakkelijken het beheer van netwerken vooral in omgevingen waarin verschillende firewalls en VPN gateways benodigd zijn. Database updates en veiligheidsmaatregelen kunnen tegelijkertijd worden ingevoerd of veranderd, wat de kans op configuratiefouten verkleint. • Logfiles: Alle log bestanden worden in een centrale punt bewaard. • Vereenvoudigde routing: In het geval dat nieuwe apparatuur aan het netwerk wordt toegevoegd, dan kan het een hele klus worden om de routeringstabellen aan te passen. Dit wordt bij de ge¨ıntegreerde aanpak behoorlijk vereenvoudigd, omdat het niet nodig is om aparte routes bij te houden voor zowel de VPN gateway en de firewall afzonderlijk. • Prestatie: het ge¨ıntegreerde aanpak kan de prestatie (performance) van het netwerk degelijk verbeteren, door ontsleuteling te versnellen door gebruik te maken van bepaalde kaarten die deze taak overnemen, en zodoende blijft de CPU bespaard van deze rekenintensieve proces. De prestatie kan ook verbeterd worden door gebruik te maken van ge¨ıntegreerde management van de bandbreedte, bij dit proces worden opstoppingen in het netwerk in de gaten gehouden, zodanig dat “business critical traffic” voorrang krijgt.
6.4 Samenvatting
57
6.3.2
Stand-alone oplossingen
Er zijn verschillende implementaties mogelijk, maar die blijken allemaal verscheidene zwakke punten te bevatten. Een van de benaderingen is om de VPN gateway te plaatsen voor de firewall. Men zou in eerste instantie geneigd zijn om te beweren dat deze aanpak goed is. Het is weliswaar dat de VPN gateway zich als eerste over de data ontfermt (decryptie), en daarna wordt het doorgegeven aan de firewall die op zijn beurt bepaalt of de data gerouteerd mag worden naar zijn eindbestemming in de priv´e-netwerk. Maar aan deze benadering kleven er wat nadelen. Stel dat de VPN gateway gecompromitteerd wordt door een aanval van buiten af, dan wordt alle VPN gerelateerde verkeer ontregeld, of in het ergste geval loopt het helemaal in het honderd, wat desastreuze gevolgen kan hebben voor het bedrijf zelf en diens business partners. Van de plus punten die ge¨etaleerd werden bij de ge¨ıntegreerde oplossing is er maar ´e´en aanwezig, en dat is de tweede punt. Een andere benadering is dat men de VPN gateway plaatst achter de firewall, hiermee verlicht men de blootstelling van de VPN gateway aan aanvallen van buitenaf. Maar de firewall kan niet bij alle data komen, omdat een deel ervan versleuteld is. Dit betekent dat niet-gewenste data kan worden toegelaten, plus het feit dat men in dit geval geen grip heeft op de toegang van mensen van buitenaf tot het interne netwerk.(zie: www.checkpoint.com)
6.4
Samenvatting
Bij een VPN, wordt gebruik gemaakt van beveiligde, priv´e verbindingen over een openbaar net, meestal het internet. De voordelen in vergelijking met een eigen netwerk van huurlijnen of opbelverbindingen zijn de flexibiliteit en de enorme kostenbesparingen. Het is dan ook geen wonder dat er grote belangstelling is, zowel van de potenti¨ele klanten als van bedrijven die allerlei producten voor de implementatie van VPN’s aanbieden. Deze producten zijn er met name voor bedoeld om de communicatie te beveiligen en het gebruik en beheer van het systeem zoveel mogelijk te vergemakkelijken. Beveiliging van verstuurde gegevens door middel van encryptie, het identificeren van personen en hun bevoegdheden en het beveiligen van de toegang tot het VPN en het bedrijfsnetwerk (intranet) zijn de basisvereisten voor een VPN. De vorm waarbij een bedrijf een intranet wil cre¨eren, of dat men “remote access” mogelijk wil maken is relatief simpel omdat het bedrijf de punten van toegang onder controle heeft. Er moet wel gezorgd worden voor het versleutelen van de informatie die over het net verstuurd wordt, voor het ondubbelzinnig vaststellen van de identiteit van zender en ontvanger en voor een deugdelijke firewall. Een goed doordacht VPN is bovendien veiliger dan een eenvoudige opbelverbinding, omdat alle informatie versleuteld wordt en een overzicht kan worden bijgehouden van wat de inbellers doen. Bij een mobiele buitenpost wordt in het algemeen niet volstaan met het vaststellen van de identiteit door middel van het IP-adres, maar worden bovendien andere methoden gebruikt ter identificatie, zoals een chipkaart of corpometrische methoden (waar profielen worden gebruikt). Bovendien kan de mate waarin een medewerker toegang heeft tot bedrijfsin-
58
Virtual Private Networks
formatie individueel geregeld worden. Als de toegangspunten binnen de controle van de eigen organisatie vallen, kan volstaan worden met het versleutelen, respectievelijk decoderen van de data op de VPN gateway. Een voordeel is, dat alle applicaties hiervan gebruik kunnen maken en dat de versleuteling niet per se op de PC van de gebruiker hoeft plaats te vinden. Extranetten zijn complexer, omdat het bedrijf een bredere en mogelijk wisselende groep van gebruikers met verschillende bevoegdheden toegang wil geven tot verschillende soorten bedrijfsgegevens en processen, waar de toegangspunten buiten de controle van de eigen organisatie vallen. Dit betekent, dat niet volstaan kan worden met een beveiliging van het transport via het Internet, maar dat op het niveau van de individuele gebruiker de aspecten encryptie, geautoriseerde toegang, vaststellen van de identiteit en definitie van bevoegdheden geregeld moeten worden, dit wordt vooral bereikt door gebruik te maken van de ge¨ıntegreerde oplossing VPN/firewall. Er zijn ook andere nadelen die gepaard gaan met het gebruik van VPN’s, maar die vaak over het hoofd worden gezien, bijvoorbeeld wanneer de data over het internet moet dan heeft men over het algemeen geen invloed op de performance. Een andere nadeel is dat er conflicten kunnen ontstaan wanneer twee partijen gebruik maken van VPN’s die ingekocht zijn bij twee verschillende fabrikanten. Dit laatste gebeurt wat minder vaak de laatste tijd omdat de fabrikanten zich steeds beter houden aan het implementeren van de huidige standaards.
Hoofdstuk 7 Windows 2000 Advanced Server Door Bas Ribbers
Windows 2000 Advanced Server is momenteel het belangrijkste product voor het aanbieden van digitale diensten. Dit server platform, in combinatie met het .NET framework geeft de ontwerpers van dit soort diensten nieuwe mogelijkheden voor het beveiligen van deze diensten. Hieronder vallen http, ftp, directory services, message queueing en domain controlling. Dit artikel beschrijft in het kort de praktische cryptografische mogelijkheden die Microsoft Windows Advanced Server biedt om deze diensten beveiligd aan te bieden.
7.1
Korte platform beschrijving
Een Windows 2000 Advanced Server voor het aanbieden van web-services bestaat uit een domain-controller voor het domain, een Active Directory waarin de user-accounts worden opgeslagen en een Internet Information Server voor het aanbieden van Webpages. Verder kan nog gebruikt worden gemaakt van een message queueing service, een certificate authority e.t.c.. Al deze services kunnen desgewenst worden verdeeld over meerdere fysieke machines voor load-balancing.
Kader 7.1: Over de auteur Bas Ribbers is al enkele jaren als bij Cap Gemini Ernst en Young werkzaam als software engineer bij Warp 11, de advanced technology unit. Zijn belangrijkste taken zijn het ontwikkelen en implementeren van web-diensten.
59
60
Windows 2000 Advanced Server
7.2
Kerberos Server Authentication
Kerberos V5 is het default netwerk authentication protocol dat wordt gebruikt voor Windows 2000. Het is de basis voor alle security binnen Windows 2000. Dit protocol heeft zich in de afgelopen jaren bewezen in de UNIX wereld. De voormalige Microsoft NT 4.0 server gebruikten het NT lan Manager authenticatie protocol. Dit wordt nog wel ondersteund door WIN2K maar is ongeschikt voor web-transacties. Kerberos is als protocol ingevoerd omdat hiermee client-validatie mogelijk wordt. NTLM wordt nog wel gebruik voor console login op stand alone machines. Ook wordt NTLM gebruikt tijdens toegang tot oudere NT 4.0 machines. Het is belangrijk te onthouden dat zolang nog NTLM op het netwerk beschikbaar is, de beveiliging niet optimaal is. Tijdens NTLM authenticatie moeten zowel client als server contact zoeken met een domain controller om te controleren of client en server geldig zijn. Een indringer kan zich met NTLM voordoen als een service provider en clients bedriegen. Een eerste versie van Kerberos is in 1986 tijdens het “Athena” project op MIT ontstaan. De Kerberos versie die nu ingebruik is op W2K servers is “Microsoft Kerberos V5”. De uitbreidingen die Microsoft aan Kerberos heeft toegevoegd betreffen onder andere Certificate login zodat met smartcards kan worden ingelogged op windows systemen. Microsofts Versie van Kerberos “adheres closly to” de RFC 1510. Kleine afwijkingen ten opzichte van de implementaties van dit protocol zijn dus te verwachten. Voor informatie over de werking van dit protocol verwijs ik naar hoofdstuk 9 van Gerard Tel’s “Cryptography”. Belangrijk hier is dat net zoals de mythologische Kerberos ook dit protocol bestaat uit drie delen: client, server en een trusted authority. Binnen W2K is deze trusted authority de ”Key Distribution Server”. Deze KDC bevind zich op elke domain controller binnen een windows domain. De KDC bevat secret-keys (longterm-keys) en account informatie van alle principals binnen het domain. Een principal is een account met rechten binnen het domain. Het is belangrijk dat deze domaincontrollers ook op een fysiek veilige plaats staan. Een indringer met toegang tot de hardware kan eenvoudig het systeem binnen dringen. De secret-keys binnen de KDC zijn symetrische sleutels. Een andere set of keys die staan opgeslagen binnen de KDC zijn session-keys. Deze sesion keys worden gebruikt als een principal wil communiceren met een andere principal binnen het domain. Bijvoorbeeld als een client gebruik wil maken van een service op een server. Deze session-keys hebben maar een geldigheid die beperkt is tot de duur van de transactie. Kerberos heeft drie sub-protocollen: Authentication Service Exchange, Ticket-Granting Service Exchange en Client/Server Exchange. AS wordt gebruikt door de KDC tijdens de verstrekking van logon session keys. TGS wordt gebruikt door de KDC bij de verstrekking van public server keys en session tickets aan een client die gebruik wil maken van een service die op die server draait. CS protocol wordt gebruikt als de client dit session ticket naar deze server wil versturen. Belangrijk om te realiseren is dat Microsoft Kerberos alleen user-authentication regelt. De toegang tot verschillende diensten en servers wordt binnen Windows door de Local Security Authority (LSA) geregeld.
7.3 Secure Networking
61
7.3
Secure Networking
Secure networking is de tweede stap in de weg naar een veilig domain. Nu steeds meer en meer organisaties werken en handelen over het publieke internet is er een groeiende behoefte aan veilige netwerken. Een Windows 4.0 domain met NTLM security is perfect veilig zolang geen enkele buitenstaander toegang heeft tot de computers binnen een bedrijf. En er geen email verkeer is. En er geen gebruik gemaakt wordt van Internet. En er geen kwaadwillende medewerkers aanwezig zijn etc. Maar afgezien van deze factoren kan in principe zonder problemen een MS Word document van een file-server worden ingelezen, bewerkt en opgeslagen zonder dat een concurrent dit bestand kan inzien. Werken via internet is een heel ander verhaal. Internet is immers een open netwerk. Alle packages die computers onderling naar elkaar versturen kunnen in principe door iedereen worden gelezen. Dit geldt ook voor emails die op iedere mailserver kunnen staan. Omdat het internet bestaat uit diverse soorten systemen, netwerken, routers etc., is het opzetten van een verbinding die echt veilig is niet simpel. De oplossing die hiervoor bedacht is heet “tunneling”. Tunneling protocols zijn netwerk protocollen die binnen een ander protocol zitten verpakt. Er ontstaat op deze wijze een Virtual Private Network, een VPN. Voorbeelden van zo’n VPN zijn PPTP, L2TP (Point-To-Point Tunneling Protocol en Layer 2 Tunneling Protocol). Beide worden door Windows 2000 ondersteund. Er zijn nog diverse andere implementaties van VPN’s op de markt. De bestaande security protocollen die bestaan onder Windows 2000 worden dus verpakt in een package dat veilig over internet kan worden verstuurt. Een client beschikt over een certficaat, afgegeven door een CA binnen het domain van zijn werkgever, en logt hiermee aan op een domain server. Via PKI en Kerberos wordt zijn certificaat gecontroleerd en geverifieerd waarnaar hij toegang krijgt tot de desbetreffende dienst. Al het netwerk verkeer tussen de server en de client wordt versleuteld en verpakt in een normaal internet packet en de werknemer kan vervolgens veilig werken zonder dat iemand zijn gegevens kan afluisteren. De packages kunnen nogsteeds worden ge-snoopt of ge-sniffed alleen is de inhoud nu encrypted met een sterk asymetrisch algoritme.
7.4
Encrypting File System (EFS)
W2k beschikt over een nieuwe security feature die file-encryptie ondersteund. Onder de oudere versies van windows was het nog noodzakelijk om hiervoor een third-party product te installeren. Vooral het toenemende gebruik van laptops heeft de behoefte aan dit soort encryptie vergroot. Laptops veranderen nogal eens onbedoeld van eigenaar, en ook van desktop computers verdwijnen harde schijven. Veel third-party producten voor file-encryptie maken gebruik van password keys en het encrypten / decrypten moet handmatig gebeuren voor ieder gebruik. Het recovery mechanisme van dit soort producten maakt deze niet 100% veilig. Een programma dat draaid op het dezelfde systeem zou ook kunnen inbreken op de encryptie / decryptie procedure. De windows 2000 Encrypting File System draait in de kernel mode van het systeem. Een user heeft
62
Windows 2000 Advanced Server
geen rechten op dit systeem-nivo. Het encrypting file system is een onderdeel van het windows NTFS file systeem. Zowel public-key encryptie als symetric-key encryptie worden ondersteund. De hoogste veiligheid haalbaar is 128-bit DES. Standaard wordt 40-bit DES aangeboden. De Encrypted Data Recovery Policy (EDRP) regelt die situaties wanneer een gebruiker de organisatie verlaat, of een bestand wordt gewist. Werken met het encrypting file systeem gaat als volgt: Wanneer een verzoek binnen komt om een bestand te encrypten genereert de EFS een random getal. Dit getal is de file encryption key (FEK). Een aangepast DES algorithme (DESX) wordt gebruikt om het bestand te encrypten en op schijf op te slaan. Dit gaat vrij snel. Een nadeel is dat deze FEK op dezelfde schijf staat opgeslagen als het encrypte bestand. Daarom wordt deze sleutel versleuteld met de public-key van de user. Deze public-key is opgeslagen in de KDC en is beperkt van lengte zodat er nauwelijks sprake is van performance verlies. Het is niet mogelijk voor groepen gebruikers om een public-key te delen. Het gebruiken van EFS is eenvoudig, het zetten van een vinkje bij advanced file properties is voldoende. Een nadeel is dat compressie en file encrypting onder NTFS niet beide tegelijk kunnen werken. Zolang een file bestaat op het NTFS filesysteem, kan de eigenaar dit file decrypten. Het is wel noodzakelijk dat het systeem volledig is geboot. Om die reden kan niet heel het systeem worden ge-encrypt. De boot bestanden moeten altijd beschikbaar zijn voor het systeem. Toegang tot een encrypted file vergt geen user actie. Het systeem verwerkt alles automatisch. Een belangrijk verschil met andere data encryptie systemen is dat het bestand altijd in zijn versleutelde toestand op schijf blijft staan. Alleen in het werkgeheugen is het bestand decrypted aanwezig. Bij niet geintegreerde oplossingen moet er eerst een decrypte kopie naar schijf worden geschreven. Dit is een ernstige tekortkoming, want zelfs na een delete en een swipe kan deze data nog gelezen worden. Bij het copieren van een encrypted bestand heeft de encryptie voorrang, dit betekent dat als het bestand is plain en de target folder is encrypted dat het doel bestand automatisch wordt mee ge-encrypt. Het copy commando is uitgebreid met twee nieuwe switches: /E en /I (Export en Inport). Als een bestand wordt geexporteerd zonder de /E switch, dan zal het nieuwe bestands systeem dit bestand openen als cyphertext. Door de /E switch wordt op NTFS het encryption-bit gezet. De /I switch doet hetzelfde maar dan voor geimporteerde files. Met deze functies is het dus mogelijk een encrypted NTFS bestand te copieren naar een portable FAT media en vervolgens terug te copieren naar NTFS zonder dat er een onveilige situatie onstaat. Let wel op dat het nieuwe NTFS systeem onderdeel moet zijn van hetzelfde domain! Zonder KDC (die staat op een domain controller) kan het NTFS de juiste user / private-key combinatie niet terugvinden en gaat het bestand verloren. De Cipher Utility is de command-line tool onder windows 2000 die gebruikt kan worden voor het encrypten en decrypten van bestanden. De aanroep >cipher zonder switches geeft de encryptie status van de huidige directory. Er zijn een zestal switches: /e (encrypt), /d (decrypt), /s (directory operations), /i (override errors), /f (force encryption) en /q (report only essential info).
7.5 Smart Cards
63
7.5
Smart Cards
Een smart card is een geheugen op een makkelijk te hanteren stukje kunstof. Een smart card is een perfect medium voor de opslag van certificaten. De opslag van authenticatie tokens op een smart card heeft een aantal grote voordelen. Een user hoeft bijvoorbeeld geen wachtwoorden meer te onthouden. Ook is het niet langer nodig dat credentials op een computer moeten zijn opgeslagen. De logica op een smart card kan ook het versturen van keys over een netwerk overbodig maken. Denk hierbij aan challengeresponse systemen. De gegevens die staan opgeslagen op een smart card zijn al tamelijk veilig vanwege het feit dat men deze kaart bij zich draagt. Verdere beveiliging van de gegevens op deze kaart wordt op moderne smard cards gegarandeerd door tal van maatregelen. De nieuwste kaarten zijn smart cards die gebruik maken van een stuk biometrie. Deze keys zijn bijvoorbeeld voorzien van een vingerafdruklezer. Met het certificaat dat is opgeslagen op de smart card kunnen bijvoorbeeld ook de bestanden van deze user worden encrypt/decrypt door het EFS. Binnen Windows zijn er verschillende producten en methodes voor het gebruik van smart cards. CryptoAPI, Win32 API en SCard COM. De Smart card SDK maakt standaard deel uit van de Microsoft Platform Software Development Kit (SDK). De Crypto API is een library die eenvoudig kan worden aangeroepen vanuit diverse applicaties. Deze implementatie maakt kennis van cryptografische algoritmes overbodig. CryptoAPI wordt ook ondersteund door Windows 95,98 en NT. Als maximale controle nodig is over de smart card en de smart card reader, dan moet gebruik worden gemaakt van de WIn32 API. Gebruik van deze API vergt echter veel meer vaardigheden van de developer. Windows beschikt ook over een SCard COM object wat kan worden aangeroepen. Voordeel van COM oplossingen is dat deze snel kunnen worden aangepast mocht een update nodig zijn. Windows 2000 bevat standaard ondersteuning voor smart card login. Een gebruiker kan eenvoudig een smart card gebruiken met een pin-code om in te loggen. De smart card bevat het X509V3 certificaat dat voor voor authenticatie zorgt. De GINA (graphical identification and authentication) leest dit certificaat van de smart card volgens een secure methode. Van dit ingelezen certificaat wordt gecontroleerd of het een geldig certificaat is, uitgegeven door een trusted provider. Vervolgens wordt de inloggende gebruiker gekoppeld aan een in de Active Directory opgeslagen account. Volgens een Kerberos PKI protocol wordt vervolgens een access token uitgegeven voor deze user, voor deze server. Client side smart card authenticatie via internet met Internet Explorer naar een Internet Information Server 4.0 en hoger is ook mogelijk. Een Certificate Authority binnen het domain regelt de uitgifte van de certificaten die hierbij worden gebruikt.
7.6
Windows 2000 Public Key Infrastructure
Vandaag de dag vertrouwen alle organisaties op hun computer netwerken voor de toegang tot hun bedrijfsgegevens. Deze netwerken strekken zich uit over het hele internet.
64
Windows 2000 Advanced Server
Communicatie is van vitaal belang. Het oude Windows NT 4.0 platform vertrouwde op een systeem van accounts en passwords om de gegevens te beveiligen en transacties op een veilige en betrouwbare manier uit te voeren. Het gebruik van louter symetrische encryptie maakte dat veel gedistribueerde systemen gevoelig waren voor man-in-themiddle attacks en andere vormen van misbruik. Nieuwe cryptografische technieken die een hele organisatie omspannen zijn absoluut nodig om misbruik van gevoelige bedrijfsinformatie te voorkomen. Microsoft heeft uitgebreide public key infrastructuur mogelijkheden standaard ingebouwd in Windows 2000 Advanced Server. Deze PKI maakt gebruik van het totaal packet aan security en cryptografische mogelijkheden die deze versie van Windows biedt. Bovenal is deze structuur flexibel, secure en er is goed en snel voor te ontwikkelen. Een PKI is een verzameling van OS en app services dat gebruikt maakt van asymetrische encryptie. De PKI overschrijft nooit de “domain-trust” en andere authenticatie processen. De verantwoordelijkheid voor deze processen liggen bij de domain controller en de Kerberos Key Distribution Centers. De PKI is een extentie op deze basis infrastructuur. De belangrijkste functie van een PKI is het uitgeven en revoken van certificaten die principals bepaalde rechten geven binnen het domain. Tevens moet dit op een zodanige wijze gebeuren dat een beheerder dit efficient kan doen en een client zonder al te veel ellende toegang kan krijgen tot de diensten binnen het domain waarvoor de certificaten worden afgegeven. De PKI bestaat uit drie delen: de Active Directory, Kerberos Domain Controller en een Certificate Server. De Active Directory regelt de policy distributie en de publicatie van certificaten, deze zijn uitgegeven door de Certificate Server. De toegang tot het domain met zo’n certificaat wordt geregeld door de Kerberos Domain Controller. Het belangrijkste element binnen de PKI is het certificaat. Het doel van de PKI is immers het geven van een garantie dat diegene die zegt een bepaalde client te zijn, ook daadwerkelijk die client is. De garantie dat de public-key ook daadwerkelijk bij die client hoort hangt af van hoe betrouwbaar de uitgever van dat certificaat is. Het gaat hier om ”trust”. Meestal vertrouw je alleen je eigen domain. Binnen je eigen domain heb je dus je eigen Certificate Authority (CA) die certificaten aan clients uitdeelt. Het is echter wel mogelijk om meerdere domains aan elkaar te koppelen, de zgn. trusted domains. Een server / service wil kunnen vertrouwen op de certificate verification. Of te wel, als een Certificate Authority zegt dat een bepaalde public-key bij een bepaald certificaat hoort dan moet de server / service er op kunnen vertrouwen dat dat inderdaad zo is. Er moet hier aan twee voorwaarden zijn voldaan voordat dit wordt aangenomen. Ten eerste moet worden aangetoont dat de principal binnen het certificaat daadwerkelijk is verbonden aan een Trusted Root Certificate authority van de client. Ten tweede moet het doel waarvoor het certificaat is afgegeven ook overeen komen met het doel waarvoor de client het wil gaan gebruiken. Een trusted CA root is de “top” van de certificate hierarchy. Dit is de boom structuur die onstaat als servers / services / domains certificaten aanvragen bij een andere dienst en vervolgens zelf ook weer certificaten uit gaan geven. Een trusted CA root speelt een belangrijke rol bij “trust”. Immers, als deze root CA corrupt is, dan zijn alle certificaten onderaan in de boom onbetrouwbaar.
7.6 Windows 2000 Public Key Infrastructure
65
De Windows 2000 Public key Infrastructure (W2K PKI) vormt het totale beveiligings pakket onder windows 2000. Alle vooraf genoemde technologie speelt hierin een rol. De PKI is echter meer dan een verzameling tools en API’s. De PKI is tevens het framework waarbinnen de totale domain security is vastgelegd in ACL’s, policies en dergelijke. Wat ik hier wil aangeven is dat met het wegzetten van een Windows doos met al de bijbehorende technieken het systeem / domain / webservice nog lang niet veilig is. Het totaal aan maatregelen om business en privacy te beveiligen is voor het grootste deel afhankelijk van hoe de organisatie de tools gebruikt en de genomen security maatregelen afdwingt. Een zorgvuldig en actief security beleid hoort deel uit te maken van het business plan waarvoor de betreffende web-dienst is ontwikkeld. Deze webdienst is meestal namenlijk een voortdurend veranderende applicatie. De gaten die ontstaan doordat security-policy en web-dienst uit elkaar groeien zijn die gaten die hackers exploiteren om zo het domain binnen te kunnen dringen, met alle ernstige gevolgen van dien.
66
Windows 2000 Advanced Server
Hoofdstuk 8 Biometrie Door Lars Hemel
Een biometrisch systeem kan gebruikt worden om personen te herkennen op basis van persoonsgebonden eigenschappen. In hoofdstuk (8.2) is meer te lezen over eigenschappen, die vrijwel alle biometrische systemen gemeen hebben. Door de snelle opkomst van de computers als opslagmedium, werd het steeds belangrijker om gegevens te beveiligen. Dit wordt gedaan door passwords die tegenwoordig met encryptie methoden versleuteld worden. Hierbij worden zulke grote sleutels gebruikt dat het zonder de decryptie functie niet mogelijk is de sleutel te achterhalen. Biometrie biedt nog iets extra’s aan veiligheid. Omdat de sleutels afhankelijk zijn van persoonsgebonden eigenschappen, is het niet meer mogelijk je voor te doen als een ander. Ons DNA (DesoxyriboNucle¨ıcAcid), dat (nog) niet te veranderen is, legt vast hoe het reli¨ef van onze vingers eruit ziet of hoe het frequentie patroon van onze spraak eruit ziet. Enkele voordelen van biometrie ten opzichte van passwords worden in hoofdstuk (8.1) behandeld. In deze introductie naar biometrie zal het een en ander toegelicht worden door naar het Italiaanse bedrijf BiometriKa1 te kijken. Zij hebben enkele zeer handige biometrische apparaatjes op de markt gebracht die de beveiliging van gegevens veel kunnen vergroten. Voornamelijk zal ik het hebben over de F x2000, de door hen ontwikkelde vingerafdruk scanner. Voor meer informatie over scanners, zie hoofdstuk (8.4).
8.1
Passwords versus Biometrie 8.1.1
Software
Om software te beveiligen tegen het kopi¨eren, wordt het beveiligd met passwords. Over het algemeen heeft elk stuk software een evaluatie periode. Tijdens deze periode kan het 1
Het bedrijf BiometriKa, http://www.biometrika.it/eng/index.html
67
68
Biometrie
programma uitgeprobeerd worden, waarna de gebruiker een zogenaamde licentie moet kopen. Deze wordt per brief of via het internet verstrekt en bestaat uit een password dat na intypen het stuk software weer bruikbaar maakt. Het stuk software vergelijkt het opgestuurde password met het echte. Dit echte password moet dus ergens door de software in het systeem van de gebruiker opgeslagen zijn; uiteraard ge¨encrypt. Maar omdat het op het systeem van de gebruiker staat, kan het door aanvallers te achterhalen zijn. Er zijn ook op hardware gebaseerde beveiligingen. Dit zijn apparaatjes die na verbonden te zijn met de computer een bepaald password geven die het programma gaat verifi¨eren. Als voorbeeld kan bijvoorbeeld de e-identifier van de ABN AMRO genomen worden. Een apparaat dat een password genereert, waarmee je overal ter wereld je bankzaken kunt regelen. Feit blijft, dat het softwarematige programma het password moet kunnnen verrifi¨eren, wat betekent dat ook deze passwords ergens in de software opgeslagen moeten zijn en dus aanvalbaar zijn. In principe kan het achterhalen van het juiste password door encryptie, neppe sleutels en vele andere trucs erg moeilijk gemaakt worden, maar het password moet hoe dan ook ergens op het systeem van de gebruiker staan en kan dus te achterhalen zijn. 8.1.2
Passwords
Nadelen van de meest gebruikte vorm van beveiliging, namelijk passwords zijn er genoeg. Als gebruikers hun password mogen kiezen, kiezen ze vaak iets dat door de aanvaller makkelijk te raden is. Testen hebben uitgewezen dat in negentig procent van de gevallen, een deel van het password bestaat uit iets raadbaars zoals je naam, je huisnummer of de naam van je favoriete artiest. Een nadeel aan het random genereren van een password is dat veel mensen problemen blijken te hebben met het onthouden ervan. Vele mensen schrijven het daarom op, wat de veiligheid niet ten goede komt. Ik heb van die gele postit papiertjes gezien, waar gebruikers hun password opschreven en het vervolgens op de rand van hun beeldscherm plakten. Een ander probleem is dat passwords aan vrienden uitgeleend kunnen worden, maar wie zegt dat die vrienden geen kwaad in de zin hebben. En hoe vaak worden passwords vernieuwd of kijken er mensen over je schouder mee als je je password intypt. Al deze problemen worden opgelost bij gebruik van biometrie.
8.2
Introductie van biometrische systemen
Een biometrisch systeem is een automatisch apparaat dat een persoon kan identificeren op basis van zijn of haar persoonsgebonden eigenschappen. Denk hierbij aan lichamelijke eigenschappen als een vinger of hand afdruk. Maar ook de contouren van een gezicht en een iris scan zijn uniek genoeg om als persoonsherkenning te gebruiken. Denk ook aan gedragseigenschappen zoals spraak en handschrift2 . 2
Voor meer artikelen over allerlei soorten biometrische systemen, http://biometrics.cse.msu.edu/publications.html
8.2 Introductie van biometrische systemen
69
Om een gebruiker te identificeren met behulp van een biometrisch systeem, moet elke gebruiker eerst een sample afleveren. Met een mooi woord enrollment genoemd. Afhankelijk van de implementatie, kan het unieke password opgeslagen worden in een database, op een gebruikersbadge of de code kan over het netwerk verspreid worden. Elke keer als de gebruiker ervan gebruik wil maken, wordt zijn of haar huidige sample vergeleken met de opgeslagen en wel dan wel niet geaccepteerd. Het elke keer opnieuw ingescande password zal over het algemeen nooit precies hetzelfde zijn. Het scannen van contouren van het hoofd kan op de ene dag, door het fronsen van een wenkbrouw, een iets ander password opleveren dan op een andere dag. De ene keer praat je met een iets hogere stem dan anders en een vinger zal ook niet altijd op precies dezelfde plaats in de scanner terecht komen. In principe zijn de codes nooit precies hetzelfde, er zit altijd wel wat ruis of noise in het password. Dit betekent dat het mogelijk moet zijn, bij een kleine afwijking, toch door het systeem geaccepteerd te worden. Alle biometrische systemen maken gebruik van een False Acceptance Rate (F AR) en een False Rejection Rate (F RR). Dit zijn waarden die van de acceptatie threshold t afhangen, zoals in figuur (8.1) te zien is. Om te voorkomen dat mensen door een iets afwijkend password (waar ze immers niets aan kunnen doen) ten onrechte geweigerd of nog veel erger, ten onrechte geaccepteerd worden, is het dus zaak deze waarde voor t zo te kiezen dat het voor het gebruikte systeem voldoende veilig is. Een instelling als de FBI zal een heel lage F AR kiezen, omdat het erg veel schade op kan leveren als iemand inlogt die dat eigenlijk niet mag. Dit brengt wel een hogere kans met zich mee dat mensen vaker geweigerd worden, terwijl ze wel geaccepteerd zouden moeten worden.
Figuur 8.1: FAR and FRR against the acceptance threshold t In figuur (8.1) zijn nog enkele variabelen genoemd. De EER, de Equal Error Rate, welke de waarde van t aangeeft waarvoor de kans op een verkeerde weigering gelijk is aan een verkeerde acceptatie. Er is een variabele genaamd ZeroF AR, die de waarde van t aangeeft, waarvoor de kans op het verkeerd accepteren van een persoon nagenoeg nul is. Precies gelijk aan nul kan natuurlijk nooit, maar instelbaar is een waarde in de orde van 1e10− 10, waar beneden de kans gelijk aan nul gesteld wordt. De ZeroF RR geeft de waarde van t aan waarvoor de kans op een verkeerde weigering nagenoeg gelijk aan nul is.
70
Biometrie
Het Italiaanse bedrijf BiometriKa heeft veel apparaten ontwikkeld, maar voornamelijk gericht op het biometrische systeem dat zich bezig houdt met vingerafdrukken. Vingerafdrukken blijken goed implementeerbaar te zijn en ook kwa privacy redenen levert dit het minste problemen op. Het blijkt namelijk dat een iris scan, informatie aan het bedrijf kan onthullen over het wel of niet hebben van bepaalde ziektes. Het scannen van contouren van het hoofd, kan informatie afgeven over het ras van de gebruiker en dit zijn allerlei zaken waar bedrijven rekening mee moeten houden willen ze het produkt tot een succesvol produkt brengen.
8.3
Vingerafdrukken 8.3.1
Anatomie
“Hoe zit de structuur van onze vingers eruit?”, is een van de eerste vragen waar aan gedacht zou moeten worden bij vingerafdrukherkenning. Elke vingerafdruk bestaat uit een grote hoeveelheid lijnen, die ridge lines worden genoemd. Op macro niveau zijn de structuren van deze lijnen op te delen in vijf hoofdklasses. Deze worden een arch, tented arch, right loop, left loop of whorl genoemd, zoals in figuur (8.2(a)) te zien is. Niet elke willekeurige structuur van loops en onderbrekingen kan gevormd worden. Dit is geheel door de natuur bepaald.
(a) De vijf hoofdklassen
(b) Minutiae
Figuur 8.2: De anatomie van een vingerafdruk
8.4 Vingerafdruk scanners
71
Wordt een vingerafdruk echter op microscopische schaal bekeken, dan is een nog specifiekere indeling mogelijk. Deze microscopische eigenschappen worden minutiae3 genoemd en zijn in te delen in bifurcatie en terminatie, zoals in figuur (8.2(b)) te zien is. Een bifurcerende lijn splitst zich in twee¨en uit, terwijl een terminerende lijn opeens stopt.
8.4
Vingerafdruk scanners 8.4.1
De vroege methoden
Opgravingen van archeologen wijzen uit dat de eeuwenoude beschaving de Assyri¨ers al een soort van persoons identificatie hadden. Sinds 1600 begon men aan vingerafdrukidentificatie te denken en pas sinds 1900 is serieuze studie erna bezig. In 1950 ontwikkelde wie anders dan de FBI de eerste vingerafdruk scanner. Met een heel originele naam, de AFIS, Automated Fingerprint Identification System, genoemd. Een van de meest bekende en meest gebruikte identificatiemethode is die van de inktafdruk. De politie laat nog steeds gevangenen een inktafdruk van hun vingers maken, die dan gedigitaliseerd opgeslagen worden in een database. Een vingerafdruk kan minder goed leesbare delen hebben, doordat enkele delen van de vinger niet goed onder de inkt gezeten hebben. Vergelijk gutsen, waar een reli¨ef op een plaatje uitgesneden kan worden, waarna het na in de inkt gedoopt te zijn een leuk beeld oplevert. Een iets betere methode is een afdruk door gebruikmaking van een prisma. Een schematische weergave is te zien in figuur (8.3). Licht dat op de prisma valt, weerkaatst beter dan wel slechter op de vinger afhankelijk van het reli¨ef van de vinger. Licht weerkaatst anders op water (cellen op je vinger bestaan voor het grootste gedeelte uit water) dan als op lucht. Aan de andere kant van het prisma valt het weerkaatste licht via een lens op een CDD/CMOS element die licht omzet in digitale informatie. Deze methode wordt Frustrated Total Internal Reflection (FTIR) genoemd. 8.4.2
De FX2000 scanner
Het Italiaanse bedrijf BiometriKa heeft enkele biometrische apparaten op de markt gebracht, waarvan de FX2000 scanner hier wordt besproken. Zie figuur (8.4). Een van de belangrijkste parameters van de scanner is het gescande gebied (sensing area) en de resolutie. Een vingerafdruk zal bij volwassen mannen ongeveer 0.5x0.7 inch groot zijn. Bij vrouwen en kinderen over het algemeen kleiner. De FX2000 heeft een bereik van 0.98x0.52. Het verticale bereik is zo groot genomen, omdat blijkt dat als een vinger verkeerd neergezet wordt, dat vooral in de verticale richting is. Sommige mensen hebben langere nagels dan anderen en plaatsen de vinger dus een stuk lager. Het horizontaal positioneren levert niet zo veel afwijkingen op, vooral ook omdat de 3
Hoe deze automatisch gescand worden is te lezen in: Direct Gray-Scale Minutiae Extraction in Fingerprints, IEEE transaction on Pattern Analysis Machine Intelligence 1997, http://bias.csr.unibo.it/research/biolab/minextr.html
72
Biometrie
Figuur 8.3: Vingerafdruk identificatie met behulp van een prisma meeste vingers vrijwel dezelfde breedte hebben. De resolutie is 569 dpi, dat zelfs groter is dan de waarde die de FBI als eis stelt en nauwkeurig genoeg is om minutiae te meten. De geproduceerde figuren hebben ook nog waarden voor neatness, contrast en geometric distortion, waar jullie je allemaal wel een voorstelling van kunnen maken. Iets veel belangrijkers is de beveiliging van de data die tussen de scanners en de computer uitgewisseld wordt. De FX2000 scanner bevat een 32 bit RISC processor die het mogelijk maakt de data op een goede manier te beveiligen. Het maakt gebruik van een symetrisch algoritme met sleutels van 128 bits. Groot genoeg dus om er in de jaren 2000 voor te zorgen dat de sleutels niet met brute kracht aanvallen te berekenen zijn. Verder gebruikt het elke sleutel maar een keer, wat de slagingskansen bij actieve aanvallen sterk vermindert. Door het gebruik van deze non repeatable keys moeten aanvallen immers uitgevoerd worden op het moment dat de transactie nog bezig is. Zodra deze afgerond is, zou er voor de volgende transactie een nieuwe sleutel gebruikt worden en de aanvaller zou niets meer aan de net met moeite berekende sleutel hebben. Bij de FX2000 wordt het zogenaamde FX3 sdk software pakket bijgeleverd. Dit bestaat uit een aantal algoritmen die voor het berekenen en vergelijken van vingerafdrukken zorgt. Het vingerafdruk beeld dat uit de minutiae gehaald wordt is essentie¨eel. Bij oudere mensen en mensen die veel met de handen werken kunnen de ridge lines minder duidelijk zijn. In dit geval is het maar goed dat FX3 niet alleen op de minutiae let. Het let bijvoorbeeld ook op de richting en dichtheid van de ridge lines. Verder let het op de vorm van de lijnen in enkele extra interessante gebieden. Bij mensen die veel met de handen werken kijkt het bijvoorbeeld extra naar gebieden van de vinger die minder af blijken te slijten dan andere. Het aardige van het programma is dat een gemiddelde vingerafdruk maar 6 KB aan geheugen kost (max is 8 KB). Het slaat dus niet voor elke pixel een een of nul op dat wel of niet een ridgeline representeerd, maar het slaat posities van klassen op. Het slaat
8.4 Vingerafdruk scanners
73
Figuur 8.4: De door BiometriKa ontworpen FX2000 vingerafdruk scanner bijvoorbeeld de co¨ordinaten op waar zich een right loop bevind. Als extra optie is een fast mode ingebouwd die de benodigde hoeveelheid ruimte kan verlagen naar 4 KB ten koste van een minimale hoeveelheid verlies aan nauwkeurigheid. Dit kan handig zijn in het geval dat de gegevens in een smartcard opgeslagen worden. Meer hierover is te lezen in hoofdstuk (8.5). De effici¨entie is ook vrij groot. Zie theorie bij hoofdstuk (8.2). Bij een threshold t van 0.35 blijkt de FAR 0.49% te zijn en de FRR 0.05%. Als t gelijk aan 0.45 genomen wordt, is te zien dat de FAR gelijk aan 0.04% is en de FRR is gelijk aan 0.26%. In tabel (8.1) zijn voor nog enkele waarden van t de FAR en FRR uitgerekend. Ook blijkt dat in de fast mode de FAR kleiner wordt en de FRR groter. Oftewel door te scannen in de fastmode wordt de kans op onterechte acceptatie kleiner en de kans op onterechte weigering groter bij eenzelfde t. threshold t 0.3500 0.3750 0.4000 0.4250 0.4500 0.4750
normal FAR 0.49% 0.25% 0.11% 0.06% 0.04% 0.00%
mode FRR 0.05% 0.10% 0.14% 0.19% 0.26% 0.36%
fast mode FAR FRR 0.32% 0.09% 0.14% 0.14% 0.05% 0.20% 0.02% 0.34% 0.00% 0.49% 0.00% 0.63%
Tabel 8.1: FAR en FRR voor verschillende acceptatie thresholds t De tijd die de verschillende berekeningen kosten zijn ook in de orde van grootte die het systeem tot een geslaagd apparaat kunnen maken. Op een PC Pentium III 500 MHz werden onder andere het berekenen en het vergelijken van de vingerafdrukken bekeken. Het blijkt dat het scannen van een vingerafdruk ongeveer 0.35 seconden duurt, terwijl voor het vergelijken maar 0.12 seconden nodig zijn. Het verifi¨eren van een gebruiker kan dus in 0.47 seconden. De tijd gaat pas echt parten spelen als voor een vingerafdruk bekeken moet worden of het in de database zit. Als de politie dus wil bekijken of de
74
Biometrie
vingerafdruk van een crimineel zich al in de database bevind, moet het naar schatting 0.35 plus 0.12n seconden uittrekken. Voor een database met n=1000 criminelen, kost 2 het al net iets meer dan een minuut om te achterhalen of de vingerafdruk zich in de database bevindt. De door BiometriKa uitgebrachte software dat het meest toegepast wordt in samenwerking met de F X2000 scanner zijn het programma FxLogon en FxSecure. FxLogon maakt het mogelijk in window NT en windows 2000 in te loggen met behulp van een vingerafdruk. FxSecure maakt het mogelijk bestanden te beveiligen. Er wordt gebruik gemaakt van zogenaamde safeboxes, waar de gebruiker bestanden naartoe en vandaan kan slepen. De bestanden binnen de safeboxes worden ge¨encrypt met sleutels ter lengte 128 bits en ook wordt automatisch gebruik gemaakt van compressie om de bestanden binnen de safeboxes zo klein mogelijk te maken. Alleen de gebruiker met de juiste vingerafdruk kan binnen zo’n safebox encrypten en decrypten.
8.5
Smartcards
Biometrie kan in samenwerking met smartcards4 de veiligheid en de toepasbaarheid nog meer vergroten. Smartcards zijn de voor ons allemaal bekende plastic kaartjes, met een rechthoekig goudkleurig plaatje erop. Dit is een computerchip die uit een basis systeem tot een 8 bit microprocessor inclusief geheugen, kan bestaan. Een van de eerste en simpelste smartcards waren de telefoonkaart, de bibliotheekpas en de ziekenhuispas. De data erop was op geen enkele manier beveiligd en iedereen die het pasje te pakken kreeg kon het lezen. De nieuwste en meest geavanceerde smartcards zijn op dusdanige manier beveiligd dat de gebruiker het alleen maar kan gebruiken en niet eens meer kan lezen. Neem een bank als voorbeeld. Alleen de bank die de kaart afgegeven heeft, kan de informatie lezen en verifi¨eren. Biometrie kan dus in samenwerking met smartcards gebruikt worden om systemen nog meer te beveiligen5 . Behalve een afdruk van een vinger, een stempatroon, of een irisscan, moet een aanvaller dus ook nog de smartcard hebben, wil het tot het systeem toegelaten worden. Een gebruiker kan een apparaatje zijn of haar smartcard laten lezen en dan in combinatie met de geleverde vingerafdruk kan dit apparaat beslissen om de persoon wel of niet toegang te verschaffen tot het systeem. BiometriKa heeft een soortgelijke scanner als de F X2000 ontwikkeld, die met een smartcard mogelijkheid uitgerust is.
4
Smart cards, The use of ”intelligent plastics” for access control, http://biometrics.cse.msu.edu/publications.html 5 De nieuwste plannen omtrend het bruikbaar maken van biometrie bij ’remote authentication’, http://www.ercim.org/publication/Ercim News/enw49/bechelli.html
8.6 Conclusie
75
8.6
Conclusie
Biometrische systemen zullen in de toekomst zeker steeds vaker gebruikt gaan worden. Vooral vanwege de voordelen die het heeft boven de nu gebruikte passwords. Vanwege privacy eisen, blijken vooral vingerafdruk scanners in de praktijk bruikbaar. Gebruik in de dichtbijzijnde toekomst zie ik echter nog niet gebeuren. Er moet nog veel onderzoek naar gedaan worden en de kosten zijn momenteel nog te hoog. Er zijn ook nog niet zo heel veel instellingen die beveiliging als hoogste prioriteit hebben. De toekomst van smartcards zie ik daarentegen de komende jaren sterk groeien. Het grootste voordeel van smartcards ligt in het feit dat er buiten een ingetypt password ook een fysisch password is. Je kunt het password wel weten, maar zonder de smartcard wordt je nog niet toegelaten. Een smartcard in combinatie met biometrie garandeert dan ook niet echt veel extra veiligheid. Als een aanvaller een toegelaten vingerafdruk kan genereren, kan het ook de smartcardlezer wel bewerken. Biometrie en het gebruik van een smartcard zijn twee manieren om de veiligheid te vergroten, door gebruik te maken van fysische eigenschappen. Een combinatie van de twee voegt dus in principe niet zo heel veel extra veiligheid toe.
76
Biometrie
Hoofdstuk 9 Fraunhofer SMM Door Marcel Blokpoel
Fraunhofer SMM (staat voor Security Maturity Model) is een model om het ICT beveiligings niveau van een organisatie te beschrijven en verbeteringen voor te stellen. Voor degenen die nog nooit van Fraunhofer gehoord hebben staat een kort profiel in 9.1. Daarna wordt in 9.2 behandeld wat SMM nou eigelijk is en in sectie 9.3 waarom een organisatie dit model zou willen gebruiken. In 9.4 wordt beschreven hoe het model toegepast wordt op een organisatie, met in 9.6 de evaluatie en interpretatie van de resultaten daarvan. Sectie 9.5 belicht de in het model gedefinieerde beveiligings niveaus en tot slot wordt in 9.7 een korte blik op de toekomst van SMM geworpen.
9.1
Wie is Fraunhofer?
Het Fraunhofer Instituut, of voluit “the Fraunhofer-Gesellschaft” (FhG) is een research instituut uit Duitsland met een groot aantal vestigingen wereldwijd. Deze vestigingen hebben elk hun eigen specialisme. Zij doen op contractbasis uiteenlopende researchprojecten voor overheid en bedrijfsleven. Fraunhofer is bij velen waarschijnlijk het meest bekend van de MPEG Layer 3 (MP3) standaard voor audio compressie, maar het werk gaat door, bijvoorbeeld aan de MPEG-4 standaard voor audio en video. Verder doen de diverse afdelingen van Fraunhofer onderzoek op diverse terreinen, varierend van airbags tot borstkanker, digitale radio, chips, maar ook IT. De IT afdeling die zich bezighoudt met o.a. SMM heet Fraunhofer ISST, Institute for Software and Systems Engineering. Dat is trouwens niet de enige IT afdeling van Fraunhofer. Een voorbeeld van een andere IT afdeling is Fraunhofer IESE, Institute for Experimental Software Engineering. Die afdeling heeft een wat meer technische invalshoek en houdt zich bezig met o.a. procesbesturing e.d.
77
78
Fraunhofer SMM
9.2
Wat is SMM?
SMM is het Security Maturity Model. Dit model is ontwikkeld en wordt toegepast door Fraunhofer ISST. Het model is gemaakt om, op grond van boekwerken vol criteria, het beveiligings niveau van organisaties op een uniforme en alles omvattende wijze te beoordelen en in te delen. Daarna kan een betaalbaar stappenplan voor verbetering samengesteld worden. Het op grond van diverse criteria vastgestelde beveiligings niveau wordt ingedeeld in een van de vier in het model gedefinieerde niveaus. Toepassing van dit model is een analyse traject waar ik in sectie 9.4 dieper op inga.
9.3
Waarom SMM?
Omdat dit voor de rest een abstract verhaal is, wil ik hier nog even ingaan op het waarom van dit model. 9.3.1
Beveiligings risico’s
Tegenwoordig kan geen enkele organisatie het zich meer veroorloven om ICT beveiligings vraagstukken te negeren. De vraag is of dat ooit het geval is geweest, maar de laatste tijd heeft het, met name ”dankzij”het internet en algemeen toenemend gebruik van ICT in organisaties, wel een enorme vlucht genomen. Voor de hand liggende aspecten zijn de technische risico’s die tegenwoordig spelen. De belangrijkste relevante voorbeelden zijn : • Dataverlies. Voor de hand ligt, dat door ongelukjes, virussen, moedwillig wissen enzovoort gegevens kwijt kunnen raken. • Uitlekken van informatie. Vrijwel elke organisatie heeft zo haar geheimen. Dat kan varieren van iets simpels als de loonadministratie tot iets waar de gehele bedrijfsvoering van afhangt zoals de source code van een belangrijk produkt van een softwarebedrijf. • Downtime. Tijdens herstelwerkzaamheden kan er vaak niet of nauwelijks gewerkt worden. Ook terugkrijgen of opnieuw aanmaken van verloren data kan tijdrovend zijn. • Sabotage. Nog erger dan ontbrekende data is verminkte data, of moedwillig veranderde data. Het bedenken van een leuk voorbeeld hiervan laat ik aan de fantasie van de lezer over. De gevolgen van deze risico’s liggen misschien iets minder voor de hand maar zijn daarom niet minder ernstig. Daarbij valt te denken aan:
9.4 Toepassing
79
• Gezichtsverlies. Wat zal de buurvrouw er wel niet van denken? Nee, ik bedoel natuurlijk dat je als organisatie niet bepaald professioneel overkomt bij je zakenrelaties als je hun gegevens kwijtraakt, leverdata mist door downtime, virussen rondstuurt of zelfs door de gevolgen van sabotage compleet verkeerde produkten aflevert. • Aansprakelijkheid. Naast gezichtsverlies kunnen dit soort zaken ook financiele gevolgen hebben als een klant of leverancier hierdoor schade ondervindt en jou daarvoor aansprakelijk stelt. In geval van een inbraak o.i.d. heb je al zorgen en (herstel-) kosten genoeg - daar komt dat dan nog eens overheen. • Klantenkring. Het ligt voor de hand dat men het liefst zaken doet met een betrouwbare partner. 9.3.2
Duidelijkheid
In de media, op internet en ga zo maar door is genoeg informatie te vinden over diverse aspecten van ICT beveiliging. Je zou zelfs kunnen spreken van een media hype. Dit veroorzaakt grote bezorgdheid, en terecht. Maar het vormen van een samenhangend en volledig beeld uit al die fragmenten informatie is verre van triviaal. Ook is het al lange tijd mogelijk experts in te huren voor een beveiligings analyse. Helaas resulteert zelfs dat vaak in een beperkt beeld en spreken experts elkaar vaak tegen. Zoveel experts, zoveel meningen. Te vaak wordt een puur technisch beeld gegeven en worden organisatorische aspecten en de betrokkenheid bij en integratie van veiligheid in de bedrijfscultuur vergeten. Toch is dit zeer belangrijk. Techniek kan alleen zo goed werken als het ook goed gebruikt wordt. SMM is ontwikkeld om dit probleem op te lossen. SMM is een model wat gemaakt is om een uniform, compleet en duidelijk beeld te geven van hoe een organisatie ervoor staat wat betreft beveiliging.
9.4
Toepassing
Toepassing van dit model wordt gedaan door Fraunhofer ISST zelf. Dit is ook de reden dat er weinig gedetailleerde informatie gepubliceerd wordt over het model en de criteria. Kennelijk vreest men dat concurrenten met (een variant van) het model aan de haal zullen gaan. 9.4.1
Aspecten
De toepassing van dit model is allereerst een onderzoek naar diverse aspecten die gedefinieerd zijn in uitgebreide catalogi. Ze zijn in te delen in : • Technische aspecten. De technische staat van beveiliging.
80
Fraunhofer SMM
Kader 9.1: Dom voorbeeld We kennen allemaal wel het voorbeeld van de password policy die een password van minstens 8 characters vereist, met minimaal 2 cijfers of andere tekens die geen letter zijn. In theorie een prachtig beleid. Een brute force aanval op de wachtwoorden wordt zo ernstig bemoeilijkt. Helaas resulteert dit wel in wachtwoorden die naast moeilijk raadbaar ook moeilijk te onthouden zijn. Het behoeft verder geen uitleg dat als Alice dit oplost door haar wachtwoord op een Post-Itje op haar monitor te plakken, Oscar weinig moeite zal hebben haar wachtwoord te stelen. • Organisatorische aspecten. Intern beveiligingsbeleid en effectief gebruik van de diverse technische aspecten. • Cultuur De aanwezigheid van o.a. betrokkenheid bij en aandacht voor beveiliging, bij zowel medewerkers als management. De aandacht voor organisatie en cultuur naast techniek is niet nieuw, maar het idee dat deze aspecten dezelfde prioriteit en grondige analyse verdienen als de techniek is wel relatief nieuw en loopt als een rode draad door het SMM. Echt domme dingen zoals in kader 9.1 vallen natuurlijk direct op, maar een zorgvuldige evaluatie kan nog veel meer aan het licht brengen. 9.4.2
Een voorbeeld van organisatorische aspecten
Een iets minder voor de hand liggend voorbeeld is een bedrijf met directeur Bob Duitenberg. Daarbuiten staat een crimineel / spion genaamd Oscar van der G. Hij wil bijvoorbeeld de sources van een belangrijk software product van Bob hebben, zodat hij zijn eigen versie daarvan kan gaan verkopen om vette winsten te maken omdat hij het zelf immers niet hoeft te ontwikkelen. Het probleem is echter : hij komt er niet in. Het bedrijf is namelijk, zowel tegen fysieke als electronische inbraak, zo goed beveiligd dat er voor een simpele crimineel als Oscar geen droog brood meer te verdienen valt. Maar opeens krijgt hij een idee. Hij tikt bij een pompstation een ruitje van de auto van Bob in en verdwijnt met de buit. Wat is nu het geval? Bob neemt elke avond een koffertje met tapes mee naar huis. Waarom? Omdat een backup weinig zin heeft als bijvoorbeeld het pand afbrandt en alle backup tapes liggen naast de machines. Dus Oscar gaat er zo met een backup vandoor met alle data daarop die hij hebben wil en Bob heeft het nakijken. Maar nu denkt Bob slim te zijn en de backup te encrypten. Oscar heeft dan niets meer aan de backup, zonder de key. Helaas voor Bob gaat er nu iets anders mis. De private key van de backup ligt veilig... bij het bedrijf in de kluis. In geval van brand heeft dus ook Bob niets meer aan de backup. Dit voorbeeld geeft aan dat ook organisatorische en bedrijfsculturele aspecten een diepgaand onderzoek verdienen.
9.5 Niveaus
81
Figuur 9.2: De gedefinieerde niveaus
9.4.3
Rapport
Al deze aspecten worden ingedeeld in niveaus afhankelijk van gedetailleerde criteria. Deze beoordeling geschiedt voor elk aspect apart, maar ook voor combinaties van aspecten en hun functioneren als geheel. Aan de hand van het resulterende totaalbeeld wordt de organisatie ingedeeld in een van de vier beveiligings niveaus.
9.5
Niveaus
In figuur 9.2 staan de vier gedefinieerde niveaus op een rijtje. Daarnaast zeer schematisch de hoeveelheid moeite die het kost om zo’n niveau te bereiken en de resulterende afname in risico’s. 9.5.1
Niveau 0 - Blind Vertrouwen
Zoals de naam al aangeeft kunnen we hier niet van beveiliging spreken. Vrijheid blijheid is het beleid. Naief en onbekommerd doet men maar wat. Dit niveau wordt gekenmerkt
82
Fraunhofer SMM
door onwetendheid. Er is kennis van, noch interesse in beveiligings vraagstukken. Er heerst een ontspannen werksfeer waarin alles kan en mag. Tot het een keer fout gaat. 9.5.2
Niveau 1 - Ad Hoc maatregelen
Op niveau 1 is een organisatie zich deels bewust van externe dreigingen. Er zijn enkele tijdelijke oplossingen en workarounds voor bekende gaten in de beveiliging voorhanden. Kenmerkend is echter de onsamenhangende aard van deze losse maatregelen. 9.5.3
Niveau 2 - Security Policy
Niveau 2 wordt bereikt als door een algeheel beveiligings beleid de diverse maatregelen tot een geheel worden ”gesmeed”. Er is een algemeen bewustzijn van het belang van beveiliging. Er wordt een beleid opgesteld wat de hele organisatie erbij betrekt. In dit beleid zijn organisatorische en bedrijfsculturele aspecten ge¨ıntegreerd met technische aspecten. We zijn er echter nog niet ; niveau 2 wordt pas bereikt als die plan niet alleen op papier goed is, maar ook in de praktijk volledig en goed uitgevoerd wordt en goed werkt. 9.5.4
Niveau 3 - Evolutionair
In deze overtreffende trap is er sprake van een dynamisch beleid wat meegroeit met de onderneming. We hebben het niet meer over een bestaand, rigide, bedrijfsproces waarvoor een beveiligingsbeleid wordt opgesteld maar over een situatie waarin in elke beslissing die het bedrijfsproces betreft ook meteen in het beveiligingsbeleid meegenomen wordt. Het beveiligingsbeleid wordt niet alleen maar afgestemd op de organisatie maar ook andersom omdat beveiliging een integraal deel is van elke beleidsbeslissing. De organisatie en bedrijfsprocessen groeien zo hand in hand met het beveiligingsbeleid. Dit niveau wordt gekenmerkt door procesgericht denken. Pas nu is er sprake van een echt betrouwbaar, fail-safe systeem.
9.6
Evaluatie en daarna
Na de analyse vindt dus een evaluatie plaats en wordt het huidige niveau bepaald. In de rapportage kun je via de diverse aspecten en hun relatie tot elkaar en tot de criteria ook terugzien hoe dat niveau bereikt is. Bovenal wordt ernaar gestreefd om een totaalbeeld te bieden, waardoor voorkomen wordt dat er op de raakvlakken tussen verschillende relevante terreinen toch nog gaten ontstaan, of maatregelen die elkaar tegenwerken. Daarna wordt geanalyseerd welke stappen genomen moeten worden om het volgende beveiligings niveau te bereiken. Met deze actielijst wordt gezorgd dat met relatief kleine uitgaven een goed resultaat bereikt wordt. Zoals ge¨ıllustreerd in figuur 9.3 zijn de benodigde stappen in grote lijnen als volgt te omschrijven:
9.7 Toekomst
83
Figuur 9.3: 0 -> 1 -> 2 -> 3
• 0 naar 1 : Bewustzijn. Men wordt zich bewust van de risico’s en lost hier en daar het een en ander op. • 1 naar 2 : Organisatie. De losse maatregelen worden ge¨ıntegreerd in een totaalbeleid, dit beleid wordt uitgevoerd. • 2 naar 3 : Proces. Door procesgericht denken wordt het security beleid een integraal deel van het bedrijfsproces en groeit als zodanig vanzelf mee. Het eindresultaat van een toepassing van SMM is dus een rapport met een algeheel beveiligings concept. Fraunhofer ISST wil de klant ook graag assisteren bij het uitvoeren daarvan.
9.7
Toekomst
Natuurlijk is het Security Maturity Model voortdurend in ontwikkeling, om steeds nieuwe ontwikkelingen en inzichten uit alle relevante vakgebieden in het model te verwerken. Dat kan niet anders voor een model dat volledigheid pretendeert.
84
Fraunhofer SMM
Ook wordt bij Fraunhofer ISST gewerkt aan koppeling tussen SMM en hun andere security gerelateerde projecten. Daarbij valt bijvoorbeeld te denken aan NSI, New Security Infrastructure. Dit is een project wat zich bezig houdt met encryptie en implementaties van en koppelingen tussen Public Key Infrastructures.
Hoofdstuk 10 CyberVote: Elektronische Verkiezingen Door Joris Valkonet
Het houden van verkiezingen wordt als een van de hogere goederen van de democratie gezien. Dit betekent dus dat we een hoge prioriteit geven aan het correct verlopen van verkiezingen. We kunnen verkiezingen gemakkelijk digitaliseren, maar we zullen echter veel aandacht moeten besteden aan de beveiliging en het behoud van privacy van de stemmers. Dit om te voorkomen dat verkiezingen oneerlijk zullen verlopen. Men kan op vele manieren digitaal stemmen: via een electronische stemmachine op het stembureau, via het internet, GSM of PDA. Alhoewel deze manieren erg verschillen, zijn de principes erachter echter hetzelfde. Voordat we kunnen beginnen met het uitdiepen van de cryptografische principes achter digitale verkiezingen, zullen we echter eerst de belangrijkste (f)actoren moeten onderscheiden.
10.1
Eisen kiessystemen
Om te bereiken dat protocollen voor digitale verkiezingen correct zijn, moet er aan een aantal eisen worden voldaan. 10.1.1
Eisen
Integriteit De uitkomst van een stemming moet correct zijn. Dit houdt in dat elke kiezer slechts een keer kan stemmen en dat het alleen voor geregistreerde kiezers mogelijk moet zijn hun stembiljet in te leveren. (eenduidigheid) Dit betekent dat de authenticatie van kiezers correct moet zijn. Bovendien moeten de tellingen correct zijn; elke rechtmatige stem mag slechts een keer worden meegeteld en alle stemmen moete worden geteld. (correctheid) 85
86
CyberVote: Elektronische Verkiezingen
Geheimhouding Om de privacy van kiezers te waarborgen en ervoor te zorgen dat er geen sprake is van omkoping. Dit betekent dat alleen een kiezer weet wat hij/zij gestemd heeft en dat dit zelfs niet zichtbaar zou moeten kunnen zijn als het systeem gemonitord wordt. Deze eis kan computationeel zijn of perf ect. Echter heeft perfect een zeer grote voorkeur bij verkiezingen, omdat dit betekent dat ook na een aantal jaren mensen niet kunnen worden aangesproken op hun stemgedrag. Een extra eis kan zijn dat een kiezer achteraf ook niet moet kunnen aantonen wat hij gestemd heeft. (receipt − f reeness of incoercibility) Dit blijkt dat het in de praktijk erg lastig is om waar te maken. Zeker als men vanaf thuis kan stemmen, is het moeilijk om te garanderen dat er niet iemand anders dan de stemmer meekijkt. (Universele) verifieerbaarheid Het resultaat moet verifieerbaar zijn voor een onafhankelijke partij (de waarnemers) of sterker nog, voor elke partij. Dit betekent dat het mogelijk moet zijn om na te gaan dat de bekendgemaakte uitslag correspondeert met de werkelijke uitslag. Kiezer onafhankelijkheid De kiezers moeten onafhankelijk kunnen stemmen en dus niet ’per ongeluk’ een stem van de buurman kunnen kopieren. Deze eis heeft een sterke samenhang met integriteit en robustheid. Robustheid Het moet niet mogelijk zijn, als een kleine coalitie van een partij de stemming kan onderbreken, door bijvoorbeeld een stem uit te brengen van een verkeerd formaat. Voorkomen moet worden dat het systeem plat gaat door bv een foute stem. Opkomstcontrole Stembureau’s en waarnemers moeten kunnen zien wie er gestemd heeft. In sommige landen (oa Belgi¨e) is het namelijk bij wet verplicht om op te komen dagen bij stemmingen. Er zijn echter nog geen protocollen die aan alle eisen voldoen. Al komen de huidige protocollen steeds dichter in de buurt. 10.1.2
Actoren
Aan de hand van de eisen die we net beschreven hebben hebben kunnen we de actoren die zich voordoen bij verkiezingsprotocollen defini¨eren. Voters (Kiezers) De belangrijkste partij is de kiezers. Zij maken een keuze op het stembiljet of leveren deze blanco in (of in sommige gevallen stemmen geheel niet). Dit is ook de meest kwetsbare groep en het is belangrijk om de privacy van deze groep te bewaren; niemand moet kunnen zien wat ze gestemd hebben. Election officials (Verkiezingsambtenaren) Alle stappen die menselijke interactie nodig hebben binnen een verkiezing wordt door deze groep, de election officials ofterwijl verkiezingsambtenaren, verzorgd. Dit houdt concreet in het bedienen van de computersystemen en aanleveren van data eraan. Eventueel ook uitleg geven aan de kiezers. Het is belangrijk dat deze mensen zich aan de protocollen houden die voorschreven staan bij verkiezingen; ze mogen bijvoorbeeld niet voor de kiezer stemmen.
10.2 Elementen van Verkiezingsprotocollen
87
Scrutineers (Waarnemers) De waarnemers moeten controleren of het stemproces eerlijk verloopt. Dit doen ze door de verkiezingsambtenaren te controleren en checks uit te voeren op het computersysteem. Deze waarnemers behoren een onafhankelijke partij te zijn. Ze zouden geen enkel belang moeten hebben met de uitslag van de verkiezingen. In de praktijk behoort elke partij inzicht te kunnen krijgen in de gang van zaken, zodat voor iedereen het duidelijk is dat de verkiezingen eerlijk verlopen. Talliers (Tellers) Deze groep telt de stemmen en maakt de uitslag bekend. Het aantal tellers kan verschillen tussen een tot honderden. In sommige protocollen zijn de verkiezingsambtenaren de teller of soms zelfs de kiezers. Administrators Deze laatste groep controleert de handtekeningen en alles wat daarmee te maken heeft.
10.2
Elementen van Verkiezingsprotocollen
In deze tekst ga ik me concentreren op een protocol die bestaat voor type 2 (zie volgende sectie) en dan specifiek voor homomorphische encryptie. Over type 1 protocollen ga ik het niet hebben en die theorie is dus ook niet van toepassing. Eerst ga ik het voor de volledigheid nog even een samenvatting van de ElGamal encryptie geven. 10.2.1
ElGamal
Het ElGamal cryptiesysteem bestaat uit unieke subgroepen van Gq van orde q van Z∗p , waarbij q en p grote priemgetallen zijn en q|p − 1. De priemgetallen p, q en de generator g van Gq zijn de systeem parameters. De private key is s ² Zq met de bijbehorende public key h = g s . Alle berekeningen zijn modulo p. Om een bericht m te encrypten, kiest de zender een random getal α en zendt de cijfertekst (x, y) = (g α , hα m) naar de ontvanger. Om de cijfertekst de decrypten gebruikt de ontvanger zijn private key, s, op de volgende manier: m = y/xs . 10.2.2
Stembiljetten
Er zijn twee type stembiljetten. De eerste is een stembiljet waar men alleen ja of nee neerzet. Het tweede type is een stembiljet waarbij aangegeven moet worden wie er gekozen moet worden uit een lijst personen op mogelijkheden. Het eerste type is gemakkelijker. Het stembiljet bestaat uit de vorm (a, b) = (g k , bk Gw ), waarbij G een getal orde q (waarbij gemakkelijk G−1 kan worden berekend) is en w de stem. Hierbij geldt dat w = 1 een stem voor is en w = −1 een stem tegen is (in sommige protocollen is een stem tegen w = 0). Het genereren van een stem gaat als volgt: De kiezer kiest een random getal k uit Zq
88
CyberVote: Elektronische Verkiezingen
en bepaald of hij voor of tegen is (w = 1 of w = 0). Het stembiljet wordt dan gevormd: (a, b) = (g k , bk Gw ). Naast deze tuple wordt er nog een bewijs van validiteit ahv zero-knowledge toegevoegd, om zo aan te geven dat het stembiljet van de juiste vorm is. Bij een stembiljet met meerdere kandidaten (aantal = k) moeten er meerdere keuzes l (0 ≤ l < k) gemaakt worden. Dit type stembiljet wordt gemaakt van k stembiljetten met een ja/nee mogelijkheid samen met een verificatie. Als er dus k mogelijkheden zijn, zijn er ook k ElGamal tuples die als plaintext een waarde Gw hebben. Omdat een meervoudig stembiljet over het algemeen vereist dat er d mogelijkheden op true zijn gezet - d - of - N options - wordt er een verificatie toegevoegd die aangeeft dat er d Gw true zijn en N − d Gw false. Let wel: het stembiljet is hierdoor een stuk groter en de verificatie ook. Blanco stemmen is ook mogelijk met dit principe, omdat er dan een extra tuple wordt meegegeven die de waarde blanco heeft. (Bij een d-of- N mogelijkheden moeten er ook d blanco’s zijn.) Proof of knowledge voor discrete logaritmen Stel een d-van-n stem, waarbij n het aantal opties zijn die gekozen kan worden en d het aantal van deze opties die true moet zijn, welke bestaan uit n ElGamal encrypties van de volgende vorm: (xi , yi ) = (g αi , hαi Gwi ), met wi = {1, 0} waarbij de stemmer de waarden van αi en wi weet. Om te laten zien dat precies d van de n vi ’s gelijk zijn aan 1 en n − d van deze gelijk zijn aan -1, moet de stemmer eerst laten zien dat in ieder geval d van de vi ’s 1 zijn en daarna dat n − d van de vi ’s -1 zijn. Het bewijs voor proof of knowledge is te vinden in [CDS94, CGS97] en laten we op dit moment voor wat het is. Ook de verificatie van het bewijs is te vinden in [CDS94, CGS97]. Om het stembiljet compleet te maken wordt het ondertekend met de eigen geheime sleutel van de gebruiker. 10.2.3
Homomorphische encryptie
Homomorphe encryptie betekent dat het product van de geencrypte berichten gelijk is aan het encryten van de som van de twee berichten. Of algemener gesteld: f (E(m1 ), E(m2 )) = g(E(m1 ), E(m2 )) (m1 , m1 zijn berichten en f, g zijn functies afhankelijk van de encryptie methode E) Het is dus zo dat we bewerkingen op zowel de klare als de cijfertekst kunnen toepassen. Dit is handig voor verkiezingen omdat kiezers hun stemmen zelf kunnen encrypten en de tellers hoeven dan niet de stemmen individueel te decrypten om de uiteindelijke uitslag te krijgen. (let op dat deze operaties duurder worden voor meerdere keuze verkiezingen) Het RSA-schema en het ElGamal algoritme zijn multiplicatief. Dit betekent dat uit de encryptie van een enkele stem de encryptie van het product te achterhalen is. Homomorphe encryptie eigenschap is belangrijk om aan de eisen van universele verifieerbaarheid te voldoen.
10.2 Elementen van Verkiezingsprotocollen
89
ElGamal homomorph Voor de homomorphe ElGamal encryptie, zoals beschreven in [CGS97], hebben we een generator G ² Gq nodig, de encryptie van het bericht m ² Zq zal de ElGamal encryptie zijn van Gm . Stelling 10.1 (ElGamal homomorph) Gegeven 2 ge¨encrypte berichten m1 , m2 het product is de encryptie (m1 + m2 ) mod q: Bewijs. (x, y)1 = = = =
E(m1 )E(m2 ) = E(Gm1 )E(Gm2 ) (g α1 , hα1 Gm1 )(g α2 , hα2 Gm2 ) (g α1+α2 , hα1+α2 Gm1 +m2 ) (g α , hα Gm1 +m2 ).
(x, y)2 = E(m1 m2 ) = E(Gm1 Gm2 ) = (g α , hα Gm1 Gm2 ) = (g α , hα Gm1 +m2 ).
=⇒ (x, y)1 = (x, y)2 De decryptie gaat als volgt:
a
W = y/xs α m +m = h G(ga1)s 2 = Gm1 +m2 .
De oplossing van (m1 +m2 ) vereist een berekening van de discrete logaritme, die over het algemeen erg moeilijk is. Echter vanwege het kleine aantal stemmen is de discrete log efficient te berekenen [CGS97]. Om W = GT , waarbij T gelijk is aan het verschil tussen ja en nee stemmen (−l ≤ T < l), te verkrijgen, moeten we G−l , G−l+1 , . . . , Gl−1 , Gl genereren zodat we W = GT vinden. Het aantal stemmen l is efficient te vinden omdat het aantal stemmen (relatief) klein is. 10.2.4
Groepsencryptie
Het doel van een groeps cryptosysteem is om de private key s te verdelen over een groep met n leden, zodat een berichten gedecrypt kunnen worden door een subset van tenminste t van n - een (t, n) groeps cryptosysteem. Protocols zijn gemaakt om 1. gegenereerde sleutels te verdelen over de groep en 2. berichten de decrypten zonder dat de sleutel geherconstrueerd hoeft te worden. ElGamal groepscryptosysteem (Oplossingen voor sleutelverdeling en generatie en de decryptie protocols kunnen gevonden worden in [Ped92]) Het sleutel generatie protocol resulteert dat elke stembureau Aj een onderdeel van de sleutel sj ² Zq van de private key s heeft. Elk stembureau
90
CyberVote: Elektronische Verkiezingen
maakt zijn eigen public key bekend hj = g sj . Gebruikmakend van het (t, n) groepscryptosysteem kan bewezen worden dat de private key gevonden kan worden door gebruik te maken van Langrange coefficienten, zonder dat een enkel stembureau de private key te weten komt. Dit bewijs laten ik achterwegen, zie [CGS97]. In [CGS97] staat ook beschreven hoe de cijfertekst (x, y) = (g α , hα m) te weten te komen, zonder dat de stembureau’s de private key te weten komen: 1. Elk stembureau Aj maakt ωj = xsj bekend en bewijst met zero-knowledge dat logg hj = logx ωj . 2. Laat ∆ een subset van t stembureau’s zijn die in staat zijn geweest voor de zeroknowledge test te slagen. Om dan het bericht m te hervinden: m = Qt y ωλ j j=1,j∈∆
bewijs zie [CGS97]. Stelling 10.2 De encryptie van (u1, v1), . . . (ui, vi) is (g
P
k1,...ki
,b
P
k1,...ki
j
x1..xi.
Bewijs. Bewijs Aan de hand van de vorige stelling is dit gemakkelijk te bewijzen.
a
Nu heb ik ElGamal homomorphische-, en groepscryptosystemen besproken. Dit is voldoende theorie om een verkiezingsprotocol te maken. Voor de volledigheid leg ik in het kort nog even uit wat verifieerbare mixen zijn. Hier zullen we verder niets mee doen.
10.3
Twee typen kiesprotocollen
(Zie [Cyb02]) Als men de literatuur bestudeert, dan vallen de kiesprotocollen op te delen in 2 typen. Het eerste type maakt gebruik van anonieme kanalen tijdens het stemmen (mbv blinde handtekeningen). Het tweede type maakt gebruik van homomorphe encryptie en/of verifieerbare mixes. 10.3.1
Type 1
Het principe van het eerste type is dat de kiezer anoniem is tijdens het kiezen. Om dit te bereiken hebben we in ieder geval twee fases nodig tijdens deze protocollen. De eerste fase is de fase waarin de kiezer een geblindeerd getekende token krijgt. Deze token wordt gebruikt om het ge¨encrypte stembiljet te authentificeren in de tweede fase. Dit stembiljetje wordt over een anoniem kanaal gestuurd. Het is belangrijk dat er een tijdsverschil is tussen de eerste en de tweede fase, om te voorkomen dat er via het analyseren van het verkeer over de kanalen kan worden gelinkt wie wat gestuurd heeft. Een prototype voor een type een protocol is het protocol van Fujioko, Okamoto en Ohta. 10.3.2
Type 2
De kiezer is bij type 2 protocollen niet anoniem, maar door de stembiljetten te voorzien van een deelsleutel, is het linken van de kiezer met het stembiljet onmogelijk. Het kiesprotocol bestaat uit het sturen van een enkel bericht naar een bulletin board. Type 2
10.3 Twee typen kiesprotocollen
91
heeft twee varianten: de eerste variant maakt gebruik van homomorphische groepsencryptie, waarbij de homomorphische encryptie validiliteit bewijst voor het ge¨encrypte stembiljet. En de stemmen worden gedecrypt aan de hand van de deelsleutel. (door alle stemmen met elkaar te vermenigvuldigen) De tweede variant maakt gebruik van verifieerbare mixen. Bij elke mix wordt de lijst met de stemmen geshuffeld. De gemixte stembiljetten worden gedecrypt na de laatste shuffle. Een bulletin board is een publiek uitzendkanaal met geheugen. Het is niet mogelijk om gegevens te wissen van het bulletin board, maar alle kiesgerechtigden en election officials kunnen op hun bestemde (gecontroleerd door handtekeningen) plaats schrijven. Type 2 is gebaseerd op een (t, n) groepsencryptie, waarbij 1 ≤ t < n. Voor elke coalitie van t uit n, kunnen de stemmen gedecrypt worden, maar er is geen enkele t − 1 coalitie die dit kan. Het verschil tussen homomorphe schema’s en verifieerbare mix schema’s is in deze dat de decryptie bij homomorphe groepsgewijs geschiet (meerdere stemmen worden tergelijk gedecrypt) en bij verifieerbare mix schema’s wordt elke stem apart gedecrypt. 10.3.3
Verschil
In type 1 is er door gebruik te maken van geblindeerde handtekeningen en anonieme kanalen de mogelijk om informatieve-theoretische privacy te garanderen. Maar om dit te bereiken zullen de anonieme kanalen perfect moeten zijn; er mag niet worden uitgegaan van computationele veiligheid. Een nadeel zijn de 2 fases, waardoor een administrator stembiljetten kan introduceren van geregistreerde kiesgerechtigden, die niet tot het feitelijke stemmen zijn toegekomen. Het is (nog) niet mogelijk gebleken om de 2 fases in 1 te fuseren, omdat dan door verkeer analyse erachter is te komen wie wat heeft gestemd. Helaas zijn de procollen niet universeel verifieerbaar. Bij Type 2 is het mogelijk om een ’vote-and-go’ eigenschap te bereiken, omdat de kiezer slechts een stem op een bulletin board moet plaatsen. Een ander voordeel is dat alle stappen van het stemproces universeel verifieerbaar zijn. Er kleeft ook een nadeel aan dit systeem, namelijk dat het potentieel hoge kosten heeft wat betreft het verifieren van correctheid van het stembiljet bij homomorphische encryptie en de bewijzen dat de uitslag correct is bij verifieerbare mixen. De type 2 protocollen zijn het best geschikt voor echte verkiezingen. Er zal echter wel rekening gehouden moeten worden met de encryptie parameters, zodat de uitslagen ook nog in de toekomst niet te traceren zijn. Een groot verschil is dat type 2 protocollen er vanuit gaan dat de gebruikte encryptie niet te kraken is. Dit kan een belangrijke factor zijn voor de toekomst, als de gebruikte encryptie wel te kraken is en dat dus de stemmen achterhaald kunnen worden. Dit geldt echter ook voor type 1, maar dan met computationele veiligheid bij anonieme kanalen.
92
CyberVote: Elektronische Verkiezingen
10.4
CyberVote
(zie [Cyb02]) De Europese Unie heeft besloten om een project te houden met als doel het opzetten van electronische verkiezingen. Er bestonden aan het begin van het project nog geen protocollen die aan alle eisen voldeden. Een paar academische en industri¨ele partijen doen mee in dit project. Het resulteert in een test Januari a.s. in Duitsland op een universiteit. Er wordt gekeken naar de haalbaarheid en alle mogelijke aspecten van digitale verkiezingen: juridisch, technisch, operationeel, etc.
10.5
Bulletin Board Model (Cramer, Gennaro en Schoenmakers)
(voor details zie [CGS97]) De actoren die in het model van Cramers et al. worden gebruikt zijn: Officers (kiesambtenaren): zij bedienen het bulletin board. Voters (kiezers): zij zenden hun stembiljet naar het bulletin board. Talliers (tellers): assisteren in het berekenen van de uiteindelijke uitslag van de verkiezingen. Scrutineers (waarnemers): controleren of de uitslag correspondeerd met de ingeleverde stembiljetten. 10.5.1
algemeen
In dit model werken we met l kiesgerechtigden en n stembureaus die communiceren aan de hand van een ’bulletin board’. In de praktijk is het zo dat zo’n bulletin board geimplementeerd is als een webserver. In dit bulletin board model is te zien wie er gestemd heeft ahv de handtekeningen. Het is dus ook gemakkelijk na te gaan wie er heeft gestemd. (handig voor landen zoals Belgi¨e) Echter is aan de stemmen niet te zien wat de inhoud is. Dit wordt gerealiseerd door ElGamal encryptie van de stembiljetten. Receipt-freeness is niet gegarandeerd. De vraag is of receipt-freeness wel gegarandeerd moet worden, omdat bij digitale stemmingen er altijd iemand bij je kan zijn die tot dwang over kan gaan. Dit bulletin board model gebruikt homomorphische encryptie, een groepsdecryptie schema, bewijzen van correctheid(zero-knowledge) en een bulletin board. Naast de parameters van de ElGamal encryptie, wordt er ook een generator G gekozen. De sleutel is verdeeld over de stembureau’s en om storingen of fraude te voorkomen wordt gebruik gemaakt van een drempelschema voor de geheime sleutel. Bovendien is het verplicht, om fraude tegen te gaan aan, bij elke inzending een zero-knowledge proof van correctheid toe te voegen. De uitkomst van het opstart protocol is dat de geheime sleutel s wordt verdeeld over de stembureau’s. Elke geheime sleutel si hoort bij het publieke aandeel van het stembureau hi = g s1 . Nadat de publieke sleutel bekend is gemaakt kunnen de kiezers stemmen. Ze doen dit door het stembiljet te sturen naar een bulletin board. Een stem heeft de
10.5 Bulletin Board Model (Cramer, Gennaro en Schoenmakers)
93
vorm van (g α , hk Gw ) waarbij w = 1 of w = 0, afhangend van de stem. Naast dit paar wordt een bewijs gegeven dat Gw 1 of 0 is, zonder dat dit te zien is met zero-knowledge. Vervolgens ondertekent de kiezer het stembiljet en stuurt het naar het bulletin board. Dit publieke bulletin board verzamelt de stemmen. Van alle stemmen wordt bij binnenkomst gecontroleerd of de afzender wel in de kieslijst voorkomt. Als de stembussluitingstijd is aangebroken, dan worden de versleutelde stemmen geteld. De stembureau’s moeten nu samen het resultaat van de stemming ontsleutelen. Een stembureau met aandeel si van de sleutel moet de waarde u∗a1 insturen, samen met een bewijs dat de waarde correct is berekend. Onjuiste inzendingen worden genegeerd. Ontsleuteling van de waarde x∗, waaruit de uitslag als logaritme kan worden gevonden. Deze uitslag wordt als laatste door de tellers bekend gemaakt. 10.5.2
In cryptografisch detail
Het cryptosysteem werkt met discrete logaritme voor een subgroep Gq van orde Z∗q , waarbij p en q grote priemgetallen zijn, zodat q|p − 1. De beveiliging van het systeem hangt af van het ElGamal cryptosysteem, waarbij is aangenomen dat de discrete logaritme ondoenlijk is om te traceren. 1. Voorbereiding De parameters van het systeem p, q en de vaste generators g, Gk ²Gq waarbij 1 ≤ k ≤ N stemopties, worden gegenereerd door een subset van de authoriteiten. Twee extra parameters yk , nk ² zq worden ook gekozen voor elke stemoptie. Zij representeren ’ja’ (yk ), resp. nee(nk ). (Het is mogelijk voor een gemakkelijke implementatie om de N generators, Gk zowel als de N paren yk , nk te kiezen zodat ze onafhankelijk zijn van k. Het is dus mogelijk dat Gk = G = g en yk = y0 = 1 en nk = n0 = 0 . Echter is natuurlijk belangrijk dat yk 6= nk .) Uiteindelijk maken de autoriteiten gezamelijk de parameter h, in de cyclische subgroep gegenereerd door g. Dit gebruik makend van het protocol van Peterson [Ped92]. Uiteindelijk maken ze hun public key bekend en houden ze hun private key sj geheim. 2. Stemmen Om een stem uit te brengen moet voor elke optie op het stembiljet een ElGamal encryptie worden gemaakt. Voor elk stembiljet i die gestemd is en voor b(i,k) elke optie van i, k, op het stembiljet, de ge¨encrypte stem is Gk , waarbij Gk de generator van Gq is, die vastgesteld is voor optie k. En b(i, k) ² { yk , nk } is de keuze ja/nee op het stembiljet. De geencrypte stem is uiteindelijk van de vorm α(i,k) Bi = {(xk , yk )}N , hα(i,k) Gb(i,k) )}N k=1 = {(G (k=1) 1 ≤ k ≤ N
Waarbij a(i, k) ² Z∗p is die random gekozen is door de stemgerechtigde Vi en deze waarde wordt geheim gehouden. Naast deze ge¨encrypte stem wordt er ook een bewijs van validiteit toegevoegd volgens het protocol van [CGS97]. 3. Versturen De gebruiker verstuurt het ondertekende encrypte biljet naar het bulletin board via een netwerk. Dit kan zijn het internet of andere netwerken. Merk op dat nu dus na te gaan is dat iemand iets stuurt, maar dat de inhoud van het bericht
94
CyberVote: Elektronische Verkiezingen
ge¨encrypt is. Dus niet na te gaan. Een nadeel van dit protocol kom nu dus ook aan het licht, want een gebruiker kan aan een derde parij laten zien wat hij/zij gestemd heeft. Receipt-freeness is dus niet gegarandeerd. De stem komt aan bij de server en voordat de server het op het bulletin board plaatst, worden er eerst nog een aantal controles uitgevoerd. Als eerste wordt gekeken of de handtekening wel correct is en of de afzender wel in de kieslijst voorkomt. Als een kiezer meerdere stemmen plaatst, dan is het mogelijk om slechts de eerste stem door te laten gaan, of alle stemmen te plaatsten op het bulletin board. In het tweede geval zal voordat de stemmen worden getelt, slechts de laatste ingeleverde stem (of de eerste) meetellen; de anderen worden dus verwijderd. Een tweede check is of de verificatie wel klopt. Het principe dat gebruikt wordt is zero-knowlegde Als deze checks gedaan zijn, wordt de stembiljet samen met de verificatie en handtekening op het bulletin board geplaatst 4. Einduitslag berekenen Er zijn meerdere stembureau’s; in dit geval wil dat zeggen dat er dus meerdere servers met bulletin boards zijn. Als de tijd over is, dan kan er niets meer worden geplaatst op het bulletin board. De stemmen worden dan geteld en omdat er sprake is van homomorphe encryptie van AlGamal worden alle geencrypte stemmen bij elkaar opgetelt nadat de handtekeningen en de verificatie eraf zijn gehaald. Elke stembureau stuurt zijn eigen resultaat op naar een telbureau t. Zij sturen (of publiceren) het eindresultaat (u∗, v∗). De stembureau’s moeten nu samenwerken om aan de einduitslag te komen van het resultaat (u∗, v∗), want er is een kiesdrempel van t bureaus. Elk bureau i stuurt de waarde (u∗)ai op, samen met een bewijs dat deze waarde correct is berekend. En het telbureau berekend de einduitslag x per token. Deze x is een getal en de einduitslag kan gevonden worden door de logaritme van deze x. 10.5.3
Eigenschappen
De eigenschappen van dit protocol behandel ik aan de hand van de eisen die ik gesteld heb aan verkiezingsprotocollen. Integriteit Er kan bewezen worden dat het systeem correct is. Dit kan ook public geverifieerd worden. Geheimhouding Geen enkele stem wordt alleen gedecrypt; alleen bij de eindstemming worden alle stemmen tergelijk ontcijferd. Bovendien zijn t van n stembureau’s nodig om de stemmen te ontcijferen, dus we moeten aannemen dat een kwaadwillige coalitie van meer dan t − 1 stembureau’s niet voorkomt. Een derde partij zou kunnen proberen om de geheime sleutel te stelen, maar dan moet hij t of meer sleutels stelen van de stembureau’s. Dit gevaar zou kunnen worden ingedamd door actieve beveiliging van de sleutel. De ElGamal encryptie parameters moeten voldoende groot genoeg zijn om de beveiliging te garanderen.
10.6 Conclusie
95
Verifieerbaarheid Het protocol is universeel verifeerbaar; iedereen kan zien dat de stemmen op het bulletin board van legitieme stemmers komt (ahv hun handtekeningen). Ook dat de stembiljetten van de juiste vorm zijn is te bewijzen (bewijs van validiteit ahv zero-knowledge). Ook dat de uitslag correct is valt te bewijzen. Onafhankelijkheid De kiezeronafhankelijkheid is gewaarborgd in dit protocol. Robustheid Geen enkele stemmer kan het protocol onderbreken door een verkeerde stem uit te brengen. Deze stem wordt dan niet geaccepteerd vanwege het bewijs van validiteit. Van de stembureau’s (tellers) moeten t van n hun werk goed doen. Opkomstcontrole Doordat alle stemmen voorzien zijn van een handtekening is na te gaan welke stemmer gestemd heeft en welke niet.
10.6
Conclusie
De cryptografie is tegenwoordig zo ver ontwikkeld dat we echt digitaal kunnen gaan stemmen. Er zijn 2 types van protocollen op dit gebied beschikbaar, die beide aan de eisen kunnen voldoen. Echter geven de meeste uitvoerenden de voorkeur aan type 2, omdat deze slechts een stemfase heeft. Dit is vanuit praktisch oogpunt veel handiger. Het kiesschema van Cramer, Gennaro en Schoenmakers geeft een prototype voor een type 2 protocol. Helaas garandeert dit schema geen receipt-freeness. Er bestaan echter wel schema’s die dit garanderen [Cyb02].
96
CyberVote: Elektronische Verkiezingen
Hoofdstuk 11 SmartGun Door Kevin Kwee
De SmartGun, ook wel aangeduid met Personalized Weapon Technology, is d´e nieuwste ontwikkeling op vuurwapengebied. Deze techniek zorgt ervoor dat unauthorized users het vuurwapen niet kunnen gebruiken. Dit berust op het gebruik van biometrie, waarbij persoonlijke kenmerken van de authorized user de sleutel vormen (zoals de vingerafdruk of de manier waarop hij/zij het wapen vasthoudt). Achtereenvolgens zal behandeld worden: het smartgun project, de voorloper van de smartgun, biometrische techniek en systeem integratie.
11.1
Het SmartGun project
Het allereerste offici¨ele onderzoek naar de smartgun werd in 1996 voltooid door Sandia National Laboratories (http://infoserve.sandia.gov), onderdeel van de Lockheed Martin Company in dienst van de US Department of Energy. Het onderzoek in opdracht van de NIJ (National Institute of Justice) , dat ongeveer 22 maanden duurde leverde in 1996 een rapport op. Er waren drie doelstellingen die behaald moesten worden, te weten: bepaal de user requirements van een smartgun; onderzoek en evalueer technologie¨en die mogelijk voldoen aan de eisen voor een smartgun; en breng tenslotte verslag uit van de sterke en zwakke kanten van diverse technologie¨en die voldoen aan het smartgun concept. Sinds de publicatie van het rapport hebben verscheidene vuurwapenfabrikanten getracht de smartgun technologie te implementeren, met of zonder sponsoring van de overheid (Zie ook de sectie over RF technologie). In 2001 kwam er een nieuw rapport uit, met enkele wijzingen en toevoegingen: een update. In tegenstelling tot Sandia, is de NJIT, New Jersey Institute of Technology niet alleen de smartgun aan het onderzoeken, maar vooral ook bezig met een werkelijke implementatie van een Personalized Weapon, hun benaming van de smartgun. Het NJIT doet 97
98
SmartGun
Kader 11.1: America LOVES Guns Amerikanen zijn nooit vies geweest van vuurwapens. De laatste jaren loopt het vuurwapenbezit helemaal uit de hand. Niemand voelt zich nog veilig en jong en oud draagt schietijzers. Dat leidt elk jaar tot veel ellende, maar een Amerikaan vertellen dat hij geen pistool mag hebben, is ongeveer hetzelfde als een Nederlander verbieden te fietsen. Dit komt ook terug in het Tweede Amendement van de VS: Het recht van mensen om wapens te bezitten en te dragen, zal niet worden geschonden Vandaar ook dat er inmiddels al meer dan 250 miljoen vuurwapens in omloop zijn, en dat aantal groeit dagelijks. Op de foto zie je de Five-seveN 5.7 x 28mm van FN Herstal. dat echter niet alleen, ze werkt samen met de wapenfabrikanten FN Herstal en Smith & Wesson. Een andere grote speler in dit project is wederom de NIJ. Dankzij deze samenwerking zijn er voldoende financiele middelen beschikbaar om het project te doen slagen. Waarom en voor wie wordt de smartgun ontwikkeld? Als reactie op het toenemende aantal dodelijke slachtoffers van vuurwapengeweld werd het principe van de smartgun bedacht. Heel veel mensen raken gewond of worden gedood door iemand die niet de rechtmatige eigenaar van het vuurwapen is. Elke dag overlijdt in de Verenigde Staten een kind, omdat hij of zij toevallig het pistool van hun ouders vindt. Ook politieagenten worden neergeschoten tijdens een vuurgevecht door iemand met h´ un dienstwapen, het kan tijdens een worsteling zijn afgepakt. Gezinnen die snel toegang tot een wapen willen hebben, maar tegelijkertijd hun kinderen of anderen niet in gevaar willen brengen wachten met smart op de smartgun. Voor agenten is het trouwens handig als ze onderling elkaars dienstwapen kunnen activeren, ook deze eis wordt meegenomen bij de ontwikkeling van de smartgun. Eisen aan het smartgun systeem De smartgun moet voldoen aan de volgende eisen: • Gebruiksvriendelijk; de gebruiker moet niet hoeven nadenken hoe hij of zij het wapen moet vastpakken. Onderhoud van het systeem mag geen ingewikkelde handelingen bevatten. • Energiebesparend; de batterij of energiebron die het systeem (de)activeert moet lang meegaan of zichzelf steeds opladen. Je zou bijvoorbeeld de kinetische energie die vrijkomt bij het afvuren kunnen opslaan in de batterij. • Klein en licht; het hele systeem waaronder de batterij en de sensoren moet lichtgewicht zijn. Ook moet het binnenin het vuurwapen passen en geen uitstekende onderdelen vertonen.
11.1 Het SmartGun project
99
• Betrouwbaar; de smartgun behoort te werken voor een gemachtigde gebruiker en voor niemand anders, eventueel voor een groep gebruikers. De foutmarge moet zo laag mogelijk zijn, zie hiervoor ook sectie 11.3.1 • Beslissnelheid; seconden kunnen het verschil tussen leven en dood betekenen, het systeem moet dus binnen zeer korte tijd beslissen of de gebruiker authorisatie heeft of juist niet. Installatie van een gebruiker. Het toevoegen van de kenmerken van de gebruiker aan het systeem, bijvoorbeeld als de klant het wapen nieuw in de winkel koopt, kan op twee manieren gebeuren; met de sensoren op het wapen zelf of met een speciale scanner. Deze procedure zou je encryptie kunnen noemen, omdat je het kenmerk versleutelt in een digitale vorm. Deze template wordt dan opgeslagen in het vuurwapen. Een ongemachtigde gebruiker zal het wapen niet kunnen activeren, omdat zijn of haar kenmerken simpelweg niet overeenkomen met de opgeslagen template. Identificatie. Er bestaan momenteel al enkele producten die het idee van de smartgun benaderen, dat zijn onder andere simpele cijfersloten, draagbare kluizen en wapens die geactiveerd worden door een magnetische ring. De ´echte smartgun is uiteraard gebaseerd op vingerafdrukherkenning. In de cryptografie zijn er verschillende mogelijkheden om jezelf te identificeren: iets wat een persoon heeft, kent of is. De activatie van het wapen met je vinger(s) als sleutel zou je decryptie kunnen noemen. In het geval van de kluizen en sloten gaat het om het hebben van een voorwerp (zoals een sleutel) of kennis van bijvoorbeeld een cijfercombinatie. Het wapen met de magnetische ring berust natuurlijk op het bezit van de ring. Het z´ijn van een bepaald kenmerk, geldt voor de smartgun zoals hij in dit hoofdstuk bedoeld wordt. Aanvallen op het systeem. Het simuleren van een biometrisch kenmerk zou inhouden dat je een vinger, enkele vingers of zelfs de hele hand van een gemachtigde gebruiker zou moeten afhakken. Sterker nog, misschien maakt het systeem gebruik van een drempelschema of van een vetoschema, wat zou betekenen dat de aanvaller ook nog moet nadenken w´elke vingers de sleutel tot identificatie zijn. Dit hele idee is best omslachtig, als je toch een misdaad wil plegen, neem dan gewoon je eigen wapen mee. Een andere mogelijke aanval zou reverse engineering zijn waarbij, net als in het geval van de GSM, slimme criminelen het systeem uitpluizen tot op het bot en met de vergaarde kennis een stoorzender ontwikkelen. Deze stoorzender zou dan van een afstand de vuurwapens van agenten kunnen uitschakelen. Voordelen. Het activeren van het wapen zal sneller gaan dan de voorlopers van de smartgun. Je hoeft nu geen slot te openen met een sleutel of cijfercombinatie en een magnetische ring dragen is ook niet nodig. Het systeem is passief, in die zin dat nadenken over de veiligheid niet nodig is. Voor de Amerikaanse vuurwapenfabrikanten is het gunstig dat er nieuwe kopers zullen zijn. Het is namelijk gebleken dat mensen die aanvankelijk niets van vuurwapens wilden weten, w´el interesse toonden in smartguns, een nieuwe doelgroep dus. En tenslotte, als de smartgun inderdaad werkt zoals er beweerd wordt, dan zullen er in de toekomst inderdaad minder (dodelijke) schietonge-
100
SmartGun
lukken voorkomen. Nadelen. Uiteraard zijn er ook nadelen. Het in huis nemen van een (vuur)wapen is staat gelijk aan het vergroten van de kans op een ongeluk, als je het niet in huis hebt is die kans er niet eens. Hoe zit het met de wapens zonder smartgun systeem, oftewel de meer dan 250 miljoen stuks momenteel in het bezit van Amerikaanse huishoudens? Met die wapens kunnen nog steeds ongelukken voorkomen en nog steeds gestolen worden, en gebruikt worden tegen de eigenaar. Het systeem is niet perfect veilig, want het NJIT geeft toe dat er inderdaad een foutmarge bij komt kijken; de False Positive Rate en de False Negative Rate, is het systeem dan wel te vertrouwen? En last but not least, meneer Murphy duikt altijd op wanneer je hem kan missen als kiespijn; wat doe je als de batterij van het systeem op is? Toekomst en alternatieven Er zijn gelukkig maatregelen die als alternatief of juist in combinatie met de smartgun getroffen kunnen worden. Momenteel wordt er al voorlichting op basisscholen gegeven door de NRA (National Rifle Association) over veilig omgaan met vuurwapens. Veel ongelukken konden worden voorkomen als de veiligheidsregels beter nageleefd werden. Sommige veiligheidsregels staan echter in de weg in een zelfverdedigingssituatie, het slot van de kluis bijvoorbeeld. In dit laatste geval zou een werkende smartgun ideaal zijn. Het Personalized Weapons System van het NJIT, doorloopt verschillende fasen. Fase I hebben ze inmiddels afgerond, nu is het tijd voor de volgende fasen, waarbij de laatste fase het op de markt brengen van een smartgun is.
11.2
Voorloper van de SmartGun: Radio Frequency Technology
Er zijn diverse toepassingen van RF technologie voor (vuur)wapens. In 1992 kwam het bedrijf Fulton Arms op de markt met een zogenaamde controle-ring, waar het IFF logo op stond. IFF staat wereldwijd bekend als de term voor Identification Friend or Foe. Deze is dan ook bekend bij de strijdkrachten. Sinds de Tweede Wereldoorlog zijn RFID tags (Radio Frequency Identification) gebruikt voor het IFF systeem om van vliegtuigen te bepalen of ze vriend of vijand waren. Deze tags ontvingen dan een radiosignaal waarop geantwoord werd met een ander signaal. Het is duidelijk dat deze technologie ook mogelijkheden bood om verwerkt te worden in vuurwapens. De genoemde tags komen je beter bekend voor als ik vertel dat ze in winkels worden gebruikt om diefstal tegen te gaan. Als bijvoorbeeld een kledingstuk -op wat voor manier dan ook- de winkel verlaat zal de tag een alarm doen af laten gaan. De tag werkt samen met een reader, zodra de afstand tussen hen te groot wordt, kan er dus een alarm afgaan. In een toepassing voor de smartgun, zou de tag als sleutel werken, terwijl het vuurwapen zelf dienst doet als de reader. Hoe werkt het RFID systeem? Een typisch RFID systeem bestaat uit drie elementen, te weten:
11.2 Voorloper van de SmartGun: Radio Frequency Technology
101
• tag • reader • antennes Het laatstgenoemde element, de antennes, ontvangen en zenden de radiogolven uit. De tag ´en de reader moeten elk een antenne bevatten. Wanneer de antenne van de tag binnen vooraf gedefinieerde grenzen van de reader-antenne valt, dan kan communicatie tussen beide plaatsvinden. Er zijn twee typen tags: read-only en read/write. De eerste zijn gefabriceerd met vooraf opgeslagen informatie dat niet veranderd kan worden. Het tweede type bevat een soort van programmeerbaar geheugen en kan dan ook door de gebruiker aangepast worden. Als een tag een eigen energiebron bij zich draagt, dan wordt het een active tag genoemd. Deze worden gebruikt als een grotere afstand gewenst is of als er geheugen bij komt kijken die een continue energievoorziening behoeft. Is de tag in staat om energie door middel van zijn antenne de energie van de radiogolven af te tappen, dan spreken we van een passive tag. Het brein van het RFID systeem wordt gevormd door de reader, die een antenne ´en een decoder moet bevatten. Nadat de reader de data van de tag heeft ontvangen, zal hij het decoderen met behulp van speciaal geintegreerde software of hardware. Tenslotte zal de reader zijn specifieke taak uitvoeren, zoals het uitschakelen van een vuurwapen. De beschikbare hoeveelheid geheugen ligt tussen de 20 bits in de read-only tags en 32 kb voor de read/write tags. Het voordeel van een groter geheugen is dat er meer informatie in opgeslagen kan worden als dit nodig is. Hiermee wordt echter ook de snelheid en het vermogen kleiner. Door de verschillende keuzemogelijkheden voor de drie elementen zijn er verschillende configuraties mogelijk. Elke configuratie heeft zo zijn eigen sterke en zwakke punten. Het doel is om een zo geschikt mogelijke configuratie voor het smartgun systeem te bedenken. Hieronder volgt een situatieschets wanneer het RFID systeem in de smartgun is geinstalleerd: Elke agent krijgt een tag met een unieke code, en zijn of haar dienstwapen fungeert als de reader. Op het moment dat het vuurwapen in de hand gedragen wordt, zal de reader in het wapen radiogolven met lage energie uitzenden. Als de tag binnen de reading range is, dan zal hij door deze energie geactiveerd worden en de opgeslagen informatie terugsturen naar het vuurwapen. Hoort die informatie bij een authorized user, dan zal het wapen (of beter gezegd, de reader) het vuurmechanisme inschakelen. De reader kan ingesteld worden om meerdere codes te accepteren, met andere woorden, meerdere gebruikers kunnen ´e´en vuurwapen activeren. Je zou kunnen denken aan een arrestatieteam, waar elk lid van het team in staat moet zijn om het dienstwapen van een ander teamlid te kunnen gebruiken. De tag zelf moet op een bepaalde manier door de agent gedragen worden. Een ring of een polsband zijn twee makkelijk te implementeren mogelijkheden. Als het wapen echter afgepakt wordt, dan mag het niet meer binnen de reading range van de reader vallen. Die range moet dus minimaal zijn, zodat het vuurwapen inactief is. Een ander idee is om de tag onder de huid te implanteren, op deze manier kan de sleutel (want dat is het in feite) niet gestolen worden. Het voordeel van het gebruik van radiogolven, is dat ze niet tegengehouden worden door bepaalde stoffen of materialen. Vuil of handschoenen vormen bijvoorbeeld geen
102
SmartGun
Kader 11.2: Insider’s View Oscar van der Veen, voormalig politiefunctionaris, onder andere werkzaam geweest bij de recherche en het Utrechtse arrestatieteam heeft het volgende te zeggen over de smartgun: Uit het oogpunt van de Amerikaanse situatie kan ik begrijpen dat het daar wel zou werken, vooral als je ziet hoeveel agenten daar belaagd worden met hun eigen vuurwapen. Een minpunt daarbij is dat mensen misschien te makkelijk gaan denken over het wapen. Ook is het een stukje extra veiligheid wat je inbouwt en dus positief, de biometrie is immers al zo geavanceerd dat ik van mening ben dat het ook voor vuurwapens zal werken, alleen dan op een kleinere schaal (hoewel het nog even afwachten is hoe dit systeem zich verder ontwikkelt). Op de vraag of hij het eventueel in de praktijk zou willen gebruiken geeft Van der Veen een positief antwoord, mits de voorafgaande tests met de smartgun goede resultaten oplevert. Van der Veen runt momenteel een advies -en trainingsbureau: http://www.oscarvanderveen.nl
belemmering op de werking van het systeem. Conflicten kunnen wel optreden wanneer twee tags gelijktijdig gelezen worden door een reader. Het omgekeerde, wanneer twee readers ´e´en tag proberen te lezen kan ook voorkomen. Momenteel wordt hierop gereageerd door het ontwikkelen van systemen die meerdere frequenties kunnen scannen om verschillende tags sequentieel in te lezen.
11.3
Biometric Technology: Pattern Analysis
Patroonherkenning is een tak van de statistiek, waarbij patronen in grote dataverzamelingen worden gezocht. Een typische taak is bijvoorbeeld het onderzoeken van een aantal cases, waarbij elke case toebehoort aan een aparte class. Door enkele observaties op de case toe te passen, kan je die specifieke case toekennen aan een klasse. Het doel van patroonherkenning is om een zogenaamde classifier te bouwen, die met behulp van deze observaties automatisch kan antwoorden tot welke klasse een bepaalde case hoort. 11.3.1
De classificatie
Een smartgun classifier kan twee beslissingen maken: het vuurwapen activeren of juist deactiveren. Er zijn twee typen fouten die kunnen optreden: • Een Type I error of False Positive treedt op wanneer het wapen geactiveerd is, maar in handen is van een ongemachtigde gebruiker.
11.3 Biometric Technology: Pattern Analysis
103
• Een Type II Error of False Negative treedt op wanneer het wapen gedeactiveerd is, maar in handen is van een gemachtigde gebruiker. Het is de bedoeling een systeem te bouwen die het optreden van dit soort fouten minimaliseert. De sensoren ´en de classifier spelen beide een grote rol bij het minimaliseren van de kans op een fout. Zonder goede sensoren, kan een classifier geen nauwkeurige antwoorden geven. Aan de andere kant, kunnen nauwkeurige sensoren problemen van een niet- optimale classifier niet afvangen. Het is niet mogelijk om beide typen fouten te elimineren. Het systeem moet aangepast worden om acceptabele foutenaantallen te produceren (voor beide Type I en II fouten). Dit acceptabele aantal kan afhankelijk zijn van het bedoelde gebruik van de smartgun; Voor gebruik bij de politie is Type II onacceptabel. Hoewel voor de schietsport een groter aantal Type II fouten geaccepteerd zou kunnen worden, de kans op een Type I fout wordt hiermee tegelijkertijd verkleind. De vraag welke sensor/classifier combinatie de meest optimale is, waarbij dus het kleinste aantal fouten optreedt moet nog beantwoord worden. In sommige patroonherkenning toepassingen is de aard van het probleem zodanig dat een verzameling regels geschreven kan worden die de classificatie correct uitvoert. In andere toepassingen echter, is het niet mogelijk om a priori classificatie regels te specificeren. De classifier zelf moet de regels defini¨eren, in ieder geval enkele parameters hiervoor. Het hebben van een vaste, vooraf bepaalde, verzameling regels heeft verschillende voordelen. Een daarvan is bijvoorbeeld dat vanwege de a priori specificatie, het mogelijk is om classificatie fouten te identificeren. Het is echter onwaarschijnlijk dat een a priori systeem voor de smartgun zal werken. Ten eerste omdat de hoeveelheid data van de sensoren zo groot is, dat een regelverzameling moeilijk op te bouwen is. Ten tweede suggereert het hele smartgun idee een aangeleerde aanpak. Elk wapen heeft een enkele gemachtigde eigenaar (de multiple user optie is hier buiten beschouwing gelaten), en mag alleen geactiveerd worden door die ene gebruiker uit het hele universum van alle gebruikers. De kenmerken van de toekomstige eigenaar moeten worden vastgesteld op het moment dat het wapen wordt geprogrammeerd. Vandaar dat een verzameling a priori regels geen zin heeft. De toepassingen van de smartgun vereisen enkele constraints op de classifier architecture die gebruikt zal worden. Het systeem mag weinig energie verbruiken. Ook is er in het wapen slechts een kleine ruimte beschikbaar voor de hardware, wat zijn beperkingen legt op de computing power en het beschikbare geheugen. Hierdoor worden enkele classifier architectures al bij voorbaat uitgesloten. Bovendien moet de classifier binnen een zeer korte tijd een beslissing nemen. Bij de installatie van een nieuwe gebruiker, zal er een aantal testschoten worden afgevuurd, waardoor het wapen de nieuwe eigenaar kan herkennen. Deze testschoten vormen de positieve voorbeelden. Om een classifier te trainen, zijn er ook negatieve voorbeelden nodig. Deze kunnen verkregen worden uit een sample van een verzameling andere gebruikers. Dit aantal negatieven kan dus heel groot zijn, terwijl dat voor de positieve trainingsvoorbeelden beperkt is.
104
SmartGun
Figuur 11.3: Vingerplaatsingen van onervaren en ervaren personen
11.3.2
Fingertip placement experiment
Onderstaande informatie is afkomstig van het New Jersey Institute of Technology. Het is een experiment waarbij fingertip placement werd getest. Op welke manier hielden de proefpersonen een vuurwapen vast? En belangrijker, waar plaatsten ze daarbij hun vingers? Er werd rekening gehouden met de volgende vragen: • Is er genoeg verschil tussen de vingerplaatsing van verschillende proefpersonen zodat dit als biometrisch kenmerk gebruikt mag worden om individuen te onderscheiden? • Is de vingerplaatsing van een individu herhaaldelijk genoeg om gebruikt te worden als biometrisch kenmerk? • Als vingerplaatsing inderdaad een onderscheidend biometrisch kenmerk is, wat zijn dan de beste locaties op het vuurwapen om de sensoren te plaatsen? • Voor andere biometrische systemen, waaronder het meten van de greepdruk, wat zijn hier dan de beste sensorlocaties op het wapen? In het onderzoek hebben 160 personen ieder vijfmaal een replica van de Glock 17 vastgehouden. Van dit vasthouden werd een digitale foto gemaakt en aan de hand daarvan werd gemeten waar de vingers precies geplaatst werden. Tien procent van de proefpersonen waren politiemensen. Wat opviel, was dat bij de agenten de vijf vingerplaatsingen dichter bij elkaar lagen. Terwijl mensen met geen tot weinig vuurwapenervaring meer verschil vertoonden bij de vijf plaatsingen (zie figuur 11.3). Verdere statistische analyse toonde aan dat de meest invloedrijke variabelen om individuen van elkaar te onderscheiden de volgende waren: de horizontale plaatsing van de ringvinger en de verticale positie van de middelvinger en de pink. Met dit gegeven zal rekening gehouden worden bij het plaatsen van de sensoren. De locaties van de vingerplaatsingen worden uiteindelijk opgeslagen in de database (in de vorm van een (x, y)-co¨ordinaat). Enkele algemene statistische technieken zijn gebruikt voor de eerste
11.3 Biometric Technology: Pattern Analysis
105
Figuur 11.4: Simulatie van sensorlocaties
analyse van de vingerafdruk gegevens. Die technieken zijn: cluster analysis, density methods, discriminant analysis, demographics en classification trees. De eerste en de laatstgenoemde technieken zal ik beide toelichten, classification trees iets uitgebreider. • cluster analysis : het doel hiervan is het partitioneren van een verzameling objecten in clusters. Dit gebeurt op zo een manier dat de objecten in dezelfde cluster heel veel op elkaar lijken. Objecten uit verschillende clusters verschillen van elkaar. • classification trees : deze worden gebruikt om te voorspellen of een object tot een bepaalde groep of klasse behoort. In elke knoop in de boom wordt een getest op een bepaalde eigenschap van het object (bijvoorbeeld Thumb-X > 50) geldt. Als dit true is dan wordt het rechterkind gekozen en anders het linkerkind. Dit wordt verderop duidelijk door middel van verschillende figuren. Classification trees. Met behulp van de classificatiebomen kan vastgesteld worden hoeveel sensoren er nodig zijn, en ook de locaties waar ze geplaatst moeten worden zodat de vier groepen (duim, middel -en wijsvinger en de pink) onderscheiden kunnen worden. Er zijn twee boomtypen, de eerste is waar ´alle vingers bekeken worden en de tweede behandelt elke vinger (behalve de wijsvinger, omdat deze gebruikt wordt om de trekker over te halen) apart. Een variabele die een splitsing van de groepen maakt hoog in de boom, is degene die het meest onderscheidend is voor de betreffende groepen. Een splitsing op een lager niveau in de boom betekent dat er dan minder variatie is in de groepen. Met andere woorden, de beste locatie voor een sensor wordt bepaald door de splitscriteria bij de wortel. De tweede beste locatie voor een sensor zou bepaald worden door de splitsing in het niveau daaronder. Een splitsing in de bladeren geeft de minst goede locatie voor een sensor aan (Figuur 11.4). Het bovenstaande geldt voor de boom met alle vingers; de splitsingen in de boom voor de duim bijvoorbeeld, geven dan de volgorde aan waar je het best een sensor voor de duim kan plaatsen. Hetzelfde geldt voor de overige vingers. Het blijkt dat de horizontale verandering van de locatie van de ringvinger zorgt voor de meeste variatie binnen de vier groepen. De verticale verandering van de ringvinger is verantwoordelijk voor een
106
SmartGun
Figuur 11.5: Classification tree en Partition space voor de ringvinger
kleinere variatie en daardoor dus minder belangrijk. Als voorbeeld volgt een figuur met een boom, in dit geval voor de ringvinger. Ook is de bijbehorende Cartesian partition space toegevoegd. Dit is een andere manier om de classificatie weer te geven. Let op de x en y co¨ordinaten!
11.4
System Integration
Deze sectie behandelt Micro Electro Mechanical Systems, afgekort tot MEMS, deze techniek heeft het in zich om de ontwikkeling van een biometrisch sensor systeem mogelijk te maken. Een biometrische sensor gebaseerd op MEMS technologie is in staat om snel, betrouwbaar en in real-time de kenmerken van een handgrip (hiermee bedoel ik het vasthouden van een vuurwapen) te analyseren. En daarna beslissen of het vuurwapen on of off moet gaan. Het grote voordeel van MEMS, is dat er kleine 3Volt horloge batterijen
11.4 System Integration
107
Figuur 11.6: Het MEMS/digitale/analoge sensor platform
bij gebruikt kunnen worden, zodat de power consumption teruggebracht wordt tot de microwatt schaal. Vandaag de dag richt het vakgebied sensor design zich op de uitdagende taak om geavanceerde sensoren te ontwikkelen, die hun biologisch equivalent benaderen. De meeste sensoren werken in een complexe omgeving waar niet ´e´en, maar meerdere parameters gelijktijdig veranderen. Het grootste probleem hierin ligt bij de zogenaamde cross sensitivity tussen de verschillende parameters, ze hebben namelijk invloed op elkaar. Om toepassing te vinden in personalised weapons moet de sensor onder andere de volgende variabelen detecteren: druk(veranderingen), vingerafdrukken, veranderingen van de richting van de uitgeoefende kracht etcetera. Aan deze eisen kan alleen voldaan worden als men multifunctionele sensoren gebruikt, die gecontroleerd worden door een mix van digitale en analoge schakelingen. Hoewel digitale systemen op grote schaal de analoge hebben overgenomen, hebben ze nog niet het niveau van biologische sensoren bereikt qua informatiecapaciteit. Het voordeel van digitale electronica is dat het een hoge signal-to-noise ratio heeft en een verwaarloosbare foutenco¨effici¨ent. Analoge systemen op hun beurt kunnen juist grote hoeveelheden data sneller verwerken. Biologische sensoren zijn in feite analoge systemen die een multifunctionele werking hebben.
108
SmartGun
Figuur 11.7: Basisstructuur van een SAW sensor
Zo maken de sensoren in onze vingertoppen niet alleen de tastzin mogelijk, het zijn tegelijkertijd druksensoren, onthouden de vorm van objecten, thermometers en nemen de viscositeit van vloeistoffen waar. De genoemde sensoren transformeren de mechanische en thermische energie¨en in elektrische signalen en die worden naar de hersenen gestuurd, waar ze verder verwerkt worden. De hersenen geven feedback aan de sensoren door middel van geavanceerde patroonherkenning procedures. De te ontwikkelen sensoren voor de smartgun zullen twee elementen gaan bevatten, namelijk een detector en een platform die via een actieve interface met variabele elektrische, mechanische, optische en chemische weerstand verbonden zijn. Het platform moet elektrische output signalen kunnen genereren die de informatie van de detector bevatten. In figuur 11.6 is de globale architectuur van het personalized weapon system te zien; de sensor, de elektronische componenten en de interactie daartussen. De meest voor de hand liggende sensordevice is pi¨ezoelektrisch van aard. Het principe van het pi¨ezo¨elektrisch effect is het opwekken van een potentiaalverschil (=spanning) in bepaalde stoffen als deze worden samengedrukt. Enkele kristallen, met name kwarts in het bijzonder, bevatten deze eigenschap. Zodra er druk wordt uitgeoefend op het oppervlak van een kristal wordt er elektrische spanning gegenereerd. Andersom, als er spanning over het kristal wordt gezet, dan zal het mechanisch gaan vervormen. Op basis van een surface acoustic wave quartz resonator oftewel de SAW wordt dit effect behaald. Deze resonator kan zeer nauwkeurig frequentie(verschillen) meten, waardoor dit apparaatje heel erg geschikt is voor sensoren met een hoge gevoeligheid. Meestal zit er op de resonator een dun laagje film (die gevoelig is voor de te meten parameter) die de sensor respons versterkt. Een chemische, mechanische of elektrische verstoring op de film veroorzaken de zogeheten resonance frequency shifts. In figuur 11.7 kan je zien dat het kwartskristal verbonden is in een elektrische schakeling, de pijl die vanuit de output terugkoppelt naar de input geeft de feedback weer. De
11.5 Samenvatting en conclusies
109
bolletjes kunnen bijvoorbeeld gasmoleculen voorstellen die ervoor zorgen dat het kristal vervormd wordt. In onze situatie zou je de bolletjes moeten vervangen door een vingerafdruk. Daadwerkelijke integratie van deze sensoren in een prototype van de smartgun moeten plaatsvinden in een volgende fase van het NJIT project.
11.5
Samenvatting en conclusies
De ontwikkeling van de smartgun staat nog steeds in haar kinderschoenen. Sandia en het NJIT zijn al zeer ver gevorderd wat betreft hun onderzoek. Hoewel er relatief weinig bekend is bij het grote publiek is het wel een onderwerp dat in de nabije toekomst regelmatig op het nieuws zal komen. We hebben een stukje techniek behandeld in de secties over Patroonherkenning en het experiment met de Vingerafdrukplaatsing. Enkele cryptografische termen hebben we toegepast op het smartgun systeem, hoewel de biometrie niet puur cryptografisch is. Ook heeft Oscar van der Veen zijn mening verteld in kader 11.2. Ik denk zelf dat de nadelen zwaarder wegen dan de voordelen, omdat wapens sowieso schade aanrichten. Aan de andere kant geldt: Guns don’t kill people, people kill people.
110
SmartGun
Hoofdstuk 12 Informatiebeveiliging binnen Siemens Door Stefan Holdermans
Binnen een miljoenenbedrijf als Siemens is het noodzakelijk om op een veilige manier met grote hoeveelheden informatie om te kunnen gaan. De informatiebeveliging wordt voor het gehele concern op een uniforme manier in goede banen geleid. De kern van dit systeem is een public-keyinfratructuur die dagelijks bijna een half miljoen werknemers van dienst is.
12.1
Inleiding
In dit hoofstuk staan we stil bij public-keycryptografie en hoe zij grote organisaties in staat stelt om op een veilige manier met hun informatiestromen om te gaan. Siemens (http://www.siemens.com) is een bedrijf met wereldwijd meer dan vierhonderdduizend werknemers en vestigingen verspreid over Azi¨e, Noord- en Zuid-Amerika en Europa. Dit grote aantal werknemers en de wereldwijde verspreiding van de vestigingen maakt dat binnen Siemens’ organisatie vierentwintig uur per dag enorme hoeveelheden informatie rondgaan. Een deel van deze informatie is aan te merken als ‘gevoelig’: informatie over strategische beslissingen, over nieuwe technologie enzovoort. In 1997 besloot Siemens om een public-keyinfrastructuur aan te leggen die door de gehele organisatie heen gebruikt zou gaan worden om deze gevoelige informatie te beveiligen. Een public-keyinfrastructuur is een systeem dat in essentie het gebruik van een public-keycryptosysteem faciliteert. Een public-keycryptosysteem is een cryptografisch systeem waarbij aan elke gebruiker twee sleutels worden toegekend: ´e´en openbare sleutel die voor alle andere gebruikers van het systeem toegankelijk is, de zogenaamde publieke sleutel, en ´e´en geheime sluetel die alleen bij de gebruiker zelf bekend is. Verder schrijft een dergelijk systeem een 111
112
Informatiebeveiliging binnen Siemens
encryptie- en een decryptiefunctie voor. De encryptiefunctie neemt de publieke sleutel van een bepaalde gebruiker als parameter en zet een bepaalde klare tekst om in een cijfertekst. De cijfertekst kan alleen worden teruggerekend naar de originele klare tekst door de decryptiefunctie er met de geheime sleutel van dezelfde gebruiker op los te laten. Een public-keyinfrastructuur draagt er zorg voor dat gebruikers sleutelparen krijgen toegewezen en dat de publieke sleutels van alle gebruikers voor alle gebruikers beschikbaar zijn. Voor de schaal waarop een en ander bij Siemens ge¨ımplementeerd moet worden om het systeem ook daadwerkeklijk voor het hele concern beschikbaar te maken heeft dit nogal wat voeten in de aarde. Inmiddels heeft Siemens de beschikking over een public-keyinfrastructuur die binnen het gehele bedrijf is doorgevoerd. Deze infrastructuur wordt dagelijks gebruikt bij het beveiligen van gevoelige informatie. We zullen in dit hoofdstuk bekijken hoe een public-keyinfrastructuur het beveiligen van informatie faciliteert. Daarna zullen we stilstaan bij de specifieke implementatie van de public-keyinfrastructuur bij Siemens.
12.2
Gebruik van public-keycryptografie
Zoals gezegd, draagt de public-keyinfrastructuur er zorg voor dat medewerkers van Siemens kunnen beschikken over de publieke sleutels van alle gebruikers van het systeem. Het kunnen beschikken over deze publieke sleutels stelt hen in staat om te controleren dat bepaalde berekeningen zijn uitgevoerd met het complement van een bepaalde publieke sleutel: de geheime sleutel. De toepassingen van dit algemene mechanisme zijn te rangschikken in vier groepen: verhulling, authenticiteit, integriteit en onloochenbaarheid. Vaak bezit een toepassing combinaties van de eigenschappen van deze toepassingsgroepen. 12.2.1
Verhulling
Verhulling is noodzakelijk wanneer bepaalde informatie niet voor iedereen beschikbaar mag zijn. Denk bijvoorbeeld aan een vertrouwelijk e-mailbericht dat tussen twee medewerkers verzonden wordt. Of aan een concept van een contract dat nog even geheim moet blijven. Public-keycryptografie maakt mogelijk dat zo’n mailtje versleuteld verzonden wordt en dat het contract versleuteld wordt opgeslagen. Dit werkt als volgt. De auteur van het bericht of document vraagt in het systeem de de publieke sleutel van de ontvanger op. In het geval van document dat opgeslagen wordt verstaan we onder de ontvanger de degene die gemachtigd is het document in te zien. Vervolgens laat de auteur de encryptiefunctie van het cryptografische systeem dat gebruikt wordt los op de tekst van het bericht of document. Als parameter van de functie wordt de zojuist opgezochte publieke sleutel van de ontvanger meegegeven. Het resultaat van deze functieaanroep is een cijfertekst die alleen weer naar de juiste klare tekst is om te zetten met behulp van de geheime sleutel van de ontvanger. De inverse bewerking
12.2 Gebruik van public-keycryptografie
113
van versleutelen met de geheime sleutel van een gebruiker is immer ontsleutelen met de geheime sleutel van diezelfde gebruiker. Omdat die geheime sleutel – als het goed is – alleen bekend is bij deze gebruiker, in dit geval degene die als ontvanger van het bericht of document is aangemerkt, is alleen hij of zij in staat om de cijfertekst weer om te zetten in klare tekst. Met andere woorden: alleen de ontvanger is nu nog in staat om de oorspronkelijke tekst te lezen. Door gebruik te maken van de faciliteit die het systeem biedt, het aanleveren van de publieke sleutel van een bepaalde gebruiker, en de encryptiefunctie van het cryptosysteem, is men dus in staat om vertrouwelijke informatie af te schermen voor iedereen behalve de degene voor wie de informatie bestemd is. Beschouw nu nogmaals het voorbeeld van het concept-contract dat geheim moet blijven, maar ondertussen ook opgeslagen dient te worden. Vaak is het zo dat de auteur van het document dan zelf weer degene is die het bestand weer moet kunnen openen en bewerken. Maar tussen opslaan en openen moet de inhoud van het document wel degelijk versleuteld zijn, dat is de tekst mag voor niemand beschikbaar zijn, behalve voor de auteur. Anders gezegd: de verzender van het document is tegelijkertijd de ontvanger. Gelukkig vormt deze dubbelrol geen enkel probleem in het hierboven beschreven systeem – sterker nog: het kan onveranderd worden toegepast. De auteur vraagt, net als anders, de publieke sleutel van de ontvanger op. Omdat de auteur zelf de ontvanger is, krijgt levert hem dit dus zijn eigen publieke sleutel op. Met deze sleutel laat hij de encryptiesleutel op het document los. Ook nu is het versleutelde document alleen nog te ontsleutelen door de ontvanger van het bericht – alleen nog door de auteur zelf dus en dat is precies wat we wilden bereiken. Een ander punt van aandacht is de situatie waarin een bericht of document beschikbaar moet zijn voor meerdere ontvangers. Het kan bijvoorbeeld zijn dat een emailbericht weliswaar vertrouwelijk is, maar tegelijktijd verzonden moet worden naar meer dan ´e´en ontvanger, bijvoorbeeld alle medewerkers op een bepaalde afdeling of alle regiomanagers in een bepaald gebied. In dat geval is het dus nodig om voor elke ontvanger een kopie van het oorspronkelijke bericht te versleutelen. De ontvangers krijgen dan allen een bericht toegezonden dat versleuteld is met hun eigen publieke sleutel. Wanneer zij dan tenslotte hun geheime sleutel gebruiken om hun exemplaar te ontsleutelen, beschikken alle ontvangers over oorspronkelijke tekst. Er zijn echter situaties waarin deze oplossing niet erg praktisch is. Denk bijvoorbeeld aan een document dat voor meerdere personen toegankelijk moet zijn. Al deze personen moeten in staat gesteld worden om het document te bewerken. Als zij allen een eigen kopie van het oorspronkelijke document krijgen, dan treden er al snel synchronisatieproblemen op wanneer twee medewerkers wijzigingen aan brengen in het document. (Het tergelijkertijd kunnen werken aan hetzelfde document door verschillende medewerkers is sowieso een lastig probleem, dat dikwijls het gebruik van gespecialiseerde softwarepakketten noodzakelijk maakt.) In plaats van dat elke gebruiker een eigen kopie van het document krijgt, zou men hier dus graag willen dat meerdere personen een versleuteld document kunnen delen. In dit soort situaties volstaat vaak een eenvoudige oplossing. De betreffende groep gebruikers krijgt als groep een eigen account in de systeem – dat is, de groep wordt als extra gebruiker in het systeem opgenomen. De geheime sleutel van deze extra, kunstmatige gebruiker wordt onder alle leden van de groep verspreid. Het document wordt dan versleuteld met de publieke sleutel van de groep en alle leden
114
Informatiebeveiliging binnen Siemens
van de groep hebben vervolgens toegang tot het oorspronkelijke document; zij kennen immers allen de geheime sleutel van de groep. Uiteraard behouden alle leden van de groep, naast het sleutelpaar van de groep, ook hun eigen, individuele, sleutelparen. Het blijft dus ook mogelijk om berichten of documenten naar afzonderlijke groepsleden te sturen. 12.2.2
Authenticiteit
Naast de mogelijkheid om bepaalde informatie geheim te houden, is het soms ook van groot belang dat er zekerheid verkregen kan worden over de afzender van een bericht. Als een inkoopafdeling bijvoorbeeld opdracht krijgt om een grote order bij een leverancier te plaatsen, dan zal men er zeker van willen zijn dat die opdracht ook daadwerkelijk afkomstig is van iemand die daartoe bevoegd is. Kortom, het moet mogelijk zijn om van een bericht onomstotelijk vast te stellen wie de afzender is. Voor dit doel biedt public-keycryptografie het concept van de digitale handtekening. Net als een gewone, niet-digitale, handtekening wordt een digitale signatuur door de verzender aangewend om te ontvanger te overtuigen van de authenticiteit van een document; dat is, dat het document daadwerkelijk afkomstig is van de verzender in kwestie. De digitale handtekening is dus tevens een instrument voor de ontvanger om de herkomst van een bericht te achterhalen. Het spreekt voor zich dat, om dit concept te doen slagen, het voor elke gebruiker anders dan de verzender onmogelijk moet zijn om een bericht of document te tekenen zoals de verzender dat kan. Bij het digitaal tekenen van een document wordt, in de wereld van de publickeycryptografie, de decryptiefunctie van het cryptosysteem gebruikt. Als parameter geeft de verzender zijn eigen geheime sleutel mee. Alleen de verzender kent deze sleutel: deze bewerking kan dus alleen door de verzender worden uitgevoerd. Door de decryptiefunctie op het document los te laten wordt het document onleesbaar. De enige manier om de informatie weer terug te zetten naar haar oorspronkelijke representatie is het uitvoeren van de inverse handeling van ontsleutelen met de geheime sleutel van de verzender: versleutelen met de publieke sleutel van de verzender. Dat is voor de ontvanger geen enkel probleem, want de publieke sleutel van de verzender is zonder meer op te vragen in het systeem. De verzender stuurt dus, naast het te verzenden bericht, ook het resultaat van een run van de decryptiefunctie met zijn geheime sleutel naar de ontvanger. De ontvanger laat vervolgens de encryptiefunctie met de publieke sleutel van de vermeende verzender als parameter los op het bewerkte bericht. Hij of zij controleert nu of de verkregen tekst overeenkomt met de tekst van het verzonden bericht. Als dat het geval is, dan kan hij of zij er zeker van zijn dat de ontsleutelde tekst afkomstig is van de vermeende afzender. Alleen die is immers in staat om een kopie van het bericht zodanig te bewerken, dat versleutelen met zijn of haar publieke sleutel de tekst van het oorspronkelijke bericht oplevert: hiervoor is immers kennis van de geheime sleutel van de verzender nodig en die is alleen bekend bij de verzender zelf. Als de verkregen tekst niet overeenkomt met het daadwerkelijke bericht, dan is de kopie niet bewerkt met de geheime sleutel van de vermeende afzender en is er dus geen bewijs geleverd van de authenticiteit van het document. Dit kan voor een inkoper bijvoorbeeld reden zijn om een order nog maar
12.2 Gebruik van public-keycryptografie
115
even niet te plaatsen en nog eens contact op te nemen met de vermeende opdrachtgever. Een digitale handtekening biedt de verzender en de ontvanger van een bericht dus een prima instrument in handen om de authenticiteit van een document te waarborgen. 12.2.3
Integriteit
Er zijn scenario’s denkbaar waarin het niet voldoende is om alleen zekerheid te hebben over de herkomst van bepaalde informatie. Beschouw bijvoorbeeld nog eens het voorbeeld van een medewerker op een inkoopafdeling die opdrachten van bevoegd personeel verwerkt en orders plaatst bij leveranciers. Zoals we gezien hebben, stelt de publickeyinfrastructuur hem of haar in staat om te controleren of opdrachten uitgegeven zijn door bevoegd personeel. Echter, bij het verwerken van opdrachten wil men er niet alleen zeker van zijn dat de opdracht afkomstig is van de juiste persoon, maar men wil ook zekerheid over de juistheid van de opdracht zelf. Stel je immers eens voor dat een manager een opdracht plaatst voor de bestelling van 25 laptops. Deze opdracht wordt onderweg onderschept en veranderd: in plaats van 25 laptops, vermeldt zij nu 250 laptops – of 25 printers. Hoe komt de medewerker op de inkoopafdeling er nu achter dat er de opdracht geknoeid is? Of anders: hoe kan de medewerker zich ervan verzekeren dat er onderwerg niet met een binnengekomen opdracht geknoeid is? De oplossing is eenvoudig en ligt besloten in de digitale handtekening onder de opdracht. Deze bestond immers uit een afbeelding van een exacte kopie van de oorspronkelijke opdracht. Welnu, als de inkoopmedewerker de handtekening controleert, dan gebruikt hij de publieke sleutel van de verzender om de oorspronkelijke opdracht in handen te krijgen. Vervolgens controleert hij of de binnengekomen opdracht gelijk is aan het nu verkregen orgineel. Als er met de opdracht geknoeid is, zal blijken dat de opdrachten niet aan elkaar gelijk zijn: reden voor de inkoopmedewerker om alarm te slaan, want dit betekent dat ofwel het bericht niet afkomstig is van diegene waarvan geclaimd wordt dat hij of zij de opdrachtgever is, ofwel dat de opdracht onderweg onderschept is en gemodificeerd. Zo waarborgt een digitale handtekening dus niet alleen de authenticiteit van informatie, maar ook de integriteit ervan. We zullen nu zien dat een digitale handtekening informatie ook onloochenbaar maakt. 12.2.4
Onloochenbaarheid
Zodra een medewerker op de inkoopafdeling zich er van verzekerd heeft dat hij de juiste opdracht (integriteit) van de juiste opdrachtgever (authenticiteit) heeft gekregen, kan hij of zij op basis van deze opdracht een order plaatsen bij een leverancier. Wat zo’n medewerker nu typisisch wil is een methode om aan te tonen dat dit een juiste actie is. Dat is, hij of zij wil voorkomen dat er later beweerd kan worden dat er nooit opdracht is gegeven om 25 laptops te bestellen. Of dat er niet 25 laptops, maar 25 printers besteld hadden moeten worden. Welnu, die methode is er en ze bestaat enkel en alleen uit het overleggen van de ondertekende opdracht. Doordat een opdrachtgever een opdracht namelijk ondertekent, commiteert hij of zij zich daarmee tegelijkertijd aan die opdracht. De opdrachtgever zal later niet kunnen
116
Informatiebeveiliging binnen Siemens
beweren de opdracht nooit uitgegeven te hebben. Door de opdracht te tekenen heeft hij of zij deze immers bewerkt met zijn of haar geheime sleutel en niemand anders is daartoe in staat. De inkoopmedewerker kan dus aantonen dat de opdrachtgever het bericht ondertekend heeft, want alleen met de publieke sleutel van de opdrachtgever kan er een tekst verkregen worden die overeenkomt de verzonden opdracht. Doordat de digitale handtekening de integriteit van de geplaatste opdracht waarborgt, kan de opdrachtgever ook niet aanvoeren dat er onderweg met de opdracht geknoeid is: dan zou de bewerkte tekst immers niet overeenkomen met de opdracht. Zo kan garandeert een digitale handtekening, naast de authenticiteit en integriteit, ook de onloochenbaarheid van ondertekende informatie. 12.2.5
Toepasbaarheid
We hebben gezien dat het versleutelen van berichten en documenten gebruikers in staat stelt om de inhoud ervan te verhullen. Verder bieden digitale handtekeningen garanties omtrent de authenticiteit, integriteit en onloochenbaarheid van informatie. In de praktijk kunnen zich situaties voordoen waarin een combinatie van verhullen en ondertekenen nodig is. Denk bijvoorbeeld aan een e-mailbericht dat alleen door de ontvanger gelezen mag worden, maar waarvan de ontvanger zich tegelijkertijd wil verzekeren dat het daadwerkelijk afkomstig is van degene die beweert de afzender van het bericht zijn. In dit soort gevallen kan men eenvoudigweg overgaan tot het toepassen van `en verhulling, `en ondertekening. De afzender versleutelt het bericht dan eerst met de publieke sleutel van de ontvanger: nu kan het bericht alleen nog gelezen worden door de ontvanger. Vervolgens ondertekent de afzender het bericht met zijn eigen geheime sleutel: de ontvanger kan zich nu verzekeren van de herkomst van het bericht. Zo kunnen verhulling en ondertekening dus naast elkaar worden ingezet om de gewenste mate van beveiliging te hanteren. Verder dient opgemerkt te worden dat de geboden beveiliging optioneel is. Dat wil zeggen dat de public-keyinfrastructuur het weliswaar mogelijk maakt om bepaalde informatie te beveilgen, maar dat beveiliging niet noodzakelijk is voor alle informatie die binnen het bedrijf rondgaat. Een mailtje naar alle medewerkers van een afdeling waarin een maandelijkse borrel wordt aangekondigd hoeft bijvoorbeeld niet verhuld of ondertekend te worden. Het gebruik van de public-keyinfrastructuur komt dus pas om de hoek kijken als de gevoeligheid van bepaalde informatie maakt dat er een bepaalde beveiliging vereist is. Als dat het geval is, dan faciliteert de public-keyinfrastructuur de diverse toepassingen die gebruik maken van het onderliggende cryptosysteem en kunnen, waar gewenst, verhulling, authenticiteit, integriteit en onloochenbaarheid van de informatie gegarandeerd worden.
12.3 Overzicht van Siemens’ public-keyinfrastructuur
12.3
117
Overzicht van Siemens’ public-keyinfrastructuur
De vorige sectie liet zien dat, naast de toepassing van de encryptie- en decryptiefuncties van het onderliggende cryptosysteem, de werking van de diverse informatiebeveiligingsmechanismen binnen een bedrijf als Siemens vooral afhankelijk zijn van de beschikbaarheid van de publieke sleutels van alle gebruikers. Verder is het van belang dat elke gebruiker kan beschikken over zijn of haar eigen geheime sleutel en dat buiten hem of haar niemand kan beschikken over die geheime sleutel. De voorzieningen die binnen het bedrijf getroffen moeten worden om de beveiliging van informatie met public-keycryptografie mogelijk te maken houden dus vooral verband met het publiceren van publieke-sleutelinformatie en het veilig distribueren van geheimesleutelinformatie. In deze sectie zullen we bekijken welke de diverse componenten we kunnen onderscheiden die het gebruik van public-keycryptografie binnen Siemens mogelijk maken. We zullen achtereenvolgens kijken naar de Siemens Corporate Directory, de Personal Security Environment, het Trust Center, de Local Registration Authorities en de beveiligde applicaties. 12.3.1
Siemens Corporate Directory
De Siemens Corporate Directory (scd) is de centrale opslag van – onder andere – telefoonnummers en adresgegevens van alle medewerkers van Siemens. De Corporate Directory in vanuit alle vestigingen van Siemens bereikbaar en bevat real-time informatie over medewerkers. Medewerkers van Siemens hebben, behalve vanaf hun werkplek, ook toegang tot de Corporate Directory via beveiligde internetverbindingen. Dat wil zeggen dat bijvoorbeeld ook thuiswerkers de beschikking hebben over de informatie in de scd. Verkopers en consultants, die doorgaans vooral on the road werkzaam zijn, kunnen de sdc met hun mobiele telefoons benaderen via wap. Doordat de Siemens Corporate Directory zo’n hoge mate van beschikbaarheid biedt is de sdc uitermate geschikt voor de opslag van de publieke sleutels van medewerkers. Even makkelijk als telefoonnummers en e-mailadressen zijn op te zoeken in de sdc, zijn ook de publieke sleutels van medewerkers op te vragen. In het bijzonder geldt dat applicaties die zorg dragen voor de beveiliging van bepaalde informatie makkelijk automatisch toegang hebben tot de sleutelgegevens in de Directory. 12.3.2
Personal Security Environment
Elke gebruiker van de public-keyinfrastructuur van Siemens heeft de beschikking over een Personal Security Environment (pse). Een pse is in essentie een stukje informatie dat is opgebouwd bestaat uit 1) de publieke sleutel van de gebruiker, 2) de geheime sleutel van de gebruiker en 3) een certificaat dat verklaart dat dit sleutelpaar uitgegeven is door de erkende certification authority – dat is, het Trust Center.
118
Informatiebeveiliging binnen Siemens
Strikt genomen is het niet noodzakelijk dat de Personal Security Environment, naast de geheime sleutel van de gebruiker, ook de publieke sleutel bevat. Immers, de publieke sleutel kan zonder meer opgevraagd worden in de Siemens Corporate Directory. In sommige gevallen echter kan de aanwezigheid van de publieke sleutel in de pse van pas komen. Het kan bijvoorbeeld, om uiteenlopende redenen, zo zijn, dat het sleutelpaar van een gebruiker vervangen moet worden (bijvoorbeeld omdat de geheime sleutel niet langer geheim is). In dat geval krijgt de gebruiker een nieuwe Personal Security Environment toegewezen, met een nieuw sleutelpaar. Als de gebruiker zijn of haar administratie niet op orde heeft en zich niet heeft ontdaan van zijn of haar oude pse, kan het zijn dat de gebruiker op een bepaald moment twee pse’s heeft, waarvan er slechts ´e´en de juiste is. Door de publieke sleutels in de Personal Security Environment te vergelijken met de sleutel in de Siemens Corporate Directory kan snel bepaald worden welke pse de juiste is. Nogmaals, om dit te kunnen doen is het niet noodzakelijk dat de publieke sleutel aanwezig is in de Personal Security Environment: door berekeningen uit te voeren met de geheime sleutels en deze te controleren met de publieke sleutel in de Corporate Directory kan ook ook bepaald worden welke pse de juiste is. Een ander scenario waarin het handig is dat de publieke sleutel onderdeel uitmaakt van de Personal Security Environment doet zich voor wanneer een gebruiker informatie wil verhullen die hij of zij vervolgens zelf weer wil kunnen onthullen. In subsectie 12.2.1 hebben we gezien dat de gebruiker de informatie dan typisch versleutelt met zijn of haar eigen publieke sleutel. Omdat deze sleutel aanwezig is in de pse is de gebruiker in staat om dit te doen zonder gebruik te hoeven maken van de service van de Siemens Corporate Directory. Op deze manier is de gebruiker in staat om zelfs op locaties waar een beveiligde internetverbinding niet mogelijk is informatie te verhuld op te slaan. De Personal Security Environment wordt doorgaans op een speciale chipkaart geplaatst. In gevallen waarin dat niet mogelijk is, kunnen het sleutelpaar en het certificaat ook op een ander medium opgeslagen worden, zoals bijvoorbeeld een diskette. De noodzaak om de Personal Security Environment – en dus effectief de geheime sleutel – op te slaan is meteen het zwakke punt van het systeem. Als de chipkaart (of diskette) met de pse erop kwijtraakt of gesloten wordt, is de het niet kunnen beschikken over de geheime sleutel door anderen dan de gebruiker niet langer gegarandeerd. En aangezien de werking van het systeem nu juist geheel gebaseerd is op het deze garantie, wordt de beveiligng op basis van public-keycryptografie op deze manier teniet gedaan. Zodra een gebruiker merkt zijn of haar Public Security Environment verloren te hebben, moet er dus meteen actie ondernomen worden. Het sleutelpaar moet ingetrokken worden en de gebruiker moet een een nieuwe pse toegewezen krijgen. Ondertussen kan er echter al een hoop schade aangericht zijn. Het gegeven dat het bezit van een Personal Security Environment van een bepaalde gebruiker voldoende is om zich als die gebruiker voor te doen is zorgelijk. Om die reden is het dan ook dat Siemens recentelijk activiteiten heeft ontplooit die betrekking hebben op het koppelen van biometrische kenmerken aan de Personal Security Environment. Een voorbeeld hiervan zijn smartcards die alleen werken in combinatie met de vingerafdruk van de eigenaar. In de toekomst zullen biometrische kenmerken wellicht onderdeel worden van de Personal Security Environment zelf.
12.3 Overzicht van Siemens’ public-keyinfrastructuur
12.3.3
119
Trust Center
Het Trust Center is de spil van de public-keyinfrastructuur van Siemens. In het Trust Center worden de sleutelparen van gebruikers gegenereerd. Daarnaast heeft het Trust Center een belangrijke rol in de opslag van sleutelgegevens. Het Trust Center is de enige certification authority in de public-keyinfrastructuur van Siemens. Dat wil zeggen dat alleen het Trust Center gemachtigd is om sleutelparen uit te geven. Als het Trust Center het verzoek om een sleutelpaar voor een bepaalde gebruiker aan te maken heeft ingewilligd, dan wordt een Personal Security Environment aangemaakt op basis van de gegenereerde sleutels. Naast de sleutels wordt er een certificaat in de pse geplaatst dat verklaart dat het het Trust Center was dat het sleutelpaar heeft uitgegeven. De echtheid van het certificaat wordt aangetoond met een speciaal sleutelpaar. Alleen het Trust Center beschikt over de geheime sleutel van dit paar, terwijl de publieke sleutel door de gehele organisatie bekend moet zijn. Het Trust Center gebruikt de geheime sleutel om het certificaat te ondertekenen en aan de hand van de publieke sleutel kunnen applicaties vervolgens bepalen of het certificaat daadwerkelijk door het Trust Center is ondertekend. Wanneer het Trust Center een Personal Security Environment aanmaakt, dan beveiligt het die met een pin-code. Deze code wordt vervolgens naar de gebruiker gestuurd. Deze kan zijn of haar pse pas gebruiken wanneer hij of zij die activeert met de pin-code. Het Trust Center is ervoor verantwoordelijk dat de publieke sleutel van een nieuw aangemaakt sleutelpaar wordt opgenomen in de Siemens Corporate Directory. Daarnaast beheert het Trust Center een archief waarin alle gegenereerde sleutelparen worden opgeslagen. Hoewel het opslaan van sleutelparen, dus inclusief geheime sleutel, een beveiligingsrisico met zich meebrengt, is het min of meer noodzakelijk voor een praktisch gebruik van de public-keyinfrastructuur. Stel bijvoorbeeld eens voor wat er gebeurt als een gebruiker zijn of haar chipkaart met pse kwijtraakt. Omdat de geheime sleutel nu niet meer gegarandeerd geheim is, moet het sleutelpaar van de gebruiker ingetrokken worden. De gebruiker krijgt een nieuwe Personal Security Environment en de oude pse die nu mogelijk in verkeerde handen is gevallen is onbruikbaar. Maar juist die onbruikbaarheid van het oude sleutelpaar kan nu grote problemen opleveren. De gebruiker heeft nu bijvoorbeeld geen toegang meer tot documenten die hij of zij verhuld heeft opgeslagen en hij of zij kan de beveiligde berichten die hem of haar zijn toegezonden voordat het oude sleutelpaar werd ingetrokken niet meer lezen. Het spreekt voor zich dat het onacceptabel is dat al deze informatie voorgoed verloren gaat: het is immers belangrijke situatie, anders was zij niet beveiligd. In dit soort gevallen kan de hulp van het Trust Center worden ingeroepen. Het Trust Center kan het oude sleutelpaar uit het archief vrijgeven en de gebruikers zo in staat stellen om de ‘verloren’ informatie weer beschikbaar te maken en eventueel te versleutelen met de nieuwe sleutelinformatie. Omdat hiermee dus effectief de beveiliging van bepaalde informatie wordt opgeheven, is het ophalen van sleutels uit het archief bij Siemens aan zeer stricte regels gebonden.
120
Informatiebeveiliging binnen Siemens
12.3.4
Local Registration Authorities
Siemens’ Trust Center biedt een centrale service voor het gehele bedrijf. De verbinding tussen het Trust Center en individuele gebruikers van de public-keyinfrastructuur wordt gelegd door decentrale eenheden, Local Registration Authorities (lra’s)genaamd. Local Registration Authorities spelen een belangrijke rol bij het aanmaken van een Personal Security Environments voor gebruikers. Local Registration Authorities worden ingesteld voor bepaalde delen van de organisatie. Zo kan er bijvoorbeeld een lra zijn voor een bepaalde afdeling, maar ook voor een bepaalde vestiging van het bedrijf. De belangrijkste eigenschap voor een Local Registration Authority is dat ze in staat is om individuele gebruikers te identificeren. Zodra een gebruiker een Personal Security Environment nodig heeft, moet de Local Registration Authority van die gebruiker vaststellen dat de gebruiker is wie hij zegt te zijn en, bovendien, dat de gebruiker in kwestie inderdaad in aanmerking komt voor een pse. Hoe de lra hier te werk gaat is niet vastgelegd – dat is, het staat ene Local Registration Authority vrij om hier een eigen protocol te implementeren. Op kleine afdelingen bijvoorbeeld, kan een aanvraag voor een pse mondeling geschieden en kan de manager met zijn eigen ogen de identiteit van de aanvrager vaststellen en bepalen of deze persoon inderdaad in aanmerking komt voor een sleutelpaar. Op grotere afdelingen gaat het er wellicht formeler aan toe. Dat afdelingen of vestigingen een eigen infrastructuur mogen aanleggen om aanvragen te verwerken, maakt dat implementatie van een Siemens-brede public-keyinfrastructuur makkelijker verloopt dan wanneer er van ‘bovenaf’ een verwerkingsmodel wordt opgelegd. Het is immers moeilijk om een algemeen model passend te maken voor alle onderdelen in de organisatie. De Local Registration Authorities kunnen nu een protocol kiezen dat op maat is voor hun specifieke deel van de organisatie. Wanneer een Local Registration Authority een aanvraag voor een nieuwe Personal Security Environment heeft verwerkt en heeft vastgesteld dat de gebruiker in kwestie daadwerkelijk in aanmerking komt voor een sleutelpaar, dan wordt de aanvraag, samen met de gegevens van de gebruiker, doorgestuurd naar het Trust Center. Van het Trust Center wordt vervolgens de nieuwe Personal Security Environment ontvangen. Zodra de gebruiker deze heeft geactiveerd met de hem of haar toegezonden pin-code, zorgt de lra ervoor dat de pse op een chipkaart of ander medium wordt geplaatst. Het is van groot belang dat met name het verzenden van een pse van het Trust Center naar een Local Registration Authority over een beveiligde verbinding geschiedt. 12.3.5
Applicaties
Het Trust Center en de Local Registration Authorities spelen een belangrijke rol bij de installatie van gebruikers van de public-keyinfrastructuur – dat is bij het aanvragen, aanmaken en opslaan van sleutelgegevens. Ook als er iets misgaat (een verloren chipkaart, een geheime sleutel die niet langer geheim is), dan komen het Trust Center en de lra’s in actie: om sleutelparen te vervangen en eventueel om de beveiliging van documenten tijdelijk op te heffen met behulp van gearchiveerde sleutels. In het dagelijkse gebruik van de infrastructuur echter spelen zij echter nauwelijks een rol; dan draait het bijna uitsluitend om de publieke sleutels die opgevraagd kunnen worden in
12.3 Overzicht van Siemens’ public-keyinfrastructuur
121
de Siemens Corporate Directory, de geheime-sleutelinformatie in de Personal Security Environments van de individuele gebruikers en de applicaties die, gebruikmakend van de sleutels, informatie daadwerkelijk beveiligen. Van de beveiligde toepassingen is de mogelijkheid om e-mailberichten te kunnen versleutelen en ondertekenen ´e´en van de oudste. Een door Siemens ontwikkeld addinprogramma voor Microsoft Outlook, de mailapplicatie, stelt gebruikers in staat om hun e-mail te beveiligen. Zoals bij veel andere toepassingen is het gebruik van deze faciliteiten volkomen transparant: gebruikers wordt niet gevraagd om hun geheime sleutel in te toetsen of iets dergelijks. In plaats daarvan kan de gebruiker met een simpele druk op de knop aangeven dat hij een bericht wil ondertekenen of verhullen; de applicatie leest dan vervolgens de chipkaart of diskette met de pse erop uit en voert de gewenste actie uit. (Dit legt een mogelijke zwakke plek van het systeem bloot: gecompromiteerde software is in staat om de geheime sleutel uit een Personal Security Environment te lezen. Dit maakt dat het van groot belang is dat het beheer van applicaties en werkstations zorgvuldig en veilig geschiedt. Overigens kan voor de beveiliging van dit soort systemen de public-keyinfrastructuur zelf worden ingezet.) Bovenstaande impliceert overigens dat de encryptie- en decryptiefuncties van het gebruikte cryptosysteen bekend en ‘aanwezig’ zijn in de applicaties. Dit is inderdaad het geval. Dit kan geen kwaad: de kracht van een cryptosysteem berust immers niet op het geheimhouden van de gebruikte algoritmen. Kerckhoffs’ principe veronderstelt zelfs dat deze bij eventuele aanvallers bekend zijn. Een andere beveiligingstoepassing die al snel na de invoering van de public-keyinfrastructuur bij Siemens werd ingezet is de zogenaamde beveiligde netwerktoegang. Bij het inloggen op Siemens intranet wordt een gebruiker op basis van zijn of haar Personal Security Environment ge¨ıdentificeerd. Zo wordt onomstotelijk vastgesteld dat de gebruiker is wie hij of zij zegt te zijn. Vervolgens worden de toegangsrechten van de gebruiker op het intranet bepaald; niet alle gebruikers mogen op alle onderdelen van het intranet komen. Sommige sites zijn alleen toegankelijk voor medewerkers van een bepaalde afdeling of voor managers en directieleden. Een meer recente toepassing is het limiteren van fysieke toegang tot bepaalde delen van gebouwen met gebruikmaking van de public-keyinfrastructuur. Medewerkers moeten zich met een chipkaart met daarop een pse identificeren bij speciale terminals om toegang te krijgen tot bijvoorbeeld bepaalde laboratoria. Ook hier geldt weer, dat niet iedereen toegang heeft tot elke ruimte. Sinds de invoering van de Siemens-brede public-keyinfrastructuur is het aantal toepassingen gestaag groeiende. Beveiliging wordt telkens zoveel mogelijk ge¨ıntegreerd met bestaande toepassingen en er wordt naar gestreefd om de beveiliging zo transparant mogelijk te maken. Het algemene gebruik van chipkaarten speelt daarbij een belangrijke rol.
122
Informatiebeveiliging binnen Siemens
12.4
Conclusie
Vijf jaar nadat de eerste aanzet tot het opzetten van een public-keyinfrastructuur voor het hele concern is gegeven, is het systeem voor werknemers van Siemens een natuurlijk onderdeel van hun werkomgeving. Doordat beveiliging in tal van applicaties is ge¨ıntegreerd, zijn medewerkers zich zeer bewust van beveiligingsaspecten. Siemens zit echter niet stil op het gebied van zijn interne beveiliging: er wordt aan nieuwe toepassingen aan er is veel aandacht voor de verbetering van zwakke plekken in het huidige systeem. Het integreren van biometrische kenmerken van gebruikers, zoals vingerafdrukken, is een voorbeeld van zo’n verbetering. Siemens heeft een divisie Business Security die onder andere actief is op het gebied van aanlevering van complete public-keyinfrastructuren. Veel van de diensten en producten die aangeboden worden, worden ook binnen het bedrijf zelf voor intern gebruik ingezet.
Hoofdstuk 13 ITicket/Ticket Solution Door Gerd-Jan van Gils
ITicket is een systeem waarmee je thuis via internet kaartjes voor theater en pretpark kunt selecteren, betalen, downloaden en afdrukken. In dit hoofdstuk zal eerst worden ingegaan hoe het systeem nu wordt gebruikt. Vervolgens zal op de beveiliging worden ingegaan. Als laatste punt zal een blik in de toekomst worden geworpen om te kijken of er perspectief is voor dergelijke toepassingen.
13.1
ITicket/Ticket Solution
Het sneeuwt en het is ijskoud buiten. Toch wil je graag naar dat schitterende concert van Oscar en de Heikrekels. Je kunt proberen telefonisch te reserveren maar dan heb je dat felbegeerde ticket nog niet in handen. En het geeft extra kosten die je niet hebt als je niet de reserveringskosten en niet de telefoonkosten hoeft te betalen (we hebben immers allemaal een breedband internet abonnement). Een methode om dit in de toekomst op te lossen is Iticket. • Je gaat via het internet naar een webpagina waar je het schitterende concert van Oscar en zijn band selecteert. • Vervolgens geef je je gegevens prijs (naam, adres , woonplaats, credit card etc.) en betaal je het door jou gekozen ticket. • Nadat je hebt betaald verschijnt op het scherm je ticket en jij kunt hem met je printer thuis afdrukken. • Op de grote dag neem je het ticket mee naar het concert en wordt aan jou toegang verleend om binnen te komen bij het concert van je dromen.
123
124
ITicket/Ticket Solution
Kader 13.1: ITicket in Europa In scandinavie is het al zover. Daar worden steeds meer websites voorzien van het systeem iTicket (al zijn het er relatief nog weinig). Zo was op de website van iTicket het volgende te lezen: “Lillestrøm Football Club Offering Internet Tickets.” Het geschetste voorbeeld in de eerste woorden van dit hoofdstuk is hier dan ook werkelijkheid. Immers in Noorwegen sneeuwt het vaak en kun je toch snel je tickets uit printer krijgen. Al is dit laatste niet helemaal waar. Bij iTicket.com kun je de kaartjes ergens afhalen, of kun je ze laten printen bij een apparaat ergens anders dan in jouw huiskamer. Waarom dit zo is en welke voordelen en/of nadelen dit heeft komt later dit hoofdstuk nog ter sprake. Buy and print your tickets online. Met deze zin probeert de website http://www.InThePocket.be zijn klanten te trekken. Op de website is het mogelijk om kaartjes te zoeken zoals men gewend is naar boeken te zoeken bij Amazon of Bol.Com. Je stopt alle tickets die je wilt kopen in een winkelwagentje en aan het einde betaal je alle geselecteerde kaartjes, waarna je ze ook allemaal kunt afdrukken. In Belgi¨e is het zo dat je wel zelf de kaartjes afdrukt (in tegenstelling tot in Noorwegen). Ook hieraan zitten voordelen en nadelen maar dit komt (zoals reeds eerder gezegd) later in het hoofdstuk ter sprake. Op dit moment zijn er nog niet veel websites waarbij je deze droom in werkelijkheid kan brengen. Maar in verschillende landen wordt er al mee gewerkt (zie kader 13.1 ). Wel zijn er natuurlijk de site van de vliegtuigmaatschappijen waar je tickets kunt bestellen en je na betaling alleen een nummer krijgt of een emailbevestiging en geen echte ticket meer. Na het bewijzen dat je de rechtmatige eigenaar bent (nummer in combinatie met paspoort) krijg je je boarding-pas. Ook zijn er de toepassingen (onder andere www.belbios.nl, zie kader 13.4) waar je een streepjescode print, deze wordt gescand en je ontvangt je ticket(s).Maar bij deze opties print je niet het uiteindelijke ticket en krijg je deze pas bij het aanvangen van het evenement. Dit is bij de hier bedoelde systemen anders, al blijft het beide een vorm van iTicket.
13.2
Beveiliging
In de cryptografie is het algemeen bekend dat de veiligheid van een systeem niet af moet hangen van het geheim zijn van hetzelfde systeem. Stelling 13.1 Kerckhoffs’ principe: Oscar kent het cryptosysteem dat door Alice en Bob wordt gebruikt; alleen de sleutel is hem onbekend. Over de gebruikte cryptografie bij iTicket is weinig bekend. De beheerders van de websites die iTicket ge¨ımplementeerd hebben willen ook niets meer kwijt. Het enige wat bekend is is dat het SSL-protocol wordt gebruikt om de verbinding tussen een bezoeker van een website en de website zelf veilig te houden. Op SSL wordt later in deze sectie
13.2 Beveiliging
125
Kader 13.2: Bankieren via Internet is niet veilig Door een onzer redacteuren ROTTERDAM, 20 MEI. Bankieren via Internet is niet veilig. Dat blijkt uit een publicatie in het blad Computer Idee. Redacteuren van het tijdschrift laten daarin zien hoe van klanten van de Rabobank vertrouwelijke bankgegevens kunnen worden gestolen door het opzetten van een valse Internetsite. ,,Wij hebben een signaal willen geven aan computergebruikers”, zegt hoofdredacteur M. Heffels van het blad. ,,Bankieren via Internet moet je gewoon niet doen.” Het computerblad beschrijft in detail hoe het systeem voor Internetbankieren van de Rabobank te kraken is. De inbreker zet een valse pagina op die uiterlijk in alles lijkt op de thuispagina van de Rabobank (www.rabobank.nl). Door het versturen van een bestand (per e-mail) naar de klant kan het besturingssysteem (Windows in de meeste gevallen) op zijn pc zodanig in de war worden gebracht dat het bij het intoetsen van het Internetadres van de Rabobank (www.rabobank.nl) niet een verbinding maakt met de ´echte site, maar met een vervalste versie. Op deze neppagina wordt de gebruiker evenals op de site van de Rabobank verzocht de code in te voeren van een elektronisch pasje (de zogeheten digipas die de Rabobank verstrekt) en enkele andere gegevens. De computergebruiker krijgt een storingsmelding te zien. Hij heeft echter vertrouwelijke gegevens op de vervalste Internetpagina afgegeven, waarmee transacties kunnen worden gedaan via zijn rekening.(http://www.nrc.nl/W2/Nieuws/1998/05/20/Med/03.html) uitgebreider ingegaan. Ook op de beveiliging van de fysieke kaartjes zelf wordt later nog ingegaan. Maar hoe worden andere zaken beveiligd? Natuurlijk lopen we hier weer tegen de beveiliging van betalen aan. Credit cards lijken een aardige optie maar wat gebeurt als ik de kaart van mijn vader gebruik zonder dat hij dat weet, is de overdracht dan nog geldig? Of het zoontje van de bankdirecteur gaat met al zijn vriendjes (de zoontjes van de andere bankdirecteuren) samenspannen en misbruikt wat bankrekeningen, is de overdracht dan nog geldig? Stel de beveiliging van de database van de server is niet op orde. Hij wordt gekraakt en alle bestelde kaartjes worden nogmaals afgedrukt. De kaartjes worden verkocht met de mededeling dat je erg vroeg bij het concert moet zijn. Deze personen zijn er dus vroeg en als de rechtmatige eigenaar van het kaartje aankomt wordt hij beschuldigt van vervalsing, immers er is al een persoon met dat kaartje bij het concert naar binnen. Wie is er dan de schuldige, het hoofd beveiliging, de hacker, de koper van de kaartjes, de steward die de verkeerde mensen binnenlaat? Op al deze vragen is nog geen concreet antwoord, natuurlijk gaat het veel te ver om dit alles hier te behandelen, maar het is wel een factor die even in het achterhoofd gehouden moet worden. 13.2.1
Secure Socket Layer (SSL 2.0)
Het SSL protocol is vroeger ontwikkeld door Netscape en zorgt ervoor dat een cli¨ent een veilige verbinding kan krijgen met een server. Deze beveiligde verbindingen zijn gewenst sinds er informatie via internet wordt verstuurd die niet door derden gelezen mag worden. Misbruik van creditcards is algemeen bekend en niet gewenst. Er wordt
126
ITicket/Ticket Solution
immers nog steeds aangeraden om zo min mogelijk geheime informatie over het internet te versturen. Dat er ondanks het gebruik van SSL verbindingen toch nog misbruik gemaakt kan worden van de situatie is inmiddels ook bekend zie kader 13.2. Maar het protocol is hiermee niet gekraakt. Het protocol voorziet in authenticatie, integriteit en versleuteling en gebruikt hiervoor zowel symmetrische als asymmetrische cryptografie. • Versleuteling wordt toegepast d.m.v. symmetrische cryptografie. Hiervoor moet dan wel het Handshakeprotocol tot een goed einde zijn gebracht. Faalt dit protocol dan komt men niet aan de versleuteling toe. • Authenticatie wordt bereikt d.m.v public-key cryptografie. Hiervoor worden certificaten gebruikt die verschaft worden door een thrusted third party en door beide partij kunnen worden gecontroleerd. • Integriteit wordt bereikt door de MAC (message Authentication Code). Door deze code weet de ontvanger of het bericht een correct bericht is, maar kan later niet de inhoud van het bericht tegenover derden worden aangetoond. Echter je wilt ook niet dat partijen de informatie aantoonbaar kunnen maken aan derden. Het Handshakeprotocol. Zodra een cli¨ent aangeeft dat hij met een server wil communiceren over een beveiligde verbinding dan wordt van start gegaan met het handshake protocol. 1. Cli¨ent stuurt bericht met random getal en informatie over ondersteunde algoritmes en protocollen. Als de cli¨ent slechts praat met geauthentiseerde servers dan vraagt hij ook nog naar de public key en het certificaat van de server. 2. Server stuurt de keuze van het algoritme, de keuze van het protocol, een random getal en evt. Public key en het certificaat. Als de server niet met anonieme cli¨ents werkt zal hij ook vragen naar de public key en het certficaat van de cli¨ent. 3. Client stuurt de public key en het certificaat (mits gewenst) en sleutelgeneratie volgt. De randomgetallen die worden meegestuurd zijn ervoor om te zorgen dat er meerdere ssl-protocollen naast elkaar kunnen lopen en niet in de war raken. Bij sommige algoritmes worden zijn ook voor de sleutelgeneratie gebruikt en ze worden bij de MAC gebruikt. Sleutelgeneratie kan d.m.v zeer veel protocollen (zie kader 13.3), maar in de meeste gevallen wordt gekozen voor het RSA-algoritme. Dit wordt massaal ondersteund en kan relatief snel zorgen voor lange (en dus betrouwbare) sleutels. De precieze generatie van de sleutels staat in detail beschreven in het boek behorende bij dit addendum. Het voert te ver om hier nu op in te gaan.
13.2 Beveiliging
127
Kader 13.3: Ondersteunde protocollen voor sleutelgeneratie • DES. Data Encryption Standard. • DSA. Digital Signature Algorithm, used by the U.S. Government. • KEA. Key Exchange Algorithm, used by the U.S. Government. • MD5. Message Digest algorithm developed by Rivest. • RC2 and RC4. Rivest encryption ciphers for RSA Data Security. • RSA. A public-key algorithm for encryption and authentication. • RSA key exchange. A key-exchange algorithm for SSL. • SHA-1. Secure Hash Algorithm, used by the U.S. Government. • SKIPJACK. A classified symmetric-key algorithm implemented FORTEZZA-compliant hardware used by the U.S. Government.
in
• Triple-DES. DES applied three times.
Het Recordprotocol. Als het handshakeprotocol tot een goed einde is gebracht dan wordt met behulp van de gegenereerde sleutels d.m.v. symmetrische cryptografie het bericht versleuteld en naar de tegenpartij gezonden. Ieder bericht wordt voorzien van een MAC (voor integriteit), de berichtlengte en een beknopte samenvatting van de inhoud. Is een MAC onjuist dan wordt de communicatie direct stopgezet en dient een nieuwe sessie te worden gestart als men alsnog de informatie wil verzenden en/of ontvangen. Hoe kan men nu d.m.v certificaten bepalen dat de persoon met wie men praat ook werkelijk de persoon is met wie men wil praten? Om een certificaat te krijgen moet men aantonen dat de binding tussen een sleutel en een persoon gerechtvaardigd is. Als dit is aangetoond dan geeft de Certification Authority (CA) een certificaat af. Hierin staat een nummer, een uitgever, een ontvanger, een geldigheid, een public key en een handtekening van de CA over alle gegevens op het certificaat. Deze certificaten kunnen ook door een instantie worden afgegeven die door een CA is goedgekeurd. Dat dit problemen kan opleveren komt in de volgende subsectie aan bod. 13.2.2
Mogelijke aanvallen op SSL
Er zijn verschillende aanvallen op SSL mogelijk en het gekke is dat een aanval nog werkt ook (of in ieder geval heeft gewerkt). Allereerst de aanval die slechts be¨ınvloeding van de data kan geven. Dataverandering. Stel dat Oscar alle data afluistert. Hij weet dus precies wat er over en weer gestuurd wordt door Alice en Bob. Hij stuurt alles prima door en er wordt
128
ITicket/Ticket Solution
begonnen met het recordprotocol. De data die hier doorkomt verandert Oscar echter en stuurt het dan door. Hierdoor zou Bob informatie krijgen waarvan hij denkt dat het van Alice is, maar in werkelijkheid is het van Oscar. Deze vlieger gaat echter niet op. De MAC die bij het bericht zit is niet meer correct immers deze wordt ook gemaakt met de key die nooit verzonden is, maar slechts door beide partijen is berekent. Oscar kent deze key dus niet en kan dus geen geldige MAC maken waardoor dit zou kunnen voorkomen. Man in the Middle Attack. Deze aanval werkt in principe hetzelfde als de aanval die hierboven is beschreven. Het zou dus ook niet moeten werken. Maar stel dat Oscar nu eens zijn eigen site opzet. Hij vraagt netjes een certificaat aan bij een locale autoriteit. Deze locale autoriteit is weer bekend bij een centrale autoriteit. Echter dit certificaat gebruikt hij om net te doen alsof hij een bekende bank is. • [CERT - Aanvrager: Oscar / Onderwerp: Oscar] -> • [CERT - Aanvrager: Oscar / Onderwerp: www.oscarisaardig.nl] -> • [CERT - Aanvrager: www.oscarisaardig.nl / Onderwerp: www.rabobank.nl] -> Een webbrowser moet nu de hele thread van certificaten nakijken om te kijken of het correct is. En bij het nakijken komt de browser erachter dat het niet klopt en de verbinding wordt verbroken. Maar stel dat Bob een microsoft internet explorer gebruikt dan heeft hij toch een probleem. Want deze browser checkt niet de hele rits maar slechts de laatste in de rij. En dus gelooft de browser met de bank te praten en dus gelooft Bob dat ook. Inmiddels geeft Microsoft aan dat met een update dit probleem in alle versies verholpen moet zijn. Als laatste aanval is er het continu belemmeren van datacommunicatie. Stel dat Oscar weer tussen de partijen in kan gaan staan dan kan hij ieder bericht zo veranderen dat iedere communicatie wordt afgekapt. Dit kan zelfs zover doorgaan dat de server de client niet meer vertrouwt omdat de communicatie al zo vaak is misgegaan. In praktijk is deze aanval nog niet vaak uitgevoerd omdat Oscar niet weet welke communicatie hij verstoort. En hij er dus weinig baat bij heeft. 13.2.3
Beveiliging van tickets
In de verschillende opvattingen over iTicket (zie kader 13.1) komt al duidelijk naar voren dat men het nog niet eens is of de tickets door de ”klant”thuis moeten worden uitgeprint. Immers de beveiligingen die door zeer professionele printers op een papier kunnen worden aangebracht zijn niet aanwezig in de printers die thuis worden gebruikt. Laten we de voor en nadelen eens op een rijtje zetten. Voordelen: Kosten: De kosten liggen bij de koper, dit kan bij grote concerten zeker schelen. Tastbaar: Een kaartje dat je zelf print is gelijk tastbaar en vergroot het tevredenheidsgevoel van klanten.
13.3 De toekomst
129
Kader 13.4: Belbios vergroot capaciteit op internet De belbios is een telefoonnummer waar je kaarten kunt reserveren voor vrijwel iedere voorstelling in vrijwel iedere bioscoop in Nederland. Sinds een aantal jaren biedt zij haar diensten ook op internet aan en sinds kort is het ook mogelijk kaartjes te kopen en een soort van ticket uit te printen. Dat dit goed gaat toont de volgende quote aan: “Daarnaast zit er geen limiet meer aan het reserveren via internet, maar kunt u 6 of 8 kaarten per keer reserveren. Tevens zal het minder vaak voorkomen dat het maximum via internet te reserveren kaarten is bereikt.” Toekomst heeft kaartverkoop via internet dus zeker. Verantwoordelijkheid: Als een kaartje kan worden afgedrukt ligt de verantwoordelijkheid bij de klant, als het moet worden afgehaald ligt de verantwoordelijkheid tot het moment van afhalen bij de aanbieder van het kaartje. Nadelen: Veiligheid: Er kunnen geen eisen aan het type printer of aan het gebruikte papier worden gesteld, zodat de veiligheidsmogelijkheden minder zijn. Standaard: Door het gebruik van een standaard kunnen de kaarten overal (bij alle evenementen) worden gebruikt, immers de tickets zijn overal gelijk. Bij printen thuis kan ieder kaartje anders zijn en dus moet het met speciale apparatuur worden gecheckt. Het is nog niet duidelijkheid of de voordelen of de nadelen zwaarder wegen. Dit kan in ieder geval anders zijn. Immers in ieder geval kunnen de doelgroep, de kosten, de veiligheid of de gekweekte goodwill zwaarder of minder zwaar wegen dan in een ander geval. Feit is dat iedere aanbieder goed zal moeten kijken wat in zijn geval de doorslag geeft.
13.3
De toekomst
Er is een gigantisch potentieel voor iTicket want iedereen wil wel op ieder moment een kaartje kunnen bestellen en kunnen afdrukken zodat niemand het meer van hem kan afpakken. En natuurlijk kunnen grote evenementen dan op nog meer belangstelling rekenen. Want iedereen wil natuurlijk wel naar concerten net over de grens in Belgi¨e of Duitsland, maar probeer maar eens aan kaartjes te komen. Het is natuurlijk niet voor niets dat bijvoorbeeld de website www.belbios.nl steeds meer kaartjes reserveert en verkoopt via internet. Daarom hebben ze ook de capaciteit vergroot (zie kader 13.4) Echter met name op het gebied van ticketbeveiliging liggen nog wat op te lossen problemen door het verschil in printkwaliteit. Als voorbeeld wil ik hier de tickets nemen die door de bekende voorverkoop adressen worden gebruikt. Deze zijn overal hetzelfde
130
ITicket/Ticket Solution
en hebben een aantal echtheidskenmerken. Het evenement waar deze kaarten op van toepassing zijn wordt er pas bij verkoop op geprint. Dat dit ook nadelen heeft bleek toen een stapel lege tickets werd gestolen en er een maand lang erg veel valse tickets in omloop waren. Stel dat deze lege tickets er niet waren dan was er veel eerder en veel vaker sprake van grote getalen valse tickets. Veel organisaties zijn bang dat dit ook het geval kan zijn bij iTicket. Natuurlijk zijn er praktisch nogal wat opmerkingen te maken over verkoop voor populaire evenementen. Immers dit gaat op een bepaalde tijd gebeuren. Net zoals er nu mensen voor de deur van postkantoren gaan slapen om zeker te zijn van een ticket kan een persoon op internet helemaal klaar zitten op een bepaald tijdstip. Maar is het nu zo dat je met een snellere verbinding en een snellere computer meer kans op kaarten hebt? En is het zo dat er meerdere servers worden ingezet die ieder een bepaald aantal kaarten beschikbaar hebben? Ook zijn er steeds meer bedrijven die de technische aspecten van beveiliging beter willen regelen. Bij de NS is het volgende op hun website te lezen: “Wegens technische werkzaamheden en de veranderingen in de tarieven per 15 december 2002 is het online kopen van tickets tijdelijk niet mogelijk.” Zij bieden het normaal gesproken aan om tickets te kopen en te betalen, maar het printen doen zij zelf. De tickets worden per post naar u opgestuurd. Natuurlijk zijn de kosten voor u. Het is duidelijk dat het voor zowel de klanten als de aanbieders voordelen biedt en kostenbesparend is. Maar ondanks deze zeurpuntjes denk ik dat het een systeem is met goede toekomstmogelijkheden. En mede door de grotere beschikbaarheid van breedbandinternet zal de vraag naar de tickets toenemen. En zoals in ons onvolprezen marktsysteem altijd het geval is is het zo dat bij een grotere vraag het aanbod zich sneller zal ontwikkelen.
Hoofdstuk 14 Digital Credentials Door Peter Scheer
Al tijden moeten we ons voor veel verschillende zaken kunnen identificeren. Van het ophalen van een pakketje bij het postkantoor, het tonen van een diploma tot het overgaan van landsgrenzen. Dit zorgt ervoor dat we steeds meer documenten krijgen die we op zijn tijd moeten kunnen tonen. Het zou handig zijn als we deze documenten in digitaal formaat bij ons zouden kunnen dragen. En daarnaast hebben we ook steeds meer betaalmiddelen bij ons. Niet alleen geld en creditcards, maar ook steeds meer pasjes voor onze airmiles, freebees etc. Ook die dingen kunnen we digitaal bij ons dragen, maar dit vraagt wel om adequate beveiliging. Gelukkig bestaan voor alle problemen oplossingen. Met Digital Credentials kunnen we beide op een effectieve manier aanpakken. Met deze informatie kunnen we ons identificeren, mensen selectief informatie over onszelf vertellen, maar ook anoniem betalen. Digital Credentials zijn een logisch gevolg uit de, al langer gebruikte, Digital Identity Certificates. Digital Identity Certificates kunnen met een goede implementatie erg veilig zijn, maar ze zijn niet geschikt voor het waarborgen van de privacy van de houder. Bij het tonen van een DIC blijven gegevens achter die gebruikt kunnen worden om bij een volgende actie deze twee te koppelen, en zo dus om de houder te kunnen volgen.
14.1
Het Model
De basis van Digital Credentials is weergegeven in de onderstaande afbeelding. Alice zal voor iedere Digital Credential een aanvraag moeten doen bij de Certificate Authority. Omdat het voor Alice verstandig is om een Digital Credential maar een beperkt aantal keer te gebruiken, zal de Certificate Authority Alice vaak een batch van Digital Credentials verstrekken, telkens met een andere private key. Hetzelfde geldt natuurlijk voor Digital Credentials die Alice maar een beperkt aantal keer kan gebruiken. Iedere Digital Credential die zij op deze manier ontvangt kan ze gebruiken om te tonen aan 131
132
Digital Credentials
verifiers. Zoals in de afbeelding ook is te zien, kan Alice haar gegevens blinderen voor de Certificate Authority. Dit houdt niet in dat Alice willekeurige strings aan kan bieden voor een Digital Credential, maar dat de Certificate Authority zelf niet verplicht kennis hoeft te hebben van iedere property die Alice op een Digital Credential wil zetten. Dit vereist wel dat de Certificate Authority in contact moet staan met een trusted party die wel de gegevens van Alice heeft. Dit biedt voordelen als de partij die de Digital Credentials verstrekt niet de technologie of de middelen heeft om zelf de encryptie te doen. Het biedt dus een mogelijheid om dit uit te kunnen besteden. In een systeem van elektronisch geld ziet dit er als volgt uit: Aanvraag De aanvraag kan hier worden gezien als het pinnen van geld, of als het opladen van een chipknip pas. In dit geval kan een equivalent van een bank certificaten uitdelen als vervanging voor geld. Tonen In dit gedeelte kan dus met de Digital Credential worden betaald. Merk wel op dat de winkelier niet op deze manier wisselgeld kan teruggeven, want de Digital Credentials staan op naam en zijn gebonden aan de private key.
14.1.1
Beveiliging
Omdat we een Digital Credential aan verschillende onafhankelijke personen willen laten zien, ligt het voor de hand om de encryptie hiervoor met behulp van Public Key Cryptografie te doen. De enige die de private key kent is Alice zelf. Bob kan zich niet zonder meer voordoen als Alice, want hij heeft alleen de public key. Maar dit vereist wel dat bij iedere identificatie een string moet worden meegecodeert die aangeeft met wie Alice
14.1 Het Model
133
een conversatie heeft opgebouwd en wanneer dat is geweest, en eventueel een plaats en een random string. Met deze middelen op zak heeft Bob niet de mogelijkheid voor een replay attack . Als we in de rest van dit hoofdstuk aannemen dat Alice een aantal properties heeft, genaamd x1 , . . . , xl die ze soms aan anderen (Bob) wil verstrekken. Alice is dan in het bezit van het volgende tuple: (x1 , . . . , xl , α) Hiervan kunnen items xi openbaar worden gemaakt aan Bob, maar α blijft te allen tijde geheim. Nu kan Alice haar publieke sleutel openbaar maken. Deze is gelijk aan: h = g1x1 · · · glxl hα0 De grondtallen die hiervoor worden gebruikt zijn publiek en zijn gegenereerd door de Certificate Authority. De logaritmen hiervan zijn voor de Certificate Authority namelijk nodig om een Digital Credential voor Alice te maken. Als bewijs van de juistheid van de opgenomen gegevens (de eigenlijke credential) verkrijgt Alice de handtekening van de autoriteit over h: sign(h). Lemma 14.1 De publieke sleutel van de Digital Credential geeft helemaal geen informatie over x1 . . . xl Bewijs. Anders geformuleerd, ∀pub key ∃α hg1x1 · · · glxl hα0 = pub keyi Zoals nu wel is te zien, kan door variatie in α iedere waarde voor een publieke sleutel worden verkregen uit dezelfde set x1 . . . xl . α wordt door Alice random gekozen bij het aanvragen van de Digital Credential, dus haar xi ’s zijn volledig veilig. a α is in dit verhaal de blinding factor van Alice. Lemma 14.2 Bob kan de geheime sleutel van Alice niet berekenen, ook al kent hij enkele of alle xi ’s Bewijs. Als eerste mogen we aannemen dan Bob geen discrete logaritmes kan berekenen in Gq , want dat is de groep waar we in rekenen. Neem h als de publieke sleutel van Alice, dus h = g1x1 · · · glxl hα0 . Bob kent h en x1 . . . xl . Hij zal dan het volgende moeten berekenen: hα0 =
g1x1
h · · · glxl hα0
Omdat Bob hier een berekening uit moet voeren die hij niet kan doen (discrete logaritme a met h0 , blijft de geheime sleutel α van Alice veilig.
134
Digital Credentials
14.1.2
Uitlenen van Digital Credentials
We hebben nu gezien dat een Digital Credential geen privacy informatie lekt. En het is ook veilig, zoals later zal worden aangetoond. Maar dit alles weerhoudt Allice er nog niet van om de Digital Credential die ze heeft gehad, niet aan anderen te vertellen, zodat die, in naam van Alice, een Digital Credential kunnen tonen. Als het digitale munten betreft is het nog niet zo’n groot probleem, behalve dan dat Alice de geheime sleutel ook nog kent en er dus ook nog mee kan betalen. Maar als het gaat om identificatie, dan willen we er zeker van zijn dat Alice de Digital Credential en de geheime sleutel voor zichzelf houdt. Dit kan eigenlijk heel gemakkelijk op twee verschillende manieren worden bereikt. De eerste is het meecoderen van priv´e informatie van Alice. Bijvoorbeeld haar creditcardnummer. Dit kan dan ´e´en van de attributen van de Digital Credential zijn. Alice zal haar creditcard nummer niet aan anderen willen vertellen. Maar om je met een Digital Credential te kunnen identificeren, heb je de plain waarden van alle attributen nodig. Alice zal deze Digital Credentials dus wel voor zichzelf willen houden. Hetzelfde kan gelden voor informatie die over haar verzameld is, die schadelijk voor haar kan zijn. Bijvoorbeeld achterstallige betalingen of informatie over schulden, of misschien zelfs (een deel van) haar strafblad. Een andere manier is het koppelen van de geheime sleutel aan informatie over Alice die ze ook bij andere instellingen nodig heeft. Op deze manier kan ze haar geheime sleutel niet weggeven, omdat anderen met deze informatie, zich niet alleen kunnen identificeren bij de instelling waar ze de Digital Credential voor wilde uitlenen, maar ook voor toegang tot haar bankgegevens etc. Met deze extensies van het model kunnen we niet alleen garanderen dat de protocollen op technisch gebied veilig zijn, maar ook dat mensen die een Digital Credential krijgen, er veilig mee om gaan. 14.1.3
Proof of Knowlegde
Nu we hebben gezien wat voor informatie Alice en Bob tot hun beschikking hebben, kunnen we bekijken hoe dit kan worden gebruikt om Bob ervan te overtuigen dat hij met Alice communiceert en dat het echt de goede gegevens zijn die Alice hem vertelt. Met een Proof of Knowledge komen we een heel eind. Hoe het ook alweer zat met Proof of Knowledge kunnen we makkelijk illustreren aan de hand van het identificatie protocol dat Alice kan gebruiken om aan Bob te laten zien dat zij echt de Alice is waar Bob de public key van heeft. Alice genereert willekeurige wi ’s en genereert daarbij een a, op dezelfde manier als haar publieke sleutel is gegenereerd. Als Bob haar nu een challenge c stuurt, kan ze hiermee laten zien dat ze met kennis van haar geheime sleutel deze willekeurige reeks getallen kan omrekenen naar haar publieke sleutel. Hier zijn alle xi ’s voor nodig. Bob kan enkele hiervan te weten komen, maar de α die er ook voor nodig is weet hij nooit. Stelling 14.3 De responses r1 . . . rl van Alice kunnen alleen correct worden berekend als Alice de geheime sleutel van h kent.
14.2 Tonen van een Digital Credential
135
Tabel 14.1: Proof of Knowledge - Identificatie
Alice w1 , . . . , wl+1 ∈R Zq w a := g1w1 · · · glwl h0 l+1
Bob −−−−−−−−−→ h, sign(h), a c ∈ Zq
← − c r1 := cx1 + w1 mod q .. . rl := cxl + wl mod q r1+1 := cα + wl+1 mod q
−r−1− −→ ,− . .−.−.r−l+1
r
hc a? = g1r1 · · · glrl h0l+1
Bewijs. Uitgaande van de controleberekening die Bob uitvoert: w
hc a = (g1x1 · · · glxl hα0 )c · g1w1 · · · glwl h0 l+1 w = g1cx1 · · · glcxl hα0 · g1w1 · · · glwl h0 l+1 cα+wl+1
= g1cx1 +w1 · · · glcxl +wl h0 r = g1r1 · · · glrl h0l+1
kan dit dus alleen correct worden berekend als de geheime sleutel correct is. Als deze niet bekend is, dan is deze berekening met een hele grote kans fout. Alice kan dit namelijk r alleen correct doen als ze initieel a heeft gekozen als h−c g1r1 · · · glrl h0l+1 . Hiervoor moet ze c correct gokken, want Bob geeft deze pas als hij a heeft ontvangen. Dit heeft een succeskans van 1/q waar q een groot getal is. Als Bob dus meer zekerheid wil, dan kan a dit algoritme enkele keren worden herhaald. Zoals bij alle Proofs of Knowlegde het geval is, kan Bob alle gegevens die hij krijgt r zelf berekenen. Hij kiest gewoon a als h−c g1r1 · · · glrl h0l+1 voor willekeurige responses c. Dit laat zien dat Bob hier niks van leert en de gegevens van Alice dus geheim blijven. Dit bewijs is dus alleen bij interactieve toepassing van nut, en alleen tussen Alice en Bob.
14.2
Tonen van een Digital Credential
In deze sectie gaan we ervan uit dat Alice al een Digital Credential heeft ontvangen van de Certificate Authority. Het aanvragen van een Digital Credential is namelijk ingewikkelder dan het tonen. Alice zal tegenover Bob moeten bewijzen dat zij de echte
136
Digital Credentials
Alice is ´en dat de waarde van het property dat ze heeft ook de goede waarde is. Merk op dat ze Bob alleen maar bewijst dat x1 = y1 . Dit kan ze natuurlijk herhalen als Bob meerdere van haar properties te weten mag komen. Als vergelijking met de ’echte wereld’ kan dit worden gezien als het tonen van een certificaat waarbij alle waarden, behalve de eerste zijn doorkegrast of uitgegumd. Degene die dit certificaat ziet zal alleen de eerste waarde te weten komen. Tabel 14.2: Proof of Knowledge - Bewijs x1 = y1
Alice ← m−
Bob m := nonce
w2 , . . . , wl+1 ∈R Zq w a := g2w2 · · · glwl h0 l+1 c := H(h, a, F, m) r2 := cx2 + w2 mod q .. . rl := cxl + wl mod q r1+1 := cα + wl+1 mod q
−−−−−−−−−−−−−−−−−−−−−→ h, sign(h), y1 , (a, r2 , . . . .rl+1 ) c := H(h, a, F, m) r hc a? = g1y1 c g2r2 · · · glrl h0l+1
De structuur van dit bewijs is weer een Zero Knowledge Proof. De verschillen met het volgende bewijs zullen we puntgewijs bespreken. • Bob genereert een nonce, een string die aangeeft dat hij met Alice onderhandelt, de tijd en evt een plaats en een random string. Dit is nodig vanwege het volgdende: • Alice genereert c zelf. Dit komt omdat het op deze manier een Digital Signature is. deze c genereert ze met een one-way hash-functie, dit doet Bob aan het einde op dezelfde manier. Om er nu zeker van te zijn dat Bob deze Digital Credential niet later bij iemand anders kan gebruiken om zich voor te doen als Alice wordt deze m erin verwerkt. In deze hashfunctie wordt ook F gebruikt. Dit is een unieke string die aangeeft welk property aan Bob wordt getoond. Zonder deze string kan Alice een geldige waarde (volgens de publieke sleutel) aan Bob geven maar alleen Alice weet of het de waarde van het juiste property was. • Alice stuurt nu niet alleen h, sign(h) en haar responses op de challenge op, maar ook de y1 waarvan ze de waarde aan Bob wil vertellen. • Bob kan nu ook de challenge berekenen en op dezelfde wijze als hiervoor controleren of Alice hem wel de waarheid vertelt. We zullen hier niet bewijzen dat Bob het geheel kan controleren. Dit is slechts een kwestie van uitschrijven van de variabelen. Ook is het duidelijk dat Bob hier alleen te
14.2 Tonen van een Digital Credential
137
weten komt dat x1 = y1 . Alice haalt g1x1 van haar sleutel in het bewijs af en bewijst dat het voor de rest nog steeds klopt. En we hebben al gezien dat Bob uit deze r-waarden niets kan leren. 14.2.1
Tonen van een negatie
Wat het mooie is aan Digital Credentials, en dat vinden we eigenlijk niet terug in de ’echte’ wereld, is het laten zien van een negatie van een property. Dit kun je bijvoorbeeld gebruiken om aan te geven dat je niet in Nederland woont, zonder aan te hoeven geven waar je wel woont. Een voorbeeld kunnen we laten zien aan de hand van een hele simpele Digital Credential, namelijk ´e´en met allen x1 als property, dus h = g1x1 hα0 . Als x1 6= y1 dan moet er een ² bestaan waarvoor geldt dat x1 = y1 − ². Als we dat toepassen op de publieke sleutel die we net definieerden, dan geldt: h = g1x1 hα0 = g1y1 −² hα0 y /²−1 α/² h0 y1 /² α/² g 1 h0
h1/² = g1 1 =
g1 y /²
α/²
g1 = g1 1 h−1/² h0
α/²
= (g1y1 /h)1/² h0 Stelling 14.4 ² is ongelijk aan 0, en dus x1 6= y1
Bewijs. Neem, gelijk aan de voorgaande herschrijving g1 = (g1y1 /h)z1 hz02 met z1 = 1/² en z2 = α/². Als z1 = 0 (mod q) dan geldt dat g1 = hz02 , dus Alice kent de discrete logaritme van g1 met betrekking op h0 en dit is een deel van de geheime sleutel van de Certificate Authority. We hadden aangenomen dat Alice deze niet kan berekenen, dus geldt z1 6= 0. Dan geldt ook dat uit hz1 = g1y1 z1 −1 hz02 het volgende mag worden afgeleid: y −1/z1 z2 /z1 h0
h = g1 1
Uit hetgeen we aan het begin van deze sectie hebben aangenomen volgt dat x1 = y1 a − 1/z1 , en dat is niet gelijk aan y1 En nu hebben we precies bereikt wat we wilden. We hebben een manier gevonden om aan Bob duidelijk te maken dat onze waarde van x1 niet gelijk is aan y1 . Het enige wat we Bob hierbij hoeven te vertellen is de waarde van y1 , en daar kan hij niks mee, want dit is geen property van Alice. Ook uit de public key die hij nodig heeft lekt geen informatie, zoals we eerder al hebben laten zien. Hier hebben we een simpel voorbeeld genomen en alleen laten zien dat negaties gelden. Het is op een soortgelijke manier ook mogelijk om hier ingewikkelde expressies voor te bouwen met NOT en AND. Dit geeft Alice heel veel flexibiliteit om informatie over zichzelf vrij te geven, zonder dat haar privacy wordt geschonden.
138
Digital Credentials
14.3
Aanvragen van een Digital Credential
We hebben nu een deel gezien van wat Alice allemaal met een Digital Credential kan doen. Nu wordt het tijd om uit te zoeken hoe Alice aan zo’n Digital Credential kan komen. De makkelijke manier zal ik in detail behandelen, de lastigere alleen globaal. Om het geheel veilig te houden is ook hier gekozen voor een Zero Knowledge Proof. Hierbij wordt er ook op gelet dat Alice haar geheime sleutel zelf kan samenstellen, zodat haar gegevens niet over het (inter)net verstuurd hoeven te worden. Alice bedenkt hierbij een challenge voor de Certificate Authority en die zal hierop reageren met een bewijs dat hij de logaritmen van de grondtallen van de publieke sleutel van Alice kent. Tabel 14.3: Proof of Knowledge - Aanvraag Digital Credential
Alice
Z∗q
α1 ∈ α2 , α3 ∈ Zq h := (g1x1 · · · glxl h0 )α1 c00 := H(h, g0α2 (g1x1 · · · glxl h0 )α3 a0 c0 := c00 − α2
a0 ? = g0c0 (g1x1 · · · glxl h0 )r0 r00 := (r0 + α3 )/α1
← a−− 0
Certificate Authority w0 ∈R Zq a0 := g0w0
−c→ 0 ← r− 0
r0 := (w0 − c0 )/(x0 + x1 y1 + · · · + xl yl )
Hier kunnen we ook weer laten zien dat Alice inderdaad aan de hand van de responses kan controleren of ze ook met de echte Certificate Authority een verbinding heeft opgebouwd. Net als in het eerste voorbeeld is dit uitschrijfwerk, dus zullen we niet laten zien. Er zijn echter wel een aantal dingen op te merken over dit protocol, dus dat zal ik niet achterwege laten. • Ook hier kan de challenge niet door ´e´en van beide partijen worden berekend, zonder informatie van de andere partij. En weer is het de bekende one-way hash functie. • Dit protocol lekt geen informatie over de geheime sleutel van Alice. De enige parameter die wordt overgestuurd die iets van h bevat is c0 , en deze is een one-way hash van h, dus dat zit wel goed. • Voor berekening van de responsen heeft de Certificate Authority de logaritmes van de grondtallen nodig. Dit zijn de yi ’s in het bovenstaande verhaal. De grondtallen
14.4 Beperken van het gebruik
139
zijn van tevoren bij Alice bekend, want deze vormen de publieke sleutel van de Certificate Authority. • De signature over h die Alice bij het tonen nodig heeft voor verificatie tegenover Bob is hier gedefinieerd. Deze is namelijk (c00 , r00 ). Hierin zit zowel informatie verstopt over de xi ’s, als over de yi ’s. Ook als Bob alle waarden van x1 . . . xl van Alice heeft gekregen, zijn alle waarden van yi nog mogelijk. Dus dit signature is volledig veilig. • Alice kan bijna al haar berekeningen van tevoren voorbereiden. De duurste operaties voor Alice zijn de machtsverheffingen die ze uit moet voeren. Maar voor geen van de machtsverheffingen heeft ze informatie nodig van de Certificate Authority. De Certificate Authority hoeft zelfs helemaal geen machtsverheffingen te doen. Dit protocol is dus qua rekentijd erg effici¨ent. • De Certificate Authority heeft alle waarden x1 . . . xl nodig om de Digital Credential te berekenen. Dit is niet altijd gewenst. Hiervoor is een extensie van het protocol bedacht, zoadat de Certificate Authority zelf deze waarden niet meer hoeft te kennen.
14.4
Beperken van het gebruik
Het laatste belangrijke punt wat ik over dit onderwerp wil aansnijden is het feit dat Digital Credentials vaak niet voor altijd geldig blijven. Het duidelijkste voorbeeld is natuurlijk het digitale muntje. Een munt kun je in de ’echte’ wereld maar ´e´en keer uitgeven. Zo zal het in dit model ook moeten. Dit is geen gemakkelijke opgave. Zoals we de afgelopen jaren al vaak hebben gezien, is het beperken van het gebruik van bits een heikel punt. Met Digital Credentials staan wel gelukkig wel iets sterker, want we hebben een goede en betrouwbare methode om de houder ervan de kunnen identificeren. Drie belangrijke methodes wil ik graag de revue laten passeren: • Iedere transactie met een centrale partij overleggen. Eigenlijk is dit geen mooie optie, want het vereist dat Bob altijd een verbinding moet hebben met een centraal netwerk. Ook kan dit model nooit schalen voor groot gebruik, want het mag ook niet mogelijk zijn om een munt op hetzelfde moment bij twee verschillende providers ´ en van hun zal altijd geweigerd moeten worden. aan te bieden. E´ • Gebruik van een smartcard. Op zich is dit een robuuste methode, maar dit vereist wel dat de smartcards moeten worden verspreid, wat toch een logistiek probleem uit kan lokken. • Achteraf controleren of Digital Credentials niet dubbel zijn gebruikt. Dit is een methode die niet, zoals de eerste, heel veel resources nodig heeft. Maar het is wel verplicht om er zeker van te zijn dat de houders van een Digital Credential bekend zijn en kunnen worden gevolgd. Als een Digital Credential meerdere keren wordt gebruikt moet daar een straf voor uit te delen zijn. En heel vaak gebruikte Digital Credentials zullen op een blacklist geplaatst moeten kunnen worden.
140
Digital Credentials
14.5
Conclusie
Digital Credentials bieden heel veel voordelen bij authenitficatie, authorisatie en betalen. Ik verwacht echter wel dat het nog een tijd op zich zal laten wachten voordat dit gemeengoed zal gaan worden. Mensen zijn nu eenmaal huiverig voor sterke systemen. Maar anonimitiet staat in dit systeem erg hoog, en daar zijn mensen wel weer blij mee. Zie als groot voorbeeld het internet. Maar of het handig is als iedereen anoniem kan blijven is dan nog maar de vraag. Het blijkt op het internet lang niet altijd handig te zijn, want je weet nooit wie je tegenover je hebt en hackers, spammers en virussen maken er allemaal gebruik van. Over de veiligheid maak ik me niet druk, want het geheel is gebaseerd op Zero Knowledge Proofs en RSA pulic keys. Van beide lijkt me wel voldoende aangetoond dat ze goed werken en dat ze veilig zijn. Ik wacht het nog rustig af.
Hoofdstuk 15 Pailliers Public-Key Cryptosysteem Door Jurn Franken
Hieronder geef ik een beschrijving van de werking van Pailliers Public-Key Cryptosysteem dat gebaseerd is op Composite Degree Residuosity Classes (CDRC). Hiervoor heb ik vooral gebruikgemaakt van zijn publicatie [Pai99]. Voor de duidelijkheid wil ik hier alvast verwijzen naar sectie 15.7 waar ik gebruikte notaties verklaar. Dit moet het iets makkelijker maken het verhaal te volgen. In 1999 heeft Paillier een nieuw ”valluik” mechanisme voorgesteld van waaruit hij weer drie encryptie schema’s heeft afgeleid: een trapdoor permutation en twee homomorphic probabilistic encryption schema’s. Het werk is gebaseerd op de modulaire wiskunde en bewijsbaar veilig onder de juiste aannames in het standaard model.
15.1
Public-Key encryptie
Sinds de ontdekking van de Public-Key cryptografie door Diffie en Hellman[DH95] zijn er maar weinig succesvolle a-symetrische encryptie schema’s bijgekomen. Voor meer informatie over bestaande bestaande public-key systemen kun je kijken naar A. Salomaa [Sal90]. De twee belangrijkste zijn nog steeds Diffie-Hellman en RSA. Bij Diffie-Hellman en gerelateerde schema’s is het valluik principe gebaseerd op de onmogelijkheid om discrete logaritmes te bepalen over eindige groepen. RSA en varianten zijn gebaseerd op het factorisatie probleem van grote samengestelde getallen. Bijna ongemerkt is er echter een derde klasse van valluik mechanismes bijgekomen. Deze zijn ontstaan vanuit de High Degree Residuosity Classes (HDRC). Goldwasser en Micali hebben een schema gebaseerd op quadratic residuosity ontworpen en Benaloh heeft met zijn homomorphic encryption functie een poging gedaan deze nieuwe richting te verkennen. Later hebben ook Naccache en Stern [NS98] en Okamoto en Uchiyama [OU98] een belangrijke bijdrage geleverd door twee verschillende benaderingen te onderzoeken. Dit zijn de residuosity of smooth degree in Z∗pq en residuosity of prime degree 141
142
Pailliers Public-Key Cryptosysteem
in Z∗p2 q . Voor meer informatie over dit onderwerp of cryptografie in het algemeen kun je kijken naar [MOV96]. Paillier heeft een nieuw valluik mechanisme bedacht dat op voorgaande technieken gebaseerd is maar met composite degree residuosity classes werkt.
15.2
Deciding Composite Residuosity
Composite degree residues zijn een instantie van higher degree residues. De originaliteit van Pailliers techniek ligt in het gebruik van een kwadraat als modulus. Hierbij is natuurlijk n = pq het product van twee grote priemgetallen. Definitie 15.1 Een getal z is een n-th residue modulo n2 als er een y ∈ Z∗n2 zodanig dat z = y n mod n2 De set van nde residues is een multiplicatieve subgroep van Z∗n2 van orde φ(n). Elk n residue z heeft precies n wortels van graad n, waarvan precies een kleiner is dan n. Het probleem om onderscheid te maken tussen nde residues en niet nde residues scrijven we als CR[n]. Net zo als de moeilijkheid om kwadratische en higher degree residuosity te bepalen is ook CR[n] een random self-reducible probleem. Net zo als voor priem residuosity is ook het bepalen van nde residuositie moeilijk. nu zullen we aannemen dat: de
Aanname 15.2 Er bestaat geen algoritme dat in polynomiale tijd onderscheid kan maken tussen nde residues en niet-nde residues modulo n2 . dus CR[n] is onbepaalbaar. Naar deze onbepaalbaarheids hypothese zal verwezen worden als de Decisional Composite Residuosity Assumption (DCRA). Door de Random-Self-Reducibility hangt de geldigheid van de DCRA alleen af van de keuze van n. Het onderliggende wiskundige raamwerk zal ik hier niet door ruimtegebrek niet behandelen. Daar waar nodig verwijs ik naar sectie 3 uit Paillers publicatie [Pai99].
15.3
Een nieuw Probabilistic Encryption Scheme
Paillier heeft een nieuw encryptie schema schema bedacht, gebaseerd op het Composite Residuosity Class Problem. Hij gebruikt εg voor encryptie waarbij hij de factorisatie als valluik gebruikt. Bepaal n = pq en selecteer random een basis g ∈ B. Dit can efficient gedaan worden door te controleren of gcd (L(g λ mod n2 ), n) = 1.
(15.1)
15.4 A New One-Way Trapdoor Permutation
143
Kader 15.1: Probabilistic Encryption Scheme. Encryption: plaintext m < n select a random r < n ciphertext c = g m · rn mod n2 Decryption: ciphertext c < n2 L(cλ mod n2 ) plaintekst m = mod n L(gλ mod n2 )
Beschouw nu (N ,g) als publieke parameters terwijl het paar (p,q) (of equivalent λ) geheim blijft. Het cryptosysteem ziet er dan uit als in kader 15.1 Voor een bewijs van de correctheid van dit schema verwijs ik naar [Pai99]. Het gaat hier om een encryptie funktie met als valluik funktie de λ als geheim.
15.4
A New One-Way Trapdoor Permutation
One-Way trapdoor permutations zijn zeldzame cryptografische objecten. In kader 15.2 wordt de techniek uit de vorige sectie gebruikt om een permutatie over Z∗n2 af te leiden. n staat weer voor het produkt van 2 grote priemgetallen, en g is weer een willekeurig gekozen basis. Kader 15.2: A Trapdoor Permutation. Encryption: plaintext m < n2 split m into m1 , m2 zo dat m = m1 + nm2 ciphertext c = g m1 m2 n mod n2 Decryption: Stap 1. Stap 2. Stap 3.
ciphertext c < n2 L(cλ mod n2 ) mod n m1 = L(gλ mod n2 ) c0 = cg −m1 mod n −1 m2 = c0n mod λ mod n plaintext m = m1 + nm2
144
Pailliers Public-Key Cryptosysteem
Decryptie. De decryptie levert hier in stap 1 m1 op net als in 15.1. Stap 2 is een onblindeer fase noodzakelijk om m2 n mod n terug te krijgen. In stap 3 wordt vervolgens een RSA decyptie met publieke exponent e = n uitgevoerd. Uiteindelijk wordt in de laatste stap het originele bericht weer gereconstrueerd. Het feit dat schema 15.2 een permutatie is komt door de bijectiviteit van εg . Digital Signatures. Indien we als h : N 7→ 0, 1k ⊂ Z∗n2 als een hasfunktie zien dan krijg je als volgt een digital signature schema. Voor een bericht m berekent de auteur de handtekening (s1 , s2 ) waarbij L(h(m)λ mod n2 ) s1 = mod n L(g λ mod n2 ) s2 = (h(m)g s−1 )1/n mod λ mod n De ontvanger controleert natuurlijk of geldt: ?
h(m) = g s1 sn2 mod n2 . Ondanks dat deze trapdoor permutatie door zijn gelijkenis met RSA matig interessant is kunnen zijn homomorfe eigenschappen van pas komen bij bijvoorbeeld groepscryptografie.
15.5
Bijna kwadratische decryptie complexiteit
De meeste Public-Key cryptosystemen hebben een kubische decryptie complexiteit. De zoektocht naar snellere algoritmes gaat dus onverminderd door. In een variant op het schema in kader 15.1 komt Paillier tot een bijna kadratische decryptie complexiteit. (O|n|2+² ) De idee bestaat uit het beperken van de cijfertekst ruimte Z∗n2 tot de subgroep < g > van een kleinere orde. Hiervoor wordt vergelijking 2 behandeld in sectie 3 van [Pai99] iets uitgebreid. Neem aan dat g ∈ Bα voor een 1 ≤ α ≤ λ. Nu geldt voor elke w ∈< g >, JwKg = L(wα mod n2 )L(g α mod n2 ) mod n. Dit resulteert in een nieuw cryptosysteem als weergegeven in kader 15.3. Het valluik in dit schema is gebaseerd op kennis van α in plaats van λ. De modulaire exponentiatie c → cα mod n2 is nu de meest kostbare, en deze loopt in tijd O(|n|2 |α|). Als g nu gekozen wordt op een manier dat |α| = Ω(|n|² ) voor een ² > 0, dan neemt decryptie slechts O(|n|2+² ) bit operaties. Dit is het enige bij Paillier bekende PublicKey schema met deze eigenschap.
15.6 Efficientie en Implementatie Aspecten
145
Kader 15.3: De snelle decryptie variant Encryption: plaintext m < n select a random r < n ciphertext c = g m · rn mod n2 Decryption: ciphertext c < n2 L(cα mod n2 ) plaintekst m = mod n L(gα mod n2 )
15.6
Efficientie en Implementatie Aspecten
Tot slot wordt nog kort ingegaan op een aantal computationele aspecten, en manieren om de prestaties te verbeteren. Sleutelgeneratie. Voor de priemfactoren p en q gelden de normale regels voor het genereren om zo het faktoriseren van n zo moeilik mogelijk te maken. De snelle variant heeft nog de volgende eis dat λ = lcm(p − 1, q − 1) een meervoud van een 160 bits priemgetal is. De basis g kan willekeurig gekozen worden uit elementen van een orde deelbaar door n. De hele generatie kan makkelijker gemaakt worden door de berekeningen apart mod p2 en mod q 2 uit te voeren met de chinese reststelling g mod p2 en g mod q 2 op het einde. Encryptie. Voor encryptie is een modulaire exponentiatie van basis g nodig. Deze berekening kan versneld worden door de g klein te houden. b.v. 2. g kan zelfs constant gehouden worden om zo pre-processing mogelijk te maken. Hierdoor kunnen de berekeningen rn of g nr mod n2 vooruit berekend worden. Decryptie. Het berekenen van L(u) voor u ∈ Sn kost weinig als n−1 mod 2|n| vooruit berekend wordt. Ook kan de constante parameter L(g λ mod n2 )−1 mod n of α L(g mod n2 )−1 mod n vooruit berekend worden. De Chinese reststelling kan gebruikt worden bij deze drie schema’s om de werklast te verkleinen. Voor de details zie [Pai99].
146
Pailliers Public-Key Cryptosysteem
Prestatie Evaluatie. In de publicatie van Paillier staat en mooie tabel waarin de prestaties van verschillende algoritmes vergeleken worden. Daar waar bij RSA de encryptie constant is is bij Pailliers snelle variant de decryptie constant. Dit laatste is natuurlijk interessant omdat bij een langere sleutellengte het aantal vermenigvuldigingen gelijk blijft. De encryptietijd wordt overigens pas kleiner dan die van RSA bij een sleutellengte van rond de |n|,|p| = 1024. Verdere interessante eigenschappen zijn de Random -Self-Reducibility, een aantal additieve homomorfe eigenschappen die gebruikt kunnen worden voor voting-protocols, threshold cryptosystems, watermarking en secret sharing schema’s. Verder Onderzoek. Ondanks dat de schema’s al weer een aantal jaren oud zijn, ben ik geen directe toepassingen van dit systeem tegengekomen. Ik denk dat dit komt door de gelijkenis met RSA en dat de decryptietijd op het moment nog langer is dan die van RSA met de huidige gangbare sleutellengte. Wel wordt er onderzoek gedaan naar deze schema’s in combinatie met eliptische krommen. Hiervoor kun je kijken naar werk van o.a. Paillier zelf, Naccacha-Stern en Okamoto-Uchiyama. In de huidige schema’s is de beveiliging tegen gekozen cijfertekst aanvallen niet optimaal, echter kleine aanpassingen aan schema 1 en 3 zouden voldoende moeten zijn. Tot slot zijn er nog volop mogelijkheden voor groepscryptografie door de homomorfe eigenschappen van deze systemen.
15.7
Verklaring gebruikte notaties
• p, q zijn (grote) priemgetallen. • n = pq waarbij p en q grote priemgetallen zijn. • φ(p) is Eulers totient functie, gedefinieerd als het aantal elementen uit de multiplicatieve groep Z∗p . Omdat p priem is geldt: |Z∗p | = (p − 1). • φ(n) is nu natuurlijk (p − 1)(q − 1) • λ(n) is Carmichael’s functie1 , gedefinieerd als λ(n) = lcm(p − 1, q − 1)2 . • Bedenk verder dat |Z∗n2 | = φ(n2 ) = nφ(n). • En dat voor elke w ∈ Z∗n2 geldt: wλ = 1 mod n en wnλ = 1 mod n2 .
1 2
voor de leesbaarheid schrijven we λ in plaats van λ(n) lcm staat voor Least Common Multiple (ofwel Kleinste Gemene Veelvoud)
Hoofdstuk 16 Cryptografie met elliptische krommen Door Erik Jan van Leeuwen
Elliptische krommen zijn een bekend en goed bestudeerd verschijnsel in de wiskunde. Hun toepassingen zijn wijd verspreid en zo kan het ook dat Wiles zelfs elliptische krommen bekeek bij zijn onderzoek naar de laatste stelling van Fermat [Wil95]. Ook al zijn elliptische krommen dus al lang bekend, hun toepassing in de cryptografie is pas in 1985 ontdekt door Neal Koblitz [Kob87] en Victor Miller [Mil86]. Met deze ontdekking ontstond een geheel nieuwe richting in de cryptografie. Hadden we eerst voornamelijk schema’s gebaseerd op de ondoenlijkheid van integerfactorisatie of berekening van de discrete logaritme, met de ontdekking van Koblitz en Miller konden nu schema’s bedacht worden met gebruik van elliptische krommen. Net als integerfactorisatie en discrete logaritme schema’s, zijn schema’s gebaseerd op elliptische krommen public-key schema’s. In dit hoofdstuk zullen we verschillende aspecten van elliptische krommen en hun toepassing in de cryptografie nader bekijken. Allereerst zullen we het wiskundige begrip ‘lichaam’ bestuderen en zien hoe we over deze lichamen elliptische krommen kunnen defini¨eren. Dit geeft de wiskundige basis om de toepassing van elliptische krommen in cryptografie te kunnen doorgronden. Hierna zullen we dan ook bekijken hoe we digitale handtekeningen kunnen zetten door middel van elliptische krommen. Vervolgens zullen we enkele aanvallen op cryptografie met elliptische krommen zien. Hierbij zullen we vooral kijken naar de aanval van Pollard, die vaak in de praktijk wordt toegepast, bijvoorbeeld bij de ECCp-109 en ECC2-109 projecten. Tenslotte zullen we de bruikbaarheid van cryptografie met elliptische krommen evalueren.
147
148
Cryptografie met elliptische krommen
16.1
Eindige lichamen
Elliptische krommen worden altijd over een bepaald eindig lichaam gedefinieerd. Hiermee bedoelen we natuurlijk niet het menselijk lichaam, maar lichaam in de wiskundige zin van het woord. We volgen de beschrijving in Johnson, Menezes en Vanstone [JMV01]. Een eindig lichaam (finite field in het Engels) bestaat uit een eindige set elementen F samen met twee binaire operatoren op F , additie en multiplicatie genaamd, die aan bepaalde wiskundige eigenschappen voldoen [JMV01, LD00]. Zo moeten de operatoren bijvoorbeeld associatief zijn en moet ieder niet-nul element een multiplicatieve inverse hebben. De orde van een eindig lichaam is het aantal elementen in het lichaam. Er is alleen maar een eindig lichaam van orde q dan en slechts dan als q een priemmacht is. Als q een priemmacht is, dan is er eigenlijk maar ´e´en eindig lichaam van orde q. Dit noteren we als Fq . Als q = pm met p priem en m ≥ 1, dan noemen we p de karakteristiek en m de uitbreidingsgraad van Fq . Ook al kunnen we in principe ieder willekeurig priemgetal p als karakteristiek nemen en combineren met een willekeurige uitbreidingsgraad, in de praktijk gebruikt men voor cryptografie met elliptische krommen meestal lichamen Fq met orde een oneven priemgetal (q = p) of een tweemacht (q = 2m ). Dit vereenvoudigt de benodigde wiskunde. We zullen nu naar beide typen lichamen kijken. 16.1.1
Het lichaam
Fp
Omdat p een oneven priemgetal is, wordt Fp ook wel het priemlichaam genoemd. De elementen van Fp zijn de integers {0, 1, . . . , p − 1}. De additie-operatie defini¨eren we als optelling modulo p en de multiplicatie-operatie is vermenigvuldiging modulo p. En inderdaad heeft ieder niet-nul element zo een multiplicatieve inverse. Merk op dat op deze manier Fp in principe equivalent is met de groep Zp . Dat klopt ook aardig, omdat ieder lichaam ook een groep is. Het omgekeerde is echter niet zomaar waar (Z6 is wel een groep, maar F6 geen correct lichaam, omdat 2, 3 en 4 geen multiplicatieve inverse hebben). Voor priemgetallen p geldt dus dat Zp behalve een groep ook een lichaam is. 16.1.2
Het lichaam
F2m
Het lichaam F2m is het tweede soort lichaam dat veel in cryptografie met elliptische krommen gebruikt wordt. Men noemt dit meestal het binaire eindige lichaam. We kunnen deze lichamen namelijk zien als m-dimensionale vectorruimtes over het lichaam F2 . Daarmee bedoelen we dat er m elementen α0 , α1 , . . . , αm−1 in F2m zijn zodanig dat ieder element a ∈ F2m uniek geschreven kan worden als a = am−1 αm−1 +. . .+a1 α1 +a0 α0 met ai ∈ F2 . Zo’n set {αm−1 , . . . , α1 , α0 } wordt een basis van F2m over F2 genoemd. Als deze basis eenmaal bekend is, kan ieder element van het lichaam gerepresenteerd worden met een bitstring (a0 a1 . . . am−1 ). Het moge duidelijk zijn dat een dergelijke representatie erg handig is bij het implementeren van deze lichamen. Er zijn veel verschillende bases van F2m over F2 . Deze onderscheiden zich door het gemak waarmee ze in hardware en software ge¨ımplementeerd kunnen worden en hoe makkelijk bepaalde operaties zijn. In deze sectie zullen we ons vooral bezighouden met de polynomiale basis, omdat deze het eenvoudigste te begrijpen is. Daarna zullen we
16.1 Eindige lichamen
149
twee andere bekende bases kort aanstippen. Interessant is dat het altijd mogelijk is om een element van de ene basis naar de andere basis om te schrijven. Op deze manier kunnen we de gebruikte basis iedere keer laten afhangen van de beoogde toepassing. Polynomiale basis Bij de polynomiale basisrepresentatie gaan we uit van een m-de graads niet-reduceerbaar polynoom van de vorm f (x) = xm + fm−1 xm−1 + . . . + f2 x2 + f1 x1 + f0 met fi ∈ F2 . Met niet-reduceerbaar bedoelen we dat f (x) niet geschreven kan worden als het product van twee polynomen met kleinere graad. Meestal wordt voor f (x) een trinoom of een pentanoom gekozen. Een trinoom is een polynoom van de vorm xm + xk + 1 met 1 ≤ k ≤ m − 1. Een pentanoom is van de vorm xm + xk3 + xk2 + xk1 + 1 met 1 ≤ k1 < k2 < k3 ≤ m − 1. In de polynomiale basisrepresentatie bestaat het lichaam F2m uit alle polynomen over F2 met graad kleiner dan m. Dus F2m = {am−1 xm−1 + . . . + a1 x + a0 | ai ∈ F2 }. Een element am−1 xm−1 + . . . + a1 x + a0 van het lichaam wordt meestal genoteerd door middel van de bitstring (am−1 . . . a1 a0 ) van lengte m, zodat we eigenlijk kunnen zeggen dat F2m = {(am−1 . . . a1 a0 ) | ai ∈ {0, 1}}. Met deze representatie kunnen we nu de benodigde operaties defini¨eren. De additie van twee elementen a = (am−1 . . . a1 a0 ) ∈ F2m en b = (bm−1 . . . b1 b0 ) ∈ F2m geeft als resultaat a + b = c = (cm−1 . . . c1 c0 ) met ci = (ai + bi ) mod 2. Hieruit volgt dat de bitstring met m nullen de identiteit voor additie is. Additie wordt dus bitgewijs gedaan en kan ge¨ımplementeerd worden met een simpele XOR. We merken hier op dat bij alle bases van de F2m additie door middel van een XOR gedaan wordt, waardoor voor deze lichamen de additie-operatie zeer effici¨ent ge¨ımplementeerd kan worden in bijvoorbeeld smart cards. Multiplicatie is iets lastiger. Als we twee elementen a = (am−1 . . . a1 a0 ) ∈ F2m en b = (bm−1 . . . b1 b0 ) ∈ F2m willen multipliceren, dan is het resultaat a · b = c = (cm−1 . . . c1 c0 ) waarbij cm−1 xm−1 +. . .+c1 x+c0 gelijk is aan (am−1 xm−1 +. . .+a1 x+a0 )·(bm−1 xm−1 +. . .+ b1 x + b0 ) modulo f (x) over F2 . Om deze reden wordt f (x) ook wel het reductiepolynoom genoemd. Merk op dat de bitstring met m − 1 nullen gevolgd door een 1 de identiteit voor multiplicatie is. Tot slot defini¨eren we de inverse van een element a ∈ F2m als het unieke element c ∈ F2m waarvoor a·c = 1. Men kan aantonen dat iedere a 6= 0 een inverse heeft, zoals ge¨eist wordt. In Kader 16.1 wordt een rekenvoorbeeld met een polynomiale basisrepresentatie van de F24 getoond. Andere bases Zoals al eerder gezegd zijn er veel verschillende bases. Samen met de polynomiale basis is de normale basis de bekendste. De normale basis van F2m over F2 is een basis van 2 2m−1 de vorm {β, β 2 , β 2 , . . . , βP } voor zekere β ∈ F2m . Ieder element a ∈ F2m kan nu ge2i met ai ∈ F2 , ofwel als de bitstring (am−1 . . . a1 a0 ). schreven worden als a = m−1 i=0 ai β Het is bewezen dat een dergelijke basis altijd bestaat. Het grote voordeel van de normale basis is dat kwadrateren heel erg snel gedaan kan worden, namelijk door middel
150
Cryptografie met elliptische krommen
Kader 16.1: Rekenvoorbeeld F24 Laat f (x) = x4 + x + 1 het reductiepolynoom zijn. Dit polynoom baar. Dan zijn de 16 elementen van F24 : 0 (0000) 1 (0001) x 2 2 x + 1 (0011) x (0100) x +1 2 2 x + x (0110) x + x + 1 (0111) x3 3 3 3 x + 1 (1001) x + x (1010) x +x+1 3 2 3 2 x + x (1100) x + x + 1 (1101) x3 + x2 + x 3 2 x + x + x + 1 (1111)
is niet reducee(0010) (0101) (1000) (1011) (1110)
Voorbeelden van berekeningen met de additie- en multiplicatie-operatie zijn: • (1001) + (1100) = (0101). • (1001) · (1100) = (0110), omdat (x3 + 1) · (x3 + x2 ) = x6 + x5 + x3 + x2 en (x6 + x5 + x3 + x2 ) mod (x4 + x + 1) = x2 + x. • (1001)−1 = (0010) Het element g = x = (0010) is een generator van F24 , omdat de orde 15 is. Het bewijs hiervan laten we aan de lezer. van een cyclische bitverschuiving. Het nadeel is echter dat het multipliceren van twee verschillende elementen weer erg lastig is ([JMV01]). Een andere basis is de sublichaam basis. Als m = m1 · m2 , dan kunnen we F2m beschouwen als een uitbreiding met graad m2 van F2m1 . We kunnen de elementen uit F2m dan representeren met een basis van de vorm {αi βj | 0 ≤ i ≤ m1 , 0 ≤ j ≤ m2 }, waarbij {β0 , β1 , . . . , βm2 −1 } een basis is van F2m over F2m1 en {α0 , α1 , . . . , αm1 −1 } een basis is van F2m1 over F2 . Op deze manier kunnen operaties in twee fasen worden opgesplitst, wat natuurlijk snelheidswinst met zich meebrengt. Veel cryptografen menen echter dat deze mooie structuur ook een aantal gevaren met zich mee kan brengen en daarom is deze basisrepresentatie ook niet zo populair als de twee voorgaande ([BSS99]).
16.2
Elliptische krommen over eindige lichamen
In deze sectie zullen we elliptische krommen defini¨eren over de eindige lichamen van de vorige sectie. De punten op een elliptische kromme vormen samen met regels voor additie van deze punten een groep, die we straks zullen gebruiken bij het construeren van cryptografische systemen met elliptische krommen.
16.2 Elliptische krommen over eindige lichamen
151
Kader 16.2: Elliptische kromme over F23 [JMV01] We bekijken de elliptische kromme y 2 = x3 + x + 4 over F23 . Merk op dat in dit geval dus a = 1 en b = 4 en dat 4a3 + 27b2 = 4 + 432 = 436 ≡ 22 6≡ 0 (mod 23). De punten op de kromme zijn dan: (0, 2) (0, 21) (1, 11) (7, 20) (8, 8) (8, 15) (11, 9) (11, 14) (13, 11) (15, 17) (17, 9) (17, 9)
16.2.1
(1, 12) (4, 7) (4, 16) (7, 3) (9, 11) (9, 12) (10, 5) (10, 18) (13, 12) (14, 5) (14, 18) (15, 6) (18, 9) (18, 14) (22, 5) (22, 19)
Elliptische krommen over
Fp
Laat p > 3 een oneven priemgetal zijn. Dan wordt een elliptische kromme E over Fp gegeven door een vergelijking van de vorm y 2 = x3 + ax + b
(16.1)
waarbij a, b ∈ Fp . Daarnaast moet gelden dat 4a3 + 27b2 6≡ 0 (mod p), omdat de punten van E anders geen correcte groep kunnen vormen. De set E(Fp ) bestaat uit alle punten (x, y) met x, y ∈ Fp en die voldoen aan vergelijking 16.1 (de punten op de kromme), samen met een speciaal punt O dat we het punt op oneindig (point at infinity) noemen. Zie Kader 16.2 voor een voorbeeld van de punten op de kromme y 2 = x3 + x + 4. Nu we een definitie van een elliptische kromme hebben, kunnen we een additieoperatie defini¨eren op de punten van deze kromme. De additieregel staat bekend als de koorde-en-raaklijn regel (chord-and-tangent rule). Deze regel kunnen we het best uitleggen aan de hand van een plaatje. Zo meteen zullen we de bijbehorende formules geven. Laat P = (x1 , y1 ) en Q = (x2 , y2 ) twee verschillende punten zijn op een elliptische kromme E. De som van P en Q, R = (x3 , y3 ), is dan als volgt gedefinieerd. Teken eerst de lijn (koorde) door P en Q. Deze lijn snijdt E in een derde punt. Het punt R is dan de spiegeling van dat derde punt om de x-as (zie figuur 16.3). Het kan echter ook zijn dat we een bepaald punt P = (x1 , y1 ) willen verdubbelen. Dan tekenen we eerst de raaklijn aan E door P . Deze raaklijn snijdt E in een tweede punt. Dan is de verdubbeling van P de spiegeling van dit tweede punt om de x-as (zie figuur 16.4). Vanuit deze geometrische beschrijving kunnen we nu de volgende regels afleiden: 1. P + O = O + P = P voor alle P ∈ E(Fp ). Dus O is de additieve identiteit. 2. Als P = (x, y) ∈ E(Fp ), dan (x, y)+(x, −y) = O. Het punt (x, −y) wordt genoteerd als −P en is de additieve inverse van P . Merk op dat −P inderdaad een punt op de kromme is. 3. Laat P = (x1 , y1 ) ∈ E(Fp ) en Q = (x2 , y2 ) ∈ E(Fp ) met P 6= ±Q. Dan is P + Q = (x3 , y3 ), waarbij x3 = λ2 − x1 − x2 , y3 = λ(x1 − x3 ) − y1
152
Cryptografie met elliptische krommen
Figuur 16.3: Additie van twee punten P en Q[JMV01].
en
µ λ=
y2 − y1 x2 − x1
¶ .
4. Laat P = (x1 , y1 ) ∈ E(Fp ) met P 6= −P . Dan is 2P = (x3 , y3 ), waarbij x3 = λ2 − 2x1 , y3 = λ(x1 − x3 ) − y1
Figuur 16.4: Verdubbeling van punt P [JMV01].
16.2 Elliptische krommen over eindige lichamen
153
Kader 16.5: Elliptische kromme over F24 [JMV01] We bekijken de elliptische kromme y 2 + xy = x3 + g 4 x2 + 1 over het lichaam F24 met reductiepolynoom f (x) = x4 + x + 1 (zie Kader 16.1). Merk op dat in dit geval a = g 4 , waarbij g een generator is van F24 , en dat b = 1 6= 0. De punten op de kromme zijn dan: (0, 1) (1, g 6 ) (1, g 13 ) (g 3 , g 8 ) (g 3 , g 13 ) (g 5 , g 3 ) (g 5 , g 11 ) (g 6 , g 8 ) (g 6 , g 14 ) (g 9 , g 10 ) (g 9 , g 13 ) (g 10 , g) (g 10 , g 8 ) (g 12 , 0) (g 12 , g 12 )
en
µ λ=
3x21 + a 2y1
¶ .
5. Laat P = (x1 , y1 ) ∈ E(Fp ) met P = −P (ofwel y1 = 0), dan is 2P = O. Deze laatste regel is nodig, omdat anders verdubbeling niet goed gedefinieerd zou zijn. De geometrische beschrijving van hierboven schiet immers tekort als P = −P . Merk verder op dat deze additieregels een aantal operaties vereisen in Fp . Zonder verder bewijs vermelden we dat E(Fp ) voor een elliptische kromme E met 4a3 + 27b2 6≡ 0 (mod p) en lichaam Fp met de hierboven gedefinieerde additie-operatie een groep vormt. 16.2.2
Elliptische krommen over
F2m
Elliptische krommen over F2m verschillen in principe maar weinig met hun tegenhangers over Fp . Een elliptische kromme E over F2m wordt gegeven door een vergelijking van de vorm y 2 + xy = x3 + ax2 + b (16.2) waarbij a, b ∈ F2m . Daarnaast moet gelden dat b 6= 0, omdat anders de punten van E geen correcte groep kunnen vormen. De set E(F2m ) bestaat uit alle punten (x, y) met x, y ∈ F2m en die voldoen aan vergelijking 16.2 (de punten op de kromme), samen met het speciale ‘punt op oneindig’ O. In de meeste gevallen wordt b = 1 en a als een macht van een generator van F2m gekozen. Op deze manier zijn namelijk de co¨ordinaten van ieder punt op E te schrijven als een macht van deze generator of de co¨ordinaat is 0. Zie Kader 16.5 voor een voorbeeld. Net als voor elliptische krommen over Fp , kunnen we hier ook regels geven voor additie. Deze worden weer gedefinieerd door een koorde-en-raaklijn regel. Ook al kunnen we deze geometrisch uitleggen, we zullen hier volstaan met de regels in formule-vorm: 1. P + O = O + P = P voor alle P ∈ E(F2m ). Dus O is de additieve identiteit. 2. Als P = (x, y) ∈ E(F2m ), dan (x, y) + (x, x + y) = O. Het punt (x, x + y) wordt genoteerd als −P en is de additieve inverse van P . Merk op dat −P inderdaad een punt op de kromme is.
154
Cryptografie met elliptische krommen
3. Laat P = (x1 , y1 ) ∈ E(F2m ) en Q = (x2 , y2 ) ∈ E(F2m ) met P 6= ±Q. Dan is P + Q = (x3 , y3 ), waarbij x3 = λ2 + λ + x1 + x2 + a, y3 = λ(x1 + x3 ) + x3 + y1 en
µ λ=
y1 + y1 x1 + x2
¶ .
4. Laat P = (x1 , y1 ) ∈ E(F2m ) met P 6= −P . Dan is 2P = (x3 , y3 ), waarbij µ ¶ b y1 2 2 x3 = x1 + 2 , y 3 = x1 + x1 + x3 + x3 . x1 x1 5. Laat P = (x1 , y1 ) ∈ E(F2m ) met P = −P (ofwel x1 = 0), dan is 2P = O. Voor deze additieregels gelden dezelfde opmerkingen als voor de additieregels van punten op elliptische krommen over Fp . Zonder verder bewijs vermelden we dat E(F2m ) voor een elliptische kromme E met b 6= 0 en lichaam F2m met de hierboven gedefinieerde additie-operatie een groep vormt. 16.2.3
Orde van een elliptische kromme
Met de bovenstaande theorie kunnen we nu praktisch aan de slag. Daarover meer in de volgende sectie. Tot slot van deze sectie bekijken we nog een handige definitie. Laat E een elliptische kromme zijn over het eindige lichaam Fq (met dus q = p of q = 2m ). Volgens de stelling van Hasse is dan het aantal punten op deze elliptische kromme √ √ (inclusief het punt O) gelijk aan #E(Fq ) = q + 1 − t, waarbij −2 q ≤ t ≤ 2 q. Hierin is #E(Fq ) de orde van E en t het spoor van Frobenius (trace of Frobenius) van E. Dit spoor van Frobenius is erg belangrijk in de studie van elliptische krommen. Hier zullen we echter volstaan met een verwijzing naar Blake, Seroussi en Smart [BSS99], die dit uitgebreid behandelen.
16.3
Elliptische krommen in cryptografie
In de voorgaande secties is een inleiding gegeven in de wiskunde van elliptische krommen. In deze sectie zullen we zien hoe we elliptische krommen voor cryptografische toepassingen kunnen gebruiken. Hiertoe is het belangrijk om goed te kijken naar de groep die de punten op een elliptische kromme vormen. Dit is namelijk een additieve groep. Schema’s als RSA en ElGamal gaan echter uit van een multiplicatieve groep. Om deze reden is het niet mogelijk om bestaande schema’s zonder wijzigingen te gebruiken voor een schema met elliptische krommen. Alle herhaalde multiplicaties (machtsverheffingen) zullen immers omgezet moeten worden naar herhaalde addities (vermenigvuldigingen), die ook nog eens werken op punten (x, y) in plaats van op getallen. Het is niet triviaal om dit te bewerkstelligen en toch zo weinig mogelijk te wijzigen in de originele protocollen.
16.3 Elliptische krommen in cryptografie
155
In deze sectie zullen we zien hoe we het Digital Signature Algorithm (DSA), dat onderdeel is van de Digital Signature Standard van de Amerikaanse overheid en gebaseerd is op het ElGamal-schema, kunnen omzetten in het Elliptic Curve Digital Signature Algorithm (ECDSA). Hiertoe putten wij uit de uitgebreide beschrijving van Johnson, Menezes en Vanstone [JMV01]. Ook al betekent dit dat we hier niet zullen ingaan op het versleutelen en ontsleutelen van data, zal hopelijk toch voldoende duidelijk worden wat er bij cryptografie met elliptische krommen komt kijken. 16.3.1
Parameters van het ECDSA
Om het ECDSA te kunnen gebruiken, moeten we natuurlijk eerst vastleggen met welke parameters we dat gaan doen. In het geval van DSA waren dit een 160-bit priemgetal q en 1024-bit priemgetal p met q | p − 1 en een generator g ∈ Z∗p van orde q. Voor het ECDSA zijn de parameters iets anders en uitgebreider. Ze zijn als volgt: 1. de orde q van het onderliggende lichaam, met q = p of q = 2m . 2. een aanduiding F R van de gebruikte representatievorm van de elementen in Fq (bijvoorbeeld de polynomiale basisrepresentatie). 3. twee elementen a en b uit Fq die de vergelijking van de elliptische kromme E vastleggen, met 4a3 + 27b2 6≡ 0 (mod p) als q = p of b 6= 0 als q = 2m . 4. twee elementen xG , yG uit Fq die een punt G = (xG , yG ) ∈ E(Fq ) defini¨eren.
√ 5. de orde n van G, die priem moet zijn en er moet gelden dat n > 2160 en n > 4 q. 6. de co-factor h = #E(Fq )/n, die een (kleine) integer is.
In deze beschrijving vallen een aantal dingen op. Als we bijvoorbeeld vergelijken met de parameters van het DSA, dan zien we p niet terug. Meestal zegt men niet meer dan dat p de karakteristiek van Fq is. Hierbij moeten we wel opmerken dat p niet 1024 bits lang hoeft te zijn. Ook met bijvoorbeeld een 192-bits karakteristiek kunnen we veilige parameters maken. Voor m kiest men meestal m > 160. We zullen later zien dat dit nog steeds veilig is. Daarnaast hebben we een soort generator G van orde n > 2160 . Deze vervult een vergelijkbare rol met de generator in ElGamal. Wat verder opvalt is dat er een aantal eisen worden gesteld aan de parameters. Deze moeten garanderen dat de punten op de kromme een groep vormen en dat algemene aanvallen ondoenlijk veel werk kosten. 16.3.2
Parametergeneratie
Nu we weten hoe de parameters er uitzien, kunnen we ze genereren. Dit kunnen we doen met Algoritme 16.6. In dit algoritme zijn stappen 3 tot en met 5 bedoeld om bepaalde klassen van elliptische krommen weg te filteren, omdat op deze krommen effici¨ente aanvallen bekend zijn. Het toch gebruiken van deze krommen zou veiligheidsrisico’s met zich meebrengen. Het vinden van de co¨effici¨enten a en b kan op verschillende manieren. De interessantste manier is wel om deze verifieerbaar random te genereren. Dit kan zowel voor elliptische krommen over een lichaam Fq met q = p als met q = 2m . Door een kromme
156
Cryptografie met elliptische krommen
Zij gegeven q = p of q = 2m en F R. 1. Vind correcte co¨effici¨enten a, b ∈ Fq . Zij E de elliptische kromme y 2 = x3 + ax + b als q = p of y 2 + xy = x3 + ax2 + b als q = 2m . 2. Bereken N = #E(Fq ). √ 3. Verifieer dat N deelbaar is door een groot priemgetal n (n > 2160 en n > 4 q). Ga anders terug naar stap 1. 4. Verifieer dat n geen deler is van q k − 1 voor 1 ≤ k ≤ 20. Ga anders terug naar stap 1. 5. Verifieer dat n 6= q. Ga anders terug naar stap 1. 6. Kies een willekeurig punt G0 ∈ E(Fq ) en laat G = (N/n)G0 . Doe dit totdat G 6= O.
Algoritme 16.6: ECDSA Parametergeneratie
random te genereren kunnen we ons verdedigen tegen toekomstige aanvallen die gericht zijn op bepaalde zeldzame klassen van elliptische krommen. Deze krommen worden immers eigenlijk nooit gegenereerd. Merk op dat bescherming tegen bekende aanvallen al wordt geboden door stap 3 tot en met 5 van het parametergeneratiealgoritme. We kunnen de randomheid verifi¨eren door de random seed waaruit a en b via een algoritme zijn gecre¨eerd te publiceren. Iedereen kan zo berekenen of a en b wel echt random zijn. Dit geeft bescherming tegen partijen die je expres een ‘zwakke’ kromme in de maag willen splitsen. Hoe we a en b random kunnen kiezen en hoe vervolgens de verificatie van deze randomheid werkt zullen we hier niet laten zien, maar we verwijzen naar Johnson, Menezes en Vanstone [JMV01] voor een uitgebreide beschrijving. Een andere manier om a en b te genereren is gebruik te maken van Koblitz krommen. Dit zijn krommen over F2m , waarbij a, b ∈ F2 . Omdat b 6= 0 moet gelden, betekent dit dat er eigenlijk maar twee Koblitz krommen zijn over F2m , namelijk y 2 + xy = x3 + 1 en y 2 + xy = x3 + x2 + 1. Het grote voordeel van het gebruik van Koblitz krommen is dat herhaald optellen (wat zeer belangrijk is binnen ECDSA) zeer effici¨ent gedaan kan worden. Tenslotte nog een opmerking over het berekenen van #E(Fq ). Vroeger (1985) kostte het uitrekenen hiervan enkele uren met het algoritme van Schoof [Sch85]. Tegenwoordig kan dit met het zeer effici¨ente algoritme van Satoh [Sat00] in enkele seconden. Daardoor kunnen de parameters van het ECDSA snel berekend worden. 16.3.3
Sleutelgeneratie, ondertekening en verificatie
Met een gegenereerde set parameters kunnen we nu echt aan de slag. Net als bij DSA en ElGamal zijn deze parameters in principe openbaar en is ECDSA ook een public-key schema. Een sleutel voor Alice die geassocieerd is met een bepaalde set parameters (q, F R, a, b, G, n, h) kan als volgt gegenereerd worden: 1. Kies een random getal d ∈ {1 . . . n − 1}. 2. Bereken Q = dG.
Nu is Q de publieke sleutel van Alice en d haar geheime sleutel. Het vinden van d uit Q en G staat bekend als het Elliptic Curve Discrete Logarithm Problem en is behoorlijk
16.3 Elliptische krommen in cryptografie
157
Laat d de geheime sleutel van Alice zijn en M het te ondertekenen bericht. 1. Kies k random uit {1 . . . n − 1}. 2. Bereken kG = (x, y) en converteer x naar een integer x. 3. Bereken r = x mod n. Als r = 0, ga naar stap 1. 4. Bereken s = k −1 (M + dr) mod n. Als s = 0, ga naar stap 1. 5. De handtekening van Alice over M is (r, s).
Algoritme 16.7: ECDSA Handtekening zetten
pittig. In de volgende sectie zullen we algoritmen bekijken die dit probleem proberen op te lossen. Met haar geheime sleutel kan Alice nu een bericht voorzien van haar handtekening. In Algoritme 16.7 wordt getoond hoe Alice haar handtekening over een integer M berekent volgens het ECDSA-protocol. Algoritme 16.8 laat zien hoe Bob de handtekening vervolgens kan controleren. De eerste stap in dit algoritme is nodig om te voorkomen dat, als de x-co¨ordinaat van G 0 is, voor willekeurige M de handtekening (r = 0, s = M ) geaccepteerd zou worden. We zullen nu bewijzen dat een door Algoritme 16.7 gegenereerde handtekening ook daadwerkelijk geaccepteerd wordt door Algoritme 16.8. Overige feiten over het ECDSA laten we hier achterwege. Stelling 16.1 Een juist gegenereerde handtekening (r, s) wordt geaccepteerd. Bewijs. Laat (r, s) een handtekening van Alice zijn over een bericht M . Herinner dat s = k −1 (M + dr) mod n. Dan geldt k ≡ s−1 (M + dr) ≡ s−1 M + s−1 dr ≡ u1 + u2 d (mod n). Dan is dus u1 G + u2 Q = (u1 + u2 d)G = kG = X en dus x (mod n) = r zoals vereist. Merk op dat aangezien kG 6= O de handtekening a niet in stap 4 verworpen kan worden.
Laat (r, s) een handtekening van Alice zijn over bericht M . 1. Verifieer dat r en s integers zijn uit {1 . . . n − 1}. 2. Bereken u1 = M s−1 en u2 = rs−1 . 3. Bereken X = u1 G + u2 Q. 4. Verwerp de handtekening als X = O. 5. Converteer de x-co¨ordinaat van X naar een integer x. 6. Accepteer alleen als x (mod n) = r.
Algoritme 16.8: ECDSA Handtekening verificatie
158
Cryptografie met elliptische krommen
16.4
Aanvallen op het ECDLP
In de vorige sectie zagen we dat in het ECDSA als geheime sleutel een integer d wordt gebruikt en dat de publieke sleutel Q dan gelijk is aan dG. Het vinden van d uit Q en G is equivalent met het oplossen van het Elliptic Curve Discrete Logarithm Problem (ECDLP). In deze sectie zullen we dit probleem formeel defini¨eren en een aantal algoritmen bekijken die het proberen op te lossen. Daarnaast zullen we even kijken naar het ECCp-109 project, waarbij een van de genoemde algoritmen in de praktijk is gebracht. Definitie 16.2 Het Elliptic Curve Discrete Logarithm Problem (ECDLP) is als volgt gedefinieerd: gegeven een elliptische kromme E over een eindig lichaam Fq , een punt P ∈ E(Fq ) van orde n en een punt Q = wP met 0 ≤ w ≤ n − 1, vind w. In het geval van ECDSA is natuurlijk P = G, Q de publieke sleutel van Alice en w = d is de geheime sleutel van Alice. Een tegenstander die d in handen krijgt kan zich voordoen als Alice. Dit willen we natuurlijk niet en daarom hopen we dat het ECDLP moeilijk oplosbaar is. Dit blijkt gelukkig ook zo te zijn. Het lijkt er zelfs op dat het moeilijker oplosbaar is dan het gewone discrete logaritme probleem (DLP). Voor het DLP bestaat immers met de index-calculus een sub-exponentieel algoritme. Voor het ECDLP is echter tot op heden geen sub-exponentieel algoritme bekend. Laten we dus maar eens kijken naar (mogelijke) aanvallen op het ECDLP. Na¨ıef algoritme: We berekenen gewoon 1P, 2P, 3P, . . . totdat we Q gevonden hebben. Deze methode is natuurlijk erg traag en kost verwacht n/2 stappen. Pohlig-Hellman algoritme: Dit algoritme, dat we ook kennen voor het DLP, probeert het probleem te vereenvoudigen door n (de orde van P ) te factoriseren en vervolgens de moeilijkheid van het probleem op te splitsen op basis van de factoren van n. Doordat we in het ECDSA eisen dat n priem is of bijna-priem (dat wil zeggen, een groot priemgetal n maal een kleine integer co-factor h), is dit algoritme in de praktijk ondoenlijk. Pollard’s rho algoritme: Dit algoritme is van Pollard [Pol78] en ook dit kennen we al van het DLP. Hiervoor bestaat ook een variant voor het ECDLP. Met een simpele optimalisatie (Wiener en Zuccherato [WZ99]) is de verwachte looptijd van dit √ algoritme ( πn)/2 stappen. Geparallelliseerd Pollard’s rho algoritme: Door het rekenwerk voor Pollard’s algoritme te distribueren over r computers, kunnen we een verwachte looptijd van √ ( πn)/(2r) stappen krijgen. Bij de ECCp-109 en ECC2-109 projecten (zie hieronder) werd een dergelijk algoritme gebruikt. Supersingulaire elliptische krommen: Voor deze specifieke krommen (zie Johnson, Menezes en Vanstone [JMV01] voor een definitie) is het bekend dat het ECDLP gereduceerd kan worden tot een DLP over een lichaam Fqk met k ≥ 1. Door te verifi¨eren dat n geen deler is van q k voor kleine waarden van k kunnen we echter voorkomen dat de reductie en de aanval zin hebben.
16.5 Evaluatie
159
Krommen over F2m met m samengesteld: Op deze krommen kan een algoritme worden toegepast (de ‘Weil descent attack’) dat sneller is dan Pollard’s rho algoritme. Daarom wordt het gebruik van dergelijke krommen ontraden (zie Johnson, Menezes en Vanstone [JMV01]). Index-calculus: Het beste algoritme voor het DLP is het Number Field Sieve algoritme, dat voortborduurt op de index-calculus. Verschillende cryptografen hebben echter geargumenteerd dat de meest natuurlijke manier om dit algoritme toe te passen op het ECDLP hoogstwaarschijnlijk zal falen. Het is dus nog maar de vraag of een sub-exponentieel algoritme voor het ECDLP gevonden kan worden. Daarnaast geeft dit ook extra argumenten voor de gestelde moeilijkheid van het ECDLP boven het DLP. 16.4.1
Het ECCp-109 en ECC2-109 project
Bij het ECCp-109 project ging het erom de ECCp-109 Challenge van het bedrijf Certicom op te lossen. Certicom is een Canadees bedrijf dat zich intensief bezighoudt met cryptografie met elliptische krommen. Om het onderzoek naar het ECDLP te stimuleren, startte Certicom in november 1997 de ECC Challenge [Cer97]. Hierbij is het de bedoeling om het ECDLP op een aantal krommen (sommige random over Fp , sommige random over F2m en sommige Koblitz krommen over F2m ) op te lossen. De uitdaging van het oplossen van ECCp-109 (een elliptische kromme over Fp met een n van 109 bits) werd aangenomen door Chris Monico, een PhD-student aan de Notre Dame universiteit in de Verenigde Staten. Hij ontwierp een programma dat ongebruikte processortijd van een computer gebruikt om de geparallelliseerde versie van Pollard’s rho algoritme op ECCp-109 los te laten. Na 549 dagen rekenen verspreid over 247 teams met 10.308 subteams werd de oplossing op 15 oktober 2002 gevonden [Mon]. Het wordt geschat dat voor de berekening in totaal zo’n 36.507.222.000.000.000 punten op de gegeven kromme zijn berekend (rond de 30 miljoen uur rekentijd!). Inmiddels wordt er echter al weer hard gerekend aan het ECC2-109 probleem (een elliptische kromme over F2m met een n van weer 109 bits). Het algoritme is weer het geparallelliseerde Pollard rho algoritme, maar met een iets andere iteratiefunctie. Teske [Tes01] toonde namelijk aan dat de door Pollard gebruikte iteratiefunctie niet voldoende random door de zoekruimte heen loopt en stelde een aantoonbaar betere functie voor. Men hoopt dan ook ECC2-109 in ongeveer drie maanden op te lossen. Voor informatie over Pollard’s rho algoritme in het ECC2-109 project verwijzen we naar het artikel van Monico [Mon02].
16.5
Evaluatie
In de voorgaande secties is steeds een onderdeel van cryptografie met elliptische krommen behandeld. We begonnen met het defini¨eren van de eindige lichamen Fp voor p een oneven priemgetal en F2m voor zekere m. Vervolgens hebben we elliptische krommen over deze lichamen gedefinieerd. De punten op de krommen, die voldoen aan
160
Cryptografie met elliptische krommen
Figuur 16.9: Vergelijking van elliptische krommen met RSA en DSA [Cer00b].
y 2 = x3 + ax + b over Fp of y 2 + xy = x3 + ax2 + b over F2m , vormen samen met het punt op oneindig O en een additie-operatie een groep. Daarna hebben we de toepassing van deze krommen in het Elliptic Curve Digital Signature Algorithm (ECDSA) gezien. Dit algoritme is het elliptische kromme-equivalent van het DSA, dat zelf weer is afgeleid van het ElGamal-schema. Tot slot hebben we gekeken naar een aantal aanvallen op het Elliptic Curve Discrete Logarithm Problem, waarvan lastigheid de grondslag vormt van de veiligheid voor cryptosystemen met elliptische krommen. Dankzij de veronderstelde moeilijkheid van het EDCLP kan men bij cryptografische handelingen met elliptische krommen volstaan met een veel kleinere sleutel dan bij andere cryptografische schema’s. Een 160-bit ECDSA-sleutel biedt bijvoorbeeld een veiligheidsniveau vergelijkbaar met 1024-bits RSA. Dat dit veel voordelen geeft moge duidelijk zijn. Bij cryptografische operaties is veel minder rekenkracht nodig, er is minder opslagruimte nodig en versleutelde of ondertekende berichten blijven veel korter
16.5 Evaluatie
161
[Cer00a]. Deze voordelen komen vooral bij cryptografische systemen op smart cards van pas. Daardoor hebben smart cards met een cryptografisch systeem gebaseerd op elliptische krommen minder geheugen nodig, wordt data sneller heen en weer geschoven, hebben ze geen cryptografische coprocessor nodig en kunnen sleutels op de kaart zelf gegenereerd worden [Cer00b]. Dit maakt cryptografische systemen met elliptische krommen zeer geschikt voor smart cards. Een ander voordeel dat voortvloeit uit de moeilijkheid van het ECDLP is dat elliptische krommen veel beter bestand zijn tegen aanvallen dan andere systemen met eenzelfde sleutellengte (zie figuur 16.9). Een nadeel van cryptografische systemen met elliptische krommen is dat de wiskunde erachter anders en lastiger is dan die van de bekende cryptografische systemen. Dit kan niet alleen de verspreiding van elliptische krommen in de cryptografie hinderen, maar ook het onderzoek naar mogelijke aanvallen. Daarom en omdat het onderzoek naar cryptografie met elliptische krommen jonger is dan dat naar andere systemen, blijft toch de vraag hangen wanneer iemand een einde maakt aan de veronderstelde extra moeilijkheid van het ECDLP boven het gewone discrete logaritme probleem. Tot die tijd lijken elliptische krommen echter een uitstekend alternatief voor de gevestigde cryptografische systemen.
162
Cryptografie met elliptische krommen
Hoofdstuk 17 Wireless security Door Gido van der Star
Met de opmars van draadloze netwerken is het nodig na te denken over de beveiliging hiervan. Om data die over een draadloos netwerk wordt verstuurd te beveiligen is het wired equivalent privacy (ofwel WEP) bedacht. Omdat de communicatie over de ether verloopt is het afluisteren hiervan makkelijker dan bij een normaal netwerk. Normaal is een eerste hindernis toegang tot de communicatie, een toegang tot het netwerk. Bij draadloze netwerken is deze toegang niet nodig, de communicatie kan zo uit de lucht geplukt worden.
17.1
WEP
Het WEP-protocol is bedoeld om drie beveiligingsdoelen te realiseren: Versleuteling: Het belangrijkste doel van WEP is het voorkomen van afluisteren. Toegangscontrole: Een tweede doel van WEP is te voorkomen dat vreemde gebruikers gebruik maken van het netwerk. Data-integriteit: Tenslotte wil WEP ook nog voorkomen dat er data-pakketten gewijzigd kunnen worden. Hiervoor is een integriteits-checksum toegevoegd. WEP maakt gebruik van een gedeelde geheime sleutel k van 40 of 104 bits1 om een frame te versleutelen. Versleuteling gaat als volgt: Eerst berekenen we een integriteitschecksum c(M) over het bericht M. We verkrijgen dan de plaintekst P door c(M) en M te concateneren. Let op dat c(M) dus niet afhankelijk is van de sleutel k en dus ook door iedereen (met kennis van M) berekend kan worden. Hierna gaan we versleutelen met een sleutelstroom die gegenereerd wordt door het RC4-algoritme. Dit algoritme genereert 1
Veel implementaties zeggen 64 of 128 bits-encryptie te gebruiken. Hoewel dit de lengte van de input is van het algoritme dat de stroomsleutel berekend, zijn hiervan 24 bits publiek en dus geen deel van de sleutel.
163
164
Wireless security
Schematisch ziet het er als volgt uit: 1. P = M · c(M ) 2. C = P ⊕ RC4(iv, k) 3. send iv · C
Algoritme 17.1: WEP-encryptie
een lange pseudo-random bitrij als functie van een initializatie-vector iv en de sleutel k. De versleuteling bestaat uit het XOR-en van de plaintekst met deze sleutelstroom. Uiteindelijk verzenden we de iv en de cijfertekst. Om voor toegangcontrole te zorgen, stuurt WEP op het moment dat een gebruiker zich aanmeldt een challenge die door de gebruiker versleuteld teruggestuurt dient te worden. Hiermee zou de gebruiker moeten bewijzen de sleutel te kennen. Later zullen we zien dat de gebruiker ook zonder kennis van de sleutel berichten kan invoeren. WEP faalt hierdoor op dit gebied.
17.2
Veiligheid van WEP
Er zijn meerdere manieren om WEP te kraken, hieronder zullen een aantal daarvan besproken worden. 17.2.1
Brutekrachtaanval
De eerste implementaties van WEP maakten gebruik van een 40 bits sleutel2 . Het is in de huidige tijd geen probleem om deze te kraken. Het kraken van een 104 bits sleutel is echter nog niet haalbaar. Dit geldt als er een volledig random sleutel wordt gekozen en niet (zoals vaak) een makkelijk te onthouden password wordt gebruikt. De meeste implementaties missen een voldoende randomiserende hashfunctie zodat de iets ’slimmere’ brutekracht aanvallen (met bijvoorbeeld behulp van een woordenboek) ook op een 104 bits sleutel mogelijk worden. 17.2.2
Iv hergebruik
WEP maakt voor versleuteling gebruik van een stroomversleutelaar. Deze werkt door een geheime sleutel “uit te breiden” tot een sleutelstroom van onbekende lengte van pseudorandom bits. Een bekende valkuil bij stroomversleuteling is dat een versleuteling van twee berichten met dezelfde sleutel informatie over de beide berichten onthult. (Dit gebeurt als de zelfde iv meerdere malen wordt gebruikt.) Als we de XOR van beide teksten kennen, kunnen we met kennis van een van de teksten simpel de andere achterhalen. Zie voor berekening hiervan Kader 17.2.Bovendien 2
vanwege uivoerregels in de U.S.A
17.2 Veiligheid van WEP
165
Kader 17.2: Gevaar van hergebruik iv Als de iv hergebruikt wordt is de sleutel die de RC4-algoritme gebruikt dezelfde. Hierdoor krijgen we twee teksten in handen die met dezelfde sleutel zijn versleuteld. Er geldt dan C1 = P1 ⊕ RC4(v, k) en C2 = P2 ⊕ RC4(v, k), waaruit volgt C1 ⊕ C2 = (P1 ⊕ RC4(v, k)) ⊕ (P2 ⊕ RC4(v, k)) = P1 ⊕ P2
is natuurlijke taal voldoende redundant om zonder verdere informatie beide teksten af te kunnen leiden. (als we over meerdere cijferteksten onder dezelfde iv beschikken wordt dit zelfs nog makkelijker) Om deze aanval te voorkomen gebruikt WEP een publieke iv die per pakket verschilt. Hierdoor wordt ieder bericht met een andere stroomsleutel ge-XOR-d. De iv wordt meegestuurd met het niet versleutelde deel van het bericht en de geheime sleutel zorgt voor het geheimhouden van de boodschap. Het is bij WEP echter onvermijdelijk dat hergebruik van sleutelstromen voorkomt. Een van de oorzaken hiervan is dat de iv maar 24 bit lang is (er zijn dus minder dan 17 miljoen verschillende iv’s). Een simpele berekening laat zien dat een druk basisstation dat een gemiddelde bandbreedte van 5 Mbps haalt (maximum is 11 Mbps) binnen een halve dag door zijn iv-ruimte heen is. Zelfs bij een minder druk netwerk kan een geduldige aanvaller dus makkelijk berichten vinden waarin dezelfde sleutelstroom voorkomt. Bovendien wordt de iv meegestuurd in het niet versleutelde deel van het bericht, waardoor hergebruik van een sleutelstroom makkelijk door een aanvaller waar te nemen is. Ook maken de meeste draadloze netwerken gebruik van ´e´en password voor het hele netwerk. Ook specificeerd WEP niet hoe de sleutels verspreid moeten worden (wat o.a. het wijzigen van een sleutel een flinke onderneming maakt). Ook dit heeft tot gevolg dat botsingen veel voorkomen. WEP raadt aan om voor ieder pakket een andere iv te gebruiken, maar specificeert niet hoe deze iv’s te kiezen. Sommige toepassingen doen dit erg slecht. De volgende gevallen zijn bekend: - Er zijn kaarten die de iv op 0 zetten als ze ge-reset worden en hem na ieder pakket met 1 ophogen. Omdat dit eerder regel dan uitzondering is, komen de lagere iv’s vaak vaker voor dan de hogere. - Andere implementaties kiezen de iv random voor ieder pakket, dan worden botsingen al na 5000 pakketten verwacht (zie ook de verjaardagsparadox). - Nog erger! WEP verplicht niet dat de iv per pakket verschilt dus kan een implementatie dezelfde iv voor alle pakketten gebruiken en nog steeds aan de standaard voldoen. Als een aanvaller de plaintekst van een versleuteld bericht kent, kan hij ook de stroomsleutel berekenen. Hierna kan hij een database aanleggen van iv’s met hun bijbehorende sleutel. Dit loont de moeite omdat de geheime sleutel van het netwerk waarschijnlijk toch niet snel zal veranderen. De grootte van deze database is in de orde van de lengte van de iv en deze is per definitie 24 bits (bij WEP).
166
Wireless security
Merk op dat de moeilijkheid van deze aanval niet zit in de lengte van de sleutel maar van de lengte van de initializatievector. 17.2.3
Data-integriteit
Om te voorkomen dat een aanvaller de data-integriteit schendt, berekent WEP voor encryptie een checksum over het bericht. De ontvanger kan dan na decryptie ook de checksum berekenen en kijken of deze overeenkomt. De door WEP gebruikte checksum c is hier echter niet geschikt voor omdat zij een lineaire functie is van de boodschap, dwz c(M ⊕ ∆) = c(M ) ⊕ c(∆). Stelling 17.1 Als een aanvaller een wijziging ∆ in een bericht M wil aanbrengen, kan hij M 0 (= M ⊕ ∆) en de bijbehorende checksum berekenen zonder over de geheime sleutel te beschikken. Bewijs. De aanvaller kent cijfertekst C(= RC4(iv, k) ⊕ (M · c(M ))) die hij wil wijzigen. De cijfertekst C 0 horend bij M 0 is dan als volgt te berekenen: C 0 = C ⊕ (∆ · c(∆)) = RC4(iv · k) ⊕ (M · c(M )) ⊕ (∆ · c(∆)) = RC4(iv · k) ⊕ (M ⊕ ∆) · (c(M ) ⊕ c(∆)) = RC4(iv · k) ⊕ (M 0 · c(M ⊕ ∆)) = RC4(iv · k) ⊕ (M 0 · c(M 0 )) Het is dus mogelijk om willekeurig wijzigingen aan te brengen zonder dat dit door de ontvanger gemerkt wordt. Er is hier gebruik gemaakt van het feit dat de checksumac lineair is. 17.2.4
Zwakte in RC4
In augustus 2001 is er door Fluhrer, Mantin en Shamir een zwakte in het RC4-algoritme gevonden [FMS]. Hierdoor kan met kennis van de eerste inputbits van het algoritme de rest van de inputbits berekend worden. Omdat het algoritme door WEP wordt toegepast op de publieke iv geconcateneerd met de sleutel, is de sleutel te berekenen. Een complete uitwijding hierover zou hier te ver voeren, maar is voor de liefhebber te vinden in het artikel van Fluhrer, Mantin en Shamir.
17.3
Draadloos veilig?
Na het vorige hoofdstuk rijst de vraag hoe re¨eel deze aanvallen zijn, en hoe veilig WEP nu eigenlijk is (of is te maken). WEP is in ieder geval niet bestand tegen een doordachte aanval. Wel kan WEP gezien worden als een groot “verboden voor onbevoegden”-bord.
17.3 Draadloos veilig?
167
Kader 17.3: Wardriving In de wereld van de hackers is de laatste jaren een nieuwe hobby ontstaan: wardriving. Benodigdheden: - Laptop met draadloos netwerk; - GPS, liefst een die op de laptop is aan te sluiten; - Optioneel: een auto. Stap in de auto en zet de laptop in scanning mode (dit wordt meestal niet ondersteund door de fabrikant maar m.b.v. backwards engineering wel te doen) en rijd door de stad. Eenmaal weer thuis is met behulp van de GPS-data en logs van de scan te achterhalen waar draadloze netwerken bestaan en wat hun kenmerken zijn. Een schurk zou dan met een richtantenne eenvoudig ongemerkt een netwerk op kunnen voor illegaal gebruik. Om toevallig afluisteren te voorkomen is WEP ook wel te gebruiken. Het is dan wel aan te raden enkele aanvullende maatregelen te nemen. Om (voor WEP) optimale veiligheid te cre¨eren wordt het aangeraden de volgende acties te ondernemen: • Activeer WEP wel, er moet toch wel enkele (hoewel geringe) moeite gedaan worden om WEP te kraken; • Verander de sleutel regelmatig. Dit zorgt ervoor dat er continu inspanningen moeten worden geleverd om in het netwerk te komen; • Beperk de toegang tot basisstation: de basisstation zijn ontworpen om makkelijk in gebruik te nemen. Een hardware reset heeft meestal ook een software reset tot gevolg. De default paswoorden en netwerknamen staan op internet en WEP staat per default uit; • Zet het basisstation uit als je het niet gebruikt. Dit voorkomt dat iemand die toevallig voorbijloopt van jouw internetverbinding gebruikmaakt; • Plaats het draadloze netwerk buiten de firewall die de rest van het netwerk van internet scheidt; • Stel de zendsterkte van het basisstation zo in dat er buiten het gebruikersgebied (bijna) geen ontvangst is; • Behandel het netwerk als per definitie onveilig. Tot slot is het natuurlijk altijd mogelijk om behalve met WEP de data ook nog op een andere (betere) manier te beveiligen. Zo kan er een VPN (virtual private network) aangemaakt worden om alle data over te versturen (hoofdstuk 6).
168
Wireless security
17.4
Conclusie
Uit cryptografisch oogpunt stelt WEP niet veel voor. Toch kan het gebruik ervan nuttig zijn, de tools om WEP te kraken zijn voornamelijk voor UNIX geschreven. Hierdoor zal je als simpele thuis-gebruiker je privacy (in combinatie met andere maatregelen) goed kunnen beschermen. WEP faalt echter volledig als het gaat om het beschermen van informatie als dit van essentieel belang is, bijvoorbeeld bij grote bedrijven. Als een schurk eenmaal weet waar het draadloze netwerk ’in de lucht’ hangt, kan hij makkelijk en ongemerkt het netwerkverkeer afluisteren en wijzigen. Hiervoor hoeft hij dan niet eens meer fysiek in de buurt te zijn. Een netwerk dat voor encryptie alleen op WEP vertrouwt dient dan ook als onveilig te worden aangemerkt.
Hoofdstuk 18 AES - Rijndael Door Niels Egberts
In dit hoofdstuk wordt de opvolger van DES, namelijk Rijndael (per 2001 officieel AES) uitgebreider toegelicht. Rijndael is in 1997 ontwikkeld door twee wetenschappers uit Belgie: Dr. Joan Daemen van Proton World International en Dr. Vincent Rijmen, een postdoctorale onderzoeker bij het Electrical Engineering Department (ESAT) aan de Katholieke Universiteit van Leuven. Beiden zijn zij heel erg actief geweest in de cryptografiewereld. De naam van het algoritme is afkomstig van hun achternamen. AES wordt vooral gebruikt door de overheid van de VS voor het versleutelen van gevoelige doch niet strict geheime informatie.
18.1
Totstandkoming van een standaard
Experts op het gebied van cryptografie zeggen het steeds weer: “Alleen een publiekelijk geanalyseerd algoritme kan veilig zijn”. Algoritmes met geheime ontwerpen zijn bijna altijd erg zwak. Het mooiste voorbeeld hiervan is het A5 algoritme dat gebruikt wordt in GSM mobiele telefonen. Dit werd al gekraakt enkele dagen nadat het gelanceerd was (hoofdstuk 19). Zelfs wanneer een algoritme bekend is, moet duidelijk zijn waarom het algoritme op die manier ontworpen is. Als dit niet het geval is zullen gebruikers snel het algoritme wantrouwen. Een voorbeeld hiervan is DES: het ontwerp van de S-boxen door de NSA (National Security Agency) zorgde ervoor dat veel gebruikers het vermoeden hebben dat er een ‘geheime deur’ in verborgen zit waardoor de NSA makkelijk de code kan decrypten. De AES selectie procedure daarentegen was echt open: Iedereen kon een algoritme inleveren en de beste cryptanalisten van de wereld konden het analyseren. Ook werden de ontwerpprincipes openbaar gemaakt. 18.1.1
De eisen die aan AES werden gesteld
De eisen waaraan AES volgens de NIST moest voldoen zijn de volgende: 169
170
AES - Rijndael
1. Het moet een symmetrische cipher zijn (zelfde sleutel voor encryptie en decryptie), en om preciezer te zijn moet het algoritme gebruik maken van blokversleuteling aangezien de publieke analyse van stroomversleuteling nog niet zo goed ontwikkeld schijnt te zijn volgens de NIST. 2. De blokgrootte moet op z’n minst 128 bits zijn en sleutels van 128, 192 en 256 bits moeten mogelijk zijn. 3. AES moet verschillende doelen kunnen dienen. Daarom moet het makkelijk te implementeren zijn in zowel hardware als software en moet het in beide gevallen goed presteren. 4. AES moet bestand zijn tegen alle bekende methoden van cryptanalyse, zeker tegen timing en power aanvallen. 5. Om AES speciaal in smartcards te kunnen gebruiken moet het algoritme kunnen werken met beperkte bronnen zoals korte code en weinig geheugen. 6. Er mag geen patentrecht op het algoritme zitten, iedereen moet vrij zijn om het te kunnen gebruiken. 18.1.2
De selectieprocedure
Maar liefst 15 kandidaten werden ingeleverd bij de NIST om een gooi te doen naar de AES-kroon. Helaas bleek voor 10 van hen de publieke evaluatie een te groot obstakel zodat er 5 kandidaten overbleven. Zij hadden de kwalificatieronde glansrijk doorstaan. Nadat de NIST de vijf overgebleven kandidaten bekend had gemaakt kwam er een probleem bovendrijven: Alle vijf algoritmes waren heel goed en waren ook erg moeilijk met elkaar te vergelijken. Elk algoritme kon makkelijk de nieuwe standaard worden, geen enkel algoritme had een duidelijk zwak punt. Elk algoritme had ook wat kleine voordelen ten opzichte van de andere algoritmes. Maar welke eigenschappen zijn nou de belangrijkste? Even werd er aan gedacht om alle vijf algoritmes tot winnaar uit te roepen, aangezien er meer voordelen dan nadelen aanzaten. De NIST besloot toch anders, en riep alleen Rijndael uit tot winnaar. De redenen die de NIST hiervoor aandroeg, maar waarvan niet iedereen echt overtuigd was, waren de volgende: • Zou een zwakte in Rijndael ontdekt worden, dan zouden grotere sleutellengtes meer veiligheid geven. • In het ergste geval zou 3DES een alternatief zijn voor een aantal jaar aangezien 3DES nog veilig blijft in de nabije toekomst. • Het is goedkoper om ´e´en algoritme te implementeren, zeker in hardware, dan vijf algoritmes. • Ontwikkelaars van soortgelijke algoritmes zouden patent kunnen claimen. Als maar ´e´en algoritme is geselecteerd zijn de kosten hiervan minder groot. De NIST verwacht dat AES de standaard voor het versleutelen van berichten zal blijven voor de komende 20 jaar of meer.
18.2 Specificaties van Rijndael
18.2
171
Specificaties van Rijndael
Rijndael werd ontworpen met volgende eigenschappen als belangrijke speerpunten: • Bestendig tegen alle bekende aanvallen • Snel en compacte code op een groot aantal platformen • Simpel ontwerp Rijndael gebruikt een blokversleuteling met onafhankelijke blokgrootte en sleutellengte varierend van 128 tot 256 bits met stappen van 32 bits. AES gebruikt als blokgrootte alleen 128 bits en als sleutellengte 128, 192 of 256 bits. Dit betekent dat er ongeveer: • 3,4 × 1038 mogelijke 128-bits sleutels • 6,2 × 1057 mogelijke 192-bits sleutels en • 1,1 × 1077 mogelijke 256-bits sleutels zijn [NIS02]. In vergelijking met DES, dat 7,2 × 1016 56bits sleutels heeft, betekent dit dat er alleen al in de orde van 1021 keer meer 128-bits sleutels zijn dan DES sleutels. Voordat encryptie plaats kan vinden wordt de klaretekst in blokken van 128 bit regel voor regel geschreven naar een 4x4 matrix. Deze 4x4 matrix wordt door Daemen en Rijmen een State genoemd. Elke ronde in AES genereert een nieuwe State uit de oude State. De State na de laatste ronde representeert dan de ciphertekst van het blok van 128 bits. Vervolgens wordt de procedure opnieuw gestart voor de volgende 128 bits. 18.2.1
Sleutelgeneratie
De subsleutels die in elke ronde gebruikt gaan worden, worden gegenereerd uit de originele sleutel. Voor een 128-bits sleutel worden 44 ‘words’ van 4 bytes gemaakt. Voor de 192-bits sleutel zijn dit 52 words en voor de 256-bits sleutel zijn dit 60 words. Per ronde worden er dan 4 words gebruikt die verticaal naast elkaar gelegd worden. Zo onstaat ook hier een matrix van 16 bytes (4 × 4). Het algoritme voor de sleutelexpansie neemt als input een 128-bits sleutel en een lineaire array voor 44 words en vult die array met words gegenereerd uit de sleutel. De pseudocode van het algoritme dat de expansie beschrijft is te vinden in figuur 18.1. Elk word van de sleutel hangt af van 2 andere words. Het word w[i -1] en het word w[i - 4]. In drie van de 4 gevallen wordt een simpele XOR functie gebruikt. Als de positie van het word echter een veelvoud is van 4 dan wordt een andere functie eerst nog toegepast. Hierin is RotWord een transformatie van 1 byte naar links. SubWord doet een byte substitutie op elke byte van het word, gebruikmakend van de S-box (figuur 18.2). Het resultaat hiervan wordt geXORed met een ronde constante Rcon[j]. De ronde constante is een word waarvan de 3 meest rechtse bytes altijd 0 zijn. Dus een XOR van een word met een Rcon is altijd een XOR op de linkerbyte van het word.
172
AES - Rijndael
Key Expansion ( byte key[16], word w[44] )
{ word temp for (i = 0; i < 4; i++) w[i] = (key[4*i],key[4*i + 1],key[4*i + 2],key[4*i + 3]); for (i = 4; i < 44; i++) { temp = w[i - 1]; if (i mod 4 = 0) temp = SubWord (RotWord (temp)) ⊕ Rcon[i/4]; w[i] = w[i-4] ⊕ temp } } Figuur 18.1: Het algoritme voor de sleutelgeneratie De ronde constante is anders voor elke ronde en hangt af van de vorige ronde. De toevoeging hiervan elimineert de symmetrie tussen de manier waarop rondesleutels worden gegenereerd in verschillende rondes. Door de keuzes gemaakt in dit algoritme is het niet mogelijk om de sleutel te vinden met kennis van een gedeelte van de sleutel. Verder is het niet mogelijk om verschillen in de rondesleutels te vinden aan de hand van verschillen in de ciphertekst. Dit komt door de nonlineariteit van het algoritme. 18.2.2
Rondes in AES
Rijndael heeft een variabel aantal ronden: • 10 ronden als het blok en de sleutel 128 bits lang zijn. • 12 ronden als of het blok of de sleutel 192 bits lang is, en geen van die twee is langer dan 192. • 14 ronden als of het blok of de sleutel 256 bits lang is. Elke reguliere ronde heeft vier stappen. Voor elke reguliere ronde zijn de stappen: 1. Byte substitutie (ByteSub) 2. Byte permutatie (ShiftRow ) 3. Matrix manipulatie (MixColumn) 4. XOR met de sleutel (AddRoundKey ) Voordat de reguliere rondes beginnen wordt eerst een AddRoundKey stap gedaan. Daarna volgen 9, 11 of 13 reguliere rondes en ´e´en laatste ronde waarin de MixColumn stap wordt weggelaten. ByteSub De ByteSub stap is een simpele opzoek stap. AES gebruikt een 16 x 16 matrix van byte waarden, genaamd een S-box, die alle permutaties van alle mogelijke 256 8-bit waarden bevat. Elke individuele byte van de State wordt opgezocht op de volgende manier:
18.2 Specificaties van Rijndael
173
Figuur 18.2: S-box De 4 linkerbits van de byte worden gebruikt als waarde voor de rij en de 4 rechterbits worden gebruikt als de waarde voor de kolom. Deze waarden fungeren als indexen voor de S-box om zo een unieke 8-bit uitvoerwaarde te bemachtigen. Het gaat te ver om hier de opbouw van de S-box te bespreken. Hierover wordt meer geschreven in [Sta03]. De S-box is zo ontworpen dat hij bestand is tegen elke bekende cryptanalytische aanval. Sterker nog, de ontwerpers zochten een ontwerp met zo min mogelijk correlatie tussen de invoer- en de uitvoerbits en het moest de eigenschap hebben dat de uitvoer niet beschreven kan worden als een simpele wiskundige functie van de invoer. De S-box is weergegeven in figuur 18.2 De ByteSub stap is een vaste transformatie en is voor iedere invoertekst hetzelfde, er is dus nog geen sprake van encryptie. ShiftRow De ShiftRow stap is een permutatie van de State. Als de State 128 bits lang is en de bytes zijn genummerd 1-16, dan zou de permutatie als volgt werken: 1 2 3 4
5 6 7 8
9 13 10 14 11 15 12 16
wordt
1 6 11 16
5 10 15 4
9 13 14 2 3 7 8 12
De eerste rij blijft gelijk. De tweede rij wordt 1 positie naar links geschoven. De derde rij 2 posities naar links en de vierde rij 3 posities. Andere blokgroottes hebben andere permutaties. Het idee, het verschuiven van de rijen, lijkt vrij simpel en het lijkt erop alsof het weinig toevoegt aan het encryptieproces. Toch voegt het veel toe. Zoals we verderop zullen zien wordt in de AddRoundKey stap de sleutel kolom voor kolom toegepast. Dit betekent dat door de ShiftRow stap de bytes in andere kolommen worden geplaatst met een lineaire afstand van een veelvoud van 4 bytes. Wel degelijk een groot
174
AES - Rijndael
effect dus! De ShiftRow stap is ook voor iedere invoertekst hetzelfde en net als bij de ByteSub stap vindt hier dus ook nog geen encryptie plaats. MixColumn De MixColumn stap opereert op elke individuele kolom van de State. Elke byte van de kolom wordt beinvloed door alle 4 bytes uit de kolom. De State wordt vermenigvuldigd met de volgende gecompliceerde maar toch vaste matrix: 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 De coeffici¨enten van de matrix zijn zo gekozen dat een goede vermenging van de bytes van elke kolom wordt bereikt. De MixColumn stap gecombineerd met de ShiftRow stap zorgen ervoor dat na een aantal ronden alle uitvoerbits afhangen van alle invoerbits. Dit principe, genaamd diffusie komen we later nog tegen. De transformaties ByteSub, ShiftRow en MixColumn zijn allemaal zo gekozen dat ze zo simpel mogelijk zijn (en dus ook makkelijk te analyseren) maar in contrast met deze simpelheid toch bestand zijn tegen alle bekende methodes van cryptanalyse. AddRoundKey In de AddRoundKey stap worden de 128 bits van de State bit voor bit geXORed met de 128 bits van de sleutel. De operatie kan gezien worden als een kolomsgewijze operatie tussen de 4 bytes van een State en ´e´en word van de rondesleutel die in het begin gemaakt zijn. Uiteindelijk wordt dus elke bit van de State beinvloed door de AddRoundKey stap. De sleutel die in de ronde gebruikt gaat worden (ook een 4x4 matrix) wordt bitgewijs geXORed met de State. Alleen deze transformatie voegt iets geheims toe aan de State. Pas nu is er sprake van encryptie. Rijndael kan ook overweg met 192- en 256-bits blokken. Dan gebruikt het 4x6 en 8x6 matrices als states en subsleutels. Dit is echter niet AES aangezien de standaard zegt dat alleen blokken van 128 bits als invoer gebruikt mogen worden. 18.2.3
Decryptie
Decryptie is bij AES niet het simpelweg omkeren van alle stappen. Voor decryptie zijn drie nieuwe stappen nodig namelijk: InvByteSub, InvShiftRow, InvMixColumn. AddRoundKey blijft hetzelfde omdat twee keer XORen de originele invoer oplevert; de XOR-operatie is z’n eigen inverse. Verder verschillen de stappen InvByteSub, InvShiftRow, InvMixColumn niet veel van de originele stappen. InvByteSub gebruikt de inverse van de S-box voor de bytesubstitutie. InvShiftRow verschuift de bytes naar rechts in plaats van naar links en InvMixColumn gebruikt dezelfde matrix als MixColumn maar vermenigvuldigt elke kolom nog met de vector ( 0B, 0D, 09, 0E ). ([Rij99])
18.3 De veiligheid van AES
175
Vervolgens worden er weer 9, 11 of 13 reguliere rondes gedaan met na afloop een extra AddRoundKey stap en vooraf ´e´en ronde waarin de InvMixColumn stap wordt weggelaten. De volgorde van de stappen wordt dan als volgt: 1. AddRoundKey 2. InvMixColumn 3. InvShiftRow 4. InvByteSub Uiteindelijk wordt dus weer de plaintekst opgeleverd.
18.3
De veiligheid van AES
De veiligheid van Rijndael is volledig gebaseerd op het aantal rondes. Het kraken van Rijndael met maar ´e´en ronde zou een eenvoudige opgave zijn voor een cryptanalist. Aangezien ByteSub, ShiftRow en MixColumn vaste, omkeerbare transformaties hebben, zou de veiligheid hetzelfde zijn als het XORen van een 128-bit lange sleutel met stukken klaretekst van 128-bit. Zo’n encryptie kan gekraakt worden in enkele milliseconden. Rijndael is echter een productalgoritme, dat wil zeggen, gelijke transformaties (alleen verschillend in de gebruikte subsleutels in de AddRoundKey stap) worden achter elkaar steeds opnieuw toegepast, elk op het resultaat van de vorige transformatie. Uit de analyses van DES blijkt dat de veiligheid dan meer dan exponentieel toeneemt per ronde. Belangrijke begrippen die betrekking hebben op de veiligheid van een cryptografisch algoritme zijn: confusie en diffusie. Confusie houdt in dat de structuur wordt afgebroken. Uit het resultaat van een ronde moet het niet mogelijk zijn om enige conclusies over de invoer te kunnen trekken. Ideaal zou zijn als elk bit van de sleutel invloed heeft op elk bit van de uitvoer. In een AES ronde zijn de ByteSub en AddRoundKey stappen confusiestappen. Diffusie betekent dat de uitvoer afhankelijk wordt van de vorige invoer (plain of ciphertekst). Ideaal zou zijn als elke bit in de (vorige) invoer invloed heeft op elk bit in de uitvoer. In een AES ronde zijn de ShiftRow en MixColumn stappen difussiestappen. Doordat de ontwerpers deze stappen zorgvuldig gekozen hebben wordt aan beide begrippen maximaal voldaan. 18.3.1
Mogelijke aanvallen op AES
Voor Rijndael met zes rondes zou een aanval met een gekozen klaretekst, waarbij een operatie een microseconde zou duren, ongeveer 200 dagen nodig hebben voordat de sleutel, die gebruikt is, bekend is. Als een operatie een nanoseconde zou duren zou dit zelfs gereduceerd kunnen worden tot vijf uur. Voor Rijndael met zeven rondes moeten er al 2120 operaties worden uitgevoerd in plaats van de 244 operaties bij zes rondes. Stel dat een operatie ´e´en nanoseconde zou duren, dan zou, in tegenstelling tot de vijf uur bij zes rondes, een aanval 4 × 1019 jaren nodig hebben voordat de sleutel bekend is. Deze aanval heeft theoretisch alleen kans als de gebruikte sleutel langer is dan 128 bits anders zou een brute kracht aanval bijna net zo snel zijn.
176
AES - Rijndael
Praktisch gezien, is elke ronde slechts een vaste transformatie, gevolgd door een XOR operatie met een geheime subsleutel. Maar de herhaalde executie van zulke transformatiegroepen in 10 of meer ronden, cre¨eert een probleem dat nog niet opgelost kan worden door cryptanalisten. En het is natuurlijk te hopen dat dit in de toekomst ook nog het geval blijft. Zowel differenti¨ele en lineaire cryptanalyse en interpolatie aanvallen werken niet tegen AES. Daemen en Rijmen bewijzen dit in [Rij99]. Differenti¨ele analyse (een gekozen klaretekst aanval) kijkt naar het verschil in paren van gerelateerde klareteksten ge¨encrypt onder dezelfde sleutel. Een voorbeeld hiervan is hierboven beschreven. Lineaire analyse (een gekende klaretekst aanval) probeert de sleutel succesvol te benaderen met behulp van lineaire functies. Verder zijn er geen zwakke sleutels waarvoor cryptanalyse makkelijker zou kunnen zijn. Ook zijn er geen aanvallen mogelijk met gerelateerde sleutels die enig effect hebben zoals bij IDEA. 18.3.2
Simpel doch extreem veilig
Toch hebben sommige experts twijfels uitgesproken over het feit dat zo’n simpel algoritme zo veilig kan zijn. Maar er is geen rationele reden om niet zeker te zijn van de veiligheid van AES. Gecompliceerde procedures zoals DES zijn in theorie moeilijker aan te vallen of te breken. Echter, de computers worden steeds sneller en sneller en ze kunnen tegenwoordig formules aan die veel groter zijn dan enig mens aan kan. Daarom is het beter om een algoritme te gebruiken dat we volledig begrijpen aangezien veiligheid door onzichtbaarheid (“security by obscurity”) nooit echt goed gewerkt heeft binnen de cryptografie. Aangezien de makers van Rijndael de volledige achtergrond van hun ontwerp uitleggen tot in details kunnen we gerust aannemen dat er geen geheime toegang tot het algoritme is. Het algoritme is dus verrassend veilig gezien zijn simpelheid. 18.3.3
Waarom geen variabel aantal rondes?
Voor de evaluatie van de vijf algoritmes had de NIST de optie overwogen om het aantal rondes dat het algoritme moest gebruiken ook variabel te maken om de veiligheid te verhogen. Uiteindelijk is dit er niet van gekomen om verschillende redenen: • De algoritmes moesten langer en uitgebreider geanalyseerd worden alvorens een goed oordeel geveld kon worden over de veiligheid. • In veel specificaties van de algoritmes was geen rekening gehouden met een variabel aantal rondes en het was dan ook niet duidelijk uit de specificatie te halen hoe de algoritmes zouden reageren op een variabel aantal rondes. • Voor veel algoritmes was het niet duidelijk wat voor gevolgen het variabel maken van de rondes op de veiligheid zou hebben. • Geen enkele ontwerper had een voorstel tot het variabel maken van de rondes gedaan.
18.4 Een chronologisch tijdoverzicht van het ontstaan van AES
177
Vanwege deze redenen vond de NIST het de beste oplossing als de algoritmes werden beoordeeld op het ontwerp waarmee ze ingeleverd waren en dus geen variabel aantal rondes aan de eisen toe te voegen. De ontwerpers van Rijndael stellen wel in [Rij99] dat hun algoritme meer rondes aankan. Echter dit is een standaard parameter die veranderd kan worden. Deze parameter is niet random en hoeft dus niet als variabel te worden beschouwd. Het is dus echter wel mogelijk om, wanneer een aanval op 10 rondes mogelijk blijkt te zijn, een Rijndael versie te lanceren die gebruikt maakt van 20 rondes om zo de veiligheid weer op niveau te krijgen.
18.4
Een chronologisch tijdoverzicht van het ontstaan van AES
• 2 januari 1997: Oproep van NIST om voorstellen in te leveren tot 12.9.97. • 5 april 1997: Gedurende een AES workshop worden de exacte eisen voor het algoritme vastgesteld. • 20 augustus 1998: Eerste AES Conferentie. NIST laat weten dat ze 15 inzendingen heeft ontvangen. De publieke evaluatie start. • Maart 1999: Tweede AES conferentie. Discussie over de verkregen evaluaties • 15 april 1999: Einde van de publieke evaluatie. Vijf kandidaten (MARS, ontwikkeld door IBM, RC6, ontwikkeld door RSA laboratoriums, Rijndael, Serpent, ontwikkeld door Ross Anderson, Eli Biham en Lars Knudsen en Twofish, ontwikkeld door Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall en Niels Ferguson) gaan naar de volgende ronde. Vanaf dat moment worden alleen deze 5 algoritmes nog bekeken. • 13+14 april 2000: Derde AES Conferentie. De analyses van de overgebleven 5 kandidaten worden gepresenteerd en besproken. • 15 mei 2000: Einde van de publieke discussie. • 2 oktober 2000: De winnaar, Rijndael, wordt uitgeroepen. • November 2000: De FIPS (Federal Information Processing Standard) standaard wordt openbaar gemaakt en opengesteld voor discussie. • Februari 2001: Einde van de publieke discussie van de standaard. • November 2001: Bevestiging van de standaard.
18.5
Samenvatting en Conclusies
Doordat DES niet meer veilig genoeg is, is de NIST begin 1997 begonnen aan het opzetten van de opvolger van DES: AES. Het algoritme dat geselecteerd werd voor AES
178
AES - Rijndael
werd Rijndael. Rijndael is een algoritme dat verschillende sleutellengtes en blokgroottes aan kan en sleutels van minimaal 128 bits gebruikt. Hierdoor zal het zeker niet snel bruteforce te kraken zijn in de nabije toekomst. Verder is het raamwerk van Rijndael heel simpel opgezet. Toch is het enorm veilig, juist door deze simpelheid. Alle experts hebben 5 jaar lang de tijd gehad om een aanval te verzinnen op Rijndael maar niemand die een manier kon verzinnen. Door deze openheid hoeft er ook geen argwaan te ontstaan tegen het algoritme: ‘Achterdeurtjes’ zijn er niet. Daarom is AES de standaard voor de komende jaren en zal het ook veel gebruikt gaan worden binnen de wereld van de cryptografie.
Hoofdstuk 19 Real-time aanval op A5/1 Door Eelko Penninkx
In dit paper wordt het debacle van het encryptiealgoritme A5/1 onderzocht. We zullen een aanval op het algoritme bespreken, waarmee het algoritme na enkele maanden voorwerk binnen een seconde op een enkele PC gekraakt kan worden. We zullen zien dat erbij het ontwerpen van het algoritme fouten gemaakt zijn, welke voorkomen hadden kunnen worden door niet uit te gaan van security through obscurity: het baseren van de veiligheid op geheimhoudig van het gebruikte algoritme in plaats van op de kracht van het algoritme zelf.
19.1
Inleiding
Bij invoering van de mobiele telefoons is uiteraard nagedacht over bescherming tegen het afluisteren van gesprekken. Hiervoor zijn een tweetal algoritmen ontworpen, A5/1 en A5/2. Binnen Europa wordt gebruik gemaakt van het sterkere A5/1 algoritme, waar ondertussen 100 miljoen mensen gebruik van maken. De ontwerpers hebben het exacte algoritme geheim willen houden, wat uiteraard mislukt is. Reeds snel na introductie lekte informatie uit, en toen in 1999 door reverse engineering [BGW99] het volledige algoritme bekend werd, was het spreekwoordelijke hek van de dam. Reeds enkele maanden later kwamen Biryukov, Shamir en Wagner [BSW00] met een aanval op het algoritme die binnen een seconde op een enkele PC uit te voeren is. Het is deze aanval die in dit paper besproken wordt.
179
180
Real-time aanval op A5/1
Figuur 19.1: Een LFSR van lengte 8
19.2 19.2.1
Werking Introductie
Voor de communicatie tussen een mobiele telefoon en het basisstation van de provider worden tegelijk gegevens verstuurd en ontvangen. Communicatie geschiedt in frames, waarbij een frame 4,6 milliseconde communicatie bevat. Door de aard van het netwerk worden regelmatig frames verloren, hierdoor kan de decryptie van een frame niet afhankelijk zijn van eerdere frames. Een frame bestaat uit 228 bits, eerlijk verdeeld over inkomend en uitgaand verkeer. De inhoud van een frame is voor een deel gecomprimeerde spraak, en voor een deel controleinformatie. Elk frame is voorzien van een oplopend 22 bits framenummer i, welke aan beide kanten bekend is. Zowel zender als ontvanger hebben de beschikking over een geheime 64-bits sleutel K, welke regelmatig ververst wordt. Uit deze sleutel en het framenummer wordt per frame een bitstring Si gegenereerd, welke middels een XOR-operatie met de data gecombineerd wordt. Decryptie is een kwestie van wederom een XOR-operatie met Si . De veiligheid van het algoritme berust op de geheime sleutel K, zonder welke het onmogelijk is Si af te leiden, en eventueel afgeluisterde data te kunnen decrypten. Indien een aanvaller de beschikking heeft over deze geheime sleutel kan hij (of zij) met behulp van relatief goedkope apparatuur de gesprekken afluisteren. 19.2.2
Lineair Feedback Shift Registers
Binnen A5/1 wordt veelvuldig gebruik gemaakt van zogenaamde Lineair Feedback Shift Registers (LFSR). Een LFSR is een register van n bits, die overgaat naar een nieuwe state door het verschuiven van de bits naar links. Hierbij wordt de nieuwe waarde van de rechterbit (bit 0) bepaald door de XOR te nemen van de waarde van een aantal andere registers. Men spreekt hier van taps op de andere registers. Zie afbeelding 19.1 voor een voorbeeld van een LFSR. Het is eenvoudig in te zien dat de state gegeven door louter 0-waarden in zichzelf overgaat. Afgezien van dit speciale punt is het door een juiste plaatsing van de taps mogelijk dat een LFSR achtereenvolgens alle 2n − 1 andere states doorloopt, alvorens weer in de startpositie terug te keren. Alle LFSR’s die gebruikt worden binnen het A5/1 algoritme hebben deze eigenschap. We merken op dat een LFSR eenvoudig omgekeerd kan worden. Dit wordt bereikt door de bits naar rechts te schuiven, en de meest linkerbit te vullen met de XOR van
19.2 Werking
181
Figuur 19.2: Overzicht van het A5/1 algoritme
de andere getapte bits inclusief bit 0. 19.2.3
De machinerie
Voor A5/1 zijn 228 pseudo-random bits nodig. Hiervoor worden 3 afzonderlijke LFSR’s gebruikt, van lengte 19, 22 en 23. Als uitvoer wordt de XOR van de linkerbits gebruikt, en de invoer wordt meegenomen in de XOR van de getapte bits. Zie afbeelding 19.2 voor een overzicht. Totaal zijn er 264 states mogelijk, aangezien er 64 bits zijn. Om het proces van outputgeneratie onomkeerbaar te maken, is op elke LFSR een zogenaamde klokbit aangebracht. Een LFSR mag slechts bewegen, als de waarde van de klokbit gelijk is aan de meerderheid over alle drie de klokbits. De klokbits zijn ongeveer in het midden van de LFSR’s geplaatst op positie 8, 10 en 10. Door deze toevoeging kan een willekeurige state 0 tot 4 voorgangers hebben, immers, er zijn 4 mogelijkheden voor de verschuiving (1+2, 2+3, 1+3 en 1+2+3), waarvan er meer dan 1 geldig kan zijn. Omdat elke state ´e´en opvolger heeft, heeft een state gemiddeld wel slechts 1 voorganger. 19.2.4
De 4 ronden
Om uit de geheime sleutel K en het framenummer i 228 bits te berekenen worden alle bits op 0 gezet, waarna de volgende 4 ronden uitgevoerd worden: 1. 2. 3. 4.
64 slagen met K als invoer, zonder klokbits. 22 slagen met i als invoer, zonder klokbits. 100 slagen met klokbits, zonder invoer. 228 slagen met klokbits, zonder invoer, met output.
De 100 slagen in stap 3 zorgen voor het ’husselen’ van de bits, alvorens de uitvoer te produceren. Merk op dat het algoritme eenvoudig op goedkope hardware te implementeren is, aangezien de afzonderlijke operaties binnen A5/1 zeer eenvoudig zijn.
182
Real-time aanval op A5/1
19.3
De aanval
In dit hoofdstuk bespreken we de aanval op A5/1 zoals deze in [BSW00] besproken wordt. Aan de hand van 2 minuten bekende output van het algoritme kan de geheime sleutel binnen ´e´en seconde op een normale PC worden achterhaald. 19.3.1
Randvoorwaarden
Voor het slagen van deze aanval heeft de aanvaller 2 minuten uitvoer van het algoritme nodig, alsmede de framenummers. Dit kan verkregen worden door en de verzonden data af te luisteren en de ruwe data voor encryptie in de mobiele telefoon af te tappen. We merken op dat het achterhalen van de ruwe data in de praktijk een bijna onmogelijke opgave is, aangezien de spraak eerst wordt gecomprimeerd, en vervolgens nog wordt voorzien van controleinformatie. De aanvaller heeft tijdens de aanval de beschikking over een standaard PC met minimaal 128 MB geheugen en een 150 GB harddisk. De kosten van deze machine zijn zeer laag, zodat eigenlijk iedereen in het computationele deel van de aanval kan voorzien. 19.3.2
Het principe
Het principe van de aanval is eenvoudig: in de output van het algoritme proberen we een bitstring te vinden welke we reeds eerder hebben gezien en opgeslagen op disk. Indien dit slaagt weten we ook de state waarin het algoritme verkeerde direct voordat deze bitstring gegenereerd werd. Vanuit deze bekende state kunnen we de key afleiden. Deze aanval is een typisch voorbeeld van een birthday attack, het zoeken van een gelijke toestand in 2 verschillende sets. We noemen de outputset B, en de bekende set op disk A. Ruwweg is de kans op succes bij een birthday attack groter dan 21 indien |A||B| ' n met n het totaal aantal mogelijkheden, in dit geval 264 . 19.3.3
Special states
Om de kans op succes bij een birthday attack te maximaliseren, streven we naar een zo groot mogelijke set A. Typisch zal deze set op een of meerdere harddisks moeten worden opgeslagen. Hierbij treedt een probleem op, namelijk dat het opvragen van data van een harddisk relatief langzaam is. De toegangstijd van een snelle harddisk bedraagt zelfs nog enkele milliseconden. We zullen er dus naar moeten streven het aantal toegangen tot de harddisk tot een absoluut minimum te beperken. Een elegante manier om dit op te lossen is alleen zogenaamde special states op disk op te slaan. Een special state is een toestand s ∈ R van de 64 bits in de laatste ronde van het algoritme, die als output direct een bitstring α (bijvoorbeeld 1000 . . . 0) genereert. Voor deze specifieke aanval wordt gebruik gemaakt van een α van 16 bits. De 35 bits die als uitvoer optreden na α gebruiken we voor identificatie van de state. Naar verwachting zijn er ongeveer 264−|α| = 248 special states, zodat we een special state kunnen coderen met 48 bits. We gebruiken de 35 bits identificatie als index op de
19.3 De aanval
183
Figuur 19.3: Generatie van een special state
harddisk, zodat we deze niet hoeven op te slaan. Verder slaan we slechts 40 van de 48 bits van special state op. We zullen zien dat het terugrekenen van een bekende state naar de geheime key zo goedkoop is, dat we voor de 8 ontbrekende bits eenvoudig alle mogelijkheden kunnen uitproberen. Op onze 150 GB harddisk kunnen we met deze trucs ongeveer 235 special states kwijt. In totaal hebben we de beschikking over 120 ∗ (1000/4.6) = 26086 frames van 228 bits. Doordat er nog 35 bits identificatie volgen op α, mag α alleen voorkomen op posities 1-177. We verwachten 26086 ∗ 177 ∗ 2−16 ' 70 voorkomens van α in de bekende uitvoer. De oplettende lezer zal opmerken dat |A| ∗ |B| ' 241 ¿ 264 , waardoor de kans op succes minimaal lijkt. In de volgende hoofdstukken zullen we zien dat dit niet het geval is. 19.3.4
Voorwerk
In het vorige hoofdstuk hebben we gezien dat ongeveer 2−16 deel van alle states een special state is. Door simpelweg random states te genereren en testen of deze special zijn, zullen we 251 states moeten aflopen voordat onze 150 GB harddisk gevuld is. Deze hoeveelheid werk is niet haalbaar, zelfs niet op een netwerk van vele computers. In plaats van zoeken, willen we de special states eigenlijk genereren, om hiermee een hoeveelheid werk van 216 te besparen. Het genereren van special states blijkt mogelijk, en wel door een ongelukkige plaatsing van de klokbits. We beginnen door de eerste LFSR (A) op te vullen, alsmede bit 0-10 van de twee andere LFSR’s (B en C), zie afbeelding 19.3 voor een voorbeeld. Er zijn 11 verschuivingen nodig voordat een nog ongespecificeerde bit in de klokbits terecht komt. Een register verschuift gemiddeld in 21 van de gevallen, zodat we ongeveer 21 slagen kunnen draaien voordat dit het geval is. Omdat we een α van slechts 16 bits genereren, beinvloeden de outputbits de klokbits pas nadat α gegenereerd is. Indien de klokbits niet in het midden waren geplaatst, was dit niet het geval geweest. Het daarwerkelijk genereren is hierdoor een eenvoudig proces, wat we toelichten aan de hand van een voorbeeld. Beschouw wederom afbeelding 19.3, en neem aan dat
184
Real-time aanval op A5/1
we α = 1000 . . . 0 willen genereren. In de eerste stap moet er dus een 1 als uitvoer gegenereerd worden, waaruit volgt dat A18 ⊕ B21 ⊕ C22 = 1. Stel dat we voor B21 de waarde 0 kiezen, dan moet C22 ook 0 worden. Hierna wordt een stap voorwaards gedaan met de klokbits, waardoor de registers A en B verschuiven. Omdat we nu een 0 moeten genereren, vinden we A17 ⊕ B20 ⊕ C22 = 0. Omdat A17 = C22 = 0, moet B20 wel 0 worden. Merk op dat indien slechts ´e´en van de registers B of C verschuift we geen keuze hebben, indien ze beide verschuiven wel. Bovenstaand proces herhalen we 16 ronden, waarna we een special state hebben gevonden. Doordat we regelmatig een vrije keuze hebben, vinden we uit een begintoestand meerdere special states. Gemiddel zijn dit er 27 , omdat we in eerste instantie 41 bits specificeren en er in totaal 248 special states zijn. 19.3.5
Selectie special states
De special states die we met de methode uit het vorige hoofdstuk hebben gegenereerd, moeten in de uitvoer voorkomen. Maar voordat deze uitvoer gegenereerd wordt, worden eerst nog 100 slagen gedraaid met de klokbits in ronde 3. Voordat we besluiten een state s op te slaan, is het dus verstandig te onderzoeken hoeveel mogelijk voorgangers deze heeft op diepte 100 tot 277. Dit aantal noemen we het gewicht van een state, genoteerd met w(s). Hoe hoger dit gewicht, hoe groter de kans dat we de state aantreffen in de uitvoer. Het blijkt dat dit aantal zeer scheef verdeeld is. 85% van de states blijkt zelfs een w(s) van 0 hebben. Met andere woorden, 85% van de states in A5/1 kan helemaal niet voorkomen in ronde 4. Naast deze opmerkelijke observatie blijkt dat de overige 15% een gemiddeld gewicht w(s) heeft van 1150. Met 235 special states op disk is dit nog niet 35 ∗1150 voldoende. Immers, 70 ∗ 2177∗2 48 = 0.05 waarmee de succeskans van de aanval op 5% komt. Door tijdens de selectie van special states te streven naar w(s) = 12500 verkrijgen we een succeskans van 0.7. Uiteraard moet hier wel extra voorwerk gedaan worden, ongeveer een factor 210 . Met een groot aantal computers is dit te realiseren in enkele maanden. 19.3.6
Implementatie
Door de enorme hoeveelheid voorwerk die gedaan moet worden is het van groot belang dat dit efficient gebeurt. A5/1 is echter ontworpen voor specifieke hardware met beperkte instructies, en niet voor een PC. Een directe implementatie is voor onze doeleinden dan ook niet snel genoeg. In dit hoofdstuk zullen we een aantal optimalisaties bekijken, waardoor dit probleem verholpen wordt. Als eerste richten we ons op de LFSR’s gebruikt binnen A5/1. Per stap binnen een LFSR komt er aan de rechterkant precies 1 bit bij, terwijl er links ´e´en verdwijnt. Een LFSR kan dus eenvoudig gerepresenteerd worden als een circulaire array van bits, waarbij de index binnen deze array de state aangeeft. Stappen voor- of achteruit kunnen eenvoudig gemaakt worden door de index te verhogen respectievelijk te verlagen. Een LFSR van lengte n kan nu met 2n − 1 bits
19.3 De aanval
185
geheugen compleet worden weergegeven. Voor de 3 LFSR’s samen hebben we genoeg aan slechts 1, 56 MB geheugen. Ten tweede kijken we goed naar de klokbits. Binnen een state van A5/1 bevinden zich rechts van de klokbits zeker 8 bekende bits per register. Het is in elke state dus 8 stappen vooruit bekend welke registers wel/niet gaan verschuiven. Door deze verschuivingen van tevoren voor alle 224 mogelijke toestanden in een tabel op te nemen, kunnen we 8 maal zo snel vooruit rekenen. De benodigde hoeveelheid geheugen hiervoor is slechts 48 MB. Met een bescheiden werkgeheugen kunnen we een implementatie van A5/1 maken, welke snel genoeg is voor de grote hoeveelheid voorwerk noodzakelijk voor de aanval. 19.3.7
Van state naar key
Stel nu dat we een bekende state s ∈ R op disk hebben gevonden, welke ook in de bekende uitvoer voorkomt. Onze opgave is nu uit de bekende state s, het framenummer i en de positie x van voorkomen van α de geheime sleutel K te vinden. Dit proces is verdeeld in 3 fasen. Eerst wordt teruggerekend naar het eind van ronde 2, dus direct na inmengen van het framenummer. Daarna wordt de invoer van dit framenummer ongedaan gemaakt, om tot slot de geheime sleutel K te vinden. De laatste 2 fasen van het proces zijn het eenvoudigst. Het terugdraaien van het inmengen van het framenummer bestaat uit het omkeren van de LFSR’s, wat door het niet-actief zijn van de klokbits triviaal is. Om de geheime sleutel te achterhalen wordt 64 stappen teruggerekend, met als sleutelbits onbekenden Ki . Dit levert een lineair stelsel van 64 vergelijkingen voor de 64 bits op, wat eenvoudig oplosbaar is. De eerste fase van het proces is iets lastiger. We moeten nu vanuit een bekende state 100+x stappen terugrekenen. Maar doordat de klokbits actief zijn, is dit proces niet omkeerbaar. Immers, elke state kan 0-4 voorgangers hebben. Toch blijkt uit analyse dat bij eenvoudig terugrekenen mbv backtracking we nooit meer dan 120 mogelijke voorgangers vinden. Het op het eerste gezicht vreemde ontbreken van een combinatorische explosie wordt veroorzaakt doordat een state gemiddeld slechts 1 voorganger heeft. Dit blijkt de boom van voorgangers sterk in breedte te beperken. We hebben nu de beschikking over mogelijk 120 toestanden aan het eind van ronde 2. Met eerder genoemde techniek verkrijgen we hieruit 120 verschillende sleutels. Door al deze sleutels te testen op een ander frame, achterhalen we eenvoudig de echte geheime sleutel K. 19.3.8
Het complete algoritme
Uit de bouwstenen gepresenteerd in de vorige hoofdstukken is het nu mogelijk het complete algoritme te geven voor het kraken van A5/1, gegeven 2 minuten output van het algoritme; zie algoritme 19.4. Dit algoritme verwacht als invoer de bekende uitvoer van het algoritme gedurende 2 minuten, en levert de geheime sleutel K op indien de aanval slaagt. In stap 1 worden alle voorkomens van α binnen de output opgezocht, welke opgezocht worden op disk in stap 2. Indien dit succesvol is, bevat s de bekende state, welke in stap 6 omgezet wordt naar (maximaal 120) states aan het einde van ronde 2 van het algoritme. Vervolgens
186
Real-time aanval op A5/1
Invoer Stap 1 Stap 2 Stap 3 Stap 4 Stap 5 Stap 6 Stap 7 Stap 8 Stap 9
S[1..26086] P [] ← SearchAlpha(S) s ← FindStateOnDisk(P) if (s = ∅) then return ’failed’ else Q[] ← RollBack(s) K ← FindKeyAndTest(Q) return K fi
Algoritme 19.4: Compleet kraak-algoritme
worden in stap 7 de mogelijke sleutels berekend en getest, waarna K de waarde van de geheime sleutel bevat. De looptijd van dit algoritme is minder dan 1 seconde op een losse PC. De zwaarste stap is het (naar verwachting) 70 maal opzoeken van de special states op disk, wat ongeveer 70 ∗ 6ms = 0.42 seconde duurt.
19.4
Conclusie
Het is duidelijk aangetoond dat het A5/1 algoritme cryptografisch zeer zwak is. Er zijn verschillende zwakheden in het algoritme ontdekt, die het mogelijk hebben gemaakt deze aanval op te zetten. We noemen: • Te weinig interne states. Dit is een cruciale fout waardoor de aanval als zodanig plaats kan vinden. Indien er gekozen was voor 128-bits states zal dit nooit hebben kunnen gebeuren. • Verkeerde plaatsing klokbits. Doordat de klokbits precies in het midden zijn geplaatst kunnen enerzijds de special states gegenereerd worden, en anderzijds 8 ronden vooruit worden gerekend. • Te korte sleutel. In de hedendaagse cryptografie wordt zelden gebruik gemaakt van 64 bits, omdat dit een brute-force aanval te dichtbij brengt. Al deze fouten kunnen worden samengevat tot ´e´en grote: het vertrouwen op security through obscurity. Door het algoritme geheim te houden is geen gebruik gemaakt van de aanwezige expertise binnen de cryptografische wereld. Hierdoor heeft het kunnen gebeuren dat meer dan 100 miljoen mensen middels hun mobiele telefoons gebruik maken van een inferieure encryptie.
Bibliografie [Bar97] Barwood, G. Elliptic curve cryptography FAQ v1.12, 1997. http://www.cryptoman.com/elliptic.htm. [BGW99] Briceno, M., Goldberg, I., and Wagner, D. A pedagogical implementation of A5/1, 1999. http://www.scard.org. [BSS99] Blake, I., Seroussi, B., and Smart, N. Elliptic Curves in Cryptography. London Mathematical Society Lecture Notes Series Nr. 265. Cambridge University Press, 1999. [BSW00] Biryukov, A., Shamir, A., and Wagner, D. Real time cryptananlysis of A5/1 on a PC. In proc. Fast Software Encryption (Berlin, 2000), B. Schneier (ed.), vol. 1978 of Lecture Notes in Computer Science, Springer-Verlag, pp. 1– 18. [CDS94] Cramer, R., Damg˚ ard, I., and Schoenmakers, B. Proofs of partial knowledge and simplified design of witness hiding protocols. In proc. Advances in Cryptology - CRYPTO94 (1994), Springer-Verlag, Berlin, pp. 174–187. [Cer97] Certicom. Certicom ECC challenge, 1997. http://www.certicom.com/resources/ecc_chall/challenge.html. [Cer00a] Certicom. Current public-key cryptographic systems. White paper, Certicom Corporation, 2000. http://www.certicom.com/resources/download/EccWhite2.pdf. [Cer00b] Certicom. The elliptic curve cryptosystem for smart cards. White paper, Certicom Corporation, 2000. http://www.certicom.com/resources/download/ECC_SC.pdf. [Cer00c] Certicom. Remarks on the security of the elliptic curve cryptosystem. White paper, Certicom Corporation, 2000. http://www.certicom.com/resources/download/EccWhite2.pdf. [CGS97] Cramer, R., Gennaro, R., and Schoenmakers, B. A secure and optimally efficient multi-authority election scheme. In proc. Advances in Cryptology- EUROCRYPT97 (1997), vol. 1233 of Lecture Notes in Computer Science, Springer-Verlag, pp. 103–118. [Cyb02] CyberVote Consortium. Report on review of cryptographic protocols and security techniques for electronic voting, 2002. http://www.eucybervote.org. 187
188
Bibliografie
[DH95] Diffie, W. and Hellman, M. New directions in cryptography. IEEE Transaction Information Theory (1995), 644–654. [FMS]
Fluhrer, S., Mantin, I., and Shamir, A. Weaknesses in the key scheduling algorithm of RC4. http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf.
[Har00] Harley, R. ECDL FAQ - version 0.2, 2000. http://cristal.inria.fr/~harley/ecdl7/FAQ.html. [JMV01] Johnson, D., Menezes, A., and Vanstone, S. The Elliptic Curve Digital Signature Algorithm (ECDSA). White paper, Certicom Corporation, 2001. http://www.certicom.com/pdfs/whitepapers/ecdsa.pdf. [KL00] Karu, P. and Loikkanen, J. Practical comparison of fast public-key cryptosystems, 2000. http://www.tml.hut.fi/~pk/crypto/fast_pk_crypto.pdf. [KMV00] Koblitz, N., Menezes, A., and Vanstone, S. The state of elliptic curve cryptography. Designs, Codes and Cryptography 19 (2000), 173–193. [Kob87] Koblitz, N. Elliptic curve cryptosystems. Mathematics of Computation 48, 177 (1987), 203–209. ´ pez, J. and Dahab, R. An overview of elliptic curve cryptography. Tech. [LD00] Lo rep. IC-00-10, State University of Campinas, Brazili¨e, 2000. [Mil86] Miller, V. S. Use of elliptic curves in cryptography. In proc. Advances in Cryptography – Crypto ’85 (1986), H. C. Williams (ed.), Springer-Verlag, pp. 417–426. [Mon]
Monico, C. The ECCp-109 website. http://www.nd.edu/~cmonico/eccp109/.
[Mon02] Monico, C. The ECC2-109 challenge, 2002. Draft of November 16, 2002, http://www.ecompute.org/ecc2/ecc2-109.pdf. [MOV96] Menezes, A., Oorschot, P. v., and Vanstone, S. Handbook of Applied Cryptography. CRC Press, 1996. [NIS02] NIST. Advanced encryption standard (AES) questions and answers, 2002. http://csrc.nist.gov/encryption/aes/aesfact.html. [NS98] Naccache, D. and Stern, J. A new public-key cryptosystem based on higher residues. In proc. Advances in Cryptology (1998), Springer Verlag, pp. 308– 318. [OU98] Okamoto, T. and Uchiyama, S. A new public-key cryptosystem as secure as factoring. In proc. Advances in Cryptology (1998), Springer Verlag, pp. 308– 318. [OW99] Oorschot, P. v. and Wiener, M. Parallel collision search with cryptanalytic applications. Journal of Cryptology 12 (1999), 1–28. [Pai99] Paillier, P. Public-key cryptosystems based on composite degree residuosity classes, 1999.
Toepassingen van cryptografie
189
[Ped92] Pedersen, T. P. Non-interactive and information-theoretic secure verifiable secret sharing. In proc. Advances in Cryptology-CRYPTO91 (Berlin, 1992), vol. 576 of Lecture Notes in Computer Science, Springer, pp. 129–140. [Pol78] Pollard, J. Monte Carlo methods for index computation mod p. Mathematics of Computation 32 (1978), 918–924. [Rij99] Rijmen, Vincent en Daemen, J. AES proposal: Rijndael, 1999. http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf. [Sal90] Salomaa, A. Public-Key Cryptography. Springer Verlag, 1990. [Sat00] Satoh, T. The canonical lift of an ordinary elliptic curve over a finite field and its point counting. Journal of the Ramanujan Mathematical Society 15 (2000), 247–270. [Sch85] Schoof, R. Elliptic curves over finite fields and the computation of square roots mod p. Mathematics of Computation 44 (1985), 483–494. [Sta03] Stallings, W. Cryptography and Network Security: Principles and Practices. Pearson Education, Inc, 2003. [Tel02] Tel, G. Cryptografie: Bescherming van de Digitale Maatschappij. AddisonWesley, 2002 (363 pp.). [Tes98] Teske, E. Speeding up Pollard’s rho method for computing discrete logarithms. Tech. rep. TI-98-01, Institut f¨ ur Theoretische Informatik, Technische Universit¨at Darmstadt, 1998. [Tes01] Teske, E. On random walks for Pollard’s rho method. Mathematics of Computation 70, 234 (2001), 809–825. [Wil95] Wiles, A. Modular elliptic curves and Fermat’s last theorem. Annals of Mathematics 142 (1995), 443–551. [WZ99] Wiener, M. and Zuccherato, R. Faster attacks on elliptic curve cryptosystems. In proc. Selected Areas in Cryptography (1999), S. Tavares and H. Meijer (eds.), Springer-Verlag, pp. 190–200.
190
Bibliografie
Index Elliptic Curve Digital Signature Algorithm, 154 Elliptic Curve Discrete Logarithm Problem, 158 elliptische kromme over Fp , 150 European Union Copyright Directive (EUCD), 7
administrators, 87 authorized user, 101 basis, 148 binaire eindige lichaam, 148 blinding factor, 133 Bulletin Board, 92 Certificate Authority, 131 challenge, 134 classification tree, 105 Consumer Broadband and Digital Television Promotion Act (CBDTPA), 8 correctheid, 85 Cramer et al., 92 CSS, 6 CyberVote, 92
fair use, 1 False Negative, 103 False Positive, 102 finite field, 148 FN Herstal, 98 geheimhouding, 86 gemachtigde gebruiker, 99 groepsencryptie, 89
DeCSS, 6 Digital Credentials, 131 Digital Millenium Copyright Act (DMCA), 1 Digital Rights Management (DRM), 1 Digital Signature, 136 draadloze netwerken, 163 DVD, 6 DVD Sleutels, 43
homomorphishe encryptie, 88 incoercibility, 86 Integriteit, 85 intellectuele eigendommen (IE), 1 karakteristiek, 148 kiesprotocol, 90 kiezers, 86 Koblitz krommen, 156 koorde-en-raaklijn regel, 151
eenduidigheid, 85 eindig lichaam, 148 binair, 148 orde, 148 priem, 148 Electronic Frontier Foundation (EFF), 6 elektronische verkiezingen, 85 ElGamal, 87 ElGamal homomorph, 89
Linear Feedback Shift Register (LFSR), 42 MEMS, 106 MP3, 5 niet-reduceerbaar, 149 NJIT, 100 normale basisrepresentatie, 149
191
192
Index
onafhankelijkheid, 86 opkomtscontrole, 86 patroonherkenning, 108 personalized weapon, 107 pi¨ezoelektrisch, 108 polynomiale basisrepresentatie, 149 priemlichaam, 148 Proof of Knowledge, 134 punt op oneindig, 151 radiogolven, 101 reader, 100 receipt-freeness, 86 reductiepolynoom, 149 Regiocodering, 40 replay attack, 133 RFID tag, 100 RIAA, 3 robustheid, 86 Sandia, 109 Secure Digital Music Initiative (SDMI), 3 Security Systems Standards and Certification Act (SSSCA), 8 sensoren, 104 SmartGun, 97 spoor van Frobenius, 154 Stembiljet, 87 stemmen, 93 stemvoorbereiding, 93 sublichaam basisrepresentatie, 149 tellers, 87 thresholdencryptie, 89 Type I Error, 102 Type II Error, 103 uitbreidingsgraad, 148 uitslag stemming, 94 Uitvoering Richtlijn Auteursrecht, 7 unauthorized users, 97 verifieerbaar random, 156 verifieerbaarheid, 86 verkiezingsambtenaren, 86 versturen, stem, 93 vingerplaatsing, 104 vuurwapen, 99
waarnemers, 87 Wardriving, 167 WEP, 163 breken van, 164 werking van, 163 Wired Equivalent Privacy, 163 World Intellectual Property Organization (WIPO), 7