Mag Skype worden gereverse engineered?
Een beveiligingsonderzoeker heeft het gedrag van de VoIP-software Skype onderzocht. Op basis van die reverse engineering heeft hij een groot deel van de code achterhaald, meldde Webwereld vrijdag. Daarop, zo meldde Phoronix, vloog Skype meteen in de tegenaanval, met gestrekt been, Zidane-kopstoot én kruistrap:
This unauthorized use of our application for malicious activities like spamming/phishing infringes on Skype’s intellectual property. We are taking all necessary steps to prevent/defeat nefarious attempts to subvert Skype’s experience. Skype takes its users’ safety and security seriously and we work tirelessly to ensure each individual has the best possible experience.
Nu kun je natuurlijk “gatver wat een rotopmerking” zeggen, maar we zijn hier een keurig juridisch blog (niet lachen daar achterin), dus laten we eens kijken naar de achterliggende vraag: mag je Skype reverse engineeren en daarmee je eigen Voice-over-IP-client op de markt brengen?
Reverse engineeren is een algemene term voor het uit elkaar halen van een product (of software) om te zien hoe dit opgebouwd is. Specifiek voor software worden ook wel termen als disassembleren of decompileren gebruikt, maar algemeen gesproken komen ze op hetzelfde neer: de software wordt uit elkaar geplozen en geanalyseerd om te zien hoe deze werkt. Omdat hierbij een kopie van de software wordt gemaakt, valt dit in principe onder het auteursrecht.
De Auteurswet zegt dat software mag worden gereverse-engineerd om interoperabiliteit van zelf ontwikkelde software met andere software tot stand te brengen. Zo mag een ontwikkelaar een eigen driver maken om de (embedded) software in de grafische kaart te kunnen besturen. Hij mag daarvoor de bestaande driver pakken en deze disassembleren: de binaire code uit elkaar halen om zo in één keer te zien wat de driver allemaal voor commando’s kan versturen en ontvangen. Ook mag hij het communicatieprotocol observeren en daarmee achterhalen hoe zijn eigen software moet werken.
Een lastige beperking aan het recht om te reverse engineeren is dat het moet gaan om het interoperabel maken van eigen software. In veel gevallen is het doel van reverse engineering eerder het maken van eigen software die hetzelfde doet als de software die uit elkaar wordt gehaald. Het ‘klonen’ van software via reverse engineering is echter expliciet verboden. Het voorbeeld van de driver hierboven is een grensgeval: weliswaar wordt de driver een soort van gekloond, maar het doel is om de eigen software met de software in de kaart te laten werken.
In de praktijk is dit lastig werkbaar: wie een driver disassembleert en dan een nieuwe driver maakt, zal al héél snel – bewust of onbewust – auteursrechtelijk beschermde delen overnemen. Als best practice geldt daarom het principe van de “Chinese muur”, waarbij twee teams samenwerken bij de ontwikkeling van software op basis van reverse engineering. Team A haalt de oorspronkelijke software uit elkaar en documenteert de functionaliteit. Team B ontvangt alleen deze documentatie en krijgt geen toegang tot de oorspronkelijke software. Daarmee kan team B zelf software maken zonder ‘besmet’ te zijn met de gereverse-engineerde broncode.
Speciaal voor protocollen ligt het net weer anders: je mag netwerkverkeer observeren en daaruit achterhalen hoe een protocol werkt. Als je dan zonder andermans client of server te bekijken je eigen implementatie van dat protocol maakt, is er juridisch niets aan de hand. Dat reverse engineeren van een protocol is niet waar de Auteurswet op doelt. Maar in het Skype-geval is niet alleen netwerkverkeer geanalyseerd maar ook de client van Skype zelf.
Arnoud
Afbeelding: Revealing Skype Traffic: When Randomness Plays with You, Dario Bonfiglio et al., SIGCOMM’07, August 27–31, 2007, Kyoto, Japan.

Een lezer vroeg zich af:
Mag je je iPhone nou wel of niet unlocken? Over die vraag is veel
Afgezien van octrooien is het reverse engineeren van de werking van hardware dus legaal. Dat is erg handig voor bijvoorbeeld 
