“AES-256”은 마치 스킨케어 병에 적힌 “임상 시험 완료”처럼 설명보다는 뱃지로서 보안 페이지에 나타납니다. 이 문구를 읽은 대부분의 사람들은 이것이 실제로 파일에 어떤 역할을 하는지, 또는 왜 256이라는 숫자가 이 작업을 수행하는 부분인지 물어본 적이 없습니다. 이는 이해할 가치가 있습니다. 진짜 암호화된 보관함과 자물쇠 아이콘이 있는 폴더의 차이는 대개 바로 이것에 의해 결정되기 때문입니다.

AES-256이란 실제로 무엇인가

AES는 고급 암호화 표준(Advanced Encryption Standard)의 약자로, 비밀 키를 사용하여 읽을 수 있는 데이터를 읽을 수 없는 데이터로 바꾸고 다시 원래대로 되돌리는 특정 알고리즘입니다. 2001년 공개 경쟁을 거쳐 미국 국립표준기술연구소(NIST)에 의해 선정되었으며, 현재 Vaultine을 포함하여 전 세계의 비밀번호 관리자, 메시징 앱, VPN 및 파일 보관함의 기본 암호화 알고리즘으로 사용되고 있습니다.

“256”은 비트 단위로 측정된 키의 길이입니다. AES는 128비트 및 192비트 버전도 제공합니다. 세 가지 모두 동일한 기본 알고리즘을 사용하지만 키 크기와 내부 처리 라운드의 수가 약간 다릅니다. AES-256으로 암호화된 파일은 256비트 키를 사용하여 이러한 라운드를 거치며, 그 결과물은 암호문이 됩니다. 이는 크기 패턴을 제외하면, 과정을 되돌릴 수 있는 동일한 키 없이는 원본 파일의 내용에 대해 아무것도 드러내지 않는 바이트 시퀀스입니다.

왜 256비트라는 숫자가 중요한가

256비트 키는 2^256개의 가능한 값을 가집니다. 이 숫자는 일상적인 수량을 훨씬 뛰어넘기 때문에 직관적으로 이해하기 어렵지만, 일반적인 비유를 들자면 관측 가능한 우주의 상당 부분을 차지하는 원자의 수와 비슷합니다. 작동할 때까지 모든 조합을 시도하는 무차별 대입(brute force)으로 특정 키를 추측하는 것은 더 빠른 컴퓨터나 더 큰 예산의 문제가 아닙니다. 우주의 시작부터 지금까지 존재했던 모든 컴퓨터가 쉬지 않고 작동하더라도, 모든 조합을 시도하는 것에 의미 있게 가까워지지는 않을 것입니다.

그렇기 때문에 보안 연구원들은 무차별 대입을 통해 AES-256을 “크랙”하는 것에 대해 논의하지 않습니다. 이는 논외의 대상입니다. 암호화된 데이터가 노출되는 경우 그 원인은 거의 항상 알고리즘 자체가 아닌 다른 것에 있습니다. 키를 파생하는 데 사용된 취약하거나 재사용된 비밀번호, 도난당할 수 있는 어딘가에 저장된 키, 또는 주변 소프트웨어의 구현 버그 등입니다. 자물쇠는 취약점이 아닙니다. 키를 보호하는 것이 대개 취약점입니다.

암호화는 숨기기와 다르다

이것은 “보안 폴더” 앱을 찾는 모든 사람에게 가장 중요한 차이점입니다. 파일을 숨기는 것은 그것이 무엇인지가 아니라 표시 여부를 변경하는 것을 의미합니다. 숨겨진 폴더, 점(.)으로 시작하는 파일, 사진을 눈에 덜 띄는 곳으로 이동시키는 앱 등이 여기에 해당합니다. 파일의 실제 바이트는 건드리지 않습니다. 기기를 컴퓨터에 연결하고 “숨김 파일 표시”를 켜면, 애초에 키가 개입되지 않았기 때문에 사진은 다른 사진과 똑같이 정상적으로 열립니다.

AES-256 암호화는 완전히 다른 작업입니다. 이것은 파일을 이동하거나 가시성을 변경하지 않습니다. 키를 사용하여 파일의 내용을 암호문으로 다시 씁니다. 앱이 실제로 어느 쪽을 수행하고 있는지 빠르게 알 수 있는 방법이 있습니다. 숨겨진 파일을 표시하거나 기기를 다른 컴퓨터에 연결해 보세요. “보호된” 파일이 정상적으로 열린다면, 그것은 암호화된 것이 아니라 숨겨진 것입니다. 앱과 PIN 없이는 읽을 수 없는 노이즈라면 암호화된 것입니다. (첫 번째 경우가 얼마나 자주 두 번째 경우로 마케팅되는지에 대한 자세한 내용은 “숨겨진” 폴더가 실제로 숨겨지지 않은 이유를 참조하세요.)

마케팅 페이지에서 생략하는 부분: 키를 누가 쥐고 있는가

“AES-256 암호화”라는 말은 기술적으로 많은 제품에서 사실이지만, 그 제품을 만든 회사로부터 사용자를 보호하지는 못합니다. 알고리즘은 단지 뒤섞는 방식이 어떻게 작동하는지만 알려줄 뿐, 키가 어디에 있는지는 알려주지 않습니다. 클라우드 스토리지 제공업체는 자사 서버에서 AES-256으로 파일을 암호화하면서도 키는 직접 보관할 수 있습니다. 이는 암호화가 외부 공격자는 막지만, 해당 제공업체의 침해, 접근 권한이 있는 직원, 또는 사용자가 아닌 자사 서버를 향한 법적 요청에는 아무런 대응도 하지 못한다는 것을 의미합니다.

이것이 바로 zero-knowledge가 “AES-256 암호화”와 별개의 주장인 이유이며, 둘 중 하나를 신뢰하기 전에 두 가지 모두를 확인해 볼 가치가 있는 이유입니다. 키를 누가 쥐고 있는지 모르는 암호화는, 실제로 누가 차단되는지에 대해 거의 아무것도 알려주지 않습니다.

Vaultine이 이를 구현하는 방법

Vaultine은 기기에서 전적으로 생성되고 사용되는 자체 AES-256 키로 모든 파일을 암호화합니다. 보관함을 보호하는 마스터 키는 기기 내에서 패턴이나 PIN에서 파생되며, 어딘가로 전송되지 않습니다. 눈앞에 있는 기기가 아닌 서버, 클라우드 사본 또는 그 외 다른 곳에서는 아무것도 복호화되지 않으며, 이것이 바로 개인정보 보호정책에서뿐만 아니라 실제로 이 설계를 zero-knowledge로 만드는 요소입니다(이 아키텍처의 나머지 부분에 대해서는 계정이 없는 보관함 앱이 실제로 더 안전한 이유를 참조하세요).

이것은 또한 미리 알아둘 만한 절충점(trade-off)을 설명해 줍니다. 만약 PIN과 12단어 복구 구문을 잃어버리면 Vaultine은 정말로 파일을 다시 가져다줄 수 없습니다. 이것은 고객 지원의 한계가 아니라, 침해나 소환장으로부터 파일을 안전하게 지켜주는 것과 동일한 특성입니다. 자물쇠를 여는 키는 오직 여러분의 기기에만 존재했습니다.

요약

AES-256은 무차별 대입이 현실적인 위협이 되지 않을 만큼 충분히 큰 키를 사용하여 파일을 읽을 수 없는 노이즈로 바꾸는, 특정하고 잘 검증된 방법입니다. 이것은 마법의 단어가 아니라 시스템의 한 부분일 뿐이며, 그것이 여러분을 실제로 보호할지 여부를 결정하는 부분은 나중에 그 키를 누가 쥐고 있느냐입니다. 파일을 숨기는 것은 암호화하는 것이 아니며, 키를 보관하는 회사를 위해 파일을 암호화하는 것은 오직 여러분만이 열 수 있도록 암호화하는 것과 같지 않습니다.

Vaultine은 절대 다른 곳으로 전송되지 않는 여러분 고유의 PIN에서 파생된 키를 사용하여, 기기 내에서 모든 파일을 AES-256으로 암호화합니다. vaultine.app에서 첫 10개 파일은 무료.