
클라우드 없이 안전하게 파일 보내기
민감한 파일을 누군가에게 보내야 할 때, 보통 어떻게 하시나요? 메일에 첨부하거나 Google Drive 링크를 공유하거나, 혹은 Slack에 올리거나요. 다 편하긴 한데, 한 가지 공통점이 있어요. 파일이 한 번은 외부 서비스의 서버를 거친다는 거죠. 일반 문서라면 큰 문제 없지만, 계약서나 비밀번호 목록, 개인정보가 담긴 파일이라면 좀 다른 이야기가 돼요.
Secvant라는 도구는 이 문제를 흥미로운 방식으로 풀어요. 웹 브라우저 안에서만 동작하는 파일 암호화 도구거든요. 서버에 파일을 올리지 않고, 본인 브라우저 안에서 암호화를 끝낸 다음 그 결과물(암호화된 파일)을 원하는 방식으로 공유할 수 있어요.
WebCrypto가 뭐길래 가능한가
핵심은 WebCrypto API예요. 이게 뭐냐면, 현대 브라우저(Chrome, Firefox, Safari, Edge 모두)에 내장된 표준 암호화 기능이에요. 예전에는 자바스크립트로 암호화를 하려면 별도의 암호화 라이브러리를 다운받아 써야 했는데, 그 자체가 보안적으로 취약했어요. 라이브러리가 변조되거나 CDN이 공격받으면 끝장이거든요.
그런데 WebCrypto는 브라우저 엔진 자체에 구현되어 있어서 외부 코드를 거치지 않고도 AES-GCM 같은 강력한 암호화 알고리즘을 쓸 수 있어요. 게다가 키 생성, 해시(SHA-256), 디지털 서명 같은 작업도 모두 네이티브 속도로 처리돼요. 자바스크립트로 구현된 암호화보다 훨씬 빠르고 안전한 셈이에요.
Secvant는 이 WebCrypto 위에 사용자 친화적인 인터페이스를 얹은 거예요. 파일을 드래그앤드롭하면 비밀번호를 입력받고, 그 비밀번호에서 PBKDF2 같은 키 유도 함수로 암호화 키를 만들어요. 그리고 AES-GCM으로 파일을 암호화한 결과를 다운로드받게 해주는 흐름이죠. 받는 사람은 같은 페이지에 암호화된 파일과 비밀번호를 입력해서 복호화하면 끝이에요.
기존 방식과 뭐가 다른가
7-Zip이나 VeraCrypt 같은 데스크톱 도구로도 비슷한 일을 할 수 있어요. 다만 받는 사람도 같은 프로그램을 설치해야 한다는 불편함이 있죠. 모바일에서는 쓰기가 까다롭고요.
PGP나 GPG 같은 정통 방식은 보안성은 최고지만, 일반 사용자한테는 키 관리부터 너무 복잡해요. 받는 사람이 공개키를 갖고 있어야 하고, 키 서버에 등록하는 과정도 거쳐야 하니까요. 개발자조차 1년에 한 번 쓸까 말까 한 명령어가 한가득이에요.
Secvant 같은 브라우저 도구는 이 사이의 빈 공간을 노려요. 보내는 사람과 받는 사람이 약속한 비밀번호 하나만 있으면, 별도 설치 없이 어느 기기에서나 암호화·복호화가 가능하거든요. 모바일 브라우저에서도 동작하고요.
주의해야 할 점들
이런 도구를 쓸 때 두 가지는 꼭 확인해야 해요. 첫 번째, 페이지 소스가 실제로 서버에 데이터를 안 보내는지 봐야 해요. "브라우저에서만 처리한다"고 주장해도, 백그라운드에서 fetch로 키를 어딘가에 보내고 있으면 의미가 없거든요. 오픈소스라면 코드를 직접 확인하거나, 브라우저 개발자 도구의 네트워크 탭으로 모니터링해볼 수 있어요.
두 번째는 비밀번호 자체의 강도예요. 아무리 AES-GCM이 강력해도, 비밀번호가 "1234"라면 무차별 대입으로 금방 뚫려요. 의미 있는 보안을 원한다면 길고 랜덤한 비밀번호를 써야 하고, 그 비밀번호를 받는 사람에게 전달하는 채널도 메신저처럼 평문이 남는 곳은 피하는 게 좋아요.
한국 개발자에게 주는 시사점
WebCrypto API는 의외로 활용도가 높은 도구예요. 사내 도구를 만들 때 민감 데이터를 클라이언트 측에서 미리 암호화해서 서버로 보내는 패턴(이른바 zero-knowledge 아키텍처)을 구현할 수 있고, PWA로 동작하는 패스워드 매니저나 노트 앱도 만들 수 있어요. 1Password나 Bitwarden 같은 서비스가 비슷한 원리로 동작하거든요.
직접 한 번 만들어보는 것도 좋은 학습이 돼요. crypto.subtle.encrypt, crypto.subtle.deriveKey 같은 메서드를 다뤄보면 암호화의 기본 흐름(키 유도 → 암호화 → 인증 태그 검증)이 손에 익거든요. 어느 시점이 되면 보안 관련 요구사항이 반드시 나오게 마련인데, 그때 당황하지 않을 수 있어요.
마무리
"브라우저 안에서 끝낸다"는 단순한 컨셉이지만, 그 안에는 데이터 주권에 대한 진지한 고민이 담겨 있어요. SaaS가 모든 걸 빨아들이는 시대에, 가끔은 서버를 거치지 않는 도구가 더 큰 자유를 줘요.
여러분은 민감한 파일을 공유할 때 어떤 방식을 쓰시나요? 클라우드의 편리함과 로컬 암호화의 안전함, 어느 쪽이 더 자주 손이 가시나요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공