Інтэрфейс VPN, рухавік GPL і ўсталёўшчык: што пастаўляецца?
Складзіце карту таго, што распаўсюджваецца, што было зменена і як часткі ўзаемадзейнічаюць, перш чым вырашаць, як умовы GPL і OpenSSL ужываюцца да вашага пакета з інтэрфейсам VPN.
Пытанне прыходзіць як ліцэнзійнае, але адказ пачынаецца з інвентарызацыі. Інтэрфейс VPN, рухавік OpenVPN, які ён кіруе, бібліятэка TLS і ўсталёўшчык могуць мець чатыры розныя наборы ўмоў, і знешні выгляд прадукта нічога не кажа пра тое, які файл належыць да якога набору. Прайдзіце артэфакты ў парадку іх пастаўкі, і юрыдычнае пытанне стане значна вузейшым, калі вы перадасце яго камусьці кваліфікаванаму адказаць. Кожны крок звужае яго далей: што распаўсюджваецца, што было зменена і як часткі ўзаемадзейнічаюць.
Пачніце з таго, што ўсталёўшчык кладзе на дыск
Вазьміце выпушчаны ўсталёўшчык або пакет, а не распрацоўчы чэк-аўт, і пералічыце кожны файл, які ён змяшчае на чыстай машыне. Запішыце версіі для інтэрфейса, рухавіка і бібліятэкі TLS, і адзначце, ці рухавік з'яўляецца асобным выконваемым файлам або бібліятэкай, загружанай у той самы працэс.
Гэты апошні факт фармуе ўсё наступнае. Асобны выконваемы файл, які запускаецца праз сокет, ставіць іншы набор пытанняў, чым код, скампіляваны ў адзін бінарны файл, і ўсталёўшчык, які проста кладзе абодва побач, не вырашае справу ні ў адзін бок. Аб'яднанне — гэта рашэнне аб упакоўцы, а ўзаемаадносіны паміж праграмамі — архітэктурнае.
Запішыце спіс з прыкладзенымі версіямі, бо ўмовы адрозніваюцца паміж асноўнымі выпускамі.
dpkg -L openvpn | head -n 40
openssl version -aАддзяліце інтэрфейс ад рухавіка
Файл капіравання OpenVPN называе GPL версіі 2 і дакументуе выключэнне сувязі для OpenSSL, што з'яўляецца канкрэтным дазволам з вызначаным аб'ёмам, а не агульнай ліцэнзіяй змешваць умовы.
Захавайце тэкст ліцэнзіі, які пастаўляецца з вашай зборкай, а не той, што сёння на вэб-сайце праекта. Выпуск, які замацаваў старэйшую галіну, нясе дакумент гэтай галіны. Скрыншоты старонкі рэпазіторыя не заменяць яго, бо патрэбны вам файл — той, што ўнутры артэфакта. Змясціце яго побач з усталёўшчыкам, каб пакет быў поўным.
Затым апішыце інтэграцыю сумленна: інтэрфейс запускае рухавік як даччыны працэс і гаворыць па тэкставым пратаколе, ці ён звязвае бібліятэку і абменьваецца ўнутранымі структурамі? Другое ўладкаванне цесна звязана так, як першае — не, і менавіта гэтае адрозненне рэцэнзент спытае першым.
Адзначце, якія файлы вы змянілі
Зменены зыходны код змяняе аналіз больш, чым любая дэталь упакоўкі. Калі вы ўнеслі латку ў рухавік, сама латка з'яўляецца вытворным творам, і абавязак ляжыць на тым, хто распаўсюджвае вынік.
Запішыце кожную латку, яе мэту і ці была яна адпраўлена ва ўверх, бо латка, якая ніколі не пакідала вашу рэпазіторыю, усё роўна з'яўляецца часткай таго, што вы пастаўляеце, калі пастаўляеце бінарны файл.
Канфігурацыйныя файлы, тэмы і пераклады звычайна жывуць разам з інтэрфейсам, але пераклад, які ўбудоўвае радкі зыходнага кода рухавіка, — маленькае напамінанне, што мяжа праходзіць па файле, а не па каталогу. Трымайце розніцу паміж выпускам ва ўверх і вашай зборкай, каб адказ быў даступны па запыце, а не адноўлены пазней. Гэтая розніца таксама найкарыснейшы артэфакт, калі аўдытар пытаецца, што змянілася.
Праверце версію OpenSSL асобна
OpenSSL 3.0 і пазней распаўсюджваюцца пад Apache License 2.0, а старэйшыя выпускі нясуць умовы OpenSSL/SSLeay. Гэта розныя дакументы з рознымі абавязацельствамі, і аб'яднаны рухавік можа звязаць любы з іх, які знайшла ваша сістэма зборкі.
Пацвердзіце версію, якая фактычна пастаўляецца, а не названую ў скрыпце зборкі.
Залежнасць ад OpenVPN не ператварае кожную мадыфікацыю OpenSSL у код GPL, і выключэнне сувязі не здымае іншыя абавязацельствы, якія ўзнікаюць пры пераразмеркаванні бібліятэкі. Разглядайце выключэнне як адзін пункт у больш шырокім аналізе і запішыце ўласныя паведамленні бібліятэкі TLS разам з усім астатнім.
Сабярыце пакет доказаў
Пакет мае чатыры часткі: інвентар файлаў з версіямі, апісанне інтэграцыі, спіс мадыфікацый з розніцамі і тэксты ліцэнзій у пастаўленым выглядзе. Дадайце файл паведамленняў, які вы распаўсюджваеце, і месца, дзе прапануецца зыходны код, калі вашыя абавязацельствы патрабуюць прапановы.
Трымайце пакет у аднаго ўладальніка, каб ні адзін выпуск не мог выйсці без яго.
Нішто з гэтага не вырашае юрыдычнае пытанне, і ў гэтым сутнасць: гэта дае кваліфікаванаму рэцэнзенту факты замест зводкі, якую хтосьці сабраў па памяці. Маркетынгавае апісанне пастаўшчыка не з'яўляецца доказам іх архітэктуры, і ваша ўласная здагадка пра яе таксама не доказ.