# NoteRich Local-First AES-GCM 암호화에 대한 설명: 귀하의 데이터, 귀하의 키 데이터 유출이 점점 더 흔해지는 디지털 세계에서, 귀하의 개인적인 메모, 아이디어, 그리고 노트는 최고 수준의 보호가 필요합니다. **NoteRich**에서는 개인정보가 단순한 기능이 아니라 근본적인 권리라고 믿습니다. **Local-First** 방식의 메모 작성 애플리케이션인 NoteRich는 귀하의 데이터가 전적으로 귀하의 기기에 저장되도록 보장합니다. 하지만 데이터베이스를 백업하거나 다른 기기와 메모를 공유해야 할 때는 어떻게 될까요? 이때 **AES-GCM 암호화**가 등장하여 데이터의 전송 및 저장 시 군용급 보안을 제공합니다. --- ## 🛡️ Local-First 철학이 실제 보안으로 구현됨 NoteRich는 고급 브라우저 데이터베이스를 사용하여 메모를 로컬에 저장합니다. 이는 인터넷 연결이 없어도 메모에 접근, 편집, 검색할 수 있음을 의미합니다. 하지만 전체 작업 공간을 `.nrs` 파일로 내보내거나 **P2P (피어투피어)**를 통해 데이터베이스를 다른 기기로 동기화할 때, 데이터는 로컬 저장소의 안전성을 벗어나게 됩니다. 이러한 작업 중에 데이터가 완전히 비공개로 유지되도록 NoteRich는 **End-to-End Encryption (E2EE)**를 사용합니다. 내보낸 파일이 공개 클라우드 드라이브에 업로드되거나 P2P 전송 중에 도청당하더라도, 비밀번호 없이는 데이터를 읽는 것이 수학적으로 불가능합니다. --- ## 🔐 NoteRich가 어떻게 귀하의 데이터를 보호하는가 데이터베이스 내보내기나 P2P 공유를 암호화하기로 결정하면, NoteRich는 최대한의 보안과 원활한 사용자 경험을 조화시키는 두 단계의 보안 프로세스를 사용합니다. ### 1. PBKDF2 키 생성 사용자가 입력한 비밀번호는 적절히 준비되지 않으면 브루트포스 공격에 취약합니다. NoteRich는 **PBKDF2 (Password-Based Key Derivation Function 2)**를 사용하여 단순한 비밀번호를 강력한 256비트 암호화 키로 변환합니다. 이 과정은 고유한 “salts”와 수천 번의 반복을 추가하여 해커가 비밀번호를 추측하는 것을 매우 어렵게 만듭니다. ### 2. AES-GCM 암호화 키가 생성된 후, NoteRich는 **AES-GCM (Advanced Encryption Standard - Galois/Counter Mode)**를 사용하여 데이터를 암호화합니다. * **AES**는 정부 및 금융 데이터를 보호하기 위한 세계적인 표준입니다. * **GCM**는 데이터를 암호화할 뿐만 아니라 *인증*도 제공합니다. 이는 암호화된 파일의 단일 비트라도 손상되거나 변조된 경우, NoteRich가 즉시 감지하여 불법적인 수정을 방지한다는 의미입니다. --- ## 🔄 암호화 과정: 시각적 가이드 NoteRich 내에서 데이터가 어떻게 안전하게 전송되는지 살펴보겠습니다. ```mermaid graph TD A[귀하의 기기 / 로컬 IndexedDB] -->|암호화되지 않은 로컬 접근| B(NoteRich 에디터) subgraph 안전한 내보내기 및 동기화 B -->|.nrs 파일로 내보내기| C{비밀번호 설정?} C -->|예| D[PBKDF2 + AES-GCM] D --> E[암호화된 백업 파일] B -->|P2P 데이터 동기화| F{비밀번호 활성화?} F -->|예| G[PBKDF2 + AES-GCM] G --> H[P2P 암호화된 스트림] end E --> I[안전한 클라우드 / 외부 드라이브] H --> J[대상 기기] style D fill:#e0f2fe,stroke:#0284c7,stroke-width:2px style G fill:#e0f2fe,stroke:#0284c7,stroke-width:2px ``` --- ## 🌐 사용 사례: 언제 암호화가 이루어지는가? NoteRich는 언제 암호화를 적용할지에 대한 완전한 제어권을 제공합니다. 다음은 AES-GCM이 귀하의 데이터를 보호하는 주요 상황입니다: ### 📦 암호화된 데이터베이스 내보내기 (.nrs) 노트를 외부 하드 드라이브에 백업하거나 개인 클라우드 스토리지에 업로드할 때, 내보내기 중에 **"비밀번호 설정"** 옵션을 선택할 수 있습니다. 결과적으로 생성된 `.nrs` 파일은 완전히 무효화됩니다. 올바른 비밀번호를 가진 사람만이 작업 공간을 해제하고 복원할 수 있습니다. ### 📡 안전한 P2P 공유 NoteRich는 P2P 기술을 사용하여 기기 간 직접 동기화를 지원합니다. P2P는 이미 중앙 서버를 피하지만, 비밀번호를 추가함으로써 **Zero-Trust 보안**을 보장합니다. * 암호화된 스트림이 포함된 안전한 링크나 QR 코드를 생성합니다. * 수신 기기는 들어오는 데이터 블록을 해독하기 위해 정확한 비밀번호를 입력해야 합니다. * 이는 네트워크 스니핑을 걱정하지 않고 자신의 기기 간에 민감한 노트나 사내 프로젝트 노트를 공유하는 데 완벽합니다. --- ## 🛑 “제로-지식” 보장 NoteRich의 암호화에서 가장 중요한 점 중 하나는 **우리가 귀하의 데이터에 대해 아무것도 모른다는 것입니다**. ```mermaid sequenceDiagram participant U as 사용자 participant N as NoteRich 앱 participant F as 암호화된 파일 / P2P U->>N: 1. 비밀번호 입력 N->>N: 2. 키 생성 (PBKDF2) N->>N: 3. 데이터 암호화 (AES-GCM) N->>F: 4. 저장 / 전송 Note over F: 🔒 데이터는 읽을 수 없는 문자열입니다 U->>N: 5. 데이터 가져오기 / 수신 U->>N: 6. 비밀번호 입력 N->>N: 7. 키 생성 및 무결성 확인 N->>U: 8. 복원된 노트에 접근 ``` 암호화와 복호화가 모두 브라우저의 안전한 환경 내에서 이루어지기 때문에, NoteRich 서버는 귀하의 비밀번호을 볼 수도 없고, 파일을 복호화할 수도 없습니다. **귀하는 자신의 키의 유일한 소유자입니다.** --- ## 💡 NoteRich 사용자들을 위한 최선의 실천법 NoteRich의 보안 기능을 최대한 활용하려면 다음 팁을 기억하세요: 1. **강력한 비밀번호 사용**: NoteRich는 귀하의 비밀번호를 저장하지 않으므로, 비밀번호를 잃으면 암호화된 파일에 대한 접근도 잃게 됩니다. 복잡한 비밀번호를 생성하고 저장하기 위해 비밀번호 관리자를 사용하세요. 2. **무결성 확인**: 암호화된 데이터를 가져오는 과정에서 “비밀번호 잘못됨” 또는 “데이터 손상” 오류가 발생하면, AES-GCM 인증이 제대로 작동하여 손상된 파일로부터 귀하를 보호합니다. 3. **작업 공간 활용**: NoteRich의 작업 공간 격리 기능과 암호화된 내보내기를 결합하여 개인 및 전문적인 노트를 위한 안전한 환경을 유지하세요. --- ## 🎯 결론 개인정보는 타협의 대상이 되어서는 안 됩니다. **NoteRich의 Local-First 아키텍처**와 **AES-GCM 암호화**를 통해, 로컬 저장소의 빠른 성능과 현대 암호화의 불가침적인 보안을 모두 누릴 수 있습니다. 귀하가 인생의 작품을 아카이브하든, 기기 간에 노트를 동기화하든, NoteRich는 귀하의 생각이 오직 귀하만의 것이 되도록 보장합니다. --- <div class="flex flex-wrap gap-2 mt-8 mb-12"> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">Local-First</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">AES-GCM</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">개인정보</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">End-to-End Encryption</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">P2P 동기화</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">데이터 보안</span> <span class="px-3 py-1 bg-[#f4f4f5] border border-[#eaeaea] rounded-full text-xs font-medium text-[#666]">NoteRich</span> </div>