브라우저에서 방금 만든 비밀번호를 복사한 뒤, 클립보드 기록에 왜 평문이 남나
「복사」를 눌렀다고 해서, 그 문자열이 다음에 붙일 입력칸에만 들어가는 것은 아닙니다. 브라우저는 텍스트를 운영 체제의 클립보드에 넘깁니다. Windows에서 기록을 켜면 Win+V는 최대 25개, 항목당 4MB까지 남깁니다. 디바이스 간 동기화, 또는 Apple 기기의 유니버설 클립보드가 켜져 있으면 같은 계정으로 로그인한 다른 기기에서도 같은 평문을 읽을 수 있습니다. 아래에서는 「복사가 쓴 층」을 나누고, 그 자리에서 대조할 수 있는 순서를 적습니다. 비밀번호 생성 페이지의 조작 안내가 아닙니다.
먼저 복사가 쓴 층을 가르세요
이 글이 답하는 것은 「방금 만든 비밀번호를 복사한 뒤, 클립보드 기록에 평문이 남는 이유」뿐입니다. 비밀번호 생성의 폼 설명도 아니고, 특정 비밀번호 관리자의 안내서도 아닙니다.
복사 버튼이 쓰는 층
「다음 로그인 칸으로 복사했다」가 아닙니다. 문자열은 먼저 현재 사용자 세션의 시스템 클립보드에 들어갑니다. 클립보드를 읽을 수 있는 프로그램은 거기서 한 번 더 가져갈 수 있습니다.
비밀번호를 만든 뒤의 다음 동작은 거의 정해져 있습니다. 페이지의 복사를 누르고, 회원 가입, 공유기 관리 화면, 서버 패널에 붙입니다. 버튼 문구는 「이제 붙일 곳으로 보낸다」처럼 들립니다. 순서는 반대입니다. 페이지는 먼저 navigator.clipboard.writeText를 호출해 문자열을 OS에 넘깁니다. 붙여넣기는 그 다음의 읽기일 뿐입니다. 두 동작 사이에서 평문은 이미 그 탭만의 것이 아닙니다.
UsePwd의 비밀번호 생성도 같은 경로입니다. 무작위 모드는 6–128자, 기본값은 16자입니다. 8자 미만이면 보안이 낮다고 표시합니다. 문자는 현재 탭에서 Web Crypto로 뽑으며, 가입 없이 바로 씁니다. 성공 시 문구는 「클립보드에 복사했습니다.」입니다. 가리키는 것은 시스템 클립보드이지, 「다음 입력칸에만 존재한다」가 아닙니다. 이 문자열은 UsePwd로 가는 요청 본문에 나오지 않습니다. 보안 안내가 답하는 것은 「평문이 브라우저를 떠나 UsePwd로 가는가」입니다. 이 글이 보태는 것은 그다음 층입니다. 탭을 떠난 뒤에도 OS가 그 문자열을 들고 있을 수 있는가.
「새 키를 채팅창에 다시 보내면 안 된다」와는 층이 다릅니다. 그쪽은 검색되고, 동기화되고, 아카이브되는 채널에 스스로 API 키를 붙이는 이야기입니다. 클라우드 환경변수가 유출된 뒤, 새 키를 채팅창에 다시 보내면 안 되는 이유를 보세요. 이 글은 붙이기 전에 일어납니다. 카카오톡이나 슬랙을 아직 열지 않았어도, Win+V 또는 같은 계정의 다른 기기에서 방금 복사한 문자열을 읽을 수 있습니다.
복사 뒤에 물을 것은 「사이트가 비밀번호를 올렸는가」가 아닙니다. 「시스템 클립보드에 쓴 뒤, 기록·동기화·유니버설 클립보드가 평문을 몇 대에 두었는가」입니다. 생성 페이지의 네트워크 패널로 확인할 수 있는 것은 앞의 절반뿐입니다.
Win+V는 몇 개, 얼마나 남기는가
한도는 Microsoft 지원 문서에 적혀 있습니다. 숫자는 그 자리에서 맞출 수 있습니다. 「아마 기억하겠지」라고 짐작할 필요가 없습니다.
Windows 10과 Windows 11에는 클립보드 기록이 있습니다. 처음 쓸 때는 Windows 로고 키+V를 누른 뒤 「켜기」를 고릅니다. 이후 지원 형식에 맞는 일반 복사는 이 목록에 들어갑니다. Microsoft 지원은 한도를 이렇게 적습니다. 기록은 최대 25개. 항목당 4MB까지. 지원 형식은 텍스트, HTML, 비트맵. 고정하지 않은 옛 항목은 새 항목을 위해 밀려납니다.
다시 시작하면 고정하지 않은 기록은 지워집니다. 고정한 항목은 예외입니다. 다시 시작해도, 「새 항목을 위한 자리」에도 사라지지 않습니다. 한 건을 지울 때는 Win+V를 열고, 해당 항목 옆의 「자세히 보기」에서 삭제를 고릅니다. 디바이스와 클라우드에서 고정하지 않은 내용을 한 번에 지우려면 「설정 → 시스템 → 클립보드 → 클립보드 데이터 지우기」를 쓰거나, 기록 패널 맨 위의 「모두 지우기」를 고릅니다. 순서는 Microsoft 지원 「클립보드 사용」에 있으며, 내 PC에서 같은 조작을 할 수 있습니다.
비밀번호는 4MB보다 훨씬 작아서, 길이는 문턱이 되지 않습니다. 16자 무작위, 128자 무작위, 생성기에서 여러 줄을 한데 묶어 복사한 덩어리도 텍스트로 기록에 들어갑니다. 스크린샷도 클립보드를 탑니다. 화면에 나온 비밀번호를 찍으면 그 비트맵이 25개 중 한 칸을 씁니다. 패널에 글자가 보인다고 해서, 기록이 글자만 담는 것은 아닙니다.
다음 복사로 덮입니다. 이 층만 보고 옛 비밀번호가 사라졌다고 생각하기 쉽습니다.
고정하지 않은 항목은 다시 시작하면 지워집니다. 고정은 손으로 지울 때까지 남습니다.
텍스트, HTML, 비트맵. 비밀번호는 거의 항상 들어갑니다. 캡처는 해상도에 달립니다.
Windows 10 지원은 2025년 10월 14일에 끝났습니다. 클립보드 기록의 규칙은 Windows 11에서도 같은 지원 문서입니다. 「보안 업데이트가 멈췄다」를 「기록도 사라졌다」로 읽지 마세요. 그 PC를 아직 쓰고 있다면, Win+V는 복사한 텍스트를 여전히 나열할 수 있습니다.
동기화와 유니버설 클립보드는 어디로 보내는가
이 기기의 기록은 첫 사본입니다. 동기화를 켜면 신뢰 경계는 「그 계정으로 로그인한 모든 기기」가 됩니다.
Windows의 디바이스 간 동기화는 Microsoft 계정 또는 회사 계정에 묶입니다. 경로는 「설정 → 시스템 → 클립보드」입니다. 「디바이스에서 클립보드 기록」을 켭니다. 자동 동기화는 복사한 텍스트를 클라우드에 올린 뒤, 같은 로그인 정보의 다른 기기로 보냅니다. 수동 동기화는 먼저 Win+V를 누르고, 해당 항목의 동기화 단추를 눌러야 올라갑니다. 둘 다 같은 Microsoft 지원 문서에 있습니다. 차이는 「클라우드에 들어가는가」가 아닙니다. 「매번 들어가는가, 표시를 했을 때만 들어가는가」입니다.
Apple 기기는 다른 관입니다. 유니버설 클립보드는 핸드오프 위에 있습니다. 같은 Apple 계정이고 서로 가까운 기기라면, 한쪽에서 복사하고 다른 쪽에서 붙일 수 있습니다. Apple의 「Handoff 보안」(페이지 표기는 2021년 2월 18일)에는 그 자리에서 대조할 수 있는 사실이 둘 있습니다. 첫째, 앱 개발자가 공유를 막지 않는 한, 클립보드 내용은 기본으로 유니버설 클립보드와 공유됩니다. 둘째, 앱은 사용자가 붙이기 전에도 클립보드를 읽을 수 있습니다. 유니버설 클립보드가 켜져 있으면, 이 읽기는 같은 로그인 정보의 다른 기기 위 앱으로 넓어집니다.
전송 자체는 암호화되어 있습니다. 핸드오프는 Bluetooth Low Energy로 알리고, 활동 페이로드를 iMessage에 가까운 방식으로 지키며, 큰 데이터는 기기 사이 Wi-Fi 위의 TLS로 움직입니다. 이는 「경로상의 제삼자가 내용을 열지 못할 수 있다」는 뜻입니다. 「거실의 공용 iPad가 못 읽는다」가 아닙니다. 신뢰 모델은 계정이지, PC 한 대가 아닙니다. 가족이 Apple 계정 하나를 같이 쓰거나, 회사 노트북과 집 PC가 같은 Microsoft 계정이면, 방금 복사한 비밀번호를 읽을 수 있는 범위가 한 바퀴 넓어집니다.
「클라우드 동기화는 암호화되어 있다」는 「두 번째 기기에서는 평문이 안 보인다」가 아닙니다. 암호화가 지키는 것은 전송 중과 클라우드에 두는 형태입니다. 잠금이 풀린 다른 기기에서 붙이면, 읽는 것은 원래 문자열입니다.
비밀번호 관리자가 기록을 피할 수 있는 이유
Windows가 「이것은 비밀번호다」라고 알아보는 것이 아닙니다. 네이티브 앱은 시스템이 아는 형식을 클립보드에 더 넣을 수 있습니다.
Microsoft의 Win32 문서는 「클라우드 클립보드와 클립보드 기록 형식」을 따로 나열합니다. 기록이나 다른 기기에 넣고 싶지 않은 앱은 다음 형식을 등록해 쓸 수 있습니다. ExcludeClipboardContentFromMonitorProcessing은 그 쓰기의 모든 형식을 기록에도 동기화에도 넣지 않습니다. CanIncludeInClipboardHistory에 값 0인 DWORD를 두면 기록에 들어가지 않고, 1이면 기록에 넣으라고 명시합니다. CanUploadToCloudClipboard의 0과 1은 클라우드 동기화만 다루며, 이 기기의 기록은 바꾸지 않습니다. 설명은 Microsoft Learn 「Clipboard Formats」에 있습니다.
비밀번호 관리자와 Windows 자격 증명 관리자는 이 네이티브 경로를 씁니다. 웹 페이지의 navigator.clipboard.writeText에는 같은 능력이 없습니다. 텍스트는 쓸 수 있지만, 위의 제외 형식은 붙일 수 없습니다. 그래서 페이지의 복사는 시스템에도, 타사 기록 도구에도 그냥 텍스트입니다. 어느 사이트가 「암호화를 잊은」 것이 아닙니다. 페이지에 허용된 클립보드 API가 원래 텍스트에서 멈춘다는 뜻입니다.
UsePwd는 비밀번호 보관함이 아니고, 계정도 없습니다. 상단 바 오른쪽은 언어 전환뿐입니다. 생성 페이지와 강도 검사 모두 가입 없이 바로 씁니다. 강도 검사는 이 기기에서 강도를 가늠하고, 페이지와 함께 제공되는 약한 비밀번호 공개 목록과 대조합니다. 검사할 비밀번호는 올리지 않으며, Have I Been Pwned도 전역 조회도 아닙니다. 이 약속이 다루는 것은 「비밀번호가 UsePwd 요청에 들어갔는가」입니다. Windows가 같은 문자열을 Win+V에 썼는가는 다루지 않습니다. 둘은 동시에 성립할 수 있습니다. 네트워크 패널은 깨끗해도, 클립보드 기록에는 평문이 남습니다.
그 자리에서 기록을 대조하는 법
목적은 「세상 누구도 이 비밀번호를 못 본다」를 증명하는 것이 아닙니다. 페이지 요청 본문에는 없고, 시스템 기록에는 있을 수 있으며, 동기화가 켜져 있으면 다른 기기에서도 읽을 수 있다는 세 가지입니다.
-
01
실제 계정에 쓰지 않을 예시 비밀번호를 준비하세요
지금 쓰는 로그인 비밀번호는 쓰지 마세요. 비밀번호 생성에서 16자 무작위 문자열을 만들거나, 직접
ExampleClip-20260904를 입력합니다. 페이지는 가입 없이 바로 씁니다. 아래는 시스템의 움직임을 보기 위한 것입니다. 이 문자열을 정식 계정에 넣지 마세요. -
02
복사한 뒤 바로 Win+V를 누르세요
복사를 누르거나, 텍스트를 고른 뒤 Ctrl+C입니다. 기록이 아직 꺼져 있으면 패널이 먼저 켜기를 요청합니다. 켠 뒤 목록 맨 위에 방금 문자열이 나와야 합니다. 보인다면 「복사」는 이미 탭을 떠나 시스템 기록에 들어간 것입니다. macOS에는 Win+V 패널이 없습니다. 유니버설 클립보드가 켜져 있으면 같은 Apple 계정의 가까운 다른 기기에서 붙여 같은 문자열이 나오는지 보세요.
-
03
네트워크 패널에서 원문 유무를 보세요
F12로 네트워크를 엽니다. 생성과 복사 사이에, 이 비밀번호를 요청 본문으로 UsePwd에 보내는 API는 나오지 않아야 합니다. 운영 환경에서는
/tj/로 접속 분석이 나갈 수 있습니다. 내용은 페이지 이름과 단추 이름이며, 복사한 평문이 아닙니다. 이 기기 미리보기는 분석을 보내지 않습니다. 이 단계가 대조하는 것은 사이트 경계이지, OS 경계가 아닙니다. -
04
동기화 스위치를 보고, 지울 층을 정하세요
「설정 → 시스템 → 클립보드」를 엽니다. 「디바이스에서 클립보드 기록」이 켜져 있으면, 자동 동기화인지 수동 동기화인지 봅니다. 기록을 지울 때는 Win+V에서 해당 한 건을 지우거나 「클립보드 데이터 지우기」를 씁니다. 고정은 먼저 해제한 뒤 지웁니다. Apple 기기는 「시스템 설정 → 일반 → AirDrop 및 핸드오프」와, 계정 아래의 기기 목록을 보세요.
-
05
의미 없는 다른 텍스트로 현재 칸을 덮으세요
「덮어쓰기 테스트」나 공백 한 칸을 복사합니다. 현재 클립보드가 바뀌어도, 기록의 옛 항목은 남을 수 있습니다. 위 순서로 지우거나, 고정하지 않았다면 다시 시작할 때까지입니다. 현재 칸만 덮었다고 해서 「기록이 비었다」가 되지 않습니다.
그 문자열이 약한지, 페이지와 함께 제공되는 약한 비밀번호 공개 목록에 있는지도 보고 싶다면 강도 검사를 여세요. 검사는 이 기기에서 끝나며, 검사할 비밀번호는 올라가지 않습니다. 그쪽이 답하는 것은 「강한가」이지, 「Win+V에 아직 있는가」가 아닙니다. 둘 다 가입 없이 바로 씁니다. 공개 중인 캠페인 URL에 붙는 utm_*와 click ID는 다른 반출입니다. 캠페인 링크를 다시 보낼 때 UTM과 click_id가 어떤 신원을 함께 가져가나를 보세요.
기록을 지워도 막지 못하는 것
「모두 지우기를 눌렀다」를 「이 비밀번호가 세상에서 사라졌다」로 읽으면, 마찬가지로 대조할 수 있는 경계를 몇 개 놓칩니다.
비밀번호를 다른 사람에게 넘길 때, 「복사해서 채팅에 붙이고 나중에 Win+V를 지운다」에 기대지 마세요. 채팅 쪽에는 검색 가능한 평문이 남습니다. 한 번만 넘기려면 일회용 링크를 쓰세요. 평문은 이 기기에서 AES-256-GCM으로 암호화하고, 번호는 ?id=, 키는 #입니다. 만들기와 읽기 모두 가입 없이 바로 쓰며, 서버가 잠시 보관하는 것은 암호문뿐입니다. 키가 접속 로그에 들어가지 않는 이유는 URL의 # 이후가 서버 로그에 안 남는 이유에 있습니다. 두 경로를 같은 약속으로 섞지 마세요.
파일은 세 번째 경로입니다. 파일당 5GB 이하의 이 기기 암호화와 복호화는 파일 암호화로 하며, 출력은 .lock / .enc이고 파일은 기본적으로 올라가지 않습니다. 비밀번호 자체는 6–128자로 만들고, 강도는 강도 검사에서 봅니다. 이 페이지들도 이 글과 같이 가입 없이 바로 씁니다. UsePwd에는 계정과 비밀번호 보관함이 없고, 복사한 문자열을 사용자별로 찾아 주지도 않습니다. 정체성은 소개에 있습니다.
복사한 뒤에는 먼저 시스템의 기록과 동기화 스위치를 보고, 그다음 사이트의 요청 본문을 보세요. 「UsePwd에 올리지 않았다」와 「Win+V에 남지 않았다」를 가를 수 있으면, 이 기기 생성 글을 「복사는 붙일 곳에만 존재한다」는 보증으로 읽지 않게 됩니다.
복사 뒤에 자주 묻는 것
다음 네 가지는 이 글의 경계만 답합니다. 생성 페이지의 단추 설명은 반복하지 않습니다.
읽은 뒤 클립보드 기록을 대조하세요
글이 답하는 것은 「복사한 뒤 기록에 평문이 남는 이유」입니다. 실제 계정에 쓰지 않을 예시 비밀번호를 만들고 Win+V를 누르려면 비밀번호 생성을 여세요. 먼저 가입할 필요는 없습니다.