Mag je software reverse engineeren om fouten te vinden?

Een lezer vroeg me:

Is reverse engineering legaal als het doel is om beveiligingslekken te vinden? Jij zei ooit van wel, maar in de wet staat volgens mij dat je alleen mag reverse engineeren om compatibiliteit te realiseren.

Oef, dat is lang geleden, maar inderdaad:

Alleen die vormen waarmee je compatibiliteit met zelfgeschreven software wilt bewerkstelligen, of waarmee je alleen de achterliggende ideeën, concepten en principes achterhaalt zijn legaal. Met name is het niet legaal om de informatie te gebruiken om een kloon van de software te maken.

Waar de vraagsteller naar refereert, is het wetsartikel dat het eerste deel van die zin onderbouwt:

Als inbreuk op het auteursrecht op [software], worden niet beschouwd het vervaardigen van een kopie van dat werk en het vertalen van de codevorm daarvan, indien deze handelingen onmisbaar zijn om de informatie te verkrijgen die nodig is om de interoperabiliteit van een onafhankelijk vervaardigd computerprogramma met andere computerprogramma’s tot stand te brengen, mits: (bla)

Dit is inderdaad beperkt tot reverse engineeren met als doel het maken van een interoperabel eigen programma. Soms is het daarvoor nodig dat je de broncode van andere software achterhaalt, omdat je anders onvoldoende informatie hebt over hoe je eigen software moet gaan werken. Het vinden van een fout in software is natuurlijk niet hetzelfde als “interoperabiliteit tot stand brengen”, tenzij je zegt “ik moet weten hoe die fout werkt want ook daarin moet ik compatibel zijn”.

Er is echter nog een ander artikel dat specifieker op fouten ziet:

De verveelvoudiging, als bedoeld in de eerste zin, die geschiedt in het kader van het laden, het in beeld brengen of het verbeteren van fouten, kan niet bij overeenkomst worden verboden.

Reverse engineeren is een vorm van verveelvoudigen. Dat is waarom deze actie in principe inbreuk op het auteursrecht maakt. Echter, dit artikel verklaart het verveelvoudigen ter herstel van fouten legaal (zelfs als in de EULA staat dat dat niet toegestaan is). Daarom zou dit volgens mij toch gewoon toegestaan zijn.

Dus ik geloof dat ik toch gelijk had, hoewel om een andere reden dan ik zei 🙂

Arnoud

De giecheltoets als uitleg van recht

giggle-test-giecheltoets.jpgDe laatste tijd gebruik ik ‘m steeds vaker in presentaties en workshops: de giecheltoets. De giecheltoets is mijn vuistregel voor juridische argumenten: als je het argument niet kunt uitleggen zonder in lachen uit te barsten, of als je publiek het niet kan aanhoren zonder te gaan lachen, dan is het argument niet geldig.

Het gebeurt namelijk vaak dat mensen (opvallend vaak IT-ers) die een juridische regel horen, deze meteen tot het extreme gaan oprekken. Nou is stresstesten een goede zaak bij software, maar juridische regels zijn niet zo ontworpen. Die gaan uit van een redelijke en billijke omgeving, en regels tot in het extreme oprekken is gewoon niet de bedoeling. De consequentie van dat toch doen, is dat je een absurde uitkomst krijgt, en daar moeten mensen om lachen. Vandaar de giecheltoets.

In de VS bestaat de giggle test al, maar in Nederland heb ik hem nog niet aangehaald zien worden. Jullie wel? Of andere handige vuistregels?

Arnoud

Op LEGO passende steentjes namaken mag, mits

lego-mega-bloks-blokken-steentjes-nabootsing.pngHet maken van steentjes die op Lego-steentjes passen, is toegestaan. Wel moet je daarbij zo veel mogelijk je best doen om te zorgen dat er geen verwarring kan ontstaan over wiens steentjes het nu eigenlijk zijn. Dat blijkt uit een arrest van de Hoge Raad (via Boek 9) van vorige week, dat een arrest van het Gerechtshof uit 2007 bevestigt. En ik ben benieuwd of we hier nog een voor ICT relevant aspect uit kunnen slepen.

Een hoofdregel in het recht is dat namaken en imiteren van slimme dingen van anderen toegestaan is. Alleen als er een specifiek recht (zoals auteursrecht, octrooi of merkrecht) aan te wijzen is, komt dat anders te liggen. Je mag dus een slimme verkooptruc of schrijftechniek zomaar overnemen. De Hoge Raad trekt (al jarenlang trouwens) de grens bij ‘slaafse nabootsing’, het zonder goede reden heel dicht naast een concurrent gaan zitten met je eigen product of dienst. Je moet alles doen wat redelijkerwijs mogelijk en nodig is om te voorkomen dat er gevaar voor verwarring ontstaat.

Nu zijn er tientallen manieren om blokjes te maken die je met elkaar kunt koppelen via knopjes en buisjes, maar er is maar één manier om dat zo te doen dat die blokjes passen op Legoblokjes. En als je die ene manier nadoet, dan is er zeker verwarring mogelijk. Betekent dit dat je dus geen passende blokjes mag maken? Nee, zegt de Hoge Raad:

Onder omstandigheden kan een bij afnemers van de producten bestaande behoefte aan standaardisatie evenwel een rechtvaardiging zijn voor het verwarringwekkend nabootsen van een product

Die verwarring ontstaat immers door de vereiste plaatsing en hoogte van de koppelelementen op de blokjes. Als je die ergens anders neerzet, past het niet meer. Hoewel je nog steeds alles moet doen wat redelijkerwijs nodig is om verwarringsgevaar te voorkomen, is het niet redelijk dat je dan maar niet-passende blokjes moet gaan maken. Als er behoefte is aan passende blokjes, dan mag je die maken.

Zag u het verschil tussen de twee blokjes in het plaatje hierboven trouwens? Volgens de rechtbank, en bevestigd door de Hoge Raad, zijn deze verschillen genoeg om verwarringsgevaar te voorkomen.

Arnoud