Kas yra kodo pasirašymas?

Įsilaužėliai dažnai paima programinę įrangą – neprisijungę ar prisijungę – pertvarko ir pakeičia kodą, kad jis būtų kenkėjiškas, o tada įkelia jį į internetą, kad vartotojai atsisiųstų nemokamą programą ir joje esantį kenkėjišką kodą. Siekiant užtikrinti, kad vartotojai nesusidurtų su šia problema, naudojamas kodo pasirašymas. Kodo pasirašymas – tai metodas, kuriuo originalus programuotojas arba programą sukūrusi įmonė pasirašo programą ir, įdiegus programą, ji autentifikuojama, siekiant užtikrinti, kad programoje nebuvo pridėtas ar pakeistas kodavimas. Tam nereikia jokios specialios programinės įrangos vartotojo pusėje, o vartotojas gali patikrinti programuotojo tapatybę. Nors tai yra skirta saugumo formai, įsilaužėlis, kuris sukuria programą arba atsiduria šalia pasirašymo, gali sukurti dirbtinį ir netinkamą pasitikėjimą.

Programos nuolat parduodamos tiek internetu, tiek neprisijungus. Kai kas nors perka programą neprisijungęs iš patikimo tiekėjo ar mažmenininko, vartotojas turi labai mažai priežasčių nerimauti dėl įsilaužėlių, įterpusių į programą kenkėjišką kodą. Taip yra todėl, kad kas nors negali sugadinti programinės įrangos ir padaryti ją kenkėjiška, nebent programinės įrangos kūrėjas tyčia sukūrė pavojingą programą. Kai vartotojas atsisiunčia programą iš interneto, tokios garantijos nėra.

Siekiant apsaugoti vartotojus, kurie perka ar atsisiunčia programas internetu, įdiegtas kodo pasirašymas. Kodo pasirašymas yra padalintas į dvi dalis: kūrėją ir galutinį vartotoją. Kūrėjas naudoja kriptografinę maišą – vienpusę operaciją, kuri užmaskuoja programos kodą, o tada sujungia savo privatų raktą su maiša. Taip sukuriamas parašas, kuris implantuojamas į programą.

Kai vartotojas gauna programą, įvyksta antroji kodo pasirašymo proceso dalis. Programa patikrina sertifikatą ir viešąjį raktą, kurį programuotojas įdėjo į programą. Naudodama viešąjį raktą, programa gali paleisti tą pačią maišą dabartiniame programavime ir tada patikrina originalą su esama įdiegta versija. Jei sinchronizuojama ir įdiegta programa, ir originali programa, tai rodo vartotojui, kad niekas nebuvo pakeistas. Šis procesas atliekamas automatiškai, o šiam autentifikavimui reikalingos programos turi būti iš anksto įdiegtos kompiuterio operacinėje sistemoje (OS).

Nors kodo pasirašymas yra galingas saugumo užtikrinimo būdas, jis turi trūkumų. Jei vartotojas atsisiunčia programą iš įsilaužėlio, autentifikavimas parodys, kad pradinė programa yra nepažeista. Tai sukeltų vartotoją klaidingą saugumo jausmą; programa sukurta kaip kenkėjiška, todėl saugumas šia prasme nepasiekiamas. Sudėtingi įsilaužėliai taip pat gali apeiti maišą ir įvesti kodavimą, todėl kodo pasirašymas tampa nenaudingas.