sqlite und sqlcipher

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ofmueller
Beiträge: 34
Registriert: 11.04.2013 13:24:52

sqlite und sqlcipher

Beitrag von ofmueller » 23.12.2016 22:29:09

Ich habe unter Debian Jessie "sqlite3" und "sqlcipher" installiert. Der anschließende Test zeigte aber, dass die Datenbank nicht verschlüsselt wurde:

Code: Alles auswählen

sqlite3 sqlcipher.db
sqlite> PRAGMA KEY='test123';
sqlite> CREATE TABLE t1(a,b);
sqlite> INSERT INTO t1(a,b) VALUES ('one for the money', 'two for the show');
sqlite> .quit

hexdump -C sqlcipher.db
(vgl. auch: https://www.zetetic.net/sqlcipher/design/)

SQLCipher habe ich auf verschiedene Weise versucht zu installieren
  • * aus dem Sourcecode
    * aus den jessie-backports
    * unter Ubuntu
Zur Verschlüsselung verwende ich die Bibliothek von openssl.

Kann mir jemand weiterhelfen?

Benutzeravatar
heisenberg
Beiträge: 3540
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: sqlite und sqlcipher

Beitrag von heisenberg » 23.12.2016 22:45:53

Also bei mir installiert sqlcipher nach dem make install ein Programm namens /usr/local/bin/sqlcipher . Wenn ich das aufrufe, dann meldet sich offensichtlich der SQLite3-Kommandoprompt bzw. die angepasste Version von sqlcipher, die mit der Verschlüsselung umgehen kann. D. h. darfst da nicht das Kommando sqlite3 verwenden. Ich habe die Doku auch so verstanden, dass das eine Erweiterung ist. Nichts desto trotz: So isses.

Code: Alles auswählen

sqlcipher blub.db
SQLCipher version 3.11.0 2016-02-15 17:29:24
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> PRAGMA KEY='test123';
sqlite> CREATE TABLE t1(a,b);
sqlite> INSERT INTO t1(a,b) VALUES ('one for the money', 'two for the show');
sqlite> .quit
root@jessie03:~/sqlcipher# hexdump -C blub.db 
00000000  66 fb c5 65 56 c5 72 12  5a 33 85 e8 be 0a 0e 83  |f..eV.r.Z3......|
00000010  77 49 ab 5f 0a 0d a0 7b  fa c0 21 12 1c a3 6a 95  |wI._...{..!...j.|
00000020  bc a6 29 1e b3 73 e8 ed  d4 b7 67 9c 3b 1f 1d 38  |..)..s....g.;..8|
00000030  7e 13 70 59 7b f5 86 df  3b dd cd fa 55 1b 92 af  |~.pY{...;...U...|
00000040  d3 84 33 cf 4a cd 9f d3  08 d8 80 02 35 60 51 54  |..3.J.......5`QT|
00000050  15 cd 8a ad 15 7f ea a8  b2 e9 36 f2 43 7b 7c c3  |..........6.C{|.|
00000060  97 52 cb 9c 94 bc c9 5e  d6 a1 ba 14 1b a4 fe ba  |.R.....^........|
00000070  7f 7e cd 8d 39 99 f0 5b  bb f9 2b d8 38 25 78 81  |.~..9..[..+.8%x.|
00000080  65 41 f1 e8 51 2d 76 91  ea c0 5c 41 5d 33 c0 18  |eA..Q-v...\A]3..|
00000090  0a 5d 05 ee 69 d0 d1 d3  53 d8 42 8d 05 5f 3c ec  |.]..i...S.B.._<.|
000000a0  a8 0c 13 66 1b 66 22 1e  81 34 bc 94 84 dc 91 97  |...f.f"..4......|
...
(200 Zeilen mehr)
Sieht auf jeden Fall mehr verschlüsselt aus als das:

Code: Alles auswählen

00000000  53 51 4c 69 74 65 20 66  6f 72 6d 61 74 20 33 00  |SQLite format 3.|
00000010  04 00 01 01 00 40 20 20  00 00 00 02 00 00 00 02  |.....@  ........|
00000020  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 04  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 02  |................|
00000060  00 2d e6 07 0d 00 00 00  01 03 da 00 03 da 00 00  |.-..............|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000003d0  00 00 00 00 00 00 00 00  00 00 24 01 06 17 11 11  |..........$.....|
000003e0  01 35 74 61 62 6c 65 74  31 74 31 02 43 52 45 41  |.5tablet1t1.CREA|
000003f0  54 45 20 54 41 42 4c 45  20 74 31 28 61 2c 62 29  |TE TABLE t1(a,b)|
00000400  0d 00 00 00 01 03 da 00  03 da 00 00 00 00 00 00  |................|
00000410  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000007d0  00 00 00 00 00 00 00 00  00 00 24 01 03 2f 2d 6f  |..........$../-o|
000007e0  6e 65 20 66 6f 72 20 74  68 65 20 6d 6f 6e 65 79  |ne for the money|
000007f0  74 77 6f 20 66 6f 72 20  74 68 65 20 73 68 6f 77  |two for the show|
Jede Rohheit hat ihren Ursprung in einer Schwäche.

ofmueller
Beiträge: 34
Registriert: 11.04.2013 13:24:52

Re: sqlite und sqlcipher

Beitrag von ofmueller » 24.12.2016 11:40:37

Danke, es hat geklappt.

Antworten