A kérdés licenckérdésként érkezik, de a válasz egy leltárral kezdődik. Egy VPN-felület, az általa vezérelt OpenVPN-motor, egy TLS-könyvtár és egy telepítő négy különböző feltételrendszerrel rendelkezhet, és a termék megjelenése semmit sem mond arról, melyik fájl melyik rendszerhez tartozik. Járja végig az artefaktumokat a terjesztés sorrendjében, és a jogi kérdés sokkal szűkebb lesz, mire olyasvalakinek adja át, aki jogosult megválaszolni. Minden lépés tovább szűkíti: mi kerül terjesztésre, mi változott és hogyan kommunikálnak a részek.

Kezdje azzal, amit a telepítő a lemezre tesz

Vegye a kiadott telepítőt vagy csomagot, ne egy fejlesztői másolatot, és sorolja fel az összes fájlt, amelyet egy tiszta gépre helyez. Rögzítse a felület, a motor és a TLS-könyvtár verzióit, és jegyezze fel, hogy a motor külön végrehajtható fájl-e vagy ugyanabba a folyamatba betöltött könyvtár.

Ez az utolsó tény formálja mindazt, ami következik. Egy külön végrehajtható fájl, amelyet socketen keresztül indítanak, más kérdéscsoportot vet fel, mint az egy binárisba fordított kód, és egy telepítő, amely csak egymás mellé helyezi mindkettőt, nem dönti el a kérdést egyik irányban sem. A csomagolás csomagolási döntés, míg a programok közötti viszony architekturális.

Írja le a listát verziókkal együtt, mert a feltételek eltérnek a fő kiadások között.

dpkg -L openvpn | head -n 40
openssl version -a

Válassza külön a felületet a motortól

Az OpenVPN másolási fájlja GPL 2 verziót jelöl meg, és dokumentálja az OpenSSL-hez kapcsolódó linkelési kivételt, amely meghatározott hatókörű külön engedély, nem pedig a feltételek keverésére szolgáló általános licenc.

Rögzítse azt a licencszöveget, amelyet a buildjével együtt terjesztenek, ne azt, amely ma a projekt webhelyén van. Egy régebbi ágat rögzítő kiadás az adott ág dokumentumát hordozza. Egy tárolóoldal képernyőképe nem helyettesíti, mert a szükséges fájl az artefaktumon belüli. Tárolja a telepítő mellett, hogy a csomag teljes legyen.

Ezután írja le őszintén az integrációt: a felület gyermekfolyamatként indítja a motort és szöveges protokollon beszél, vagy könyvtárat linkel és belső struktúrákat cserél? A második elrendezés szoros oly módon, ahogy az első nem, és pontosan ez a különbség az, amit a bíráló először kérdez.

Jegyezze fel, mely fájlokat módosította

A módosított forráskód jobban megváltoztatja az elemzést, mint bármely csomagolási részlet. Ha foltozta a motort, maga a folt származékos mű, és a kötelezettség arra hárul, aki az eredményt terjeszti.

Rögzítsen minden foltot, annak célját és azt, hogy felkerült-e a felsőbb áramlatba, mert a tárolójából soha ki nem lépett folt is része annak, amit terjeszt, ha a binárist terjeszti.

A konfigurációs fájlok, témák és fordítások általában a felülettel élnek, de egy fordítás, amely beágyazza a motor forráskód-sztringjeit, apró emlékeztető arra, hogy a határ fájlonként, nem könyvtáranként húzódik. Tartson fenn különbséget a felsőbb kiadás és a buildje között, hogy a válasz kérésre elérhető legyen, ne utólag rekonstruálják. Ez a különbség a leghasznosabb artefaktum akkor is, amikor egy auditor azt kérdezi, mi változott.

Ellenőrizze az OpenSSL verzióját külön

Az OpenSSL 3.0 és újabb verziók Apache License 2.0 alatt kerülnek terjesztésre, míg a régebbi kiadások az OpenSSL/SSLeay feltételeket hordozzák. Ezek különböző kötelezettségekkel járó különböző dokumentumok, és egy csomagolt motor bármelyiket linkelheti, amelyet a buildrendszere talált.

Erősítse meg a ténylegesen terjesztett verziót, ne a buildszkriptben megnevezettet.

Az OpenVPN-től való függés nem alakít minden OpenSSL-módosítást GPL-kóddá, és a linkelési kivétel nem távolítja el a könyvtár újraelosztásával járó egyéb kötelezettségeket. Tekintse a kivételt egyetlen záradéknak egy szélesebb elemzésben, és rögzítse magának a TLS-könyvtárnak a közleményeit minden mással együtt.

Állítsa össze a bizonyítékcsomagot

A csomagnak négy része van: a fájllista verziókkal, az integráció leírása, a módosítások listája különbségekkel és a licencszövegek a terjesztett formában. Adja hozzá a terjesztett közleményfájlt és azt a helyet, ahol a forráskódot felajánlják, ha kötelezettségei ajánlatot írnak elő.

Tartsa a csomagot egyetlen tulajdonosnál, hogy egyetlen kiadás se mehessen ki nélküle.

Ezek egyike sem dönt jogi kérdést, és éppen ez a lényeg: tényeket ad egy felkészült bírálónak ahelyett, hogy valaki emlékezetből összeállított összefoglalóját. Egy szállító marketingleírása nem bizonyíték az architektúrájára, és a saját feltevése sem az.

Kapcsolódó cikkek