Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [RSA] Zabezpieczenie strony w PHP licencją
ZaqU
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

Ostrzeżenie: (0%)
-----


Cześć,

Mam dosyć nietypowy i na pewno trudny temat, który od kilku miesięcy mnie intryguje. Dużo czytałem o RSA i ogólnie o szyfrowaniu, jednak nie potrafię odwrócić całej tej procedury i dostosować jej do moich potrzeb.

Ale po kolei! Załóżmy, że mamy stronę który chcielibyśmy zabezpieczyć za pomocą licencji - pliku tekstowego zawierającego zaszyfrowaną informację o:
- dacie ważności licencji,
- osobie której została przydzielona,
- domenie pod którą będzie działać.

W logice biznesowej zaszywamy ukrytą funkcję która sprawdza licencję i jeśli wszystko się zgadza, to strona się wyświetla, w przeciwnym razie zwraca exit(), wyjątek czy inną wymyślną rzecz. Kwestię tego jak utajnić logikę biznesową aby ktoś jednym komentarzem nie wyłączył tego sprawdzania pomijamy - jest na to wiele sposobów, a i nie to jest tematem tego wątku.

Na czym polega haczyk? A no na tym, że ma to być odwrócenie RSA. O ile w RSA mamy dostępny dla każdego klucz publiczny (szyfrowanie) i zastrzeżony tylko dla właściciela klucz prywatny (deszyfrowanie), o tyle tutaj chciałbym uzyskać w 180 stopniach odmienny efekt:

Każdy może odszyfrować ukrytą treść licencji (a przynajmniej wystarczy, że w kodzie aplikacji będzie zaszyta odpowiednia funkcja która to zrobi), jednak tylko ja chcę mieć możliwość jej zaszyfrowania, a więc udzielania licencji. Ważne jest to, aby można było bez przeszkód zweryfikować autentyczność zaszyfrowanej licencji, tak aby nie można jej było wygenerować ręcznie.

Czy macie pomysł na to, jak taki problem rozwiązać w praktyce? Może ktoś słyszał o podobnych technikach szyfrowania i zechce podzielić się jakimś ciekawym artykułem? (IMG:style_emoticons/default/smile.gif)

Edit: Czy przy wykorzystaniu RSA posiadając szyfr, oryginalną wiadomość i klucz prywatny można odtworzyć klucz publiczny?

Ten post edytował ZaqU 3.01.2018, 21:02:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Jeżeli nie masz doświadczenia z szerokopojęta kryptografią nie próbuj robić niczego samemu - nie skończysz na tym za dobrze.
2. https://stackoverflow.com/questions/1820311...ers-have-the-sy
3. W praktyce jeżeli chcesz mieć pewność (czy właściwie większe prawdopodobieństwo), że nikt nie uzyska dostępu do Twojego oprgoramowania nie udostępniaj go. Udostępnij je jako całą usługę, tj. samodzielnie zajmuj się jej utrzymaniem dla poszczególnych klientów.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Możesz użyć JWT. Wiem że to nie RSA ale:

- Tylko ty masz sól
- Każdy może zdekodować zawartość bo znana jest metoda hash.
- każdy może to zmodyfikować ale ty podczas sprawdzania mając sól weryfikujesz czy dane+sól => hash == sumą kontrolną.

Bardzo prosty mechanizm ale może dać to czego chesz.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:05