vrijdag 24 augustus 2012

Het internet: waar ben ik eigenlijk?

Tijdens het schrijven van mijn vorige post bedacht ik mij dat het eigenlijk wel belangrijk is om eens uit te leggen hoe het internet in elkaar steekt. Uiteraard weet iedereen wel zo'n beetje wat het internet is: het komt binnen via de kabel of telefoon en je kunt er van alles op terugvinden en downloaden. Wellicht is dat toch wel wat kort door de bocht.

Het internet zelf is eigenlijk niets meer dan een enorme hoeveelheid aan elkaar geknoopte computers. Dit zijn uiteraard de huis-tuin-en-keuken computers, maar veel apparaten die je tegenwoordig kunt kopen zijn klaar voor het internet of in ieder geval vrij eenvoudig ermee te verbinden. Denk aan mobiele telefoons, maar ook televisies, printers tot complete huizen kunnen worden aangesloten. Hoe kunnen al deze apparaten elkaar vinden? En wat voorkomt dat een document bedoelt voor mijn printer niet bij de buurman wordt afgedrukt?

De adressering op het internet
De kern van alle communicatie tussen die verschillende apparaten wordt gevormd door diverse protocollen. Een protocol is niets meer dan een verzameling afspraken over hoe communicatie moet verlopen. Net als bij een gesprek tussen mensen zijn er regels nodig over hoe deze gesprekken moeten verlopen. Alles wat je via het internet doet, van het versturen van een document aan je collega tot het bekijken van een filmpje op YouTube is mogelijk door verschillende protocollen. Om terug te komen op de vraag hoe al de apparaten elkaar kunnen vinden, wil ik één protocol uitlichten: het Internet Protocol of IP. Het beste kun je deze vergelijken met de afspraken die zijn gemaakt over telefoonnummers. Elk telefoonnummer is zo opgebouwd dat je er aan kunt zien in welk land, welke gemeente en uiteindelijk bij welk toestel het nummer hoort. Internet adressen zijn op een vergelijkbare manier wereldwijd verdeeld. Doordat er afspraken zijn gemaakt over de manier waarop apparaten een adres krijgen, kunnen deze adressen eenvoudig worden teruggevonden komen berichten op de juiste bestemming aan.

Te weinig adressen
Nu kun je je voorstellen dat met zo veel verschillende apparaten die een adres willen op het internet er vrij snel geen adressen beschikbaar meer zijn. Tot nu toe was het mogelijk om met wat slimme trucs veel meer apparaten met het internet te verbinden dan oorspronkelijk mogelijk was. De meeste gebruikte truc zorgt ervoor dat mensen thuis en bedrijven meerdere apparaten met hetzelfde adres op internet bekend zijn. Dit werkt doordat er een toegewijde "postbode" bij de centrale brievenbus wacht op binnenkomend verkeer. Doordat hij in een notitieblok heeft bijgehouden naar wie er een bericht is verstuurd, weet hij ook wie er op een antwoord wacht. Een bijkomend voordeel van deze oplossing is dat alle apparaten die "achter" de postbode staan niet direct met internet communiceren en dus ook niet direct door kwaadwillenden bereikt kunnen worden. Op die manier worden zij dus enigszins beschermt tegen aanvallen van buitenaf.

IP versie 4 en IP versie 6
Het huidige internet is voor het overgrote deel alleen bereikbaar via "verouderde" IP adressen, de versie van deze manier van adresseren is versie 4 of IPv4. Inmiddels is het zo dat alle IPv4-adressen zijn gereserveerd. In 2006 zag men dit al aankomen en is er een nieuw voorstel geschreven voor het schrijven van de internet adressen (IPv6). Het probleem hierbij is dat deze nieuwe manier zó anders is dat je vanaf een apparaat met alleen een oud adres geen berichten kunt sturen naar een apparaat met een nieuw adres. Denk als voorbeeld aan telefoons met alleen getallen om een nummer mee te bellen, daarnaast kan deze telefoon alleen naar nummers met tien getallen bellen. Met nieuwe telefoons kun je zowel letters als cijfers gebruiken en kun je naar nummers van twintig karakters bellen. Deze nieuwe nummers kun je niet bellen vanaf de oude telefoon. Naar verwachting zullen beide manieren van adresseren lange tijd naast elkaar blijven bestaan, dit komt voornamelijk omdat er voor mensen met een oude adressering geen echte reden is om over te stappen, iedereen die zij willen bereiken gebruikt waarschijnlijk ook de oude adressering. Daarnaast is het niet gratis om over te stappen, omdat bijvoorbeeld ook de eerder genoemde "postbode" bij de deur vervangen moet worden.

dinsdag 21 augustus 2012

Een cookie van eigen deeg: vriendelijkheid, veiligheid en veelzijdigheid tegenover privacy

Hoewel geen normale web gebruiker ze weet te vinden, zijn cookies toch een belangrijk onderdeel van het debat over privacy op internet. Ze maken het nu eenmaal mogelijk voor bedrijven om bezoekers te volgen en te begrijpen waarom ze hun website bezoeken en, misschien belangrijker, deze weer verlaten. Net zoals echte cookies laten ze namelijk een spoor van kruimels achter die eenvoudig zijn te volgen. Technisch een charmante oplossing voor meer gebruikersvriendelijkheid, die helaas ruimte laat voor onbedoeld gebruik.

Geen gebruiker wil bij elke handeling moeten bewijzen dat hij deze mag uitvoeren. Een applicatie die dit vereist is simpelweg onbruikbaar. Het web is echter zo ontworpen dat een web-applicatie direct vergeet wie of wat hem zojuist een verzoek stuurde. Op één of andere manier moet de gebruiker bij elk verzoek opnieuw vertellen wie hij is, zodat de server weet of hij het verzoek mag uitvoeren. Over het algemeen wordt dit opgelost door de gebruiker een unieke code of token te geven. Zodoende kan hij aangeven wie hij is, zonder dat er bij elk verzoek gebruikersnaam en wachtwoord nodig zijn. Technisch is het op een aantal manieren mogelijk het token terug te sturen, namelijk door deze:
  • op te nemen in het pad die de gebruiker opvraagt 
  • met behulp van JavaScript aan het verzoek toe te voegen
  • op te slaan als cookie, die met elk volgend verzoek aan de web-applicatie automatisch wordt meegestuurd
De eerste oplossing is het onveiligst, omdat gebruikers hiermee eenvoudig, en vaak onbewust, hun toegangsrechten aan iemand anders kunnen overdragen. De tweede oplossing is wel veiliger, maar voorkomt dat een gebruiker in een nieuw venster kan verder werken. De derde oplossing is om bovenstaande redenen dus tot nu toe de oplossing gebleken om een gebruiker de beste ervaring te geven binnen een web-applicatie.

Het grote nadeel wat aan deze oplossing kleeft, is dat de server iets kan opslaan bij de gebruiker wat dus automatisch bij elk verzoek wordt meegestuurd. Ook wanneer de gebruiker zelf geen handeling uitvoert binnen de web-applicatie. Omdat hiermee bezoekers gevolgd kunnen worden is dit een bonus voor bedrijven die reclame of andere inhoud willen afstemmen op een gebruiker. Door on-line te winkelen, zoeken of gewoon maar rond te klikken onthult de gebruiker onbewust een klein stukje van zijn identiteit. Uiteindelijk, door voldoende stukjes in elkaar te puzzelen, wordt het beeld van de gebruiker hiermee steeds gedetailleerder. Ik vermoed (en ik niet alleen) dat grote spelers soms meer van hun gebruikers afweten dan zijzelf...

Als ontwikkelaar zie ik dus een duidelijk voordeel aan cookies: ze helpen mij een veelzijdige, gebruikersvriendelijkere applicatie te ontwikkelen echter ben ik mij ook bewust van de "extra's" die hiermee gepaard gaan. Veel web-applicaties gebruiken om integere redenen cookies, bescherming van privacy zal hier dan ook nauwelijks relevant zijn. Het probleem zit in in websites en applicaties die hun gebruikers markeren en vervolgens over het web (achter)volgen (zogenaamde "trackers").

Als voorgestelde "oplossing" bestaat er tegenwoordig een "do-not-track" optie. Of dit gaat helpen valt nog maar te betwijfelen: de eigenlijke implementatie ervan ligt bij de websites en applicaties die juist gebaat zijn hun bezoekers te volgen. De vraag is dus of deze ongewenste volgers de privacy van hun bezoekers zullen respecteren, wanneer ze daarmee waardevolle informatie moeten afstaan. Actieve bescherming van de privacy ligt, volgens mij, in eerste instantie bij de gebruiker zelf en daarmee bij het middel wat hij gebruikt: de browser.

Gelukkig bestaan er voor browser veel uitbreidingen die de gebruiker helpen om hun privacy te beschermen. Op dit moment gebruik ik zelf PrivacyChoice Trackerblock. Deze add-on is weliswaar alleen voor Firefox beschikbaar, maar ik verwacht dat voor andere browsers er vergelijkbare uitbreidingen bestaan.


Welkom

Nieuwe technologieën worden vaak gezien als iets wat beangstigt: computervirussen die je (huis)werk vernietigen, "sociale" netwerken die mensen van elkaar vervreemden of onzichtbare spionage, zelfs kunstmatige intelligentie wat het leven verwoest. Gek, want dit is eerder het gevolg van hoe mensen zelf de technologie gebruiken in hun leven en niet van technologie op zich. Of beter gezegd: doordat mensen niet begrijpen wat ze doen, stuitten ze vaak op ongewenste bijwerkingen.

Volgens mij blijven er daarom drie mogelijkheden:
  1. Je stopt met het gebruik van technologie
  2. Je gaat door op de weg die je bent ingeslagen
  3. Je probeert de technologie te begrijpen en besluit dan waar het voor jou het beste geschikt voor is
Door met technologie te experimenteren, ga je begrijpen hoe het werkt. Misschien dat ik je hiermee op weg kan helpen...