비밀번호 생성 강도 검사 프라이버시 열람 후 폐기 파일 상자

왜 암호화 계산을 브라우저 로컬에 두나

비밀번호 생성, 검사, 파일 암호화를 서버에 맡기면 평문은 전송·로그·메모리에 더 머뭅니다. 로컬 Web Crypto는 민감한 계산을 기기로 되돌립니다. Network 패널을 열면 이번 조작이 비밀을 밖으로 보냈는지 직접 확인할 수 있습니다.

「온라인 비밀번호 생성」을 열고 생성을 누른 뒤 개발자 도구 Network 패널을 보세요. 방금 만든 비밀번호가 요청 본문이나 쿼리에 있으면 평문은 이미 기기를 떠난 겁니다. 브랜드 약속을 믿을 필요는 없습니다. 브라우저가 트래픽을 펼쳐 보여 줍니다.

계산을 브라우저에 두는 것은 「탈중앙」처럼 들리게 하려는 것이 아닙니다.평문 창을 기기로 되돌리기 위해서입니다. 전송 한 겹, 서버 로그 한 통, 운영자가 메모리 덤프를 잘못 읽을 기회를 하나씩 줄입니다. 위협 모델, 확인 가능한 단계, 능력의 경계로 설명합니다. MyPassGen 도구는 이 원칙으로 짜여 있습니다. 제품 총람이 아니라, 민감한 계산을 왜 기본으로 서버에 넘기면 안 되는지만 답합니다.

서버 대행은 어떤 창을 넓히나

평문 창이란 평문(또는 평문을 바로 되돌릴 수 있는 키)이 어느 단계에 실제로 있는지를 말합니다. 서버 대행에서 창은 「제출을 누른 순간」이 아니라, 나중에 지우기 어려운 사슬입니다.

  • 브라우저에서 오리진까지의 TLS. 서버 프로세스가 보는 것은 복호화된 요청이지 암호문이 아닙니다.
  • 리버스 프록시, WAF, APM, 오류 추적의 요청 본문 샘플. 500이 한 번이면 폼이 크래시 보고에 들어갈 수 있습니다.
  • 앱 로그, 느린 쿼리, 액세스 로그의 query string. 키를 ?key= 에 두는 습관은 access log에 쓰는 것과 같습니다.
  • 데이터베이스, 오브젝트 스토리지, 임시 디스크의 중간 파일, 백업과 원격 복사본.
  • 운영, 지원, 침입자가 위 복사본 중 하나를 손에 넣는 시간. 창은 이미 열렸고 「쓰고 바로 삭제」 약속으로는 바뀌지 않습니다.

법역과 하청은 「보지 않습니다」를 감사하기 어려운 문장으로 바꿉니다. 확인할 수 있는 것은 프로토콜과 트래픽이지, 상대 전산실의 내부 규정이 아닙니다.

비밀번호 생성은 특히 아픕니다. 원하는 것은 어떤 시스템에도 아직 없는 비밀입니다. 생성이 남의 전산실에서 일어나면 첫 복사본은 당신 손에 없습니다. 그걸 운영 설정, CI 변수, 비밀번호 관리자에 붙이면 보이지 않는 유출 지점이 하나 늘어납니다.

비밀번호 검사도 같습니다. 자주 쓰는 비밀번호를 원격 「강도 검사」에 내는 것은 가장 민감한 재사용을 제3자에게 주는 일입니다. 공개 유출 DB 조회는 k-anonymity 같은 프로토콜로도 할 수 있습니다. MyPassGen Password Audit은 더 단단한 제약을 고릅니다. 검사 중 비밀번호는 올리지 않고, 강도 추정과 유출 상위 목록 대조는 브라우저에서 끝납니다. 확인할 것은 「상대가 저장하지 않는다고 함」이 아니라, 요청에 그 비밀번호가 없다는 점입니다.

파일 암호화에서 「업로드 → 서버 암호화 → 다시 다운로드」를 타면 암호와 파일 내용은 적어도 서버 메모리에 한 번 온전히 나타납니다. 로컬 스트림 암호화는 서버가 받을 평문을 없앱니다. 사진인지 디스크 이미지인지도 알 필요가 없습니다.

「HTTPS를 썼다」를 로컬 계산으로 여기지 마세요

TLS가 막는 것은 경로상의 도청자이지 상대 서버가 아닙니다. 서버 대행에서 상대는 원래 평문을 읽습니다. 로컬 계산이 푸는 것은, 상대가 이 재료를 보면 안 된다는 점입니다.

「로컬」은 어느 층을 말하나

「로컬」은 구호가 되기 쉽습니다. 쪼개지 않으면 클라우드 드라이브의 「나만 보기」도 로컬 암호화로 불립니다.

기기 프로세스이지, 「어떤 클라우드 계정에 있음」이 아님

MyPassGen이 말하는 로컬은 계산이 당신 브라우저 탭에서 일어난다는 뜻입니다. 난수는 crypto.getRandomValues 에서 오고, 대칭 암호화는 Web Crypto API입니다. 키 재료는 짧은 수명의 CryptoKey에 있으며 분석 필드로 나가지 않는 것이 기본입니다. 결과는 복사, 내보내기, 디스크 저장이 가능합니다. 페이지를 닫으면 메모리의 평문은 브라우저 수명에 따라 회수되며 원거리에 남기지 않습니다.

「나만 보이는 드라이브에 파일을 넣는 것」과는 다릅니다. 드라이브 서버는 기기에서 먼저 봉인해 암호문을 올리지 않는 한 객체 평문을 읽습니다. 로컬 우선이 묻는 것은, 평문이 쓸 수 있는 형태로 기기 밖에 나타났는가입니다.

알고리즘과 파일 한도는 확인할 수 있는 사실

대칭 암호화는 AES-256-GCM 만 씁니다(인증 암호화. 암호문이 바뀌면 복호화는 실패합니다). 파일 상자는 파일당 스트림 처리하며 한도는 5 GB, 출력은 .lock(권장) 또는 .enc. 영상 전체를 한 번에 메모리에 올리지 않기 위해서입니다. 이 숫자는 요건에 적혀 있으며 마케팅 형용사가 아닙니다. 구현되지 않은 알고리즘 전환이 페이지에 보여도 제품 설명을 따르고 상상으로 채우지 마세요.

로컬은 계산 위치. 도구는 열면 바로

계산 위치와 「가입이 필요한가」는 한때 따로 적혔습니다. 지금 사이트에서 비밀번호 생성, Password Audit, 프라이버시, Burn-Link 만들기, 파일 상자는 열면 바로 쓰며 계정이 없습니다. 로컬은 계산이 브라우저에서 일어난다는 뜻일 뿐, 「평문이 절대 기기를 떠나지 않는다」는 말이 아닙니다. Burn-Link는 암호문을 서버에 잠시 맡깁니다.

능력 열면 바로 쓰는가 민감 재료가 기본으로 올라가는가
무작위 / 읽기 쉬운 비밀번호 사용 가능 올리지 않음. 브라우저에서 생성
Password Audit 사용 가능 검사 중 비밀번호는 올리지 않음. 기기 강도 + 유출 목록
Clean Link / 마스킹 사용 가능 URL과 텍스트는 기기에서 처리. analytics에 쓰지 않음
Burn-Link 만들기 사용 가능 올라가는 것은 암호문 blob. 원문이 아님
Burn-Link 읽기 받는 사람에게 공개 키는 URL의 # fragment. HTTP로 서버에 보내지 않음
파일 상자 사용 가능 파일과 암호는 올리지 않음. 기기 스트림 AES-256-GCM

Burn-Link만 서버 임시 보관이 필요하지만, 맡기는 것은 암호문입니다. 복호화 키는 URL의 # 에 둡니다. fragment는 HTTP 요청에 실리지 않고 access log에는 보통 경로만 남습니다. 읽기 페이지는 받는 사람에게 공개입니다. 상대에게 먼저 가입을 시키면 한 번만 비밀을 전하는 일은 성립하지 않습니다. 첫 열람 후 암호문은 설계대로 폐기됩니다. 서버 영지식은 「아무것도 안 남긴다」가 아니라 「남아도 풀 수 없다」입니다. 이 글은 이 약속만 세웁니다.

Network 패널로 민감 내용이 나갔는지 확인

구호는 스스로를 증명하지 못합니다. 신뢰에 기대지 않는 확인 단계를 브라우저 개발자 도구로 진행합니다. 목표는 「세상에 사이드채널이 없다」를 증명하는 것이 아니라, 「한 번에 평문을 POST하는」 온라인 도구를 드러내는 것입니다.

01

비밀번호 생성부터 시작.비밀번호 생성 페이지를 엽니다. 무작위 문자와 읽기 쉬운 패스프레이즈 모두 바로 만들 수 있어야 합니다. 여기서 확인할 것은 「생성이 나갔는가」입니다. 정적 리소스 요청을 비밀번호 업로드로 오해하지 마세요.

02

Network를 열고 Preserve log를 켭니다.Chrome / Edge / Firefox 모두 됩니다. 필터는 먼저 Fetch/XHR, 그다음 전체 요청. Preserve log는 이동으로 기록이 지워지는 것을 막습니다. sendBeacon 와 Service Worker 요청도 패널에 나타납니다.

03

알아보기 쉬운 비밀번호를 만듭니다.길이를 조금 늘리고 생성한 뒤 메모장에 복사합니다. Network 검색창에 그 비밀번호, 또는 JS 소스에 우연히 없을 부분 문자열을 붙입니다.

04

URL, Query, Request Payload에 맞는지 봅니다.어떤 요청도 그 부분에 맞지 않으면, 적어도 「생성」 한 번에서 평문은 HTTP 내용으로 나가지 않은 것입니다. 정적 스크립트의 무관한 문자열은 세지 않습니다. 찾을 것은 방금 만든 그 한 줄입니다.

05

다른 도구도 같은 방법으로.Password Audit, 프라이버시, 파일 상자를 열고 테스트용 가짜 비밀번호나 작은 파일로 다시 검색합니다. 검사 페이지는 검사 중 비밀번호를 원거리로 보내지 않아야 합니다. 정리 페이지는 원문을 POST하지 않아야 합니다. 파일 상자는 평문을 multipart로 올리지 않아야 합니다.

06

Burn-Link는 암호문과 fragment를 봅니다.만들 때 서버로 가는 것은 암호문이지 입력한 원문이 아닙니다. 전체 링크에서 키는 # 뒤입니다. fragment를 빼고 Network를 보면 요청 경로에 키가 없어야 합니다. 받는 사람이 읽기 페이지를 열 때 로그인은 필요 없습니다.

이 단계가 증명하는 것과 못 하는 것

Network가 확인하는 것은 이번 조작이 평문을 HTTP에 넣었는지입니다. 동일 출처 스크립트가 메모리를 읽는 것, 악성 확장, XSS로 끼워진 페이지는 보이지 않습니다. 많은 「온라인 도구」를 드러내기에는 충분합니다. 형식 증명으로 이해하지 마세요.

어떤 계산은 반드시 로컬인가, 예외는 무엇인가

기기에 남겨야 하는 것은 밖으로 나가면 되돌릴 수 없는 재료입니다. 새로 만든 비밀번호, 검사 중인 옛 비밀번호, 마스킹 전 원문, 파일 평문, 대칭 키. 남의 로그에 들어가면 페이지를 지워도 상대 분은 지워지지 않습니다.

기기를 떠나도 되는 것은 암호학상 서버에 쓸모없는 데이터뿐입니다. Burn-Link 암호문 blob, 비밀이 없는 정적 리소스. 이 사이트에는 계정이나 금고가 없습니다. 「페이지가 스크립트를 요청했다」와 「도구 평문을 올렸다」를 섞지 마세요.

파일 상자 출력은 디스크에 받는 .lock / .enc 입니다. 그다음 드라이브, USB, 메일로 옮기는 것은 암호문입니다. 암호문을 드라이브에 올려도 암호와 원문은 보이지 않습니다. 단 암호를 같은 전송이나 같은 메일의 평문에 쓰지 않았다는 전제입니다. 로컬 암호화가 바꾸는 것은 「드라이브 관리자가 기본으로 사진을 연다」는 일이지 물리적 보관 책임이 아닙니다.

프라이버시(Clean Link와 Data Redaction)도 URL과 텍스트를 브라우저에서 다룹니다. UTM / 광고 파라미터를 빼고 전화와 신분증 번호를 가린 뒤, 결과를 확인하고 밖으로 보냅니다. 원문은 올리지 않고 analytics 내용으로도 쓰지 않습니다. 정리가 티켓 전체를 서버에 POST한 뒤 「마스킹됨」을 돌려주면 평문 창은 이미 서버에서 열렸고, 마스킹은 보여 주기만 남습니다.

브라우저 로컬 암호화의 경계와 오해

로컬 우선이 줄이는 것은 서버와 전송 경로의 노출이지, 악성코드에 장악된 한 대가 아닙니다. 경계를 기대에 적는 편이 AES 세 글자를 푸터에 찍는 것보다 쓸모 있습니다.

페이지에 주입되면 알고리즘은 돕지 못합니다

XSS나 가로채인 스크립트는 입력칸을 읽습니다. Web Crypto가 지키는 것은 「정직한 페이지의 키 조작」이지 「악성 스크립트가 이미 동일 출처에 들어온 뒤」가 아닙니다. 기대는 동일 출처 정책, CSP, 프론트 공급망 무결성입니다. 「AES-256-GCM」에서 「그래서 XSS는 무효」를 끌어내지 마세요.

확장, 회사 프록시, 어깨 너머

브라우저 확장과 회사 SSL 복호화 프록시는 여전히 페이지를 볼 수 있습니다. 회사 프록시가 루트 인증서를 넣으면 Network 패널이 보여 주는 것은 프록시 너머입니다. 기기 분실, 화면 공유, 어깨 너머는 로컬 계산이 막지 못합니다. 엔드포인트 문제이며 「서버가 평문을 가지면 안 된다」와 따로 다룹니다.

「올리지 않음」은 「인터넷을 끊음」이 아닙니다

페이지와 스크립트는 여전히 나갑니다. 확인할 것은 민감 칸이 요청에 나왔는지이지 랜선을 뽑는 것이 아닙니다. MyPassGen도 검사 중 비밀번호, 정리 원문, 파일 내용을 분석 이벤트로 보내지 않습니다. 이벤트에 비밀 자체는 없어야 합니다.

능력을 경계 밖으로 쓰지 마세요

알고리즘은 AES-256-GCM입니다. 전환 가능한 RSA나 아직 없는 국밀을 페이지에 기대하지 마세요. Burn-Link 읽기를 가입 필수로 쓰지 마세요. 서버가 평문이나 키를 볼 수 있다고도 하지 마세요. 제품 사실의 반대입니다. 로컬 우선의 정직한 쓰기는, 민감한 계산은 브라우저에서 끝나고 평문·키·파일은 기본으로 올리지 않으며 열람 후 폐기 서버는 암호문만 잠시 둔다는 것입니다.

직접 확인할 때 어디서 시작하나

먼저 「생성 한 번이 나갔는지」만 보려면비밀번호 생성 이 가장 맞습니다. 무작위 문자와 읽기 쉬운 패스프레이즈 모두 기기에서 끝나고 복사·내보내기도 같습니다. Network를 열고 위 단계로 방금 만든 문자열을 검색합니다. 비용이 가장 낮고 「평문 창」 감각이 생깁니다.

흔한 대안의 한계는 구체적입니다. 평문 메일과 메신저는 키를 양쪽 기록, 서버 보관, 기기 백업에 남깁니다. 드라이브는 기기에서 먼저 암호화하지 않으면 서버가 읽습니다. 키를 쿼리에 두면 거의 반드시 access log에 들어갑니다. 불편해서가 아니라 평문 창이 설계에 들어가 있습니다.

드라이브에 그대로 두면 안 되는 파일을 백업하려면파일 상자 를 씁니다. 브라우저에서 AES-256-GCM 스트림 암호화, 파일당 5 GB 이하, .lock 또는 .enc 를 받습니다. 암호화 과정을 캡처해 원본이 POST되지 않았는지 확인합니다. 짧은 텍스트 비밀을 한 번만 동료에게 주고 키를 서버 로그에 남기고 싶지 않다면Burn-Link 입니다. 로컬 암호화, 키는 # 에 두고 서버는 암호문만 만지며 읽기에 상대 가입은 없습니다. 이 글이 먼저 묻는 것은, 이번 클릭 뒤 평문이 아직 당신 탭에 있는가입니다.

MyPassGen 슬로건은 「로컬 암호화, 보안은 함께」입니다. 함께라는 전제는 계산이 지금 보는 탭에서 일어나고, 브라우저 패널로 그걸 한 번 확인할 수 있다는 것입니다.