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:

Zo zullen de CERT's de organisaties die het Internet gebruiken, door middel van CERT-advisories, voorzien van up-to-date informatie over nieuwe virussen en nieuw ontdekte 'security holes' (preventief), op hun hoede zijn voor kraakpogingen en in urgente gevallen elkaar en de gebruikers op de hoogte stellen (detectief) en aangeven wat de beste korte termijnoplossingen zijn tegen kraakpogingen (repressief). In nederland is CERT-NL sinds 1992 actief voor de doelgroep van SURFnet.
De jaarlijkse verdubbeling van het aantal gebruikers binnen het Internet verloopt niet zonder problemen. Dit is ook niet verwonderlijk omdat men zich moet realiseren dat de helft van de huidige gebruikers nog niet eens één jaar ervaring heeft.
De zorg die vaak aan de technische beveiliging wordt besteed staat meestal in schril contrast met de investeringen die gedaan worden om de gebruikers (de zwakste schakel in de meeste beveiligingsketens) op te leiden en voor te lichten. In 'the Site Security Handbook' (rfc1244) wordt als voorbeeld aangegeven dat meer dan tachtig procent van de 'security related incidents' in het Internet te maken hebben met het oneigenlijk gebruik van gebruikersnamen en wachtwoorden. Het is daarom ook raadzaam om dergelijke bedreigingen serieus te nemen. Door middel van adequate voorlichting en eventueel de inzet van technische hulpmiddelen kan het risico van deze bedreiging aanzienlijk worden gereduceerd. Een technisch hulpmiddel is het gebruik van one-time passwords, zie kader: 'toegangscontrole met one-time passwords', een bruikbare oplossing als alternatief voor de kwetsbare gebruikersnaam/wachtwoord combinaties.

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.

Kader: Beveiligingsarchitectuur

Een voorbeeld hiervan is het 'Generally Accepted System Security Principles', GSSP [NRC, 1991]. In GSSP dienen elementaire zaken op het vlak van ontwikkelprincipes, minimale beveiligingsniveau's en gebruikers- en managementhulpmiddelen te worden vastgelegd. Deze dienen dan uiteraard zowel door de ontwikkelaars als producenten, overheden en gebruikers te worden gerespecteerd. Als vertrekpunten zou gebruik gemaakt kunnen worden van bestaand materiaal (bijvoorbeeld The Orange Book [Orange Book, 1985], ITSEC [ITSEC, 1991] en de door ISO ontwikkelde 'Security Architecture'). Op dit moment is er nauwelijks enige houvast en als gevolg daarvan worden er nog steeds software pakketten op de markt gebracht waarin de beveiligingsfuncties, bijvoorbeeld het registreren van gebruikers die inloggen, standaard 'uit' staan. Binnen het Internet levert dit regelmatig probleemsituaties op, aangezien er altijd mensen te vinden zijn die het een uitdaging vinden om nieuwe systemen zo snel mogelijk te kraken. Met enige regelmaat worden daarom gebruikers en beheerders via CERT-advisories op de hoogte gebracht van dergelijke en vergelijkbare zaken.

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.

Terug Vervolg Inhoud