Geek pages
- May 1, 2014
- 0
Een webserver in één printf-aanroep
Google-ingenieur Jeff Dean heeft de reputatie dat hij buitenaards intelligent is. Net zoals er buitensporige Chuck Norris facts bestaan, bestaat er ook een lijst van Jeff Dean facts, die als 1 april-grap in 2007 ontstond. Één van die grappen gaat als volgt: “Jeff Dean once implemented a web server in a single printf() call. Other engineers added thousands of lines of explanatory comments, but still don’t understand exactly how it works. Today that program is the front-end to Google Search.”
De ontwikkelaar Yohanes Nugroho was zo onder de indruk van die (uiteraard fictieve) grap dat hij besloot om dit idee te implementeren. Hij zou een volledige webserver in één printf-opdracht in C schrijven. Dat lukte, al moest hij er wel vals voor spelen. Hij maakte gebruik van een speciale format string die een beveiligingsfout in printf uitbuit. De string die hij door printf liet tonen was een gecodeerde versie van assemblercode voor een amd64 Linux-systeem. De code moet wel met bepaalde compileropties gecompileerd worden en werkt enkel met een specifieke versie van gcc. Geïnteresseerde lezers moeten maar eens proberen om de code te schalen, zodat hij snel genoeg is om als Google front-end te functioneren…
Pentagon bestudeert Poetin’s lichaamstaal
Een onderzoeksteam van het Pentagon is de lichaamsbewegingen van de Russische president Vladimir Poetin en andere wereldleiders aan het bestuderen om beter hun acties te voorspellen. Brenda Connors, directeur van het “Body Leads” project, schreef in 2008 al een rapport over Poetin’s lichaamstaal. Haar onderzoek is gebaseerd op movement pattern analysis, een theorie die in de jaren ’40 door de Hongaar Rudolf Laban ontwikkeld is en na de Tweede Wereldoorlog verder is uitgewerkt door Warren Lamb, een Britse managementconsultant.
Lamb geloofde dat elk individu een unieke “lichaamshandtekening” heeft, waarbij elke lichaamsbeweging leidt tot een andere. Door dit voorspelbare gedrag van het lichaam naast de woorden te leggen die een persoon uitspreekt, kan men iets leren over de gedachtegang van de persoon en de oprechtheid van zijn woorden. Allemaal goed en wel, maar heeft iemand al eens meer dan één gezichtsuitdrukking gezien van Poetin?
D-Wave chip is misschien toch een kwantumcomputer
Het Canadese bedrijf D-Wave Systems bracht in 2011 naar eigen zeggen de eerste commercieel verkrijgbare kwantumcomputer op de markt. In de wetenschappelijke gemeenschap was er echter heel wat scepsis. Ging het hier wel echt om een kwantumcomputer? Dat D-Wave in zijn persberichten de mogelijkheden van zijn computer consequent opblies, droeg ook niet bij aan hun geloofwaardigheid.
Ondertussen zijn er maar twee exemplaren van de D-Wave One in werking, wat niet verbazingwekkend is met een prijskaartje van 10 miljoen dollar per machine. Één van de machines draait sinds eind 2011 in het USC-Lockheed Martin Quantum Computing Center (QCC) van de USC Viterbi School of Engineering in Los Angeles. Onderzoekers hebben de D-Wave One daar jaren aan de tand gevoeld en de resultaten proberen te verklaren volgens diverse modellen. Wat blijkt? Het gedrag van de machine komt overeen met het quantum Monte Carlo model, terwijl twee klassieke modellen door de resultaten worden tegengesproken. Dat is nog geen hard bewijs, maar geeft al iets meer steun aan de beweringen van het Canadese bedrijf. Zouden de 128 qubits dan toch een kwantumcomputer vormen?
Waarom is de muiscursor schuin?
Heb je je ooit afgevraagd waarom je muiscursor lichtjes schuin naar links overhelt? De linkerkant van de top van de pijl staat verticaal, terwijl de rechterkant een hoek van 45 graden maakt. De muiscursor is een uitvinding van Douglas Engelbart (die ook de muis heeft uitgevonden) en wees initieel naar boven. Toen Xerox PARC (Palo Alto Research Center) hun computer bouwde (die Steve Jobs later gebruikte voor zijn Mac), bleek echter dat het scherm zo’n lage resolutie had dat een cursor die recht omhoog wees heel onduidelijk te onderscheiden was. Zo kreeg onze huidige schuine cursor zijn vorm. In sommige grafische interfaces van de vroege jaren ’80 vind je overigens nog altijd verticale pijlen, zoals in de Visi On van VisiCorp, de eerste GUI voor de IBM PC. Steve Jobs pikte echter ook de schuine cursor van Xerox PARC en Bill Gates pikte het idee op zijn beurt weer van Apple. En zo gebruiken we nu allemaal in de tijd van 4K- en Retina-schermen een cursor die ontworpen is voor lage schermresoluties…
Fuck you!
Word je ook soms zo razend van een programma dat aan het vastlopen is en je hele desktopomgeving meesleurt in een langzame doodstrijd, omdat het maar niet wil crashen? Een eenvoudige pkill- of killall-opdracht lost het probleem vaak wel op, maar je blijft toch zitten met die onverzadigde drang om tegen het programma te schreeuwen en het pijn te doen. Niet? Louis Acresti heeft gelukkig een oplossing gevonden: het Bash-script “fuck”, zodat je met een welgemeende “fuck you firefox” een Firefox die blijft hangen naar de eeuwige jachtvelden stuurt. Let op: voer het script niet op die Solaris-server uit die je misschien nog op je werk hebt draaien. Het killall-commando voert daar namelijk een heel andere taak uit dan onder Linux…
Malware-auteur verwart bytes en cijfers
Ransomware is een moderne soort van kidnapping: je start je computer op en plots krijg je de boodschap van malware dat al je documenten versleuteld zijn met een sleutel die enkel de malware-auteur heeft. Wil je weer toegang tot je documenten, dan moet je geld betalen. Een recent voorbeeld van ransomware is Bitcrypt, dat allerlei bestanden op Windows-systemen versleutelt en het slachtoffer dan vraagt om een bedrag in bitcoins te betalen. Op het eerste gezicht is dit slecht nieuws voor de slachtoffers van Bitcrypt. Zonder te betalen, krijgen ze nooit meer toegang tot hun bestanden, want de encryptiemethode zit goed in elkaar. Onderzoekers van CASSIDIAN CyberSecurity ontdekten echter een zwakheid: de RSA-sleutel waarmee de symmetrische sleutels versleuteld werden die de bestanden versleutelden, bleek erg klein. Normaal is een RSA-sleutel toch minstens 1024 bits groot, maar die van Bitcrypt bleek 128 (decimale) cijfers groot te zijn. Vreemd, tot je beseft dat 1024 bits gelijk is aan 128 bytes. De auteur van Bitcrypt heeft blijkbaar opgezocht hoe groot een RSA-sleutel moet zijn en daarbij bytes met decimale cijfers verward… De resulterende RSA-sleutel kon op een standaard-pc in enkele uren tijd gekraakt worden, waardoor de slachtoffers van Bitcrypt niet meer hoefden te wanhopen.
Twaalfjarige bouwt brailleprinter uit LEGO
Shubham Banerjee, een 12-jarige uit California, was een project aan het zoeken voor een wetenschapswedstrijd . Hij had gehoord dat brailleprinters voor blinden meer dan tweeduizend dollar kosten en wilde een goedkoper alternatief uitvinden. Hij kocht een Lego Mindstorms EV3-kit en breidde de set uit met enkele componenten van bouwketen Home Depot die hij voor enkele dollars kocht. Hij baseerde zijn ontwerp op een bestaand model voor een printer, herschreef de software en veranderde het ontwerp, zodat het geen gewone letters maar brailleletters afdrukte. Het resultaat noemde hij Braigo.
De Braigo scrollt door het alfabet, waarna je een letter kiest. Die letter drukt het apparaat dan af op een rol kassapapier. Hoe precies? Door met een punaise de juiste puntjes in het papier te drukken. Het prototype is nog niet echt snel, maar het werkt wel. Banerjee is het project al aan het verbeteren en wil het resultaat open source maken, zodat iedere blinde zijn eigen Braigo kan maken en de mogelijkheden kan uitbreiden. En dat alles voor een veel lagere prijs dan normaal.
Authenticatie-apparaatje voor de Raspberry Pi
De mensen van Cryptotronix hebben een authenticatie-apparaatje ontwikkeld dat je eenvoudig in de BeagleBone Black of de Raspberry Pi plugt. Het dochterbordje dat op de Atmel ATSHA204-microcontroller gebaseerd is, functioneert als een hardware random number generator, berekent SHA256 Message Authentication Codes en kan tot 16.256-bit sleutels in beschermd geheugen opslaan. De Hashlet is volledig open hardware: Cryptotronix heeft de ontwerpbestanden en schema’s online gezet op GitHub. Cryptotronix levert ook commandline software mee om het apparaatje aan te sturen en heeft die onder de GPLv3-licentie vrijgegeven. Zo genereert de opdracht
hashlet random 32
willekeurige bytes. De Hashlet is te koop voor amper 12 dollar.
De ontwikkelaar Yohanes Nugroho was zo onder de indruk van die (uiteraard fictieve) grap dat hij besloot om dit idee te implementeren. Hij zou een volledige webserver in één printf-opdracht in C schrijven. Dat lukte, al moest hij er wel vals voor spelen. Hij maakte gebruik van een speciale format string die een beveiligingsfout in printf uitbuit. De string die hij door printf liet tonen was een gecodeerde versie van assemblercode voor een amd64 Linux-systeem. De code moet wel met bepaalde compileropties gecompileerd worden en werkt enkel met een specifieke versie van gcc. Geïnteresseerde lezers moeten maar eens proberen om de code te schalen, zodat hij snel genoeg is om als Google front-end te functioneren…