티켓과 로그를 AI에 붙이기 전에, 어떤 항목이 이 기기를 떠나는지 먼저 확인하는 방법

운영 로그, 고객 티켓, 스택 트레이스에는 휴대폰 번호, 주민등록번호, 이메일, API Key가 끼어 있는 경우가 많습니다. 통째로 ChatGPT나 동료의 AI 칸에 붙이면 그 항목은 프롬프트와 함께 지금 연 탭을 떠납니다. 확인할 것은 「이미 가렸다」는 기억이 아닙니다. 보내려는 그 한 장을 대조하세요. 카나리아가 남아 있는지, 규칙이 어떤 유형을 맞췄는지, 가려지지 않은 비밀번호를 자리 표시자로 바꿨는지.

먼저 결론입니다. AI에 붙이기 전에 확인할 것은 「이번에 보낼 글자에 평문 민감 항목이 남아 있는가」입니다. 학습 스위치를 끄거나 임시 대화로 바꾸는 일은 상대가 어떻게 보관하고 배우는지 바꿀 뿐, 항목이 이미 나갔다는 사실은 바꾸지 않습니다. 아래는 반복할 수 있는 대조이지, 새로운 형용사가 아닙니다.

검색 의도를 한 문장으로 먼저 답하기

티켓과 로그를 AI에 붙이기 전 마스킹이란, 지금 보고 있는 탭을 글이 떠나기 전에 규칙으로 전화, 신분증 번호, 이메일, 흔한 API Key, IP를 가리고, 고정 형식이 없는 비밀번호와 접속 문자열은 눈으로 한 번 더 훑는 일입니다. 확인할 대상은 붙여 넣을 그 결과이지, 페이지의 「처리됨」 표시가 아닙니다.

이 글은 개발자, 운영, 그리고 자료를 AI 칸에 넣을 고객지원을 위한 것입니다. 링크 정리 사용 설명을 대신하지 않으며, 「로컬 암호화가 원문을 올리는가」라는 Network 총론도 반복하지 않습니다. 가져가야 할 것은 로그에 자주 끼는 항목, 규칙이 덮는 범위, 덮지 못할 때 자리 표시자로 바꿀지 열람 후 파기로 넘길지입니다.

AI에 붙이는 일과 동료에게 보내는 일은 나가는 경계가 다릅니다

동료에게 보낼 때 받는 사람은 보통 아는 사람이고, 자료는 티켓 시스템이나 슬랙, 카카오워크 기록으로 들어갑니다. 소비자용 AI에 붙이면 같은 글자가 그 제품 서버, 대화 기록, 그날 유효한 처리 약관까지 들어갑니다. OpenAI 도움말의 Data Controls FAQ는 분명합니다. 개인 계정은 「Improve the model for everyone」(한국어 화면에서는 「모두를 위해 모델 개선」에 가깝습니다)을 끌 수 있고, 끈 뒤에도 대화는 기록에 남으며 학습에만 쓰이지 않습니다. Temporary Chat은 기록과 학습에 들어가지 않지만, 남용 감시를 위해 최대 약 30일 보관될 수 있습니다.

약관은 바뀌고 제품마다 다릅니다. 그 자리에서 끝낼 수 있는 판단은 더 좁습니다. 붙여 넣고 보내기를 누른 순간, 그 글자는 이미 이 기기를 떠난 것입니다. 학습 스위치가 답하는 것은 「상대가 모델 개선에 쓰는가」이지, 「상대가 받았는가」가 아닙니다.

그래서 먼저 「이 덩어리가 이 기기를 떠나도 되는가」를 묻고, 그다음에 「떠난 뒤 상대가 어떻게 남기는가」를 묻습니다. 둘째 질문은 그 제품 도움말로 가고, 첫째 질문은 보내기 전에 대조표로 끝낼 수 있습니다.

실제 주민등록번호, 아직 교체하지 않은 API Key, 운영 DB 비밀번호로 실험하지 마세요. 이번에만 쓰는 가짜 티켓을 만드세요. 전화와 키는 카나리아로 적습니다. 확인할 것은 마스킹과 나가는 경계이지, 개인정보를 한 번 더 노출하는 일이 아닙니다.

티켓과 로그에 가장 자주 끼는 항목

실제로 새는 것은 계약서 전체가 아니라, 문장 한가운데 끼어 있는 짧은 항목입니다. 스택 트레이스의 이메일, 스크린샷 설명의 휴대폰 번호, 복사한 Authorization: Bearer …, 사내 로그인 화면의 IPv4. 그중 하나만으로도 다음 대화는 평문 사본이 됩니다.

「민감한가」라는 느낌으로 나누기보다, 어디에 나타나는지로 나누는 편이 쓸모 있습니다.

자주 나오는 위치 전형적인 항목 보내기 전 처리
고객 티켓, 채팅 기록 한국 휴대폰, 국제 전화, 이메일, 주민등록번호 뒷자리 규칙으로 가린 뒤, 말로 풀어 쓴 값은 직접 훑기
앱 로그, 스택 트레이스 이메일, IPv4 / IPv6, 가끔 나오는 토큰 IP와 이메일을 가리고, 토큰에 고정 접두사가 있는지 보기
설정 조각, curl 예제 sk-, AKIA, ghp_, Bearer 흔한 접두사는 규칙이 잡음. 못 잡은 것은 자리 표시자로
인수인계, 복구 절차 DB 비밀번호, 복구 코드, 접속 문자열 전체 AI에 붙이지 말 것. 열람 후 파기이거나 자리 표시자만
공유 링크 utm_*, fbclid, gclid 추적 파라미터를 먼저 뺀 뒤, 프롬프트에 넣을지 결정

「비밀처럼 보이지 않는」 항목도 한 번 더 보세요. 사내 IP는 대역을 드러내고, 주민등록번호 뒤 네 자리라도 티켓에 이미 있는 이름과 겹치면 한 사람을 가리킵니다. 규칙은 기본적으로 앞뒤를 조금 남깁니다. 「방금 그 줄이 맞는지」 대조하려고이지, 이미 비식별화했다는 증명이 아닙니다.

규칙 마스킹이 덮는 것과 덮지 못하는 것

브라우저의 규칙 마스킹은 패턴 매칭입니다. 정규식으로 전화, 신분증 번호, 이메일, 키 접두사, IP처럼 보이는 조각을 찾아 가림표로 바꿉니다. 의미를 이해하지 않으며, 티켓 시스템을 읽지도 않습니다.

FastPwd 링크 정리 페이지의 민감정보 마스킹을 예로 들면, 지금 연 탭이 잡는 것은 국제 전화와 중국 대륙 휴대폰, 신분증 번호(중국 신분증 검사 자리, 미국 SSN, 영국 NINO, 일부 영숫자 조합), Luhn을 통과한 13–19자리 카드, 이메일, 흔한 API Key / 토큰 접두사(sk-, sk-proj-, AKIA, ghp_, github_pat_, glpat-, Bearer), IPv4와 흔한 IPv6입니다. 화면 칩 이름은 주민등록번호이지만, 한국 주민등록번호 13자리가 항상 잡힌다고 가정하면 안 됩니다. 010으로 시작하는 번호도 하이픈 유무에 따라 빠질 수 있습니다. 기본은 앞뒤를 조금 남기고, 전체를 별표로 바꿀 수도 있습니다. 한 번에 512 KB를 넘기면 나눠야 합니다. 열어 바로 쓰며 계정은 필요 없습니다.

놓치는 부분도 구체적입니다. 고정 접두사가 없는 비밀번호, 공백으로 나눈 키, 스크린샷 안의 글자, 1을 l로 바꾼 「탐지 회피」 쓰기는 규칙이 빠집니다. 도로명 주소, 사번, 내부 프로젝트명은 이 목록에 없습니다. 적중 0은 「이 패턴을 찾지 못했다」는 뜻이지, 「누구에게나 보내도 된다」는 뜻이 아닙니다.

도구 페이지와 이 글의 역할도 여기가 갈립니다. 도구 페이지는 지금 당장 가리는 방법에 답하고, 이 글은 가린 뒤에도 보내기를 눌러도 되는지에 답합니다. 결과 칸은 글자 수 대조와 적중 유형을 보여 주며 원문을 인터페이스로 보내지 않습니다. 그래도 보내기 전에 붙여 넣을 그 칸을 보세요.

보내기 전에 카나리아로 한 번 대조하기

버려도 되는 가짜 티켓을 만드세요. 이번에만 쓰는 전화, 이메일 canary-fp-20260901@example.com, 흔한 접두사가 있는 가짜 키 sk-proj-canaryfp20260901xxxx, 접두사 없는 가짜 비밀번호 canary-plain-pass-20260901. 카나리아의 역할은 검색입니다. 「도구가 똑똑하다」를 보여 주는 데모가 아닙니다.

  1. 가짜 티켓을 마스킹 입력칸에 넣고 한 번 돌리세요. 접두사가 있는 키, 이메일, 전화는 별표가 되어야 하고, 접두사 없는 비밀번호는 대개 그대로입니다.
  2. 남아 있는 평문 비밀번호는 [DB_PASSWORD] 같은 자리 표시자로 바꿉니다. 「비밀번호는 xxx」처럼 말로 쓴 문장을 규칙이 알아챌 거라 기대하지 마세요.
  3. 결과 칸의 글만 복사하세요. AI 칸에 붙이기 전에 시스템 찾기로 카나리아를 검색합니다. 가짜 이메일과 가짜 키의 완전한 평문은 더 나오면 안 됩니다.
  4. 마스킹 페이지 자체가 원문을 보냈는지까지 보려면 개발자 도구 Network를 열고 Preserve log를 켠 뒤, 같은 카나리아로 요청 줄, 본문, 통계 전송을 검색하세요.

버튼 문구가 아니라 결과 칸을 보세요

「4곳을 마스킹함」은 규칙이 네 구간을 맞췄다는 뜻일 뿐입니다. 다섯 번째 비밀번호가 남아 있는지는 말하지 않습니다. 대조는 결과 글에서 해야 합니다. 미리 심어 둔 카나리아를 하나씩 찾고, 패턴처럼 보이지 않으면서 엔트로피가 높은 긴 문자열을 한 번 더 훑으세요.

보내려는 그 칸을 보세요

결과 칸에서 다시 복사할 때 확장 프로그램이 클립보드를 바꾸거나, 브라우저가 방금 선택한 원문을 같이 가져갈 수 있습니다. 보내기 전에 AI 입력칸에서 카나리아를 다시 찾는 일이, 마스킹 페이지만 한 번 보는 일보다 실제 나가는 내용에 가깝습니다.

마스킹 페이지 자신의 트래픽도 같이 보세요

FastPwd 접속 통계는 사이트 자체 트래커를 씁니다. localhost에서는 기본적으로 보내지 않으며, 이벤트 이름은 「마스킹을 실행함」처럼 보이고, 설명대로 원문을 싣지 않습니다. 이것도 약속입니다. 카나리아로 Network를 검색해야 「원문은 올리지 않고 analytics에도 쓰지 않는다」가 이번 관찰이 됩니다. 트래픽을 더 넓게 보는 절차는 브라우저 로컬 암호화에서 원문이 이 기기를 떠나지 않았는지 확인하는 방법에 있습니다.

가짜 비밀번호는 반드시 두 종류를 준비하세요. sk-나 Bearer가 있는 하나는 규칙이 동작하는지 확인하고, 접두사 없는 긴 임의 문구는 「가려지지 않은 쪽이 실제로 새는 쪽」임을 상기합니다.

가림, 자리 표시자, 열람 후 파기를 어떻게 고를지

세 처리는 세 종류의 재료에 맞습니다. 섞으면 사고가 납니다.

문장 사이에 흩어진 전화, 이메일, 신분증 번호, 접두사가 있는 토큰은 규칙 마스킹에 맞습니다. 필요한 것은 「이 로그로 오류를 물을 수 있는가」이지, 비밀 전체를 모델에 넘기는 일이 아닙니다.

질문은 바꿔도 되지만 재료의 뼈대는 남겨야 할 때는 자리 표시자를 씁니다. 접속 문자열을 postgres://USER:[DB_PASSWORD]@HOST:5432/DB로 바꾼 뒤 문법만 물으세요. 모델이 오류 형식을 설명하는 데 실제 비밀번호는 필요 없습니다.

완전한 비밀을 다른 사람에게 넘겨야 할 때는 AI 칸을 거치지 마세요. FastPwd 열람 후 파기는 이 기기에서 AES-256-GCM으로 암호화하고, 서버는 암호문만 잠시 두며, 키는 s.html?id={id}#{key}의 # 뒤에 붙여 기본적으로 HTTP에 넣지 않습니다. 만들기와 읽기 모두 가입이 필요 없습니다. 한 메모는 32 KB까지이고, 더 큰 파일은 파일 암호화로 넘기며 한 파일은 5 GB를 넘지 않습니다. 전체 링크를 채팅에 붙이면 # 뒤의 보호는 사라집니다. 자세한 내용은 URL 해시 뒤에 키를 두는 이유, 그리고 그 보호가 깨질 때에 있습니다.

재료 더 맞는 처리 통과로 보는 기준
티켓의 전화 / 이메일 / 신분증 번호 규칙 마스킹 결과에 완전한 평문이 없고, 적중 유형이 맞음
sk-, ghp_가 있는 토큰 규칙 마스킹 또는 자리 표시자 접두사는 남아도 되고, 가운데는 별표여야 함
접두사 없는 비밀번호, 복구 코드 자리 표시자. 인수인계면 열람 후 파기 AI 칸에 그 글자가 전혀 없음
키 파일 전체 파일 암호화. 대화창에 붙이지 말 것 .lock을 받고, 대화창에는 파일 이름만

증명할 수 있는 것과 증명할 수 없는 것

이번 대조가 지지하는 결론은 좁습니다. 좁게 적어 두는 편이 동료와 맞추기 쉽습니다.

지지할 수 있는 것: 지금 쓰는 브라우저, 이번 조작에서, 보내려는 글에 미리 심은 카나리아 평문이 보이지 않는다. 마스킹 페이지의 요청 줄, 본문, 통계 전송에도 그 카나리아가 없다.

지지할 수 없는 것: 규칙이 모든 이름, 주소, 사번을 덮었다. 상대 제품이 대화를 보안 검토용으로 남기지 않는다. 확장 프로그램이 클립보드를 바꾸지 않았다. 마스킹 결과가 법률상 비식별화와 같다. FastPwd 링크 정리 페이지는 보조 재확인이라고 적으며, 개인정보 보호법이나 GDPR 인증을 주장하지 않습니다.

「모델 답에 비밀번호가 되풀이되지 않았다」를 보내지 않았다는 증거로 쓰지 마세요. 서버가 이미 받은 내용은, 화면에 별표가 그려진다고 이 탭으로 돌아오지 않습니다.

자주 묻는 질문

「모두를 위해 모델 개선」을 끄면, 붙인 티켓은 이 기기를 떠나지 않나요?

아닙니다. 학습 스위치는 모델이 그 대화로 배우는지 바꿀 뿐입니다. 대화는 그 제품 서버로 가고, 기록에도 남을 수 있습니다. Temporary Chat은 보통 기록과 학습에 들어가지 않지만, 남용 감시를 위해 최대 약 30일 보관될 수 있습니다. 위 내용은 2026년 9월에도 유효한 OpenAI Data Controls 설명을 기준으로 하며, 다른 제품은 각 약관을 따릅니다. 마스킹이 겨누는 것은 보낼 글이지, 학습 스위치가 아닙니다.

마스킹 결과를 규제 준수 증명이나 비식별화 보고서로 쓸 수 있나요?

쓸 수 없습니다. 규칙 마스킹은 패턴 매칭입니다. 전화, 신분증 번호, 이메일, 흔한 API Key, IP는 가릴 수 있고, 말로 풀어 쓴 값이나 접두사 없는 비밀번호는 빠집니다. 개인정보 보호법, GDPR, 기타 인증을 주장하지 않습니다. 보내기 전에 붙여 넣을 글을 직접 대조하세요.

데이터베이스 비밀번호나 복구 코드를 마스킹한 뒤 AI에 붙여도 되나요?

대개는 안 됩니다. 접두사 없는 비밀번호, 접속 문자열, 복구 코드는 규칙이 자주 놓칩니다. 이런 재료는 열람 후 파기로 넘기세요. 이 기기에서 AES-256-GCM으로 암호화하고, 서버는 암호문만 잠시 두며, 키는 링크의 # 뒤에 둡니다. AI 칸에는 [DB_PASSWORD] 같은 자리 표시자만 남깁니다.

FastPwd에서 마스킹할 때 원문이 올라가거나 통계에 쓰이나요?

제품 설명대로 파싱과 마스킹은 지금 연 탭에서 끝납니다. 원문은 HTTP 업무 데이터로 나가지 않고 analytics에도 쓰지 않습니다. 접속 통계는 「마스킹을 실행함」 같은 이벤트 이름만 기록합니다. 그 자리에서 확인하려면 카나리아 문자열로 Network를 검색하세요. 요청 줄, 본문, 통계 전송에 원문이 나오면 안 됩니다. 탭을 닫은 뒤 이번 입력은 FastPwd 서버에 남지 않습니다. 업무 데이터로 서버에 도달한 적이 없기 때문입니다.

가짜 티켓으로 절차를 끝까지 걷기

계산 경계를 글로 적어 둔 페이지에서 연습하려면 FastPwd 민감정보 마스킹을 여세요. 열어 바로 쓰며 가입은 필요 없습니다. 위의 가짜 티켓을 넣고 전화, 주민등록번호, 카드번호, 이메일, API Key, IP를 켠 채 기본 가림으로 적중 유형을 본 뒤, 전체 마스킹을 켜고 한 번 더 대조하세요.

같은 재료로 둘째 연습을 하세요. 남아 있는 가짜 비밀번호를 자리 표시자로 바꾼 뒤에만 어떤 AI 입력칸에도 넣습니다. 완전한 비밀을 동료에게 넘겨야 하면 열람 후 파기로 가고, 파기 링크의 주소와 키를 다시 AI에 붙이지 마세요. 티켓에 광고 짧은 링크가 남아 있으면 같은 페이지의 링크 정리에서 utm_*, fbclid, gclid를 뺀 뒤, 그 URL을 프롬프트에 넣을지 결정하세요.

이 연습의 목적은 어떤 사이트가 「절대 안전하다」를 증명하는 일이 아닙니다. 보내기를 누르기 전에 동료에게 보여 줄 수 있는 대조를 손에 쥐는 일입니다. 카나리아, 적중 유형, 자리 표시자, 필요할 때 Network 한 번. 「스마트 마스킹」이나 「기업 AI 게이트웨이」로 바꿔도 절차는 다시 쓸 수 있습니다.

다음에 밖으로 보낼 때 세 가지만 기억하세요. 첫째, 버튼 문구가 아니라 보낼 글을 봅니다. 둘째, 규칙은 흩어진 항목을 덮고, 비밀번호 통째는 덮지 않습니다. 셋째, 학습 스위치는 상대가 어떻게 쓰는지를 바꾸고, 항목이 이미 이 기기를 떠났다는 사실은 바꾸지 않습니다. 반복할 수 있는 대조라야 팀 티켓 규정에 넣을 가치가 있습니다.

이어서 읽기

마스킹 페이지 자체가 원문을 보냈는지 확인하려면 같은 카나리아로 Network를 걷으세요. 브라우저 로컬 암호화에서 원문이 이 기기를 떠나지 않았는지 확인하는 방법. 완전한 비밀을 모델이 아니라 사람에게 넘겨야 할 때는, 키를 # 뒤에 둘 수 있는 이유를 보세요. URL 해시 뒤에 키를 두는 이유, 그리고 그 보호가 깨질 때.