사진=게티이미지뱅크
사진=게티이미지뱅크
크롬이나 웨일 등 웹 브라우저는 사이트 회원가입을 할 때 종종 정체불명의 문자열을 비밀번호로 추천한다. ‘aK8mT3qP7sV2nR’처럼 영문 대소문자와 숫자가 뒤섞인 조합이 대부분이다. 보고도 외우기 어려운 이런 비밀번호를 제시하는 것은 예측하기 어렵도록 하기 위해서다.

통상 해커 입장에서 비밀번호를 알아내는 가장 기초적인 방법은 가능한 조합을 모두 입력하는 것이다. 숫자 네 자리 자물쇠라면 0000부터 9999까지 1만 번을 시도한다. 이를 ‘무차별 대입 공격’이라고 한다. 비밀번호도 마찬가지다. 숫자로만 구성된 8자리 비밀번호의 조합은 1억개다. 이를 16자리로 늘리면 경우의 수는 1경으로 증가한다.

보안업체 티오리에 따르면 엔비디아의 최신 그래픽카드 RTX 5090 12개를 사용했을 때 숫자 8자리 비밀번호를 알아내는 데는 최장 15분이 걸린다. 같은 조건에서 숫자 16자리로 된 비밀번호는 최장 3000년이 지나야 추릴 수 있다. 두 조건 모두 맞는 비밀번호를 가장 마지막에 찾았을 때 기준이다.

업계에선 특수문자를 섞는 것보다 길이를 늘리는 편이 보안에 도움이 된다고 조언한다. 영문 소문자 26개를 무작위로 조합한 12자리 비밀번호의 경우의 수는 약 9경5400조개다. 영문 대소문자와 숫자, 특수문자 등 94종류를 조합한 8자리 비밀번호(약 6096조개)보다 15배 이상 많다.

그렇다면 사람이 아무렇게나 키보드를 두드려도 안전한 비밀번호가 만들어질까. 그렇지 않다. 사람은 무작위로 글자를 선택한다고 생각하면서도 일정한 규칙을 따른다. ‘qwerty1234’처럼 키보드에서 가까운 글자를 누르거나 이름 뒤에 생년월일을 붙이는 식이다. 해커들은 기존에 유출된 비밀번호에서 자주 등장하는 단어와 숫자 조합을 수집해 우선 대입한다.

웹 브라우저가 예측하기 어려운 난수를 활용해 문자와 숫자를 조합해 비밀번호를 제안하는 이유도 여기에 있다. 사람이 무의식적으로 설정하는 규칙을 배제하는 게 핵심이다. 이렇게 생성된 비밀번호는 브라우저의 비밀번호 관리자에 저장돼 다음 로그인 때 자동으로 입력할 수 있다.

라현진 기자 raraland@hankyung.com