제작 뒷이야기
Velum은 사진을 어떻게 암호화할까요, 단계별로 살펴봐요
llcloud 팀 3분 분량
빠른 답변
사진을 Velum에 넣으면 내가 그린 패턴에서 만든 키로 휴대폰에서 AES-256-GCM으로 암호화해요. 키는 Argon2id로 강화되어 추측 한 번 한 번이 느려져요. 그다음 Velum은 저장된 사본을 복호화해 원본과 대조한 뒤에야 갤러리에서 원본을 지울지 물어봐요. 패턴을 잊으면 9단어 복구 문구로 금고를 열 수 있어요. 암호화가 지키는 것은 저장된 데이터예요. 금고가 열린 채 잠금 해제된 휴대폰이나, 클라우드 백업이 이미 만든 사본은 지켜 주지 않아요.
“암호화”는 금고 앱이 자주 쓰는 말인데, 늘 같은 뜻은 아니에요. 비밀번호 뒤에 폴더를 잠가 놓고 안의 파일은 그대로 읽을 수 있게 두는 앱도 있어요. 그래서 라벨을 믿어 달라고 하는 대신, Velum에 사진을 넣으면 정확히 무슨 일이 일어나는지, 그 보호가 할 수 있는 일과 할 수 없는 일은 무엇인지 보여 드려요.
1단계: 패턴이 키가 돼요
모든 것은 내가 그린 패턴에서 시작해요. 패턴만으로는 너무 짧아서 키가 될 수 없어요. 그래서 Velum은 패턴을 Argon2id로 강화해요. 추측 한 번마다 실제 시간과 메모리가 들도록 설계된 방식이에요. Velum은 금고를 만들 때 이 비용을 내 휴대폰에 맞춰 조정하기 때문에 추측 한 번에 일부러 눈에 띄는 시간이 걸려요.
그 결과는 휴대폰의 보안 하드웨어에 보관된 키와 합쳐져요. 그래서 Velum의 파일만 복사해서는 다른 기계에서 추측을 시작할 수 없어요. 둘이 함께 그 금고만의 무작위 키를 열고, Velum은 그 키에서 사진, 썸네일, 금고의 목차용으로 각각 따로 키를 만들어요.
이 모든 것은 보이지 않아요. 패턴을 그리면 금고가 열려요.
2단계: 사진은 휴대폰에서 암호화돼요
사진을 가져오면 Velum은 Android 자체의 파일 선택기로 읽고 Google의 Tink 라이브러리로 AES-256-GCM 암호화를 해요. GCM은 두 가지 일을 해요. 데이터를 뒤섞고, 저장된 파일에서 단 한 바이트라도 바뀌면 실패하는 검사를 덧붙여요.
썸네일도 암호화되고 파일 이름도 마찬가지예요. 사진에 대해 읽을 수 있는 형태로 저장되는 것은 없고, 어떤 종류의 파일인지조차 그래요. 암호화된 데이터는 클리너 앱이 실수로 지울 수 있는 공유 폴더가 아니라 휴대폰의 Velum 전용 저장공간으로 들어가요.
그 저장공간 안에서는 모든 것이 이름이 무작위인 같은 크기의 블록으로 보관돼요. 사진, 썸네일, 금고의 색인이 모두 비슷해 보여서, 파일만 봐서는 사진이 몇 장인지도 어느 것이 무엇인지도 알 수 없어요.
3단계: 무언가 지우기 전에 가져오기를 확인해요
저희가 가장 신경 쓰는 단계예요. “사진을 다 잃었어요”가 금고 앱이 가장 두려워하는 리뷰이기 때문이에요. 그래서 Velum은 사진을 암호화하면서 원본의 지문도 기록해 둬요. 그다음 저장된 사본을 복호화해서 지문을 비교해요. 일치할 때만 갤러리에서 원본을 지울지 물어봐요.
삭제는 Android 자체의 삭제 대화상자를 거치기 때문에 휴대폰이 한 번 확인을 요청해요. Android가 파일을 삭제할 만큼 정확히 알아보지 못하면 Velum은 조용히 실패하는 대신 알려 줘요. 제대로 가져오지 못한 사진은 삭제 대상으로 제시되지 않아요.
4단계: 복구 문구와 백업
금고를 만들면 Velum이 9단어 복구 문구를 보여 줘요. 두 번째 입구라서, 패턴을 잊어도 이 단어들로 금고를 열 수 있어요. 종이에 적어 휴대폰과 떨어진 곳에 두세요.
백업은 금고를 저장된 그대로, 이미 암호화된 상태로 복사해요. 무료 백업은 휴대폰, 메모리 카드, USB 드라이브처럼 직접 고른 폴더로 가요. Pro에서는 Velum이 내 Google Drive의, Velum만 읽을 수 있는 숨겨진 앱 공간에 알아서 백업해요. 새 휴대폰에는 이전 휴대폰의 보안 하드웨어 키가 없기 때문에 백업은 패턴이나 복구 문구만으로 열려요.
5단계: 패턴마다 자기 금고가 열려요
Pro에서는 금고를 더 추가할 수 있고, 금고마다 자기 패턴과 자기 문구가 있어요. 평범한 사진을 담은 두 번째 금고는 누군가에게 휴대폰을 보여 줘야 할 때 위장 보관함 역할을 할 수 있어요.
Velum은 금고 목록을 어디에도 보관하지 않아요. 잠금 해제는 항상 존재하는 위장 파일 묶음 속에서 내가 그린 패턴에 맞는 키가 있는지 확인하는 방식으로 작동해요. 틀린 패턴은 “인식되지 않음”이라고 하고 무엇을 그렸든 같은 시간을 기다려서, 앱이 무엇이 존재하는지 아무것도 알려 주지 않아요.
Pro에는 비상 패턴도 있어요. 금고 하나를 열면서 휴대폰의 다른 모든 금고의 키를 조용히 지워요. 키가 없으면 그 금고들은 열 수 없어요. 직접 설정하는 기능이고 되돌릴 수 없어요.
암호화가 지켜 주지 못하는 것은 무엇인가요?
암호화는 저장된 상태의 데이터, 즉 저장공간에 놓인 파일을 보호해요. 방어막이 아니고, 저희는 이 점을 미리 말씀드리고 싶어요.
- 열린 금고는 열려 있어요. 휴대폰이 잠금 해제된 채 Velum이 열린 상태로 누군가에게 건네지면 화면에 있는 것을 볼 수 있어요. Velum은 화면이 꺼지거나 앱을 나가면 잠기고, 휴대폰을 화면이 아래로 가게 엎어 두어도 잠글 수 있어요.
- 이전에 만들어진 사본은 닿지 않아요. Google Photos 같은 클라우드 서비스가 이미 사진을 백업했다면 갤러리에서 지워도 그 사본은 사라지지 않아요. Android에서 사진 숨기는 방법 가이드가 확인하는 방법을 안내해요.
- 숨김이 보이지 않는 것은 아니에요. 숨겨진 금고는 어디에도 목록에 나오지 않지만, Velum이 있다는 것을 아는 사람은 숨겨진 금고가 있을 수 있다는 것도 알아요.
- 이전 백업은 그대로예요. 비상 패턴은 폴더 백업이 다음에 실행될 때 반영되지만, 전에 다른 곳에 만들어 둔 백업 사본은 Velum이 닿지 못해요.
- 둘 다 잃으면 접근도 잃어요. 계정도 재설정 이메일도 없어요. 패턴과 문구를 모두 잃으면 아무도 그 금고를 열 수 없어요.
- 공유하면 사본이 만들어져요. 사진을 다른 앱으로 공유하면 Velum은 위치 정보를 지운 읽을 수 있는 사본을 넘겨요. 그 앱이 사본으로 무엇을 하는지는 그 앱에 달려 있어요.
사진을 숨기는 다른 방법과는 어떻게 다른가요?
기본 제공 옵션은 접근이 달라서 그것이 맞는 선택일 수도 있어요. Velum vs Google Photos 잠긴 폴더와 Velum vs 삼성 시큐어 폴더가 비교하고, Velum vs Keepsafe는 오래된 금고 앱을 살펴봐요.
무료 도구 두 가지도 어울려요. 암호문 생성기는 아무것도 전송하지 않고 브라우저에서 강력하고 기억하기 쉬운 암호문을 만들어 주고, 사진 위치 정보 제거는 사진에 촬영 위치가 들어 있는지 확인하고 공유하기 전에 그 정보를 지워 줘요.
출처
질문
금고 앱은 정말 사진을 암호화하나요?
암호화하는 앱도 있고, 비밀번호 뒤에 숨기기만 하고 원본 파일은 휴대폰에서 읽을 수 있게 두는 앱도 있어요. Velum은 모든 사진, 동영상, 썸네일, 파일 이름을 저장하기 전에 AES-256-GCM으로 암호화해요. 앱에서 직접 확인할 수 있어요. 다른 사람에게 보이는 모습에서 아무 사진이나 휴대폰에 저장된 같은 파일 옆에 보여 주는데, 이름도 형식도 없는 무작위 노이즈예요.
Velum 패턴을 잊으면 어떻게 되나요?
9단어 복구 문구로 금고를 열 수 있어요. Velum은 금고를 만들 때 문구를 보여 주고, 추가한 금고마다 각자의 문구가 있어요. 종이에 적어서 안전한 곳에 두세요. 계정도 재설정 이메일도 없어서, 패턴과 문구를 모두 잃으면 아무도 그 금고를 열 수 없어요.
사진을 금고로 옮기다가 잃을 수도 있나요?
Velum은 복사에 실패해도 원본을 잃지 않게 만들어졌어요. 모든 가져오기는 복호화해서 원본과 비교한 뒤에야 갤러리에서 지울지 물어보고, 지우기 전에 휴대폰이 한 번 더 확인을 요청해요. 직접 고른 폴더로의 무료 암호화 백업이 금고 밖에 또 하나의 사본을 남겨 줘요.
휴대폰을 손에 넣은 사람이 Velum을 열 수 있나요?
패턴이나 복구 문구 없이는 안 돼요. 틀린 패턴은 무엇을 그렸든 같은 시간을 기다리게 하고, 다섯 번 틀리면 대기 시간이 길어져요. Velum은 화면이 꺼지거나 앱을 나가면 잠겨요. 금고가 이미 열린 채 잠금 해제된 휴대폰을 건네는 경우까지는 지킬 수 없어요.