패스워드 크랙
패스워드 크랙, 패스워드 분쇄(영: password cracking)란, 컴퓨터・시스템으로 보존 혹은 전달되는 데이터로부터 패스워드를 산출하는 분쇄 수법을 말한다.일반적인 어프로치는, 유추 한 패스워드를 반복해 시험한다고 하는 것(전원 시합 공격)이다.패스워드 크랙의 목적은, 잊은 패스워드를 산출하기 때문에 있거나[1], 시스템으로 허가되어 있지 않은 액세스권을 얻기 때문에 있거나 간단하게 산출할 수 있는 패스워드가 사용되지 않은가 시스템 관리자가 예방적으로 체크하기 위해(때문에)이기도 하다.파일 단위의 패스워드 크랙으로서는, 판사가 디지털 형식의 증거품에 액세스 하기 위해서 사용한다고 하는 케이스가 있다.즉, 시스템에의 액세스는 할 수 있지만(패스워드를 걸칠 수 있었던) 특정 파일에의 액세스가 거부된다고 하는 경우이다.
목차
주된 공격 방법
취약한 암호화
보존한 패스워드를 보호하는 것에 즈음해, 설계의 나쁜 패스워드 해시법을 시스템이 사용하고 있는 경우, 적절히 생각할 수 있던 패스워드이든지, 공격자는 그것을 산출하는 취약성을 찌를 수 있다.일례로서 Microsoft Windows XP 및 그 이전의 버전이 표준으로 사용하고 있는, 14 문자 이하로 패스워드를 보존하는 LM해시를 들 수 있다.LM해시는 패스워드를 모두 대문자로 변환해, 그것을 2개의 7바이트열로 나누어 따로따로 해시치를 요구한다.즉, 각각을 개별적으로 공격할 수 있다.
MD5, SHA-512 PA, SHA-1, RIPEMD-160이라고 한, 보다 강력한 해쉬 함수를 사용한 패스워드 암호법은, 총당 공격이나 사전 계산에 대해서 아직 내성을 가지고 있다.그 종의 공격은, 해쉬 함수를 역산하는 것은 아니다.그렇지 않고, 대량의 단어나 랜덤인 문자열의 해시치를 요구해 그 결과를 대상의 패스워드 해시치와 비교하는 것이다.MD5-crypt[2]나 bcrypt와 같은 현대적 수법은, 의도적으로 계산량이 많은 알고리즘을 사용하고 있어 일정시간내에 공격자가 시행할 수 있는 후보가 비교적 적게 되도록(듯이) 하고 있다.후술 하는 소금은 사전 계산 공격의 난이도를 비약적으로 올리는 것이어, 경우에 따라서는 모든 공격에 견딜 만하는 것이다.그러나 그 사용은, 각각의 케이스에 대해 평가해야 한다.
기존의 암호 해시 알고리즘의 분석을 진행시키는 것은 항상 가능해서, 오늘은 충분히 내성을 가지는 해시여도, 내일도 그렇다고는 할 수 없다.오랫동안 안전하다고 생각되고 있던 MD5와 SHA-1은, 효율적으로 행해지는 총당 공격에 대해서는 충분하지 않은 것이 나타나고 있다.(암호 해시와는 다른) 암호화 알고리즘에 대해서도, 같은 일을 말할 수 있다.(기존의 총당 공격에 대해 아직 내성이 있다고 하는 정도에 대해) DES는 이미 찢어지고 있어 그(56비트라고 한다) 짧은 키는 총당 공격에 대해서조차 내성이 없는 것이 명확하고 공공연하게 아는 만큼, 컴퓨터의 성능은 올라 오고 있다.이러한 방법으로 공격으로부터 보호되고 있는 패스워드는 머지않아 내성을 실 없는, 거기에 대응하지 않는 패스워드는 폭로해지게 될 것이다.길게 사용되어 온 구조여도, 오늘의 시큐러티 문제에 대해서 언제까지나 무연으로 있을 수는 없다.
유추・사전・총당에 의한 공격
유추 공격・사전 공격・총당 공격은, 분명히 구별할 수 있는 것은 아니다.패스워드 후보의 리스트를 순서에 시험해 간다고 하는 점으로, 그것들은 닮고 있다.그 리스트는 명확하게 순서 지을 수 있고 있을지도 모르고, 어떠한 룰에 따라서 모아지고 있을지도 모르다.그것은 타겟의 정보를 일괄로 한 것일지도 모르고, 언어학적인 관점으로부터 만들어졌을지도 모른다.상기의 3개의 어프로치 각각, 특히 사전 공격은, 남는 2개의 공격 방법과 공격 범위를 포함한 것으로서 사용되는 것이 많다.
유추 공격
타겟의 개인정보에 관한 지식으로부터, 공격자 자신이 패스워드를 유추 하는 일이 있다.유추 될 것 같은 패스워드예로서 다음과 같은 것이 있다.
- 패스워드 없음
- "password","passcode","admin"및 거기에 비슷하는 것
- QWERTY 키보드의 열을 취한 것—「QWERTY」그 자체이거나, 「ASDF…」혹은 「UIOP…」
- 유저명 혹은 로그인명
- 연인, 친구, 가족, 애완동물의 이름
- 자신, 친구, 가족의 출신지, 생일
- 자신, 친구, 가족의 차의 넘버 플레이트
- 회사의 전화 번호, 주소, 그 외 가장 많은 것이 휴대 전화의 번호
- 마음에 드는 유명인
- 상기의 어떤 것인지를 조금도 지타 것.예를 들면 말미에 숫자를 부록(특히"1"이 많다), 혹은 문자의 차례를 바꿔 넣거나.
금일, 타겟의 개인정보는 온라인상의 여러가지 정보원으로부터 취득할 수 있다.공격자가 타겟과 안면이 있는 경우도 이와 같이 정보를 얻을 수 있을 것이다.예를 들면 1978년에 Yale Law School를 졸업한 것으로부터"YaleLaw78"라고 하는 패스워드를 사용하고 있었을 경우, 악의를 가진 거래 상대가 패스워드를 유추 해 버리는 것이 있을 수 있다.
유추 공격은 특히, 이용자 자신이 패스워드의 초기화를 행할 수 있는 시스템으로는 효과적이다.예를 들면 2008년 9월에, 알래스카 주지사로 미국 부통령 후보가 된 사라・페이 인의 Yahoo 메일이, 누군가에 의해서 부정 액세스 되는 사건이 있었다.범인은 3개 있던 인증용의 질문 가운데, 그녀의 우편번호와 생일을 조사해 한층 더 그녀가 남편과 만난 장소를 추측할 수 있었던 것이다[3].
사전 공격
유저는 자주 취약한 패스워드를 선택하는 것이다.위험한 패스워드가운데는, 우에로 두었지만 외, 사전에 실려 있는 1 단어, 자신의 성씨나 이름, 너무 짧은 패스워드(6-7문자 이하는 너무 짧으면 통상 생각할 수 있다), 스핀이 너무 없자마자 유추 가능하게 되는 패스워드(예를 들면 모음과 자음을 바꿔 넣은 것)를 들 수 있다.40년에 걸쳐 반복해 행해진 조사에 의하면, 유저가 선택하는 패스워드의40%는, 사전이나 경우에 따라서는 개인정보도 사용해 실행되는 세련된 분쇄 소프트의 전으로는 금새 알아 버리는 것이 밝혀지고 있는[4].
피싱에 의해서 취득된 MySpace의 패스워드를 조사했는데, 그러한 3.8%는 사전에 실려 있는 1 단어이며, 다른12%는 한단어의 말미에 숫자를 한 개 더한 것이었다.그 숫자의 것2/3은"1"이었던[5].
유저중에는, 어카운트 취득시에게 줄 수 있었던 초기 패스워드를 변경하지 않고 방치하는 사람도 있다.시스템 관리자안에는, OS나 하드웨어의 초기 패스워드를 변경하지 않고 방치하는 사람도 있다.나쁜 의미로 유명한 것이 「FieldService」라고 하는 유저명과 「Guest」라고 하는 패스워드의 편성이다.시스템 설정을 할 때로 이것을 변경하지 않았던 경우, 그 시스템의 지식을 가지는 누군가가 그 패스워드를 악용 하고 있을지도 모른다.그 종의 멘테넌스용 어카운트는, 일반 유저의 어카운트보다 큰 액세스권한을 대개는 가지고 있다.초기 패스워드의 일람은 인터넷상에서 찾아낼 수 있는[6][7].동성애자 리・막키논은 「군용 컴퓨터에 대한, 전에 없이 대규모 분쇄」[8]을 행했다고 해서 합중국 정부로부터 고발되었지만, 그는 하늘의 패스워드를 찾는 Perl 스크립트를 사용하는 것만으로 군용 네트워크에 침입할 수 있었다고 주장하고 있다.바꾸어 말하면, 그 네트워크에는 전혀 패스워드를 설정하고 있지 않는 컴퓨터가 얼마든지 있었던 것이다[9].
타겟의 개인정보를 바탕으로, 있을 수 있을 것 같은 패스워드의 패턴을 생성하는 분쇄 소프트가 존재하는[10][11].
전원 시합 공격
마지막 수단의 하나로서 있는 것이, 생각할 수 있는 「모든」패스워드를 시험하는, 이른바 전원 시합 공격이다.이론적으로는, 시행 회수에 상한이 없다고 한다면, 전원 시합 공격은 반드시 성공한다.왜냐하면 유효한 패스워드를 매듭짓기 위한 룰은 공으로 되고 있을 필요가 있기 때문이다.그러나 패스워드가 길어지는 것에 따라, 생각할 수 있는 패스워드의 수도 증가한다.패스워드가 비교적 짧기 때문에 않으면, 전원 시합 공격은 비현실적이라고 생각되지만, concurrent processing이라고 하는 수법을 사용하면 패스워드를 산출하는 시간을 단축하는 것은 가능하고, 그것은 사용하는 컴퓨터(CPU)의 수에 반비례 한다.이 공격 방법은, 공격자가 패스워드의 해시치와 해시 알고리즘을 알고 있는지 어떤지로 크게 양상이 달라, 알고 있는 경우는 「오프 라인 공격」(보호된 대상에 접속하고 있을 필요는 없다), 모르는 경우는 「온라인 공격」이라고 불린다.오프 라인 공격이 통상 훨씬 용이하다.왜냐하면 패스워드의 검증은, 후보가 되는 패스워드의 해시를 수학적으로 계산해, 실제의 패스워드의 해시와 비교하는 것만으로 끝나기 때문이다.온라인 공격의 경우, 공격자는 모든 패스워드에 대하고 인증을 시도하지 않으면 안되어, 시스템에 의해서 규칙[역어 의문점]으로 지연이 부과되어 또 그러한 시도는 기록된다.
패스워드는, 알파벳・숫자・(구두점등의) 기호를 랜덤에 조합해 8 문자 이상의 길이로 하는 것이 일반적으로 추천 된다.다만 이것은, md5-crypt나 Blowfish 베이스의 bcrypt라고 한, 강력한 패스워드 해시법을 사용하는 시스템으로 의미를 가지는 것이어, 많은 Microsoft Windows 시스템으로는 불충분하다.왜냐하면, 그러한 Windows는 유산인 LAN Manager 해시법을 사용하고 있어 그것은 패스워드를 2개의 7바이트열로 나누어 버리기 때문이다.그러한 시스템으로는, 8 문자의 패스워드라면 7 문자의 패스워드와 1 문자의 패스워드에 변환된다.시큐러티를 높이기 위해서는, 그 시스템에 의존하는 유산 시스템에 영향이 없는 한, LAN Manager 형식으로의 패스워드 보존을 무효화해야 하는[12]. 시스템에 따라서는, 패스워드에 숫자 밖에 사용할 수 없거나, 대문자 밖에 사용할 수 없거나, 혹은 일반적으로 말하고, 패스워드용의 문자에 제한을 마련하고 있는 경우가 있다.그러한 시스템도, 비교적 용이하게 전원 시합 공격을 걸칠 수 있다.그러한 경우(가능하면)보다 긴 패스워드를 사용하는 것으로, 문자 패턴의 제약을 벌충할 수 있다.물론, 많은 문자를 선택할 수 있는 시스템이어도, 유저 자신이 특정의 종류의 문자에 한해서 선택을 행했을 경우(예를 들면 대문자만 선택하거나 숫자만 선택했을 경우)는, 그 어카운트에의 전원 시합 공격은 매우 용이하게 되어 버린다.
단순한 전원 시합 공격이어도 성공하는 것은 자주 있지만, 인간이 어떻게 패스워드를 선택하는 경향을 가지는가 하는 지견을 악용 한 「스마트한」전원 시합 공격은, 한층 더 큰 위협이 된다.미국 국립 표준 기술 연구소 SP 800-63 (2)의 보고로는 패스워드의 품질이나 추천 사항등이 논의되고 있지만, 예를 들면 유저가 스스로 8 문자의 패스워드를 생각했을 경우, 그것이 어떻게 선택될까에 의해, 엔트로피(랜덤 사노 정도)는18-30비트의 범위에 들어간다.24비트의 랜덤 마을 말하면, 무작위로 선택한 3바이트, 혹은 무작위로 선택한 5 문자의 대문자 알파벳, 혹은 4000어중에서 무작위로 선택한 2 단어에 상당한다.이 엔트로피는, 암호화 키로서 안전하다면 통상 생각할 수 있는 레벨보다 훨씬 더 낮다.
오프 라인 공격을 생각하면, 이 취약함은 「너무나 너무 취약하다」라고 하는 이야기이며, 또 부분적으로는 공격자의 기량과 자원(예를 들면 시간으로 머신 파워)에 지는 것이다.후자는 컴퓨터의 성능이 오르는 것에 따라 커질 것이다.넓게 사용되고 있는 해시법은, 한층 더 해석을 앞당기기 위해, 거기에 특화한 하드웨어로서 실장하는 것도 가능하다.다수의 컴퓨터를 병렬에 연결해, 광대한 탐색 공간의 일부를 각각이 맡는 것도 가능하다.야간이나 주말에 사용되지 않은 사무소의 컴퓨터도, 이 목적으로 사용할 수 있다.
사전 계산
가장 기본적인 형태로서 사전 계산과는 사전(혹은 패스워드 후보의 탐색 공간)의 각 어의 해시치를 계산해, 해시치의 일람을 검색할 수 있도록 평문패스워드와 해시치의 페어를 보존해 두는 것이다.이렇게 해 두면, 암호화된 패스워드(해시치)를 새롭게 입수했을 때, 평문패스워드를 산출하는 것은 문제없는 것이다.소금이 적절히 사용되지 않은 경우, 사전 공격에 대해 사전 계산은 매우 유효하고, 대용량 기억 매체의 극적인 저가격화로, 상당한 대형 사전을 사용하는 일도 현실적으로 되었다.
한층 더 효율적인 사전 계산 공격의 수법도 생각할 수 있다.즉 시간과 공간의 트레이드 오프를 고려하면, 다음과 같은 타협점이 이끌린다.사이즈가 N의 탐색 공간은, 사이즈가 O(N2/3)의 데이터 베이스에 거둘 수 있어 한편 그 탐색에 걸리는 시간은 O(N2/3)가 된다.이 이론은, 최근이 되어 실제의 기법으로서 세련된 것이 되어 있다.다른 예[13]으로는, 알파벳과 숫자로부터 되는 Windows LAN Manager 패스워드를 2, 3 분으로 해석해 버리는 것도 있다.매우 취약한 패스워드 해시법을 사용하고 있던 과거의 LAN Manager의 경우는, 한층 더 시간이 단축된다.Windows Vista/Server 2008보다 전의 Windows로는, 후방 호환이기 때문에 패스워드의 계산과 보관에 LAN Manager 해시를 표준으로 사용하고 있던[12].
사전 계산과 닮은 수법으로, 이른바 메모화가 있다.이것은 복수 패스워드의 해석을, 한 개 분의 해석 코스트로 끝마치기 위해서 사용된다.패스워드의 암호화는, 기억이 끝난 해시의 비교보다 훨씬 시간이 걸리기 위해, 한 번 암호화한 패스워드의 내용은 기억해 두어, 효율적인 탐색 알고리즘을 사용해 각각 암호화한 패스워드와 비교하는 것이다.물론, 이 2개의 수법은 조합할 수도 있다.시간과 공간의 트레이드 오프를 고려한 공격 수법은, 개별적으로 해석하는 것보다 짧은 시간에 복수 패스워드를 동시에 해석하도록, 만들어 바꿀 수 있다.
소금
사전 계산과 메모화의 장점은, 해시의 과정을 랜덤화하는 것으로 지울 수 있다.이 구조는 소금으로 불린다.유저가 패스워드를 설정할 때, 「소금」(소금)이라고 하는 짧은 랜덤인 문자열을 패스워드의 말미에 가세한 다음 암호화하는 것이다.소금은, 인증 시에 이용할 수 있도록, 암호화한 패스워드와 함께 보관된다.통상, 소금은 유저마다 다르기 위해, 각 패스워드 후보의 해시치를 한 개 밖에 계산하고 있지 않는 사전 계산 리스트는 이미 도움이 되지 않는다.초기의 Unix 시스템은 12비트의 소금을 사용하고 있었다.그런데도 공격자는, 잘 사용되는 패스워드에 대해서는 12비트의 소금으로부터 되는 전4096 패턴의 리스트를 만들고 있었다.그러나 소금이 충분한 길이를 가지고 있다면, 생각할 수 있는 패턴은 방대한 것이 되어, 공격자는 각 유저의 각 패스워드 후보 마다 암호화를 시험하지 않으면 안 되게 된다.md5-crypt나 bcrypt라고 하는 현대적인 수법은, 각각 48비트, 128비트의 소금을 사용하고 있는[14].
초기 Unix의 패스워드 강도
초기 Unix의 실장은 패스워드장을 8 문자 이하에 제한하고 있어, 12비트의 소금을 사용하고 있었다.이 경우, 소금이 만드는 패턴은 4096 종류가 된다.1970년대에 있어서의 대부분의 용도로는 이 12비트로 충분하다고 생각되고 있었지만, 2005년까지는 기억 매체의 저가격화가 진행되어, 잘 사용되는 몇백만종의 패스워드의 해시치를, 전4096종의 소금의 분도 포함하고, 공격자는 사전 계산해 한 개의 휴대용 HDD에 준비할 수 있게 되었다.공격자에게 자금이 있으면, 6 문자 이하의 모든 패스워드와7-8문자가 좋게 사용되는 패스워드에 대해서, 4096 패턴의 소금을 포함한 암호화 데이터를 작성해, 그것을 보존한 디스크군(disk farm)을 구축하는 것도 가능하다.또 수천의 패스워드를 한 번에 해석 대상으로 하는 경우, 메모화도 역시 이점이 있다.
대책
패스워드 크랙을 막는 최선의 방법은, 공격자가 암호화된 패스워드에조차 액세스 할 수 없는 듯한 구조를, 확실히 베풀어 두는 것이다.예를 들면 Unix의 경우, 암호화된 패스워드는 누구라도 액세스 할 수 있는 파일로서/etc/passwd에 당초는 보존되고 있었다.그러나 현재의 Unix( 및 Unix계 OS)로는, 그것들은 특수한 권한(이른바 system 권한)으로 동작하는 프로그램만 액세스 할 수 있는/etc/shadow에 보존된다.이것에 의해, 악의를 가진 유저가 우선 시작으로 암호화된 패스워드를 입수하는 것은 곤란하게 된다.단지, 넓게 사용되고 있는 많은 네트워크・프로토콜은, 패스워드를 평문 혹은 취약한 챌린지/리스폰스 방식으로 전송하고 있는[15][16].
현대적인 Unix 시스템은, 전통적인 DES 베이스의 패스워드 해시로부터, 보다 강력한 MD5 및 Blowfish 베이스의 방식에 옮겨지고 있는[17].그 외의 시스템도 같이 그러한 방식에 옮겨지고 있다.예를 들면 Cisco IOS는 당초, 패스워드의 암호화에 가역적인 비쥬넬 암호를 사용하고 있었지만, 현재는"enable secret"커멘드를 사용했을 경우, 24비트의 소금을 댄 md5-crypt가 이용되는[18].이러한 새로운 방식은, 한 번에 복수의 패스워드를 해석하는 강력한 오프 라인 공격을 막을 수 있도록, 큰 소금치를 사용한다.또 알고리즘도 꽤 계산량이 많아지고 있어 오프 라인 공격을 성공시키기 위한 시간이 극적으로 증대하고 있는[14].
시큐러티 토큰과 같은 구조를 이용하면, 특정의 규칙에 따라서 결정할 수 있던 새로운 패스워드를 상시 사용할 수 있다.이것은(공격자가 다음 번의 패스워드 변경까지 해석을 끝마치지 않으면 안 되는 점으로) 전원 시합 공격에 용서되는 시간을 대단히 줄이는 것이어, 한편 패스워드의 유효기간이 짧다고 하는 점으로, 해석에 성공한 패스워드의 가치를 줄이는 것이기도 하다.
소프트웨어
패스워드 크랙의 소프트웨어는 많이 있지만, 가장 유명한 것으로 해[19] Cain and Abel (en), John the Ripper (en), Hydra (en), ElcomSoft (en), Lastbit (en)를 들 수 있다.많은 소송 지원용 소프트웨어에도 패스워드 크랙 기능이 붙어 있다.그것들은 가장 효율적으로 일하도록, 전원 시합 공격, 사전 공격이라고 하는 해석 수법의 편성을 채용하고 있다.
각주
- ^완전하게 새로운 패스워드를 재설정하는 것이 시큐러티상 리스크가 적지만, 관리자 권한이 필요하다.
- ^ Niels Provos, David Mazieres (1999년 4월 28일). "MD5 crypt"(영어). USENIX. 2011년 1월 13일 열람.
- ^ Rowland, Kara (2008년 9월 19일). "Hacker wanted to 'derail' Palin". The Washington Times. 2014년 9월 19일 열람.
- ^ Password security
- ^ ZDNet Report: Net users picking safer passwords
- ^ "Default Password List"(영어). PHENOELIT. 2011년 1월 13일 열람.
- ^ "Project Alecto"(영어). Helith. 2011년 1월 13일 열람.
- ^ British hacker fights extradition, BBC News, February 14, 2007
- ^ Transcript of the interview, BBC Click
- ^ John the Ripper project, John the Ripper cracking modes
- ^ Bruce Schneier, Choosing Secure Passwords
- ^ a b"How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases". Microsoft. 2009년 2월 18일 열람.
- ^ ophcrack
- ^ a b Password Protection for Modern Operating Systems
- ^ No Plaintext Passwords
- ^ Cryptanalysis of Microsoft's Point-to-Point Tunneling Protocol
- ^ A Future-Adaptable Password Scheme
- ^ MDCrack FAQ 1.8
- ^ "Top 10 Password Crackers". Sectools. 2008년 11월 1일 열람.
관련 항목
외부 링크
This article is taken from the Japanese Wikipedia 패스워드 크랙
This article is distributed by cc-by-sa or GFDL license in accordance with the provisions of Wikipedia.
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
0 개의 댓글:
댓글 쓰기