Czy istnieją jakieś błędy w zabezpieczeniach podczas szyfrowania danego klucza przy użyciu AES w trybie CBC i przy użyciu IV (oczywiście)?Czy bezpieczne jest szyfrowanie ciągu za pomocą tego samego ciągu znaków, co klucz?
Zasady są przestrzegane: klucz jest tajny, a IV jest publiczny (ponieważ nie wpływa to na bezpieczeństwo szyfrowania).
Jednak potencjalny intruz będzie znał (ponieważ może uzyskać dostęp do kodu źródłowego), że ciąg jest zaszyfrowany przy użyciu siebie jako klucza.
Mój sąd nie widzi żadnych problemów, ale próbuję się upewnić.
Dziękuję.
EDIT - szczegóły zadania, mam nadzieję, że będę w stanie przekazać je w poprzek wyraźnie, że nie jest jeszcze jasne dla siebie:
Mój system używa szyfrowania do przechowywania pewnych wartości w tabelach MySQL . Szyfrowanie odbywa się na kodzie PHP (nie wbudowanym w AES MySQL). Oczywiście potrzebuję tajnego klucza, który musi zostać skonfigurowany przez administratora systemu, tylko RAZ, podczas konfiguracji systemu. Ma to kluczowe znaczenie, ponieważ zmiana klucza po zapisaniu zaszyfrowanych danych spowoduje, że dane nie będą odszyfrowywane.
Administrator może ustawić tajny klucz, po prostu edytując plik skryptowy PHP przez FTP (lub cokolwiek innego). Ale tego nie chcę.
Potrzebuję skryptu instalacyjnego, w którym administrator wybiera tajny klucz, który zostaje zaszyfrowany i zapisany w tabeli. To prawda, że ważnym punktem, który został zrobiony poniżej, jest to, że potrzebujesz klucza do odszyfrowania klucza ... Nie doszedłem tak daleko w moim rozumowaniu, byłem na etapie sprawdzania, czy szyfrowanie klucza samo w sobie klucz jest nadal bezpieczny.
Jeśli masz jakieś pomysły dotyczące powyższego, będzie to bardzo cenne.
Dzięki.
Najpierw zgodziłem się z @Piskor, "o co chodzi?" Ale widzę, że jeśli zaszyfrowałeś sobie hasło, a następnie zapisałeś wynikowy tekst, możesz zweryfikować poprawne hasło, próbując odszyfrować tekst z dostarczonym hasłem. Czy to jest podobne do twojego przypadku użycia? – Greg
Czy to tylko ja lub czy twój tytuł i pytanie są inne? : S –
@Greg Jeśli on właśnie sprawdza, czy hasło jest poprawne, lepiej byłoby przechowywać skrót kryptograficzny hasła. Skasujesz dane wejściowe użytkownika, a jeśli wartości skrótu są zgodne, wiesz, że hasło wejściowe było poprawne. – JMarsch