무차별 대입 균열이 암호를 공개하는 방법

망치가 무차별 적으로 자물쇠를 엽니 다.

암호화에서 무차별 대입 공격은 암호화 키를 추측하여 암호화 된 콘텐츠를 해독하려고 시도합니다. 이 공격은 암호화 키가 짧거나 공격자가 키를 시도하고 추측하기에 충분한 정보를 가지고있는 경우에 가능합니다.

웹 양식과 관련하여 공격자는 키를 추측 할 시간이 없습니다. Google 또는 Facebook은 누군가“계정을 잠그기”전에 여러 번 귀하의 계정에 로그인을 시도하게합니다.

그러나 해커가 회사의 내부 데이터베이스를 확보하면 암호가 암호화되어 있어도 전 세계에서 항상 암호를 추측 할 수 있습니다..

웹 사이트는 사용자를 보호하기 위해 솔트 및 해시 비밀번호를 사용해야합니다

웹 사이트에서 비밀번호를 저장하는 경우 사용자 데이터베이스를 소유 한 사람이 비밀번호를 사용할 수 없도록 사용자 비밀번호를 소금에 절인 후 해시하지 않아야합니다..

SHA-256과 같은 해시 기능은 단방향 암호화 기능입니다. 모든 데이터, 텍스트, 이미지 또는 숫자를 “해시”할 수 있으며 입력 길이에 관계없이 결과는 항상 256 비트입니다. 16 진수로 인코딩하면 (아래와 같이) 64 자 문자열이됩니다..

소금에 절인 해시는 추가 보호 기능을 추가합니다“소금”해시의 예, 다시 해시.

공격자가 암호를 해독하는 방법

잠재적 인 해커에게 문제를 일으키기 위해 웹 사이트는 임의의 데이터 조각 인 “소금”으로 암호를 수정합니다 (소금 및 해싱 작동 방법 참조).

텍스트, 그림 또는 파일에서 해시를 계산하는 것은 쉬운 일이 아니며 컴퓨터에 많은 시간이나 리소스가 소요되지 않습니다. 그러나 당신이 아는 전부가 해시라면, 원래의 가치를 알아내는 유일한 방법은 무차별 대입 공격입니다. 이런 이유로 해싱 함수를 단방향 암호화라고도합니다. 텍스트에서 해시로 가기는 쉽지만 다른 방법으로 가기는 매우 어렵습니다..

도난당한 사용자 데이터베이스를 소유 한 비밀번호 크래커는 사용자 이름 목록, 각 사용자의 솔트 값 및 해시를 볼 수 있습니다..

이러한 세부 사항을 사용하여 각 사용자의 비밀번호를 추측하고, 소금과 해시를 시도하고, 데이터베이스에 저장된 해시와 비교하여 결과를 확인할 수 있습니다. 해시가 일치하면 암호를 찾았다는 것을 알게됩니다..

해커를 조금만 변경해도 (위에서 볼 수 있듯이) 완전히 다른 해시가 발생하므로 공격자는 사용자 이름과 비밀번호를 정확하게 입력해야합니다..

비밀번호 조합 수?

암호가 소문자로만 구성되어 있다고 가정하면 각 문자마다 26 개의 가능성이 있습니다. 따라서 13 번의 시도로 한 문자 암호를 추측 할 수 있습니다..

2 문자 암호에는 26 × 26 옵션이 있으며 (26 × 26) / 2 해독 시도.

공식 c = (m ^ n) / 2 각 캐릭터의 가능성 사이의 관계를 설명 (미디엄), 비밀번호 길이 (엔) 예상되는 추측 횟수 (씨).

암호 길이와 암호를 추측하는 추측 횟수 사이의 관계

다양한 길이의 암호를 해독하는 데 걸리는 추측 횟수를 보여주는 그래프입니다.

  • 소문자 비밀번호 (m = 26)
  • 대문자와 소문자 (m = 52)
  • 대소 문자 및 특수 문자 (m = 67)

복잡성과 길이는 모두 암호의 강도에 기여하지만 복잡성을 높이는 것보다 문자를 추가하는 것이 훨씬 더 중요합니다.

소문자 만 사용하여 4 자 암호에 추가 문자를 추가하면 크랙하기가 26 배 더 어려워지며 가능한 문자를 52로 두 배로 늘리면 (즉, 대문자를 추가하면) 16 배만 크랙하기가 더 어려워집니다.

로그 스케일은 암호 길이와 필요한 추측 사이의 관계를보다 명확하게 해독합니다.

암호를 추측하려는 시도와 비교하여 암호 길이의 스케일을 표시하는 그래프입니다.

  • 소문자 비밀번호 (m = 26)
  • 대문자와 소문자 (m = 52)
  • 대소 문자 및 특수 문자 (m = 67)

암호를 해독하는 데 얼마나 걸립니까?

공격자가 암호를 해독하는 속도는 공격자의 컴퓨터 하드웨어 속도에 따라 다릅니다..

일반 컴퓨터는 초당 약 10 만 건의 추측을 할 것입니다. 전용 GPU는 이보다 100 배 빠를 수 있으며 수백 개의 GPU로 암호 크래킹 팜을 만들 수 있습니다.

공격자가 초당 100,000 번 추측 할 수있는 일반 컴퓨터를 가지고 있다고 가정하면 6 자 미만의 소문자 비밀번호는 크래킹하는 데 1 분 미만이 걸립니다..

그러나 해결 시간은 기하 급수적으로 증가하며 8 자리 암호는 해독하는 데 12 일이 걸립니다. 12 자 암호는 12,000 년 이상 소요됩니다.

12 자 암호가 충분한 지 여부는 암호의 보호 수준과 공격 규모에 따라 다릅니다. 공격자가 단일 대상 뒤에 만있는 경우 12 자 암호가 도달 할 수 있습니다.

따라서 훨씬 긴 암호로 중요한 데이터 (예 : 개인 정보 또는 Bitcoin 개인 키)를 보호해야합니다. 예를 들어 Bitcoin 지갑을 암호화 할 때 32 자 이상의 키가 좋습니다..

공격자가 보유한 정보가 많을수록 균열이 더 빨리 발생합니다.

위의 계산에서는 공격자가 암호에 대해 대문자 나 소문자를 포함하지 않는 한 아무것도 알지 못한다고 가정합니다..

실제로 공격자는 추측 할 수 있습니다. 이전에 해독 된 비밀번호 목록에서 가장 일반적인 비밀번호가 무엇인지 알고 있습니다. 특정 대상이 없으면 공격자가 전자 메일 목록을 사용하여 일반적인 암호를 비교적 빠르게 확인할 수 있습니다..

또한 사람들은 끝에 숫자 만있는 비밀번호 (예 : hello111)를 선택하고 서비스 이름 또는 URL을 어딘가에 포함시키는 경향이 있습니다. google 또는 gmail라는 단어가 포함되어 있고 끝에 4 자리 숫자 (예 : gmailpanther1234)가있는 Gmail에 사용되는 비밀번호는 길더라도 깨지기 쉽습니다..

또한 사람들은 애완 동물이나 어린이의 이름을 암호로 사용하는 경향이 있으며 때로는 생년월일이나 연도와 함께 암호를 사람들이 생각하는 것보다 쉽게 ​​추측 할 수 있습니다.

비밀번호 관리자와 함께 강력한 비밀번호 사용

가장 중요한 규칙은 다음과 같습니다. 항상 강력한 비밀번호 사용.

많은 강력한 암호를 작성하고 기억해야하는 번거 로움을 피하려면 임의의 암호 생성기를 사용하여 길고 독특하며 추측하기 어려운 암호를 편리하게 작성하십시오..

그런 다음 암호 관리자를 사용하여 해당 암호를 저장하면 단일 암호 만 기억하면됩니다 (Diceware로 생성하여 보안을 강화할 수 있음). 또한 2 단계 인증은 피싱 공격을 통해 얻은 암호와 같이 더욱 정교한 공격으로부터 계정을 보호합니다..