비밀번호 강도를 테스트하기 위해 직접 비밀번호를 해독하는 방법

이 기사에서는 오픈소스 비밀번호 해독 도구를 사용하여 3가지 비밀번호를 테스트하여 비밀번호 보안에 있어 어떤 방법이 실제로 효과적인지 알아냈습니다.

목차

비밀번호 해독이란 무엇인가요?

비밀번호 강도를 테스트하기 위해 직접 비밀번호를 해독하는 방법

온라인 서비스에 계정을 만들면 서비스 제공자는 일반적으로 해당 서버에서 로그인 정보를 암호화합니다. 이는 비밀번호를 위한 겉보기에 고유한 무작위 문자와 숫자 문자열인 "해시"를 생성하는 알고리즘을 사용하여 수행됩니다. 물론, 실제로 무작위적인 것은 아니며, 오직 사용자의 비밀번호에 의해서만 생성될 수 있는 매우 특정한 문자열이지만, 훈련되지 않은 눈에는 엉망으로 보입니다.

단어를 해시로 바꾸는 것은 해시를 다시 단어로 "디코딩"하는 것보다 훨씬 빠르고 쉽습니다. 따라서 비밀번호를 설정하면 로그인하는 서비스에서 비밀번호를 해시하여 실행하고 그 결과를 해당 서버에 저장합니다.

이 비밀번호 파일이 유출되면 해커는 비밀번호를 해독하여 내용을 알아내려고 시도합니다. 비밀번호를 암호화하는 것이 해독하는 것보다 빠르기 때문에 해커는 잠재적인 비밀번호를 입력으로 받고 서버와 동일한 방법을 사용하여 암호화한 다음 결과를 비밀번호 데이터베이스와 비교하는 시스템을 설정합니다.

잠재적 비밀번호의 해시가 데이터베이스의 어떤 항목과도 ​​일치하면 해커는 모든 시도가 시도된 잠재적 비밀번호와 일치한다는 것을 알게 됩니다.

HashCat을 사용하여 자신의 비밀번호를 해독하는 방법

기사에 나온 비밀번호 중 몇 개를 풀어서 얼마나 쉬운지 확인해 보세요. 이를 위해 이 예제에서는 누구나 사용할 수 있는 무료 오픈 소스 비밀번호 해독 도구 인 Hashcat을 사용합니다.

이러한 테스트의 경우 예제는 다음 비밀번호를 해독합니다.

  • 123456 : 고전적인 비밀번호이자 사이버보안의 악몽인 123456은 전 세계에서 가장 흔히 사용되는 비밀번호 입니다 . NordPass는 300만 개의 계정이 비밀번호로 123456을 사용하고 있으며, 이 중 120만 개는 기업 계정을 보호하고 있다고 계산했습니다.
  • 수잔48! : 대부분의 사용자가 안전한 비밀번호를 만드는 데 사용하는 패턴을 따르는 비밀번호입니다. 이는 일반적으로 기본적인 비밀번호 보호 기준을 충족하지만, 나중에 살펴보겠지만 악용될 수 있는 몇 가지 중요한 취약점이 있습니다.
  • t9^kJ$2q9a : Bitwarden 도구를 사용하여 생성된 비밀번호. 대문자, 소문자, 기호, 숫자를 섞어 10자리 길이의 비밀번호를 생성하도록 설정되어 있습니다.

이제 MD5를 사용하여 비밀번호를 암호화합니다. 저장된 비밀번호 파일에 비밀번호가 어떻게 표시되는지 살펴보겠습니다.

  • 123456 : e10adc3949ba59abbe56e057f20f883e
  • 수잔48! : df1ce7227606805745ee6cbc644ecbe4
  • t9^kJ$2q9a : 450e4e0ad3ed8766cb2ba83081c0a625

이제 해독할 차례입니다.

Dictionary Attack 방법을 사용하여 간단한 탈옥을 수행합니다.

비밀번호 강도를 테스트하기 위해 직접 비밀번호를 해독하는 방법

먼저, 가장 흔한 비밀번호 공격 방법 중 하나인 사전 공격을 수행해 보겠습니다. 해커가 잠재적인 비밀번호 목록을 가져와 Hashcat에 이를 MD5로 변환하도록 요청한 다음, 비밀번호 중 어떤 것이 위의 3개 항목과 일치하는지 확인하는 간단한 공격입니다. 이 테스트에서는 역사상 가장 큰 비밀번호 유출 사건 중 하나인 "rockyou.txt" 파일을 사전으로 사용해 보겠습니다.

크래킹을 시작하려면, 기사 작성자는 Hashcat 폴더로 가서 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 '터미널에서 열기'를 클릭해야 합니다 . 이제 터미널이 열리고 Hashcat 디렉토리로 설정되었으므로 다음 명령을 사용하여 Hashcat 애플리케이션을 호출합니다.

.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt

명령의 기능은 다음과 같습니다.

  • .\hashcat이 Hashcat을 호출합니다.
  • -m 0 : 사용할 인코딩 유형을 지정합니다. 이 사례에서는 Hashcat 도움말 문서에 0으로 나열된 MD5를 사용합니다.
  • -a 0 : 수행할 공격을 지정합니다. Hashcat 도움말 문서에는 Dictionary Attack이 0으로 나열되어 있으므로 여기서는 그렇게 부릅니다.
  • passwordfile.txt rockyou.txt : 첫 번째 파일에는 앞서 설정한 3개의 암호화된 비밀번호가 들어 있습니다. 두 번째 파일은 rockyou 비밀번호 데이터베이스 전체입니다.
  • -o results.txt : 이 변수는 결과를 어디에 저장할지 결정합니다. 해당 명령은 해독된 비밀번호를 "results"라는 이름의 TXT 파일에 저장합니다.

rockyou가 아무리 거대하더라도 Hashcat은 그것들을 모두 6초 만에 처리했습니다. 결과 파일에서 Hashcat은 비밀번호 123456을 해독했다고 밝혔지만, 비밀번호 Susan과 Bitwarden은 여전히 ​​해독되지 않았습니다. 그 이유는 123456이 rockyou.txt 파일에서 다른 사람에 의해 사용되었지만, Susan이나 Bitwarden이라는 비밀번호는 다른 사람이 사용하지 않았기 때문입니다. 즉, 그들은 이 공격에서 살아남을 만큼 안전했습니다.

은폐된 Brute Force 공격을 사용하여 보다 복잡한 탈옥을 수행합니다.

비밀번호 강도를 테스트하기 위해 직접 비밀번호를 해독하는 방법
Hashcat을 사용하여 무차별 대입 공격 수행

사전 공격은 누군가가 대규모 비밀번호 목록에서 찾은 비밀번호와 동일한 비밀번호를 사용할 때 효과적입니다. 이러한 방법은 구현이 빠르고 쉽지만 사전에 없는 비밀번호는 해독할 수 없습니다. 따라서 비밀번호를 실제로 테스트하고 싶다면 무차별 대입 공격을 사용해야 합니다.

사전 공격이 사전에 설정된 목록을 가져와 하나하나 변환하는 것에 불과하다면, 무차별 대입 공격은 상상할 수 있는 모든 조합으로 동일한 작업을 수행합니다. 이러한 방법은 구현하기 어렵고 시간도 오래 걸리지만 결국에는 모든 비밀번호를 해독할 수 있습니다. 곧 알게 되겠지만, 그런 능력을 갖추는 데는 때로는 오랜 시간이 걸릴 수도 있습니다.

"실제" 무차별 대입 공격을 수행하는 데 사용되는 명령은 다음과 같습니다.

.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a -o output.txt

명령의 기능은 다음과 같습니다.

  • -a 3 : 이 변수는 수행하고자 하는 공격을 정의합니다. Hashcat 도움말 문서에는 무차별 대입 공격이 3위로 나열되어 있으므로, 여기서는 무차별 대입 공격이라고 부릅니다.
  • target.txt : 해독하려는 암호화된 비밀번호가 담긴 파일입니다.
  • --increment : 이 명령어는 Hashcat에게 길이가 한 글자인 모든 비밀번호를 시도한 다음, 두 글자, 세 글자 등 일치하는 비밀번호를 찾을 때까지 시도하도록 지시합니다.
  • ?a?a?a?a?a?a?a?a?a?a?a : 이것을 "마스크"라고 합니다. 마스크를 사용하면 Hashcat에 어떤 문자가 어떤 위치에 사용되는지 알려줄 수 있습니다. 각 물음표는 비밀번호의 문자 위치를 지정하고, 문자는 각 위치에서 시도할 내용을 지정합니다. "a"라는 문자는 대문자와 소문자, 숫자, 기호를 나타내므로 이 마스크는 "각 위치에서 모든 것을 시도해 보세요"라는 의미입니다. 이건 끔찍한 마스크지만, 나중에 효과적으로 사용하는 방법을 알려드리겠습니다.
  • -o output.txt : 이 변수는 결과를 어디에 저장할지 결정합니다. 예제 명령은 해독된 비밀번호를 "output"이라는 이름의 TXT 파일에 넣습니다.

이런 엉터리 마스크를 써도 비밀번호 123456은 15초 안에 해독됩니다. 가장 흔한 비밀번호이기는 하지만, 가장 취약한 비밀번호 중 하나이기도 합니다.

비밀번호 "Susan48!" 훨씬 나아요. 컴퓨터에 따르면 해독하는 데 4일이 걸린다고 나와 있어요. 하지만 하나의 문제가 있습니다. 수잔의 비밀번호에 심각한 결함이 있다는 기사를 기억하시나요? 가장 큰 실수는 비밀번호가 예측 가능한 방식으로 구성된다는 것입니다.

비밀번호를 만들 때 특정 요소를 특정 위치에 넣는 경우가 많습니다. 비밀번호를 만든 수잔이 처음에는 "susan"을 사용하려고 했지만 대문자와 숫자를 추가하라는 요청을 받았다고 상상해 보세요. 기억하기 쉽게 하기 위해 첫 글자를 대문자로 쓰고 끝에 숫자를 추가했습니다. 그러면 로그인 서비스에서 기호를 요청했을 수도 있고, 비밀번호 설정자가 기호를 끝에 붙였을 수도 있습니다.

따라서 마스크를 사용하여 Hashcat에 특정 문자만 특정 위치에서 시도하도록 지시하여 사람들이 비밀번호를 만들 때 얼마나 쉽게 추측할 수 있는지를 활용할 수 있습니다. 이 마스크에서 "?u"는 해당 위치에서 대문자만 사용하고, "?l"은 소문자만 사용하고, "?a"는 모든 문자를 나타냅니다.

.\hashcat -m 0 -a 3 -1 ?a target.txt ?u?l?l?l?l?a?a?a -o output.txt

이 마스크를 사용하여 Hashcat은 4일이 걸리는 것보다 훨씬 빠른 3분 10초 만에 비밀번호를 해독했습니다.

Bitwarden 비밀번호는 10자 길이이고 예측 가능한 패턴을 사용하지 않으므로 마스크 없이 무차별 대입 공격을 해서야 비밀번호를 해독할 수 있습니다. 불행히도 Hashcat에 이를 요청했을 때, 가능한 조합의 수가 정수 제한을 초과한다는 오류가 발생했습니다. IT 보안 전문가는 Bitwarden이 비밀번호를 해독하는 데 3년이 걸렸다고 말했는데, 그게 충분하다고 합니다.

비밀번호 해킹으로부터 계정을 안전하게 보호하는 방법

이 기사가 Bitwarden 비밀번호를 해독하지 못하는 주요 요인은 비밀번호 길이(10자)와 예측 불가능성입니다. 따라서 비밀번호를 만들 때는 최대한 길게 만들고, 비밀번호 전체에 기호, 숫자, 대문자를 균등하게 분배하세요. 이를 통해 해커는 마스크를 사용하여 각 요소의 위치를 ​​예측할 수 없게 되고, 이를 해독하기가 훨씬 어려워집니다.

"문자 배열을 사용하세요"와 "가능한 한 길게 만드세요"와 같은 오래된 비밀번호 격언을 아마 알고 계실 겁니다. 사람들이 왜 이런 유용한 팁을 추천하는지 아셨으면 좋겠습니다. 이 팁은 쉽게 해독되는 비밀번호와 안전한 비밀번호의 주요 차이점이기 때문입니다.

Sign up and earn $1000 a day ⋙

Leave a Comment

절대 끝나서는 안 될 7가지 작업 관리자 프로세스

절대 끝나서는 안 될 7가지 작업 관리자 프로세스

Windows 10 작업 관리자 목록 하단에 있는 Windows 시스템 프로세스 섹션에는 컴퓨터가 제대로 작동하는 데 필수적인 몇 가지 중요한 프로세스가 포함되어 있습니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에 iOS 15.7을 유지할 수 있도록 허용합니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에 iOS 15.7을 유지할 수 있도록 허용합니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에도 보안 업데이트를 받으면서 iOS 15를 계속 사용할 수 있도록 허용합니다.

Intel Core Ultra 5 225H, Core Ultra 7 255H 및 Core Ultra 9 285H CPU 성능 평가 결과가 Geekbench에서 제공됩니다.

Intel Core Ultra 5 225H, Core Ultra 7 255H 및 Core Ultra 9 285H CPU 성능 평가 결과가 Geekbench에서 제공됩니다.

인텔의 차기 Arrow Lake-H 모바일 라인업에 속하는 3개의 SKU가 Geekbench에서 테스트되었으며, 매우 인상적인 단일 코어 및 멀티 코어 성능과 사양이 드러났습니다.

익숙한 고무줄을 만드는 과정이 이렇게 복잡하고 정교할 줄 누가 상상했겠는가?

익숙한 고무줄을 만드는 과정이 이렇게 복잡하고 정교할 줄 누가 상상했겠는가?

작은 고무줄은 간단해 보이지만, 실제로 만드는 과정은 생각보다 복잡합니다. 고무줄을 만드는 전체 과정은 다음과 같습니다.

수성에 대한 흥미로운 사실 ​​9가지

수성에 대한 흥미로운 사실 ​​9가지

수성은 태양계에서 가장 작은 행성이며, 태양에 가장 가까운 행성이기도 합니다. 수성은 믿을 수 없을 정도로 빠른 속도로 태양을 공전하며, 평균 속도는 시속 106,000마일에 달합니다. 이는 이 행성에 대한 많은 흥미로운 사실 ​​중 일부에 불과합니다.

소니, 삼성, LG 등에서 판매하는 32인치, 40인치, 43인치, 55인치 TV의 크기는 어떻게 되나요?

소니, 삼성, LG 등에서 판매하는 32인치, 40인치, 43인치, 55인치 TV의 크기는 어떻게 되나요?

아래 기사는 소니, 삼성, LG의 현재 TV 제품군의 크기를 이해하는 데 도움이 되며, 이를 통해 올바른 구매 결정을 내리는 데 도움이 될 것입니다.

삶의 질을 극적으로 향상시키는 7가지 간단한 기술 개선

삶의 질을 극적으로 향상시키는 7가지 간단한 기술 개선

기술과 건강한 관계를 맺는 것은 어려워 보일 수 있지만, 작은 변화가 큰 변화를 가져올 수 있습니다.

삼성 갤러리 앱에서 할 수 있다는 사실을 몰랐던 8가지

삼성 갤러리 앱에서 할 수 있다는 사실을 몰랐던 8가지

삼성 갤러리 앱은 여러분이 생각하는 것보다 더 강력한 기능을 가지고 있지만, 당장은 눈에 띄지 않을 수도 있습니다.

마이크로소프트의 폴더블 스마트폰, 주름 없어질까

마이크로소프트의 폴더블 스마트폰, 주름 없어질까

마이크로소프트는 지난 10월 1일에 화면에 주름이 생기지 않으면서도 360도 접을 수 있는 접이식 휴대폰에 대한 특허를 받으면서 최초의 접이식 스마트폰 출시에 한 걸음 더 다가갔다고 전해졌습니다.

Google, 검색에서 파란색 체크 표시 테스트

Google, 검색에서 파란색 체크 표시 테스트

Google은 검색에서 파란색 체크 표시를 통한 새로운 확인 기능을 테스트하고 있습니다. 이 기능은 사용자가 가짜 또는 사기성 웹사이트 링크를 클릭하는 것을 방지하는 데 도움이 됩니다.

Microsoft 365와 Office 2024 구별하기

Microsoft 365와 Office 2024 구별하기

Microsoft 365와 Office 2024는 언뜻 보기에 매우 비슷해 보일 수 있습니다. 둘 다 Microsoft의 인기 있고 널리 사용되는 애플리케이션에 액세스할 수 있게 해주기 때문입니다.

최신 엘리멘탈 던전 코드 및 코드 입력 방법

최신 엘리멘탈 던전 코드 및 코드 입력 방법

엘리멘탈 던전 코드는 게이머에게 꼭 필요한 보상입니다. Roblox의 다른 온라인 게임과 마찬가지로 플레이어는 돈이나 다른 아이템을 대가로 이러한 지원을 받을 수 있습니다.

Word에서 테이블 제목 표시줄을 반복하는 방법

Word에서 테이블 제목 표시줄을 반복하는 방법

Word 문서를 인쇄할 때, Word에서 표를 만들 때, Word에서 제목을 반복하면 제목을 더 편리하게 추적하고, 특히 제목이 긴 경우 여러 페이지에서 문서 제목을 원활하게 읽을 수 있습니다.

IOS 18에서 iMessage 애니메이션 메시지를 만드는 방법

IOS 18에서 iMessage 애니메이션 메시지를 만드는 방법

새로운 iOS 18 iMessage는 애니메이션 메시지와 텍스트 효과로 업데이트되었으며, 보내는 메시지에 사용할 수 있는 다양한 옵션이 추가되었습니다.

왜 돼지는 뱀의 천적일까?

왜 돼지는 뱀의 천적일까?

돼지에 대한 흥미로운 사실 ​​중 잘 알려지지 않은 사실이 하나 있습니다. 돼지는 뱀의 적이라고 여겨지는데, 이 두 동물이 만나면 대부분의 뱀이 돼지의 먹이가 되기 때문입니다.