Cześć
Tworzę aplikacje webową, która w założeniu ma być odporna na różne ataki i podatności, które są uwzględnione w liście TOP10 OWASP. W tym momencie walczę z "Sensitive Data Exposure". W celu prewencji, planuję zaszyfrować takie dane jak hasło użytkownika i jego numer konta.
O ile z pomocą frameworka Spring Security i algorytmu Bcrypt z hasłem poszło szybko, przyjemnie i bezproblemowo, o tyle z numerem konta jest inaczej. Problem wynika z tego, że chcę aby był on wyświetlany w panelu zalogowanego użytkownika. Funkcja więc nie może być jednokierunkowa, gdyż muszę ją przy wyświetleniu odszyfrować.
W celu zaszyfrowania numeru konta wymyśliłem że użyję algorytmu AES, gdzie kluczem będzie hasło(w formie jawnej) użytkownika. Jednak hasło w aplikacji jest przechowywane jako szyfrogram.
Powstaje więc pytanie, czy jest jakaś możliwość przechwycenia i użycia do odszyfrowania numeru konta, wartości hasła wpisywanej w formularzu logowania zanim zostanie przekształcona w szyfrogram? Wykorzystuję panel logowania udostępniony przez Spring Security.
Może macie jakieś inne pomysły na zaszyfrowanie numeru konta, lub lepszy pomysł na klucz do algorytmu?
Dziękuję za pomoc i zapraszam do dyskusji.