방금 만든 데이터베이스 비밀번호를 Win+Shift+S로 잘라 카카오톡에 붙이거나, Zoom에서 「전체 화면」을 고른 채 주소창에 일회용 링크를 열어 두는 일은 흔합니다. 둘 다 Network 패널의 업무 요청을 거치지 않습니다. 그래도 평문과 # 뒤의 키는 두 번째 사람, 두 번째 기기, 나중에 재생되는 녹화로 넘어갑니다. 앞글은 비밀번호를 복사한 뒤 클립보드를 누가 또 읽는가를 다뤘습니다. 이번 글은 경로를 바꿉니다. 비밀이 아직 화면에 있을 때, 스크린샷과 화면 공유는 그것을 누구에게 넘기는가.

비밀번호 생성 설명서도, 일회용 링크 만들기 페이지의 기능 목록도 아닙니다. 질문은 하나입니다. 픽셀 안의 비밀번호와 주소 전체가 어떤 파일, 어떤 세션, 어떤 앨범에 남는가. MyPassGen의 생성 결과는 보이는 글자로 나열됩니다. 동그라미 마스킹이 아닙니다. 일회용 링크를 만들면 s.html?id=…#… 전체가 결과 칸에 나옵니다. 가입 없이 바로 씁니다. Network는 요청 줄에 # 뒤가 없음을 보여줄 수 있습니다. 스크린샷에 없다는 뜻은 아닙니다.

먼저 갈래를 나눕니다

말로 읽거나, 지정한 한 사람에게 일회용 링크로 보낼 수 있으면 전체 화면을 찍지 마세요. 꼭 찍어야 하면 결과 칸만 자르고, 주소창과 작업 표시줄 알림은 빼세요. 회의에서는 지금 창이나 지금 탭만 공유하고, 모니터 전체를 고르지 마세요. 아래 단계는 실제 계정에 쓰지 않을 테스트 비밀번호만 씁니다. 지금 쓰는 마스터 비밀번호로는 연습하지 마세요.

픽셀 안의 비밀: 페이지와 주소창

생성 페이지의 비밀번호는 type="password"의 점이 아닙니다. 결과 목록에 글자로 쓰여 있어, 이 화면을 보는 사람은 누구든 읽을 수 있습니다. 문자를 대조하라고 이렇게 만든 것이지, 스크린샷을 막으려는 설계가 아닙니다. 점은 옆에서 한눈 파는 사람만 가립니다. 픽셀 복사는 「비밀번호 칸처럼 보이는지」를 구분하지 않습니다.

일회용 링크는 키를 URL의 # 뒤에 둡니다. 형태는 …/s.html?id={id}#{key}입니다. RFC 3986 §3.5에서 프래그먼트 식별자는 사용자 에이전트만 해석하고, 자원을 가져올 때 서버로 보내지 않습니다. RFC 9110 §10.1.3은 Referer를 만들 때 프래그먼트와 userinfo를 넣지 말 것을 요구합니다. 접속 로그와 Referer에 키가 없다고 해서, 화면에도 없다는 뜻은 아닙니다. 같은 RFC 9110의 보안 고려는 더 직설적입니다. 프래그먼트는 요청에 안 들어가지만, 사용자 에이전트, 확장, 응답에서 돌아가는 스크립트에는 보입니다.

주소창은 URI 전체를 보여 주는 면입니다. #도 포함합니다. 브라우저 기록도 프래그먼트가 붙은 항목을 남기고, 뒤로 가기로 같은 주소로 돌아갑니다. 다른 글에서 키를 왜 # 뒤에 두는지를 적었습니다. HTTP 요청 줄에 안 넣기 위해서입니다. 스크린샷, 화면 공유, 회의 녹화는 다른 층입니다. 보이는 픽셀을 복사할 뿐, HTTP 규격을 읽지 않습니다.

MyPassGen에서 일회용 링크를 만들면 결과 칸에 링크 전체가 쓰이고, 복사는 navigator.clipboard.writeText를 탑니다. 만들기와 읽기 모두 로그인이 없습니다. 확인할 것은 이 문자열이 데스크탑 PNG, 휴대폰 「스크린샷」 앨범, 회의 재생의 주소창에 나왔는지입니다. 「서버가 평문을 보느냐」가 아닙니다.

스크린샷은 어디에 떨어지는가

스크린샷은 「찍자마자 채팅창에만 있다」가 아닙니다. 운영체제가 먼저 파일이나 클립보드에 쓰고, 그다음에야 붙여넣기를 합니다. 파일은 메시지보다 거두기 어렵습니다.

Mac: 기본값은 데스크탑

Apple 지원은 이렇게 적습니다. Shift-Command-3은 전체 화면, Shift-Command-4는 선택 영역. 기본 파일 이름은 「스크린샷 [날짜] [시간]」이고, 저장 위치는 데스크탑, 형식은 PNG입니다. 이 컴퓨터 앞에 앉은 사람에게 보이고, Time Machine이나 iCloud 「데스크탑 및 문서」를 켜 두었다면 그쪽으로도 갑니다. Control을 같이 누르면, 예를 들어 Control-Shift-Command-3은 데스크탑이 아니라 클립보드에 씁니다. 그 경로는 앞글의 클립보드 편을 보세요.

Windows: 사진 폴더와 클립보드에 각 한 장

Win+PrtScn은 전체 화면을 현재 사용자의 Pictures\Screenshots에 저장합니다. Win+Shift+S는 먼저 선택 영역을 클립보드에 넣습니다. 캡처 도구에서 「스크린샷 자동 저장」을 켜 두면, 같은 장이 Pictures\Screenshots에도 떨어집니다. 클립보드 기록이 켜져 있으면 Win+V에 최대 25건이 보이고, 스크린샷도 한 건입니다. 사진 폴더를 OneDrive가 맡고 있으면 PNG가 따라갑니다. 채팅창의 한 장만 지워서는 부족합니다. 디스크와 클라우드에 각 한 장이 남아 있을 수 있습니다.

iPhone: 스크린샷 앨범, 그리고 iCloud 사진

시스템 스크린샷은 사진 앱의 스크린샷 앨범으로 갑니다. iCloud 사진을 켜면, 촬영한 사진과 비디오가 원본 포맷으로 올라갑니다. 스크린샷도 사진입니다. 같은 Apple 계정의 다른 기기는 잠시 뒤 앨범에서 주소창과 비밀번호를 봅니다. 이 기기에서 한 장을 지워도 클라우드와 다른 기기가 바로 비워지지는 않습니다. 「최근 삭제된 항목」을 한 번 더 비워야 하는 경우가 많습니다.

일회용 링크 전체가 나온 스크린샷을 단체방에 넣지 마세요

링크 전체는 자격 정보입니다. 방의 누구든 읽기 페이지를 열 수 있고, 읽기 페이지는 로그인을 묻지 않습니다. 처음 성공적으로 읽으면 암호문은 사라집니다. 스크린샷 자체는 카카오톡·슬랙 기록에 남습니다. 키를 # 뒤에 두는 것은 서버 로그를 막는 일이지, 그림을 읽는 사람을 막는 일이 아닙니다. 한 사람에게 줘야 하면 링크를 글자로 그 사람에게만 보내고, 전체 화면은 찍지 마세요.

전체 화면, 창, 탭

Chrome의 Screen Capture API는 공유할 면을 셋으로 나눕니다. 탭(browser), 창(window), 모니터 전체(monitor). Zoom, Google Meet, Microsoft Teams의 선택 화면은 대개 이 셋에 대응합니다. 차이는 「회의 스트림이 암호화되어 있는가」가 아닙니다. 고른 픽셀 사각형이 얼마나 넓은가입니다.

지금 탭만 공유하면, 상대가 주로 보는 것은 그 페이지입니다. 주소창이 들어가는지는 회의 클라이언트가 브라우저 껍데기를 포함하는지에 달렸습니다. 페이지 내용만 보내는 구현이 많습니다. 창 하나를 공유하면 제목 표시줄, 주소창, 북마크 막대가 들어갑니다. 전체 화면을 공유하면 작업 표시줄, 다른 데스크탑, 오른쪽 아래 알림, 뒤에 뜨는 문자 인증 코드까지 들어갑니다.

Zoom 한국어 도움말은 데스크톱을 공유할 때 시스템 알림을 끄는 항목을 따로 둡니다. 항목이 있다는 것 자체가, 알림은 픽셀에 들어간다는 전제입니다. Zoom 앱 설정에는 「데스크톱 공유 시 시스템 알림 음소거(Windows만 해당)」가 있습니다. 끈 채로 전체 화면을 내면 받은편지함이나 인증 코드 토스트가 회의실로 갑니다. Microsoft Teams가 발표 중에 방해 금지로 바꾸는 것도 같은 이유입니다. 짧은 스탠드업이어도 기술 사실은 같습니다. 전체 화면 공유는 비밀번호 칸을 자동으로 가리지 않습니다.

Chrome 119부터 getDisplayMedia는 monitorTypeSurfaces: "exclude"를 받습니다. 회의 페이지는 「전체 화면」 칸을 빼서, 직원이 잘못 고르는 일을 줄일 수 있습니다. 공유하는 쪽의 선택 화면에는 그 칸이 여전히 나올 수 있습니다. 습관처럼 전체 화면을 고르면 생성 페이지, 주소창, 시스템 알림이 방에 있는 모든 사람에게 한 번에 넘어갑니다.

녹화, 앨범 동기화, 채팅 기록

실시간 공유가 끝나도 픽셀은 남는 경우가 많습니다. 클라우드 녹화, 로컬 영상, 채팅의 이미지는 30분짜리 회의보다 오래 남습니다.

회의 앱의 클라우드 녹화는 공유된 프레임을 저장합니다. 회의가 끝난 뒤 재생을 밀면, 주소창의 일회용 링크와 결과 목록의 비밀번호를 프레임 단위로 읽을 수 있습니다. 호스트가 정한 재생 권한은 「누가 이 파일을 여느냐」만 제한합니다. 연 사람이 당시 픽셀을 읽느냐는 제한하지 않습니다. 로컬 녹화, Mac의 Shift-Command-5, Windows의 Xbox 게임 바는 「동영상 / 비디오」에 다른 파일로 떨어지고, 동기화 클라이언트가 집어 가기도 합니다.

스크린샷을 카카오톡이나 슬랙에 넣는 순간, 상대의 채팅 기록, 사업자의 첨부 보관, 때로는 「이미지에서 텍스트 추출」로 들어갑니다. 내 쪽에서 지워도 상대에게는 사본이 남습니다. 이는 「페이지가 비밀번호를 올렸는가」와 다른 층입니다. 생성 페이지는 Network에서 POST에 평문이 없음을 보여줄 수 있습니다. 직접 보낸 PNG는 그 업무 API를 타지 않습니다.

빠지기 쉬운 방이 둘 더 있습니다. HDMI나 AirPlay로 회의실 텔레비전에 올린 화면은, 뒷줄에 앉은 사람에게 두 번째 카메라입니다. 클립보드 리디렉션이 켜진 원격 데스크톱이라면 스크린샷 파일이 양쪽에 나타날 수 있습니다. 둘 다 생성 페이지의 Network에는 나오지 않습니다.

대조표: 보이는 네 갈래

화면에 막 올린 테스트 비밀번호나 테스트 일회용 링크는, 적어도 네 갈래의 「누가 보는가」로 나뉩니다. 알고리즘 이름은 바뀌지 않습니다. 픽셀이 복사된 곳이 바뀝니다.

경로 누가 보는가 그 자리에서 어떻게 보는가
전체 화면 / 창 스크린샷 그 PNG를 열 수 있는 사람 Mac 데스크탑; Pictures\Screenshots; 휴대폰 스크린샷 앨범
화면 공유(전체 화면) 회의실의 모든 사람; 알림도 들어감 상대가 주소창과 결과 목록을 읽는지
회의 녹화 / 로컬 화면 기록 재생 파일을 가진 사람 회의 후 타임라인을 밀어 주소창이 들어갔는지
앨범과 클라우드 동기화 같은 클라우드 계정의 다른 기기 로그인한 다른 기기의 「스크린샷」 또는 Screenshots 폴더

생성 페이지가 Web Crypto로 난수 문자열을 뽑고, Network에 비밀번호 본문이 없다는 것은 「업로드」 한 갈래만 닫은 것입니다. 위 표의 네 갈래는 그대로 열려 있습니다. 비밀번호 관리자 자동 채우기로 넘길 수 있으면, 비밀번호를 화면에 펼쳐 남에게 보일 이유가 없습니다. 꼭 보여 줘야 하면 가장 작은 영역만 자르거나, 일회용 링크를 글자로 보내고, 전체 화면은 찍지 마세요.

그 자리에서 확인하기

아래 단계는 어떤 브랜드 약속도 전제하지 않습니다. 실제 계정에 쓰지 않을 비밀번호 하나와, 테스트 문장만 넣은 일회용 링크 하나를 씁니다. 지금 쓰는 마스터 비밀번호나, 아직 타지 않은 실제 비밀로는 연습하지 마세요.

  1. 생성 페이지를 열고 기본 16자 테스트 비밀번호를 만듭니다. 복사하지 말고, 로그인에도 쓰지 마세요. 결과 목록을 봅니다. 문자가 보이고, 점이 아닙니다. 개발자 도구 Network에서 「로그 보존」을 켠 뒤, 생성 이후 요청 본문에 이 문자열이 없는지 확인합니다. 업로드를 확인하는 방법은 브라우저에서 암호화할 때 평문이 올라가지 않았는지 그 자리에서 확인하는 방법에 있습니다.
  2. 시스템 스크린샷으로 전체 화면을 한 번 찍습니다. 데스크탑이나 Pictures\Screenshots에서 그 PNG를 열어, 테스트 비밀번호와 주소창이 그림에 있는지 확인합니다. 이어서 결과 목록만 자르고 주소창은 빼서 두 번째를 찍습니다. 두 번째에는 일회용 링크 전체나 다른 창이 나오면 안 됩니다.
  3. iPhone이거나 iCloud 사진을 켠 기기라면 「사진 → 스크린샷」에서 방금 장이 보이는지 확인합니다. 같은 Apple 계정의 두 번째 기기가 있으면, 동기화를 기다린 뒤 그 기기에서 같은 앨범을 엽니다.
  4. Windows에서 클립보드 기록이 켜져 있으면 Win+V를 눌러, 스크린샷이 목록에 있는지 봅니다. 고정은 누르지 마세요. 「모두 지우기」를 쓰거나, 의미 없는 내용을 계속 복사해 목록에서 이 그림이 사라질 때까지 갑니다.
  5. 자신만 있는 테스트 회의를 열고, 먼저 전체 화면을 공유합니다. 두 번째 기기나 동료가 주소창과 결과 목록이 들어가는지 봅니다. 이어서 지금 브라우저 창 또는 지금 탭만 공유하고, 알림과 작업 표시줄이 화면에서 빠지는지 대조합니다. 클라우드 녹화가 있으면 회의가 끝난 뒤 10초만 재생합니다.
  6. 짧은 비밀을 원격 동료에게 넘겨야 하면 일회용 링크로 바꿉니다. 평문 한도는 32 KB, 키는 # 뒤, 읽기 페이지는 로그인이 없습니다. 링크를 글자로 보내고, 주소창이 들어간 전체 화면은 찍지 마세요. 만들기 요청에는 암호문만 있어야 하고, 테스트 문장 원문은 없어야 합니다.

MyPassGen 비밀번호 생성은 이 경계를 따릅니다. 랜덤 모드는 6–128자, 기본 16자, 8자 미만이면 약하다고 알립니다. 결과는 보이는 글자로 나열되고, 복사는 writeText를 탑니다. 가입 없이 바로 씁니다. 계정과 비밀번호 보관함이 없습니다. 확인할 것은 데스크탑의 PNG, 스크린샷 앨범, 회의 재생입니다. 페이지의 「생성됨」이 아닙니다.

찍은 뒤, 회의가 끝난 뒤

오늘 꼭 찍어야 하는 한 장은 이 순서로 마무리합니다. 자른 칸에 주소창, 작업 표시줄 알림, 다른 실제 비밀번호가 없는지 확인한 뒤에 보냅니다. 보낸 뒤에는 데스크탑이나 Screenshots의 원본을 바로 지우고, Win+V를 비우고, 휴대폰의 「최근 삭제된 항목」을 비웁니다. iCloud 사진이나 OneDrive 사진이 켜져 있으면, 다른 기기에서 동기화 사본도 지워졌는지 확인합니다.

공유가 열린 회의에서는, 공유를 먼저 끈 뒤에 생성 페이지나 일회용 읽기 페이지를 엽니다. 설명하면서 시연해야 하면 지금 창만 공유하고, 브라우저를 전체 URL을 숨기는 짧은 주소창으로 바꾸거나 창을 결과 칸까지 줄입니다. 발표용 노트북과 회의실 텔레비전은 「뒷줄에서 누가 찍고 있다」를 기본값으로 둡니다. 이런 환경에서는 실제 일회용 링크를 열지 말고, 마스터 비밀번호를 만들지 마세요.

「전체 화면이 아니라 자르기」와 「회의가 끝난 뒤 PNG와 재생을 지우기」를 하면, 이 글의 질문에 답할 수 있습니다. 화면 공유와 스크린샷에서 비밀번호를 누가 보느냐는, 얼마나 넓은 픽셀을 골랐는지, 파일이 어디에 떨어졌는지, 녹화가 아직 있는지에 달렸습니다. 생성 페이지가 올리지 않았다는 것은 서버 로그에 이 문자열이 없다는 뜻일 뿐입니다. 이미 그림과 영상에 쓰인 한 부는 거두지 않습니다.

자주 묻는 질문

HTTPS면 스크린샷 안의 비밀번호는 안전한가?

아닙니다. HTTPS가 지키는 것은 브라우저와 서버 사이 전송입니다. 스크린샷과 화면 공유는 이 기기의 픽셀을 복사하고, 그 TLS를 타지 않습니다. 앨범 동기화, 회의 녹화, 단체방에 잘못 넣은 PNG는 주소창의 자물쇠를 보지 않습니다.

키가 # 뒤에 있으면 스크린샷에도 안 찍히나?

찍힙니다. #가 막는 것은 HTTP 요청과 Referer뿐입니다. 주소창, 만들기 결과 칸, 브라우저 기록은 URI 전체를 그대로 보여 줍니다. 전체 화면 스크린샷과 창 공유는 그 조각을 그림 안의 글자로 바꿉니다.

비밀번호 생성이나 일회용 링크 만들기에 가입이 필요한가? 스크린샷을 사이트가 올리나?

가입은 필요 없습니다. 생성과 만들기는 지금 탭에 남아야 합니다. 시스템 스크린샷은 운영체제가 파일을 쓰는 일이고, 사이트의 POST가 아닙니다. Network를 여세요. 스크린샷 뒤에 요청 본문에 그 비밀번호가 나와서는 안 됩니다. 직접 PNG를 채팅에 넣는 일이 다른 출구입니다.

지금 탭만 공유하면 충분한가?

전체 화면보다 한 단계 안전합니다. 작업 표시줄과 시스템 알림은 대개 화면에서 빠집니다. 지금 페이지의 보이는 비밀번호, 결과 칸의 일회용 링크 전체는 상대가 그대로 읽습니다. 흐름을 시연할 때는 테스트 데이터를 쓰고, 실제 비밀번호는 글자 채널로 보내거나 그 자리에서 읽어 주세요.