비밀번호 보호 파일 전송: 공유 파일을 안전하게
파일 전송에 비밀번호 보호를 추가하여 추가 보안 레이어를 확보하세요. 비밀번호 파생 암호화의 작동 원리와 모범 사례.
비밀번호 보호 파일 전송이란 수신자가 발신자가 선택한 비밀 없이는 페이로드를 복호화할 수 없다는 의미입니다. 비밀번호는 단순한 로그인 게이트가 아닙니다. PBKDF2-HMAC-SHA256(또는 Argon2id)에 대한 입력으로, 바이트를 암호화하는 데 사용되는 AES-256-GCM 키를 파생합니다. 비밀번호 없이는 서버의 암호문이 노이즈일 뿐입니다. 이는 파일을 평문으로 저장하고 HTTP 레이어에서만 비밀번호를 확인하는 "비밀번호 게이트" 전송 도구와 근본적으로 다릅니다. 진정한 비밀번호 보호는 비밀번호를 암호화 자체에 연결합니다.
게이팅과 파생의 차이
2020년 이전의 대부분의 소비자 파일 공유 플랫폼은 비밀번호 게이팅을 사용했습니다. .pdf를 업로드하면 서버가 S3에 저장하고, Rails 컨트롤러가 제출된 비밀번호를 bcrypt 해시와 대조해 파일을 넘겼습니다. 데이터베이스 접근 권한이 있는 관리자나 법원 명령이 있으면 모든 것이 보였습니다. 비밀번호 파생 암호화는 이를 뒤집습니다. 브라우저가 600,000회 반복(OWASP 2023 기준)으로 PBKDF2를 실행하고, 비밀번호를 256비트 키로 늘리며, 업로드 전에 암호화합니다. 서버는 암호문과 무작위 솔트를 보유합니다. 비밀번호 없이는 키도 없고 파일도 없습니다. Firefox Send는 Mozilla가 2020년 종료하기 전까지 이 모델을 사용했습니다.
PBKDF2와 Argon2id 선택하기
PBKDF2는 주력입니다. Web Crypto API에 탑재되어 어디서나 실행되며 높은 반복 횟수에서 브루트 포스에 저항합니다. Argon2id는 더 새롭고 더 좋습니다. 메모리 경도로 GPU 공격자가 레인보우 테이블을 저렴하게 처리할 수 없습니다. 문제는 브라우저 지원입니다. 네이티브 Argon2가 Web Crypto에 아직 없어서, 서비스들은 libsodium.js를 통해 구현하며 번들에 약 180KB가 추가됩니다. 어차피 업로드가 병목인 10GB 전송에서는 m=64MB, t=3, p=1의 Argon2id가 유리합니다. 20MB 첨부 파일에서는 600k 반복의 PBKDF2가 중급 스마트폰에서 400ms에 완료됩니다.
충분히 강한 비밀번호란
대문자, 소문자, 숫자, 기호가 혼합된 12자 비밀번호는 약 78비트의 엔트로피를 달성합니다. Argon2id에 대한 2026년 수준의 오프라인 공격에 충분합니다. 네 단어 Diceware 암호(correcthorsebatterystaple 스타일)는 51비트에 이르며 전화로 읽기 더 쉽습니다. KDF 강화가 있어도 짧은 비밀번호는 피하세요. 도난된 암호문과 솔트를 가진 공격자는 RTX 5090에서 초당 2,000만 번의 추측으로 PBKDF2를 실행할 수 있습니다. 6자 비밀번호는 수 분에 노출됩니다. 복잡성보다 길이입니다. "Summer2026!"을 시도하는 모든 사용자에게 이를 외치세요.
목적을 무력화하지 않고 비밀번호 공유하기
같은 스레드에서 파일 링크와 비밀번호를 이메일로 보내는 것은 모든 것을 무력화합니다. 받은 편지함을 소유한 공격자가 둘 다 소유합니다. 채널을 분리하세요. 링크는 이메일로, 비밀번호는 SMS나 Signal로 보내세요. 더 좋은 방법은 1Password의 Psst!나 전달 스크린샷이 불가능한 인앱 Slack 다이렉트 메시지 같은 일회성 비밀 서비스를 사용하는 것입니다. 정기적인 수신자에게는 대역 외로 비밀번호 파생 체계에 합의하세요(예: "월 이름 + 프로젝트 ID"). 그러면 민감한 것이 전선을 타지 않습니다.
솔트, 논스, 그리고 그것들이 비밀번호가 아닌 이유
암호문과 함께 세 가지가 이동합니다. KDF용 솔트(16바이트), GCM용 논스(12바이트), 인증 태그(16바이트)입니다. 이 중 어느 것도 비밀로 유지할 필요가 없습니다. 단지 전송당 고유해야 합니다. 같은 키로 논스를 재사용하는 것은 GCM에서 치명적입니다. 평문의 XOR이 노출됩니다. crypto.getRandomValues()를 통한 암호화적으로 무작위인 생성이 이를 처리하며, 솔트는 파일 메타데이터 헤더에 저장됩니다. 비밀번호가 유일한 비밀입니다. 다른 모든 것은 암호문과 함께 이동합니다.
클라이언트 측 변조로부터 보호하기
악성 브라우저 확장 프로그램은 사용자가 입력하는 비밀번호를 읽을 수 있습니다. 인라인 스크립트와 외부 연결을 금지하는 Content Security Policy 헤더(connect-src 'self'), 모든 번들 JavaScript에 Subresource Integrity, 참조자가 분석 도구에 노출되지 않도록 엄격한 Referrer-Policy를 통해 완화하세요. 매니페스트의 서브리소스 해시로 WASM 번들을 감사하세요. 이 중 어느 것도 손상된 OS를 막지 못하지만 일반적인 훑어보기 이상으로 기준을 높입니다. HexaTransfer는 SHA-384 해시를 공개해 파워 유저들이 로드된 번들이 소스 저장소와 일치하는지 검증할 수 있습니다.
키를 노출하지 않고 중단된 다운로드 재개하기
5GB .iso 파일의 다운로드는 몇 시간에 걸칠 수 있습니다. 탭이 닫히면 비밀번호를 다시 입력하지 않고 재개할 수 있어야 합니다. 파생된 키를 SessionStorage에 저장하세요(LocalStorage는 절대 안 됩니다. 재시작 시 지속됩니다). 다운로드가 완료되거나 탭이 닫힐 때 지웁니다. 청크별 모델에서는 각 5MB 블록이 마스터에서 파생된 자체 HKDF 서브키를 받습니다. 이렇게 하면 일시 중지된 세션 재시작 시 현재 청크의 서브키만 노출되고 루트는 노출되지 않습니다.
비밀번호 보호만으로 충분하지 않은 경우
비밀번호만으로는 권한 있는 수신자가 파일을 재공유하는 것을 막을 수 없습니다. Jane이 .docx를 복호화하면 어디든 전달할 수 있습니다. 진정한 격리를 위해 비밀번호를 DRM 스타일 제한과 결합하세요. 단일 다운로드 링크, IP 제한 접근, 또는 짧은 만료 기간(PCI DSS 4.0 증거 패키지의 경우 15분)이 그것입니다. GDPR 제32조 컴플라이언스를 위해 누가 무엇을 언제 접근했는지 기록하세요. HIPAA와 한국의 개인정보 보호법(PIPA)도 마찬가지로 접근 로깅을 요구합니다. 비밀번호 보호는 바닥이지 천장이 아닙니다. 우발적인 가로채기의 비용을 높이지만 내부자 위협 문제는 해결하지 못합니다.
hexatransfer.com에서 사용해 보세요 — 무료, 계정 불필요, 최대 10GB.
엔드투엔드 암호화로 대용량 파일을 안전하게 전송
엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.
파일 보내기