witam szukam silnej metody szyfrowania jednokierunkowego
zasada działania: - mamy dany ciąg znaków (nazwijmy go ciąg1) - szyfrujemy ciąg1 jednokierunkowo jakimś algorytmem z jakimś tajnym kluczem i otrzymujemy ciąg2
załóżmy, że osoba atakująca zna ciąg1 i ciąg2 (odczyta je sobie), i chcemy żeby nie była w stanie złamać metody szyfrowania to znaczy żeby nie była w stanie odkryć metody i zaszyfrować w ten sam sposób swojego ciagu3 i uzyskać ciąg4 (czyli podszyć się pod nas)
@aksnet: mały hint z dobrych praktyk dot. Bezpieczeństwa. Zawsze zakładaj że algorytm szyfrowania jest jawny. Cała siła algorytmu deszyfrowania ma wynikać z jego matematycznej złożoności przy nie znajomosci parametrów klucza.
@ponton: @UberRam: może nie opisałem dobrze problemu, więc doprecyzuję
nie chodzi tu o wymianę zaszyfrowanych informacji
mam program który chcę zabezpieczyć, program ten posiada jakiś klucz licencyjny np. o długości 18 znaków klucz jest wpisywany z klawiatury i po zaszyfrowaniu jest
@aksnet: to możesz np wyliczać funkcje skrótu (sha jakieś) z pliku licencji i na tej podstawie weryfikować jej poprawność w jakimś serwisie. Typu serwis aktywacji licencji który ma rejestr wydanych licencji i ich skrótów. Jest na pęczki sprawdzonych pomysłów jak zarządzać licencjami na swój soft.
@aksnet: a takie inne pytanie, co tak właściwe ten klucz robi? do czego daje ci dostęp? Bo jak pierniczysz się z utrudnieniem zgadnięcia klucza tylko po to by utrudnić komuś łamanie licencji, to marnujesz czas, bo szybciej i wygodniej komuś będzie po prostu usunąć sprawdzenie licencji niż się pierniczyć z łamaniem klucza.
@aksnet: Ale wiesz, że jak już zrobisz zabezpieczenie kryptograficzne "nie do złamania" to zostanie ono "złamane" przez najzwyklejsze wycięcie? Zamiast generatorów kluczy, będzie najzwyklejszy, znany od dawna, crack który np. zmieni wskaźnik funkcji sprawdzającej klucz na funkcję własną zawsze zwracającą "true" i po zabawie. Nie myśl, że jak kod jest skompilowany, to już się nic nie da zrobić.
Jak zrobisz weryfikację online, to powstaną fake'owe serwery licencyjne
@zakopiak: reverse engineering nie jest tani, i niesie ze sobą ryzyko (omijanie zabezpieczeń przez dużą firmę to potencjalnie katastrofa PR i duże koszty rozpraw sądowych - tego się raczej nie robi).
Jeśli robisz aplikację której będą używać w korpo, i będzie miała kilka tysięcy użytkowników lub mniej, to nikt nie będzie tego hackował.
@tell_me_more: Nie sądzę, żeby OP pisał aplikację dla korpo. Korpo większość softu piszą same dla siebie, a pozostały soft kupują od innych korpo. Kwestie bezpieczeństwa.
witam
szukam silnej metody szyfrowania jednokierunkowego
zasada działania:
- mamy dany ciąg znaków (nazwijmy go ciąg1)
- szyfrujemy ciąg1 jednokierunkowo jakimś algorytmem z jakimś tajnym kluczem i otrzymujemy ciąg2
załóżmy, że osoba atakująca zna ciąg1 i ciąg2 (odczyta je sobie),
i chcemy żeby nie była w stanie złamać metody szyfrowania
to znaczy żeby nie była w stanie odkryć metody i zaszyfrować
w ten sam sposób swojego ciagu3 i uzyskać ciąg4 (czyli podszyć się pod nas)
Jest to możliwe? Czy coś polecicie?
@aksnet: no to jak zna oryginalny ciąg, to już się może podszyć
załóżmy że chcemy zabezpieczyć oprogramowanie przed podmianą klucza (np. generowaniem pasujących kluczy przez crackera)
nie chodzi tu o wymianę zaszyfrowanych informacji
mam program który chcę zabezpieczyć, program ten posiada jakiś klucz licencyjny np. o długości 18 znaków
klucz jest wpisywany z klawiatury i po zaszyfrowaniu jest
Komentarz usunięty przez autora
Jest na pęczki sprawdzonych pomysłów jak zarządzać licencjami na swój soft.
Bo jak pierniczysz się z utrudnieniem zgadnięcia klucza tylko po to by utrudnić komuś łamanie licencji, to marnujesz czas, bo szybciej i wygodniej komuś będzie po prostu usunąć sprawdzenie licencji niż się pierniczyć z łamaniem klucza.
@aksnet: Ale wiesz, że jak już zrobisz zabezpieczenie kryptograficzne "nie do złamania" to zostanie ono "złamane" przez najzwyklejsze wycięcie? Zamiast generatorów kluczy, będzie najzwyklejszy, znany od dawna, crack który np. zmieni wskaźnik funkcji sprawdzającej klucz na funkcję własną zawsze zwracającą "true" i po zabawie. Nie myśl, że jak kod jest skompilowany, to już się nic nie da zrobić.
Jak zrobisz weryfikację online, to powstaną fake'owe serwery licencyjne
Jeśli robisz aplikację której będą używać w korpo, i będzie miała kilka tysięcy użytkowników lub mniej, to nikt nie będzie tego hackował.
Korpo większość softu piszą same dla siebie, a pozostały soft kupują od innych korpo. Kwestie bezpieczeństwa.
ciąg2 := SHA1( ciąg1 + tajnyciąg )i już. (gdzie + to operacja konkatenacji)Zamiast SHA1 możesz oczywiście dać coś mocniejszego, np. SHA256 albo SHA512 no i tajnyciąg musi być odpowiednio długi.