[C# / Xamarin] Szyfrowanie danych z Json'a

[C# / Xamarin] Szyfrowanie danych z Json'a
DE
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:10
0

Witajcie.
Tworzę właśnie aplikację na Xamarina, która będzie pobierała z sieci plik .html z kodem json'a. Kod ten będzie zawierał dane do API zewnętrznych witryn oraz hasła tak więc nie mogę go w "zwykłej" postaci wrzucić na serwer.

Chciałbym zastosować coś takiego:
Aplikacja 1. Zwykła aplikacja konsolowa C#, która będzie szyfrowała string z json'em.
Aplikacja 2. Odbiera plik html z serwera z zaszyfrowanym json'em, odszyfrowuje go a następnie deserializuje na obiekty.

Ogólnie jestem początkującym amatorem programowania i nie miałem wcześniej styczności z szyfrowaniem. Na razie zastosowałem się to kodu z tego Linku. Jednak użyty algorytm wymaga jednego i tego samego klucza.
Macie jakieś rady jak sobie z tym poradzić, ewentualnie co mogę innego zastosować by osiągnąć cel ?

N0
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:Kraków
  • Postów:767
0

Dla każdej instancji aplikacji mobilnej generuj klucze prywatne/publiczne. Apka mobilna wysyła do serwera klucz publiczny. Twoja konsolówka szyfruje kluczem publicznym wiadomość i odsyła do apki mobilnej. Apka mobilna, używając klucza prywatnego, deszyfruje wiadomość.

Generowanie kluczy publicznych/prywatnych musi odbywać się po stronie instancji aplikacji.

W aplikacji konsolowej musisz trzymać listę kluczy publicznych każdej z instancji aplikacji mobilnej oraz jakieś jej ID. Jest to potrzebne abyś wiedział którego klucza publicznego użyć dla danej aplikacji. Inne rozwiązanie: serwer nie trzyma listy tych kluczy tylko listę wszystkich instancji które do tej pory się zgłosiły, po zaszyfrowaniu wiadomości, aplikacja konsolowa odpytuje każdą instancję aplikacji mobilnej po jej klucz publiczny, szyfruje i wysyła.


Pomogłem? To dobrze :)
edytowany 2x, ostatnio: ne0
DE
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:10
0

Dzięki ne0 za odpowiedź. Jednak moje potrzeby nie są tak wygórowane :)
Chodziło mi aby funkcjonowało to tak:
Apka konsolowa, pobiera plik .html z PC, następnie szyfruje go, ręcznie wstawiam go na serwer (aby pobrać z adresu www). Następnie apka mobilna pobiera ten plik, deszyfruje i konfiguruje się według niego.

Udało mi się to osiągnąć tworząc szyfrowanie na PC z góry przypisanym kluczem i wektorem, tych samych danych użyłem do odszyfrowania danych w aplikacji mobilnej.

Zabezpieczenie raczej słabe, ale jeśli laik zobaczy losowy ciąg znaków na stronie .html to od razu ją zamknie :)

Więc ogólnie temat do zamknięcia (chyba że ktoś mi zaproponuje lepsze i łatwe rozwiązanie inne niż moje).

M9
Umieszczanie jednego stałego klucza w aplikacji to cienki pomysł, bo wtedy szyfrowanie nie za bardzo ma sens. Dopóki nie wygenerujesz kluczy i nie wymienisz ich między serwerem a aplikacją to szyfrowanie w ogóle nie ma sensu.
DE
Szyfrowanie ma tylko na celu uniemożliwić potencjalnemu użytkownikowi odczytanie pliku z adresu www.
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 3 godziny
0

Jeżeli koniecznie chcesz użyć pojedynczego klucza, możesz wykorzystać np. taką wersję AES - to jest .NET Standard 1.3, więc zadziała zarówno w aplikacjach konsolowych, jak i w Xamarinie.

DE
Dzięki ! Przyjrzę się temu wpisowi. Nie upieram się przy pojedynczym kluczom. Jednak nie widzę innej opcji na zastosowanie szyfrowania. Aplikacja nie łączy się w żaden sposób z serwerem. Pobiera tylko jeden plik z www przez WebClient'a.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.