woensdag 30 april 2014

Reverse engineering als educatiemiddel?

Reverse engineering als educatiemiddel?

Inleiding

Reverse engineering is het omgekeerde proces van productie en ontwerp: men vertrekt van het afgewerkt produkt en probeert via allerlei technieken te achterhalen hoe de technologie tot stand is gekomen. Het eerste wat bij veel mensen daarbij opkomt is een notie van malafide bedoelingen: proberen na te maken wat de originele bedenker heeft bedacht of geconstrueerd. Om die reden zijn constructeurs dan ook meestal geneigd zichzelf zoveel mogelijk in te dekken tegen reverse engineering. Dit kan met allerlei wettelijke middelen, zoals allerlei —zoals dat in het Engels heet— disclaimers of vrijwaringsclausules. Dan is het de bedoeling dat de consument, alvorens hij het produkt gebruikt, ondertekent dat hij het produkt niet gaat analyseren.  Een andere typische methode die bij software heel vaak voorkomt, is het implementeren van allerlei trucs die technieken voor reverse engineering bemoeilijken. Het gaat dan over decompilatie (het omzetten van machinecode naar de originele hogere programmeertaal), tracing (het stap voor stap volgen van de uitvoering van een programma) en disassemblering (het omzetten van digitale machinecode naar leesbare tekens) van software.

Een andere kant van het verhaal

We kunnen reverse engineering echter ook op andere manieren bekijken.   Laat ons twee concrete voorbeelden nemen om dit te illusteren.

Een eerste voorbeeld zal de ingenieurs onder u wellicht aanspreken: mijn broer, een geboren electronicus, was al op zijn 14 jaar bezig met het uit elkaar halen van allerlei electronische apparatuur in huis, waaronder de radio's (tot groot ongenoegen van onze ouders). Inderdaad: om tot een goed begrip te komen van bepaalde materie is het bekijken van andermans' werk soms zeer leerrijk. Er rijst dan ook de vraag of de techniek(en) ook niet beschouwd kunnen worden als een essentieel deel van het leerproces.

Het tweede voorbeeld heeft te maken met iets helemaal anders: technologie (àlle technologie!) kan voor goede of slechte doeleinden gebruikt worden. Nemen we bijvoorbeeld het fenomeen van computervirussen: willen we de dreiging van een bepaald (al dan niet ingenieus geconstrueerd) computervirus afwenden, dan zijn we eigenlijk verplicht om het virus te reverse engineeren. In de limiet gesteld is het dus misschien wel naïef om te veronderstellen dat het actief bestrijden van reverse engineering op de lange termijn wel zoveel voordelen biedt.

Een stapje terug in de tijd

In 1994 schreef Andrew Schulman reeds een opiniestuk in een boek over ongedocumenteerde functies van het toen meest gebruikte operating system voor de PC, namelijk MS-DOS.[1]  In dit werk maakt hij zelf intensief gebruik van reverse engineering tools.

Schulman merkt op dat heel wat software verkocht wordt onder een zogenaamde "schrink-wrap license". Dit houdt in dat de consument afziet van zijn recht om het produkt terug geven zonder kost, van zodra hij de verpakking openscheurt. Het probleem is dat de contractuele bepalingen meestal binnenin de verpakking zitten, waardoor de klant dus eigenlijk geen overleg kan plegen met de verkoper alvorens tot de aankoop over te gaan: een essentieel onderdeel van elke economische transactie.

Om de zaak nog vreemder te maken, citeert Schulman:[2]

"REVERSE ENGINEERING IS NOT IMPROPER MEANS
Many products are manufactured pursuant to plans or with technologies that are trade secrets and then sold to the public at large. In some cases the method of manufacture of these items may be discovered by careful study of the object. Typical methods of discovery include taking the product apart or performing experiments on it. This process of analysis is usually called "reverse engineering." Numerous cases hold that reverse engineering is not an improper means of learning a trade secret. Risk of discovery by  engineering is a risk that a firm takes when it chooses to rely on trade secret protection for a valuable commercial asset. Note that if a firm secures patent protection for a new device or manufacturing process it is protected against "reverse engineering." This is one of the most important differences between patent and trade secret protection."
De keuze  voor de producent is inderdaad: bescherming genieten via patenten maar met openbaarheid van de gebruikte kennis, ofwel het systeem van bedrijfsgeheim. Zelfs een copyright beschermt de producent niet altijd tegen reverse engineering, zoals de volgende uitspraak van een rechtbank getuigt:[1]

We conclude that where disassembly is the only way to gain access to the ideas and functional elements embodied in a copyrighted computer program and where there is a legitimate reason for seeking such access, disassembly is a fair use of the copyrighted work, as a matter of law.
Schulman besluit dat ook het publiceren van gedecompileerde of gedisassembleerde code (zoals in zijn boek) óók een vorm van "fair use" is. Immers, zo repliceert hij, wordt software beschouwd als een vorm van literatuur, en literatuur moet openstaan voor kritiek. Dit concept, literary criticism, wordt ook bijgestaan door auteur en software-analist Geoff Chappell, die een diep begraven stuk machinecode ontdekte in MS-DOS dat de compatibiliteit met bepaalde software doelbewust saboteerde.[1][3]

Reverse engineering vandaag

De Amerikaanse wet op het copyright voorziet expliciet dat  reverse engineering toegestaan is voor kritiek, commentaar, journalistiek en educatieve doeleinden.[4]

Europa is helaas een pak restrictiever in haar aanpak. Zowel de originele wet van 1991[5] als de nieuwe wet van 2009[6] maken hooguit een uitzondering voor het geval een stuk software compatibel gemaakt moet kunnen worden met bestaande hard- of software.

Toch krijgen we, ook in Europa, ook vandaag te maken met reverse engineering dat tot op heden zonder gevolg blijkt te zijn. Een mooi voorbeeld is het ReactOS project, een Open Source clone van MicroSoft Windows dat zeer doorgedreven voortbouwt op reverse engineering van de echte Windows-software. En laat ons vooral ook niet vergeten dat de hele historiek van de betaalbare personal computer voor een heel groot deel steunt op reverse engineering van de originele PC XT en PC AT van IBM.

De conclusie is wellicht dat het laatste woord nog niet gezegd is, en misschien (hopelijk) in de nabije toekomst de weg voor reverse engineering ook wettelijk terug opengesteld wordt voor educatieve doeleinden.

Referenties

[1] Schulman, A., Brown, R., Maxey, D., Michels, R.J. and Kyle, J. (1994) Undocumented DOS, Addison-Wesley, ISBN 0-201-63287-X, pp. 333–336.

[2] (Via [1]) Schechter, R.F. (1993) Unfair Trade Practices and Intellectual Property, West Group Pub., ISBN 978-0314019493, pp. 135–136.

[3] Record of AARD Research

[4]  Copyright Law of the United States of America

[5] Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs, art. 6

[6] DIRECTIVE 2009/24/EC OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 23 April 2009 on the legal protection of computer programs, art. 15

Geen opmerkingen:

Een reactie plaatsen