Szyfrowanie app.config

0

Witam,

Poszukuję rozwiązania na zaszyfrowanie <connectionstring>, który będzie również skuteczny na innych maszynach.

Wykonałem całą procedurę w oparciu o "aspnet_regiis.exe -pef" i oczywiście otrzymuje pełne szyfrowanie.

Problem polega na tym, że przy uruchomieniu programu na innym komputerze ze względu na brak odpowiedniego klucza, wywala błąd - co jest oczywiste.

Nie chcę eksportować swojego klucza do każdej instalacji, ponieważ będzie można przy jego wykorzystaniu odszyfrować plik app.config

Będę wdzięczny za każda pomoc jak to rozwiązać?

2

Jeśli chcesz umożliwić korzystanie z zaszyfrowanych danych na obcym sprzęcie, to musisz się liczyć z tym, że taka osoba będzie w stanie wyciągnąć connection string.

0
enedil napisał(a):

Jeśli chcesz umożliwić korzystanie z zaszyfrowanych danych na obcym sprzęcie, to musisz się liczyć z tym, że taka osoba będzie w stanie wyciągnąć connection string.

Jak zatem najlepiej ukryć / zaszyfrować dane wrażliwe (login / pass) w ścieżce ?

3

Zależy od usecasu, ale generalnie to co wymyślił(e|a)ś brzmi jak zły design - zamiast łączyć się do bazy danych bezpośrednio, powinno istnieć API do konkretnych rzeczy. Wtedy każdy klient by dostawał np. swój token JWT, który dawał by dostęp do operacji na danych, a connection string nigdy by nie opuścił serwera.

0
enedil napisał(a):

Zależy od usecasu, ale generalnie to co wymyślił(e|a)ś brzmi jak zły design - zamiast łączyć się do bazy danych bezpośrednio, powinno istnieć API do konkretnych rzeczy. Wtedy każdy klient by dostawał np. swój token JWT, który dawał by dostęp do operacji na danych, a connection string nigdy by nie opuścił serwera.

Założenie było takie, że użytkownik i tak ma ograniczone prawa tylko do "Select" nic więcej. Mimo to, że chciałem poukrywać/zaszyfrować (jakoś) dane wrażliwe.

0

enedil dobrze ci powidział, że potrzebujesz jakąś przeplotkę bo nie możesz mieć takich danych u usera. Ponieważ prędzej czy później ktoś i tak ci się dobierze do apliakcji i spróbuje z niej te informacje wyciągnąć

0

To się robi inaczej. Zakładając, że nie masz żadnego API wystawionego, bo nie musisz... Zakładając, że piszesz o aplikacji desktopowej - bo nie określiłeś tego

Aplikacja podczas instalacji na kompie pyta użytkownika o:

  • serwer bazy danych
  • dane dostępowe do bazy danych (user i hasło).

Dane potem mogą zostać zaszyfrowane i zapisane do rejestru.
O to Ci chodziło?

Aplikacja podczas uruchamiania odczytuje dane z rejestru, odszyfrowuje je i łączy się z bazą danych.

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