Encryptie in de praktijk
Een poging tot privé-communicatie
Crypto op het Internet
PGP
S/MIME
Remailers
ZipLip
HushMail
Freedom
Browsers
SecureSHell
Data-versleuteling thuis
Scramdisk
Spraakversleuteling
Speakfreely
Nautilus
PGP-phone
Crypto en besturingssystemen
Tempest
Het wissen van bestanden
Firewalls
Windows-problemen
Broncodes
CESA
Cryptografie, of kortweg crypto, wordt tegenwoordig in veel dingen
toegepast: in GSM's, Pin-betaalautomaten, Chipper en Chipknip, de decoder
van de TV (Canal+), enz. enz. Waar datastromen afgeschermd moeten worden
voor anderen, of als er voor diensten betaald moet worden, komt cryptografie
in beeld.
Maar als we kijken waar we crypto voor onze eigen veiligheid kunnen
gebruiken, is het vaak in computerprogramma's of in computergerelateerde
toepassingen. Er zijn crypto-programma's om losse bestanden te versleutelen,
om een deel van je harde schijf te versleutelen,om je e-mail te coderen,
om afgeschermde webpagina's mee te bekijken, en er is zelfs software om
je spraak (telefonie) te crypten.
In recente jaren heeft de hoeveelheid crypto een enorme vlucht genomen.
Het Internet heeft een grote revolutie in het gebruik van cryptografie
teweeg gebracht. Er was ineens de noodzaak voor mensen en bedrijven om
veilig met elkaar te kunnen communiceren over een open netwerk. Door de
jaren heen werd duidelijk dat grote softwarehuizen vaak achterdeurtjes
in hun beveiligingsprogramma's inbouwden waardoor inlichtingendiensten
of andere overheidsinstaties toegang hebben, of dat de software zo slecht
geprogrammeerd was dat de beveiliging heel snel teniet kon worden gedaan.
Een alternatief voor deze programma's is het gebruik van OpenSource
crypto-programma's. Dit zijn programma's die vrij en gratis te gebruiken
zijn en waarvan de broncode(1) beschikbaar
is.
terug naar top
Toepassingen van Crypto-software
Crypto op het Internet
E-mail versturen op het Internet is per definitie onveilig omdat het Internet
geen veilig medium is. Mail passeert tijdens de verzending allerlei tussenstations
(routers en mail-servers) en is kwetsbaar voor (al dan niet legaal) aangebrachte
taps bij de verzender, de ontvanger of (in
Echelon-achtige situaties)
ergens op een groot knooppunt onderweg. Iemand die onderzoek doet kan geïnteresseerd
zijn in de inhoud van een e-mailbericht, maar kan ook al heel tevreden
zijn met een database waarin bijgehouden wordt wie er precies wanneer met
wie mailt (een zogenaamde verkeersanalyse). Om je e-mail te beschermen
tegen dit soort pottenkijkers kun je gebruik maken van een aantal populaire
encryptie-programma's en -diensten. We bespreken er hier een aantal kort,
en we geven voor- en nadelen.
De ongekroonde koning van de e-mail encryptie-programma's. PGP is het meest
toegepaste
OpenSource crypto-programma ter wereld. De twee populairste
versies zijn PGP 2.6 en PGP 6.X. Het verschil zit hem er in dat in PGP
6.X geen crypto-algoritmen worden gebruikt waar patent op zit. Verder zijn
beide versies gelijkwaardig als het om veiligheid op cryptogebied gaat.
PGP 6.X kan door middel van plug in-modules samen werken met verschillende
e-mail programma's zoals Eudora, Microsoft Exchange,
Outlook
en Outlook Express. Deze plug ins zorgen er voor dat
je met een simpele muisklik je e-mail kunt ver- en ontsleutelen. Verder
zit in PGP een disk wipe tool die de bestanden veilig van je hard
disk haalt door ze meerdere keren te overschrijven. Een andere ingebouwde
functie is PGP disk, dat in staat is om een deel van je harde schijf
te versleutelen. PGP is gratis verkrijgbaar voor Windows, Mac en Unix systemen.
terug naar top
S/MIME is een encryptie-standaard die in erg veel populaire programma's,
zoals bijvoorbeeld Outlook en Netscape-mail, zit ingebouwd en die gebruik
maakt van sterke encryptie. Het grote nadeel van S/MIME is echter dat de
programmeurs de broncode niet hebben blootgegeven. Hierdoor is onafhankelijke
controle niet mogelijk. Bovendien maken de gangbare browsers buiten de
VS gebruik van 40-bits algoritmes, en dat is bij lange na niet sterk genoeg.
De programma's zijn vaak wel erg gebruikersvriendelijk, maar er is niet
altijd te zien met welke encryptie een bericht precies versleuteld wordt.
Ook gaat deze structuur uit van, soms onhandige, centrale certificate
authorities die de sleutels van alle deelnemers aan communicatie moeten
ondertekenen. Als je S/MIME zinvol wilt gebruiken moeten alle deelnemers
de VS-versie van hun browser of een 128-bit SSL-update hebben. Verder is
het recent aan het licht gekomen feit dat Microsoft Windows encryptieprogrammatuur
een reservesleutel voor de NSA bleek te hebben wellicht een argument om
de encryptie-mogelijkheden van Internet Explorer niet te gebruiken.
terug naar top
Remailers
Remailers zijn programma's waarmee je kan versluieren wie er met wie e-mailt.
Om van een remailer-service gebruik te maken, moet je een e-mail versturen
die versleuteld is met de PGP-sleutel van de remail-service. De remailer
neemt de e-mail aan en ontsleutelt hem. Hij bekijkt de bestemming, "hakt"
de headers er van af en stuurt het bericht vervolgens door. Vaak wordt
het ook nog eerst naar een andere remailer doorgestuurd, die ook weer de
headers eraf "hakt", het opnieuw encrypt, en het vervolgens doorstuurt
naar degene waar de e-mail heen moet. Bij de afzender staat zoiets als
"Anonymus" of "Anon@retail.com". De weg naar de echte afzender is zo natuurlijk
niet meer terug te volgen. Wanneer de tekst zelf ook met PGP gecodeerd
is, is zowel de inhoud als de geadresseerde onbekend. Je hebt verschillende
soorten anonieme remailers. Allereerst heb je ouderwetse en onveilige remailers
zoals Anon.pnet.fi. Bij deze remailer kreeg je een naam en werd vervolgens
geregistreerd wie bij welk "anoniem" adres hoorde. Deze remailer kreeg
op een dag een gerechtelijke uitspraak om de anonimiteit van een gebruiker
op te heffen en aldus geschiedde. Korte tijd later ontstonden de Cypherpunks,
een los verband van allerlei Californische anarchisten, die besloten een
anonieme remailer te bouwen, de Cypherpunk-remailer. Alles wat deze remailer
in of uit ging was PGP-gecrypt, en wat er verder allemaal gebeurde werd
nergens geregistreerd. De opvolger van deze remailer was de Mixmaster-remailer.
Deze remailer knoopt een aantal remailers aan elkaar, die onderling de
hele dag allerlei willekeurige data aan het uitwisselen zijn. Wanneer er
dan een e-mailt binnenkomt gaat die mee in die enorme stroom data en is
het zo goed als onmogelijk om daar een verkeersanalyse op los te laten.
Via remailers kan je voor een anonimisering van de afzender én geadresseerde
zorgen. Soms is het echter handig om alleen de geadresseerde te anonimiseren.
Behalve voor aftappers is de adressering ook door de ontvanger van een
e-mail te lezen. Dat is natuurlijk geen enkel probleem wanneer er een één-op-één-verzending
plaatsvindt (een persoon verstuurt een berichtje aan een andere persoon).
Maar wanneer een bericht aan een groep van personen wordt verstuurd kan
dit vervelende consequenties hebben. Een goed voorbeeld is de verzending
van een links-radicaal elektronisch tijdschrift, waarbij alle abonnees
voor alle ontvangers zichtbaar meegestuurd waren. Deze abonnees ontvingen
vervolgens van diverse mede-geabonneerden allerlei ongevraagde post, onder
andere van een rechts-extremist, die onder valse voorwendsels op de verzendlijst
was gekomen. Deze persoon beschikte na dit foutje over een flink bestand
met linkse e-mailadressen. Om de ontvangers van een e-mailbericht onzichtbaar
te maken moeten de adressen van die ontvangers ingevuld worden bij BCC:
(Blind Carbon Copy) in het adresveld van het e-mailprogramma. Ontvangers
zullen dan in het geadresseerden-veld Recipient-list Suppressed
zien staan.
Goede Starpagina's over Remailers:
http://www.cs.berkeley.edu/~raph/remailer-list.html
http://anon.efga.org/Remailers
terug naar top
Praktijkvoorbeeld
Stel, je hebt een filiaal van een bekende hamburgerketen in de fik gezet.
Vervolgens wil je deze aanslag door middel van een persverklaring opeisen,
hoe kun je dat het beste doen?
Het verstandigste is om naar een Internetcafé te gaan, of een
andere openbare ruimte waar een Internetaansluiting is. Maak voor het versturen
van je persbericht gebruik van buitenlandse anonieme remailers, en het
liefst dan ook nog van meerdere tegelijk.
Pas echter wel op dat je niet met je hoofd voor een bewakingscamera
gaat staan (je zou niet de eerste zijn die op deze manier gepakt wordt).
ZipLip is een dienst die veiligheid belooft doordat je met je browser een
SSL-verbinding opent naar ZipLip. Daar maak je dan op een webpagina een
bericht dat je aan een bepaald e-mailadres richt. ZipLip stuurt dan een
e-mailtje naar dit adres, met de mededeling dat er een beveiligd bericht
klaar ligt. De ontvanger maakt vervolgens verbinding met ZipLip en haalt
het bericht op. Het grote probleem is dat het bericht dus in klare taal
op de harde schijven van ZipLip staat, en dat ZipLip, mits geconfronteerd
met het juiste papierwerk, dit bericht zal moeten afgeven. Ziplip is wel
bruikbaar om de verkeersanalyse lastiger te maken, door de dienst te gebruiken
om een reeds (bijvoorbeeld met PGP) gecodeerd bericht te versturen. ZipLip
biedt wel een dienst aan om de mail op hun schijf te coderen, maar dat
wordt pas gedaan nadat het bericht in klare taal van je ontvangen is. Bovendien
gebruikt ZipLip een raar en gammel systeem waarbij je de ontvanger een
hint kunt geven om het password te raden.
terug naar top
HushMail is ook een web-gebaseerde dienst. Deze keer krijg je van de website
echter een klein programmaatje dat het coderen en decoderen voor jou doet.
Als er e-mail verstuurd wordt tussen twee HushMail accounts beschikt HushMail
dus nooit over de klare taal. Maar het is onduidelijk of je inderdaad een
goed werkend programma van ze hebt gekregen. Als iemand (een overheid)
HushMail kan dwingen om bij een groep gebruikers een namaak-programma te
installeren dat er precies zo uitziet als de echte HushMail, is het programma
lek. Bovendien moet je er met alle web-services rekening mee houden dat
de meeste mensen gebruik maken van browsers met slechts 40-bit encryptie
en dat is volstrekt onvoldoende
Freedom is een nieuwe dienst waarbij je een eigen programma (client)
op je computer krijgt. Het is opgezet door een Canadees bedrijfje, Zero
Knowledge. De client codeert al je e-mail en web-verkeer en verstuurt
alles via een netwerk van verschillende servers, waardoor analyse van de
inhoud (bij mail tussen twee Freedom-gebruikers) en verkeersanalyse onmogelijk
worden. Een geniaal systeem waarbij geen enkele partij in het Freedom
network weet wie er wat aan het doen is. Je kunt omschakelen tussen
meerdere identiteiten (nyms), die niemand aan elkaar of aan je echte
identiteit kan koppelen. Het gebruik van deze nyms gaat in de toekomst
geld kosten, maar de betaling gebeurt op zo'n manier dat niemand weet welke
nyms
van jou zijn. Het enige probleem is dat de software op dit moment nog in
de testfase verkeert en bij het verschijnen van dit boek nog niet te koop
is. Maar Freedom is, als het af is, zonder twijfel de highest-tech
in het versturen en ontvangen van veilige e-mail en in het geheim houden
waar je precies naartoe surft. Daarom is het absoluut een ontwikkeling
om in de gaten te houden. Tot Freedom volledig functioneert is het aan
te bevelen om, waar mogelijk, PGP en remailers te gebruiken. De web-gebaseerde
diensten zijn wel iets makkelijker te gebruiken, maar bieden bij lange
na niet dezelfde mate van veiligheid.
Freedom is vanaf 1 januari 2000 beschikbaar gesteld door de provider
XS4ALL
terug naar top
Browsers
Browsers bezitten ook de mogelijkheid om via een gecrypte verbinding met
een website te communiceren. Dit gebeurt via het SSL protocol. Dit protocol
kan verschillende sterkten van encryptie gebruiken. Ook hierbij is de sterke
encryptie voornamelijk door de VS gemonopoliseerd, waardoor het browsen
op niet-Amerikaanse websites direct terugvalt tot 56 bits-encryptie. Met
Fortify
is Netscape in ieder geval ook te bewapenen met encryptie op volle sterkte.
Fortify is een programma dat Netscape vertelt dat er toestemming is om
sterke crypto te gebruiken. Normaal gesproken wordt deze sterke encryptie
alleen toegestaan bij door bepaalde instanties goedgekeurde websites. Overigens
geldt hetzelfde voor de Microsoft Internet Explorer, maar hier is helaas
geen Fortify-programma voor beschikbaar. Wel kun je van sites zoals http://www.zedz.net
de sterke encryptie varianten downloaden. Op de URL http://www.fortify.net/sslcheck.html
kun je controleren of je browser sterke encryptie gebruikt of niet.
(SSH)
Tunnel-surfen is een mogelijke oplossing voor veel afluisterproblematiek
tussen de provider en de computer thuis. Wanneer er een versleutelde tunnel
wordt aangelegd tussen een PC thuis en een provider, is het data-verkeer
tussen die twee tegen direct afluisteren van de telefoonlijn beschermd.
Wanneer er echter bij de provider of verder op het Internet wordt afgeluisterd
is alles weer gewoon leesbaar. Er bestaan programma's om zo'n tunnel aan
te leggen, bijvoorbeeld SSH (SecureSHell). De provider moet dit programma
ondersteunen. Na het inbellen legt het programma een crypto-tunnel aan.
Vervolgens moeten alle Internet-programma's zo ingesteld worden dat ze
gegevens opvragen en versturen via deze tunnel. E-mail, webrequests of
andere data zijn dan niet meer van de telefoonlijn af te plukken. SSH is
vrij verkrijgbaar en OpenSource. Er is nu ook een nieuwere versie
van SSH (versie 2) die niet helemaal vrij te gebruiken is en dus door de
meeste computers op het Internet niet gebruikt wordt. Voor Windows is er
een aantal SSH-programma's. De twee meest gebruikte programma's zijn F-Secure
van DataFellows en SecureCRT van Van Dyke. Van beide programma's zijn evaluatie-versies
te downloaden van
http://www.zedz.net.
De commerciële versies zijn buiten Amerika niet te koop in verband
met export-restricties. Sterk in opkomst zijn Putty en TeraTerm. Beide
OpenSource
programma's waren oorspronkelijk Telnet-programma's, maar zijn uitgebreid
met het SSH-protocol. Ook deze programma's zijn van Zedz.net
te downloaden.
terug naar top
Data-versleuteling thuis
Behalve voor activiteiten op het Internet kan er ook crypto worden gebruikt
om gegevens op je eigen computer te versleutelen. Hierboven werd het programma
PGP Disk al behandeld.
Scramdisk reserveert een deel van je harde schijf. In plaats van
elke bestand apart te versleutelen gebruikt Scramdisk dit deel van je harde
schijf om al jouw data in versleutelde versie op te slaan. De gebruiker
kan aangeven hoeveel MB op de schijf gebruikt mag worden voor deze data.
Deze ruimte wordt dan door de computer gezien als een extra harde schijf,
maar kan alleen met het juiste wachtwoord geopend worden. Je kan er (na
intypen van het wachtwoord) gewoon bestanden van en naar kopiëren,
van verwijderen enzovoorts. Na afsluiting van de disk staat er slechts
een groot versleuteld bestand, waar alle data veilig in opgeborgen zitten.
Omdat Scramdisk wat slimme trucjes uithaalt is het bovendien niet aantoonbaar
dat het bestand een Scramdisk-file is, tenzij je het wachtwoord kent. Scramdisk
is ook in staat om een file te verbergen, in bijvoorbeeld een .WAV-bestand
(geluid). Dit verstoppen heet steganografie. Dit is een handige functie,
omdat het dan wel heel moeilijk te bewijzen is dat je crypto gebruikt.
Scramdisk ondersteunt een aantal verschillende crypto-algoritmen, waaronder
IDEA, Blowfish en DES, is OpenSource en is erg gebruikersvriendelijk.
Helaas bestaat er momenteel alleen een Windows-versie.
terug naar top
Spraakversleuteling
Een derde toepassing van cryptografie is spraakversleuteling. Deze toepassing
is te gebruiken wanneer je belt via je computer. Dat kan wanneer je via
het Internet contact maakt met een ander die over hetzelfde spraakprogramma
beschikt.
Speakfreely is een programma dat het mogelijk maakt om veilig via het Internet
te praten. Hoewel de makers van het programma erg hun best hebben gedaan
om Speakfreely simpel in het gebruik te houden, zal je de documentatie
die bij het programma wordt geleverd goed moeten lezen om te begrijpen
hoe het werkt. Het heeft echter een aantal grote voordelen. Speakfreely
gebruikt verschillende spraakcompressie-algoritmen, die het mogelijk maken
om zelfs op 2400 baud(2) met elkaar te praten.
Hierdoor is het mogelijk om zelfs via hele ouderwetse modems of bijvoorbeeld
via de GSM gecrypte spraak het Internet op te sturen. Maar Speakfreely
werkt pas echt goed bij modernere modems. Het programma kan de digitale
spraak met IDEA, Blowfish of DES versleutelen of met meerdere van deze
algoritmen tegelijkertijd. Internet-gebruikers met een permanente verbinding
(kabel, huurlijn) kunnen Speakfreely op hun PC gewoon als telefoon dienst
laten doen, wanneer het programma in stand by-stand staat. Het is
mogelijk om een belsignaal naar een andere computer te sturen zodat die
rinkelt en er zit zelfs een antwoordapparaat-functie in. Met de hoge snelheden
van de kabelmodems is de kwaliteit van de verbinding niet te onderscheiden
van een normale telefoon, met het verschil dat je met Speakfreely niet
meer afgeluisterd kunt worden. Al met al een heel nuttig programma. Speakfreely
is OpenSource en beschikbaar voor Windows en Unix en er is ook een
versie zonder crypto, Spook freely, voor de landen waar crypto verboden
is.
terug naar top
Nautilus
Nautilus gaat van modem naar modem zonder Internetverbinding. Dit programma
klinkt na versleuteling en ontsleuteling erg slecht en de sleuteluitwisseling
is bovendien een probleem. Om aan een sleutel te komen waarmee de ontvanger
de versleutelde spraak kan ontsleutelen, moet deze sleutel opgestuurd of
afgegeven worden. Bovendien gebruiken gesprekspartners altijd dezelfde
sleutel waardoor ontsleuteling achteraf mogelijk is. Wanneer een geheime
dienst jarenlang versleutelde gesprekken heeft opgenomen en dan achter
de sleutel komt, zijn alle oude gesprekken ook te ontsleutelen.
PGP-phone
PGP-phone is een mooi vormgegeven programma, dat een goede sleutelonderhandeling
doet en eenmalige sleutels aanmaakt. De sleutels worden voorafgaand aan
het gesprek aangemaakt en bovendien nergens bewaard. Helaas crasht het
programma de hele tijd en komen er geen nieuwe versies van uit. Overigens
is het goed om te bedenken dat het niet nodig is om het afluisteren van
een telefoon onmogelijk te maken. Wanneer je het namelijk ingewikkeld maakt
om een telefoon af te luisteren wordt het voor de dienst die probeert af
te luisteren al snel rendabel om de ruimte af te luisteren waarin de telefoon
staat.
terug naar top
Crypto en besturingssystemen
Er is natuurlijk altijd een risico dat de software staat op een site die
door de verkeerde mensen is opgezet, en dus foute programma's kan bevatten.
Vaak bevat de meeste crypto-software wel een digitale handtekening, die
met PGP is te controleren. Rest natuurlijk wel de vraag hoe PGP zélf
veilig geïnstalleerd kan worden. Er rijst zelfs een nog veel belangrijkere
vraag. Kun je het besturingssysteem van je computer wel vertrouwen? Het
antwoord daarop is eigenlijk nee, maar sommige besturingssystemen zijn
onveiliger dan andere. Microsoft Windows is de koploper wat betreft beveiligingsproblemen.
Hoewel de meeste problemen in de browser zitten (en daar heeft Netscape
ook een handje van) en dan met name in Java en Javascript, is het probleem
bij Microsoft nu juist de sterke koppeling van applicaties. Door koppelingen
van allerlei Microsoft-programma's als Access, Word, Outlook
en de browser heb je voor dat je het weet een supergeheim Word-document
met database-gegevens per e-mail naar je aartsvijand gestuurd. Maar ook
de crypto van Microsoft laat vaak te wensen over. Microsoft's manier van
gecrypt aanmelden (PPTP) is al diverse manieren door programmeurs onderuit
gehaald: of de beveiliging was triviaal te omzeilen, of de feitelijke encryptie
was veel te zwak.
Naast de beveiliging door middel van encryptie-software is er een aantal
andere mogelijkheden om ongewenst afluisteren van computers tegen te gaan.
Hieronder nog een aantal van die mogelijkheden, waarbij vermeld dient te
worden dat de ontwikkelingen soms erg snel gaan. Voor recente informatie
verwijzen we naar de website, die bij dit boek hoort.
terug naar top
Tempest
Zoals je elders in dit boekje hebt kunnen lezen is het mogelijk om je beeldscherm
(en zelfs toetsenbord en processor) met speciale ontvangers af te luisteren.
De verzamelnaam voor deze techniek is Tempest. Je tegen deze techniek te
wapenen is niet eenvoudig, maar er zijn een paar oplossingen. We beginnen
maar met de meest radicale (en dure) oplossing : een "Tempest proof tent".
Deze lichtgewicht tent is gemaakt van een speciale stof die alle straling
tussen de 10 Khz en de 2 Ghz tegenhoudt (tot 65 Db). Duur is het wel, de
eenpersoonsuitvoering kost $ 15.000 , de 'vergaderkamer-uitvoering' wel
$40.000. Volgens een woordvoerder kan de Amerikaanse overheid niet meer
zonder haar tenten. Informatie over de tempest-tent vind je op http://cryptome.org/bema-se.htm
Een andere oplossing tegen het monitor afluisteren is de "tempest font"
oplossing. Studenten aan de universiteit van Cambridge hebben een lettertype
(font) ontwikkeld dat er op jouw beeldscherm normaal uitziet, maar
bij de afluisteraar als onleesbare onzin overkomt. Door met kleurverschillen
te werken die voor het menselijk oog nauwelijks zijn waar te nemen, maar
waar afluister-ontvangers juist heel gevoelig voor zijn, hebben ze een
doeltreffende (en gratis) oplossing gevonden tegen het beeldschermafluisteren.
Het font geeft voor de gebruiker een iets waziger beeld, maar afluisterontvangers
zien niets meer. Helaas is het font nog niet in software als PGP e.d. verwerkt,
maar je kunt het met enige moeite wel op je eigen PC instaleren; enige
kennis van zaken is dan wel vereist. http://www.cl.cam.ac.uk/~mgk25/st-fonts.zip
Ondertussen zit in pgp 6.0 en hoger het tempest font ingebakken, en
kun je de lezende partij 'dwingen' het tempest font op te roepen als jouw
bericht aan hen gedecodeerd op het scherm komt. Als je het bericht wilt
versleutelen met die optie
moet je dat 'aanvinken' tijdens het selecteren van de pulieke sleutel(s).
Links onderin zul je 'use tempest attack font' zien staan.
Het wissen van bestanden
Over diskwipe tools kunnen we kort maar duidelijk zijn: ze werken
niet (goed genoeg). Althans, niet als het om extreme situaties gaat. Als
men echt gaat spitten op je harde schijf, is de kans groot dat een deel
van de informatie die jij dacht te hebben gewist nog te achterhalen is.
De kop van je harde schijf schrijft namelijk niet altijd op precies dezelfde
plaats op de disk. Als je dus later een file wilt wissen kom je een klein
beetje naast het originele spoor (of track) te zitten, waardoor je het
midden van het spoor wel overschrijft, maar de rand niet. De originele
disk-kop zal die rand niet kunnen lezen, maar speciale apparatuur heeft
daar geen moeite mee. Hoe vaak je de track dus ook overschrijft, je kunt
nooit meer op die "rand track" komen. Floppies die op een andere computer
beschreven zijn kun je per definitie niet wissen, omdat het verschil in
stand van de koppen te groot is. Het is duur om een schijf zo te ontleden,
en het lukt niet altijd ... maar het kan dus wel. Programma's als PGP hebben
een ingebouwde wisfunctie, waarbij instelbaar is hoe vaak een file overschreven
moet worden. De super paranoia Gutmann standaard staat op 35 keer
overschrijven, met bepaalde karakters. PGP wipe zit bij PGP tools, source
code beschikbaar.
terug naar top
Firewalls
Als je iets hoort over veilige manieren om Internet te gebruiken, dan hoor
je vaak de term
firewall. Er wordt helaas al te vaak mee geadverteerd
als dé oplossing voor de veiligheid van een netwerk. Niets is minder
waar. Het probleem met een netwerk is dat het veel onderhoud vergt. Er
staan vaak vele soorten computers en andere electronica door elkaar heen.
En allemaal bevatten ze wel bugs (programmeer-fouten) die gevaarlijk kunnen
zijn. De ene keer is het een bug in het besturingssysteem Windows, dan
weer een bug in de webserver Apache, en dan weer in een scripting tool
PHP die zowel op Windows als Linux platformen draait. Hoe zorg je nu dat
je daar als systeembeheerder adequaat op kunt reageren? Of hoe bescherm
je je eigen computer adequaat? Als eerste natuurlijk door op de hoogte
te blijven van de laatste ontwikkelingen in beveiligingsniveaus. Goede
websites om in de gaten te houden zijn http://www.rootshell.com,
http://slashdot.org,
http://www.ntbugtraq.com,
http://www.2600.org,
en wellicht is de beste van allemaal de Bugtraq mailinglist en website
op http://www.netspace.org. Goed,
je hebt de informatie, maar wat nu? Je hoort bijvoorbeeld dat alle werkplek-PC's
vatbaar zijn voor voor een bepaalde bug die ze kan laten crashen. Hoe bescherm
je nu in één keer alle PC's, zodat je ze op je gemak kunt
updaten? Het makkelijkste punt om dat te doen is aan de ingang van je netwerk
met de buitenwereld, vaak het Internet. Als je de Internetverbinding zo
zou kunnen filteren dat men die bepaalde bug niet meer kan misbruiken,
dan kunnen de werkplek-PC's nog gewoon veilig werken, ondanks dat ze vatbaar
zijn voor die bug. Zo'n centraal "filter station" noemt men een firewall.
Deze Engelse term komt uit de Middeleeuwen, waar de eerste verdedigingslijn
van een stad of kasteel een muur was waar men brandende pek vanaf goot
als de aanvallers eroverheen probeerden te klimmen. Er zijn in principe
twee soorten firewalls, application firewalls en packet filter
firewalls. De eerste weet meer van de inhoud van netwerkpakketten en
kan daarom beter zien of de inhoud van een netwerkpakket schadelijk is.
De tweede soort kijkt alleen naar de adressing en baseert op basis daarvan
of het bewuste datapakketje de firewall mag passeren. Op het eerste gezicht
lijkt de application firewall dus veel beter. In de praktijk zie
je echter eigenlijk alleen maar
packet filter firewalls. Computers
op het Internet communiceren met elkaar via het TCP/IP protocol. Als een
computer met de ander informatie via het Internet uitwisselt, gebeurt dat
in kleine brokken: netwerkpakketten. Al deze pakketten hebben een afzender
en een geadresseerde. Maar behalve dat hebben ze ook nog een zogenaamde
"bronpoort" en "doelpoort". Deze poorten (een nummer tussen de 1 en 65535)
zijn ingangen tot een computer. Als je bijvoorbeeld een e-mail stuurt,
dan stuur je die naar een mailserver op een bepaald IP-adres, met poortnummer
25. Maar die mailserver kan ook best een webserver zijn. Als je de webpagina's
van die server wilt zien, moet je poort 80 gebruiken. De programma's op
je computer (je e-mail software en browser) kennen deze poortnummers. Voor
Windows kun je die bijvoorbeeld vinden in het bestand c:\windows\services,
voor Linux vind je ze in het bestand /etc/services. Het komt er dus op
neer dat filteren op adres en poort eigenlijk al filteren op applicatieniveau
is, omdat specifieke applicaties specifieke poorten gebruiken. Sommige
applicaties gebruiken meerdere poorten, en een enkele applicatie gebruikt
zelfs willekeurige poorten die per sessie afgesproken worden. Deze applicaties
zijn moeilijker te controleren voor een firewall, en geven dan ook vaak
problemen als een netwerk door een firewall goed dichtgespijkerd wordt.
Met name FTP, ICQ en diverse multimedia-applicaties en conferentie-programma's
gebruiken een onvoorspelbare mengelmoes van poorten. Deze programma's werken
alleen goed als de firewall de manier van communiceren van deze programma's
kent. Omdat een firewall eigenlijk slechts een filter is, hoeft het niet
per se op een apart apparaat te draaien. Een bestaande computer kan ook
zijn eigen verbinding filteren. Vandaar dat er diverse firewall-software
oplossingen zijn. De Windows en Macintosh firewall-oplossingen schermen
vaak de orginele TCP/IP implementatie van de computer helemaal af en gebruiken
hun eigen versie van TCP/IP. Vooral op Windows NT is dit gebruikelijk,
bijvoorbeeld de Raptor Firewall van Axent. Andere programma's nestelen
zich alleen in de bestaande TCP/IP implementatie, iets dat gebruikelijk
is voor Windows 95/98 computers. Voor Unix computers (Linux, FreeBSD ed.)
ligt de situatie iets anders. Deze hebben standaard al een enorm goede
firewall-mogelijkheid. Alleen de configuratie hiervan is beduidend moeilijker.
De meest bekende hardware firewall is de Firewall-1 van Checkpoint. Overigens
bezitten de meeste Internet-routers ook firewall-mogelijkheden die vaak
ruim voldoende zijn, en tegenwoordig via een web browser ook nog eens makkelijk
geconfigureerd kunnen worden.
En andere taktiek die tegenwoordig sterk in opkomst is, is het gebruik
van privé IP-adressen. Er is een speciale groep IP-adressen (onder
andere het bereik 10.*.*.*) die nooit echt uitgedeeld gaat worden en die
bedoeld is voor interne netwerken. Gebruik deze 10.*.*.* adressen intern,
en geef slechts één machine (de firewall) een "echt" IP-adres.
Alle computers in het netwerk kunnen slechts via de firewall het Internet
bereiken. De firewall vertaalt al deze 10.*.*.* nummers naar zijn eigen
(geldige) IP-adres en onthoudt voor welke computer hij een bepaalde opdracht
heeft verstuurd. Het antwoord van het Internet komt terecht bij de firewall
(de andere computer denkt dat de firewall het in eerste instantie verstuurd
heeft) en deze vertaalt het terug voor de originele computer en stuurt
het het lokale netwerk op. Deze truc wordt om meer dan alleen veiligheidsredenen
gebruikt. Je krijgt bij de meeste Internet-abonnementen (of het nu om Internet
via telefoon of kabel gaat) slechts één IP-nummer. Op deze
manier kunnen in een huis toch meerdere computers via één
IP-nummer van de Internet-verbinding gebruik maken. Deze methode wordt
wel Network Address Translation (NAT) of
masquerading genoemd.
Ten slotte vind je in grote bedrijven vaak een nog iets ander type firewall.
Dit laatste type is behalve een beveiliging voor gerommel van buitenaf,
ook een instrument om Internetverkeer van de eigen werknemers te censureren.
De baas wil immers dat er gewerkt wordt. In dit geval vindt alle communicatie
met buiten plaats via een tussenpersoon, de proxy firewall. Deze
proxy (een computer die eerder opgevraagde sites een tijdje opslaat, zie
hoofdstuk 11) regelt bijvoorbeeld de filtering (geen websites met sex bekijken,
slechts nieuwsgroepen die voor het werk van belang zijn) maar kan ook als
centrale mailverwerker gebruikt worden. (Een overigens niet zo'n fraaie
toepassing van de commerciële tak van PGP is een mailserver die alleen
mail doorlaat die of uit gewone leesbare tekst bestaat, of met de geheime
bedrijfs-encryptiesleutel leesbaar is.) Behalve de afscherming van individuele
gebruikers of diensten, zorgt zo'n proxy ook voor een ontlasting van de
Internetverbinding. Web-pagina's die door meerdere personen worden geraadpleegd,
hoeven slechts eenmaal van het Internet gehaald te worden. De proxy server
bewaart de pagina's na de eerste raadpleging, zodat iemand anders die dezelfde
pagina raadpleegt, de bewaarde kopie krijgt te zien. Uiteraard zitten er
diverse mechanismen in om ervoor te zorgen dat geen verouderde of dynamisch
gegenereerde pagina's bewaard worden. Soms dient de proxy ook als een beveiligde
deur naar buiten. Om dan een bepaald type verbinding naar de buitenwereld
te realiseren dient men eerst een verbinding met de proxy server te maken.
Daar plaatst men een verzoek voor een verbinding naar buiten, die dan door
de proxy server opgezet en doorgegeven wordt. Dit type kom je nog wel eens
tegen bij de diverse geavanceerde opties op Windows computers, onder de
naam SOCKS. Het grootste probleem met dit type verbinding is dat
de applicatie op de PC er specifieke SOCKS-ondersteuning voor nodig heeft.
Daarom werkt de eerder genoemde NAT-methode veel beter. Een firewall beschermt
je netwerk zeker tegen een hoop vreemde dingen van buitenaf. Hij beschermt
je ook tegen configuratiefouten van computers in je eigen netwerk. Als
het delen van bestanden en printers door de firewall geblokkeerd wordt,
dan maakt het niet meer zoveel uit dat Jantje zijn C:-drive lees-
en schrijfbaar deelt met de hele wereld, zonder wachtwoord. In dat opzicht
is een firewall zeker waardevol, ook voor het kleine thuisnetwerk van een
of twee computers. Als je een Windows PC met modem of netwerkkaart hebt,
kijk dan zelf maar eens bij de eigenschappen van je C:-drive. Wordt
die gedeeld zonder wachtwoord? Als het antwoord hierop "ja" is, dan kun
je er vrijwel zeker van zijn dat iemand je hele registry, een speciaal
bestand waarin veel programma's (inclusief Windows zelf) een heleboel wachtwoorden
en andere persoonlijke informatie opslaan, heeft gekopieerd. En dat iemand
waarschijnlijk daaruit zelfs je Internet-gebruikersnaam en -wachtwoord
heeft gehaald, en vervolgens jouw Internet-abonnement gebruikt om nare
dingen op andere computers te proberen. Het gevaar van een firewall is
echter dat men zich te veilig gaat voelen. "Er is toch een firewall, mij
kan niets gebeuren." En vervolgens krijgt die persoon het Melissa-virus
gemailed en stuurt het virus vervolgens het laatste bewerkte Word-document
naar de eerste 50 mensen in zijn e-mail adresboek, inclusief het virus.
Of een via het web gedownload bestand, Java applet of Javascript programma
mailt je registry naar een Hotmail account. Een firewall maakt het
direct benaderen van je PC moeilijk tot onmogelijk, maar er zijn nog genoeg
indirecte methoden om iemands PC ongemerkt te benaderen. Gebruik nieuwe
versies van software, gebruik anti-virusprogramma's, en als informatie
werkelijk zó kostbaar is, zorg dan dat die informatie niet in de
buurt van een computer komt die wel eens, direct of indirect, aan het Internet
wordt gekoppeld. Het is mogelijk zelf eens te spelen met firewalls of proxies.
Behalve dan met de hardware firewalls, die tienduizenden guldens kosten.
Een veel gebruikt product voor Windows is het shareware programma Wingate
(http://www.wingate.com). Ook de nieuwe
versie van Windows (Windows 2000) zou deze functionaliteit moeten hebben.
Voor Unix zijn er diverse mini-distributies gespecialiseerd voor gebruik
als firewall. Een Linux gebaseerde firewall is het Linux Router Project
(www.linuxrouter.org) en een op BSD gebaseerde firewall is het picoBSD
project (www.freebsd.org/~picobsd/). Deze laatste twee firewalls zijn OpenSource-producten,
dus vrij verkrijgbaar, en alle broncode is in te zien.
Ook voor besturingssystemen geldt dat het, uit veiligheidsoogpunt, de
voorkeur geniet ook hier de broncode in te kunnen zien. Dat kan bij de
commerciële besturingssystemen als DOS, Windows, Macintosh en OS2
niet. Er zijn gelukkig een aantal OpenSource-besturingssystemen
waar dat wel het geval is, zoals Linux, FreeBSD of OpenBSD. Vooral Linux
is momenteel sterk in opkomst(3).
terug naar top
Windows-problemen
Lekken in Windows
Naast de surfprogramma's heeft ook Windows zelf een aantal veiligheidsproblemen.
Dit operating-system (OS) is zeer fragiel en wanneer het standaard geïnstalleerd
is, biedt het geen enkele bescherming. Hier volgt een aantal tips om Windows
een beetje veiliger te maken:
-
Geen onbekende of onvertrouwde netwerk- of Internetprogramma's draaien.
-
Geen servers installeren die dingen aan het Internet aanbieden (FTP-servers),
onder andere de standaardserver die bij FrontPage wordt geïnstalleerd.
-
Geen Wingate installeren, dat is erg onveilig. Het is een tunnel van binnen
naar buiten en andersom. Het doet zijn naam eer aan.
-
Een goede ge-update virusscanner draaien.
-
Windows-Networking/Netwerk moet op alle mogelijke manieren uitgezet worden
wanneer er geen netwerk is geïnstalleerd. Wanneer een computer wel
in een netwerk staat moet het zoveel mogelijk worden ingeperkt. Dat werkt
als volgt:
Wanneer je geen netwerk hebt:
-
Alle protocollen behalve TCP/IP (dat is het protocol dat je voor het Internet
nodig hebt) deïnstalleren. Dat doe je door in het configuratiescherm
op Netwerk te klikken en daar alle protocollen, behalve TCP/IP, te verwijderen.
-
Bestands- en Printerdeling uitzetten. Via Bestands- en Printerdeling
geef je anderen op een netwerk toegang tot je bestanden en printers. Via
Internet kunnen anderen dan echter ook toegang krijgen tot je computer.
Dit schakel je uit via het configuratiescherm. Daar ga je naar het Netwerk,
klik je op Bestands- en Printerdeling en vink je alle hokjes uit.
Daarmee zijn de belangrijkste veiligheidsproblemen van Windows Networking
verholpen.
Wanneer je wel een netwerk aan het Internet hebt gekoppeld:
-
Windows gebruikt de poortnummers 137 en 139 voor zijn eigen interne netwerk.
Die moet je dus dichtmaken voor de buitenwereld. Dat moet je bij je netwerkrouter
instellen. Wanneer er vanaf het Internet een pakketje binnenkomt voor poort
137 of poort 139 dan moet je dat pakketje weggooien. Een netwerkrouter
is een programma dat in- en uitgaande datapakketjes bekijkt en ze binnen
een netwerk verdeelt. Je kan voor je computer ook een firewall installeren,
zoals Atguard of NukeNabber. Via deze programma's kan je heel precies instellen
welke soorten data er via welke poorten de computer mogen verlaten of binnengaan.
-
Wanneer dit niet kan of lukt moet je in ieder geval TCP/IP scheiden van
je Bestands- en Printerdeling. Je gaat via het configuratiescherm
naar Netwerk, klikt op TCP/IP en klikt op
Eigenschappen en Bindingen.
Je moet dan de binding tussen de Windows-networkingdienst en TCP/IP uitzetten.
NSA-lek
In augustus 1999 ontdekte de Amerikaanse organisatie Cryptonym, die onderzoek
deed naar veiligheidsproblemen met Windows, dat Microsoft in alle Windows-versies
een achterdeur heeft ingebakken voor de NSA. Dit achterdeurtje maakt de
versleutelingstechnieken van Windows toegankelijk voor deze luistervinken.
Daarmee is elk gebruik van met Windows meegeleverde cryptografie zo lek
als een mandje. Gelukkig heeft Cryptonym, behalve deze ontdekking ook een
oplossing aangedragen en biedt ze op haar website (http://www.cryptonym.com)
een programmaatje aan dat dit lek dicht.
Identificatiecodes
Middels de pers is nogal wat verwarring gezaaid over unieke identificatiecodes
die door Windows 98 en Office 97 geproduceerd worden. De heren en dames
van de pers snapten niet dat het in principe om twee verschillende privacy-lekken
gaat en husselden de twee verhalen door elkaar, zodat een onbegrijpelijke
warboel ontstond.
Windows 98 registratie
Het eerste lek betreft Windows 98. Windows 98 heeft een Registration Wizard
die het gebruikers eenvoudig maakt hun kopie van Windows 98 via het Internet
bij Microsoft te registreren. Deze Wizard heeft een optie die je kunt selecteren
en die er zorg voor draagt dat een samenvatting van jouw hardware-gegevens
naar Microsoft wordt opgestuurd. De bedoeling hiervan is de helpdeskmedewerkers
van Microsoft te voorzien van informatie die ze nodig kunnen hebben om
de gebruiker te ondersteunen bij voorkomende problemen. Nu blijkt dit hardware-overzicht
meestal sowieso naar Microsoft gestuurd te worden ook al heeft de gebruiker
de betreffende optie niet geselecteerd. Het is uiteraard fout van Microsoft
dat zij op deze wijze informatie verzamelt. Temeer omdat bepaalde hardware-gegevens
uniek zijn (bijvoorbeeld allerhande serienummers) en deze informatie eenvoudig
voor andere doeleinden te gebruiken is.
Office 97 Document GUID
Het tweede probleem betreft Office 97. Office 97 geeft een zogenaamde Globally
Unique IDentifier (GUID) aan elk document dat door een Office-programma
wordt gemaakt. In alle software, programma's en besturingssytemen moeten
alle componenten een unieke naam of nummer hebben. Dit is om er zorg voor
te dragen dat verschillende componenten niet met elkaar verwisseld kunnen
worden. Software-ontwikkelaars hebben daarom het concept GUID ontwikkeld.
Een GUID is een 128-bits nummer, dat wordt samengesteld door een complexe
wiskundige formule die gebruik maakt van diverse gegevens van de computer
van de gebruiker. Die computergegevens betreffen bijvoorbeeld datum, tijd,
hardware-specifieke informatie en eventueel andere (wellicht gebruiker
gerelateerde) data. Al deze informatie wordt in de formule gestopt, die
daarmee een uniek nummer genereert. Een tweede berekening met dezelfde
formule en andere gegevens mag nooit een zelfde GUID opleveren. Een voorbeeld
van zo'n GUID is: 0A479B20-DE86-21d2-9154-333553640000. Het privacy-probleem
met Office 97 betreft het feit dat Microsoft een GUID koppelt aan elk Office
97 document. Volgens Microsoft is de bedoeling hiervan dat andere ontwikkelaars
die softwarehulpmiddelen maken, dit GUID kunnen gebruiken om verwijzingen
tussen documenten te controleren en automatische hersteloperaties uit te
voeren, wat in het geval van een complex web van samenhangende documenten
vaak een probleem is. Het GUID van een Office document is niet direct gerelateerd
aan de informatie die de Windows 98 Wizard naar Microsoft zendt en deze
GUID's zelf worden ook niet verzonden. Dat betekent uiteraard niet dat
het niet vervelend is dat elk Office-document op een netwerk tevens een
uniek nummer in zich draagt, dat te relateren is aan de PC waarop het gemaakt
is of aan de gebruiker die van deze PC gebruik maakt. Tot voor kort had
niemand hier weet van. Het is een potentieel controle-instrument voor de
werkgever en een krachtig hulpmiddel bij een eventueel politie-onderzoek.
Het gebruik van zulke unieke identificaties beperkt zich niet tot Microsoft.
Ook bijvoorbeeld de Pentium III-processor bevat een uniek identificatienummer
dat via het Internet op te vragen is. Verder zijn er geen technische belemmeringen
om dergelijke gegevens te combineren met op andere wijze verkregen data.
Er zijn nu bijvoorbeeld al bedrijven die het klikgedrag van de websurfer
ten behoeve van gerichte reclame opslaan in een database (1). Niemand belet
allerlei staatsdiensten dergelijke databases, met nog meer gegevens, ten
behoeve van andere doeleinden op te slaan. Vanwege de mogelijk verstrekkende
consequenties reageren organisaties als Electronic Privacy Information
Center daarom furieus bij het bekend worden van het ongecontroleerde en
ongeautoriseerde gebruik van GUID's. Tegen Pentium-fabrikant Intel hebben
Amerikaanse consumentenorganisaties zelfs een klacht ingediend bij de Federal
Trade Commission. Microsoft heeft beloofd bovengenoemde mogelijkheid uit
Office 2000 te laten en heeft wat programma's op haar site gezet om deze
GUID-productie uit de bestaande Office 97 te halen. (Zie hiervoor http://officeupdat.microsoft.com/Articles/Metadata.htm
waar een programma is te vinden om uit bestaande documenten de GUID te
verwijderen.) Verder heeft de software-gigant haar website aangepast, zodat
deze geen hardware-samenvattingen accepteert zonder dat de gebruiker deze
optie in de Wizard heeft gekozen. Ook zouden reeds aanwezige hardware-samenvattingen
die zonder gebruikersautorisatie plaatsvonden uit hun database verwijderd
zijn. In nieuwe Windows-versies wordt een verbeterde versie van de Registration
Wizard gestopt.
1) Van bijna de helft van het Internetverkeer registreert firma Doubleclick
het klikgedrag. De onderneming houdt bij welke webpagina's een websurfer
bezoekt en welke informatie hij opvraagt bij elektronische zoekdiensten
als Yahoo, Lycos en AltaVista. Al deze informatie wordt opgeslagen in een
database. Deze informatie wordt gebruikt om met grote precisie adverteerders
in contact te brengen met potentiële consumenten. Van een bezoeker
van AltaVista stelt Doubleclick in een oogwenk vast uit welk land de surfer
komt, bij welke Internet-provider hij is aangesloten en wie weet welke
gegevens meer (zie Het Parool, 25 februari 1999).
terug naar top
Broncodes
Jaren geleden, toen computers nog alleen bij bedrijven en universiteiten
stonden, was er nog niet zo heel erg veel software. En toen al kwam een
van de grondleggers van het UNIX besturingssysteem, Ken Thompson, tot de
realisatie dat software in principe gewoon nooit te vertrouwen is. Hoe
kwam hij tot deze conclusie?
Programmeurs schrijven hun programma in een programmeertaal die door
mensen nog te lezen is. Vroeger was dat vaak Pascal of BASIC, tegenwoordig
is het vaak de taal C of Java. Deze programmeertaal noemt met de broncode.
Deze broncode wordt nu met een speciaal programma omgezet in een programma
dat niet meer mensen, maar alleen nog maar door de computer kan worden
gelezen en uitgevoerd. Dat omzetten heet compileren. Als de broncode eenmaal
is gecompileerd, dan heb je een uitvoerbaar programma. Dit programma draait
dan op één type computer, bijvoorbeeld een Windows PC, of
een Macintosh. Thompson heeft samen met Dennis Ritchie de taal C ontworpen
en een compiler geschreven voor deze taal. Zo'n compiler kan uiteraard
niet in broncode geschreven worden, want om broncode om te zetten in een
draaibaar programma heb je immers een compiler nodig! Een "kip en ei" probleem.
Ze moesten dus zelf, zonder compiler, een machine-leesbare code schrijven
voor de compiler. Toen ze deze (niet zeer uitgebreide) compiler af hadden,
konden ze natuurlijk wèl in een programmeertaal een compiler schrijven
met allerlei toeters en bellen en die met de simpele compiler compileren.
En toen realiseerde Thompson zich het gevaar. Stel, je verandert de broncode
van de compiler zo, dat elke keer als het de broncode van een bepaalde
soort (bijvoorbeeld een cryptografie-algoritme, of alle bestanden die pgp.c
heten) moet compileren, er een achterdeur wordt ingebouwd. Stel dat je
nu de broncode van encryptie-software van het internet downloadt. Je controleert
braaf de digitale handtekening en je weet zeker dat niemand met de broncode
geknoeid heeft. Vervolgens compileer je de software en blijkt er tóch
een achterdeur in te zitten. Nu kan je denken, "Maar dat is toch te zien
in de broncode van de compiler, immers daar staat ergens "als er cryptosoftware
gecompileerd wordt, voeg dan de achterdeur toe". Ook daar had Thompson
al het antwoord op. We knoeien nog meer met onze compiler. Behalve de extra
routine die cryptoprogramma's aantast als ze door de compiler gecompileerd
worden, doen we het volgende: elke keer als we een compiler compileren,
voegen we de crypto-aantast-routines aan die nieuwe compiler toe, én
onze compiler-aanpassing om compilers aan te tasten. Je hebt nu een soort
virus gemaakt dat zichzelf verspreidt onder compilers en cryptosoftware
aantast. Nu zul je zeggen, dat we om het probleem te verbergen dit alleen
maar erger hebben gemaakt. We hebben nu immers niet één maar
twee veranderingen te verbergen in de broncode. Is dat wel zo? We compileren
een nieuwe compiler. Deze heeft vervolgens beide aanpassingen om compilers
en cryptosoftware aan te tasten. Nu verwijderen we alle veranderingen die
we gemaakt hadden voor die aanpassingen uit de broncode, en gebruiken we
die "schoongemaakte" compiler om nogmaals een compiler te compileren. En
verdwenen is de broncode van onze aanpassingen, ze zijn alleen nog in machine-leesbare
taal aanwezig. Vervolgens geven we de compiler (als programma en als broncode)
aan iedereen die het wil hebben. In principe kun je de aanpassing nog zien
zitten in de machine-leesbare versie van het programma, maar tegenwoordig
kan bijna niemand dat soort taal nog lezen, omdat computerchips enorm ingewikkeld
zijn. Voordat je een, als computerexpert, zo'n programma helemaal nageplozen
hebt, zijn er alweer tien andere programma's die mensen om je heen gebruiken
voor veilige communicatie. Uit het voorbeeld mag duidelijk zijn dat er
een punt is waar je als eindgebruiker niet meer zeker kunt zijn van de
veiligheid van je software. Eigenlijk is het analoog aan de veiligheid
van je huis. Dat kun je ook niet helemaal afbreken om te zien of er ergens
in de muur een tap zit. Er resten dan twee mogelijkheden. Of je wordt super
paranoïde, en draait helemaal door. Of je accepteert de beperkingen
en de bijbehorende risico's. Voor software kun je een aantal maatregelen
nemen. Als eerste verdient het sterk de voorkeur alleen programma's te
gebruiken met broncode. Zoals we gezien hebben is het geen garantie dat
er niet geknoeid is, maar het is in elk geval zeer onwaarschijnlijk dat
er onbekende achterdeuren in zitten. Ten tweede is het van belang dat niemand
je computersysteem zelf benaderen kan (fysiek of via het Internet). Ook
dit laaste is weer een onhaalbaar ideaal, maar je kunt in ieder geval je
best doen. Zie hiervoor Windows-problemen
terug naar top
CESA
De laatste weken voordat de redactie dit boekje moest samenstellen is in
de VS de zogenaamde CESA-wet geopenbaard. De wet maakt het exporteren van
ietsje sterkere crypto mogelijk, en wordt daarom in de pers vooral gezien
als een knieval van de regering Clinton voor de high-tech industrie, die
software en hardware met sterkere crypto wilde kunnen exporteren. Wie het
ontwerp goed bekijkt stelt echter vast dat de export van die sterke crypto
nog steeds aan vergunningen gebonden is en dat de Amerikaanse inlichtingenwereld
zich nog steeds het recht voorbehoudt om de uitvoer van bepaalde producten
lange tijd uit te stellen. Verder regelt de wet een aantal interessante
zaken. Zo hoeft de aanklager in een strafzaak niet meer te openbaren hoe
bepaalde gegevens van de verdachte zijn gedecodeerd. De achterliggende
gedachte is wellicht het beschermen van de industrie die, op verzoek van
de inlichtingen- en veiligheidsdiensten, achterdeuren in software en hardware
heeft ingebouwd. Ook bevat de CESA-wet een provisie die het voor wetshandhavers
mogelijk maakt woningen en kantoren heimelijk binnen te dringen, om daar
veranderingen in hard- en software aan te brengen die de op de machine(s)
aanwezige crypto verzwakken. Deze provisie is geschrapt, maar geeft wel
duidelijk aan dat men op het gebied van crypto graag vergaande nieuwe bevoegdheden
wil hebben. Wat betreft heimelijke inbraak om bij je computer te komen
valt er een aantal dingen op te merken:
- Zo'n voorstel suggereert dat de overheid er niet slechts over nadenkt
om zoiets in de toekomst wellicht een keer te gaan doen. Een wetsvoorstel
voor nieuwe strafvorderingsbevoegdheden dient in de regel om de resultaten
van reeds in gebruik zijnde methoden in rechtszaken te kunnen gebruiken.
- De inlichtingenwereld bedient zich al sinds het begin van haar bestaan
van gespecialiseerde teams die high-tech inbraken uitvoeren bij ambassades
en goed beveiligde woningen. Een goed slot op de deur en een degelijk alarmsysteem
kunnen je beschermen tegen de junk op de hoek en de professionele inbreker.
Maar tegen deze teams kun je alleen iets doen als je bereid bent veel geld
uit te geven en je hele huis/kantoor te verbouwen.
- Er helpt niets tegen iemand die ongemerkt bij je computer is geweest.
Zelfs als je software-modificaties uitsluit (en wie kan dat nog effectief
als de vijand bijvoorbeeld de BIOS wijzigt?), kan men immers een klein
zendertje geplaatst hebben dat al je toetsaanslagen uitzendt In dat geval
zendt je dus elke keer als je het intypt je PGP-wachtwoord uit.
- Inbreken kan een kwaadwillende overheid echter maar op een beperkt
aantal plekken. Het kan een geschikt middel zijn om meer te weten te komen
over een kleine groep reeds bekende mensen. Maar voor grootschalige schendingen
van de privacy van ons allemaal zal men de telecommunicatie moeten afluisteren.
terug naar top
Noten
1. De broncode is de leesbare tekst van een programma
in zijn originele programmeertaal. Via de broncode kunnen experts zien
hoe veilig het crypto-programma werkelijk is. Om een programma voor computers
leesbaar te maken dient de broncode gecompileerd te worden tot machinetaal.
Het resultaat is een zogenaamd binary programme (bijvoorbeeld een
Windows EXE-bestand). Bij commerciële software is alleen deze binary-versie
beschikbaar en krijg je de broncode bijna nooit te zien. Als er dus een
achterdeur in een crypto-programma zit, dan kom je dat niet te weten. Hoe
mooi en aantrekkelijk de folder, de advertentie of de doos van een programma
ook is, zonder broncode zegt het niets over de betrouwbaarheid van de programmeurs.
Bovendien kunnen softwarehuizen gedwongen worden door hun regering om alleen
zwakke crypto in het programma te stoppen of om een achterdeur in de programma's
te stoppen (Key Escrow).
2. . De snelheid van computer-communicatie wordt
aangegeven in Baud. 2400 Baud is de snelheid van een zeer oud modem, de
huidige standaardmodems halen ruim 56000 Baud.
3. . Op de ftp server ftp.kerneli.org vind je een
verzameling van crypto-extensies voor de Linux
kernel, het eigenlijke
Linux-programma. Er bestaan onder andere extensies met crypto voor netwerkverbindingen
en voor het versleutelen van bestanden of hele disks. Op http://www.xs4all.nl/~freeswan
vind je de Linux-implementatie van IPsec, een uitbreiding van het Internet
Protocol met ingebouwde encryptie en autentificatie. Samen met de Linux
crypto-software van http://www.zedz.net
maakt dat van je PC een hoogstaand crypto-apparaat. Ook voor de BSD varianten
zijn er crypto-extensies te vinden op http://www.kame.net. Overigens moet
nog wel even vermeld worden dat het gebruik van deze OpenSource
besturingssystemen wel een stuk moeilijker is dan het gebruik van een Windows
PC of een Apple computer. Deze besturingssystemen, met name Linux, zijn
echter wel sterk bezig deze achterstand in te halen. Linux distributies
als RedHat of SuSe (in elke boekhandel te koop) zijn zeker het experimenteren
waard, als crypto belangrijk voor je is.
Helemaal zeker kun je dus nooit zijn van gedwonloade software, maar
http://www.zedz.net
is een betrouwbaar adres om via het internet crypto-software te downloaden.
Dit is een site die zich in Nederland bevind, en de mensen die hem runnen
staan als betrouwbaar te boek. (Disclaimer : Software download en instaleer
je natuurlijk altijd op eigen risico.)