VPN-liides, GPL-mootor ja paigaldaja: mida tarnitakse?
Kaardistage, mida levitatakse, mida muudeti ja kuidas osad omavahel suhtlevad, enne kui otsustate, kuidas GPL-i ja OpenSSL-i tingimused teie VPN-liidese paketile kehtivad.
Küsimus saabub litsentsiküsimusena, kuid vastus algab inventuuriga. VPN-liidesel, seda juhtival OpenVPN-mootoril, TLS-teegil ja paigaldajal võib olla neli erinevat tingimuste kogumit ning toote välimus ei ütle teile midagi selle kohta, milline fail millisesse kogumisse kuulub. Töötage artefaktid läbi nende tarnimise järjekorras ja õigusküsimus muutub palju kitsamaks selleks ajaks, kui annate selle üle kellelegi, kes on pädev vastama. Iga samm kitsendab seda veelgi: mida levitatakse, mida muudeti ja kuidas osad suhtlevad.
Alustage sellest, mida paigaldaja kettale paneb
Võtke väljaantud paigaldaja või pakett, mitte arenduskoopia, ja loetlege iga fail, mille see puhtale masinale paigutab. Registreerige liidese, mootori ja TLS-teegi versioonid ning märkige, kas mootor on eraldi käivitatav fail või samasse protsessi laaditav teek.
See viimane asjaolu kujundab kõike järgnevat. Sokli kaudu käivitatav eraldi käivitatav fail tõstatab teistsuguse küsimuste kogumi kui ühte binaarfaili kompileeritud kood, ja paigaldaja, mis lihtsalt paneb mõlemad kõrvuti, ei otsusta asja kummaski suunas. Pakendamine on pakkimisotsus, samas kui programmidevaheline suhe on arhitektuurne.
Kirjutage nimekiri koos versioonidega üles, sest tingimused erinevad põhiväljaannete vahel.
dpkg -L openvpn | head -n 40
openssl version -aEraldage liides mootorist
OpenVPN-i kopeerimisfail märgib GPL-i versiooni 2 ja dokumenteerib OpenSSL-i jaoks linkimiserandi, mis on kindlaks määratud ulatusega eriluba, mitte üldine litsents tingimuste segamiseks.
Jäädvustage litsentsitekst, mis tarnitakse teie koostamisega, mitte see, mis on täna projekti veebisaidil. Väljaanne, mis kinnitas vanema haru, kannab selle haru dokumenti. Hoidla lehekülje ekraanipildid ei ole asendus, sest vajalik fail on see, mis on artefakti sees. Hoidke seda paigaldaja kõrval, et pakett oleks täielik.
Seejärel kirjeldage integratsiooni ausalt: kas liides käivitab mootori alamprotsessina ja räägib tekstiprotokolli, või linkib teegi ja vahetab sisemisi struktuure? Teine paigutus on lähedane viisil, mis esimene ei ole, ja see erinevus on see, mille kohta ülevaataja kõigepealt küsib.
Märkige, milliseid faile muutsite
Muudetud lähtekood muudab analüüsi rohkem kui ükski pakkimisdetail. Kui paikasite mootorit, on paik ise tuletatud töö ja kohustus lasub sellel, kes tulemust levitab.
Registreerige iga paik, selle eesmärk ja kas see saadeti ülesvoolu, sest paik, mis ei lahkunud kunagi teie hoidlast, on ikkagi osa sellest, mida tarnite, kui tarnite binaarfaili.
Konfiguratsioonifailid, teemad ja tõlked elavad tavaliselt liidese juures, kuid tõlge, mis põimib mootori lähtekoodi stringe, on väike meeldetuletus, et piir on faili, mitte kataloogi kaupa. Hoidke erinevus ülesvoolu väljaande ja teie koostamise vahel, et vastus oleks nõudmisel saadaval, mitte hiljem uuesti konstrueeritav. See erinevus on ka kõige kasulikum artefakt, kui audiitor küsib, mis muutus.
Kontrollige OpenSSL-i versiooni eraldi
OpenSSL 3.0 ja uuemad levitatakse Apache License 2.0 all, samas kui vanemad väljaanded kannavad OpenSSL/SSLeay tingimusi. Need on erinevad dokumendid erinevate kohustustega ja pakendatud mootor võib linkida ükskõik kummaga, mille teie koostamissüsteem leidis.
Kinnitage tegelikult tarnitav versioon, mitte koostamisskriptis nimetatud versioon.
OpenVPN-i sõltuvus ei muuda iga OpenSSL-i muudatust GPL-koodiks ja linkimiserand ei kõrvalda muid kohustusi, mis teegi edasilevitamisega kaasnevad. Käsitlege erandit ühe klauslina suuremas analüüsis ja registreerige TLS-teegi enda teated koos kõige muuga.
Koostage tõendite pakett
Paketil on neli osa: failide loend koos versioonidega, integratsiooni kirjeldus, muudatuste loend koos erinevustega ja litsentsitekstid tarnitaval kujul. Lisage teatis, mida levitate, ja koht, kus lähtekoodi pakutakse, kui teie kohustused nõuavad pakkumist.
Hoidke paketti ühe omaniku käes, et ükski väljaanne ei saaks ilma selleta väljuda.
Miski sellest ei otsusta õigusküsimust ja see ongi mõte: see annab pädevale ülevaatajale faktid, mitte kellegi mälust kokku pandud kokkuvõtte. Tarnija turunduskirjeldus ei ole tõend tema arhitektuuri kohta ja ka teie enda oletus selle kohta ei ole tõend.