Hello

try to use a security definer functions

http://www.postgresql.org/docs/current/static/sql-createfunction.html

inside this function you can access to resourcess thats are no
available from outer for web user

Regards

Pavel Stehuke

2011/6/15 Manuel Gysin <manuel.gy...@quantum-bytes.com>:
> Hello
>
>
> I'm currently designing a database layout where some columns are encrypted.
> Some tables contains sensitive user data which needs a special protection.
>
> I used http://www.postgresql.org/docs/8.1/static/encryption-options.html as a 
> guide.
>
> - For the password field I just used a hash algorithm with some loops to 
> protect the passwords ("Password Storage Encryption" with bcrypt).
> - For the sensitive columns I used "Encryption For Specific Columns", here I 
> have later some questions.
> - For general data encryption I used luks (crypsetup) "Data Partition 
> Encryption"
> - Connection is secured like desc. in "Encrypting Data Across A Network" with 
> "SSL Host Authentication"
>
> Much attack use cases are covered with this but I see one problem:
>
> 1. There is a frontend (webserver) and a backend (database)
>   - backend must be configured to not allow to much queries in a given time, 
> else there is a possibility to get around the whole security stuff
>   - frontend needs too some protection against brute force
> 2. When encrypting some columns I need to save somewhere the key.
>   - Frontend (very bad idea, first point of failure)
>   - Backend (when someone can dump the database, he got the key too, 
> encryption is in this use case useless)
>   - Remote database (when someone can hack to the first db, it's not far away 
> to the second db I think, but there is more time to register an attack and 
> force shutdown everything)
>   - Write an dedicated application (when someone hacked this server, it's 
> only a matter of time before he can find out where the key is stored in the 
> RAM)
>
> So it seems there is no protection when someone gained access to the database 
> server. Or is there a way? I can't see any.
> I'm not fit enough in attack a database server, but I think when someone has 
> access to the database, he can simply dump the whole tables, while the key is 
> stored in the table, he has full access to everything in the database. At the 
> end the question is, where and how I should store the key to decrypt the 
> columns?
>
> A discussion about this topic can be found under 
> http://www.experts-exchange.com/Database/PostgreSQL/Q_21934798.html (answers 
> are not all the time displayed...)
> But there were no final solution at all.
>
>
> Kind regards
> Manuel Gysin
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to