VPN saskarne, GPL dzinējs un instalētājs: kas tiek izplatīts?
Atzīmējiet, kas tiek izplatīts, kas tika mainīts un kā daļas sazinās, pirms izlemjat, kā GPL un OpenSSL noteikumi attiecas uz jūsu VPN saskarnes komplektu.
Jautājums nāk kā licencēšanas jautājums, bet atbilde sākas ar uzskaiti. VPN saskarnei, dzinējam OpenVPN, ko tā vada, TLS bibliotēkai un instalētājam var būt četras dažādas noteikumu kopas, un produkta izskats neko nepasaka par to, kura datne pieder kurai kopai. Izstaigājiet artefaktus tādā secībā, kādā tie tiek izplatīti, un juridiskais jautājums kļūs daudz šaurāks, kad to nodosit kādam, kas ir kvalificēts atbildēt. Katrs solis to sašaurina vēl vairāk: kas tiek izplatīts, kas tika mainīts un kā daļas sazinās.
Sāciet ar to, ko instalētājs ievieto diskā
Ņemiet izlaisto instalētāju vai komplektu, nevis izstrādes kopiju, un uzskaitiet katru datni, ko tas ievieto tīrā datorā. Pierakstiet saskarnes, dzinēja un TLS bibliotēkas versijas un atzīmējiet, vai dzinējs ir atsevišķa izpildāma datne vai bibliotēka, kas ielādēta tajā pašā procesā.
Šis pēdējais fakts veido visu, kas seko. Atsevišķa izpildāma datne, kas palaista caur ligzdu, rada citu jautājumu kopu nekā kodols, kas kompilēts vienā binārā datnē, un instalētājs, kas vienkārši ievieto abus blakus, jautājumu neizšķir ne vienā, ne otrā virzienā. Apvienošana ir iepakošanas lēmums, bet attiecības starp programmām ir arhitektonisks lēmums.
Pierakstiet sarakstu ar versijām, jo noteikumi atšķiras starp galvenajiem laidieniem.
dpkg -L openvpn | head -n 40
openssl version -aAtdaliet saskarni no dzinēja
OpenVPN kopēšanas datne norāda GPL 2 versiju un dokumentē savienošanas izņēmumu OpenSSL, kas ir konkrēta atļauja ar noteiktu apjomu, nevis vispārīga licence noteikumu sajaukšanai.
Fiksējiet licences tekstu, kas tiek izplatīts kopā ar jūsu būvējumu, nevis to, kas šodien ir projekta vietnē. Laidiens, kas piefiksēja vecāku zaru, nes sev līdzi tā zara dokumentu. Repozitorija lapas ekrānuzņēmumi nav aizstājējs, jo datne, kas jums nepieciešama, ir tā, kas atrodas artefakta iekšienē. Glabājiet to blakus instalētājam, lai komplekts būtu pilnīgs.
Pēc tam godīgi aprakstiet integrāciju: vai saskarne palaiž dzinēju kā pakārtotu procesu un runā teksta protokolā, vai arī saista bibliotēku un apmainās ar iekšējām struktūrām? Otrais izvietojums ir ciešs tādā veidā, kādā pirmais nav, un tieši šo atšķirību recenzents jautās vispirms.
Atzīmējiet, kuras datnes jūs mainījāt
Mainīts pirmkods maina analīzi vairāk nekā jebkura iepakošanas detaļa. Ja jūs salabojāt dzinēju, pats labojums ir atvasināts darbs, un pienākums gulstas uz to, kas izplata rezultātu.
Pierakstiet katru labojumu, tā mērķi un to, vai tas tika nosūtīts augšup, jo labojums, kas nekad nav atstājis jūsu repozitoriju, joprojām ir daļa no tā, ko jūs izplatāt, ja izplatāt bināro datni.
Konfigurācijas datnes, tēmas un tulkojumi parasti dzīvo kopā ar saskarni, bet tulkojums, kas ietver dzinēja pirmkoda virknes, ir mazs atgādinājums, ka robeža ir pa datnēm, nevis pa mapēm. Saglabājiet atšķirību starp augšupējo laidienu un jūsu būvējumu, lai atbilde būtu pieejama pēc pieprasījuma, nevis vēlāk rekonstruēta. Šī atšķirība ir arī visnoderīgākais artefakts, kad auditors jautā, kas mainījās.
Pārbaudiet OpenSSL versiju atsevišķi
OpenSSL 3.0 un jaunākas versijas tiek izplatītas saskaņā ar Apache License 2.0, bet vecāki laidieni nes OpenSSL/SSLeay noteikumus. Tie ir dažādi dokumenti ar dažādiem pienākumiem, un apvienotais dzinējs var saistīt jebkuru no tiem, ko atrada jūsu būvēšanas sistēma.
Apstipriniet faktiski izplatīto versiju, nevis to, kas nosaukta būvēšanas skriptā.
Atkarība no OpenVPN nepārvērš katru OpenSSL izmaiņu GPL kodā, un savienošanas izņēmums neatceļ citus pienākumus, kas rodas, pārdalot bibliotēku. Uztveriet izņēmumu kā vienu klauzulu plašākā analīzē un pierakstiet pašas TLS bibliotēkas paziņojumus kopā ar visu pārējo.
Savāciet pierādījumu komplektu
Komplektam ir četras daļas: datņu uzskaite ar versijām, integrācijas apraksts, izmaiņu saraksts ar atšķirībām un licences teksti tādā formā, kādā tie tiek izplatīti. Pievienojiet izplatīto paziņojumu datni un vietu, kur tiek piedāvāts pirmkods, ja jūsu pienākumi prasa piedāvājumu.
Turiet komplektu viena īpašnieka pārziņā, lai neviens laidiens nevarētu iznākt bez tā.
Nekas no tā neizšķir juridisku jautājumu, un tā ir būtība: tas dod kvalificētam recenzentam faktus, nevis no atmiņas saliktu kopsavilkumu. Piegādātāja mārketinga apraksts nav pierādījums par tā arhitektūru, un arī jūsu paša pieņēmums par to nav pierādījums.