Пытанне прыходзіць як ліцэнзійнае, але адказ пачынаецца з інвентарызацыі. Інтэрфейс 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 разам з усім астатнім.

Сабярыце пакет доказаў

Пакет мае чатыры часткі: інвентар файлаў з версіямі, апісанне інтэграцыі, спіс мадыфікацый з розніцамі і тэксты ліцэнзій у пастаўленым выглядзе. Дадайце файл паведамленняў, які вы распаўсюджваеце, і месца, дзе прапануецца зыходны код, калі вашыя абавязацельствы патрабуюць прапановы.

Трымайце пакет у аднаго ўладальніка, каб ні адзін выпуск не мог выйсці без яго.

Нішто з гэтага не вырашае юрыдычнае пытанне, і ў гэтым сутнасць: гэта дае кваліфікаванаму рэцэнзенту факты замест зводкі, якую хтосьці сабраў па памяці. Маркетынгавае апісанне пастаўшчыка не з'яўляецца доказам іх архітэктуры, і ваша ўласная здагадка пра яе таксама не доказ.

Падобныя артыкулы