내 비밀번호를 테스트해 보았습니다. 비밀번호 보안에 대해 알게 된 점

비밀번호는 디지털 계정의 최전선이지만, 해킹이 얼마나 쉬운지 생각해 본 적 있으신가요? 강력하고 고유한 비밀번호를 만드는 것은 단순한 권고 사항이 아니라 데이터 보안에 필수적인 요소입니다.

비밀번호의 효과를 확인하기 위해 오픈소스 도구를 사용하여 비밀번호를 크래킹해 보기로 했습니다. 세 가지 비밀번호를 테스트하여 일반적인 공격의 작동 방식을 파악하고 해커로부터 비밀번호를 더 안전하게 만드는 요소를 파악했습니다.

이 글에서는 비밀번호 보안을 개선하고 데이터를 안전하게 보호하기 위한 저의 연구 결과와 실용적인 팁을 공유하고자 합니다.

내 비밀번호를 테스트해 보았습니다. 비밀번호 보안에 대해 알게 된 점

비밀번호를 해독한다는 것은 무슨 뜻인가요?

비밀번호를 해독한다는 것은 무슨 뜻인가요?

온라인 서비스에 계정을 만들 때, 제공자는 일반적으로 (그리고 바라건대) 서버에서 로그인 정보를 암호화합니다. 이는 알고리즘을 사용하여 수행됩니다.분열"는 비밀번호에 고유한 문자와 숫자로 구성된 무작위 문자열입니다. 물론 실제로 무작위는 아닙니다. 사용하는 비밀번호에서만 생성할 수 있는 매우 구체적인 문자열입니다. 하지만 훈련되지 않은 눈에는 복잡해 보입니다.

단어를 해시로 변환하는 것은 해시를 다시 단어로 "디코딩"하는 것보다 훨씬 빠르고 쉽습니다. 따라서 비밀번호를 설정하면 로그인한 서비스가 비밀번호를 해싱 프로세스를 거쳐 서버에 저장합니다.

지정된 비밀번호 파일이 유출되면 해커는 비밀번호 크래킹을 통해 파일의 내용을 해독하려고 시도합니다. 비밀번호 암호화는 복호화보다 빠르기 때문에 해커는 잠재적인 비밀번호를 입력으로 받아 서버에서 사용하는 것과 동일한 방식으로 암호화한 다음, 그 결과를 비밀번호 데이터베이스와 비교하는 시스템을 구축합니다.

잠재적 비밀번호의 해시 값이 데이터베이스의 항목과 일치하면 해커는 각 결과가 일치한다는 것을 알게 됩니다. 가능한 비밀번호 시도된 적이 있습니다.

HashCat을 사용하여 내 비밀번호를 해킹한 방법

좋아요, 당신이 만든 비밀번호 중 몇 개를 풀어서 얼마나 쉬운지 확인해 볼까요? 이를 위해 저는 다음을 사용할 것입니다. 해시 캣누구나 사용할 수 있는 무료 오픈소스 비밀번호 해독 애플리케이션입니다.

이 테스트에서는 다음 비밀번호를 해독해 보겠습니다.

  1. 123456고전적인 비밀번호이자 사이버보안의 악몽인 123456은 전 세계에서 가장 널리 사용되는 비밀번호입니다. 노드 패스 3만 개의 계정에서 123456개의 비밀번호가 사용되었으며, 그 중 1.2만 개는 회사 계정을 보호하기 위한 것이었습니다.
  2. 수잔48!대부분의 사용자가 안전한 비밀번호를 만드는 데 사용하는 패턴을 따르는 비밀번호입니다. 이 비밀번호는 일반적으로 비밀번호 위생에 대한 기본 요건을 충족하지만, 나중에 살펴보겠지만 악용될 수 있는 몇 가지 심각한 취약점을 포함하고 있습니다.
  3. t9^kJ$2q9a:비밀번호 생성 방법 비트워든 생성기대문자, 소문자, 기호, 숫자를 사용하여 10자리 비밀번호를 생성하도록 설정되어 있습니다.

이제 비밀번호를 얻었으니 MD5를 사용하여 암호화했습니다. 서버에 저장된 비밀번호 파일에 저장된 비밀번호는 다음과 같습니다.

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

이제 이를 분석할 차례입니다.

사전 공격을 사용하여 간단한 중단 수행

사전 공격을 사용하여 간단한 중단 수행

시작해 봅시다. 사전 공격이것은 비밀번호 공격에 가장 흔히 사용되는 방법 중 하나입니다. 간단한 공격 방법으로, 잠재적 비밀번호 목록을 만들고 Hashcat에 MD5로 변환한 후, 위 세 항목과 일치하는 비밀번호가 있는지 확인합니다. 이 실험에서는 역사상 가장 큰 비밀번호 유출 사건 중 하나였던 "rockyou.txt" 파일을 사전으로 사용합니다.

해킹 과정을 시작하려면 Hashcat이 있는 폴더로 이동하여 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 "터미널에서 열기"를 클릭합니다. 이제 터미널이 열리고 Hashcat 디렉터리로 설정되었으므로 다음 명령으로 Hashcat 애플리케이션을 실행합니다.

.해시캣 -m 0 -a0 비밀번호 파일이 .txt 록유이 .txt -o 결과이 .txt

이 기능은 다음과 같습니다.

  1. .해시캣 해시캣이 호출합니다.
  2. -m 0: 사용할 암호화를 지정합니다. 이 경우에는 다음을 사용합니다. MD5Hashcat 도움말 문서에서는 0으로 나열되어 있습니다.
  3. -a 0: 수행할 공격을 지정합니다. Hashcat 문서에는 사전 공격이 0으로 나열되어 있으므로 여기서 호출합니다.
  4. 비밀번호 파일.txt rockyou.txt첫 번째 파일에는 앞서 생성한 세 개의 암호화된 비밀번호가 들어 있습니다. 두 번째 파일은 Rockyou의 전체 비밀번호 데이터베이스입니다.
  5. -o 결과.txt이 변수는 결과를 어디에 저장할지 지정합니다. 제가 실행한 명령에서는 유출된 비밀번호를 "results"라는 TXT 파일에 저장합니다.

rockyou의 엄청난 크기에도 불구하고 Hashcat은 123456초 만에 전체 내용을 스캔했습니다. 결과 파일에서 Hashcat은 비밀번호 123456을 해킹했다고 보고했지만, Susan과 Bitwarden의 비밀번호는 해킹되지 않았습니다. 이는 비밀번호 XNUMX이 rockyou.txt 파일에서 다른 사람이 사용했지만, Susan이나 Bitwarden의 비밀번호는 다른 사람이 사용하지 않았기 때문에 이 공격에 면역이 될 만큼 고유했기 때문입니다.

무차별 대입 공격과 마스크를 사용하여 더 복잡한 해킹을 수행합니다.

무차별 대입 공격과 마스크를 사용하여 더 복잡한 해킹을 수행합니다.

사전 공격은 누군가가 더 많은 비밀번호 목록에서 동일한 비밀번호를 사용할 때 효과적입니다. 실행은 빠르고 쉽지만, 비밀번호 해킹 사전에서 찾을 수 없습니다. 따라서 비밀번호를 실제로 테스트하려면 다음을 사용해야 합니다. 무차별 대입 공격.

사전 공격은 미리 정의된 목록을 하나씩 변형하는 반면, 무차별 대입 공격은 동일한 방식으로 모든 가능한 조합을 사용하여 공격합니다. 구현이 더 어렵고 시간이 더 오래 걸리지만, 결국에는 모든 비밀번호를 해독할 수 있습니다. 곧 살펴보겠지만, 이러한 공격은 때로는 매우 오랜 시간이 걸릴 수 있습니다.

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

.해시캣 -m 0 -a3 목표이 .txt--증가 ?a?a?a?a?a?a?a?a?a?a -o 출력이 .txt

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

  • -3이 변수는 수행할 공격을 지정합니다. Hashcat 문서에는 무차별 대입 공격이 3개로 나열되어 있으므로 여기서는 해당 공격을 호출합니다.
  • 타겟.txt:해킹하려는 암호화된 비밀번호가 들어 있는 파일입니다.
  • - 증가이 명령은 Hashcat에게 1자 길이의 모든 비밀번호를 시도해 보라고 하고, 그 다음에는 2자 길이의 비밀번호, 3자 길이의 비밀번호 등으로 계속 시도하여 정답을 얻으라고 합니다.
  • ?아?아?아?아?아?아?아?이것을 "마스크"라고 합니다. 마스크를 통해 Hashcat에 어떤 문자를 어디에 사용할지 알려줄 수 있습니다. 각 물음표는 비밀번호의 문자 위치를 나타내며, 각 문자는 각 위치에서 무엇을 하려는지 지정합니다. "a"는 대문자와 소문자, 숫자, 기호를 나타내므로, 이 마스크는 "모든 필드에 모든 것을 시도해 보세요"라는 의미입니다. 형편없는 마스크지만, 나중에 유용하게 활용할 수 있을 것입니다.
  • -o 출력.txt: 이 변수는 결과를 어디에 저장할지 지정합니다. 제 명령은 크래킹된 비밀번호를 "output"이라는 TXT 파일에 저장합니다.

이 끔찍한 마스크에도 불구하고, 비밀번호 123456은 15초 만에 해독되었습니다. 가장 흔한 비밀번호이지만, 동시에 가장 취약한 비밀번호 중 하나이기도 합니다.

"Susan48!"이라는 비밀번호가 훨씬 나았습니다. 제 컴퓨터는 이 비밀번호를 맹목적으로 해독하려면 나흘이 걸린다고 했습니다. 그런데 문제가 하나 있었습니다. 제가 수잔의 비밀번호에 치명적인 결함이 있다고 말씀드렸던 것 기억하시나요? 가장 큰 문제는 그 비밀번호가 예측 가능하게 설계되었다는 것입니다.

비밀번호를 만들 때 보통 특정 요소를 특정 위치에 배치합니다. 비밀번호를 만드는 사람을 수잔이라고 생각해 보세요. 처음에는 "susan"을 사용하려고 했지만, 대문자와 숫자를 추가하라는 요청을 받았습니다. 기억하기 쉽도록 첫 글자는 대문자로 쓰고 마지막 글자는 숫자를 추가했습니다. 그런 다음 로그인 서비스에서 코드를 요청했을 수 있으므로, 비밀번호 생성기는 코드를 마지막에 붙여넣었습니다.

따라서 Hashcat에 특정 위치에 특정 문자만 입력하도록 마스크를 사용하여 비밀번호를 생성할 때 사람들이 얼마나 예측 가능한지 파악할 수 있습니다. 이 마스크에서 "?u"는 해당 위치에 대문자만 사용하고, "?l"은 소문자만 사용하며, "?a"는 모든 문자를 나타냅니다.

.해시캣 -m 0 -a3 -1 ?a 목표이 .txt ?u?l?l?l?l?a?a?a -o 출력이 .txt

이 마스크를 사용하면 Hashcat은 3분 10초 만에 비밀번호를 해독하는데, 이는 4일보다 훨씬 빠른 속도입니다.

Bitwarden에서 생성된 비밀번호는 10자리이고 예측 가능한 패턴을 사용하지 않아서, 마스크 없이 무차별 대입 공격을 시도해야 했습니다. 안타깝게도 Hashcat에 이 작업을 요청했더니, 가능한 조합의 수가 정수 제한을 초과했다는 오류가 발생했습니다. IT 보안 전문가 Bitwarden의 비밀번호를 해독하려면 3년이 걸리므로, 제게는 충분한 시간입니다.

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

그렇다면 이 모든 것에서 무엇을 배울 수 있을까요? 제가 Bitwarden 비밀번호를 해독하지 못했던 주요 원인은 비밀번호 길이(10자)와 예측 불가능성이었습니다. 따라서 비밀번호를 만들 때는 최대한 길게 만들고, 비밀번호 전체에 기호, 숫자, 대문자를 포함하도록 하세요. 이렇게 하면 해커가 마스크를 사용하여 각 요소의 위치를 ​​예측하는 것을 방지하고 해독을 훨씬 더 어렵게 만들 수 있습니다.

"문자 조합을 사용하세요"나 "최대한 길게 만드세요"와 같은 비밀번호에 대한 옛말을 이미 알고 계실지도 모릅니다. 이제 사람들이 왜 이 유용한 팁들을 추천하는지 이해하셨기를 바랍니다. 이 팁들은 쉽게 해독되는 비밀번호와 안전한 비밀번호의 차이를 만들어냅니다. 지금 바로 확인해 보세요. 이러한 간단한 조정으로 내 비밀번호를 더 안전하고 쉽게 만드는 방법.

맨 위로 이동 버튼