본문으로 건너뛰기
HexaTransfer
블로그로 돌아가기
암호화 및 보안

파일용 이중 인증: 추가 보안 레이어

파일 전송에 이중 인증을 추가하여 보안을 강화하세요. 비밀번호와 일회용 코드 또는 이메일 인증을 결합하세요.

파일용 이중 인증(2FA)은 수신자가 알고 있는 것(PBKDF2를 통해 AES-256-GCM 키를 도출하는 비밀번호)과 수신자가 가지고 있는 것(Authy의 TOTP 코드, 이메일 매직 링크, 또는 기기에 묶인 WebAuthn 패스키)을 결합합니다. 공격자가 비밀번호를 피싱하거나 다운로드 URL을 가로채도 두 번째 인증 요소 없이는 페이로드를 복호화할 수 없습니다. 이 패턴은 WeTransfer 스타일 서비스에서 단일 요소 공유를 무력화하는 링크 전달, 자격증명 스터핑, 대부분의 어깨 너머 훔쳐보기 공격을 막아냅니다.

링크당 비밀번호 하나로는 부족한 이유

공유 다운로드 URL은 놀라울 정도로 유출되기 쉽습니다. Slack은 자동으로 미리보기를 생성하고, Gmail은 7년간 보관하며, 기업 프록시는 전체 쿼리 문자열을 기록합니다. 비밀번호가 별도의 이메일로 전달되더라도 두 채널이 동일한 받은 편지함인 경우가 많습니다. 따라서 단일 Microsoft 365 침해가 파일을 통째로 넘길 수 있습니다. Verizon DBIR 2025에 따르면 자격증명 기반 데이터 도용의 68%에 재사용 비밀번호가 관여했습니다. 두 번째 인증 요소를 추가하면 TOTP 시드가 수신자의 인증 앱을 절대로 떠나지 않기 때문에 이 연결고리가 끊어집니다.

TOTP가 다운로드 링크에서 작동하는 방식

발신자는 base32 문자열과 QR 코드로 인코딩된 160비트 공유 비밀을 생성합니다(RFC 6238). 수신자는 Google Authenticator, 1Password, 또는 Yubico Authenticator로 이를 스캔합니다. 앱은 30초마다 비밀과 30으로 나눈 Unix 타임스탬프를 HMAC-SHA1로 처리하고 결과를 6자리로 잘라냅니다. 수신자가 코드를 입력하면 서버는 현재 및 이전 윈도우를 확인해 시계 오차를 허용합니다. 코드가 검증된 후에만 서버가 암호화된 blob을 제공합니다. 복호화 키 자체는 클라이언트 측에 남아 수신자의 비밀번호에서 도출됩니다.

가벼운 두 번째 인증 요소로서의 이메일 매직 링크

모든 수신자가 인증 앱을 설치하지는 않습니다. 사전에 선언된 주소로 보내는 매직 링크가 합리적인 대안입니다. 발신자는 업로드 시 jane@hospital.org를 입력하고, 서비스는 그 주소의 SHA-256 해시를 저장합니다. Jane이 다운로드 URL을 클릭하면 서버가 10분간 유효한 128비트 랜덤 토큰을 이메일로 전송합니다. 토큰을 클릭하면 파일 비밀번호를 입력하는 다운로드 페이지가 열립니다. 토큰이 Jane의 사서함에 묶여 있기 때문에 동료에게 전달된 링크는 쓸모가 없습니다.

정기 수신자를 위한 WebAuthn과 패스키

매주 파일을 교환하는 팀(예: PCI DSS 4.0 증거를 받는 감사인)의 경우 패스키가 코드보다 성능이 뛰어납니다. 수신자는 첫 사용 시 FIDO2 자격증명을 등록합니다. 개인 키는 Secure Enclave 또는 YubiKey 5C에 보관됩니다. 이후 다운로드는 TOTP 재입력 대신 터치 한 번으로 가능합니다. 서명에 오리진이 포함되기 때문에 실제 다운로드 페이지를 프록시하는 피싱 사이트는 인증을 재생할 수 없습니다. Chrome, Safari 17, Firefox 122 모두 추가 클릭 없이 패스키 프롬프트를 표시하는 조건부 UI를 지원합니다.

청크 단위로 대용량 전송 보호하기

10GB DICOM 아카이브나 4GB Adobe Premiere 프로젝트는 단일 다운로드 모델에 맞지 않습니다. 페이로드를 5MB 청크로 분할하고 각 청크를 HKDF(RFC 5869)로 마스터 키에서 도출한 하위 키로 암호화하세요. 청크를 제공하기 전에 서버는 2FA 성공 후 발급된 신선한 세션 토큰을 검증합니다. 토큰은 예를 들어 30분 후 만료되어 일시 중지된 다운로드가 며칠 후 도난된 쿠키로 재개될 수 없게 합니다. 이는 Signal이 음성 메모 세그먼트를 처리하는 방식과 Backblaze B2가 멀티파트 업로드에 서버 측 인증을 적용하는 방식을 반영합니다.

속도 제한, 잠금, 오프라인 공격 함정

TOTP는 6자리에 불과하므로 순진한 엔드포인트는 공격자가 초당 수천 가지 조합을 시도할 수 있게 합니다. 세 번 틀린 후 지수 백오프를 적용하고, 열 번 후 링크를 잠그고, 발신자에게 웹훅을 전송하세요. 공격자에게 비밀번호 실패인지 코드 실패인지 알리지 마세요. 두 경우 모두 동일한 일반 오류를 반환하세요. TOTP 검증을 절대 클라이언트에 두지 마세요. 비밀을 브라우저에 전달하는 것은 전체 목적을 무효화합니다. Cloudflare Turnstile이나 hCaptcha 뒤의 강화된 엔드포인트에서 서버 측으로 검증하세요.

모델을 약화시키지 않는 복구

고전적인 실패 사례는 48시간 전송 기간 중 전화를 잃어버린 수신자입니다. 링크 생성 시 인쇄된 20자 base32 문자열인 비상 코드를 포함하면 이메일 의존성 없이 대안이 생깁니다. 똑같이 중요한 것은: 두 번째 인증 요소가 사용되지 않았더라도 다운로드 후 전송을 만료시키는 것입니다. 이렇게 하면 복구 코드가 담긴 분실 노트북이 한 달 후에 무기화될 수 없습니다. HexaTransfer를 포함한 일부 서비스는 발신자가 대시보드에서 링크를 취소해 진행 중인 세션 토큰을 모두 무효화할 수 있게 합니다.

사용자 경험 비용

30초짜리 전송에 2FA를 추가하면 무겁게 느껴질 수 있습니다. 위험에 맞게 조정하세요. 생일 사진 앨범이라면 건너뛰세요. 제품 출시의 500MB .psd 파일이라면 비밀번호를 요구하세요. GDPR 제15조 정보주체 접근 데이터의 2GB 아카이브라면 TOTP와 매직 링크를 모두 요구하세요. 계층형 UI(공개, 비밀번호, 2FA, 패스키)로 발신자가 문서를 읽지 않고도 선택할 수 있게 하세요.

GDPR 및 PIPA(개인정보 보호법) 적용 대상 데이터를 처리할 때 수신자 바인딩과 2FA 결합은 단순한 편의 기능이 아닙니다. 이것은 권한 없는 액세스를 방지하기 위한 합리적인 기술적 조치를 취했다는 증거가 됩니다. SwissTransfer는 단일 비밀번호 토글만 제공하고, Dropbox Transfer는 Teams 플랜 뒤에 2FA를 숨기고, Smash는 이메일 인증을 제공하지만 TOTP는 없습니다. 이 격차를 메울 가치가 있습니다.

hexatransfer.com에서 사용해 보세요 — 무료, 계정 불필요, 최대 10GB.

엔드투엔드 암호화로 대용량 파일을 안전하게 전송

엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.

파일 보내기