보안 아키텍처: 전체 기술 스택

Vaultaire는 단일 알고리즘이나 단일 영리한 트릭에 의존하지 않습니다. 모든 구성 요소에 특정 작업이 있고 한 계층의 오류가 다른 계층을 손상시키지 않는 계층화된 암호화 아키텍처를 사용합니다. 여기에 귀하의 개인 데이터와 나머지 세계 사이에 있는 모든 암호, 프로토콜 및 설계 결정이 있습니다.

Vaultaire는 다음을 사용합니다. AES-256-GCM 볼트 인덱스, 래핑된 키, 파일 헤더, 콘텐츠, 썸네일 및 메타데이터 전반에 걸쳐 인증된 암호화를 수행합니다. PBKDF2-HMAC-SHA512 패턴과 기기 전체에서 로컬 볼트 키를 파생합니다. Keychain 소금. 해당 볼트 키는 별도의 무작위 256비트 마스터 키를 래핑하여 다음을 통해 파일 암호화를 수행합니다. CryptoKit 앱 프로세스에서

암호화 스택

Vaultaire는 특정 작업을 위해 각각 선택된 여러 암호화 메커니즘을 함께 사용합니다. PBKDF2 사람의 자격 증명을 저장소 또는 복구 키로 전환합니다. AES-256-GCM 인덱스, 래퍼, 메타데이터, 썸네일 및 파일 콘텐츠를 보호합니다. 무작위 마스터 키는 장기간 지속되는 파일 암호화를 변경 가능한 패턴과 분리합니다. Keychain 그리고 iOS 데이터 보호는 장치가 잠겨 있는 동안 장치에 바인딩된 솔트 및 복구 기록을 보호합니다. 공급자가 보유한 암호 해독 키는 개발자에게 일반 텍스트 저장소에 대한 일상적인 액세스를 제공하지 않습니다.

이것은 그 자체로는 복잡하지 않습니다. 각 계층은 서로 다른 공격 표면을 처리합니다. AES-256-GCM 기밀성과 인증을 결합하므로 수정된 암호문은 검증에 실패합니다. PBKDF2 각 패턴이나 문구를 테스트하는 데 드는 비용이 증가합니다. 무작위 마스터 키는 패턴 변경으로 인해 모든 파일을 다시 암호화하는 대신 하나의 키를 다시 래핑할 수 있음을 의미합니다. Keychain 데이터 보호 로컬 솔트 및 복구 기록을 보호하는 동시에 앱은 프로세스 메모리에서 대칭 암호화가 발생한다는 것을 계속 인식합니다.

이러한 계층은 함께 심층 방어 아키텍처를 형성하지만 모두 독립적인 장벽은 아닙니다. 추측된 패턴은 인덱스 파일 이름과 비교하여 확인할 수 있으며 AES-GCM 인증 및 손상된 잠금 해제 장치는 앱 프로세스에서 키 또는 일반 텍스트를 관찰할 수 있습니다. 따라서 아키텍처는 자격 증명 엔트로피에 따라 달라집니다. PBKDF2 비용, iOS 장치 보호, 올바른 인증 암호화 처리 및 AES 자체의 강점을 제공합니다.

심층 방어

Vaultaire의 계층 구조를 중첩된 잠긴 컨테이너 세트로 생각하세요. 패턴에서 파생된 금고 열쇠 인증된 인덱스를 엽니다. 인덱스는 래핑된 무작위를 릴리스합니다. 마스터 키. 해당 마스터 키는 파일과 메타데이터를 보호합니다. PBKDF2, AES-GCM, Keychain, 그리고 iOS 데이터 보호는 다양한 속성을 제공하지만 보안 주장은 전체 체인만큼만 강력합니다.

AES-256-GCM: 파일 암호화

Vaultaire에 저장된 모든 사진, 비디오 및 문서는 다음과 같이 암호화됩니다. AES-256-GCM — 256비트 키를 사용하는 고급 암호화 표준 갈루아/카운터 모드. Vaultaire도 사용합니다. AES-GCM 볼트 인덱스, 파일 헤더, 썸네일 및 키 봉투용. 알고리즘과 키 크기는 표준화되어 있습니다. Vaultaire의 보안은 여전히 ​​nonce 처리, 키 관리, 자격 증명 강도 및 구현 정확성에 달려 있습니다.

AES-256의 “256”는 키 길이(비트)를 나타냅니다. 256비트 키에는 2개의 키가 있습니다.256 가능한 값입니다. 그 숫자를 관점에서 보면 대략 10개가 있습니다. 관측 가능한 우주의80 원자. 모든 원자가 빅뱅 이후 실행되는 초당 10억 개의 키를 테스트하는 슈퍼컴퓨터라면, 그들은 키 공간의 1% 미만을 탐색했을 것입니다.AES-256 업로드 전는 무차별 대입 공격을 받지 않습니다. 오늘은 아닙니다. 금세기는 아닙니다. 별이 다 타버리기 전에는 안돼.

GCM 모드가 중요한 이유

AES는 블록 암호, 로, 128비트 청크로 데이터를 암호화합니다. “mode”는 해당 청크가 결합되는 방식을 결정합니다. GCM(Galois/Counter 모드)은 CBC와 같은 단순한 모드가 제공하지 않는 두 가지 기능, 즉 병렬 암호화와 내장 인증을 제공합니다.

인증 부분이 중요합니다. GCM은 암호화된 모든 파일에 대해 암호화 태그를 생성합니다. 이 태그는 변조 봉인 역할을 합니다. 악의적인 행위자나 손상된 디스크 섹터, 에 의해 암호문의 단 한 비트라도 수정되면 인증 태그가 일치하지 않고 해독이 실패합니다. 손상된 데이터가 발생하지 않습니다. 뭔가 잘못되었다는 분명한 신호를 받습니다. 이 속성을 인증된 암호화라고 하며, 공격자가 암호화된 데이터를 수정하여 해독된 출력을 조작하는 전체 종류의 공격을 방지합니다.

PBKDF2: 키 파생

Vaultaire는 다양한 작업에 대해 다양한 키를 파생합니다. 패턴과 기기 전체 Keychain 소금 사료 PBKDF2-HMAC-SHA512 로컬 볼트 키를 생성하려면 600,000번의 반복이 필요합니다. 결정적 패턴 파생은 별도의 클라우드 백업 키를 생성합니다. 정규화된 복구 문구는 800,000을 통해 실행됩니다. PBKDF2 복구 봉투에 대한 키를 생성하기 위한 반복입니다. 이러한 파생 중 어느 것도 출력 길이가 256비트라는 이유만으로 인간 자격 증명을 256비트 엔트로피로 변환하지 않습니다.

PBKDF2가 패턴을 보호하는 방법

뒤에 숨은 핵심 아이디어 PBKDF2 의도적인 작업이다. 직렬화된 패턴이나 정규화된 구문을 사용하여 수십만 개의 구문을 실행합니다. HMAC-SHA512 반복. 합법적인 사용자는 잠금 해제 또는 복구 시도 중에 해당 비용을 한 번 지불합니다. 공격자는 모든 후보에 대해 비용을 지불하지만 병렬 하드웨어 및 구현 선택에 따라 실제 추측 비율이 결정됩니다.

Vaultaire 구성 PBKDF2 패턴 파생 키에 대해 600,000번의 반복이 있습니다. 이로 인해 각각의 추측 비용이 더 많이 들지만 책임 있는 공격 추정에는 측정된 후보별 시간과 하드웨어 가정이 명시되어야 합니다. 후보당 정확히 1ms에서 1,000,000,000개의 연속 추측에는 몇 년이 아닌 약 11.6일이 걸립니다. 256비트 결과는 예측 가능한 패턴의 엔트로피를 확장하지 않습니다.

로컬 패턴 파생은 장치에 대해 ThisDeviceOnly로 저장된 하나의 암호화된 무작위 솔트를 사용합니다. Keychain 아이템. 솔트는 비밀이 아니며 해당 장치의 저장소에서 공유됩니다. 이는 한 장치용으로 구축된 테이블이 다른 솔트를 사용하여 다른 장치에 직접 적용되는 것을 방지하지만 공격자가 동일한 장치의 모든 저장소에 대해 강제로 다시 시작하도록 강요하지는 않습니다.

256비트
암호화 키 길이
6
암호화 계층 서버에 저장된
0

AES-256-GCM: 메타데이터 보호

파일 내용을 암호화하는 것만으로는 충분하지 않습니다. 파일 이름, 생성 날짜, 썸네일 크기 및 저장소 구조는 모두, 메타데이터이며 메타데이터는 데이터 자체만큼 드러날 수 있습니다. “tax-return-2025.pdf”라는 파일은 내용이 암호화되어 있어도 공격자에게 내부 내용을 정확하게 알려줍니다. 볼트를 사용한 시간이 타임스탬프에 표시됩니다. 썸네일 크기를 보면 사진인지 동영상인지 알 수 있습니다.

Vaultaire는 다음을 통해 이 메타데이터를 보호합니다. AES-256-GCM, ChaCha20이 아닙니다. 파일 이름 및 MIME 유형은 암호화된 파일 헤더로 인코딩됩니다. 암호화된 볼트 인덱스에는 파일 기록, 날짜, 크기 정보, 저장소 레이아웃 및 래핑된 마스터 키가 포함됩니다. 썸네일 데이터도 임의 마스터 키로 암호화됩니다.

메타데이터에 인증된 암호화를 사용하는 이유는 무엇입니까?

메타데이터에는 기밀성과 무결성이 필요합니다. AES-GCM Vaultaire는 공격자가 제어하는 일반 텍스트를 수락하는 대신 수정된 헤더, 색인, 썸네일 또는 봉투를 거부할 수 있도록 암호화된 각 값에 대한 인증 태그를 생성합니다. 설계에서는 구현이 제공하지 않는 암호화 다양성을 주장하는 대신 이러한 스토리지 형식 전반에 걸쳐 하나의 인증된 암호화 구성을 의도적으로 사용합니다.

동일한 암호가 동일한 키나 nonce가 맹목적으로 재사용된다는 의미는 아닙니다. 볼트 키는 인덱스를 보호하고 무작위 마스터 키를 래핑합니다. 마스터 키는 파일 자료를 보호합니다. CryptoKit Vaultaire의 스트리밍 형식은 주문된 각 청크에 대해 고유한 nonce를 파생하는 반면, 새로운 nonce로 인증된 봉인된 상자를 생성합니다. 관련 보장은 두 번째 메타데이터 암호가 아닌 키 분리, 임시 규칙 및 인증을 통해 이루어집니다.

영지식 아키텍처

다음은 보안 앱에 대해 물어볼 가치가 있는 질문입니다. 해당 앱을 배후에 있는 회사가 해킹당하거나 소환장을 받거나 단순히 악의적인 것으로 변하면 어떻게 될까요?

대부분의 앱에서는 대답이 불편합니다. 그들은 귀하의 데이터, 키 또는 둘 다를 보유합니다. 법원 명령에 따라 문서를 넘겨야 합니다. 데이터 침해로 인해 노출됩니다. 불량 직원이 액세스합니다. 앱’의 보안은 회사’의 운영 보안, 만큼 강력하며 기록에 따르면 회사는 정기적으로 침해를 당합니다.

Vaultaire는 귀하의 패턴, 비밀 문구, 암호 해독 키 또는 읽을 수 있는 볼트 콘텐츠를 수신하는 계정이나 스토리지 서비스를 운영하지 않습니다. 암호화 및 복호화는 기기의 앱 프로세스에서 발생합니다. 언제 iCloud 백업이 활성화되면 앱은 인증된 암호문을 개인에게 보냅니다. CloudKit Vaultaire가 제어하는 볼트 서비스가 아닌 데이터베이스.

실제로 영지식의 의미

법 집행 기관이 볼트 일반 텍스트를 요구하는 소환장을 Vaultaire에 송달하는 경우 회사는 이를 해독하는 데 필요한 패턴, 복구 문구, 볼트 키, 백업 키 또는 마스터 키를 보유하지 않습니다. 암호화됨 iCloud 기록은 사용자의 CloudKit 개인 데이터베이스. 그러나 장치에서는 복구 자료가 암호화되어 보관됩니다. Keychain 데이터베이스 및 대칭 키는 앱 메모리에 존재하지만 CryptoKit 공개 볼트를 암호화하거나 해독합니다.

이 공급자 경계는 클라이언트 환경의 모든 부분이 신뢰 모델 외부에 있다는 약속이 아니라 아키텍처 속성입니다. Vaultaire는 정기적인 볼트 복구를 위해 제공할 수 있는 서버 측 암호 해독 키를 보유하지 않습니다. 배송된 앱은, iOS, 잠금 해제된 장치 및 암호화 구현은 여전히 읽기 가능한 데이터를 처리할 수 있으므로 이에 따라 신뢰할 수 있어야 합니다.

누구도 신뢰하지 마세요, 설계

Vaultaire의 공급자 경계는 일반 설계에서 회사가 보유한 암호 해독 키를 제거합니다. 이는 Vaultaire 자체의 위반으로 인해 노출될 수 있는 내용을 줄입니다. 배송된 클라이언트를 신뢰할 필요가 없어지지는 않습니다. iOS, 장치 상태 또는 문서화된 키 계층 구조의 구현입니다. 이러한 경계는 절대적인 약속으로 붕괴되기보다는 별도로 평가되어야 합니다.

Keychain 및 앱 프로세스 경계

애플의 Secure Enclave 지원되는 개인 키를 보호하고 플랫폼 보안 아키텍처의 일부에 참여할 수 있지만 공개 API는 임의의 키를 허용하지 않습니다. PBKDF2- 파생된 대칭 키 및 Vaultaire의 수행 AES-GCM 보조 프로세서 내부의 파일 작업. 따라서 Vaultaire는 볼트 암호를 다음과 같이 설명하지 않습니다. Secure Enclave AES.

Vaultaire는 일반 iOS Keychain 무작위 장치 솔트, 암호화된 복구 데이터베이스 및 해당 데이터베이스를 보호하는 무작위 키에 대한 일반 비밀번호 항목입니다. 이러한 항목은 WhenUnlockedThisDeviceOnly 접근성 클래스를 사용합니다. Keychain 및 데이터 보호는 특히 전화기가 잠겨 있는 동안 의미 있는 장치 경계를 생성하지만 이 아키텍처는 내보낼 수 없는 아키텍처와 다릅니다. Secure Enclave 열쇠.

패턴을 그리다보면 CommonCrypto 앱 프로세스에서 볼트 키를 파생합니다. CryptoKit 그런 다음 Vaultaire의 CryptoEngine은 해당 프로세스에서 대칭 키 바이트를 사용하여 인덱스를 인증 및 해독하고, 마스터 키를 풀고, 파일을 처리합니다. 앱이 잠기면 활성 상태가 지워지지만 잠금 해제된 세션을 관찰하는 충분한 권한을 가진 공격자는 잠긴 장치 암호문만 보유한 검사관과 다른 기회를 갖습니다.

탈옥되거나 손상된 운영 체제는 패턴 입력, 앱 메모리, 해독된 미리 보기, 내보내기 또는 화면을 대상으로 할 수 있습니다. Vaultaire는 탈옥되지 않은 최신 버전을 권장합니다. iPhone 디자인이 좌우되기 때문에 iOS 프로세스 격리, Keychain및 데이터 보호. 루트 손상으로 인해 공개 저장소의 대칭 키에 액세스할 수 없게 된다고 주장하지 않습니다.

파일별 초기화 벡터

동일한 키로 두 개의 동일한 파일을 암호화하면 순진한 구현으로 동일한 암호문이 생성됩니다. 이것은 문제입니다. 두 개의 동일한 암호화된 blob을 본 공격자는, 를 해독하지 않고도 두 개의 원본 파일이 동일하다는 것을, 알 수 있습니다. 사진이 가득한 금고에서 이런 패턴 분석을 하면 암호화를 통해서도 정보를 드러낼 수 있다.

Vaultaire는 각각에 대해 새로운 암호화 임시값을 생성하여 결정론적 암호문을 방지합니다. AES-256-GCM 봉인작업. 파일 헤더와 파일 콘텐츠는 별도로 봉인되며, 대용량 파일은 무작위 기본 논스와 순서가 지정된 각 청크에 대한 고유 논스가 있는 인증된 스트리밍 형식을 사용합니다. 따라서 동일한 사진의 두 사본은 동일한 암호화된 표현을 생성하지 않습니다.

nonce는 암호문과 함께 저장되며 비밀이 아닙니다. 보안상 요구되는 것은 같은 키에서 nonce가 고유해야 한다는 점입니다. Vaultaire는 단일 암호화에 Apple의 암호학적 난수 생성기로 96비트 nonce를 생성하고, 스트리밍 헤더에는 기본 nonce를 기록합니다. 충돌 위험은 하나의 키로 수행하는 암호화 횟수에 따라 달라지므로, 구현은 매번 새 값을 생성하며 96비트 크기를 수명 전체에 걸친 고정된 296분의 1 보장으로 제시하지 않습니다.

암호화 파이프라인
당신의 패턴
5×5 그리드 입력
PBKDF2
반복이 많은 KDF
금고 열쇠
인덱스 + 키 래퍼
무작위 마스터 키
AES-GCM 파일 + 메타데이터

메모리 관리: 활성 키 상태 지우기

보안 소프트웨어의 일반적인 오류는 더 이상 필요하지 않은 중요한 데이터를 메모리에 남겨 두는 것입니다. 암호화 키, 파생된 비밀번호, 해독된 데이터는 앱이 사용을 마친 후에도 오랫동안 RAM에 남아 있을 수 있습니다. 포렌식 도구는 콜드 부팅 공격 또는 메모리 덤프 분석으로 알려진 기술을 사용하여 장치 메모리를 덤프하고 이러한 잔재, 를 검색할 수 있습니다.

Vaultaire는 활성 키 상태 및 해독된 UI 데이터를 사용할 수 있는 기간을 제한합니다. 앱이 잠기거나 세션이 중단되면 해당 코드는 여러 정리 경로를 따릅니다.

  • 활성 볼트 상태가 삭제됩니다. 앱은 현재 볼트 키 세션을 제거하고 볼트 콘텐츠를 제공하기 전에 또 다른 잠금 해제를 요구합니다.
  • 키 래퍼는 소유된 버퍼를 지웁니다. Vaultaire의 보안 바이트 컨테이너는 해당 컨테이너가 할당 해제될 때 자신이 소유한 버퍼를 덮어씁니다.
  • 캐시된 마스터 키 상태가 무효화되었습니다. 오픈 인덱스에 대해 보유된 해독된 마스터 키는 관련 잠금 및 캐시 재설정 경로에서 삭제됩니다.
  • 해독된 UI 캐시는 Vaultaire에 의해 제어되는 곳에서 지워집니다. 썸네일 및 미리보기 정리는 Swift에서 만든 모든 복사본에 대한 제어권을 주장하지 않고도 잔여 애플리케이션 상태를 줄입니다. iOS, 또는 다른 프로세스.

다음에 Vaultaire가 잠긴 상태로 열릴 때 패턴을 그리면 앱이 인덱스를 인증하고 마스터 키를 풀기 전에 볼트 키를 다시 파생합니다. 이는 세션 정리이며, 모든 임시 메모리 복사본이 입증 가능한 다중 패스 삭제를 수신했거나 Secure Enclave 키 참조가 파기되었습니다. 충돌로 인해 발생 iOS 프로세스를 회수하지만 갑자기 종료될 때마다 정리 코드를 실행할 수 없습니다.

자주 묻는 질문

AES-256는 정말 깨지지 않나요?

AES-256 표준화되고 철저하게 분석된 블록 암호입니다. 올바르게 구현된 것에 대한 실질적인 공격은 없습니다. AES-256-GCM 임의의 256비트 키를 사용하는 것은 공개적으로 알려져 있지만 전체 저장소가 깨지지 않는 것은 아닙니다. 자격 증명 엔트로피, PBKDF2 비용, nonce 처리, 키 보관, 복구, 장치 상태 및 구현 결함은 여전히 공격 경로로 남아 있습니다.

키 파생에 PBKDF2를 사용하는 이유는 무엇입니까? HMAC-SHA512가 포함된

Vaultaire는 다음을 사용합니다. PBKDF2-HMAC-SHA512 통해 CommonCrypto: 패턴 반복 600,000회, 복구 문구 800,000회. 로컬 패턴 파생은 다음에 저장된 하나의 무작위, 장치 전체 솔트를 사용합니다. Keychain. PBKDF2 각 추측 비용은 증가하지만 패턴에 엔트로피를 추가하지는 않으므로 공격 시간은 자격 증명 강도, 측정된 하드웨어 속도 및 병렬성에 따라 달라집니다.

Vaultaire는 서버로 어떤 데이터를 전송합니까?

없음. Vaultaire에는 데이터를 수신하는 서버가 없습니다. iCloud 백업을 활성화하면 암호화된 데이터는 Apple가 소유하지 않은 키와 함께 장치를 떠나기 전에 암호화된 개인 iCloud 계정, 에 저장됩니다. Vaultaire 회사는 암호화되거나 다른 방식으로 사용자 데이터를 수신, 처리 또는 저장하지 않습니다.

탈옥된 iPhone로 인해 내 저장소가 손상될 수 있나요?

탈옥은 장치 경계를 실질적으로 약화시킵니다. Vaultaire의 AES-GCM 작업은 다음을 통해 앱 프로세스에서 실행됩니다. CryptoKit이므로 저장소가 열려 있는 동안 대칭 키 바이트가 앱 메모리에 존재합니다. 루트 수준 손상은 입력, 메모리, 스크린샷 또는 해독된 출력을 대상으로 할 수 있습니다. Keychain 데이터 보호는 장치가 잠겨 있는 동안에도 여전히 장벽을 추가하지만 Vaultaire는 AES 키가 내부에 격리되어 있다고 주장하지 않습니다. Secure Enclave.

메타데이터는 어떻게 암호화되나요?

Vaultaire는 볼트 메타데이터에 ChaCha20을 사용하지 않습니다. 파일 이름, MIME 유형, 타임스탬프, 썸네일 데이터, 볼트 구조 및 래핑된 마스터 키는 AES-256-GCM 인증된 암호문. 하나의 인증된 구성을 사용하면 저장소 형식 전반에 걸쳐 기밀성과 무결성 검사가 일관되게 유지됩니다.

앱이 충돌하면 내 키는 어떻게 되나요?

iOS 종료된 프로세스를 회수하고 다음 실행 시 Vaultaire가 활성 키 상태를 복원하기 전에 새로운 잠금 해제가 필요합니다. Vaultaire는 세션 범위를 생성하지 않습니다. Secure Enclave AES 참조. 키 래퍼는 할당 해제 시 버퍼를 지우고 잠금 경로는 활성 상태를 삭제하지만 Swift 및 iOS 충돌이 발생하기 전에 모든 임시 복사본을 덮어썼다는 보장은 정당화되지 않습니다.

작동 중인 스택 보기

인증된 암호화, 계층화된 키, 값비싼 파생, 제공업체 보유 볼트 키 없음. 여기에 설명된 아키텍처와 장치 및 자격 증명 경계가 명확하게 명시된 아키텍처를 사용하려면 Vaultaire를 다운로드하세요.

Vaultaire 무료 다운로드