고급 RAR 비밀번호 복구가 RAR 비밀번호를 해독하는 데 왜 그렇게 느린가요?
RAR은 AES 암호화 기술을 사용하는데, 기술적으로 크랙하기가 꽤 어렵기 때문에 속도가 느린 것은 당연합니다.
현재 효과적인 방법은 비밀번호 사전과 결합된 무차별 대입 크래킹을 사용하는 것입니다.
1. 암호화된 파일의 일반적인 구조:
1. 파일 내용만 암호화되는 경우. 오프셋 14~15h는 암호화된 데이터의 시작 부분인 파일 헤더 끝까지의 검사 값이다. 파일 헤더의 파일 이름부터 파일 헤더 끝까지 8바이트의 솔트와 5바이트의 알 수 없는 영역(기능이 아직 알려지지 않음)이 암호화된 데이터 뒤에 고정 끝 문자열 c4 3d 7b가 옵니다. 00 40 07 00.
2. 헤더와 콘텐츠가 모두 암호화된 경우: 오프셋 14-15h는 salt2이고 꼬리도 한 번 나타납니다. 이어서 암호화된 파일 헤더(헤더의 중간과 꼬리는 salt1과 5바이트 알 수 없는 영역)와 암호화된 파일 내용(압축 후 aes 암호화), 마지막으로 salt2와 aes로 암호화된 고정단 문자열이 이어집니다. 참고: 솔트를 생성하는 함수는 두 번 호출됩니다.
2. 솔트 알고리즘을 간략하게 설명합니다.
1. SystemTime에서 FileTime을 가져옵니다.
2. FileTime의 두 DWORD를 각각 처리합니다.
3. hash_final 이후에 얻은 다이제스트의 처음 두 DWORD는 솔트입니다.
3. 암호화 과정:
1. 먼저 솔트를 유니코드 형식의 비밀번호에 연결한 다음 hash_final을 사용하여 aesinit, aeskey 및 10개의 라운드 키를 생성합니다.
2. 압축된 파일 내용 그룹 길이는 각 그룹마다 128비트이며, 암호화를 시작하기 전에 이전 그룹과 연결되어 aes 암호화에 참여할 수 있는 상태가 됩니다. .
4. 숨겨진 위험:
솔트가 무작위로 생성되기 때문에 aeskey와 라운드 키도 무작위이며 파일 암호화 결과도 무작위입니다. 이 변수를 사용하면 활용할 수 있는 공간이 제공됩니다. 그런데, 암호화된 데이터로부터 역추론을 통해 aeskey를 얻었으나 해싱을 통해 얻은 경우에는 되돌릴 수 없으므로 비밀번호를 알 수 없습니다. 가능한 유일한 방법은 암호화 프로세스 중에 비밀번호를 솔트에 저장하는 것입니다. 가역적 암호화 알고리즘을 사용하는 것이 가장 좋습니다. 이는 아무런 영향을 미치지 않지만 또 다른 의미 계층을 추가할 뿐입니다.