데이터베이스는 많은 애플리케이션에서 핵심 역할을 하지만, 민감한 정보를 담고 있을 경우 무단 접근 시 치명적인 문제가 발생할 수 있습니다.
특히 모바일 앱, IoT 기기, 또는 로컬 파일로 저장되는 데이터베이스는 물리적 복제나 탈취 위험이 큽니다.
SQLCipher 는 이러한 위험을 해결해 주는 SQLite 기반 데이터베이스 전체 암호화 솔루션 입니다.
SQLite의 가벼움과 투명성을 유지하면서, AES-256 암호화 기술을 적용하여 저장 데이터를 보호합니다.
2. SQLCipher 주요 특징
AES-256 비트 암호화 : 데이터베이스 전체 파일을 암호화합니다.
SQLite API와 완벽 호환 : 기존 SQLite 프로젝트에 손쉽게 적용 가능합니다.
PBKDF2 키 스트레칭 : 무차별 대입 공격에 강한 암호화 키 파생 기법 적용.
멀티 플랫폼 지원 : iOS, Android, Windows, macOS, Linux 환경에서 사용 가능.
가벼운 설치 및 유연한 빌드 : 다양한 환경에서 쉽게 컴파일 및 적용 가능.
✅ 3. 라이선스 및 상업적 사용
SQLCipher는 BSD-3-Clause 라이선스 로 배포됩니다.
기업 및 상업 프로젝트에서도 무료로 사용 및 배포가 가능합니다만, 다음 조건을 지켜야 합니다:
저작권 및 라이선스 고지 포함
저작권 표시 유지
보증 면책 조항 포함
다만, 법적 확약이 필요하거나 상업용 지원, 기술 컨설팅, SLA 서비스 등이 필요한 경우,
Zetetic (SQLCipher 개발사)에서 유료 라이선스 및 지원 계약(연간 약 $6,000 USD부터)을 체결할 수 있습니다.
✅ 4. SQLCipher 빌드 방법 (Linux/macOS/Windows)
4.1. Linux/macOS 빌드
bash
# 빌드 도구 준비 (Ubuntu 인 경우)
sudo apt-get install tcl autoconf automake libtool
# SQLCipher 소스 코드 얻기
git clone https://github.com/sqlcipher/sqlcipher.git
# 빌드 및 설치
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make
sudo make install
4.2. Windows 빌드 방법
A. 준비
Visual Studio (C++ 개발 도구 포함)
ActiveState Tcl (또는 다른 Tcl 배포판)
OpenSSL 빌드 또는 prebuilt 라이브러리
SQLCipher 소스
B. 빌드 순서
필요한 라이브러리 준비
OpenSSL Windows prebuilt 버전을 다운로드하여 lib와 include 경로 준비
SQLiteDatabase.loadLibs(context);
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databaseFile, "암호", null);
db.execSQL("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT);");
db.close();
8. 요약
SQLCipher는 민감한 데이터를 안전하게 보호하면서도 SQLite의 장점을 그대로 가져올 수 있는 강력한 도구입니다.
기업 및 개인 개발자 모두 자유롭게 사용할 수 있으며, 필요 시 상업용 라이선스를 통한 안정적인 지원도 가능합니다.
직접 빌드와 적용 과정도 비교적 간단하며, iOS 및 Android에서의 통합 또한 공식 라이브러리로 잘 지원됩니다.