사전 공격이란 무엇입니까?

click fraud protection

웹사이트에 인증하려면 사용자 이름과 암호를 제공해야 합니다. 그런 다음 사이트는 사용자가 제공한 인증 세부 정보를 데이터베이스에 저장된 세부 정보와 비교하여 확인합니다. 세부 정보가 일치하면 액세스가 허용됩니다. 세부 정보가 일치하지 않으면 액세스가 거부됩니다.

불행히도 데이터 유출은 비교적 흔한 일입니다. 데이터 유출은 가장 일반적으로 표적이 되는 데이터 중 하나가 사용자 데이터, 특히 사용자 이름과 암호 목록이기 때문에 큰 문제가 될 수 있습니다. 암호가 있는 그대로 일반 텍스트로 저장되면 데이터베이스에 액세스할 수 있는 사람은 누구나 다른 사용자의 계정에 액세스할 수 있습니다. 마치 아파트 건물의 모든 문을 여는 열쇠가 있는 열쇠 고리를 건네받은 것과 같습니다.

처음부터 데이터 유출을 방지하기 위해 많은 노력을 기울이지만 심층 방어 전략이 권장됩니다. 특히, 보안 조언에 따르면 암호는 해시되어야 하며 암호의 해시만 저장되어야 합니다. 해시 함수는 항상 동일한 입력을 동일한 출력으로 변환하는 단방향 함수입니다. 그러나 입력을 조금만 변경해도 완전히 다른 출력이 생성됩니다. 결정적으로 기능을 되돌리고 출력된 해시를 원래 입력으로 되돌릴 방법이 없습니다. 그러나 할 수 있는 일은 새 입력을 해시하고 출력이 데이터베이스에 저장된 해시와 일치하는지 확인하는 것입니다. 일치하는 경우 실제 암호를 알지 못한 채 일치하는 암호를 알고 있습니다.

이것은 또한 공격자가 데이터베이스를 위반하는 경우 즉시 유용한 암호 목록을 얻지 못하고 대신 해시를 얻는다는 것을 의미합니다. 이러한 해시를 사용하려면 크랙이 필요합니다.

똑똑하게 암호 해시 크래킹

암호 해시 크래킹은 해시가 나타내는 원래 암호가 무엇인지 알아내는 과정입니다. 해시 기능을 역전시켜 해시를 암호로 바꿀 방법이 없기 때문입니다. 해시를 해독하는 유일한 방법은 암호를 추측하는 것입니다. 한 가지 방법은 무차별 대입 공격을 사용하는 것입니다. 이것은 말 그대로 가능한 모든 암호를 시도하는 것을 포함합니다. 즉, "a"부터 시작하여 모든 문자, 두 경우 모두, 모든 숫자와 기호를 시도하는 것을 의미합니다. 그런 다음 공격자는 두 문자 조합, 세 문자 조합 등을 모두 시도해야 합니다. 가능한 문자 조합의 증가는 문자를 추가할 때마다 기하급수적으로 증가합니다. 이로 인해 강력한 GPU 크래킹 장치와 함께 빠른 해싱 알고리즘을 사용하는 경우에도 긴 암호를 효율적으로 추측하기가 어렵습니다.

예를 들어 사이트의 암호 요구 사항을 살펴보고 허용하기에 너무 짧거나 숫자가 없는 암호를 시도하지 않음으로써 약간의 수고를 덜 수 있습니다. 이렇게 하면 시간이 절약되고 허용된 모든 암호를 시도하는 무차별 대입 공격 클래스에 여전히 적합합니다. 무차별 암호 대입 공격은 느리지만 많은 처리 능력으로 충분히 오래 방치하면 가능한 모든 조합을 시도하므로 결국 암호를 해독합니다.

무차별 대입 공격의 문제는 그다지 똑똑하지 않다는 것입니다. 사전 공격은 훨씬 더 표적화된 변종입니다. 가능한 암호를 시도하는 대신 지정된 암호 목록을 시도합니다. 이러한 유형의 공격의 성공 여부는 암호 목록과 문제의 사전에 따라 달라집니다.

교육받은 추측하기

암호 사전은 일반적으로 이전에 다른 데이터 유출로 인해 크랙된 암호로 만들어집니다. 이러한 사전에는 수천 또는 수백만 개의 항목이 포함될 수 있습니다. 이것은 사람들이 고유한 암호를 만드는 데 서투르다는 개념을 기반으로 합니다. 불행히도 데이터 유출의 증거는 이것이 사실임을 보여줍니다. 사람들은 여전히 ​​"비밀번호"라는 단어에 변형을 사용합니다. 다른 일반적인 주제는 스포츠 팀, 애완 동물 이름, 지명, 회사 이름, 직업을 싫어하는 것, 날짜에 따른 암호입니다. 이 마지막 문제는 사람들이 정기적으로 비밀번호를 변경해야 할 때 특히 발생하는 경향이 있습니다.

암호 사전을 사용하면 무차별 대입 공격에 비해 추측해야 하는 횟수가 크게 줄어듭니다. 또한 암호 사전에는 짧은 암호와 더 긴 암호가 모두 포함되는 경향이 있습니다. 즉, 몇 년 동안 또는 무차별 대입 추측으로도 도달하지 못할 일부 암호를 시도할 수 있습니다. 접근 방식도 성공적인 것으로 입증되었습니다. 통계는 데이터 유출과 사용된 사전의 크기 및 품질에 따라 다르지만 성공률은 70%를 초과할 수 있습니다.

단어 맹글링 알고리즘을 사용하면 성공률을 더욱 높일 수 있습니다. 이 알고리즘은 암호 사전의 각 단어를 가져온 다음 약간 수정합니다. 이러한 수정은 표준 문자 대체 및 후행 숫자 또는 기호 추가 경향이 있습니다. 예를 들어 문자 "e"를 "3"으로 바꾸고 "s"를 "$"로 바꾸거나 끝에 느낌표를 추가하는 것이 일반적입니다. 단어 맹글링 알고리즘은 암호 사전에 각 항목의 복제본을 만듭니다. 각 복제본에는 이러한 문자 대체의 다른 변형이 있습니다. 이렇게 하면 추측할 암호의 수가 크게 증가하고 성공률도 증가합니다(경우에 따라 90% 이상).

결론

사전 공격은 무차별 암호 대입 공격의 표적 변형입니다. 가능한 모든 문자 조합을 시도하는 대신 문자 조합의 하위 집합을 테스트합니다. 이 하위 집합은 이전에 발견되었으며 필요한 경우 과거 데이터 유출에서 크랙된 ​​암호 목록입니다. 이렇게 하면 이전에 사용되었거나 경우에 따라 자주 사용되는 암호를 숨기는 동안 추측해야 하는 횟수가 크게 줄어듭니다. 사전 공격은 무차별 대입 공격만큼 성공률이 높지 않습니다. 그러나 그것은 당신이 무제한의 시간과 처리 능력을 가지고 있다고 가정합니다. 사전 공격은 무차별 암호 대입 공격보다 훨씬 빠른 상당히 높은 성공률을 얻는 경향이 있습니다. 극히 희박한 문자 조합에 시간을 낭비하지 않기 때문입니다.

암호를 만들 때 해야 할 주요 작업 중 하나는 암호가 단어 목록에 나타나지 않도록 하는 것입니다. 이를 수행하는 한 가지 방법은 복잡한 암호를 만드는 것이고 다른 하나는 긴 암호를 만드는 것입니다. 일반적으로 가장 좋은 방법은 몇 단어로 구성된 긴 암호를 만드는 것입니다. 그 단어가 추측할 수 있는 실제 문구를 만들지 않는 것이 중요합니다. 전혀 관련이 없어야 합니다. 최소 8자를 포함하여 10자 이상의 암호를 선택하는 것이 좋습니다.