암호화 다이어리라는 말은 디스크 위 파일이 당신의 키 없이는 읽을 수 없어야 한다는 뜻이에요 — 평문 데이터베이스 앞에 PIN 화면 하나 세워 둔 게 아니라요. Reflect는 그 차이를 중심으로 만들어졌어요. 모든 일기는 기기에서 AES-256-GCM으로 암호화되고, 생체 인증 뒤에 잠긴 채로 머무르며, 원한다면 복구 코드만 풀 수 있는 형태로 클라우드에 백업돼요.
휴대폰을 떠나기 전에 암호화돼요
"비공개 일기"나 "안전한 다이어리"라고 광고하는 대부분의 앱은 PIN 화면 뒤에 평문 SQLite 파일로 일기를 저장해요. 물리적으로 기기를 만지는 사람, 포렌식 도구를 가진 사람, 혹은 잠깐 빌린 휴대폰으로도 데이터베이스를 그대로 읽을 수 있어요. 그건 보안 연출이지, 암호화가 아니에요.
Reflect는 실제 내용을 암호화해요. 모든 일기는 은행 통신과 보안 메신저를 보호하는 인증된 암호화 표준인 AES-256-GCM으로 봉인돼요. 그 위에 HMAC 변조 감지가 더해져, 손상되거나 변조된 파일은 조용히 이상한 결과를 돌려주는 대신 명확하게 실패하도록 fail-closed 방식으로 처리돼요. 일기에 첨부된 사진과 음성 메모도 저장되기 전에 같은 방식으로 암호화돼요.
생체 인증, PIN, 비밀번호 — 원하는 대로
iOS·Android에서 Face ID, Touch ID, 지문 인증을 쓸 수 있어요. 숫자 PIN이나 더 긴 문장 형태의 비밀번호도 됩니다. Reflect는 네 가지 모두 지원하고, 함께 쓸 수도 있어요 — 평소엔 생체 인증을 쓰고, 얼굴 인식이 세 번 실패하면 비밀번호로 폴백되도록요.
다른 앱으로 전환하거나 직접 정한 시간이 지나면 자동 잠금이 작동해요. 멀티태스킹 스위처에 보이는 앱 미리보기는 비워져 있어서, 화면을 슬쩍 봐도 오늘 일기에 무엇이 있는지 알 수 없어요. 이 모든 것은 기기 자체의 잠금 화면과는 별개로 동작해요 — 일기의 잠금은 독립적이에요.
당신의 조건에 맞춘 암호화 클라우드 백업
클라우드 백업은 선택 사항이고, 직접 켜기 전까지는 꺼져 있어요. 켜면 Reflect가 기기에서 랜덤한 데이터 암호화 키를 만들고, 복구 코드로부터 Argon2id를 통해 키 암호화 키를 파생한 뒤, 데이터 키를 이걸로 감싸요. 휴대폰을 떠나는 건 감싸진 키, 솔트, 그리고 짧은 지문뿐이에요.
새 기기에서는 로그인하고 복구 코드를 입력하면 돼요. 같은 파생 과정으로 키 암호화 키가 다시 만들어지고, 데이터 키가 풀려서 일기가 복호화돼요. 암호문과 당신의 글 사이를 막고 있는 건 오직 복구 코드뿐이에요. 잃어버리면 백업은 누구도 — 당신도, 저희도, 그 누구도 — 읽을 수 없어요. 그게 제로 지식이 실제로 뜻하는 거예요.
암호화 다이어리가 실제로 보장해 주는 것
구체적인 시나리오로요. 택시에 휴대폰을 두고 내렸을 때: 잠금 화면을 우회한 사람이라도 AES-256의 벽에 부딪혀요. 가족이나 연인과 함께 쓰는 휴대폰: 일기는 기기와 별개로 자신만의 생체 인증이나 PIN을 요구해요. 클라우드 제공자가 침해당해도: 백업 데이터는 암호문이라 복구 코드 없이는 읽을 수 없어요.
- 이미지·음성 메모를 포함한 모든 일기에 적용되는 AES-256-GCM 인증 암호화.
- HMAC 변조 감지 — 손상된 일기는 오류로 표시되고, 절대 조용히 평문이 노출되지 않아요.
- 생체 인증, PIN, 비밀번호 잠금에 자동 잠금과 빈 앱 스위처 미리보기까지.
- 클라우드 백업에 Argon2id 키 파생 적용. 복구 코드가 유일한 잠금 해제 경로예요.
다른 "암호화" 앱과 비교하면
Day One 같은 앱은 종단 간 암호화를 프리미엄에서만 켤 수 있는 기능으로 두고 있어요. Reflect는 그것을 기본값으로 만들었어요 — 평문 모드는 아예 없어요. PIN 뒤에 평문 데이터베이스를 둔 앱은 어떤 의미 있는 기준으로도 암호화된 게 아니에요. 그게 기준이라면, 화면 잠금이 걸린 메모 앱도 같은 일을 한다고 해야 하니까요. Reflect는 나중에 암호화를 덧붙인 일기 앱보다, 처음부터 AES 기반 비공개 노트로 만들어진 뒤 AI 기능을 더한 형태에 가까워요.