Deze aflevering is de eerste aflevering van een mini-cursus “Veilig digitaal communiceren”. In de tweede aflevering zal ik aangeven hoeveel (voor)kennis de “cursisten” van het gebruik van een computer dienen te hebben om van deze cursus te kunnen profiteren. Illustraties worden alleen gebruikt als ze functioneel zijn in de cursus.
Inhoud:
2. Doelgroep
3. Systeemvereisten
4. Uw reacties
5. Test uw kennis
6. Barrieres
7. “Breekt u maar in, in mijn computer”
8. Advocaat en notaris
9. Reeds aanwezig kennis en verkrijgbare software
10. OpenSource OpenSSL
11. Door ons gebruikte boeken
WIJ AANVAARDEN GEEN ENKEL RISICO VOOR EVENTUELE SCHADE OF ANDERE NEGATIEVE GEVOLGEN DOOR HET GEBRUIK VAN DOOR ONS GEADVISEERDE OF GEDISTRIBUEERDE SOFTWARE
1. Doel van de cursus
Het doel van de praktische mini-cursus is dat u na afloop emails en bestanden digitaal kunt verzenden die behalve door de geadresseerde(n) verder door niemand kunnen worden gelezen. Al zou u van die aangeleerde vaardigheid geen gebruik maken, dan heeft u toch uw kennis van digitale beveiliging danig opgevoerd. Goed voor uw cv. Het (gratis) software pakket dat wij zullen installeren is zo ingericht dat deze basishandelingen gemakkelijk kunnen worden uitgevoerd. Maar vergis u niet, dit pakket is zo professioneel dat een commerciële bank het zou kunnen gebruiken.
In de cursus wordt in enig detail uitgelegd hoe u op eigen computer het OpenSSL pakket kan installeren. Mocht u niet in die achtergrond geïnteresseerd zijn, dan kunt u ook meteen de kant-en-klare OpenSSL bundel bij ons downloaden. Ga hiervoor naar de Appendix.
2. Doelgroep
Voor een aantal beroepen, zoals advocaat, notaris en rechter, is een gegarandeerde geheimhouding van communicatie met cliënten en collega’s van belang. Met de komst van WikiLeaks zullen echter meer mensen zich realiseren dat het zaak wordt om omzichtig om te gaan met digitale communicatie. Er zijn mensen die denken dat het onbegonnen werk is om je te wapenen tegen hooligans die vertrouwelijke digitale gegevens van je willen stelen. Ik ben van mening dat dat beveiliging wel degelijk mogelijk is en als ik deze opvatting ventileer, krijg ik aan alle kanten naar mijn hoofd geslingerd dat ik een achterhoedegevecht lever.
Versleuteling van gegevens is vaak een compromis tussen veiligheid en snelheid. Hoe veiliger de codering, hoe meer tijd het kost om een tekst te coderen en te decoderen. Voor een geheime dienst die gigabytes per dag wil coderen is snelheid belangrijker dan voor een advocaat die een keer of wat in de week een drie-regelig bericht naar een cliënt wil sturen. In deze cursus wordt conservatief gekozen: veiligheid komt voor snelheid. Dat betekent dat onze implementaties langzaam zijn en dus niet geschikt voor tijdkritische, grootschalige projecten.
3. Systeemvereisten
De doelgroep gebruikt een PC met het besturingssysteem Windows (Windows XP, Vista, Windows 7). Met de oudere versie van de software – die wij ook bespreken en ter beschikking stellen – kan ook worden gewerkt met Windows 95, Windows 98, Windows NT en Windows 2000, alhoewel we deze oudere versies afraden. Lezers die een Linux-computer gebruiken, hebben deze hele cursus niet nodig. Zij weten het allemaal al.
4. Uw reacties
Uw reacties op deze cursus en dus ook dit bericht kan u – zoals altijd – kwijt in de ruimte na het bericht. Deze cursus houdt ook in het installeren van een aantal programma’s op uw PC. Mocht u problemen hebben bij die installatie dan is die vorm van reageren op dit bericht om hulp te krijgen niet zo handig. Ten einde u te kunnen ondersteunen bij installatie-problemen heb ik een forum geïnstalleerd. Daar kan u worden geholpen door anderen, of door mij. Ook als u succesvol uw cryptografisch fabriekje hebt geïnstalleerd, horen we dat graag op het forum, omdat dat succes anderen kan helpen
5. Test uw kennis
Ik zal een paar eenvoudige technische vragen stellen :
- Wat is een message digest?
- Kan je een tekst die versleuteld is met een RSA-sleutel weer ontcijferen met de dezelfde sleutel?
- Is een 128-bit symmetrische sleutel (zoals 3DES) is even veilig als een 128-bit asymmetrische privé-sleutel (zoals RSA)?
Als u geen van deze vragen kunt beantwoorden, heeft u de ballen verstand van cryptografie. Dat betekent dat u niet weet wat cryptografie kan en ook niet wat zij niet kan. Geen man overboord, want ik schat dat 99,9% van onze bevolking op dit moment deze drie vragen niet kan beantwoorden. Het betekent wel dat uw mening betreffende het wel of niet mogelijk zijn van verhindering van publicatie van vertrouwelijke gegevens op internet (zoals WikiLeaks), gebaseerd zal zijn op uw gevoel, want kennis van zaken heeft u niet.
6. Barrières
Er wordt ingebroken in huizen, ondanks dat de deuren van die huizen op slot zitten. Betekent dit dat we ons maar beter de moeite kunnen besparen en onze voordeur net zo goed open kunnen laten? Nee, zegt de politie want de gelegenheid creëert de dief. En ik denk dat iedereen die het lekken van WikiLeaks goedkeurt toch zijn eigen voordeur en ook zijn auto op slot doet. En misschien ook wel het zicht op het toetsenbord van de pin-automaat afschermt als hij zijn pincode intoetst in een winkel. Het verminderen van criminaliteit is het opwerpen van barrières. Helemaal voorkomen kan je het niet, maar misschien wel bemoeilijken.
7. “Breekt u maar in, in mijn computer”
Het gebruik van de computer door privé-personen en door overheden is te vergelijken met de voordeur wagenwijd openzetten. Dat doet men niet expres, maar doet men uit onwetendheid. Er is één aspect van die onwetendheid die ik met de mini-cursus zal trachten op te heffen: succesvolle cursisten zullen op een eenvoudige, praktische manier vertrouwelijke gegevens zo kunnen versleutelen dat niemand, dus ook het Amerikaanse leger niet, deze berichten kan decoderen.
8. Advocaat en notaris
Ik ben van mening dat ieder individu het recht heeft op geheime communicatie met een ander persoon. Voor een aantal beroepen geldt dat deze veilige communicatie nu vaak niet gegarandeerd is en toch nodig is. Voorbeelden zijn een advocaat met een cliënt die verdachte is in een ernstige zaak of een notaris die met een transactie bezig is. De cryptografie maakt het mogelijk om deze communicatie voor alle praktische doeleinden zo te coderen dat het onmogelijk wordt om het te ontcijferen (hier bestaat geen wiskundig bewijs voor maar niemand heeft tot nu toe die codes kunnen breken).
De enige manier om die gecodeerde berichten te kunnen lezen, is het hebben van de (privé)sleutel. De toegang tot die digitale sleutel wordt veilig opgeborgen in uw hersens. De partij waarmee u communiceert hoeft die sleutel niet te hebben, want die heeft een andere sleutel. De geheimhouding kan uiteraard worden geschonden door de personen die aan de communicatie deelnemen, of doordat zij uit de school hebben geklapt, of doordat zij een grove fout hebben gemaakt bij het bewaren van hun sleutel. Het lijkt uw huis wel. Als je je huis op slot doet en de sleutel onder het matje bij de voordeur legt, wordt hij ook gevonden door een inbreker.
9. Reeds aanwezige kennis en software
Kennis van de cryptografie is te vinden in boeken en op het Internet. Ook is er al nu al kant-en-klare-software te krijgen. Die boeken en die software hebben een aantal nadelen voor algemeen gebruik in Nederland:
- Gebruikershandleidingen zijn in het Engels en ook nog eens in een moeilijk, technisch Engels.
- Software is vaak niet van het type open source en dat betekent dat je niet zeker weet of de maker geen geheime afspraken met bedrijven, overheden of politie heeft gemaakt. De Amerikaanse overheid heeft strenge wettelijke exportregels ten aanzien van cryptografie.
- Commerciële software kost geld en oude versies worden voortdurend vervangen door nieuwere versies. Afgezien van het ongemak en de kosten is het voortdurend updaten ook een veiligheidsrisico, want uw sleutels zouden dan alsnog kunnen worden gekopieerd.
- PGP (Pretty Good Privacy), het meest populaire software-pakket voor het vertrouwelijk houden van digitale communicatie, is ook in commerciële handen. Verder is het gebruik ervan lastig. Misschien dat u na deze mini-cursus toch overstapt op PGP. Dat zou ik toejuichen, trouwens.
10. Open source: OpenSSL
De software die in deze cursus wordt aangeraden, en die wij u ook zullen helpen om te installeren en te gebruiken is:
- Gratis.
- Open source. Eén programma dat u gaat gebruiken, is niet open source, maar daarvan zal ik aantonen dat dat veilig geacht kan worden. Mocht de installatie bij u niet lukken, dan zal ik een “binair” bestand ter beschikking stellen (zie Appendix), dat direct op een Windows PC draait, maar mijn sterke voorkeur heeft het als u dat bestand zelf genereert. U zou niemand moeten vertrouwen. Ook mij niet.
- Stabiel: programma’s zullen op alle Windows-computers (vanaf Windows 95) kunnen worden uitgevoerd.
Onze basis is OpenSSL open source software. Mocht u na deze cursus gebruik blijven maken van de OpenSSL software, dan verzoek ik u om een donatie te doen aan deze organisatie van vrijwilligers. De algemene opvatting is dat open source cryptografische software beter is dan commerciële. Bescherming door afscherming van methode van coderen is een foute strategie. Omdat bij open source de broncode ter beschikking is, zullen hackers daarin de zwakheden trachten te vinden en sites met die software aanvallen. Eventuele zwakke punten komen dan snel aan de oppervlakte en worden gerepareerd. Een zwak punt bij commerciële cryptografische software komt pas aan de orde als honderden klanten van een bank gedupeerd worden. En dan nog zal de bank proberen het geheel geheim te houden.
WIJ AANVAARDEN GEEN ENKEL RISICO VOOR EVENTUELE SCHADE OF ANDERE NEGATIEVE GEVOLGEN DOOR HET GEBRUIK VAN DOOR ONS GEADVISEERDE OF GEDISTRIBUEERDE SOFTWARE
De volgende aflevering van de Cursus “Veilig digitaal communiceren” zal heten: “Vereiste voorkennis”.
- Zeer amusante, leerzame columns van de guru:
Schneier on Security * - Goedkoop en heel praktisch:
Secure TCP/IP Programming with SSL: Developer’s Guide** - Network Security with OpenSSL ***
- Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Input Validation & More ***
- Definitieve gids van de guru:
Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition **
Niveau: *: geen voorkennis, **: beginnend programmeur, ***: ervaren programmeur