Używam programu NServiceBus z usługą MSMQ między moją aplikacją internetową a usługą i muszę mieć możliwość szyfrowania ładunku wiadomości, tak aby w przypadku wiadomości umieszczonej w kolejce lokalnie na serwerze sieci Web (host usługi nie działa), dane wrażliwe nie mogą być oglądane.Gdzie umieścisz klucz szyfrowania na publicznym serwerze?
Ponieważ serwer WWW jest dostępny publicznie, nie tylko wymagane jest szyfrowanie danych, które mogą być serializowane na dysku, ale także nie mogę przechowywać klucza szyfrowania na serwerze WWW.
Rozważałem użycie DPAPI do przechowywania klucza, ale ponieważ klucz byłby przechowywany na hoście, nie wiem jeszcze, czy to nie spełnia wymagań. Inną rozważaną przeze mnie opcją jest to, że po uruchomieniu aplikacji internetowej może zażądać klucza od usługi i przechowywać ją w pamięci przez cały okres istnienia puli aplikacji.
Nie musiałem już pracować z tym poziomem wymagań dotyczących szyfrowania i chciałbym dowiedzieć się, co robią inni, i uzyskać informacje zwrotne na temat wspomnianych wyżej pomysłów.
Cokolwiek robisz, zatrudnij konsultanta ds. Bezpieczeństwa, aby zweryfikować skuteczność swojego projektu/wdrożenia. Jeśli nie jesteś ekspertem w tej dziedzinie, łatwo jest popełnić błąd, a koszty tego błędu mogą być olbrzymie w porównaniu do kosztów płacenia komuś, kto pomoże ci to naprawić. cf. Systemy płatnicze Heartland. – jason
Nie wydaje mi się to problemem, który rozwiązuje asymetryczna kryptografia. – rook
Klucz asymetryczny zmniejszyłby co najmniej prawdopodobieństwo, że obserwator odczyta istniejący stan z dysku. Jednak z asymetrycznym kluczem w ręku obserwator mógłby użyć tego, by rozpocząć atak siłami brutalnymi. – stephbu