Bluetooth security onderzoek Lourens Bordewijk, Bas Eenink, Jimmy Mac´e Universiteit van Amsterdam 23 december 2005
Samenvatting Het aantal apparaten dat kan communiceren via het Bluetooth protocol groeit met de dag. Het Bluetooth protocol kent allerlei toepassingen, bijvoorbeeld om met een laptop, via een mobiele telefoon, verbinding te maken met internet, in draadloze headsets voor de mobiele telefoon of om kantoornetwerken op te bouwen. De vraag die hierbij ontstaat is: kan het Bluetooth protocol veilig en verantwoord worden ingezet in bedrijfsomgevingen en wat zijn de risico’s en de beperkingen hiervan? Deze vragen worden in dit rapport zo goed mogelijk beantwoord.
1
Bluetooth security onderzoek
Bluetooth security onderzoek
Inhoudsopgave 1 Inleiding 1.1 Doel en scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2
2 Bluetooth overzicht 2.1 Bluetooth versie 1(.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Bluetooth versie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3 3
3 Bluetooth security 3.1 Bluetooth security aanvallen . . . . . . 3.1.1 Bluetooth Pairing . . . . . . . 3.1.2 Offline PIN cracking . . . . . . 3.1.3 Online pin cracking . . . . . . 3.2 Disclosure of keys . . . . . . . . . . . . 3.3 Man-in-the-middle attack . . . . . . . 3.4 Overzicht overige recente problemen in 3.5 Algemene opmerkingen . . . . . . . . .
. . . . . . . .
4 5 6 6 7 8 8 8 9
4 Maatregelen 4.1 Onderzoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bluetooth . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
5 Conclusie 10 5.1 Toekomst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Pagina 1 van 11
Bluetooth security onderzoek
1 1.1
Bluetooth security onderzoek
Inleiding Doel en scope
Dit rapport is geschreven als opdracht voor de case-week van het vak “Security of Systems and Networks” (SSN) van de opleiding Systeem en Netwerk Beheer aan de UvA. De case kan als volgt worden geformuleerd: “Een fictief bedrijf wil dat wij binnen de beperkte tijd van 4 dagen een advies uitbrengen over de veiligheid van Bluetooth binnen dit bedrijf.” Dit advies wordt in de vorm van een kort en bondig consultancy rapport afgeleverd. De concrete probleemstelling luidt: Kan Bluetooth veilig gebruikt worden voor communicatie van gegevens tussen werknemers en wat zijn eventuele risico’s met betrekking tot afluisteren en diefstal van gegevens van de apparaten waar Bluetooth op gebruikt wordt? Het is een uitdaging om binnen vier dagen een compleet protocol door te lichten en te onderzoeken. We beginnen met een korte beschrijving van het Bluetooth protocol. Vervolgens worden de specificaties beschreven. Daarna wordt een overzicht gegeven van de Bluetooth standaard en de huidige ontwikkelingen. De focus zal liggen op theoretische en praktische aanvalmethodes tegen Bluetooth apparaten. Daarnaast geven we een overzicht van de beveiliging van Bluetooth en bijbehorende maatregelen. Om advies uit te kunnen brengen is het belangrijk om de betreffende data op basis van vertrouwelijkheid te classificeren. Op grond van de verkregen informatie formuleren wij een concreet advies.
2
Bluetooth overzicht
Bluetooth is in 1994 ontwikkeld door Ericsson met als doel het vervangen van kabels tussen computers en randapparatuur zoals toetsenborden, printers, pda’s en telefoons. Oorspronkelijk was het de bedoeling om een goedkope chip te maken die de communicatie kon verzorgen. Hierdoor moest Bluetooth in nagenoeg elk apparaat ingebouwd kunnen worden voor ongeveer 5 dollar. Doordat Bluetooth een draadloze technologie is, is het relatief makkelijk om af te luisteren. Bluetooth heeft hiervoor authorisatie en encryptie van gegevens ingebouwd.
Pagina 2 van 11
Bluetooth security onderzoek
2.1
Bluetooth security onderzoek
Bluetooth versie 1(.2)
De draadloze communicatie van Bluetooth vindt plaats in de 2,4 gigaHertz band. Dit frequentiegebied is erg druk bezet met veel ander verkeer zoals Wi-Fi (Wireless Fidelity), draadloze telefoons en andere apparaten. Het is een frequentiegebied dat door de overheid is vrijgegeven voor “consumenten”-verkeer. Door deze drukke bezetting treedt veel ruis op. Bluetooth lost dit op door gebruik te maken van frequentie-hopping. Er worden afwisselend 79 kanalen gebruikt om over te communiceren. Er wordt 1600 keer per seconde van kanaal gewisseld. Het bereik van standaard Bluetooth-apparaten is 1-10 meter, zogeheten klasse 2 apparaten. Klasse 1 apparaten halen afstanden van 100 meter door gebruik te maken van zwaardere antennes. Er zijn zelfs tests gedaan waarbij 1 kilometer werd gehaald dmv speciale Bluetooth-geweren [9]. Bluetooth wordt gebruikt voor point-to-point verbindingen (telefoon-telefoon), maar wordt ook gebruikt voor point-to-multipoint verbindingen (telefoon-alle andere telefoons). In dit geval delen alle apparaten het kanaal. Point-to-multipoint verbindingen heten ook wel piconets en worden gekenmerkt door 1 master met meerdere slaves. De master zorgt altijd voor het opzetten van verbindingen, slaves kunnen hier alleen op reageren en nooit zelf verbindingen starten. Meerdere piconets kunnen gekoppeld worden doordat 1 slave die in beide piconets zitten functioneert als brug om het verkeer door te sluizen van het ene piconet naar het andere piconet. Dit geheel noemt men een scatternet [1].
2.2
Bluetooth versie 2
Bluetooth versie 1 haalt een snelheid van 700 kbps, dit is voldoende wanneer bijvoorbeeld een adresboek van een mobiele telefoon wordt uitgelezen. Voor het versturen van grotere bestanden (zoals mp3-audio bestanden) is dit niet toereikend. Daarnaast is er veel concurrentie van Wi-Fi bijvoorbeeld (met snelheden van 1.000 - 54.000 kbps en hoger). De nieuwe Bluetooth standaard (2) zal snelheden gaan halen van 2.100 mbps. Bluetooth zal dus 3x sneller worden terwijl er een afname in stroomverbruik zal zijn van 50%. Door deze twee modificaties wordt het mogelijk om meerdere Bluetooth applicaties tegelijk te gebruiken op ´e´en apparaat [5]. Voorlopig blijft Bluetooth versie 1 actueel omdat er nog applicaties voor Bluetooth 2 geschreven moeten worden die dergelijke snelheden ondersteunen. Ondanks de nog lage snelheid vergeleken bij Wi-Fi is Bluetooth toch een serieuze competitie omdat Wi-Fi in diverse aspecten veel duurder is in gebruik dan Bluetooth.
Pagina 3 van 11
Bluetooth security onderzoek
3
Bluetooth security onderzoek
Bluetooth security
Om een advies te kunnen geven over de toepassing van Bluetooth binnen een bedrijfsomgeving, wordt een classificatie van de data vastgesteld. In Nederland onderscheidt de overheid de volgende categori¨en security classificatie’s: Stg (staatsgeheim) zeer geheim, Stg geheim, Stg confidentieel. In het bedrijfsleven krijgen we hier niet vaak mee te maken. Hier bestaan de volgende categori¨en: gevoelig, vertrouwelijk, priv´e en publiek. De Bluetooth radiosignalen kunnen worden opgevangen door ontvangers in de buurt van deze apparaten. Bluetooth ondersteunt in het basisprotocol authenticatie en encryptie. Authenticatie vindt plaats middels een geheime sleutel, die zich op beide apparaten moet bevinden. Het protocol staat toe dat het ene apparaat het andere authenticeert. Na authenticatie is het mogelijk om de verbinding te versleutelen. Bluetooth maakt gebruik van verschillende algorithme’s, namelijk E0, E21 en E22 [11] om de beveiligde verbinding tot stand te brengen.
Pagina 4 van 11
Bluetooth security onderzoek
3.1
Bluetooth security onderzoek
Bluetooth security aanvallen
Op dit moment zijn er op wetenschappelijk gebied een aantal aanvalsmethoden bekend. Er zijn aanvallen (exploits) die niet publiekelijk bekend zijn. De term exploit refereert naar een stuk software die een bug of zwakheid uitbuit om privileges te escaleren. Deze exploits worden niet publiek gemaakt om verschillende redenen. Hackers die deze geheimen alleen voor zichzelf proberen te houden, zodat alleen zij hiervan misbruik kunnen maken. Fabrikanten of pentesters die om commerci¨ele redenen de zwakheden niet willen of kunnen vrijgeven, de impact hiervan is te groot. De volgende aanvallen zijn onder andere op dit moment bekend: • Impersonation attack by inserting/ replacing data • Bluejacking • Bluetooth Wardriving • Nokia 6310i Bluetooth OBEX Message DoS • Brute-Force attack • Denial-of-Service attack on the device/ network • Disclosure of keys • Unit key attacks • Backdoor attack • Pairing attack • BlueStumbling = BlueSnarfing • BlueBug attack • PSM Scanning • Off-line PIN (via Kinit) recovery • On-line PIN cracking • Off-line encryption key (via Kc) • Attack on the Bluetooth Key Stream Generator 27 • Reflection Attack • Replay attacks • A man-in-the-middle attacks voor Bluetooth of in een WLAN omgeving • Correlation attacks
Pagina 5 van 11
Bluetooth security onderzoek
Bluetooth security onderzoek
Een volledige lijst van bekende risico’s met hun beschrijving staat hier: [4]. Verder heeft Sil Janssens van de Vrije Universiteit van Brussel een scriptie geschreven over de aanvallen op Bluetooth devices, waar o.a. aanvallen op de crypto worden beschreven [6]. In deze sectie zullen alleen aanvallen worden beschreven die op dit moment een groot risico vormen voor Bluetooth apparaten. We richten ons hierop, omdat veel aanvallen zoals die gebaseerd op de bluebug zwakheid kunnen worden opgelost door firmware updates. Het gaat hier vaak om specifieke apparaten die risico lopen zoals de Nokia 6310i. 3.1.1
Bluetooth Pairing
Om gegevens uit te wisselen tussen twee Bluetooth apparaten moet er een initialisatie procedure gevolgd worden die uit drie stappen bestaat, ook wel Bluetooth pairing genoemd. Nadat de drie pairing stappen zijn voltooid, kunnen de apparaten door middel van een encryptie sleutel de communicatie versleutelen in een eventuele vierde stap. De drie stappen: 1. Het maken van een initialisatie sleutel (Kinit). 2. Het maken van een link key(kab). 3. Authenticatie 3.1.2
Offline PIN cracking
Het zwakke punt van de Bluetooth encryptie methode is het E22 algoritme[3], het gebruikt de PIN-code als invoer om de key te berekenen. De PIN-code is het enige geheime element van het algoritme, omdat alle andere elementen in plaintekst verstuurd worden. Over generatie en initialisatie van een sleutel zou men zich zorgen moeten maken. De kracht van de initialisatie sleutel is puur gebaseerd op de gebruikte PIN-code. Wanneer er gebruikt wordt gemaakt van een 4 cijferige PIN-code zijn er slechts 10.000 verschillende mogelijkheden. Hierbij komt dat 50% van gebruikte PIN-codes “0000” zijn waardoor de betrouwbaarheid van een initialisatie sleutel heel laag ligt. Ondanks de naam PIN-code hoort de PIN-code volgens de Bluetooth specificatie ook letters te bevatten. Helaas dwingen mobiele telefoons af dat je alleen cijfers kunt gebruiken voor de PIN-code waardoor een brute force aanval heel makkelijk is. Als een aanvaller de gehele pairing en authenticatie weet op te slaan, kan hij door middel van een brute-force aanval de PIN-code en de keys achterhalen. Het onderscheppen van de data vereist synchronisatie met het Bluetooth frequentie algoritme wat in de praktijk vrij lastig blijkt te zijn. Een andere methode is het volledige kanalen-spectrum af te luisteren. Zoals gezegd maakt Bluetooth gebruik van frequency hopping om ruis te voorkomen. Pagina 6 van 11
Bluetooth security onderzoek
Bluetooth security onderzoek
Om Bluetooth-verkeer te kunnen afluisteren via de ether moet men beschikking hebben over een speciaal Bluetooth apparaat dat alle 79 kanalen van Bluetooth moet kunnen opvangen en later aan elkaar koppelen. Een standaard Bluetooth-stick voor de computer kost ongeveer 12 euro. Hiermee kan niet worden afgeluisterd, er kan hooguit een exploit worden benut om op gevoelige telefoons te kijken. Zo’n speciaal Bluetooth apparaat wat alle kanalen kan afluisteren is al verkrijgbaar vanaf 500 dollar en duurdere versies voor slechts 1500 dollar [8]. Doordat alle frequenties afgeluisterd kunnen worden kan alle communicatie opgevangen en opgeslagen worden. Op deze manier heeft een potentiele aanvaller meer dan genoeg tijd om later (offline) de gecrypte communicatie te ontcijferen. Ondanks de prijs is dit een te verwaarlozen factor omdat deze vaak niet opweegt tegen de relatief onbelangrijke informatie die ermee te verkijgen is. Daarnaast kunnen met genoeg geld en middelen normaal netwerk verkeer of zelfs menselijke gesprekken veel makkelijker afgeluisterd worden. Het uitvoeren van de aanval is alleen mogelijk als de aanvaller het gehele proces afluistert. Dit is een beperking omdat het pairing proces zelden wordt herhaald. Wanneer de sleutel is aangemaakt wordt deze opgeslagen voor eventueel toekomstige uitwisselingen. In principe is dit een extra veiligheidsmaatregel maar helaas zijn veel software implementaties dermate slecht zijn uitgevoerd dat het mogelijk is om het pairing proces opnieuw af te dwingen. Praktijk voorbeeld: Een bedrijf maakt gebruik van een een Bluetooth printer om (belangrijke) documenten uit te printen. Een werknemer print het jaarverslag van een bedrijf vanaf zijn computer naar een Bluetooth printer. Als een aanvaller de communicatie tussen het Bluetooth apparaat en de printer heeft afgeluisterd en opgeslagen, heeft hij/ zij genoeg tijd om de data te brute-forcen. Hieronder staat een overzicht met de tijden hoelang het duurt om een PIN-code te kraken op een Pentium IV 3 GHz [3]. Wanneer de lijn doorgetrokken wordt voor 16 cijfers zou het naar schatting 2400 jaar duren voordat de PIN gekraakt zou zijn. PIN lengte (cijfers) 4 5 6 7
3.1.3
Tijd (secondes) 0.063 0.75 7.609 76.127
Online pin cracking
In specifieke scenario’s is het mogelijk om de PIN-code te achterhalen met een online aanval. Sommige apparaten zijn beveiligd met een permanente PIN-code. Als een PIN-code
Pagina 7 van 11
Bluetooth security onderzoek
Bluetooth security onderzoek
verkeerd is ingevoerd dan neemt de tijd tussen de verschillende pogingen exponentieel toe. Dit is eenvoudig te omzeilen door het device adres na een mislukte poging te wijzigen. Voor een mobiele telefoon is deze handeling lastig, maar met een laptop is dit vrij eenvoudig te realiseren.
3.2
Disclosure of keys
Disclosure of keys heeft betrekking op pc’s die gebruik maken van USB Bluetooth-sticks. Deze Bluetooth-sticks kunnen uit de pc gehaald worden. Iemand met een gunstige timing kan deze stick “lenen”, oftewel uit de pc halen, meenemen en opgeslagen keys van de stick kopi¨eren en gebruiken. Als het “lenen” onopvallend gebeurt merkt de eigenaar hier niets van in zijn werkzaamheden en kan de aanvaller hierna gewoon het verkeer afluisteren.
3.3
Man-in-the-middle attack
Bij elk authenticatie algoritme heeft een aanvaller de mogelijkehid om bij het opzetten van een verbinding tussen de twee apparaten tussen deze apparaten in te gaan zitten. Hierdoor kan de aanvaller naar beide kanten zich voordoen als de andere kant en ondertussen alle communicatie afluisteren of eventueel zelfs manipuleren. Bluetooth apparaten zijn hier ook gevoelig voor omdat pc-software het vrij goed mogelijk maakt om een dergelijke aanval uit te voeren. Zo’n aanval is onafhankelijk van het merk Bluetooth apparaat dat wordt gebruikt omdat het puur afhankelijk is van de communicatie die door de lucht loopt en dit is uiteraard bij alle apparaten hetzelfde. Een stap verder is een man-in-the-middle attack in combinatie met Wi-Fi. Bluetooth maakt het mogelijk om een man-in-the-middle attack uit te voeren in een Wi-Fi netwerk door als verbindend element op te treden tussen twee draadloze netwerken zoals Bluetooth en Wi-Fi. Doordat veel pocket pc’s zowel Bluetooth als Wi-Fi ondersteunen zijn deze apparaten (en laptops) uitstekend geschikt voor dit doel. Doordat Wi-Fi netwerken door man-in-the-middle aanvallen van Bluetooth be¨ınvloed kunnen worden is dit probleem niet meer alleen beperkt tot Bluetooth netwerken.
3.4
Overzicht overige recente problemen in Bluetooth
Het Bluetooth Apparaat Adres, dat uniek is van elk ander Bluetooth apparaat, voorspelt een probleem. Wanneer een verband tussen een Bluetooth apparaat en een zeker persoon wordt gelegd, is het vrij makkelijk te controleren waar deze persoon is op een gegeven tijdstip. Door positie bepaling kan de privacy van de gebruiker geschonden worden. Behalve bedreigingen van handmatige Bluetooth aanvallen bestaan er ook nog aanvallen die geautomatiseerd kunnen worden uitgevoerd; oftewel, virussen. Er is een virus bekend Pagina 8 van 11
Bluetooth security onderzoek
Bluetooth security onderzoek
onder de naam Cabir dat gemaakt is om aan te tonen dat Bluetooth ook bevattelijk is voor virussen [7]. Het Cabir virus kan zich alleen verspreiden via telefoons zodra de gebruiker een bestand accepteert dat door het virus gestuurd wordt. Zolang Bluetooth uitstaat kan een telefoon nooit ge¨ınfecteerd worden. Het virus zelf doet niets behalve het woord “Caribe” op het beeldscherm zetten en zichzelf doorsturen via Bluetooth maar dit toont wel aan dat er net zo goed schadelijke virussen gemaakt kunnen worden die bijvoorbeeld een adresboek kunnen wissen of erger.
3.5
Algemene opmerkingen
Omdat Bluetooth gebruikt maakt van draadloze technologie, is het moeilijk om de Bluetooth signalen die buiten het gewenste bereik vallen tegen te houden. De aanvaller moet dus altijd aanwezig tijdens de communicatie om deze af te luisteren. Met standaard apparatuur moet een aanvaller zelfs binnen een straal van 10 meter staan (op een station niet ondenkbaar). Met geavanceerde apparatuur (sterke antenne en een klasse 1 Bluetooth apparaat) kan een aanvaller zich permitteren om op 100 meter (of erg extreem, 1 km) staan. In dit geval is de aanvaller voor het slachtoffer niet eens meer zichtbaar en mogelijk zelfs niet traceerbaar.
4
Maatregelen
De PIN-code lengte loopt van 8 tot 128 bits. Om de beveiliging optimaal te benutten moet een gebruiker de maximale PIN-lengte en een combinatie van cijfers,letters en leestekens gebruiken. Helaas staat de huidige implementatie van mobiele telefoons alleen cijfers toe en een lange PIN-code is voor gebruikers lastig te onthouden. Daarom zou de sleuteluitwisseling beter ge¨ımplenteerd moeten worden. De huidige PIN-implementatie veranderen door cijfers,letters en leestekens toe te staan of public key cryptografie te gebruiken voor de sleuteluitwisseling. Als men aanvallen wil voorkomen is het verstandig om onbekende uitnodigingen altijd te negeren en Bluetooth uitzetten wanneer het niet wordt gebruikt.
4.1
Onderzoek
Voor het schrijven van dit rapport hebben de auteurs een aantal tests gedaan met betrekking tot enkele Bluetooth exploits zoals Snarf, Backdoor en Bluejacking. Een bluesnarfing test toonde aan dat het inderdaad mogelijk was om binnen enkele seconden iemands adresboek uit te lezen of zelfs te wissen bij telefoons die daar gevoelig voor zijn. Wat vooral opviel was dat er geen dure apparatuur voor aangeschaft hoefde te worden. De gebruikte programma’s zijn vrij beschikbaar op internet en hebben een heldere interface. Iedereen die bereid is om zich twee uur te verdiepen in de juiste lectuur kan deze theorie in praktijk brengen.[10] Pagina 9 van 11
Bluetooth security onderzoek
5
Bluetooth security onderzoek
Conclusie
De Bluetooth technologie is op moment nog relatief jong en vrij complex waardoor het lastig is om alle punten te verifi¨eren die kunnen leiden tot beveiligingsproblemen. Na dit onderzoek kunnen we concluderen dat Bluetooth zeker beveiligingsproblemen kent. De meest belangrijke problemen hebben te maken met encryptie, het paren, positie bepaling (privacy) en implementatie fouten. De meeste aanvallen zoals de Snarf, Backdoor, Bluejacking aanvallen, etc zijn gebaseerd op specifieke fouten in Bluetooth implementaties. De aanvallen kunnen worden gebruikt in de praktijk en hebben daarom een impact op de algehele veiligheid van Bluetooth. Er zijn vaak nog andere aanvallen die om verschillende redenen niet publiekelijk bekend zijn. Deze factoren moeten worden meegenomen tijdens de besluitvorming om de technologie wel of niet te gebruiken binnen het bedrijf. Wij raden het af om gevoelige informatie te versturen via Bluetooth en te bewaren op Bluetooth apparaten. Om toekomstige privacy problemen te voorkomen is het verstandig om deze maatregel op te nemen in het bedrijfsreglement. Het actieve beveilingsonderzoek ondersteunt de ontwikkeling van Bluetooth en heeft een positieve uitwerking op komende versies van Bluetooth. Bluetooth is geschikt voor kleine netwerken zoals een Personal Area Network van de deelnemers in een vergadering zolang er geen gevoelige informatie wordt verstuurd of aanwezig is op deze apparaten.
5.1
Toekomst
Kwaadwillende code gericht op Bluetooth apparaten zal naar verwachting verder groeien in aantal. Doordat veel partijen de kwetsbaarheid van met Bluetooth uitgeruste apparatuur onderzoeken, stijgt de kans op verspreiding van een worm of andere kwaadaardige code.
Pagina 10 van 11
Bluetooth security onderzoek
Bluetooth security onderzoek
Referenties [1] D.M. Bakker and Diane McMichael Gilster, Bluetooth end to end, 2002,ISBN: 9780764548871 [2] Christian Gehrmann, Bluetooth DOC, 2002 [3] Yaniv Shaked and Avishai Wool, Cracking the Bluetooth PIN*, 2005, School of Electrical Engineering Systems [4] Sil Janssens, Preliminary study: Bluetooth SECURITY, 2005 [5] Peter Judge, Why Bluetooth version http://www.techworld.com/mobility/features/index.cfm? featureid=1198&Page=1&pagePos=13
2
matters,
[6] Sil Janssens, http://student.vub.ac.be/∼sijansse/2e%20lic/BT/Thesis/Thesis.pdf, 2004-2005, Vrije Universiteit Brussel [7] F-Secure Virus descriptions: Cabir, http://www.f-secure.com/v-descs/cabir.shtml 15 juni 2004 [8] FTS4BT Bluetooth Protocol http://www.fte.com/blu01.asp
Analyzer
&
Packet
Sniffer,
[9] Bluetooth afluisterbaar tot op 1 kilometer, http://www.zdnet.nl/mobile.cfm?id=43995, (Flexilis) [10] Bluetooth: BlueSnarf and BlueBug Full Disclosure, http://seclists.org/lists/risks/2004/Oct-Dec/0000.html [11] Juha T. Vainio, Bluetooth Security, http://www.niksula.cs.hut.fi/∼jiitv/bluesec.html
Pagina 11 van 11