De fraach komt as in lisinsjefraach, mar it antwurd begjint mei in ynventarisaasje. In VPN-ynterface, de OpenVPN-motor dy't er oanstjoert, in TLS-bibleteek en in ynstallearder kinne fjouwer ferskillende sets betingsten hawwe, en it oansjen fan it produkt seit jo neat oer hokker bestân by hokker set heart. Wurkje de artefakten troch yn de folchoarder wêryn't se levere wurde, en de juridyske fraach wurdt folle smeller tsjin 'e tiid dat jo dy oerdrage oan immen dy't beteard is om te antwurdzjen. Elke stap ferflauwet it fierder: wat ferspraat wurdt, wat feroare is en hoe't de dielen kommunisearje.

Begjin mei wat de ynstallearder op 'e skiif set

Nim de útjûne ynstallearder of pakket, net in ûntwikkelingskopy, en list elk bestân op dat it op in skjinne masine pleatst. Registrearje ferzjes foar de ynterface, de motor en de TLS-bibleteek, en notearje oft de motor in apart útfierber bestân is of in bibleteek dy't yn itselde proses laden wurdt.

Dat lêste feit foarmet alles wat folget. In apart útfierber bestân dat fia in socket start wurdt, smyt in oare set fragen op as koade dy't yn ien binêr bestân kompilearre is, en in ynstallearder dy't beide gewoan njonken elkoar pleatst, beslist de saak net yn ien rjochting. Bondeljen is in ferpakkingsbeslút, wylst de relaasje tusken de programma's in arsjitektoanyske is.

Skriuw de list op mei ferzjes derby, want betingsten ferskille tusken haadútjeften.

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

Skied de ynterface fan 'e motor

It OpenVPN-kopiearbestân neamt GPL-ferzje 2 en dokumintearret in keppelingsútsûndering foar OpenSSL, wat in spesifike tastimming mei in ôfbeakene omfang is en gjin algemiene lisinsje om betingsten te mingelen.

Fêstlizze de lisinsjetekst dy't by jo build levere wurdt, net dy't hjoed op 'e projektside stiet. In útjefte dy't in âldere tûke fêstset hat, draacht it dokumint fan dy tûke. Skermôfbyldings fan in repositoryside binne gjin ferfanging, want it bestân dat jo nedich hawwe is dat binnen it artefakt. Bewarje it njonken de ynstallearder sadat it pakket folslein is.

Beskriuw dan de yntegraasje earlik: start de ynterface de motor as in bernproses en sprekt er in tekstprotokol, of keppelt er in bibleteek en wikselet er ynterne struktueren út? De twadde regeling is neier op in manier dy't de earste net is, en dat ûnderskie is wat in beoardieler earst freegje sil.

Notearje hokker bestannen jo feroare hawwe

Feroare boarnekoade feroaret de analyze mear as hokker ferpakkingsdetail dan ek. As jo de motor patcht hawwe, is de patch sels ôflaat wurk, en de ferplichting leit by wa't it resultaat ferspreidet.

Registrearje elke patch, syn doel en oft er upstream stjoerd is, want in patch dy't jo repository nea ferlitten hat, is noch altyd part fan wat jo leverje as jo it binêre bestân leverje.

Konfiguraasjebestannen, tema's en oersettingen libje meast by de ynterface, mar in oersetting dy't boarnestrings fan 'e motor ynbêdet, is in lyts oantinken dat de grins per bestân is en net per map. Hâld in ferskil tusken de upstream-útjefte en jo build sadat it antwurd op oanfraach beskikber is yn stee fan letter rekonstruearre te wurden. Dat ferskil is ek it nuttichste artefakt as in auditor freget wat feroare is.

Kontrolearje de OpenSSL-ferzje apart

OpenSSL 3.0 en letter wurde ûnder Apache License 2.0 ferspraat, wylst âldere útjeften de OpenSSL/SSLeay-betingsten drage. Dat binne ferskillende dokuminten mei ferskillende ferplichtingen, en in bondelmotor kin ien fan beide keppelje dy't jo buildsysteem fûn hat.

Befêstigje de ferzje dy't eins levere wurdt, net dy't yn in buildskript neamd wurdt.

In ôfhinklikens fan OpenVPN makket net elke OpenSSL-wiziging GPL-koade, en de keppelingsútsûndering ferwideret net de oare ferplichtingen dy't mei it werfersprieden fan 'e bibleteek komme. Behannelje de útsûndering as ien klausule yn in gruttere analyze, en registrearje de eigen meldingen fan 'e TLS-bibleteek njonken al it oare.

Sammele it bewiispakket

It pakket hat fjouwer dielen: de bestânynventaris mei ferzjes, de beskriuwing fan 'e yntegraasje, de list fan wizigingen mei ferskillen en de lisinsjeteksten sa't se levere wurde. Foegje it meldingsbestân ta dat jo ferspreide en it plak dêr't boarnekoade oanbean wurdt, as jo ferplichtingen in oanbod easkje.

Hâld it pakket ûnder ien eigner sadat gjin útjefte sûnder it útkomme kin.

Neat hjirfan beslist in juridyske fraach, en dat is it punt: it jout in beteard beoardieler de feiten yn stee fan in gearfetting dy't immen út 't ûnthâld gearstald hat. De marketingbeskriuwing fan in leveransier is gjin bewiis oer syn arsjitektuer, en jo eigen fermoeden dêroer is ek gjin bewiis.

Relatearre artikelen