it-swarm-korea.com

비밀번호를 분할하면 어떤 이점이 있습니까?

LANMAN (LM) hash 에 대해 읽었으며 알고리즘의 특정 부분에 대해 궁금합니다.

LM 해시는 다음과 같이 계산됩니다.

  1. 사용자의 ASCII 비밀번호는 대문자로 변환됩니다.
  2. 이 비밀번호는 14 바이트로 널로 채워집니다.
  3. 14 바이트 암호는 두 개의 7 바이트 반으로 나뉩니다.
  4. 이 값은 두 개의 DES 키, 각 7 바이트 반에서 하나씩)를 만드는 데 사용됩니다.
  5. 두 키 각각은 상수 ASCII 문자열 "KGS! @ # $ %"을 DES 암호화하는 데 사용됩니다. 두 개의 8 바이트 암호 텍스트 값이 생성됩니다.
  6. 이 두 암호 텍스트 값은 LM 해시 인 16 바이트 값을 구성하기 위해 연결됩니다.

링크 된 Wikipedia 기사에 요약되어 있고 다른 곳에서 이야기 한 보안 취약점이 많이 있지만 특히 3 단계에서 6 단계에 관심이 있습니다.이 디자인의 원인이 궁금합니다. 암호를 분할하고 두 개의 반쪽을 개별적으로 암호화 한 다음 두 개의 반쪽을 결합하여 하나의 해시를 다시 형성하면 실질적인 보안 이점이 있습니까? 아니면 "불분명 한 보안"의 예일까요?

45
Bill the Lizard

암호를 해시로 나누는 것이 not 이점이 아닙니다. 오늘날 더 이상 관련이없는 모호한 이유로 수행되었습니다.

LanMan 해시가 이러한 방식으로 작동하는 이유는 LanMan 해시가 DES를 기반으로하기 때문입니다. DES 56 비트 키를 허용하므로 7 바이트 청크를 DES 키를 형성하는 것으로 간주하는 것은 당연합니다. DES 한 번에 7 바이트 이상 해시하려면 DES에서 더 긴 암호를위한 해시를 구축 할 방법이 필요하므로 LanMan 해시 설계자는 암호를 두 개로 나누기로 결정했습니다. 반쪽.

오늘날 우리는 이런 식으로 비밀번호 해시를 만들지 않았습니다. 우리는 Bcrypt, Scrypt, PBKDF2 또는 이와 동등한 것을 사용하거나 SHA256과 같은 기존 프리미티브를 기반으로 유사한 것을 빌드합니다. 그러나 당시 Bcrypt, Scrypt, SHA256 등은 존재하지 않았기 때문에 LanMan 설계자가 이런 종류의 치명적인 오류를 만들 수있는 기회를 열었습니다.

현대 표준에 따르면 LanMan 해시는 초라한 디자인입니다. manymanyattacks 가 있습니다. 매우 약합니다. LanMan 해시를 피할 수 있다면 오늘날 아무도 사용하지 마십시오. (다른 사람들이 지적했듯이, 보안은 당시의 표준으로도 어리 석습니다. 공정한 요점입니다.)

38
D.W.

암호를 나누는 것은 advantage가 아니라 weakness입니다. 각 비밀번호를 독립적으로 반으로 나눌 수 있습니다. ASCII 문자 (32에서 126까지의 코드 포함)로 시작한 다음 소문자를 제거하면 암호 알파벳에서 127-32-26 = 69 개의 ​​가능한 문자로 끝납니다. 697 가능한 반쪽, 어느 정도 243. 다시 말해, 이것은 무차별 대입으로 다루기 쉽습니다. 사전이 필요하지 않습니다.

이것은 모호함을 통한 보안이 아닙니다. 이것은 무능함으로 인한 불안감입니다.

편집 : "강력한 짐으로 매우 다루기 쉬운"또한 다양한 최적화를위한 길을 열어줍니다. LanMan은 소금에 절이지 않으므로 미리 계산 된 테이블이 효율적일 수 있습니다 (테이블 구축 비용 once, 그러면 공격 several half-passwords- one password is two half-passwords이므로 실제로는 단일 암호로도 가치가 있습니다. 2003 년에 Philippe Oechslin은 개선 된 시간 메모리 트레이드 오프 ( "Rainbow table"이라는 용어를 만든 기사) 및 LanMan 암호 크래킹을위한 테이블 계산을 게시했습니다. 그는 영숫자 암호 (문자 및 숫자, 특수 부호는 없음)로 제한하므로 237. 그러면 테이블의 누적 크기는 1.4GB이며 크래킹 효율은 99.9 %이며 공격 시간은 1 분 미만입니다.

2로43 공간, 즉 64 배 더 큰 테이블 크기와 공격 시간은 모두 16 배 증가합니다 (642/3), 약 23GB 정도 (오늘의 디스크에는 그다지 중요하지 않음)와 15 분의 공격에 대해 이야기하고 있습니다. 실제로 병목 현상이 하드 디스크에서 조회되므로 스마트 공격자는 기계식 하드 디스크보다 32 배 빠른 속도로 조회를 수행 할 수있는 SSD를 사용합니다 (32GB SSD 비용은 70 $ ...). 테이블 구축 노력 (일회성 지출)은 단일 PC에서 몇 주가 걸리거나 괜찮은 클라우드에서 며칠이 걸릴 수 있으므로 다소 저렴합니다.

분명히 , 그러한 테이블은 이미 존재합니다 ...

54
Thomas Pornin

무언가가 더 복잡하다고해서 반드시 더 안전하게 만들지는 않습니다. Windows 상자에서 암호 크래커를 실행하여 암호를 8 개의 문자열로 나누는 것처럼 보였고 각 문자열을 다른 문자열과 독립적으로 분리하여 프로세스를 매우 빠르게 진행했습니다.

따라서 실제적인 관점에서 암호를 나누는 것은 유익하지 않으며 @Thomas는 이미 수학적으로 유익하지 않은 이유를 다루었습니다.

3
MasterZ