Re: How to allow users to log on only from my application - Mailing list pgsql-general

From
Subject Re: How to allow users to log on only from my application
Date
Msg-id 1170364007.6941.213.camel@sakai.localdomain
Whole thread Raw
In response to How to allow users to log on only from my application not from pgadmin  ("Andrus" <kobruleht2@hot.ee>)
Responses Re: How to allow users to log on only from my application  ("John D. Burger" <john@mitre.org>)
List pgsql-general
> Say that your application offers a way for each user to set/change  
> his own password.
>
> When I (using your application) change my password, you could  
> combine my new password with a secret value and then send the  
> result to the PG server (so now the PG server thinks that my  
> password is my_password+your_secret).

This is a special case of (2,2) secret sharing:

   http://en.wikipedia.org/wiki/Secret_sharing

Here the secret is the actual password, a+b, shared into two parts, a  
and b. The above scheme suffers from the problem that the user now  
knows quite a lot about the secret.  

Hmmm... how would the user know anything about the secret unless he could somehow get to the resulting combined password?

For example, if my password is "chocolate" and the application secret is "fudge", I can't recover any part of the combination "chocolate-fudge" unless I can:

a) see "chocolate-fudge" in the network data stream (assume that I can't because Andrus is smart enough to avoid sending cleartext passwords over the net)
b) see "chocolate-fudge" in the PG password table (again, Andrus is smart enough to use MD5 authentication so "chocolate-fudge" is never stored on the server)

If this is an issue, there are  
more sophisticated combining schemes that give the user no advantage  
over someone who knows neither half of the secret.

Absolutely, but I wanted to get the basic idea across.  Andrus' application knows the correct password for each user (or, more precisely, his application knows how to derive the correct password from the user-supplied password - Andrus doesn't have to store each password on the client side or anything like that) so his application can log in, but the users don't know any valid passwords so they can't get into the database with a tool like PgAdmin.

So, in your opinion, this isn't a crazy idea?  It should work?  But it could be made more secure if Andrus is particularly paranoid.

            -- Korry

P.S. Thanks for the feedback.

pgsql-general by date:

Previous
From: "Dave Page"
Date:
Subject: Re: I "might" have found a bug on 8.2.1 win32
Next
From: "Dave Page"
Date:
Subject: Re: I "might" have found a bug on 8.2.1 win32