1. 概要
- SQLite Encryption Extension(SEE)は、アプリケーションが暗号化されたデータベースファイルを読み書きできるようにするSQLiteのパブリックドメインバージョンのアドオンです。
- RC4、OFBモードのAES-128、CCMモードのAES-128、OFBモードのAES-256の4つの異なる暗号化アルゴリズムがサポートされています。
- SEEを搭載したSQLiteのバージョンは、暗号化されたファイルを読み書きするだけでなく、パブリックドメインバージョンのSQLiteを使用して作成された通常のデータベースファイルも読み書きできます。
- アプリケーションはSQLiteのATTACHコマンドを使用して、同時に2つ以上の暗号化および/または非暗号化データベースと通信できます。各データベースファイルには独自の暗号化キーがあります。
2. 暗号化
- SEEはデータベースファイル全体(データとメタデータ)を暗号化します。
- 外部から見ると、データベースは白色雑音に見えます。
- データベースファイル自体とそのロールバックジャーナルが暗号化されます。
3. API
- SEEには2つの新しいAPIが含まれています:`sqlite3_key`と`sqlite3_rekey`。
- `sqlite3_key`インターフェイスは、新しく開かれたデータベース接続で暗号化キーを指定するために使用されます。
- `sqlite3_rekey`インターフェイスは、既に開かれているデータベース接続の暗号化キーを変更するために使用されます。
- `sqlite3_rekey`インターフェイスは、NULLキーを指定することで、以前に暗号化されたデータベースを復号化することもできます(これにより、強化されていないパブリックドメインバージョンのSQLiteからアクセス可能になります)。
- 拡張APIは、PRAGMAステートメントを介してもアクセス可能です。そのため、C/C++や他のホスト言語だけでなく、SQLからも使用できます。
4. コマンドラインインターフェース
- SQLiteコマンドラインインターフェース(CLI)は、暗号化キーを指定するための2つの追加コマンドラインオプション、`-key`および`-hexkey`が強化されています。
- `-key`オプションは、ASCIIテキストで暗号化キーを引数として取ります。
- `-hexkey`オプションは、16進数で表されるバイナリ暗号化キーを引数として取ります。
- CLIには、データベースの暗号化キーを変更するために`sqlite3_rekey`インターフェースを呼び出す新しいドットコマンド`.rekey`も含まれています。
5. ライセンス
- ライセンスは永久ライセンスです。
- SEEのコピーを商用製品と一緒に配布することができます。
6. オンライン構成管理システム
- SEEの使用許諾を購入した後、SEEのオンライン構成管理システムにアクセスするためのユーザー名とパスワードが送信されます。
- SEEの最新ソースコードとドキュメントをダウンロードするためにいつでもログインできます。
- パスワードに有効期限はないので、将来再度ログインして、SEEのアップデートや強化版をダウンロードすることができます。
メーカーの製品サイト
https://sqlite.org/index.html
【言語】英語