neljapäev, 17. märts 2022

Copyleft ja selle mõju litsentsivalikule

Põhiliseks dokumendiks, millega on sätistatud tarkvara kasutaja õigused ja kohustused, on litsentsileping (licence agreement), mis on alati tootega kaasas kas paberkandjal või elektrooniliselt. Litsentsi tüübid võib jaotada kahte gruppi: lihtlitsents ja ainulitsents.

Lihtlitsents - litsentsiandja pärast litsentsi väljastamist saab ise litsentsi objekti kasutada ja/või anda kolmandatele isikutele lihtlitsentsi alusel kasutada.

Ainulitsents -  litsentsi objekti saab kasutada ainult litsentsisaaja ja looja teatud tingimustel.

Lihtlitsentsi saab omakorda jagada kolmeks tüübiks - avatud, tasuta ja tinglikult tasuta [1]. Avatud litsentsiga (Open Source) on avatud lähtekoodiga programmid, mida saab modifitseerida. Tasuta kasutamise litsents on, näiteks, GPL, Postcardware. Tinglikult tasuta litsents on, näiteks, ShareWare.

Eksisteerib neli põhilist avatud litsentseerimise mudelit [2].

Avalik omand (Public domain): kõige vabam ja rohkem lubad litsentsi tüüp. Kui tarkvara on üldkasutatav, võib igaüks seda muuta ja kasutada ilma piiranguteta. Kuid see ei tähenda, et kui koodis pole litsentsi tüüp viidaatud, et see vaikimisi on avaliku omandi litsentsiga.

Lubav (Permissive): on tuntud ka kui Apache tüüpi või BSD tüüpi litsentsid, mis minimaalsed piirangud tarkvara modifitseerimisele ja jagamisele. See tarkvara litsentsi tüüp on võib-olla kõige levinum tasuta ja avatud lähtekoodiga tarkvaraga kasutatav litsents. Peale Apache litsentsi ja BSD litsentsi on teine populaarne variant MIT litsents.

LGPL (GNU Lesser General Public License): lubab teil oma tarkvara ühendada avatud lähtekoodiga teekidega. Kui kompileerite või lingite LGPL-litsentsiga teegi lihtsalt oma koodiga, saate oma rakenduse väljastada mis tahes soovitud litsentsi, isegi varalise litsentsi alusel. Kuid kui aga muudate teeki või kopeerite selle osad oma koodi, peate oma rakenduse välja andma samadel tingimustel nagu LGPL.

Copyleft: nimetus on tekkinud kui vastand autoriõiguse (ingl Copyright) litsentsidele, kuid see ei tähenda, et autoriõigus on litsentsiga kaotatud. Selle litsentsi põhikontseptsioon on see, et kasutajal on õigus lähtekoodi vabalt kasutada, kopeerida, muuta ja levitada, kuid loodud tuletistel peavad olema tagatud samad vabadused sama litsentsi alusel. Mõned copyleft litsentsid võimaldavad vabastada ainult muudetud koodi; teised nõuavad, et vabastaksite kogu rakenduse sama litsentsi alusel. Üks levinumaid piiravaid litsentse on GNU GPL. Selle modifitseeritud variant on AGPL, mis on loodud nende programmide jaoks, kus pole serverites käivitamine välistatud.

Arvestades copyleft põhimõtteid, litsentsid saab omakorda jagada järgmiselt [3]:

  • ilma copyleft'ta litsents: ei nõua tuletiste lähtekoodi avaldamist; kasutajal on vabadus valida millise litsentsi alusel oma loodud või modifitseeritud tarkvara levitab. Näiteks, BSD ja Apache litsentsid.
  • nõrk või failipõhine copyleft: kuigi kasutaja on kohustatud jagada tarkvara ja selle tuletised sama litsentsi alusel, moodulite tasemel on lubatud tarkvara linkida mittevaba tarkvaraga. Näided: MPL, GNU LGPL.  
  • tugev copyleft: kasutaja on kohutstatud levitama sama litsentsi alusel tarkvara ja selle sisaldavaid suuremaid tarkvarasüsteeme. Näiteks, GNU GPL.
  • ülitugev copyleft: selle litsentsiga tuleb lähtekoodi avalikustada mitte ainult interneti kasutajatele, kuid ka kõigile neile, kes kasutavad tarkvara arvutivõrgus alla laadimata serveritel. Sellise litsentsi näideks on AGPL, EUPL.

Avatud lähtekoodiga litsenseerituid komponente saab üldiselt kasutada seni, kuni on säilitatud kõik autoriõigused. Kuid sai kasutatud komponent, mis on litsentsiga piiratud, võib tekkida kohtustus väljastada tarkvara ka sama litsentsi alusel. Niikaua kui saab hallata avatud lähtekoodi kasutamist (on teadmine, mis on teie koodibaasisi ja millised litsentsid on lisatud), saab juhtida ka õiguslikku riski. 

Avatud lähtekoodiga litsentsiriski muu hulgas saab kategoriseerida arvestades õiguslikku mõju, kui on kasutatud komponendid, millel on teatud litsents.

Madal risk. Sellisteks on Apache ja MIT litsentsid, kuna neid on lihtne täita - tavaliselt peab alles jätma autoriõiguse teatise, kuid lähtekoodi ei pea avalikustama.

Keskmine risk. Nõrgad copyleft litsentsid on keskmise riskiga, kuna koodi modifitseerimisel peab väljastama muudatused (mitte kogu rakendus) sama litsentsi alusel. Näidetena võib tuua Mozilla ja Eclipse Public litsentsid.

Kõrge risk. Piiravate litsentsidega kaasneb suur õiguslik risk. Kui kasutate komponenti ühega neist litsentsidest, võib teil olla seaduslik kohustus vabastada kogu rakenduse kood. Näited on GNU GPL ja GNU LGPL.

Teadmine, mis täpselt on koodibaasis, aitab juhtida litsentside kasutamisega seotud riski. Tänapäeval on olemas ka spetsiaalsed programmid, mis skannivad kasutaja koodibaasi avatud lähtekoodiga komponentide ja koodilõikude leidmiseks ning tagastavad nendega seotud litsentside loendi, samuti teadaolevad haavatavused ja muu olulise teabe.




Kasutatud allikad:

1. https://habr.com/ru/post/275995/ [17.03.2022]
2. https://www.synopsys.com/blogs/software-security/5-types-of-software-licenses-you-need-to-understand/ [17.03.2022]
3. https://digikogu.taltech.ee/en/Item/32c11c62-efb7-4a2d-aaca-bd3eee473891 [17.03.2022]


Kommentaare ei ole:

Postita kommentaar

Õngitsemine

  Allikas: [1] Hiljutine kokkupuude õngitsemisega aitas kaasa teema valikul. Ma töötan suures ettevõttes, kus igapäevaselt toimub tihe kirja...