image

<b>Boekrecensie Malicious Cryptography: Exposing Cryptovirology</b>

woensdag 30 juni 2004, 15:37 door Redactie, 2 reacties

Malicious Cryptography: Exposing Cryptovirology
Door: Dr. A. Young, Dr. M. Yung
2004, Wiley, ISBN 0-7645-4975-8

Door Rob Dijkshoorn

Cryptografie wordt vaak gezien als een elegante oplossing voor een aantal problemen zoals secure communicatie en secure authenticatie. Denk maar aan zaken als VPN, digitale handtekeningen en encrypted email.
Encryptie is niet alleen een zegen, het kan ook een vloek zijn. Denk maar aan terroristen die gebruik maken van encryptie om in het geheim hun plannen te beramen of het KOH-virus, dat data op de harde schijf encrypt. Het idee dat encryptie een vloek kan zijn, kwaadaardig gebruikt kan worden, is de essentie van dit boek.

Malicious Cryptography is geschreven naar aanleiding van het promotie onderzoek van Dr. A. Young, waarin hij onderzoek heeft gedaan naar de mogelijkheden om cryptografie te gebruiken als wapen bij een afpersingsaanval, ofwel de data op een computer encrypten met een private key, die vervolgens alleen afgegeven wordt tegen betaling. De auteurs stellen dat zo'n virus gebouwd is.

Vervolgens wordt besproken hoe de hedendaagse cryptotechniek ingezet kan worden voor de diefstal van secure data en passwords. Deze bespreking heeft plaats in wiskunde, er wordt geen code gegeven.
Het boek is sowieso erg licht op het gebied van code, er wordt het en der pseudo-code gebruikt om een en ander uit te leggen, maar er is heel weinig C-code te vinden.

Achtereenvolgens komen de volgende hoofdstukken aan bod:

1 Through Hacker's Eyes
Dit hoofdstuk probeert wat inzicht te geven in hoe het is om een hacker te zijn, in een drietal korte verhalen. Op zichzelf zijn het leuke verhalen. Ze zijn geschreven in een soort van cyberpunk stijl. Wat mij betreft hadden ze achterwege kunnen blijven, ik vind niet dat ze iets toevoegen aan het boek.

2 Cryptovirology
In hoofdstuk 2 wordt de link gelegd tussen cryptografie en virologie, aan de hand van zero-knowledge interactive proofs (ZKIP's). De auteurs stellen dat een virus kwetsbaar is zodra het gevonden is, immers iedereen is in staat om de werking van het virus te onderzoeken. Methodes hiervoor zijn onder meer in het boek "Exploiting Software" besproken.
Volgens de auteurs is het gebruik van public key cryptografie een oplossing om de eerder genoemde kwetsbaarheid van virussen op te vangen. Een bruikbaar encryptie algoritme voor gebruik in virussen is TEA, het tiny encryption algorithm. Een virus dat gebruik maakt van public key cryptografie wordt door de auteurs een cryptovirus genoemd.

3 Tools for security and Insecurity
Er wordt een overzicht gegeven van random number generators (rng's) en problemen met betrekking tot randomness. Er wordt gesproken over bronnen voor random numbers, hashing algoritmes en unbiassing. Daarna worden pseudo-random number generators besproken en de noodzaak van effectieve random number generators wordt duidelijk gemaakt.
Vervolgens worden mix netwerken besproken. Een mix netwerk is een service die twee partijen die elkaar niet vertrouwen anoniem berichten naar elkaar laat versturen, waarbij een correlatie tussen ingaande berichten en uitgaande berichten nagenoeg onmogelijk maakt.
Hiermee kan een mix netwerk de basis vormen voor veel cryptografische protocollen, maar dus ook voor cryptovirussen.

4 Two Faces of Anonimity
In dit hoofdstuk worden de twee kanten van anoniem gebruik toegelicht. Er wordt gesproken over anonieme communicatie, bijvoorbeeld cryptotrojans, die al dan niet gebruik maken van de eerder besproken mix netwerken. Ook criminelen zouden voor hun activiteiten gebruik kunnen maken van mix netwerken. De mogelijke gevaren van e-voting worden ook aangestipt, in de vorm van stegotrojans en overtreding van het anonimiteitsbeginsel. Aan de andere kant wordt er ook gememoreerd dat anonieme communicatie vrijheid van meningsuiting mogelijk maat in gebieden waar vrijheid van meningsuiting niet toegelaten wordt.

5 Cryptocounters
In hoofdstuk 5 worden een aantal technieken behandeld om het uitlezen van counters (tellers) tegen te gaan. Het idee is dat een virusschrijver counters in een virus wil plaatsen om de snelheid en mate van verspreiding te meten. Echter, op het moment dat een virus gevonden en ontleed is kunnen de counters binnen dat virus een indicatie geven waar het vandaan kwam.
Onder meer ElGamel en Paillier public key systems kunnen gebruikt worden om counterinformatie binnen een virus te encrypten.

6 Computationally Secure Information Stealing
Dit hoofdstuk gaat over private information retrieval (PIR), ofwel de secure diefstal van informatie. Er worden diverse manieren voorgesteld waarop PIR uitgevoerd kan worden. In alle gevallen vindt er diefstal van informatie plaats zonder dat man kan zien dat er iets gestolen is en wat er gestolen is.
Het idee van "questionable encryption" wordt geïntroduceerd. Questionable encryption is een vorm van encryptie die ofwel een valide encryptie van een document produceert, ofwel een nep-encrypted document, afhankelijk van de invoer. Een stap voorbij questionable encryption is deniable encryption. Het idee hierachter is dat de zender nep random keuzes maakt, wat er toe leidt dat de echte plain text verborgen gehouden wordt.
Tot slot wordt er nog aandacht besteed aan cryptografic computing, ofwel het uitvoeren van berekeningen met encrypted data zonder dat die data hiervoor decrypted hoeft te worden.

7 Non-Zero Sum Games and Survivable Malware
In dit hoofdstuk wordt onderzocht in hoeverre het mogelijk is om een virus te bouwen waarvan de verwijdering resulteert in het tegelijkertijd slopen van het host operating system. Ook wordt er gekeken in hoeverre het mogelijk is om een cryptotrojan te bouwen die in staat is op eigen houtje aan- en verkooporders te geven aan een financieel systeem.

8 Coping with Malicious Software
Na zo veel hoofdstukken met kwaadaardige mogelijkheden van cryptografie biedt dit hoofdstuk een overzicht van de beschermingmethoden en technieken die gebruikt kunnen worden om eerder genoemde aanvallen het hoofd te bieden. Er wordt gesproken over virus identificatie en obfuscatie, string matching en polymorfe virussen. Ook wordt er gekeken naar heuristische virusdetectie op basis van abnormaliteiten in code, abnormaal gedrag in software en detectie can cryptografische code. Tot slot wordt er gekeken naar detectie van veranderingen, zowel zelfchecks op integeriteit door software als kernel-based signature verificatie.

9 The Nature of Trojan Horses
Dit hoofdstuk kijkt naar trojan horses, en de manier waarop ze werken. Allereerst wordt er een stukje geschiedenis bekeken, en komen bekende trojans uit de geschiedenis langs. Vervolgens wordt het beroemde artikel van Ken Thomson, Reflections on Trusting Trust, besproken, waarbij de notie wordt gemaakt dat een bug best wel eens een trojan zou kunnen zijn (met andere woorden, opzettelijk aangebracht). Een poging een backdoor in de Linux kernel te plaatsen is hier een voorbeeld van. Reflections on Trusting Trust is overigens een zeer lezenswaardig artikel.

10 Subliminal Channels
Een subliminal channel is een speciale vorm van een covert channel. Het boek bespreekt wat een covert channel en een subliminal channel inhouden, het geeft een korte geschiedenis van subliminal channels en bespreekt waarin subliminal channels en covert channels van elkaar verschillen. Tot slot wordt het belang van subliminal channels voor cryptografie aangetoond.

11 SETUP Attack on Factoring Based Key Generation
Black box implementaties van crypto algoritmes brengen een aantal risico's met zich mee. Hardware implementatie van cryptosystemen vergroten deze gevaren. SETUP betekent Secretly Embedded Trapdoor with Universal Protection, en omvat aanvalsmethoden, specifiek voor het aanvallen van black box key generatie algoritmes die op factoring gebaseerde sleutels genereren. Bij bijvoorbeeld RSA wordt de sleutel gemaakt door twee grote priemgetallen te nemen. Mocht zo'n getal nou toch geen priemgetal zijn, dan is de sleutel kwetsbaar (heel kort door de bocht gezegd, de werkelijkheid is complexer).

12 SETUP Attacks on Discrete-log Cryptosystems
Dit hoofdstuk biedt min of meer de zelfde content als hoofdstuk 11. Specifiek aan dit hoofdstuk is dat men kijkt naar zaken als key exchange, Diffie-Hellman bijvoorbeeld. Ook wordt in dit hoofdstuk de uiterst relevante vraag gesteld of je je smartcard wel kunt vertrouwen.

Appendices:
A Computer Virus Basics
B Notation and Other Background Information
C Public Key Cryptography in a Nutshell

Een glossarium van veel gebruikte termen en een aantal pagina's met referenties ronden het boek af.,Uit de inleiding en de bespreking van de inhoud bleek al dat de inhoud van dit boek niet voor de poes is. Een grondig begrip van discrete algebra en cryptografie zijn essentieel om veel van de inhoud te kunnen begrijpen. De bijlagen zijn in dit opzicht een goede hulp om de basics te begrijpen. Het niveau van het boek komt ook tot uitdrukking in het aantal referenties waarnaar verwezen wordt, ruim 300. Dit is voor een ICT-boek een extreem groot aantal, voor aan academische tekst valt het aantal erg mee.

De vraag die ook bij dit boek naar boven komt is de vraag of je dit soort informatie beschikbaar moet maken. Deze vraag is ook al naar voren gekomen bij mijn bespreking van het boek "Exploiting Software". Ik heb toen de conclusie getrokken dat het wel mee viel, mede doordat het niveau van het boek dusdanig was dat je niet even snel de voorbeelden uit het boek kon copy-pasten en een werkende exploit hebt. Voor dit boek geldt dit argument in nog grotere mate. Om de in het boek besproken kennis te kunnen toepassen is een behoorlijk grote dosis kennis op diverse terreinen nodig. Daarnaast kan dit boek er toe bijdragen dat het gebruik van cryptografie geen panacea is, dat cryptografie aan een product toevoegen niet automatisch een veilig product betekent.

Wat moet je nu met dit boek? Als terminologie als discrete algebra, matrixalgebra, Abelse en Jacobi groepen, malware en public key cryptografie je de rillingen over je rug doen lopen, dan is het grootste deel van dit boek niet aan je besteed. Hoewel de appendices een redelijke introductie geven in de genoemde onderwerpen zijn de introducties niet meer dan dat. Voor een echt begrip van de materie is veel studie vereist. Het boek lijkt dan ook gericht te zijn op academici.
Ik kan me voorstellen dat script kiddies, toevallig geïnteresseerden, maar ook de mensen die dingen als Nimda schrijven hun handen vol zullen hebben aan veel van het in dit boek gepubliceerde materiaal.

Zelf vond ik het zelf een zeer lezenswaardig boek, vooral de hoofdstukken over SETUP attacks waren erg interessant, maar dat komt doordat crypto mijn specifieke belangstelling heeft en mijn wiskunde goed genoeg is om dit boek te kunnen volgen, al was het niet altijd gemakkelijk.

Heeft u ook een interessant boek gelezen en wilt u dit anderen laten weten, stuur dan uw recensie naar redactie@security.nl

Reacties (2)
21-07-2004, 04:09 door Anoniem
Wat is het gevaar van terroriste sites???
04-09-2004, 18:39 door Anoniem
"Dit hoofdstuk probeert wat inzicht te geven in hoe het is
om een hacker te zijn, in een drietal korte verhalen. Op
zichzelf zijn het leuke verhalen. Ze zijn geschreven in een
soort van cyberpunk stijl. Wat mij betreft hadden ze
achterwege kunnen blijven, ik vind niet dat ze iets
toevoegen aan het boek."

Ik vind juist van wel. Het boek *gaat* over het gebruik van
cryptografie door een aanvaller. Het onderzoeken daarvan
vereist een aanvals-denkwijze, en daarom is het best goed om
dit toe te voegen, houdt het een beetje boeiend allemaal.
Bovendien is het 'verhaaltje' zeer realistisch.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.