2012-11-25 5 views
1

문자열의 MD5 해시를 생성 한 다음 25 자까지 자르면 브루 트 포스 할 수 있습니까? 해시를 소금으로 칠하는 것이 비교적 안전합니까?잘린 MD5 해시를 브 루핑 할 수 있습니까?

+1

이것은 http://crypto.stackexchange.com/에서 더 좋은 질문이 될 수 있습니다. 그러나 이해한다면 충돌 횟수를 늘리면 브루투 포스 (bruteforce)가 쉬워집니다. – JeffS

+0

어떤면에서는 무지개 테이블 (예 : 데이터베이스에 RawData-Hash 쌍을 저장하지만 일반적으로 사용되는 해싱 알고리즘 만 사용)과 같은 경우 유용 할 수 있습니다.무지개 테이블에 대한 알 고스를 확인하는 좋은 사이트, 해싱 보안에 대한 아주 좋은 문서 : https://crackstation.net/. –

+0

security.SE 질문 [Hashcat 해밍 해시 해시 해결] (https://security.stackexchange.com/questions/101765/hashcat-solving-truncated-hash)도 참조하십시오. 16 문자로 잘라내어 "Half MD5"해시 유형을 사용하는 방법을 자세히 설명하는 메모를 남겼습니다. –

답변

0

저는 암호 전문가는 아니지만 잘라내는 것이 소금물 처리와 다소 비슷하다고 생각합니다. 소금을 칠할 때 무작위 데이터로 입력 데이터를 채운 다음 해시 값을 생성합니다. 그래서 본질적으로,

hash = md5(pass + salt) 

이 임의 소금은 분명히 당신이 암호로 "암호"를했다 그래서 만약 해시 값은 소금, 반환에 영향을, 당신의 해시 값은 암호에서 파생 된 해시 값보다 완전히 다른 것 , "소금"없이 "암호". 즉, 공격은 소금물이 어떻게 구현되었는지 추측 할 필요가 있으며 소금물/암호 조합을 무차별 적으로 수행해야합니다. 그들은 어떻게 든, 그들은 다음 강제로 비밀 번호 + 소금 값을 짐승 필요가 있음을 추측 할 수 있다면 그래서 공격자는 ...

hash = md5(salt + pass) or hash = md5(pass + salt) ? 

그것을 문자열에 소금이 배치 된 곳을 알고, 그래서이었다 것이다.

hash = md5(password + 1) 
hash = md5(password + 2) 
hash = md5(password + 3) 
.... 
hash = md5(password + ;fioja4ofu4fioaejfio) 
.... 
hash = md5(password2 + 1) 
.... 

매우 계산 집약적입니다!

해시를 자르면 어쩌면 많은 일을하지는 않지만 여전히 수행 할 추측 작업이 있습니다. 당신이 얻는 md5 해시 값을 고려해보십시오. 단지 몇 개의 문자 만 변경하면 해시가 완전히 바뀌게됩니다. 예를 들어

,

cat = d077f244def8a70e5ea758bd8352fcd8 
cat1 = a980d10665f268b0ec6c13ebea43034f 

대부분의 입력이 독점적으로 고유 한 해시 값을 가질 것이라고 말할 안전합니다. 자르기가 정적이라면 32 자에서 25 자까지자를 수 있습니다. 공격자는 잘린 부분이 어디서 어떻게 발생하는지 알아야합니다. 그것은 끝이나 앞에서 얇게 썰어 졌습니까? 해시에서 임의로 선택 했습니까? 그러나 해시 값이 일반적으로 매우 다를 경우 일부 확률을 구현할 수 있습니다.

예를 들어 고양이 해시를 가져옵니다. 끝에서부터 7자를 자릅니다.

cat = d077f244def8a70e5ea758bd8352fcd8 
cat = d077f244def8a70e5ea758bd8 

이 해시가 일반적으로 완전히 다르기 때문에 잘라내기를 사용하면 많은 도움이되지 않습니다. 무작위 입력 데이터의 전체 해시에 대해 절단 된 해시를 검사하여 x % 일치 또는 다른 것이 있는지 확인하는 간단한 스크립트를 작성할 수 있습니다. 내가 해시 한 고양이와 자른 해시가 내 고양이 해시의 32 자 중 25 자와 일치하는 경우, 잘린 해시가 고양이라는 단어에 대한 것으로 확실하게 말할 것이며 나머지 부분은 잘린 부분 만 채울 것입니다. 고양이 해시.

내가 여기에서 말한 모든 것은 내 마음에 단지 나를 뱉어 내뱉는 것입니다. 나는 암호/보안 전문가가 아닙니다. 나는 무작위적인 보안 물건을 다루기 만한다. 그것을 가져 가거나 그것을 남겨주세요 :) 그것이 약간의 명확성을 가져 오기를 바랍니다.

Soooo, 나는 오히려 잘라 내기보다는 내 자신의 소금 솔루션을 구현할 것입니다. 방의 몇 바이트를 절약하기 위해 잘라내기를 원한다면 잘라내 기보다는 소금을 사용하십시오!

관련 문제