Šta je zatvoreni izvorni kod?
Zatvoreni izvorni kod odnosi se na softver čiji je kod privatan. Samo autor ili odabrani tim mogu da ga pregledaju, menjaju ili dele. Zamislite tajni recept zaključan u sefu, dok vi dobijate samo gotovo jelo.
„Zatvoreni izvorni kod je uvek bezbedniji jer napadači ne mogu da vide kod.“ Nije baš tako. Tajnost može doprineti bezbednosti, ali prava sigurnost zavisi od dizajna, revizija i planova za reagovanje.
Kako funkcioniše zatvoreni izvorni kod
Zamislite kripto novčanik koji preuzimate iz prodavnice aplikacija. Vidite interfejs, ali je unutrašnji kod skriven. Ažuriranja stižu kada ih kompanija objavi, a vi verujete njenom potpisu za svako izdanje.
- 1. korak: Tim piše kod u privatnom repozitorijumu i pravi kompajliranu verziju.
- 2. korak: Tim potpisuje verziju i objavljuje je na svojoj veb-stranici ili u prodavnici aplikacija.
- 3. korak: Instalirate je, oslanjajući se na brend, revizije i zahteve za dozvole.
- 4. korak: Greške se ispravljaju iza zatvorenih vrata, a zatim se ispravke objavljuju u sledećem ažuriranju.
- 5. korak: Ne možete da napravite njenu nezavisnu kopiju niti da proverite svaku liniju koda, pa je poverenje deo dogovora.
Tako to funkcioniše — jednostavno, ali veoma često.
Zašto je zatvoreni izvorni kod važan
Kod zatvorenog izvornog koda menjate uvid u kod za praktičnost i brzinu. Ponekad to znači jednostavnije korisničko iskustvo, a ponekad se svodi na poverenje u crnu kutiju. Odlučujte svesno.
- Prednost: Jasno vlasništvo, brže usmeravanje proizvoda i manje kopija.
- Perspektiva: Otvoreni kod može da poveća transparentnost, dok zatvoreni kod može da zaštiti intelektualnu svojinu kompanije.
- Relevantnost: Srešćete ga u novčanicima, menjačnicama, mostovima, pa čak i klijentima validatora.
Pre nego što počnete da koristite novčanik sa zatvorenim izvornim kodom, proverite da li postoje ugledne revizije i nagrade za prijavljivanje grešaka, kao i kako je tim ranije rešavao eksploataciju ranjivosti. Ranije ponašanje nagoveštava kako će tim reagovati ubuduće.
Ključne karakteristike zatvorenog izvornog koda
Obično podrazumeva sledeće:
- Kontrola: Samo dobavljač može da menja ili objavljuje bazu koda.
- Pristup: Dobijate izvršne datoteke, a ne ceo kod koji možete da pročitate ili pokrenete liniju po liniju.
- Revizija: Provere su privatne ili naručene, a javno dostupni detalji ponekad su ograničeni.
- Poverenje: Oslanjate se na kompaniju, njene servere za ažuriranje i ključeve za potpisivanje.
- Podaci: Tvrdnje često uključuju bolju privatnost, ali uvek proverite koji se podaci o korišćenju prikupljaju.
Varijante
Ne primenjuje se uvek isti pristup zatvorenom kodu. Evo nekoliko uobičajenih varijanti:
- Vlasnički softver: Potpuno zaključan, kod se nikada ne objavljuje.
- Dostupan izvorni kod: Možete da pročitate kod, ali ne možete slobodno da ga ponovo koristite.
- Otvoreno jezgro: Neki delovi su otvoreni, a napredne funkcije ostaju privatne.
- Samo za reviziju: Kod se deli sa revizorima uz NDA, ali ne i sa korisnicima.
Zatvoreni izvorni kod ne znači da je nešto loše ili savršeno. To je izbor koji podrazumeva kompromise, zato procenite poverenje, dosadašnje rezultate i sopstvenu toleranciju na rizik.
Primer
Mobilna aplikacija velike centralizovane menjačnice ima zatvoreni izvorni kod, pa ne možete da proverite kako čuva vašu sesiju niti kako štiti API ključeve.
Zanimljivost
Rasprave o hardverskim novčanicima umeju da budu žustre jer se vodeći proizvođači razilaze u pogledu filozofije koda. Ledger koristi firmver sa zatvorenim izvornim kodom, dok je Trezor skloniji otvorenom kodu. Isti cilj, ali potpuno drugačiji pristup.
Zaključak
Ukratko: zatvoreni izvorni kod podrazumeva da se kontrola dobija nauštrb uvida u kod. Odlučite da li se takav skok poverenja uklapa u vaše okruženje i vaša sredstva.