재사용이 위험한 진짜 이유
비밀번호 사고의 대부분은 누군가 내 비밀번호를 알아맞혀서 생기지 않습니다. 어딘가에서 이미 유출된 아이디와 비밀번호 목록을 사서, 그 조합을 다른 사이트에 기계적으로 대입해 보는 방식입니다. 이걸 크리덴셜 스터핑이라고 부릅니다. 몇 년 전에 가입하고 잊어버린 커뮤니티 사이트에서 새어 나간 조합이, 지금 쓰는 쇼핑몰과 간편결제에서 그대로 통하는 식입니다. 공격자 입장에서는 비용이 거의 들지 않습니다. 자동화된 프로그램이 초당 수백 건을 시도하고, 100건 중 한두 건만 맞아도 남는 장사입니다.
여기서 중요한 결론이 나옵니다. 비밀번호를 아무리 복잡하게 만들어도, 그걸 열 군데에 똑같이 쓰고 있으면 안전 수준은 그 열 곳 중 가장 허술한 곳에 맞춰집니다. 반대로 조금 단순하더라도 사이트마다 다르면, 한 곳이 털려도 피해가 거기서 멈춥니다. 그래서 손을 대야 할 첫 번째 항목은 "더 어렵게"가 아니라 "겹치지 않게"입니다.
순서를 정할 때는 그 계정이 털렸을 때 다른 계정으로 번지는지를 기준으로 보면 됩니다. 이메일이 1순위입니다. 대부분의 서비스가 비밀번호 재설정 링크를 이메일로 보내기 때문에, 이메일을 뺏기면 나머지가 도미노처럼 넘어갑니다. 두 번째는 휴대폰 관련 계정입니다. 통신사 계정이나 본인확인에 쓰이는 계정이 넘어가면 문자 인증까지 우회될 수 있습니다. 그다음이 금융과 간편결제, 그다음이 쇼핑과 배달처럼 결제 수단이 등록된 곳입니다. 오래전에 가입한 잡다한 사이트는 마지막인데, 대신 이런 곳은 비밀번호를 바꾸기보다 탈퇴하는 편이 낫습니다.
길이가 복잡도를 이긴다
"영문 대소문자, 숫자, 특수문자를 조합해 8자 이상"이라는 안내를 오래 봐 왔지만, 실제로는 이 규칙이 사람을 이상한 방향으로 몰아갑니다. Password1! 같은 형태로 수렴하기 때문입니다. 규칙을 지키긴 했는데 공격자가 가장 먼저 시도하는 패턴이 됩니다. 최근의 국내외 지침들은 방향이 조금 달라졌습니다. 특수문자 조합을 강제하고 90일마다 바꾸게 하는 방식보다, 충분히 길게 만들고 유출 정황이 있을 때 바꾸는 쪽이 실효성이 크다고 봅니다.
현실적인 대안이 패스프레이즈입니다. 서로 관계없는 단어 네다섯 개를 이어 붙이는 방식입니다. 예를 들어 "고등어-우산-계단-보리차" 같은 식으로, 문장이 아니라 무작위에 가까운 단어 나열이어야 합니다. 유명한 속담이나 노래 가사, 좋아하는 팀 이름과 등번호처럼 추측 가능한 조합은 길어도 약합니다. 한글 단어를 영문 자판 그대로 쳐서 쓰는 방식(rhemdd 같은 형태)도 흔한데, 이 역시 널리 알려진 변환이라 생각만큼 안전하지는 않습니다.
| 흔한 방식 | 실제 안전도 | 왜 그런가 | 대안 |
|---|---|---|---|
| 한 개를 만들어 모든 사이트에 사용 | 매우 낮음 | 가장 허술한 사이트가 전체 수준을 결정 | 사이트마다 다르게. 최소한 중요 계정 5개는 완전히 분리 |
| 기본 비밀번호 + 사이트 이름 조합(예: 뒤에 nv, gg를 붙임) | 낮음 | 규칙이 한 번 노출되면 나머지가 전부 추론됨 | 규칙 기반은 관리자에게 맡기고 사람은 무작위를 씀 |
| 8자에 특수문자 한 개 | 보통 이하 | 패턴이 정형화되어 사전 공격 대상 | 길이를 12자 이상, 가능하면 16자 이상으로 |
| 무관한 단어 4개 이상 연결 | 높음 | 길이가 길고 외우기도 쉬움 | 단어 사이에 숫자나 기호를 하나 끼우면 더 나음 |
| 관리자가 생성한 무작위 16자 이상 | 가장 높음 | 사람이 기억할 필요가 없어 재사용 유인이 사라짐 | 다만 마스터 비밀번호 하나는 반드시 외워야 함 |
| 주기적으로 뒤 숫자만 1씩 올림 | 낮음 | 변경 이력이 예측 가능. 강제 변경 규칙의 부작용 | 정기 변경보다 유출 확인 시 즉시 변경 |
손으로 무작위 문자열을 만드는 건 생각보다 어렵습니다. 사람이 만든 무작위는 자판 배열이나 익숙한 손 모양을 따라가는 경향이 있습니다. 즉석에서 하나 필요하다면 비밀번호 생성기로 만들어 쓰는 편이 낫습니다. 브라우저에서만 동작하므로 만든 값이 어디로 전송되지는 않습니다.
브라우저에 저장할까, 전용 관리자를 쓸까
둘 다 "저장해서 자동으로 채워 준다"는 점은 같습니다. 차이는 저장된 것을 누가 어떻게 지키느냐, 그리고 기기를 잃어버렸을 때 어떻게 되느냐입니다. 결론부터 말하면, 아무 데도 저장하지 않고 머리로 버티다가 결국 재사용하는 것보다는 브라우저 저장이라도 쓰는 편이 낫습니다.
브라우저 저장의 장점은 아무것도 새로 설치할 필요가 없고 로그인할 때 자동으로 채워진다는 점입니다. 단점은 브라우저 계정 자체가 뚫리면 저장된 목록이 통째로 넘어간다는 점, 그리고 다른 브라우저나 앱에서는 잘 안 불려 온다는 점입니다. 특히 주의할 것은 공용 PC나 가족 공용 노트북에서 무심코 "저장하시겠습니까"에 예를 눌러 두는 경우입니다. 브라우저 설정에서 저장된 비밀번호 목록을 볼 수 있는데, 기기 잠금 해제 수단(윈도우 로그인 암호나 지문)만 알면 평문으로 확인되는 구조인 경우가 많습니다.
전용 비밀번호 관리자는 저장소를 마스터 비밀번호 하나로 잠그고, 여러 기기와 브라우저에서 함께 쓰도록 만든 도구입니다. 무작위 비밀번호 생성, 재사용·유출 항목 점검, 안전 메모 보관 같은 기능이 붙어 있는 경우가 많습니다. 단점도 분명합니다. 마스터 비밀번호를 잊으면 대부분 복구가 불가능하고(그게 설계 의도입니다), 서비스형 관리자는 그 업체가 사고를 내면 영향 범위가 넓습니다. 유료인 경우도 많습니다.
| 구분 | 장점 | 약점 | 기기를 잃어버리면 |
|---|---|---|---|
| 머리로 외우기 | 유출될 저장소 자체가 없음 | 결국 재사용으로 흐름. 계정 수가 늘면 유지 불가 | 영향 없음. 다만 어차피 재사용이라 위험은 별개 |
| 종이 수첩에 적기 | 온라인 유출과 무관. 고령층에게 현실적 | 분실·도난·화재. 가족이 볼 수 있음 | 수첩을 잃으면 전부 노출. 집 안 고정된 곳에 보관 |
| 브라우저·운영체제 저장 | 추가 설치 없음. 자동 입력이 편함 | 해당 계정이 뚫리면 통째로 노출. 브라우저 간 이동이 번거로움 | 기기 잠금이 걸려 있으면 즉시 노출되지는 않음. 계정 비밀번호를 바꾸고 기기 원격 로그아웃 |
| 전용 관리자(설치형·서비스형) | 기기·브라우저 통합, 무작위 생성, 재사용 점검 | 마스터 분실 시 복구 불가. 서비스 사고 시 영향 큼 | 다른 기기에서 마스터로 로그인해 계속 사용. 분실 기기 세션은 해제 |
| 메모 앱·엑셀 파일 | 익숙함 | 암호화가 없거나 약함. 클라우드 동기화로 함께 새어 나감 | 파일이 그대로 노출. 권하지 않음 |
어느 쪽을 택하든 공통으로 지켜야 할 것이 있습니다. 저장소를 여는 열쇠(브라우저 계정 비밀번호, 마스터 비밀번호, 기기 잠금)는 다른 어디에도 쓰지 않는 유일한 값이어야 하고, 그 계정에는 반드시 2단계 인증을 걸어 둬야 합니다. 저장소는 잠갔는데 열쇠를 아무 데나 두면 의미가 없습니다.
2단계 인증은 종류에 따라 다르다
2단계 인증(2FA)을 켰다는 말만으로는 안전도를 알 수 없습니다. 방식에 따라 막아 내는 공격이 다르기 때문입니다. 실무에서 가장 자주 뚫리는 건 SMS입니다. 문자 자체가 약해서라기보다, 가짜 로그인 페이지를 만들어 놓고 비밀번호와 문자 인증번호를 실시간으로 받아 그대로 진짜 사이트에 넣는 수법이 흔해서입니다. 이런 유형은 스미싱 문자 대응에 정리된 흐름과 이어집니다.
| 방식 | 강도 | 막아 주는 것 | 여전히 뚫리는 지점 |
|---|---|---|---|
| SMS 문자 인증 | 낮음~보통 | 단순 비밀번호 유출 | 가짜 사이트로 유도해 실시간 중계, 문자 가로채기, 명의 도용 개통 |
| 이메일 인증 코드 | 낮음~보통 | 비밀번호만 아는 상대 | 이메일이 이미 넘어갔다면 무력. 이메일 자체 보호가 먼저 |
| 앱 OTP(6자리 숫자, 30초마다 변경) | 보통~높음 | 비밀번호 유출, 통신사 관련 공격 | 가짜 사이트 실시간 중계에는 여전히 취약 |
| 푸시 승인(앱에서 예/아니오) | 보통~높음 | 대부분의 자동화 공격 | 반복 알림으로 실수 승인을 유도하는 수법. 숫자 대조 방식이 더 안전 |
| 하드웨어 보안키(USB·NFC) | 높음 | 가짜 사이트 중계까지 차단(주소가 다르면 동작하지 않음) | 키 분실. 반드시 예비 키나 백업 코드 필요 |
| 패스키(passkey) | 높음 | 비밀번호 자체가 없어 유출·재사용·가짜 사이트 문제에서 벗어남 | 기기·계정 복구 경로가 약하면 그쪽이 표적. 지원하는 서비스가 아직 제한적 |
패스키는 최근 몇 년 사이 빠르게 늘고 있는 방식입니다. 원리는 간단합니다. 비밀번호를 만들어 서버에 저장하는 대신, 기기 안에 개인키를 두고 서비스에는 공개키만 등록합니다. 로그인할 때는 기기 잠금(지문·얼굴·PIN)으로 본인 확인을 하고, 기기가 서명을 만들어 보냅니다. 서버에 비밀번호가 없으니 서버가 털려도 빼 갈 비밀번호가 없고, 서명이 사이트 주소에 묶여 있어 가짜 사이트에서는 아예 동작하지 않습니다. 국내에서도 대형 포털과 일부 금융·커머스에서 도입이 진행 중이지만, 서비스마다 지원 여부와 이름(간편로그인, 생체로그인 등)이 달라 설정 화면에서 직접 찾아봐야 합니다. 당분간은 비밀번호를 완전히 없애기보다 패스키를 추가로 등록해 두는 형태가 일반적입니다.
복구 수단을 먼저 만들어 둔다
2단계 인증을 켠 뒤 가장 흔한 사고는 해킹이 아니라 본인이 못 들어가는 상황입니다. 휴대폰을 바꾸면서 OTP 앱을 그냥 지웠거나, 잃어버렸거나, 초기화했는데 계정마다 등록된 코드가 다 날아간 경우입니다. 이걸 막는 게 백업 코드입니다. 2단계 인증을 설정할 때 한 번 보여 주는 일회용 코드 묶음인데, 대부분 그 화면을 그냥 넘깁니다.
설정 직후에 해 둘 일은 세 가지입니다. 첫째, 백업 코드를 화면 캡처가 아니라 종이에 출력하거나 옮겨 적어 집 안 고정된 장소에 둡니다. 캡처를 사진첩에 두면 휴대폰과 운명을 같이하고, 클라우드 동기화로 함께 새어 나갈 수 있습니다. 둘째, 인증 수단을 두 개 이상 등록합니다. 앱 OTP와 백업 코드, 또는 보안키 두 개처럼 하나가 사라져도 남는 구성이어야 합니다. 셋째, 복구용 이메일과 전화번호가 지금도 쓰는 것인지 확인합니다. 몇 년 전 회사 메일이나 해지한 번호가 그대로 남아 있는 경우가 정말 많습니다.
휴대폰을 실제로 잃어버렸을 때의 처리 순서는 휴대폰 분실 대처에, 계정이 이미 넘어간 정황이 있을 때는 계정 해킹 대응에 정리돼 있습니다. 공동인증서나 금융인증서를 함께 쓰고 있다면 인증서 종류와 발급도 함께 보면 흐름이 이어집니다.
유출 확인과 계정 분리
내 계정이 이미 유출 목록에 있는지 확인하는 방법은 몇 가지가 있습니다. 가장 손쉬운 건 브라우저와 운영체제가 제공하는 경고입니다. 저장된 비밀번호 중 알려진 유출 목록과 겹치는 항목이 있으면 알려 주는 기능이 있고, 대개 설정의 비밀번호 또는 보안 항목에 있습니다. 위치와 이름은 버전에 따라 다르니 설정 검색창에 "비밀번호" 또는 "보안"으로 찾아보세요. 이메일 주소를 넣으면 유출 이력을 알려 주는 외부 서비스도 있는데, 이런 곳에는 이메일 주소만 넣고 비밀번호는 절대 입력하지 않아야 합니다.
경고가 떴다고 해서 지금 해킹당했다는 뜻은 아닙니다. 과거에 가입했던 어떤 서비스가 유출 사고를 냈고 그 목록에 내 조합이 있다는 의미입니다. 해야 할 일은 그 비밀번호를 쓰는 모든 곳을 바꾸는 것입니다. 개인정보 유출 통지를 받았을 때의 전체 대응 절차는 개인정보 유출 통지 대응에 따로 정리돼 있습니다.
마지막으로 회사 계정과 개인 계정 분리입니다. 이건 보안 문제이기도 하지만 실무 문제이기도 합니다. 회사 메일로 개인 쇼핑몰에 가입해 두면 퇴사하는 순간 그 계정들의 비밀번호 재설정 경로가 끊깁니다. 반대로 개인 메일과 개인 클라우드로 업무 자료를 주고받으면 회사 보안 규정 위반이 되는 경우가 많고, 나중에 문제가 생겼을 때 책임 소재가 복잡해집니다. 브라우저 프로필을 업무용과 개인용으로 나눠 쓰고, 각각 다른 계정으로 동기화해 두면 자동 입력이 섞이는 사고도 줄어듭니다. 회사 노트북에 개인 비밀번호 관리자를 로그인해 두는 것도 피하는 편이 낫습니다. 반납할 때 잊고 넘기는 일이 생기기 때문입니다.
자주 묻는 질문
비밀번호를 3개월마다 바꾸라고 하던데, 지금도 그렇게 해야 하나요?
주기적 강제 변경은 최근 지침에서 권장 강도가 낮아진 편입니다. 사람들이 뒤 숫자만 1씩 올리는 식으로 대응해 실효가 떨어지고, 오히려 기억하기 쉬운 형태로 약해지기 때문입니다. 방향은 두 가지로 정리됩니다. 하나는 충분히 길게 만드는 것, 다른 하나는 유출 정황이 있거나 재사용 중인 비밀번호를 발견했을 때 즉시 바꾸는 것입니다. 다만 회사나 기관에 자체 규정이 있으면 그 규정을 따라야 합니다. 접근통제 관련 내부 기준을 두고 운영하는 곳이 많습니다.
브라우저에 저장하는 게 위험하다고 하던데 지금 저장된 걸 다 지워야 하나요?
지우는 것이 목적이 아니라, 저장소를 여는 열쇠를 지키는 것이 목적입니다. 브라우저 계정 비밀번호를 다른 곳과 겹치지 않는 값으로 바꾸고 2단계 인증을 켜면 위험이 크게 줄어듭니다. 여기에 기기 자체 잠금(PIN·지문)이 걸려 있어야 합니다. 정리할 것이 있다면 공용 PC나 이제 안 쓰는 기기에 저장된 항목입니다. 브라우저 설정에서 저장된 비밀번호 목록과 로그인된 기기 목록을 확인하고, 낯선 기기는 로그아웃시키세요. 메뉴 위치와 이름은 브라우저 버전에 따라 다르니 설정 검색을 이용하는 편이 빠릅니다.
패스키를 쓰면 비밀번호를 아예 안 만들어도 되나요?
아직은 병행하는 경우가 대부분입니다. 패스키를 지원하는 서비스가 늘고 있지만 모든 서비스가 지원하는 것은 아니고, 지원하더라도 기존 비밀번호 로그인을 함께 남겨 두는 곳이 많습니다. 그래서 현실적인 방법은 패스키를 등록해 평소 로그인에 쓰고, 비밀번호는 그대로 두되 다른 곳과 겹치지 않는 값으로 바꿔 두는 것입니다. 주의할 점은 복구 경로입니다. 패스키는 기기나 계정에 묶여 있어, 기기를 모두 잃었을 때 어떻게 복구되는지를 미리 확인하고 백업 코드나 두 번째 인증 수단을 남겨 둬야 합니다.
휴대폰을 바꾸면 OTP 앱은 어떻게 해야 하나요?
기기를 바꾸기 전에 옮기는 것이 원칙입니다. 새 휴대폰이 손에 들어온 뒤에 하려면 늦습니다. 순서는 이렇습니다. 먼저 각 서비스의 보안 설정에서 백업 코드를 발급받아 종이에 옮겨 적고, OTP 앱이 계정 동기화나 내보내기 기능을 제공하면 그 기능으로 옮깁니다. 지원하지 않는 앱이라면 계정마다 2단계 인증을 해제했다가 새 기기에서 다시 등록하는 방식으로 하나씩 옮겨야 합니다. 앱과 버전에 따라 방법이 다르니 앱 설정에서 이전 또는 내보내기 항목을 찾아보세요. 이미 초기화해 버렸다면 백업 코드로 로그인하고, 그것도 없으면 각 서비스의 계정 복구 절차를 밟아야 하는데 시간이 오래 걸립니다.