Szyfrowanie i bezpieczeństwo

0

Witam.

Piszę sobię teraz jeden programik i nie wiem jak rozgryźć jeden problem :0
Otóż nie wiem jak sprawdzać czy user podał odpowiednie hasło do pliku. O ile dobrze wiem to komponent, z którego korzystam, nie ma takiej funkcji jak sprawdzenie poprawności hasła :( No i tu zaczyna się problem. Najpierw wymyśliłem aby na końcu szyfrowanego pliku dodawać hash'owane hasło - po chwili namysłu doszedłem do wniosku, że pomysł lipny, bo można sobie wyciąć tego hash'a, a potem tylko brutalny atak (brute-force) i po hasełku :(

Jeżeli ma ktoś jakiś pomysł to bardzo proszę o podanie go. Wraz z jakimś przykładem (chociaż nie od razu kodem ;) )

Pozdrawiam

0
-=PcSA=- napisał(a)

bo można sobie wyciąć tego hash'a, a potem tylko brutalny atak (brute-force) i po hasełku

Eeee, tak to można każde hasło złamać, to tylko kwestia czasu.

A jak chcesz, żeby nie było wiadomo, w jakim miejscu jest zapisane hasło, to zapisuj je za każdym razem gdzie indziej, na podstawie np. jakiejś sumy kontrolnej hasła, czy innej zmiennej zależnej od hasła, a potem jak ktoś będzie otwierał plik i wpisywał hasło, to na podstawie tego hasła twój program skopiuje kawałek pliku, w którym jest zapisane hasło (zakodowane), potem zakoduje tym samym algorytmem hasło podane przez usera i porówna - jeśli będzie ok, to otworzysz plik, ale już z wyciętym fragmentem, w którym było zapisane hasło.

Wiem, że namieszałem, ale może zrozumiesz, o co mi chodzi.

0

zakoduj cały plik kluczem (hasło podane) i na koncu zapisz sumę kontrolną pliku przed zakodowaniem! W taki sposób są szyfrowane zip, rar itp.
CRC - wystarczy ze zrobisz sumę wszystkich bajtów pliku i xor tych bajtów.
Jeśli po podaniu poprawnego klucza (hasła) crc się zgadza z tym zapisanym na koncu pliku, oznacza to, że hasło jest poprawne i mozna przystąpić to odszyfrowywania.

Jesli ktoś chciałby oszukać i kombinować z crc to tylko zniszczy zawartość pliku.
Takowe szyfrowanie jest bezpieczne i łamanie metodą brute force klucza wiekszego niż 5-7 znaków trwa wieki. (na tej zasadzie działają zip_cracker, rar_crack itp)

0

berl : pradopodobnie będę musiał tak zrobić jak piszesz :( ale będzie roboty :(

maxwklb: crc odpada, bo to za długo by trwało, np. mam zaszyfrowany plik 500 MB. Najpierw muszę rozszyfrować do pamięci (czyli około 1,5 minuty), potem sprawdzam czy crc tego w pamięci zgadza się z tym na końcu pliku i dopiero wywalam. Chyba, że się to jakoś inaczej robi :) Akurat w temacie crc jestem zielony [green] tak więc napisz więcej o tym jeżeli możesz ;)

0

1. Crc robić tylko z części pliku! (nie z całego 500MB)
2. Oczywiście cały plik musi być zaszyfrowany (kluczem)!
3. odszyfrowywanie (kluczem) całego pliku dokonywać podczas jego zapisu na dysk!,
ale tylko wtedy gdy klucz jest poprawny (crc części pliku się zgadza)

[obliczenie crc dla całego dużego pliku jest bez sensu! wystarczy 1-2kilo (im wiecej tym dłużej trwa obliczanie, ale bezpieczeństwo wzrasta).
Plik (500MB) w całości musi być zaszyfrowany, wiec całego przejedź kluczem(hasłem)]

Dla przykładu ZIP podczas odszyfrowywania (dekompresji) CRC sprawdza w jej trakcie, dlatego czasami podczas dekompresji wyświetla np na końcu każdej dawki danych błąd CRC pliku.

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