Zabezpieczenia oprogramowania – różne algorytmy mające uniemożliwić używanie oprogramowania niezgodnie z zamierzonym przeznaczeniem.
Istnieją dwa typy takich zabezpieczeń - broniące instalacji programu przed różnego rodzaju włamaniami, oraz broniące instalacji przed jej administratorem w imieniu autorów oprogramowania.
Zabezpieczenia przed włamaniami polegają na ścisłym określeniu co jest dozwolone a co nie i określeniu interfejsu przez który nie można złamać tych reguł. Dziury mogą znajdować się albo w specyfikacji która nie broni tego co powinna, albo w interfejsie który z powodu błędów programistycznych daje crackerowi możliwość obejścia zabezpieczeń. Zabezpieczenia takie są relatywnie skuteczne, w przypadku prostych systemów mogą być w 100% pewne, w przypadku bardziej rozbudowanych dziury zdarzają się relatywnie rzadko, i działa tu reguła przeciwna do break once run anywhere - dziura raz znaleziona może być szybko załatana na dowolnej instalacji.
W przypadku zabezpieczeń zamkniętego oprogramowania sytuacja jest inna - administrator może próbować dostać się do programu z pominięciem oficjalnych interfejsów i mając pełny dostęp i możliwość modyfikacji binarnego kodu teoretycznie zawsze może osiągnąć to co zamierza. W praktyce może to być bardzo utrudnione, jednak reguła "break once run anywhere" zapewnia możliwość połączenia sił dowolnej ilości crackerów - wystarczy bowiem złamać program jeden raz.
Zobacz też