Zabezpieczenia Oprogramowania
Zabezpieczenia oprogramowania to algorytmy mające na celu uniemożliwienie nieautoryzowanego użycia oprogramowania. Można je podzielić na dwa główne typy:
- Zabezpieczenia przed włamaniami: Ochrona instalacji przed nieautoryzowanym dostępem.
- Zabezpieczenia przed administratorem: Ochrona przeznaczona dla autorów oprogramowania, aby uniemożliwić administrowanie programem w sposób niezgodny z zamysłem twórców.
Zabezpieczenia przed Włamaniami
Zabezpieczenia te polegają na precyzyjnym określeniu dozwolonych operacji oraz interfejsu, przez który nie można złamać reguł. Problemy mogą wystąpić w dwóch obszarach:
- Specyfikacja: Może nie chronić odpowiednio tego, co powinna.
- Interfejs: Błędy programistyczne mogą umożliwiać crackerom obejście zabezpieczeń.
W przypadku prostych systemów zabezpieczenia te mogą być bardzo skuteczne, osiągając nawet 100% efektywności. W bardziej złożonych systemach dziury występują rzadziej, a reguła „break once run anywhere” oznacza, że once wykryta luka może być szybko załatana we wszystkich instalacjach.
Zabezpieczenia w Oprogramowaniu Zamkniętym
Sytuacja w przypadku zabezpieczeń oprogramowania zamkniętego jest bardziej skomplikowana. Administratorzy mogą próbować uzyskać dostęp do programu, omijając oficjalne interfejsy. Posiadając pełny dostęp i możliwość modyfikacji kodu binarnego, teoretycznie mogą osiągnąć zamierzony cel. W praktyce jednak, takie działania mogą być trudne do zrealizowania.
Reguła „break once run anywhere” w tym kontekście oznacza, że wystarczy jedno złamanie zabezpieczeń, aby umożliwić innym crackerom wspólne działania w celu dalszego obiegu oprogramowania.