Antara muka VPN, enjin GPL dan pemasang: apa yang diagihkan?
Petakan apa yang diagihkan, apa yang diubah dan cara bahagian-bahagian berkomunikasi sebelum memutuskan cara terma GPL dan OpenSSL terpakai pada bundel antara muka VPN anda.
Soalan datang sebagai isu lesen, tetapi jawapannya bermula dengan inventori. Antara muka VPN, enjin OpenVPN yang dipandunya, pustaka TLS dan pemasang boleh mempunyai empat set terma yang berbeza, dan rupa produk tidak memberitahu anda apa-apa tentang fail mana yang tergolong dalam set mana. Telusuri artifak mengikut urutan ia diagihkan, dan isu perundangan menjadi jauh lebih sempit apabila anda menyerahkannya kepada seseorang yang layak menjawabnya. Setiap langkah menyempitkannya lagi: apa yang diagihkan, apa yang diubah dan cara bahagian-bahagian berkomunikasi.
Mulakan dengan apa yang pemasang letakkan pada cakera
Ambil pemasang atau pakej yang dikeluarkan, bukan salinan pembangunan, dan senaraikan setiap fail yang diletakkannya pada mesin bersih. Catat versi untuk antara muka, enjin dan pustaka TLS, dan catat sama ada enjin ialah fail boleh laku berasingan atau pustaka yang dimuatkan ke dalam proses yang sama.
Fakta terakhir itu membentuk segala yang berikutnya. Fail boleh laku berasingan yang dilancarkan melalui soket menimbulkan set soalan yang berbeza daripada kod yang dikompil menjadi satu binari, dan pemasang yang hanya meletakkan kedua-duanya bersebelahan tidak memutuskan perkara itu ke mana-mana arah. Pembundelan ialah keputusan pembungkusan, manakala hubungan antara program ialah keputusan seni bina.
Tulis senarai itu dengan versi dilampirkan, kerana terma berbeza antara keluaran utama.
dpkg -L openvpn | head -n 40
openssl version -aAsingkan antara muka daripada enjin
Fail salinan OpenVPN menyatakan GPL versi 2 dan mendokumentasikan pengecualian pautan untuk OpenSSL, iaitu kebenaran khusus dengan skop yang ditentukan dan bukan lesen umum untuk mencampur terma.
Tangkap teks lesen yang diagihkan bersama binaan anda, bukan yang ada di laman web projek hari ini. Keluaran yang menyematkan cawangan lama membawa dokumen cawangan itu. Tangkapan skrin halaman repositori bukan pengganti, kerana fail yang anda perlukan ialah yang di dalam artifak. Simpan di sebelah pemasang supaya pakej itu lengkap.
Kemudian huraikan integrasi dengan jujur: adakah antara muka memulakan enjin sebagai proses anak dan bercakap protokol teks, atau memautkan pustaka dan bertukar struktur dalaman? Susunan kedua itu rapat dengan cara yang tidak dimiliki oleh yang pertama, dan perbezaan itulah yang akan ditanya oleh penyemak dahulu.
Catat fail mana yang anda ubah
Kod sumber yang diubah mengubah analisis lebih daripada mana-mana butiran pembungkusan. Jika anda menampal enjin, tampalan itu sendiri ialah karya terbitan, dan kewajipan terletak pada sesiapa yang mengagihkan hasilnya.
Catat setiap tampalan, tujuannya dan sama ada ia dihantar ke huluan, kerana tampalan yang tidak pernah meninggalkan repositori anda tetap menjadi bahagian daripada apa yang anda agihkan jika anda mengagihkan binari itu.
Fail konfigurasi, tema dan terjemahan biasanya hidup bersama antara muka, tetapi terjemahan yang membenamkan rentetan kod sumber enjin ialah peringatan kecil bahawa sempadan itu mengikut fail, bukan mengikut direktori. Simpan perbezaan antara keluaran huluan dan binaan anda supaya jawapannya tersedia apabila diminta dan bukan dibina semula kemudian. Perbezaan itu juga merupakan artifak paling berguna apabila juruaudit bertanya apa yang berubah.
Semak versi OpenSSL secara berasingan
OpenSSL 3.0 dan yang lebih baharu diagihkan di bawah Apache License 2.0, manakala keluaran lama membawa terma OpenSSL/SSLeay. Itu ialah dokumen berbeza dengan kewajipan berbeza, dan enjin yang dibundel mungkin memautkan mana-mana satu yang ditemui oleh sistem binaan anda.
Sahkan versi yang benar-benar diagihkan dan bukan yang dinamakan dalam skrip binaan.
Kebergantungan pada OpenVPN tidak menukar setiap pengubahsuaian OpenSSL menjadi kod GPL, dan pengecualian pautan tidak menghapuskan kewajipan lain yang datang dengan pengagihan semula pustaka itu. Layan pengecualian sebagai satu fasal dalam analisis yang lebih luas, dan catat notis pustaka TLS itu sendiri bersama segala yang lain.
Himpunkan pakej bukti
Pakej itu mempunyai empat bahagian: inventori fail dengan versi, huraian integrasi, senarai pengubahsuaian dengan perbezaan dan teks lesen seperti yang diagihkan. Tambahkan fail notis yang anda agihkan dan tempat kod sumber ditawarkan, jika kewajipan anda memerlukan tawaran.
Simpan pakej itu di bawah seorang pemilik supaya tiada keluaran boleh keluar tanpanya.
Tiada satu pun daripada ini memutuskan isu perundangan, dan itulah intinya: ia memberi penyemak yang layak fakta dan bukannya ringkasan yang disusun seseorang daripada ingatan. Huraian pemasaran vendor bukan bukti tentang seni binanya, dan andaian anda sendiri tentangnya juga bukan bukti.