무차별 대입 공격
비밀번호를 잊어버린 자전거 자물쇠를 풀기 위해 0000부터 9999까지 하나씩 끝까지 다 돌려보는 것과 같아요.
정의 무차별 대입 공격(브루트 포스 공격)은 비밀번호나 암호 키를 알아내기 위해 가능한 모든 문자의 조합을 처음부터 끝까지 무작정 하나씩 입력해 보는 사이버 공격 방식이에요. 컴퓨터의 빠른 계산 능력을 이용해서 정답이 맞을 때까지 억지로 문을 두드리는 원리예요.
자전거 자물쇠를 끝까지 돌려보는 원리
네 자리 숫자로 된 자전거 자물쇠의 비밀번호를 잊어버렸을 때 가장 단순한 해결책은 무엇일까요? 바로 '0000'부터 시작해서 '0001', '0002' 순서대로 자물쇠가 찰칵하고 열릴 때까지 모든 번호를 직접 맞춰보는 방법이에요.
사람이 손으로 일일이 번호를 돌리면 1만 가지 조합을 시도하는 데 며칠이 꼬박 걸릴 수 있어요. 하지만 컴퓨터 프로그램은 1초에 수천만 번 이상의 번호를 대신 입력할 수 있어요.
해커는 이런 강력한 컴퓨터 연산 성능을 이용해서 우리가 설정한 비밀번호를 무작정 대입해요. 수학적으로 가능한 모든 경우의 수를 하나도 빼놓지 않고 시도하기 때문에 시간만 충분하다면 반드시 정답을 찾아내는 무식하지만 확실한 방법이에요.
조금 더 정확히 말하면: 왜 비밀번호 길이에 집착할까요?
조금 더 정확히 말하면 무차별 대입 공격의 성패는 오직 '경우의 수'와 '컴퓨터의 계산 속도' 사이의 대결이에요. 비밀번호가 4자리 숫자라면 경우의 수는 1만 개뿐이라서 컴퓨터가 1초도 안 되어 풀어내요.
하지만 여기에 알파벳 대소문자와 특수문자를 섞고 길이를 12자리 이상으로 늘리면 상황이 완전히 바뀌어요. 가능한 조합의 수가 수천조 개 이상으로 기하급수적으로 폭발하거든요.
아무리 뛰어난 슈퍼컴퓨터를 가져와도 모든 경우의 수를 다 찔러보려면 수백 년에서 수만 년이 걸리게 돼요. 사이트마다 복잡한 특수문자를 섞어 긴 비밀번호를 만들라고 강제하는 이유가 바로 여기에 있어요. 공격자가 컴퓨터를 돌려도 자기 수명 안에 풀지 못하게 시간을 끄는 방패인 셈이에요.
서비스들은 어떻게 이 공격을 막아낼까요?
아무리 복잡한 비밀번호라도 무제한으로 입력을 허용하면 언젠가는 뚫릴 위험이 있어요. 그래서 웹사이트와 스마트폰은 무차별 대입 공격을 차단하기 위한 다양한 안전장치를 마련해 두고 있어요.
스마트폰 잠금화면처럼 비밀번호를 5번 연속으로 틀리면 30초 동안 입력을 막거나 계정을 잠그는 기능이 대표적이에요. 컴퓨터가 1초에 수백만 번 시도하려 해도 한 번 입력할 때마다 대기 시간을 강제하면 공격 자체가 무력화돼요.
왜곡된 글자를 읽고 입력하게 하는 캡차(자동 접속 방지 기술)나 스마트폰으로 인증 번호를 한 번 더 받는 '2단계 인증'도 컴퓨터 프로그램의 무차별 자동 입력을 걸러내는 강력한 방어벽이에요.
🤔 흔한 오해
무차별 대입 공격은 아주 고난도의 정교한 해킹 기술이다.
기술적으로는 가장 단순하고 무식한 공격이에요. 시스템의 숨겨진 취약점을 파고드는 것이 아니라, 컴퓨터의 빠른 연산 속도를 이용해 단순 대입 노가다를 반복하는 방식이에요.
🧺 일상에서 만나요
무차별 대입 공격은 정답이 나올 때까지 모든 암호 조합을 대입하는 공격이며, 긴 비밀번호와 2단계 인증으로 막을 수 있어요.