VPN rozhraní, engine pod GPL a instalátor: co se dodává?
Zmapujte, co se distribuuje, co bylo změněno a jak spolu části komunikují, než rozhodnete, jak se podmínky GPL a OpenSSL vztahují na váš balík VPN rozhraní.
Otázka přichází jako licenční, ale odpověď začíná inventurou. VPN rozhraní, engine OpenVPN, který pohání, knihovna TLS a instalátor mohou mít čtyři různé sady podmínek a vzhled produktu vám nic neřekne o tom, která datoteka patří které sadě. Projděte artefakty v pořadí, v jakém se dodávají, a právní otázka se výrazně zúží, než ji předáte někomu, kdo je kvalifikovaný ji zodpovědět. Každý krok ji dále zužuje: co se distribuuje, co bylo změněno a jak části komunikují.
Začněte tím, co instalátor umístí na disk
Vezměte vydaný instalátor nebo balíček, ne vývojový checkout, a vypište každý soubor, který umístí na čistý stroj. Zaznamenejte verze rozhraní, enginu a knihovny TLS a poznamenejte, zda je engine samostatný spustitelný soubor, nebo knihovna načtená do stejného procesu.
Poslední fakt utváří vše, co následuje. Samostatný spustitelný soubor spuštěný přes socket klade jinou sadu otázek než kód zkompilovaný do jednoho binárního souboru a instalátor, který oba jen položí vedle sebe, věc nerozhodne ani jedním směrem. Sdružování je rozhodnutí o balení, zatímco vztah mezi programy je architektonický.
Zapište seznam s připojenými verzemi, protože podmínky se mezi hlavními vydáními liší.
dpkg -L openvpn | head -n 40
openssl version -aOddělte rozhraní od enginu
Soubor s kopírovacími podmínkami OpenVPN uvádí GPL verze 2 a dokumentuje výjimku pro linkování s OpenSSL, což je konkrétní povolení s vymezeným rozsahem, nikoli obecná licence míchat podmínky.
Zachyťte text licence, který se dodává s vaším buildem, ne ten, který je dnes na webu projektu. Vydání, které připnulo starší větev, nese dokument této větve. Snímky obrazovky stránky repozitáře nejsou náhradou, protože soubor, který potřebujete, je ten uvnitř artefaktu. Uložte jej vedle instalátoru, aby byl balík úplný.
Potom popište integraci poctivě: spouští rozhraní engine jako podřízený proces a mluví textovým protokolem, nebo linkuje knihovnu a vyměňuje interní struktury? Druhé uspořádání je důvěrně propojené způsobem, jakým první není, a tento rozdíl je to, na co se recenzent zeptá nejdřív.
Poznamenejte, které soubory jste změnili
Změněný zdrojový kód mění analýzu víc než jakýkoli detail balení. Pokud jste engine záplatovali, záplata samotná je odvozené dílo a povinnost leží na tom, kdo výsledek distribuuje.
Zaznamenejte každou záplatu, její účel a zda byla odeslána upstream, protože záplata, která nikdy neopustila váš repozitář, je stále součástí toho, co dodáváte, pokud dodáváte binárku.
Konfigurační soubory, motivy a překlady obvykle žijí u rozhraní, ale překlad, který vkládá zdrojové řetězce enginu, je malou připomínkou, že hranice je po souborech, ne po adresářích. Udržujte rozdíl mezi upstream vydáním a vaším buildem, aby odpověď byla k dispozici na vyžádání, místo aby se později rekonstruovala. Tento rozdíl je také nejužitečnější artefakt, když se auditor ptá, co se změnilo.
Zkontrolujte verzi OpenSSL samostatně
OpenSSL 3.0 a novější se distribuují pod Apache License 2.0, zatímco starší vydání nesou podmínky OpenSSL/SSLeay. To jsou různé dokumenty s různými povinnostmi a sdružený engine může linkovat kterýkoli z nich, jaký váš build systém našel.
Potvrďte verzi, která se skutečně dodává, ne tu uvedenou ve skriptu buildu.
Závislost na OpenVPN nepřevádí každou úpravu OpenSSL na kód GPL a výjimka pro linkování neodstraňuje ostatní povinnosti, které s redistribucí knihovny přicházejí. Berte výjimku jako jednu klauzuli ve větší analýze a zaznamenejte vlastní oznámení knihovny TLS spolu se vším ostatním.
Sestavte balík důkazů
Balík má čtyři části: inventuru souborů s verzemi, popis integrace, seznam úprav s rozdíly a texty licencí tak, jak se dodávají. Přidejte soubor oznámení, který distribuujete, a místo, kde se nabízí zdrojový kód, pokud vaše povinnosti vyžadují nabídku.
Držte balík pod jedním vlastníkem, aby žádné vydání nemohlo vyjít bez něj.
Nic z toho nerozhoduje právní otázku, a o to jde: dává kvalifikovanému recenzentovi fakta místo shrnutí, které někdo sestavil z paměti. Marketingový popis dodavatele není důkazem o jeho architektuře a ani váš vlastní odhad o ní není důkazem.