Vi har nu gått igenom vad reverse engineering är och hur förbudet mot kringgående av kopieringsskydd fungerar när det gäller datorprogram, samt varför det är relevant vid utförande av reverse engineering. Idag tittar vi närmare på den rättsliga striden mellan Oracle och Google, en decennielång rättssaga med konsekvenser för framtidens digitalisering. Vi tittar också på ett motsvarande fall i EU från 2012 och vad lagen egentligen säger om att återimplementera andras API:er utan tillstånd med hjälp av reverse engineering.
Upphovsrätten stoppar datorprogram från att fritt kopieras. Men skyddas programmens API:er också? Med andra ord: får jag lov att kopiera det API som Skolplattformen de facto använder till min egen lärplattform, så att Öppna Skolplattformen hade fungerat likadant med min lärplattform som med Skolplattformen?
Det är en potentiellt invecklad rättslig fråga med stora konsekvenser. Dessa är kanske inte så relevanta rent praktiskt för just Skolplattformen, men däremot för Sveriges allmänna digitalisering.
Oracle vs Google
>
Den juridiska striden mellan Oracle och Google inleddes 2010 och avslutades inte förrän den amerikanska högsta domstolen (delvis) avgjorde tvisten till Googles fördel i april 2021. Rättsfallet gällde en återimplementering av Javas API som Google gjort till sitt mobila operativsystem Android. Googles återimplementering gjorde att den som ville utveckla en app till Android kunde utgå från de standarder som gällde för utveckling mot Java, vilket sänkte trösklarna för utvecklare som ville arbeta med Android-systemet.
Det här är ett vanligt sätt att agera på inom utveckling av mjukvara. Operativsystemet Linux utgår till exempel från POSIX-standarder som återimplementerar funktioner hos operativsystemet Unix. Det betyder att den som vill utveckla program för Linux kan återanvända kunskap från utveckling för Unix och att program skrivna för Unix enkelt kan fås att fungera på Linux. Oracle har själva återimplementerat ett API från Amazons S3-molntjänst, så att den som normalt arbetat mot S3 enkelt kan migrera till Oracles konkurrerande tjänst. Återimplementering stärker digitala marknader enormt genom att motverka inlåsningseffekter (engelska: switching costs).
Inlåsningseffekter är tekniska, juridiska och administrativa åtgärder som gör det svårt och/eller dyrt att byta från en mjukvara eller digital tjänst till en annan. Det handlar ofta om att se till att kunden har investerat mycket tid och pengar i din tjänst, som du sedan ser till att kunden måste ge upp ifall den ska byta till en konkurrent. Ett exempel är hur svårt det är att ta musik du köpt via iTunes med dig ifall du vill lämna Apples ekosystem. Ett annat hur Microsoft genom att göra sina Word-filer komplicerade att läsa för andra program försvårar ett byte från Word till t.ex. LibreOffice.
När inte offentlig dokumentation finns åstadkoms den typ av återimplementering vi pratar om här genom reverse engineering. Genom att studera sin konkurrents API kan man återimplementera dess funktioner, så att ens tjänst från en utomståendes synvinkel är identisk med konkurrentens, även om den fungerar annorlunda ”under huven”. Man kan jämföra det med två olika rattar till en bil, som båda två konverterar vridning av ratten till vridning av hjulen, men som gör det på två helt olika sätt. Rattarna kan vara olika stora, ha olika former, och så vidare, men för resten av bilen spelar det ingen roll, då kommunikationen mellan ratten och resten av bilen ser likadan ut.
Den amerikanska högsta domstolen fann till slut att återimplementering av API kan vara så kallat fair use. I amerikansk upphovsrättslig doktrin innebär fair use ett generellt undantag från rättighetshavarens ensamrätt till kopiering och bruk av verket i fråga. Huruvida en användning av ett verk faller inom ramarna för fair use avgörs av domstolens hänsynstagande till ett par kriterier, som till exempel hur stor del av verket som återanvänts. Det innebär dock inte att det generellt är lagligt att reverse engineer ett API, eftersom man fortfarande kan bryta mot förbudet att kringgå kopieringsskydd. Javas API skyddades inte av något kopieringsskydd.
I EU har vi tyvärr inget motsvarande generellt undantag från upphovsrätten likt det amerikanska fair use. Piratpartiet har i många år kampanjat för införandet av ett generellt undantag från upphovsrätten i EU. Tyvärr hittills utan framgång. Vad vi däremot har i EU är en annorlunda situation rörande upphovsrätt till API:er.
SAS vs WPL
>
I fallet SAS vs WPL från 2012 kom EU-domstolen fram till att specifikt API:er generellt inte bör omfattas av upphovsrätten. Specifikt kan varken funktionaliteten hos ett datorprogram, språket det är skrivet i eller formatet för dess filer skyddas av upphovsrätten till datorprogrammet. Fallet gällde det script-språk som WPL tagit fram, vilket kunde hantera script skrivna i SAS’ språk.
It must therefore be held that the copyright in a computer program cannot be infringed where, as in the present case, the lawful acquirer of the licence did not have access to the source code of the computer program to which that licence relates, but merely studied, observed and tested that program in order to reproduce its functionality in a second program.
[…] a person who has obtained a copy of a computer program under a licence is entitled, without the authorisation of the owner of the copyright, to observe, study or test the functioning of that program so as to determine the ideas and principles which underlie any element of the program, in the case where that person carries out acts covered by that licence and acts of loading and running necessary for the use of the computer program, and on condition that that person does not infringe the exclusive rights of the owner of the copyright in that program.
I Sverige och EU är det alltså inte ett brott i sig att återimplementera en konkurrents API – åtminstone inte på det sättet att API:t skyddas av upphovsrätten. Varför kom domstolen fram till detta?
Mjukvarudirektivet
>
I EU regleras upphovsrätt till datorprogram framför allt genom mjukvarudirektivet från 1991. Direktivet fastslår att datorprogram skyddas av upphovsrätten, men inför också vissa upphovsrättsliga undantag som är specifika för datorprogram.
För vår nuvarande diskussion är det intressanta i mjukvarudirektivet två paragrafer: artikel 5 och artikel 6. Artikel 5 inför ett generellt undantag för så kallad ”black box reverse engineering”. Undantaget ger dig rätten att testa, studera och observera ett datorprogram i syfte att förstå hur det fungerar. Artikel 6 inför ett undantag för dekompilering, alltså att ta ett kompilerat datorprogram (kod som maskiner kan läsa) och återskapa dess källkod (kod som människor kan läsa). Detta undantag har dock flera villkor, som t.ex. att det endast kan utnyttjas i syfte att åstadkomma interoperabilitet.
I den svenska upphovsrättslagen implementeras artikel 5 i 26 g §:
”Den som har rätt att använda ett datorprogram får iaktta, undersöka eller prova programmets funktion för att fastställa de idéer och principer som ligger bakom programmets olika detaljer. Detta gäller under förutsättning att det sker vid sådan laddning, visning på skärm, körning, överföring eller lagring av programmet som han har rätt att utföra.”
Artikel 6 i mjukvarudirektivet implementeras i upphovsrättslagens 26 h §:
”Återgivning av ett datorprograms kod eller översättning av kodens form är tillåten om åtgärderna krävs för att få den information som är nödvändig för att uppnå samverkansförmåga mellan programmet och ett annat program. Detta gäller dock endast under förutsättning att följande villkor är uppfyllda:
1. åtgärderna utförs av en person som har rätt att använda programmet eller för hans räkning av en person som har fått rätt att utföra åtgärderna,
2. den information som är nödvändig för att uppnå samverkansförmåga har inte tidigare varit lätt åtkomlig för de i 1 angivna personerna och
3. åtgärderna är begränsade till de delar av originalprogrammet som är nödvändiga för att uppnå den avsedda samverkansförmågan.Första stycket innebär inte att informationen får
1. användas för andra ändamål än att uppnå den avsedda samverkansförmågan,
2. överlämnas till andra personer, utom när detta är nödvändigt för att uppnå den avsedda samverkansförmågan,
3. användas för utveckling, tillverkning eller marknadsföring av ett datorprogram som i förhållande till det skyddade programmet har en väsentligen likartad uttrycksform eller
4. användas för andra åtgärder som utgör intrång i upphovsrätten.”
Dessa undantag från upphovsrätten gör (oftast) att det i teorin lagligt att reverse engineer hur ett datorprogram fungerar och sedan återimplementera dess API:er i en konkurrerande produkt, eftersom själva API:erna inte heller är skyddade av upphovsrätten.
“the reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the right holder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together.”
Beaktandesats 15 i mjukvarudirektivet
Men förbudet mot att kringgå kopieringsskydd utgör en hake. I detta förbud finns förvisso ett undantag för datorprogram, men det är tyvärr inte hela sanningen. Till att börja med är definitionen av kopieringsskydd bredare för datorprogram än för övriga typer av upphovsrättsskyddade verk. Allt som krävs av ett kopieringsskydd inom mjukvarudirektivets ramar är att det skyddar ett program. Det behöver inte vara effektivt eller ens integrerat i mjukvaran. Men de praktiska problemen är fler än så.
Praktiska problem med att kringgå kopieringsskydd
>
Genom att blanda samman datorprogram med andra typer av upphovsrättsskyddade verk kan leverantören av programmet stoppa lagligt kringgående av kopieringsskyddet. Det bekräftades av EU-domstolen i fallet Nintendo vs PC Box. Fallet gällde så kallade ”mod chips” till Wii och DS. Dessa chip gör det möjligt för ägaren av konsolen att kringgå Nintendos kopieringsskydd, så att man till exempel kan spela spel som är låsta till en annan geografisk region. EU-domstolen bedömde att datorspel inte bara är datorprogram, utan också innehåller andra former av upphovsrättsskyddade verk, vilket gör att undantagen som gäller datorprogram inte är tillämpliga längre.
Upphovsrättslagens paragraf 57 a förbjuder försäljning och innehav av hjälpmedel för kringgående av kopieringsskydd, även gällande datorprogram. Det betyder att den som vill kringgå kopieringsskyddet för ett datorprogram måste göra hela arbetet själv från grunden, vilket ställer upp höga trösklar. I praktiken gör detta förbud att den teoretiska lagliga rätten att kringgå kopieringsskyddet på datorprogram är irrelevant.
Practically speaking, without the ability to circulate the means of circumvention, farmers may possess a right under EU law to circumvent the software TPMs, but they will often not have the ability to do so. Though farmers have demonstrated ingenuity and have found creative solutions to problems for millennia, it is hardly reasonable to expect each of them to develop their own means of circumvention. However resourceful and inventive farmers may be in spirit, they must be able to share the benefit of their devised solutions. Therefore, if the policy goals of the Right to Repair movement are to be recognised by anti-circumvention law in the European Union, sharing tools and providing assistance must be part of that framework.
The Software Directive’s prohibition on the circulation of the means of circumvention is deeply problematic. The ‘right’ to repair must not be conflated with the ability to do so. As has been addressed in the foregoing chapters and sections, merely allowing circumvention is not enough.
Unscrewing the Future: The Right to Repair and the Circumvention of Software TPMs in the EU
Dessutom är många datorprogram idag inte lokalt installerade program som körs på din egen dator. De är istället program som körs på en server i kommunikation med din webbläsare. Många program som till synes är lokalt installerade är dessutom i verkligheten hybrider mellan lokala program och webbtjänster. Det är till exempel fallet med många moderna spel. I en sådan situation kan tillverkaren av programmet i praktiken låsa in programmet bakom licensavtal som förbjuder reverse engineering. I en sådan situation kan tyvärr plötsligt brottsrubriceringar som dataintrång bli tillämpliga.
Dagens lagstiftning är alltså inte tillräcklig för att undvika de destruktiva inlåsningseffekter som uppstår när reverse engineering för att skapa interoperabla produkter inte är generellt möjligt.
I nästa del ska vi utförligare förklara begreppet interoperabilitet och dess relevans för vår diskussion om digitaliseringen. Dessutom tittar vi på fler konkreta exempel där reverse engineering utförs och hur centralt fenomenet är för framtidens digitaliserade marknadsekonomi.
Du kan ta del av hela serien här: https://piratpartiet.se/skolplattformen/.