Pewnie zaraz powiecie ze temat nadaje się do newbie ale specjalnie pisze tutaj bo mało jest na temat kluczy sprzętowych w sieci a z działu newbie za miesiąc temat wyleci.
Napisałem program który tez, będę sprzedawał, zdecydowałem się na zabezpieczenie go za pomocą klucza sprzętowego ponieważ jest to stosunkowo prosty sposób i wystarczy by obronić się przed przeciętnym zjadaczem chleba.
Zabezpieczenie polega na tym ze do programu dołączam dwa pliki (dll i lib dostarczone przez producenta) a potem przy starcie wykonuje kilka funkcji w tej bibliotece (oczywiście podając pewne wpisane na stale informacje takie jak klucz AES) i jeżeli te wszystkie funkcje zwrócą wartość 0 oznacza to ze podłączony klucz jest poprawny.
Widzę w tym rozwiązaniu kilka powaznych wad łatwych do wykożystania przez nawet kiepskiego crackera, i tu mam do was pytania jak w możliwie najprostszy sposób utrudnić takiej osobie życie.
-
żaden problem podmienić bibliotekę na taka która zawsze powie ze klucz jest podłączony i ze jest prawidłowy. Tu akurat wydaje mi się że sprawdzanie sumy kontrolnej było by wystarczające, jak myślicie? Jeśli tak to jaka będzie dobra? MD5?
-
Wszystko sprowadza się do sprawdzenia warunku: jeżeli funkcja zwraca 0 to super. Tylko czy przypadkiem cracker nie może namieszać tak że program będzie porównywał zwracana wartość z numerem standardowego błędu?
-
Cracker może zdaje się podmienić wpisany w programie klucz publiczny, na inny.
Jeśli wiecie jak się przed tym zabezpieczyć, albo widzicie kolejne wady tego sposobu zabezpieczania, to napiszcie, myślę ze taki temat pomoże paru osobom w zabezpieczaniu swoich programów.