Omvendt engineering

Den reverse engineering eller omvendt utvikling eller reverseres , er aktiviteten til å studere et objekt for å bestemme den interne drift av fremgangsmåten i fremstilling og kan være av interesse for den endringen. Vi snakker også om omvendt design innen levende organismer. Tilsvarende betegnelse på engelsk er reverse engineering .

Formell definisjon

Det kan bli:

Avhengig av gjenstandens natur og det forfulgte målet, brukes forskjellige metoder og teknikker.

Omvendt konstruksjon av fysiske gjenstander

Prinsippet for reverse engineering er basert på samlingen av en punktsky fra overflaten til objektet som skal skannes digitalt (ved hjelp av en tredimensjonal skanner ) eller for å bli palpert mekanisk.
Denne punktskyen behandlet av DAK (Computer Aided Design) funksjoner som tillater rekonstruksjon av overflater hvorfra en parametrisk modell defineres av brukeren og den genererende system (valg av dimensjoner og innbyrdes dimensjonsforhold, toleranse, etc.)
Konstruksjonen tre er således omdefinert i sin hoveddel.
Denne metoden gjelder bare for "produserbare" CAD-objekter fordi bare ikke-virtuell design (ekstrudering, gjennomgående hull ...) og produksjon (krymping, toleranser ...) er potensielt akseptable for den fysiske reproduksjonen av objektet.

Hva er de forskjellige grunnene til å bruke revers engineering?

Reverse engineering i elektronikk

Den består i å rekonstruere et funksjonelt elektronisk diagram ved å analysere tilkoblingene til en trykt krets eller utformingen av maskene til en integrert krets. Det er også mulig på enkelte datastyrte enheter å hente monteringskoden til fastvaren . Kildekoden produseres deretter fra minnebildet til disse komponentene. Dette kalles demontering . Det er noen ganger mulig å dialog med et objekt via lenker som er overlatt til enhetens skjønn (serielle grensesnitt, JTAG, ICSP, etc.).

Omvendt ingeniørfag innen informatikk

Reverse engineering gjelder også programvare . Dette kan gjøres ved hjelp av analyseverktøy som demontereren eller dekompilatoren . Metodene som brukes ligner på feilsøking .

Samba- prosjektet er et typisk eksempel på revers engineering. Teamet måtte finne ut hvordan nettverksdelingen av Microsoft Windows- operativsystemet fungerer uten å ha tilgang til de offisielle tekniske spesifikasjonene . De måtte derfor bestemme dem og deretter oversette dem til et dataprogram. Det samme gjelder NTFS- filsystemet .

Programvare reverse engineering er ofte brukt til datastrukturer  : i dette tilfellet, innebærer det å dokumentere dårlig eller dårlig dokumentert fysiske datastrukturer ( aldring programmer ). Vi prøver å rekonstruere en datamodell fra de fysiske strukturene til filer eller tabeller .

Software reverse engineering ble populært med misbruk av kopibeskyttelse av videospill . Denne aktiviteten kalles sprekker .

For å skrive drivere for enkelte eksterne enheter (webkamera, skanner osv.), Finner programvareutviklere seg ofte tvunget til å omformere sjåføren ved å snappe utvekslingen mellom brikken og sjåføren, og oppdage hvordan de kan dialog med brikken. Det er da et spørsmål om å simulere driveren, for så å gjøre det bedre ( jf. Linux webcam driver spca, pwc, etc. ). Et eksempel er Nouveau- prosjektet for å produsere gratis 3D-drivere for NVIDIA- eller radeonHD- grafikkort , et lignende prosjekt for ATI Radeon HD-grafikkort.

I kryptografi tar reverse engineering flere former med kryptanalytiske angrep . Målet er å hente ut hemmelig informasjon fra den "svarte boksen" som symboliserer krypteringsprosedyren. Disse typer angrep kalles sidekanalangrep . Reverse engineering antas også å ligge bak lekkasjen til RC2- og RC4-algoritmene som ble utgitt på Internett via sci.crypt- nyhetsgruppen . Arcfour- algoritmen er også en klon av RC4.

Lovligheten av datamaskin reverse engineering

Mange proprietære programvareleverandører inkluderer klausuler i sine EULAer som forbyder reverse engineering. Imidlertid er reversering av lovgivning tillatt i mange land i henhold til lov, spesielt for interoperabilitetsformål . I disse landene er klausulene i disse EULA-ene ikke gyldige, eller maksimalt innenfor de grenser som er bestemt av loven.

I Frankrike etablerer loven et restriktivt rettslig rammeverk for reverse engineering, for hvilke spesifikke unntak er definert i artikkel L122-6-1 i intellektuell eiendomsret, og dette rammeverket er delvis avledet av europeisk lov ( se nedenfor. ).

Programmer på mellomspråk

Halvkompilerte programmeringsspråk (kompilert til binær kode tolket av en virtuell maskin) som Java og .NET gjør reverse engineering enklere.

Dermed kan reversering av kjørbare binære filer beregnet på Java- plattformen utføres med ArgoUML- programmet .

For .NET-programmer tilbyr Microsoft ILDASM som standard, og det finnes også .NET dekompilatorer.

Omvendt engineering som et forsvar

Omvendt prosjektering som en teknologiuraktivitet

Reverse engineering er også en teknologiuraktivitet . Den er orientert mot:

Lovgivning

Frankrike

Bestemmelser om oversettelse av programvarens kodeform (direktiv 91/250 / EØF og 2009/24 / EF) Beskrivelse av loven

Rådsdirektiv 91/250 / EØF av14. mai 1991, om rettslig beskyttelse av dataprogrammer, er det en artikkel 6, dekompilering som senere for det meste vil bli transponert i artikkel L122-6 og L122-6-1 i immaterialretten , ved lov nr. 94-361 av10. mai 1994 implementering av direktiv (EØF) nr. 91-250 fra Rådet for De europeiske fellesskaper datert 14. mai 1991angående rettslig beskyttelse av dataprogrammer og modifisering av immaterielle rettigheter .

Artikkel L122-6 spesifiserer at oversettelse av formen til koden til en programvare er en del av utnyttelsesretten som tilhører forfatteren av en programvare (inkludert, som indikert av artikkel L335-3 i den samme koden, er brudd på andre sammenlignbart med en forfalskning), og er ikke mulig uten tillatelse og på en måte som ikke kan håndheves ved kontrakt, av andre, bortsett fra i tilfellet forklart av artikkel L122-6-1 i åndsverksloven, som spesifiserer en rekke betingelser, inkludert at "disse handlingene [er] begrenset til delene av den opprinnelige programvaren som er nødvendig for" "interoperabiliteten til programvare opprettet uavhengig med" annen programvare ", uten" Den slik innhentede informasjonen [ikke blir "" "brukt til andre formål å oppnå interoperabilitet med uavhengig opprettet programvare "," Heller ikke kommunisert til tredjeparter med mindre dette er nødvendig for uavhengig opprettet programvareinteroperabilitet "," Verken brukt til en utvikling, produksjon eller markedsføring av programvare hvis uttrykk er vesentlig likt eller for andre handlinger som krenker opphavsrett, mens vi minner om at “Denne artikkelen kan ikke tolkes som å tillate å forstyrre den normale driften av programvaren eller forårsake unødig skade på de legitime interessene til forfatteren ".

I tillegg til oversettelsen av kodens form, sier denne artikkelen også at "Den som har rett til å bruke programvaren kan uten tillatelse fra forfatteren observere, studere eller teste driften eller sikkerheten til denne programvaren for å bestem ideene og prinsippene som ligger til grunn for ethvert element i programvaren når den utfører noen operasjon med lasting, visning, utføring, overføring eller lagring av programvaren den har rett til å utføre ".

Det fastsetter også muligheten for andre å utføre handlinger som faller under opphavsretten til forfatteren "når det er nødvendig for å tillate bruk av programvaren, i samsvar med det tiltenkte formålet, av den personen som har rett til å bruke den. Bruk, inkludert for å rette feil ”, men at denne muligheten er begrenset av kontrakt.

Europeisk direktiv 2009/24 / CE erstatter senere direktiv 91/250 / CEE, uten å medføre noen vesentlig modifisering av artikkel L122-6-1 i intellektuell eiendom.

Historisk sammenheng

Loven spesifiserer ikke om bestemmelsene knyttet til "å studere eller teste driften eller sikkerheten [til] programvare" og "Reproduksjonen av koden [på] programvaren eller oversettelsen av formen til denne koden" overlapper hverandre, og ble bare endret ved en anledning, den fra Military Programming Law of 2013 for å spesifisere at "sikkerheten" til programvaren kunne studeres, på samme måte som "operasjonen". Siden direktivet ble utarbeidet i 1991 , var temaer som åpen kildekode ikke særlig til stede i den offentlige debatten på den tiden, og prosjekter som World Wide Web eller Linux var fortsatt i sin barndom.

“Forfatterens legitime interesser”, som nevnt i artikkel L122-6-1, er heller ikke definert.

Hvis artikkel 6 i direktiv 91/250 / CEE har tittelen "Dekompilering", bør det bemerkes at verktøyene for dekompilering til et språk som C- strøm, som Ghidra eller Hex-Rays- plugin-modulen fra IDA Pro, ikke dukket opp før om tjue år senere, som gjorde mellom representasjon språk som Java , som decompilers var lett tilgjengelig, ikke finnes ennå, og var i en tid mer om å gjøre. demontering . Den transponerte lovartikkelen snakker bare om "oversettelse av kodens form", og sletter en mulig semantisk nyanse som ikke nødvendigvis hadde et objekt på den tiden.

Rettspraksis

I 2013 frikjenner den franske rettferdigheten kryptografen med australsk opprinnelse Sean O'Neil, skaper av VEST-  algoritmen (en) for å ha publisert nøkkelgenereringsalgoritmen i bunnen av tilsløringen av den daværende protokollen til Skype . Han ble likevel dømt på anke i 2015 , domstolene vurderte denne gangen at han ikke burde ha publisert sin kode. Han var likevel på den tiden allerede fengslet for opprettelsen av en sekt , og impliserte korrupsjonshandlinger for mindreårige og voldtekt.

Lagmannsrettens avgjørelse treffes til tross for uttalelsen fra statsrådet i16. juli 2008som svarer på en forespørsel fra april om å angripe dekretet om implementering av DADVSI-loven , erklærer med hensyn til artikkel L122-6-1 at "disse bestemmelsene etablerer, under visse betingelser, et dekompilerings unntak ment å tillate utvikling av gratis programvare", dette ved å spesifisere og ta hensyn til bestemmelsen i den aktuelle artikkelen som indikerer at "Den oppnådde informasjonen kan ikke [...] kommuniseres til tredjeparter, bortsett fra hvis dette er nødvendig for interoperabiliteten til programvaren uavhengig opprettet".

Denne oppfatningen siteres som rettslig grunnlag av foreningen VideoLAN for utvikling av visse komponenter i programvaren VLC media player , inkludert libdvdcss eller libbluray.

Definisjonen av begrepet “  interoperabilitet  ” blir noen ganger betraktet som prekær; i 2011 , den Court of Cassation utfordret avgjørelsen av en lagmannsrett , kjennelse , innenfor rammen av målet med uautorisert reproduksjon av kildekoden til programvare for å gjennomføre et datamigrering system, at”flytteoperasjoner var rettet mot ikke å tillate kommunikasjon mellom de to programvarene "Athena" og "H. Open", men å erstatte hverandre; at lagmannsretten derfor, ved å hevde at disse migrasjonsoperasjonene var berettiget av interoperabilitet, brøt artikkel L.122-6-1-IV i lov om immateriell eiendom, slik den skulle tolkes i lys av direktiv 91/250 av14. mai 1991 ".

Bestemmelser om studier av tekniske beskyttelsestiltak, eller DRM (direktiv 2001/29 / EF DADVSI)

Den Law n ° 2006-961 av1 st august 2006om opphavsrett og beslektede rettigheter i informasjonssamfunnet gjennomfører europaparlaments- og rådsdirektiv 2001/29 / EF22. mai 2001om harmonisering av visse aspekter av copyright og relaterte rettigheter i informasjonssamfunnet . Den rammer blant annet studiet og omgåelsen av tekniske beskyttelsestiltak (eller DRM ) ved å endre kodeksen for immateriell eiendom .

Artikkel L. 331-5 i åndsverksloven definerer de tekniske beskyttelsestiltakene som følger:

Effektive tekniske tiltak beregnet på å forhindre eller begrense uautorisert bruk av eiere av opphavsrett eller en rett knyttet til opphavsrett til et verk, annet enn programvare, av en tolkning, et fonogram, et videogram, et program eller en pressepublikasjon er beskyttet under betingelsene gitt for i denne tittelen.I forbindelse med første ledd forstås ved et teknisk tiltak enhver teknologi, innretning eller komponent som i normal drift utfører funksjonen fastsatt i dette avsnittet. Disse tekniske tiltakene anses å være effektive når en bruk nevnt i samme avsnitt kontrolleres av rettighetshaverne gjennom anvendelse av en tilgangskode, en beskyttelsesprosess som kryptering, kryptering eller annen transformasjon av beskyttelsesobjektet eller en kopikontrollmekanisme som oppnår dette beskyttelsesmålet.En protokoll, et format, en metode for kryptering, kryptering eller transformasjon utgjør ikke som sådan et teknisk tiltak i henhold til denne artikkelen.

Og sier også at:

Tekniske tiltak må ikke ha den effekten at de forhindrer en effektiv implementering av interoperabilitet , samtidig som copyright respekteres. Leverandører av tekniske tiltak gir tilgang til informasjon som er viktig for interoperabilitet på de vilkår som er definert i artikkel L. 331-6 og L. 331-7.

Men også det:

Tekniske tiltak kan ikke motsette seg fri bruk av verket eller den beskyttede gjenstanden innenfor grensene for rettighetene som er gitt i denne koden, så vel som de som er gitt av rettighetshaverne.Bestemmelsene i denne artikkelen gjelder uten å berøre bestemmelsene i artikkel L. 122-6-1 i denne koden.

I henhold til artikkel L. 331-7 i intellektuell eiendomsregel:

Enhver programvareutgiver, enhver teknisk systemprodusent og enhver tjenesteoperatør kan, i tilfelle avslag på tilgang til informasjon som er viktig for interoperabilitet, be teknisk tilsynsmyndighet om å garantere interoperabilitet mellom systemene og eksisterende tjenester, mens de respekterer rettighetene til parter, og å skaffe informasjonen som er viktig for denne interoperabiliteten fra innehaveren av rettighetene til det tekniske tiltaket.

I henhold til artikkel L. 335-3-1 i intellektuell eiendomsregel:

I. - En bot på 3750 euro straffes ved bevisst å undergrave et effektivt teknisk tiltak som definert i artikkel L. 331-5, for andre formål enn forskning, for å endre beskyttelsen av et verk ved dekoding, dekryptering eller andre personlig inngripen ment å omgå, nøytralisere eller fjerne en beskyttelses- eller kontrollmekanisme, […] II. - Straffes med seks måneders fengsel og en bot på 30.000 euro for bevisst anskaffelse eller tilbud til andre, direkte eller indirekte, midler designet eller spesialtilpasset for å undergrave et effektivt teknisk tiltak [...] […] IV. - Disse bestemmelsene gjelder ikke for handlinger utført for datasikkerhetsformål, innenfor rammen av rettighetene som er gitt i denne koden. Bestemmelser om beskyttelse av forretningshemmeligheter (direktiv (EU) 2016/943)

Den Law n ° 2018-670 av30. juli 2018om beskyttelse av forretningshemmeligheter , gjennomføring av europaparlaments- og rådsdirektiv (EU) 2016/943 av8. juni 2016om beskyttelse av kunnskap og ikke offentliggjort kommersiell informasjon (forretningshemmeligheter) mot ulovlig anskaffelse, bruk og utlevering , tillater i visse tilfeller kontraktsmessig begrensning av reverse engineering: den oppretter artikkel L151-3 i handelsloven som bestemmer at "observasjon, undersøkelse, demontering eller testing av et produkt eller en gjenstand som er gjort tilgjengelig for publikum eller som er lovlig i besittelse av den personen som innhenter informasjonen" utgjør en "[modus] for lovlig innhenting av en forretningshemmelighet "," med mindre det er en kontraktsbestemmelse som forbyder eller begrenser innhenting av hemmeligheten ". Artikkel L151-1 gir på sin side en definisjon av en forretningshemmelighet.

The Commercial Code skal tolkes separat fra den åndsverkloven .

forente stater

Siden et patent krever publisering av oppfinnelsen , kan man dispensere med reverse engineering for å studere de patenterte elementene. En av hovedmotivasjonene for reverse engineering er å avgjøre om et konkurrerende produkt bryter med patent eller copyright .

Siden 1998 har Digital Millennium Copyright Act forbudt å omgå teknologiske beskyttelsestiltak.

Merknader og referanser

  1. [PDF] Marie-Hélène Durand, “Standarder og inkludering av COTS: hvordan er bruken av COTS forsonet med gjeldende standarder? » , Laboratory for Analysis and Architecture of Systems (LAAS).
  2. Berrou, C., & Gripon, V. (2012). Little Brain Mathematics: A Mental Information Theory. Odile Jacob.
  3. Stricot, M. (2015). Bevaring og arkeologi av medier: viktigheten av omvendt konstruksjon i den arkeologiske rekonstruksjonen av kunstverk med en teknologisk komponent .
  4. Hervy, B., Laroche, F., Kerouanton, JL, & Bernard, A. (2012). Nantes1900-prosjekt: ny teknologi som tjener kapitalisering av kunnskap og forbedring av historisk arv .
  5. Geindreau, R. (2016, januar). Studer før restaurering av et moderne teknisk-vitenskapelig objekt . Cockcroft-Walton generator fra Institut de Physique Nucléaire de Lyon. I CeROArt. Bevaring, utstilling, Restaurering av kunstverk (nr. 5). CeROArt asbl.
  6. Lammari, N. (2008). Reverse engineering method for website analysis (Doktoravhandling, CEDRIC Lab / CNAM).
  7. Artikkel L122-6-1 i intellektuell eiendomsregel
  8. (in) "  Ildasm.exe Tutorial  " ( ArkivWikiwixArchive.isGoogle • Hva skal jeg gjøre? ) , På msdn.microsoft.com .
  9. (in) Dot Net Decompilers  " , Program Transformation Wiki .
  10. Lov nr .  94-361 av 10. mai 1994 om gjennomføring av EU-rådets direktiv (EØF) nr. 91-250 av 14. mai 1991 om lovlig beskyttelse av dataprogrammer og om endring av kodeksen for immateriell eiendom
  11. "  Rådsdirektiv 91/250 / EØF av 14. mai 1991 om lovlig beskyttelse av dataprogrammer  " , på EUR-Lex
  12. Artikkel L122-6 i intellektuell eiendomsregel
  13. Artikkel L335-3 i lov om immateriell eiendom
  14. Guillaume Champeau, "  Fransk rettferdighet rydder brudd på Skype-protokollen  " , på Numerama ,22. oktober 2013(åpnet 6. september 2020 )
  15. Marc Rees, "  En datamaskin vitenskapsmann dømt for å ha forfalsket Skype og avslørte sine svakheter  " , på Neste Inpact ,7. april 2015(åpnet 6. september 2020 )
  16. "  Microsoft ikke klarer å fange på" forfalskning "guru Valbonne  "Nice-Matin ,22. oktober 2013(åpnet 6. september 2020 )
  17. Statsråd, 10. og 9. underavdeling kombinert, 16.07.2008, 301843
  18. (in) "  Legal  "VideoLAN (åpnet 3. desember 2020 )
  19. (in) "  libbluray  "VideoLAN (åpnet 3. desember 2020 )
  20. "  Programvare: hvem er innehaverne av dekompileringsrettighetene?"  » , Om Mathias Avocats ,28. februar 2017(åpnet 4. september 2020 )
  21. Court of Cassation, Civil, Civil Chamber 1, 20 oktober 2011, 10 til 14,069
  22. Lov nr .  2006-961 av 1. august 2006 om copyright og beslektede rettigheter i informasjonssamfunnet
  23. "  europaparlaments- og rådsdirektiv 2001/29 / EF av 22. mai 2001 om harmonisering av visse aspekter av copyright og nærstående rettigheter i informasjonssamfunnet  " , på EUR-Lex
  24. Artikkel L151-3 i handelsloven
  25. Artikkel L151-1 i handelsloven
  26. "  Den nye beskyttelsen av forretningshemmeligheter - Lov nr. 2018-670 av 30. juli 2018 om beskyttelse av forretningshemmeligheter  " , om Cabinet d'Avocats Seban et Associés (konsultert 5. september 2020 ) .

Se også

Relaterte artikler

Eksterne linker

Bibliografi