
Procedures
Procedurele afspraken kunnen een significante bijdrage leveren aan veiliger computer- en netwerkgebruik. Adequate procedures komen altijd voort uit een beveiligingsplan. Het doel van procedures moet duidelijk zijn voor alle betrokken partijen, omdat anders de naleving in het geding komt.
Zowel voor delen van het Internet (voor het netwerk van een organisatie bijvoorbeeld) als voor voor het Internet als geheel zijn procedures opgesteld. Het laatste is gedaan door een structuur op te zetten van 'Computer Emergency Response Teams' (CERT's) die tot doel hebben om door preventieve, detectieve en repressieve maatregelen exclusiviteit, integriteit en beschikbaarheid van gegevens te waarborgen.
De eerste CERT werd eind 1988 door ARPA (Advanced Research Projects Agency van het Departement van Defensie van de Verenigde Staten) opgericht [Harvey, 1991]. Aanleiding voor de oprichting was de Internet-Worm, die op 2 november 1988 duizenden computers op het Internet in de problemen bracht. Dat er rekening gehouden dient te worden met 'creatieve' hackers blijkt uit diverse publikaties waarin soms zeer gedetailleerd wordt omschreven wat men allemaal heeft moeten doen om een hacker te kunnen traceren [Cheswick, 1992]. Momenteel zijn er enkele tientallen CERT's binnen het Internet actief, waarvan het merendeel ook is aangesloten bij het Forum on Incident and Response Security Team (FIRST). Het doel van FIRST is een platform te bieden aan de CERTs om de onderlinge communicatie te verbeteren.
De belangrijkste doelstellingen van een CERT zijn:
De beheerders van computers en netwerken zijn een belangrijke schakel in de beveiligingsketen. In de praktijk blijkt ook vaak dat men goed op de hoogte is van eventuele bedreigingen. Het ontwikkelen van procedures voor het gebruik van backup-voorzieningen, zowel voor computers als netwerken, worden steeds meer gezien als standaard onderdeel van het takenpakket. De beheerder heeft ook een belangrijke voorlichtende taak naar de eindgebruikers. De regel 'goed voorbeeld doet volgen' is hier zeker van toepassing.
Techniek
Een organisatie die aansluit op het Internet zal als het om beveiliging gaat in eerste instantie zijn aandacht richten op de technische hulpmiddelen voor het beveiligen van de koppeling met het Internet. Een bekend hulpmiddel is een 'firewall'. Met een firewall en met segmentering (het in logische stukken opdelen) van het LAN kan inderdaad een hoog en voor de meeste gevallen afdoende beveiligingsniveau worden bereikt. Maar beveiliging op het Internet heeft niet alleen met het van buitenaf binnendringen van het LAN te maken. Wie met andere gebruikers op het Internet bestanden uitwisselt (bijvoorbeeld via e-mail) wil ook graag dat dat op een veilige manier gebeurt. Hiervoor is encryptie (versleuteling) een goed hulpmiddel.
Achtereenvolgens zal worden ingaan op encryptie en middelen voor het beveiligen van een LAN, inclusief enkele tools die kunnen nagaan of systemen op een LAN voldoende zijn beveiligd. De technische hulpmiddelen kunnen zich op verschillende lagen in het in hoofdstuk 2 gepresenteerde lagenmodel voor het Internet (zie figuur OSI referentiemodel') afspelen. We zullen de opsplitsing naar de verschillende lagen hier echter niet expliciet maken. Een algemene tekortkoming binnen de computer- en netwerkwereld is een algemeen geaccepteerde beveiligingsarchitectuur. Consequentie hiervan is dat hard- en software-producenten zelf oplossingen ontwikkelen, waarbij interoperability met andere oplossingen onvoldoende aandacht krijgt. In kader: 'Beveiligingsarchitectuur' wordt ingegaan op wat kan worden verstaan onder een degerlijke architectuur.
Einde kader
Enkele principes van encryptie
Het gebruik van encryptie voor het oversturen van vertrouwelijke gegevens is niet nieuw. Al sinds de oudheid worden boodschappen die vertrouwelijk zijn vercijferd. Julius Caesar gebruikte het 'Caesar-algoritme' om informatie uit te wisselen met het leger. Dit wiskundig voorschrift was gebaseerd op een zeer eenvoudig principe: 'vervang elke letter van een tekst door de letter die een bepaald aantal plaatsen verderop in het alfabet staat, waarbij wordt verondersteld dat de A weer na de Z komt. Wanneer Caesar dit algoritme gebruikte, moest hij dat natuurlijk doen met een bepaalde 'sleutel' die het aantal plaatsen specificeerde (een getal tussen de 1 en 25 dus). Terwijl bij elke nieuwe boodschap het algoritme hetzelfde bleef kon Caesar, om een zo groot mogelijke veiligheid te bereiken, de sleutel steeds een andere laten zijn. Het Caesar-algoritme is erg simpel en is ook gemakkelijk te kraken, ook al worden steeds andere sleutels gebruikt. Met de huidige rekenkracht van de computer levert een dergelijke vercijfering niet veel meer op dan een 'versluiering' van de werkelijk tekst.
In de tweede wereldoorlog werden er elektromechanische vercijferingsmachines
ingezet om geheime berichten uit te wisselen tussen de geallieerde landen. Het
behouden van de exclusiviteit was hierbij letterlijk van levensbelang. De
computer zorgde ervoor dat het vercijferen van berichten relatief eenvoudig
werd. Door de steeds toenemende rekenkracht kan een computer zeer snel complexe
vercijferingberekeningen uitvoeren waarmee data goed beschermd kunnen worden.
Er kan onderscheid worden gemaakt tussen symmetrische en asymmetrische
encryptie. Bij symmetrische encryptie wordt dezelfde sleutel die wordt gebruikt
voor het vercijferen ook gebruikt voor het ontcijferen. Het eerder genoemde
Caesar-algoritme is daar een voorbeeld van. Bij asymmetrische encryptie is er
altijd een paar van twee sleutels nodig. Wat met de ene sleutel uit dit paar
wordt vercijferd, kan alleen met de andere worden ontcijferd en omgekeerd..
Asymmetrische encryptie wordt ook gebruikt voor het bewerkstelligen van de
authenticiteit van gegevens (digitale handtekening).
Een veelgebruikt algoritme voor symmetrische encryptie is Data Encryption Standard (DES) [ANSI, 1981]. Hiervan is wiskundig bewezen dat zelfs wanneer publiek bekend is dat twee gebruikers dit algoritme gebruiken om onderling boodschappen uit te wisselen, een onderschepper van het bericht de gebruikte sleutel (en daarmee ook het oorspronkelijke niet-vercijferde bericht) alleen te weten kan komen door alle mogelijke sleutels te proberen die er maar te bedenken zijn. Hoeveel sleutels er mogelijk zijn hangt bij DES af van de 'grootte' van de gebruikte sleutel. Een sleutel wordt dus zo groot gekozen dat mag worden verwacht dat met de huidige rekenkracht van computers er jaren gerekend moet worden om de oorspronkelijke sleutel te vinden. Met het DES algoritme kan dus een grote mate van exclusiviteit worden bewerkstelligd.
Afbeelding: Toepassing symmetrisch algoritme (2.17 kb)
Het meest toegepaste asymmetrische algoritme is RSA, genoemd naar de drie
bedenkers Rivest, Shamir en Adleman [Rivest, 1978]. Hiervan is echter niet wiskundig
bewezen dat het alleen door het botweg proberen van sleutels te kraken is, maar
het tegendeel is ook niet aangetoond. In de praktijk is dit algoritme daarom
prima te gebruiken.
Asymmetrische encryptie met het RSA algoritme wordt als volgt toegepast: iedere
gebruiker maakt zelf een uniek sleutelpaar aan dat de eigenschap heeft dat
met de ene sleutel vercijferde gegevens alleen met de andere kunnen worden
ontcijferd en omgekeerd. Eén van deze sleutels is 'privésleutel' van de gebruiker, de andere zijn 'publieke sleutel'. De
privésleutel dient hij absoluut geheim te houden. De publieke sleutel
mag aan iedereen bekend worden gemaakt en is liefst ook voor iedereen
toegankelijk. Wanneer nu gebruiker A aan gebruiker B een bericht wil versturen
dat vercijferd is en dat alleen gebruiker B moet kunnen ontcijferen, dan
gebruikt A de publieke sleutel van B (waarvan hij ergens een kopie heeft
opgehaald) om het bericht te vercijferen. De privésleutel van gebruiker
B is dan de enige sleutel waarmee het bericht ontcijferd kan worden. Omdat B de
enige is die in het bezit is van deze sleutel, kan alleen B het bericht
ontcijferen. Exclusiviteit wordt hiermee niet gerealiseerd, omdat iedereen die
de publieke sleutel van B heeft, het bericht kan ontcijferen.
Afbeelding: Toepassing asymmetrische encryptie (2.45 kb)
Hiermee is de exclusiviteit van het bericht gegarandeerd: alleen B kan lezen wat A heeft verstuurd. Authenticiteit kan worden bewerkstelligd doordat A een bericht vercijfert met zijn eigen privesleutel en vervolgens naar B opstuurt. De enige sleutel waarmee het bericht dan kan worden ontcijferd is de publieke sleutel van A. Als B dat doet weet hij zeker dat het bericht van A afkomstig was.
Om integriteit te kunnen waarborgen worden zogenaamde hashing-algoritmen gebruikt. Zo'n algoritme berekent uit een
hoeveelheid
data een controlegetal (checksum). Denk hierbij aan het aantal
letters uit een tekst. Maar een hashing-algoritme heeft de eigenschap dat het
onomkeerbeer is: alleen door botweg proberen is het mogelijk om bij een gegeven
controlegetal een hoeveelheid data te maken die dat controlegetal als uitkomst
heeft. Dit blijkt in de praktijk ontuitvoerbaar waardoor het veilig toegepast kan worden. Wanneer nu gebruiker A een bericht naar gebuiker B stuurt, dan kan
gebruiker A door een hashing algoritme een controlegetal voor het bericht laten
aanmaken en dat controlegetal vercijferd meesturen. Verder stuurt A informatie
mee over welk hashing algoritme hij heeft gebruikt. Bij ontvangst kan gebruiker
B dan zelf ook het controlegetal berekenen van het bericht en het door A
meegestuurde controlegetal ontcijferen. B vergelijkt de controlegetallen en als
ze hetzelfde zijn weet B dat er niet met het bericht geknoeid is. Het is
belangrijk dat A het controlegetal vercijferd mee stuurt (hetzij met de
overeengekomen sleutel bij symmetrische encryptie, hetzij met de publieke
sleutel van B bij asymmetrische encryptie), omdat anders een kwaadwillende
persoon het bericht onderweg kan onderscheppen en wijzigen, een nieuw
controlegetal kan toevoegen en tenslotte het geheel uit naam van A naar B kan
sturen. Het meegestuurde controlegetal moet dus zodanig worden vercijferd dat
alleen B het kan ontcijferen.
Meer informatie over algoritmen en sleutels kan worden gevonden in [Fahn, 1992] en [Caelli,
Longley, et al., 1991].
Een nadeel van symmetrische encryptie is dat twee gebruikers voordat zij een vercijferd bericht naar elkaar kunnen sturen, eerst de sleutel waarmee wordt vercijferd moeten uitwisselen. Dat moet uiteraard ook op een veilige manier gebeuren. In 'The Scientific American' [Bennett CH, Brassard, et al., 1992] wordt beschreven hoe de onzekerheidsrelaties van Heisenberg gebruikt kunnen worden voor het uitwisselen van deze sleutel. De toepasbaarheid hiervan is echter niet groot en in het algemeen is dit ook een probleem. Bij asymmetrische encryptie zou dit probleem ook kunnen spelen bij het uitwisselen van publieke sleutels, want in principe zou een gebruiker C zich als gebruiker B aan A kunnen voordoen en zijn eigen publieke sleutel onder de naam van B aan A kunnen geven. Door vervolgens de berichten van A aan B te onderscheppen is C in staat ze te ontcijferen en te lezen. De oplossing hiervoor is dat publieke sleutels van gebruikers door derden kunnen worden gecertificeerd (in feite zet de derde er dan zijn digitale handtekening onder). Wanneer de gebruikers A en B beiden hun publieke sleutel door een zekere derde hebben laten certificeren en wanneer ze beiden vertrouwen hebben in de derde, dan zullen ze ook elkaars publieke sleutel vertrouwen.