Zabezpieczenie aplikacji w Java

0

Witam wszystkich.
Napisałem aplikację w Java i chciałbym ją jakoś zabezpieczyć przed kopiowaniem.
Czy jest sens zabezpieczania programów w Java kluczami sprzętowymi?
Trochę było poruszanej tematyki zabezpieczeń programów na forum, ale o kluczach sprzętowych nic nie znalazłem.
Przymierzam się do tego rodzaju kluczy "ROCKEY4ND" http://rockey.pl/pl/.

Pozdrawiam Tomasz

0

Stawiam skrzynkę piwa, że gdzieś na świecie jest haker, który rozpieprza hurtowo tego typu zabezpieczenia.

W ogólności:
Nie da się zabezpieczyć samodzielnej aplikacji, ale da się nieco wydłużyć proces łamania. Musisz rozważyć wszystkie za i przeciw. Jednym z argumentów przeciw jest to, że jeśli tylko ty będziesz znał kod, to tylko ty będziesz w stanie stwierdzić, że ktoś ci kod podpieprzył. Oczywiście zakładając, że podpieprzający kod nie zastosuje jakiegoś silnego zabezpieczenia przed tobą :P

0

Za duże koszty zarówno samego zabezpieczenia jak i później supportowania tego rozwiązania. Pamiętaj, że w razie problemów klient będzie męczył ciebie, a nie producenta klucza. Pewnym rozwiązaniem wydaje się tu być odpowiednio skonfigurowany zestaw podpisów cyfrowych + java web start + dociąganie kodu z serwera. Choć tu też mogą pojawić się problemy.

0

Dzisiaj najlepszym kluczem sprzętowym jest po prostu internet. Nawet najsłabsze połączenie komórkowe 9 kbs jest w stanie dorzucić tyle zabezpieczonego kodu ile potrzeba. Tak więc potraktuj swój własny serwer jako najlepszy istniejący klucz sprzętowy, który na dodatek będzie miał ten bonus, że będziesz się orientować ile legalnych kopii softu działa. Klucz sprzętowy to była taka namiastka, która dzisiaj jest technologią starożytną. Jeżeli internet odpada, to innym najlepszym zabezpieczeniem jest obudowanie softu w maszynie. Tak działa sprzedaż wszelkiego sprzętu medycznego, telewizorów itp. Soft wpakowuje się do skrzynki i sprzedaje się żuczkom skrzynkę, w której soft jest w zasadzie ukryty. To drugie podejście jest bardzo rozpowszechnione w przypadku Javy bo daje pozory sprzedawania sprzętu, choć tak naprawdę opycha się soft - którego zresztą nikt tam nie szuka.

ps. Zauważ, że to ostatnie podejście zostało wykorzystane w przypadku "Rockey4ND". Tu też sprzedają Ci soft "opakowany sprzętem".

0

Tak się zastanawiam nad tym na ile klucz sprzętowy chroni aplikację java.
Zakłądając najprostszy wariant - program przy starcie odczytuje coś z klucza i porównuje czy jest odpowiednie, jeśli tak to dzialą jak nie to się wyłącza. Nie wnikając w szczegóły, ktoś może użyć disaseblera i wywalić kod który robi sprawdzanie(w jave jest jest bardzo proste). Mam rację ?
Poza tym, kluczem sprzetwych chyba ciężko zabezpieczyć kod aplikacji ? Nawet jeżeli klucz zwracałby ten cenny kawałęk kodu to i tak ten kod będzie ładowany do pamięci skąd go można zczytać.

Może na przykładzie będzie prościej to wyjaśnić.
Załóżmy że mamy prosty program który wykonuje oprację na plikach z liczbami - ustawia odpowiednie wartośći w odpowiednich miejscach. I teraz chce chronić 2 rzeczy. Pierwsza aby nie dało się łatwo uruchomić nieautoryzowanej kopi programu. Druga to żeby nikt nie posiadł informacji co gdzie ustawić i na jakiej zasadzie jest to robione bo to jest bardzo ważna tajemnica.
To klucz sprzętowy utrudni pierwszą rzecz oraz możę trochę drugą (jeżeli na kluczu będzie zakodowany kawałęk kodu). Obfuscator utrudni drugą rzecz ale jej nie umożliwi.
Co o tym sądzicie jak najlepiej zabezpieczyć te 2 rzeczy ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1