Basic Security/_System2007.01.17 20:11

윈도우의 패스워드는 구조 자체가 취약하다. 얼마 전에 약 2GB의 정보를 가지고 윈도우의 어떤 패스워드라도 10분이면 크래킹할 수 있다고 발표한 연구 그룹이 있었다. 이러한 알고리즘은 그 파장을 염려해 발표되지는 않았으나, 윈도우 패스워드는 윈도우 95부터 매우 취약했으며, 발전된 알고리즘 역시 새로운 취약점이 계속 발표되었다.

윈도우 패스워드는 특이하게 패스워드의 길이에 관계없이 8비트가 하나의 블록을 형성한다. 이중 1 바이트는 패스워드 블록에 대한 정보를 담고 있으므로 실질적으로 패스워드 문자열을 저장하는 것은 7바이트, 즉 7개의 문자다. 따라서 패스워드가 'qwer1234' 일 경우에는 모두 8개의 문자이므로 두 개의 패스워드 블록을 형성하게 된다.

사용자 삽입 이미지

지금까지의 윈도우는 기본적으로 모두 위와 같은 형태를 지니고 있다. 하나의 패스워드 블록은 별도로 운영된다. 따라서 패스워드를 길게 하더라도 하나의 패스워드 블록의 길이인 7글자를 크래킹하는데 걸리는 노력이면, 패스워드가 아무리 길더라도 모두 풀 수 있는 것이다. 'qwer1234'의 경우에는 위에서 확인할 수 있듯이 'qwer1234'와 '4'로 나뉜다. 'qwer123'의 경우에는 쉽게 크래킹 되지 않을 수도 있겠으나 '4'의 경우에는 크래킹 하는데 몇 초도 걸리지 않는다.

이렇듯 윈도우에서는 사실상 7개의 글자로 이루어진 패스워드의 강도와 8개의 글자로 이루어진 패스워드의 강도가 같다고 봐도 무방하다. 즉, 윈도우에서 14개 문자 길이의 패스워드를 크래킹 하는 것은 7개의 문자 길이의 패스워드를 2개 크래킹하는 것과 같은 노력이 든다는 것이다. 결국 14개 글자로 이루어진 패스워드는 7개의 글자로 이루어진 패스워드보다 겨우 2배의 강도를 가지게 된다. 이러한 점이 윈도우 패스워드의 구조적인 취약점이다.

유닉스의 경우에는 이러한 패스워드 블록이 없으며, 7개의 글자로 이루어진 패스워드와 8개의 글자로 이루어진 패스워드의 강도 차이는 키보드로 입력할 수 있는 문자열의 개수를 곱한 수 만큼이다. 7개의 글자 뒤에 여러분이 선택할 수 있는 문자의 개수, 즉 약 100배 정도의 강도가 되는 것이다.

하지만 다행이 이러한 패스워드 강도는 공격자가 SAM 파일을 획득한 경우에만 해당된다. 원격에서 공격을 시도할 경우 윈도우에서도 유닉스와 마찬가지로 글자 수에 따라 강도가 커진다.

Posted by Proneer

댓글을 달아 주세요