Received: from maia.hub.org (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id 43F09634080 for ; Sat, 3 Apr 2010 14:03:34 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 66110-10 for ; Sat, 3 Apr 2010 17:03:22 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from joeconway.com (wsip-72-214-29-243.sd.sd.cox.net [72.214.29.243]) by mail.postgresql.org (Postfix) with ESMTP id 81607634607 for ; Sat, 3 Apr 2010 14:03:23 -0300 (ADT) Received: from [192.168.4.40] (account jconway HELO dev.joeconway.com) by joeconway.com (CommuniGate Pro SMTP 4.1.8) with ESMTP-TLS id 9380584; Sat, 03 Apr 2010 10:03:21 -0700 Message-ID: <4BB774D4.3070306@joeconway.com> Date: Sat, 03 Apr 2010 10:03:16 -0700 From: Joe Conway User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.0.12) Gecko/20071019 Fedora/1.5.0.12-3.fc6 pango-text Thunderbird/1.5.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 To: Timothy Madden CC: pgsql-admin@postgresql.org Subject: Re: Database level encryption References: In-Reply-To: X-Enigmail-Version: 1.0.1 OpenPGP: id=B699434A Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig26797C36A99E800069A43797" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-0.79 tagged_above=-10 required=5 tests=AWL=-0.891, BAYES_50=0.001, RDNS_DYNAMIC=0.1 X-Spam-Level: X-Archive-Number: 201004/20 X-Sequence-Number: 34114 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig26797C36A99E800069A43797 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 04/03/2010 06:35 AM, Timothy Madden wrote: > I can only see how PostgreSQL encrypts the password or the connection > in the documentation, and for the database I can see application-level > encryption with pgcrypto (and filesystem level encryption), How could > I get database level encryption in PostgreSQL ? This is an extremely broad question, and you have barely begun to provide enough information to answer it. For starters: 1. What is your threat scenario? a) The physical machine is stolen b) A database dump is stolen c) Someone roots your system d) Someone compromises your application, via SQL injection, etc 2. What data needs to be encrypted? a) All columns of all tables b) Selected columns of selected tables 3. Do you need to be able to search or sort on any of the encrypted columns? 4. Is your password stored somewhere on the hardware, or is it entered by a human every time the application starts? 5. Do you want a single password for all data access, or is the encryption by user or some other segmentation? 6. Is brute-force cracking of the password a concern? Will your application shut down repeated failed attempts? There is no magic bullet. This requires careful thought, analysis, and trade-offs. Joe --------------enig26797C36A99E800069A43797 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iQIcBAEBCAAGBQJLt3TZAAoJEDfy90M199hlD8YP+gIG7i2yBhBFrcr35L4Teekj 5xTbjrWAbUrkdDcyDqldNYR6T8X2bWf7HgUib0si2NkHlkoxA7tA4vaZguf5nB6F Caa1ZCSQvt0cmxAh92DG1xBOPtoiqW4AzcCuH25guXCYAQzHmariOcuCeYXXcbB7 kyxFkjMsnf/iFm+UigcyZTt9TYlCUfQGRW7RKzeOiDREkm1kc6t/MxHu5qlWysGb TKFoEh/tY8fE4SjtM4aAbP+2gkqUuF3hCdvMfVq+fsw/Y3Gp7powfwS6C/+2M7ZY A8ppqxRqvvKqBRK0X8scBwzfnzTl6+46wGTUp5CVXufxRgmZC4yF8+YxEp9w8XX+ M43VvrzBL4Tt9zVrrKl6pVez0yezoikdsLu77WW94kLWHroggW7Lpg46b9rQJDZc X5rfCjyucptGdRszPnB4qbs+n58mrn6cW0o4cSy6iOcGlcGGqaNEzyQeA1b1R9zj R3yEsTGAhUr0CL0Big6Q8qRyHtvzkJlcc01Agy76qMmUxTJt+/z5Nzpxns7YLsoa uLx0aFPWekGfT9Z87lt8i1nmRTRrYIzF9MsX6KQ29sRTwEI7R/lCZVFPAQ+U5/vu XBwIMZzcuVX2jUjqxutF/gBgqihmU3+SZ5TYzjhtpEps0iluhTsjQ6K5gGoNV8hZ geVi1fS1sa7LkblxVg4A =o5w2 -----END PGP SIGNATURE----- --------------enig26797C36A99E800069A43797--