표준 암호화 (Standard Encryption)
모든 NeoSQL 프로젝트에 자동 적용되는 자격증명 보호 레이어입니다. 별도 설정 없이 동작하며, 더 강력한 보장이 필요하면 Zero-Knowledge 모드를 추가로 활성화할 수 있습니다.
보안 모델 개요
NeoSQL의 보안은 "운영자조차 보지 못하게 만드는 것"이 목표입니다.
| 구분 | 표준 보호 | Zero-Knowledge |
|---|---|---|
| 암호화 알고리즘 | AES-256-GCM | AES-256-GCM (동일) |
| 암호화 키 보호 | AWS KMS Envelope Encryption | 사용자 비밀 키(Argon2id) — KMS 미사용 |
| 관리자 평문 접근 | 관리자 콘솔에서는 노출 안 됨. 코드/KMS 권한으로는 가능 | 비밀 키 없이는 어떤 경로로도 불가 |
| 키 분실 시 복구 | 운영자가 KMS로 복구 가능 | 복구 불가 (의도된 트레이드오프) |
| 사용 시점 | 모든 프로젝트 자동 적용 | 프로젝트 단위 명시 활성화 |
표준 보호 — 모든 프로젝트에 자동 적용
프로젝트를 만드는 즉시, NeoSQL은 다음 15개 자격증명 필드를 AES-256-GCM으로 암호화하여 저장합니다.
암호화되는 15개 필드
- Connection 레벨 (프로젝트 멤버 공유): host · port · URL · database · DB user · DB password · SSL client cert · SSL client key · SSL client key password
- 사용자 레벨 (멤버별 개인): SSH username · SSH password · SSH private key · SSH passphrase · proxy username · proxy password
AWS KMS Envelope Encryption
프로젝트마다 별도 DEK(Data Encryption Key)를 발급하고, DEK 자체는 AWS KMS Customer Master Key로 다시 한 번 암호화하여 저장합니다. 서버 데이터베이스가 통째로 유출되어도 KMS 키 없이는 어떤 자격증명도 복호화할 수 없습니다.
UI에는 평문 자격증명이 절대 노출되지 않음
커넥션 목록, 프로젝트 화면, ERD 어디에서도 비밀번호·인증서 등 민감 필드는 평문으로 표시되지 않습니다. 편집 모달에서만 마스킹된 입력으로 다룹니다.
표준 보호 — 암호화 흐름 다이어그램
사용자 → KMS-DEK → AES-256-GCM → 15개 필드. KMS CMK가 DEK를 봉인하므로 운영자라도 KMS 권한이 분리되어 있으면 자격증명에 접근할 수 없습니다.
NeoSQL 관리자 접근 정책
관리자 사이트(CMS)에서도 사용자의 DB 접속 정보는 어떤 화면에도 표시되지 않습니다. 사용자 ID·이메일·구독 상태 등 운영 데이터만 노출됩니다.
표준 모드에서는 만에 하나 운영자가 코드 접근권 + KMS 권한을 동시에 보유한 상태로 데이터베이스에 직접 접근하면 KMS API를 통해 복호화할 수 있는 가능성이 남습니다. 일반 회원에게는 충분하지만, "운영자조차 절대 못 보게" 만들고 싶다면 Zero-Knowledge 모드를 함께 사용하세요.
