패턴 암호화: 도형 그리기로 파일을 보호하는 방법
손가락으로 패턴을 그립니다. PBKDF2가 그 동작을 금고 키로 바꾸고, 금고 키가 AES-256-GCM으로 파일을 보호하는 별도의 무작위 키를 엽니다. 비밀번호 입력란도, 짧은 PIN도 없습니다. 패턴과 의도적으로 계층화한 키 구조만 있습니다.
Vaultaire는 5×5 그리드에 그린 도형을 직렬화한 뒤, iOS Keychain에 있는 기기 전체 솔트와 함께 PBKDF2-HMAC-SHA512로 600,000회 반복 처리합니다. 256비트 결과가 금고 키입니다. 이 키는 금고 인덱스를 암호화하고, 파일 콘텐츠와 메타데이터의 AES-256-GCM 암호화에 쓰이는 별도의 무작위 마스터 키를 풉니다.
패턴 암호화란 무엇입니까?
대부분의 금고 앱은 PIN이나 비밀번호 뒤에 숨겨져 있습니다. 네 자리 숫자를 입력하면 사진이 나타납니다. 충분히 안전한 것 같죠?
문제는 다음과 같습니다. 4자리 PIN에는 정확히 10,000개의 조합이 가능합니다. 컴퓨터는 1초 안에 모든 것을 시도할 수 있습니다. 여섯 자리? 백만 가지 조합. 최신 하드웨어에서는 여전히 속도가 매우 빠릅니다. 8자리 비밀번호라도 소문자만 사용하면 약 2000억 개의 가능성이 제공됩니다. 표준 노트북이 초당 수십억 개의 비밀번호 해시를 테스트할 수 있다는 사실을 알기 전까지는 꽤 많은 것처럼 들립니다.
패턴 암호화는 근본적으로 다른 접근 방식을 취합니다. 상자에 문자를 입력하는 대신 점 격자를 가로질러 기하학적 모양을 그립니다. 추적하는 특정 경로(어떤 점, 어떤 순서, 어떤 기하학을 터치하는지)가 비밀번호 기반 키 파생 기능에 대한 입력이 됩니다. 그 결과는 인터페이스가 확인만 하는 값이 아니라, 인증된 암호화 인덱스와 그 안의 무작위 마스터 키를 실제로 열어야 합니다.
이 차이는 중요합니다. 어떤 앱은 PIN을 입력하면 번호가 맞는지만 확인하고, 맞으면 파일이 주로 접근 제어로만 보호되고 있더라도 열어 줍니다. 반면 Vaultaire는 그린 패턴을 PBKDF2에 넣어 256비트 금고 키를 파생합니다. 이 키로 금고 인덱스를 인증하고 복호화해야 파일에 쓰인 무작위 마스터 키를 풀 수 있습니다. 인식되지 않는 패턴은 빈 금고로 표시되지만, 내부의 AES-GCM 인증은 여전히 맞는 키와 틀린 키를 구별합니다.
PIN 기반 접근 게이트는 읽을 수 있는 파일 앞에 달린 잠긴 문과 같을 수 있습니다. Vaultaire의 패턴은 금고의 비밀번호 조합에 더 가깝습니다. 패턴은 암호화된 인덱스를 여는 키를 파생하고, 그 키가 다시 콘텐츠를 보호하는 별도의 키를 풉니다. 인터페이스만으로는 이 암호화 체인을 건너뛸 수 없습니다.
작동 방식, 단계별
다음은 손가락이 화면을 터치하는 순간부터 파일을 다른 사람이 읽을 수 없게 되는 순간까지 일어나는 일입니다.
1단계: 패턴 그리기
Vaultaire는 5×5 도트 그리드를 제공합니다. 한 번 이상의 방향 변경을 통해 6개 이상의 점을 연결하는 연속 경로를 그립니다. 앱은 사용자가 방문한 점과 순서를 정확하게 기록합니다. 이 순서가 귀하의 패턴입니다.
Android 잠금 화면에서 흔히 쓰는 3×3 그리드와 달리 Vaultaire는 5×5 그리드를 사용합니다. 겉모양 때문에 고른 것이 아닙니다. 25개의 점은 9개보다 훨씬 많은 경로, 교차, 건너뛰기, 방향 전환을 허용합니다. 이론적 공간이 넓을수록 도움이 되지만, 실제 보안은 여전히 선택한 경로를 얼마나 예측하기 어려운지에 달려 있습니다. 그리드가 수십억 가지 경우를 표현할 수 있어도 익숙한 글자나 단순한 모양은 여전히 추측하기 쉽습니다.
2단계: 패턴이 금고 키를 파생함
그린 패턴은 그리드 크기와 함께 직렬화되어 PBKDF2 (비밀번호 기반 키 파생 함수 2)에 입력됩니다. 이 과정은 HMAC-SHA512, 600,000회 반복, 기기 전체에 공통인 무작위 솔트를 사용합니다. 솔트는 비밀이 아닌 값으로, iOS Keychain에 WhenUnlockedThisDeviceOnly 항목으로 저장됩니다. 솔트는 로컬 파생을 기기에 묶어 주지만, 저장소마다 다르지 않으며 사람이 고른 패턴에 엔트로피를 더하지도 않습니다.
키 파생 과정은 일부러 비용이 많이 들도록 설계되어 있습니다. PBKDF2는 후보 패턴마다 HMAC-SHA512를 600,000회 반복 실행해 추측 공격 비용을 높입니다. 그렇다고 엔트로피가 낮은 패턴이 256비트 보안으로 바뀌지는 않으며, 공격 시간은 공격자의 하드웨어에 따라 달라집니다. 목적은 더 좁고 측정 가능합니다. 모든 추측을 단순 해시보다 훨씬 비싸게 만드는 것입니다.
3단계: 파일이 암호화됩니다
금고가 처음 생성되면 Vaultaire는 임의의 256비트 마스터 키를 생성합니다. 패턴 파생 금고 키는 인덱스를 암호화하고 해당 마스터 키를 래핑합니다. 모든 파일을 직접 암호화하지는 않습니다. 마스터 키는 파일 헤더, 콘텐츠, 썸네일, 관련 메타데이터를 AES-256-GCM으로 암호화하는 데 쓰입니다. 매번 새 nonce를 쓰므로 같은 키로 같은 일반 텍스트를 암호화해도 같은 암호문이 나오지 않습니다.
GCM 모드는 중요한 계층인 인증을 추가합니다. 이는 데이터를 뒤섞을 뿐만 아니라 변조를 감지하는 태그도 생성합니다. 암호화된 파일의 단일 비트가 수정되면 암호 해독이 실패합니다. 당신이 모르는 사이에 누구도 당신의 파일을 조작할 수 없습니다.
4단계: 활성 키 상태가 지워짐
Vaultaire가 잠기면 활성 금고 키와 마스터 키 상태를 지우며, 파일을 다시 보여 주려면 잠금을 다시 해제해야 합니다. 금고가 열려 있는 동안에는 CryptoKit이 AES-GCM 연산을 수행할 수 있도록 해당 대칭 키 바이트가 반드시 앱 프로세스에 있습니다. Vaultaire는 또한 패턴과 문구로 암호화한 복구 봉투를 포함한 복구 정보를 iOS Keychain에 보관된 AES-GCM 암호화 데이터베이스에 저장합니다. 이는 패턴이나 키 사본이 어디에도 저장되지 않는다는 주장과는 실질적으로 다릅니다.
그 뒤에 숨겨진 수학(일반 영어)
이것이 작동하는 이유를 이해하기 위해 컴퓨터 과학 학위가 필요하지 않습니다. 보안은 가능한 패턴 수, 각 추측에 소요되는 시간, 공격자가 추측할 수 있는 횟수 등 세 가지 숫자로 요약됩니다.
엔트로피: 예측 불가능성의 척도
엔트로피는 “이것을 추측하기가 얼마나 어려운지에 대한 멋진 단어입니다.” 동전 던지기는 1비트의 엔트로피(두 가지 결과)를 갖습니다. 4자리 PIN에는 약 13비트의 엔트로피(결과 10,000개)가 있습니다. 8개 이상의 점을 연결하는 5×5 그리드에서 잘 선택된 패턴은 30비트 엔트로피를 초과할 수 있으며 10억 개가 넘는 가능한 패턴이 있습니다.
패턴의 엔트로피가 추측 공격의 상한선을 정합니다. PBKDF2는 제스처에 없는 엔트로피를 만들어 낼 수는 없지만, 각 후보를 시험하는 비용을 크게 높일 수 있습니다.
키 파생: 비용이 많이 드는 추측 만들기
PBKDF2는 직렬화된 패턴을 입력받아 HMAC-SHA512를 600,000회 실행합니다. 공격 예측에는 실제로 추측을 수행하는 하드웨어에서 측정한 비용을 써야 합니다. 후보 하나를 처리하는 데 정확히 1ms가 걸린다면, 작업자 1명이 후보 1,000,000,000개를 처리하는 데 1,000,000초, 약 11.6일이 걸립니다. 측정된 후보당 비용이 더 크면 시간이 늘어나고, 병렬 하드웨어를 쓰면 줄어듭니다. 256비트 출력 길이는 패턴 탐색 공간의 크기를 바꾸지 않습니다.
기기 전체 솔트는 Keychain에 저장되며, 비밀로 유지되도록 설계된 값이 아닙니다. Keychain과 iOS 데이터 보호는 장치 압수 시나리오에서 추출을 더 어렵게 만들 수 있지만 암호화 분석에서는 암호화된 파일을 획득한 검사관이 솔트도 획득할 수 있다고 가정해야 합니다. 솔트는 여러 기기에 걸친 사전 계산을 막아 주지만, 강력한 패턴을 대신하지는 못합니다.
AES-256: 강력한 표준 암호
AES-256은 NIST가 FIPS 197로 발표한 강력한 표준 암호입니다. “256”은 키 길이를 비트 단위로 나타냅니다. 256비트 키에는 2256개의 가능한 값이 있어 무차별 대입으로 시도하기에는 너무 많습니다. 그래서 공격자는 패턴을 노리며, Vaultaire는 PBKDF2 600,000회 반복으로 패턴을 강화합니다.
AES-256의 보안은 알고리즘을 비밀로 하는 데 의존하지 않습니다. 하지만 전체 시스템이 AES 키 공간만으로 보호되지는 않습니다. 실제 추측 범위를 정하는 것은 패턴의 엔트로피, PBKDF2 작업 계수, 기기 솔트, 암호화된 저장소를 둘러싼 보호입니다. 올바른 무작위 마스터 키가 풀리면 AES-256-GCM이 강력한 인증 암호화를 제공합니다.
공격이 극복해야 할 것
누군가 암호화된 파일에 접근하려 할 수 있는 주요 방법, Vaultaire가 그 비용을 높이려고 하는 일, 그리고 남아 있는 한계를 차례로 살펴보겠습니다.
무차별 대입: 모든 패턴 시도
PBKDF2는 패턴 후보마다 HMAC-SHA512 600,000회 반복의 비용을 치르게 합니다. 의미 있는 방어이지만 정해진 기간을 약속하지는 않습니다. 결과는 패턴 선택, 실측 파생 속도, 병렬 처리, 그리고 검사자가 기기 솔트를 확보했는지에 따라 달라집니다. 더 길고 예측하기 어려운 경로가 중요합니다. PBKDF2는 새로운 엔트로피를 만들지 않고 추측 비용만 높입니다.
스머지 공격: 화면 읽기
3×3 그리드에서 화면의 얼룩 표시는 가능한 패턴의 범위를 상당히 좁힐 수 있습니다. 5×5 그리드에서 얼룩 패턴은 터치된 점을 나타내지만 점 사이의 순서, 방향 또는 연결은 표시하지 않습니다. 조합적 폭발로 인해 이 접근 방식은 실용적이지 않습니다.
숄더 서핑: 당신이 그리는 모습을 지켜보세요
작은 휴대폰 화면에 빠르게 그려진 패턴은 관찰을 통해 기억하기가 매우 어렵습니다. 특히 5×5 그리드에서는 더욱 그렇습니다. 연구에 따르면 관찰자는 PIN이나 비밀번호를 큰 소리로 듣는 것보다 복잡한 패턴을 복제하는 데 훨씬 더 어려움을 겪는 것으로 나타났습니다.
기기 압수: 휴대폰 탈취
누군가 휴대폰을 가져가더라도 Vaultaire의 파일 내용과 인덱스는 필요한 키를 쓸 수 있을 때까지 AES-GCM 암호문으로 남습니다. 앱은 기존 방식의 비밀번호 검증 레코드를 저장하지 않지만, 그렇다고 오프라인 검증이 불가능해지지는 않습니다. 암호화된 각 금고 인덱스의 파일 이름에는 금고 키의 잘린 해시가 들어 있고, AES-GCM 인증 복호화도 후보 키에 따라 성공하거나 실패합니다. 따라서 기기 보호와 패턴 강도는 위협 모델의 일부로 남습니다.
인증된 암호문에 대한 추측을 테스트하는 데 별도의 비밀번호 해시가 필요하지 않습니다. Vaultaire의 AES-GCM 태그는 신뢰도가 높은 성공 또는 실패 결과를 제공하고, 인덱스 파일 이름은 더 저렴한 예비 검사를 제공합니다. 방어 수단은 검증 오라클이 없다는 점이 아니라, 자격 증명의 비용과 예측 불가능성, 그리고 로컬 자료에 대한 iOS의 보호입니다.
강력한 패턴 선택
암호화는 선택한 패턴만큼만 강력합니다. 최소한의 노력으로 보안을 극대화하는 방법은 다음과 같습니다.
패턴을 강하게 만드는 것
- 더 많은 점을 사용하세요.사용 가능한 25개 도트 중 최소 8개를 연결하세요. 점을 추가할 때마다 가능한 패턴 수가 늘어납니다.
- 자신만의 길을 건너보세요.루프백, 점 건너뛰기 또는 예기치 않게 방향 변경 등의 패턴은 기억이나 관찰을 통해 재현하기가 훨씬 어렵습니다.
- 뚜렷한 모양을 피하십시오.문자(L, Z, S), 단순한 기하학적 모양(사각형, 삼각형) 및 직선은 공격자가 가장 먼저 시도하는 것입니다.
- 전체 그리드를 사용합니다.한쪽 모서리나 한쪽 가장자리를 따라 머무르는 패턴은 사용 가능한 엔트로피를 낭비합니다. 퍼져라.
피해야 할 사항
- 최소 길이 패턴. Vaultaire는 최소 6개의 점과 1개의 방향 변경이 필요하지만 최소값을 충족한다고 해서 경로를 예측할 수 없는 것은 아닙니다. 결과를 확실하게 기억할 수 있으면 그리드를 더 많이 사용하세요.
- 단순한 기하학적 모양.L자 모양, 지그재그 또는 직선 대각선은 “password123.”의 패턴과 동일합니다.
- 매번 같은 코너에서 시작합니다.Android 잠금 패턴에 대한 연구에 따르면 대부분의 사람들은 왼쪽 상단 점부터 시작합니다. 공격자들은 이 사실을 알고 있습니다.
스위트 스팟
8–12 도트를 두 개 이상의 방향 변경으로 연결하는 패턴은 근육 기억을 통해 기억하기 쉽도록 유지하면서 탁월한 보안을 제공합니다. 비밀번호, 처럼 손이 동작을 기억하는 것처럼 기억할 필요가 없습니다. 서명을 쓰는 방법을 기억하는 것과 같은 방식입니다.
안전하다고 느껴야 하는 이유
Vaultaire의 패턴 암호화는 단순한 PIN 패드가 아닙니다. 제스처는 실제 키 파생 함수의 입력으로 처리되며, 인증된 암호화 데이터를 풀어야 합니다. 그래도 강도는 선택한 제스처에 달려 있으므로, Vaultaire는 256비트 출력 길이를 사람이 만든 비밀의 256비트 엔트로피인 것처럼 내세우지 않고 더 큰 격자와 높은 PBKDF2 작업 계수를 함께 씁니다.
귀하의 패턴과 로컬 금고 키는 Vaultaire로 전송되지 않습니다. 백업이 켜져 있는 동안(기본값) 패턴에서 파생한 별도의 백업 키가 CloudKit 레코드와 암호화된 복구 매니페스트를 암호화하며, 복구 문구로 금고 키와 백업 키를 복원할 수 있습니다. Vaultaire는 이 레코드를 해독할 공급자 키를 보유하지 않지만, 기기와 복구 자격 증명은 여전히 설계의 보안에서 중요한 부분입니다.
도형을 그립니다. 그 모양이 파일을 보호합니다. 나머지는 수학이 알아서 합니다.
자주 묻는 질문
패턴을 잊어버리면 어떻게 되나요?
금고를 만들면 Vaultaire가 9단어 복구 문장을 생성합니다. PBKDF2가 이 문장에서 복구 키를 파생하고, 이 키로 금고 키가 담긴 암호화된 봉투를 엽니다. 패턴과 복구 문구를 모두 잃어버린 경우 Vaultaire에는 금고를 복원할 수 있는 서버 측 키가 없습니다.
패턴이 정말 비밀번호보다 더 안전한가요?
5×5 그리드에서 잘 선택된 패턴은 일반적인 비밀번호의 엔트로피와 일치하거나 초과할 수 있습니다. 장점은 유용성입니다. 강력한 암호는 기억하기 어렵기 때문에 사람들은 약한 암호를 선택합니다. 패턴은 근육 기억을 활용하므로 의식적으로 암기하지 않고도 복잡한 패턴을 자연스럽게 사용할 수 있습니다.
누군가 내 패턴을 스크린샷하거나 기록할 수 있나요?
Vaultaire는 패턴 그리드에 가능한 범위의 스크린샷 보호막을 적용하고, iOS가 화면 캡처 중이라고 알리면 이에 반응합니다. iOS는 일반 앱 콘텐츠에 쓸 수 있는 공개 보안 화면 플래그를 제공하지 않으므로, 이런 제어는 실수로 인한 캡처를 줄일 뿐 모든 캡처 방법을 막는다고 보장하지는 못합니다.
Vaultaire는 어떤 암호화 알고리즘을 사용합니까? 파일 암호화용
Vaultaire는 PBKDF2-HMAC-SHA512를 600,000회 반복해 패턴과 기기 전체 Keychain 솔트에서 금고 키를 파생합니다. 이 금고 키는 금고 인덱스를 암호화하고 무작위 256비트 마스터 키를 래핑합니다. 마스터 키를 쓰는 AES-256-GCM은 인증 암호화로 파일 콘텐츠, 헤더, 메타데이터, 썸네일을 보호합니다.
패턴이 내 장치에 저장되어 있나요?
Vaultaire는 패턴을 포함한 복구 정보를 iOS Keychain에 보관된 AES-GCM 암호화 복구 데이터베이스에 저장합니다. 패턴은 Vaultaire로 전송되거나 일반 텍스트 파일에 저장되지 않습니다. 금고가 열려 있는 동안에는 앱 프로세스에 키 바이트가 존재하며, 잠그면 Vaultaire의 활성 키 상태가 삭제됩니다.
Vaultaire는 암호화된 파일에 액세스할 수 있습니까?
Vaultaire는 사용자의 패턴, 복구 문구, 복호화 키, 읽을 수 있는 금고 콘텐츠를 받는 서비스를 운영하지 않습니다. 암호화된 iCloud 백업은 비공개 CloudKit 데이터베이스에 남습니다. 이 제공자 경계는 손상된 앱 빌드, 운영 체제, 기기로부터 열려 있는 금고를 보호하지는 못합니다.