Velcrypt의 작동 방식: 보안 모델

업데이트

  1. 내 패턴 5×5 격자에 그립니다. 저장되지도, 어디로 전송되지도 않습니다.
  2. PBKDF2-HMAC-SHA512 iOS 키체인에 보관된 기기별 무작위 솔트로 최소 600,000회 반복합니다.
  3. 패턴 키(256비트) 정확히 이 패턴에 속한 금고만 엽니다.
  4. 금고 마스터 키 금고마다 고유한 무작위 256비트 키로, 패턴 키가 보호합니다.
  5. HKDF → 파일별 키 모든 파일이 마스터 키에서 파생된 각자의 키를 받습니다.
  6. AES-256-GCM Apple CryptoKit을 통한 인증 암호화에 더해 파일에 iOS 데이터 보호가 적용됩니다.
패턴이 파일을 암호화하는 키가 되는 과정. 모든 단계는 iPhone에서 이루어집니다.

이 페이지는 사진, 동영상, 문서를 Velcrypt에 넣었을 때 어떤 일이 일어나는지, 그리고 보호가 어디까지인지를 쉬운 말로 설명합니다. 개인적인 것을 맡기기 전에 설계를 먼저 이해하고 싶은 분들을 위해 썼습니다.

간단히 말하면

Velcrypt는 비공개 파일을 기기 안의 암호화된 금고에 보관하는 iPhone 앱입니다. 5×5 점 격자에 패턴을 그려 금고를 엽니다. 이 패턴은 어디에도 저장되지 않습니다. 대신 느린 키 파생 함수를 거쳐 키가 만들어지고, 그 키가 금고의 내용을 보호합니다.

모든 일은 iPhone 안에서 일어납니다. Velcrypt에는 계정도, 서버도, 업로드 단계도 없으므로 금고나 키의 사본이 다른 곳에 존재하지 않습니다. 이것이 Velcrypt의 강점이자 가장 큰 한계입니다. 패턴을 잊거나 휴대폰을 잃어버리면 금고를 복구할 수 없습니다.

패턴에서 키까지

패턴

패턴은 25개 점 중 최소 6개를 지나고 방향을 한 번 이상 바꾸는 하나의 연속된 선입니다. 점이 하나 늘 때마다 공격자가 시도해야 할 패턴 수가 몇 배로 늘어나므로 8~12개 점의 긴 패턴을 권장합니다. 장단점은 패턴 잠금 vs PIN vs Face ID에서, 잠금 자체의 작동 방식은 패턴 잠금 기능 페이지에서 확인할 수 있습니다.

기기별 솔트를 사용한 PBKDF2

패턴을 다 그리면 Velcrypt는 점의 순서를 PBKDF2-HMAC-SHA512와 최소 600,000회 반복으로 키로 변환합니다. PBKDF2는 키 파생 함수입니다. 즉, 비밀(패턴)을 암호화 키로 바꾸는, 일부러 느리게 만든 반복 가능한 계산 방식입니다. 느린 것이 핵심입니다. 키 하나를 만드는 데 사용자에게는 순간이지만, 수백만 개의 패턴을 시도하려는 사람은 그 비용을 수백만 번 치러야 합니다.

이 과정에는 솔트도 섞입니다. 솔트는 기기에서 한 번 생성되어 iOS 키체인에 저장되는 무작위 값입니다. 솔트가 iPhone마다 다르기 때문에 우연히 같은 패턴을 그린 두 사람도 완전히 다른 키를 얻게 되며, “자주 쓰는 패턴 → 키”를 미리 계산해 둔 표는 쓸모가 없어집니다.

금고별 마스터 키

모든 금고에는 고유한 마스터 키가 있습니다. 금고를 만들 때 시스템의 안전한 난수 생성기로 만든 256비트 무작위 값입니다. 금고의 파일을 실제로 보호하는 것은 이 마스터 키입니다. 마스터 키는 패턴에서 파생된 키로 봉인된(래핑된) 형태로만 저장됩니다. 올바른 패턴 없이는 마스터 키의 봉인을 풀 수 없습니다.

이 분리는 중요합니다. 마스터 키는 진짜 무작위 값이므로 패턴을 얼마나 외우기 쉽게 만들었는지와 관계없이 강도가 유지되며, 같은 휴대폰에 있는 각 금고를 암호학적으로 서로 독립시켜 줍니다.

파일별 키

Velcrypt는 마스터 키에서 HKDF를 이용해 파일마다 별도의 키를 파생합니다. HKDF는 하나의 강력한 비밀에서 서로 독립된 여러 키를 만드는 표준 함수입니다. 어떤 파일의 키가 노출되더라도 마스터 키나 다른 파일의 키는 드러나지 않습니다.

파일 암호화 방식

Apple CryptoKit을 통한 AES-256-GCM

모든 사진, 동영상, 문서는 자체 제작한 암호 코드가 아니라 Apple의 CryptoKit 프레임워크를 사용해 AES-256-GCM으로 암호화됩니다. AES-256-GCM은 인증 암호화입니다. 내용을 기밀로 유지하는 동시에 변조를 감지합니다. 암호화된 파일이 단 1비트라도 바뀌면, 손상되거나 조작된 데이터를 내놓는 대신 복호화가 실패합니다. 자세한 설명은 AES-256 암호화 설명과 암호화 기능 페이지를 참고하세요.

두 번째 보호막, iOS 데이터 보호

Velcrypt 자체 암호화에 더해, 금고 파일은 iOS 데이터 보호의 Complete(완전 보호) 등급으로 저장됩니다. 이 등급에서는 iPhone 잠금이 풀려 있을 때만 사용할 수 있는 키로 iOS가 파일을 암호화된 상태로 유지합니다. 휴대폰이 잠겨 있으면 운영체제조차 파일을 읽을 수 없습니다. 이 보호막은 Apple이 제공하며 Velcrypt의 키와 독립적이므로, 공격자는 두 겹을 모두 뚫어야 합니다.

모르는 패턴이 빈 금고를 여는 이유

대부분의 앱은 저장된 무언가(해시, 검증 값, “정답”)와 비밀번호를 비교한 뒤 비밀번호가 틀렸습니다라고 알려 줍니다. Velcrypt는 의도적으로 그렇게 하지 않습니다.

금고 목록도, 패턴이 “맞는지” 확인해 주는 저장 값도 없습니다. 패턴을 그리면 Velcrypt는 키를 파생해 그 키에 해당하는 금고를 열려고 시도합니다. 일치하는 금고가 없으면 앱은 그 패턴용으로 새로운 빈 금고를 열 뿐입니다. 휴대폰을 든 사람에게는 한 번도 쓰지 않은 패턴과 실제로 있지만 비어 있는 금고가 똑같아 보입니다.

이것이 그럴듯한 부인 가능성입니다. 앱 안의 어떤 것도 반대 사실을 증명하지 못하므로 “더 볼 것이 없다”고 설득력 있게 말할 수 있는 것입니다. 평범한 사진을 담은 위장용 금고와 정말 비밀스러운 것을 담은 별도의 금고를 둘 수 있습니다. 자세한 내용은 숨겨진 금고 페이지와 위장용 금고, 그럴듯한 부인 가능성 가이드를 참고하세요.

실용적인 부작용도 있습니다. 패턴을 점 하나만 다르게 기억해도 오류 대신 빈 금고가 열립니다. 이는 버그가 아니라 의도된 설계입니다.

잠금과 앱 전환기

Velcrypt는 백그라운드로 전환되면 설정한 지연 시간 후 자동으로 잠깁니다. 잠기면 금고 키가 메모리에서 지워지고 패턴을 다시 그려야 합니다. 금고 콘텐츠는 iOS 앱 전환기에서도 가려지므로, 최근 앱을 훑어봐도 비공개 사진의 미리보기가 보이지 않습니다. 설정은 자동 잠금에서 확인하세요.

Face ID나 Touch ID 잠금 해제는 설계상 없습니다. 얼굴이나 손가락은 잠든 사이나 압박을 받는 상황에서 동의 없이 사용될 수 있습니다. 패턴은 오직 기억 속에만 존재합니다.

네트워크 없음, 계정 없음, 백업 없음

Velcrypt는 완전히 오프라인으로 작동합니다. 가입, 이메일 주소, 서버, 금고 콘텐츠 업로드가 없으며, 보관한 항목에 대한 분석도 수집하지 않습니다. 실제로 이것이 무엇을 의미하는지는 오프라인, 계정 없음 페이지에 정리되어 있습니다.

첫 버전에서는 금고 데이터가 iCloud 및 컴퓨터(Finder) 백업에서도 제외됩니다. 덕분에 암호화된 파일이 Apple 서버나 동기화하는 컴퓨터에 남지 않지만, 분명한 결과가 따릅니다. iPhone을 잃어버리거나 고장 나거나 초기화하면 금고도 함께 사라집니다. 암호화 백업 옵션이 계획되어 있으나 시기는 정해지지 않았습니다.

위협 모델 한눈에 보기

위협보호 여부비고
누군가 사진 보관함을 넘겨봄예가져온 뒤 사진 앱에서 삭제한 항목(최근 삭제된 항목 포함)은 Velcrypt에만 있습니다.
잠금이 풀린 휴대폰을 집어 Velcrypt를 엶예패턴이 필요하며, 틀린 패턴은 빈 금고를 보여 줍니다.
다른 금고가 있다는 것을 증명하려 함대부분금고 목록도, “잘못된 패턴” 메시지도 없고, 앱에 금고 수가 표시되지 않습니다.
잠긴 iPhone 도난예iOS 데이터 보호와 Velcrypt 자체 AES-256-GCM 암호화.
추출한 파일로 패턴 무차별 대입지연됨600,000회 이상의 PBKDF2와 기기별 솔트. 긴 패턴이 중요합니다.
클라우드 계정 유출예금고 데이터는 업로드되지 않으며 v1에서는 iCloud 백업에서 제외됩니다.
암호화된 파일 변조감지됨AES-256-GCM 인증이 변경된 데이터를 거부합니다.
패턴 그리는 모습을 누군가 지켜봄아니요아래 참고.
악성코드 또는 탈옥된 기기아니요아래 참고.
패턴 분실 또는 휴대폰 분실아니요복구할 수 없습니다.

Velcrypt가 막지 못하는 것

모든 보안 도구에는 한계가 있으며, Velcrypt에 의지하기 전에 그 한계를 알아 두셔야 합니다.

  • 어깨 너머로 엿보기. 누군가 직접 또는 카메라로 패턴 그리는 모습을 보면 그 금고를 열 수 있습니다. 보이지 않는 곳에서 그리고, 단순한 글자나 도형처럼 보이지 않는 패턴을 고려하세요.
  • 잠금 해제를 강요받는 상황. Velcrypt는 누군가 패턴을 그리도록 강요하는 것을 막을 수 없습니다. 위장용 금고가 도움이 될 수 있고, 선택한 금고를 열면서 다른 금고에 대한 접근을 조용히 제거하는 강압 패턴(출시 예정, Premium)이 계획되어 있습니다.
  • 금고가 열린 채 건넨 휴대폰. 금고가 열려 있는 동안에는 휴대폰을 든 누구나 화면을 볼 수 있습니다. 다른 사람에게 휴대폰을 건네기 전에 잠그세요.
  • 해킹되거나 탈옥된 기기와 악성코드. 손상된 기기에서 화면을 읽거나 터치를 기록하거나 앱 메모리를 들여다볼 수 있는 소프트웨어는 어떤 앱 수준의 암호화도 무력화할 수 있습니다.
  • 스크린샷이나 화면 촬영. Velcrypt는 다른 카메라로 화면을 찍는 것을 막을 수 없습니다.
  • 다른 곳에 남은 사본. 가져오기는 사진을 복사합니다. 원본은 직접 삭제할 때까지 사진 앱에 남고, 삭제 후에도 약 30일 동안 최근 삭제된 항목에 남습니다. iCloud 사진, 채팅 앱, 이메일, 다른 사람의 휴대폰에도 사본이 있을 수 있습니다. 가져온 뒤 원본 삭제하기를 따라 해 보세요.
  • 휴대폰 분실이나 패턴 분실. 둘 다 데이터가 사라진다는 뜻입니다. 복구 문구도 초기화도 없습니다. 금고 패턴을 잊었을 때를 참고하세요.
  • Velcrypt 사용 사실의 탐지. 앱 아이콘은 보이며, 포렌식 도구로 Velcrypt가 암호화된 데이터를 보관한다는 사실과 대략적인 용량을 알 수 있습니다. Velcrypt는 이를 숨긴다고 주장하지 않습니다. 숨기는 것은 금고의 수와 그 내용뿐입니다.
  • 약하거나 추측하기 쉬운 패턴. 짧은 패턴이나 L, Z, 사각형 모양의 패턴은 훨씬 추측하기 쉽습니다. 패턴 강도 검사기로 비슷한 모양을 테스트하세요. 실제 패턴은 절대 입력하지 마세요.

독립적인 검토

Velcrypt는 직접 만든 알고리즘이 아니라 널리 연구된 표준 구성 요소와 Apple 자체 암호화 라이브러리에 의존합니다. 그렇다 해도 좋은 설계가 검증된 설계와 같은 것은 아닙니다. Velcrypt는 독립적인 감사를 받지 않았습니다. 외부 보안 검토를 환영하며, 검토가 이루어지면 그 결과를 이 페이지에 공개하겠습니다.

용어 설명

  • AES-256-GCM은 256비트 키를 사용하고 데이터를 인증하는 대칭 암호화 방식으로, 변조가 있으면 복호화 시 감지됩니다.
  • PBKDF2(Password-Based Key Derivation Function 2)는 비밀번호나 패턴 같은 비밀을 해시 함수를 여러 번 반복해 키로 바꾸는 표준으로, 추측을 느리게 만듭니다.
  • 솔트는 키 파생 전에 비밀과 섞는 무작위 값으로, 같은 패턴이라도 기기마다 다른 키가 만들어지게 합니다.
  • HKDF(HMAC 기반 키 파생 함수)는 하나의 강력한 키에서 서로 독립된 여러 키를 파생하는 표준 방식입니다.
  • 마스터 키는 하나의 금고에 속한 무작위 256비트 키로, 그 금고의 모든 파일 키를 보호합니다.
  • 그럴듯한 부인 가능성은 앱 안의 어떤 것도 추가 금고의 존재를 증명할 수 없는 성질로, 다른 금고를 드러내지 않고 금고 하나만 보여 줄 수 있게 합니다.

자주 묻는 질문

Velcrypt가 제 사진을 보거나 복구할 수 있나요?

아니요. Velcrypt에는 서버도, 계정 시스템도, 키의 사본도 없습니다. 패턴은 어디에도 저장되지 않으므로 Velcrypt의 누구도 금고를 열거나 초기화하거나 복구할 수 없습니다.

Velcrypt에서 누군가 잘못된 패턴을 그리면 어떻게 되나요?

Velcrypt가 한 번도 본 적 없는 패턴은 새로운 빈 금고를 열 뿐입니다. 오류 메시지도 없고, 다른 금고가 있는지 알려 주는 것도 없습니다.

Velcrypt의 암호화는 아이폰 기본 암호화와 같은가요?

아니요, 그 위에 더해집니다. iOS는 이미 기기를 암호화하고 Velcrypt는 파일에 가장 엄격한 iOS 데이터 보호 등급을 적용하지만, 그와 별도로 금고 패턴에서 파생된 고유한 AES-256-GCM 키로 각 파일을 암호화합니다. 따라서 휴대폰 잠금이 풀린 것만으로는 금고가 열리지 않습니다.

Velcrypt는 독립적인 보안 감사를 받았나요?

아직 받지 않았습니다. Velcrypt는 Apple의 CryptoKit과 충분히 연구된 표준 알고리즘을 기반으로 만들어졌고 독립적인 보안 검토를 환영하지만, 지금까지 진행된 검토는 없습니다.

Velcrypt는 암호화 금고를 쓴다는 사실 자체를 숨겨 주나요?

완전히는 아닙니다. 앱은 홈 화면에 보이며, 포렌식 도구를 가진 사람은 Velcrypt가 암호화된 데이터를 보관하고 있다는 사실과 대략적인 용량을 알아낼 수 있습니다. Velcrypt가 숨기는 것은 금고가 몇 개인지, 그 안에 무엇이 있는지입니다.

Well Encrypted. Truly Private.

패턴을 그리면 비밀 금고가 열립니다. 사진, 동영상, 문서는 계정도 클라우드도 없이 iPhone 안에 암호화된 채로 남습니다.

곧 출시 예정 App Store

iPhone(iOS 17 이상)용으로 곧 출시됩니다. 무료 버전과 선택형 Premium.