Wpis z mikrobloga

Potrzebuje zabezpieczyć ciąg znaków w aplikacji jakimś szyfrowaniem, padło na PGP( tak sobie wymyśliłem) tyle że klucz prywatny w takim przypadku musi być zaszyty w kodzie i szukam biblioteki która mi pomoże coś takiego ogarnąć. Większość bibliotek w takim przypadku oferuje tylko wczytanie z pliku klucza, klucz wolałby mieć zaszyty i zaciemniony w kodzie. Ma zdecydowanie utrudnić analizę pliku i wiem że jak ktoś chce to to złamie

Znalazłem kilka takich jak OpenPgpLib, ChoPGP

#programowanie #szyfrowanie #bezpieczenstwo #csharp #pgp
  • 13
@bbeniutek: Dane muszą przebyć taką drogę

Plik ----> Oprogramowanie na PC -----> Ficzyne urządzenie,

testowa wersja działała bez żadnych zabezpieczeń i po prostu plik został przez oprogramowanie wczytany na urządzenie. Aktualnie jest zrobione Szyfrowanie na urządzeniu a w zasadzie deszyfrowanie odbywające się w urządzeniu i aby jeszcze bardziej utrudnić próbę odczytania co jest w pliku chce wypuszczać zaszyfrowany plik PGP i odszyfrować kod dla urządzenia tak aby następnie przesłać je do
@bi-tek: Strasznie to skomplikowanie opisałeś ;P Skoro klucz i tak chcesz zaszyć w kodzie, to po co krypto asymetryczne? Nie możesz po prostu jakimś symetrycznym algorytmem tego zaorać typu AES? Za bardzo nie widzę potrzeby posiadania pary kluczy prywatnego i publicznego do Twojego zastosowania
@olbrzymi_grzyb: Być może temu że się szyfrowanie asymetrycznym trochę zachłysnąłem. Młody jestem (komercyjnie nie programuje 10 lat :D tylko krócej) , staram się wszystko jak najlepiej zrobić i nie #!$%@?ć kolokwialnie mówiąc. AES też wydaje się ciekawy i z tego co widzę to C# ma gotowe biblioteki od M$,
@terion: Gdybym mógł trzymać klucz prywatny na urządzeniu to nie było by żadnego pytania tyle że ja nie odpowiadam za implementacje oprogramowania urządzenia oraz moc obliczeniowa w trakcie przesyłania(a nawet po) nie pozawala na zrobienie tego w sensownym czasie.

Dzięki za ten przykład, z chęcią sobie go przeanalizuje.

Klient ma otrzymać plik z aktualizacją danych urządzenia i móc go sam wgrać na urządzenie. Tyle że te dane nie powinny być dostępne
szyfrowanie ma utrudnić analizę tego drugiego zaszfyrowanego pliku.


@bi-tek: To w takim razie o ile dobrze rozumiem szyfrowanie asymetryczne nie ma tu sensu.
Jeśli ktoś zdeasembluje aplikację to i tak sobie wszystko odszyfruje, a czy to jest klucz prywatny czy symetryczny to bez znaczenia.
Nie wiem do czego masz dostęp na tym urzadzeniu, ale moze jakis remote update? Na zasadzie ze gościu pracuje pracuje wywala mu okienko „nowe dane sa gotowe do wczytania, czy kontynuowac?” I po sieci leci mu to
W sumie jeszcze jedno pytanie, jest jakaś inna droga aby to zrobić lepiej ?


@bi-tek:
Jeśli nie masz żadnego wpływu na oprogramowanie na urządzeniu to wiele nie zrobisz.
To jest bardziej obfuskacja niż enkrypcja, bo dajesz klientowi zaszyfrowane dane (plik aktualizacji) oraz klucz deszyfrujacy (aplikacja). Wszystko opiera się na tym, że klientowi nie będzie na tyle zależało na podgladaniu żeby chciał deasemblowac aplikacje.

Jedyna rada to możesz użyć jakiegoś obfuskatora żeby