Обсуждение: [GENERAL] mysql_config_editor feature suggestion

Поиск
Список
Период
Сортировка

[GENERAL] mysql_config_editor feature suggestion

От
Tom Ekberg
Дата:
I have been working with MySQL a bit (yes, I know, heresy) and encountered a program called mysql_config_editor. In my
opinionit does a better job of local password management than using a ~/.pgpass file. Instead of assuming that a mode
of600 will keep people from peeking at your password, it encrypts the password, but keeps the other parameters like
host,port and user available for viewing as plaintext. You can read more about it here: 

   https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html

The host, user, password values are grouped into what are called login paths which are of the form:

   [some_login_path]
   host = localhost
   user = localuser

Just like the config files you have no doubt seen before. The only way to set a password is to use the command:

   mysql_config_editor set --login-path=some_login_path --password

which will prompt the user to enter the password for the specified login path. The password is never seen as plain
text.There are other commands to set, remove, print and reset values for a login path. The print command that shows a
passwordwill display this instead: 

   password = *****

Adding a similar feature for PostgreSQL will also require a change to the psql program to specify and handle
--login-pathused for authentication. This may also be the case for some of the other pg_* utilities. 

I think adding a feature like mysql_config_editor to PostgreSQL is an easy way to set up multiple "personalities" for
connectingto different PostgreSQL servers. The password protection will deter the curious user from gaining access to
yourdata. It will not stop a determined hacker, but the idea is to make it more difficult. 

Other than this mailing list, is there a way to make a feature request for PostgreSQL?

Tom Ekberg
Senior Computer Specialist, Lab Medicine
University of Washington Medical Center
1959 NE Pacific St, MS 357110
Seattle WA 98195
work: (206) 598-8544
email: tekberg@uw.edu




Re: [GENERAL] mysql_config_editor feature suggestion

От
Guillaume Lelarge
Дата:
2017-03-21 23:03 GMT+01:00 Tom Ekberg <tekberg@uw.edu>:
I have been working with MySQL a bit (yes, I know, heresy) and encountered a program called mysql_config_editor. In my opinion it does a better job of local password management than using a ~/.pgpass file. Instead of assuming that a mode of 600 will keep people from peeking at your password, it encrypts the password, but keeps the other parameters like host, port and user available for viewing as plaintext. You can read more about it here:

  https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html

The host, user, password values are grouped into what are called login paths which are of the form:

  [some_login_path]
  host = localhost
  user = localuser

Just like the config files you have no doubt seen before. The only way to set a password is to use the command:

  mysql_config_editor set --login-path=some_login_path --password

which will prompt the user to enter the password for the specified login path. The password is never seen as plain text. There are other commands to set, remove, print and reset values for a login path. The print command that shows a password will display this instead:

  password = *****

Adding a similar feature for PostgreSQL will also require a change to the psql program to specify and handle --login-path used for authentication. This may also be the case for some of the other pg_* utilities.

I think adding a feature like mysql_config_editor to PostgreSQL is an easy way to set up multiple "personalities" for connecting to different PostgreSQL servers. The password protection will deter the curious user from gaining access to your data. It will not stop a determined hacker, but the idea is to make it more difficult.


I'm wondering how it works. It stores the password encrypted in the .mylogin.cnf file? and then the other tools can use the encrypted password in this file to connect to the serveur without having to type a password? In such a case, if I have access to this file, what prevents me to copy it to another computer and connect without your authorization and without your password? (which is exactly what you're afraid of with the .pgpass file)
 
Other than this mailing list, is there a way to make a feature request for PostgreSQL?


This one is pretty good for this.


--

Re: [GENERAL] mysql_config_editor feature suggestion

От
Steve Atkins
Дата:
> On Mar 21, 2017, at 3:03 PM, Tom Ekberg <tekberg@uw.edu> wrote:
>
> I have been working with MySQL a bit (yes, I know, heresy) and encountered a program called mysql_config_editor. In
myopinion it does a better job of local password management than using a ~/.pgpass file. Instead of assuming that a
modeof 600 will keep people from peeking at your password, it encrypts the password, but keeps the other parameters
likehost, port and user available for viewing as plaintext. You can read more about it here: 
>
>  https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html
>
> The host, user, password values are grouped into what are called login paths which are of the form:
>
>  [some_login_path]
>  host = localhost
>  user = localuser

Looks rather like a postgresql service file. :)

>
> Just like the config files you have no doubt seen before. The only way to set a password is to use the command:
>
>  mysql_config_editor set --login-path=some_login_path --password
>
> which will prompt the user to enter the password for the specified login path. The password is never seen as plain
text.There are other commands to set, remove, print and reset values for a login path. The print command that shows a
passwordwill display this instead: 
>
>  password = *****

This seems like it'd give people a false sense of security. If someone can read that file, they can log in to that
account.Obfuscating the password just makes naive users think they're secure when they're anything but, and means
they'reless likely to be careful about making that file unreadable and avoiding checking it into revision control and
soon. It'd protect against shoulder-surfing, but it's not like you're going to have .pg_pass open in an editor too
often.

A commandline tool for managing pgpass might be interesting, I guess. Though for local databases using peer
authenticationis likely better than saving passwords in a file. 

> Adding a similar feature for PostgreSQL will also require a change to the psql program to specify and handle
--login-pathused for authentication. This may also be the case for some of the other pg_* utilities. 
>
> I think adding a feature like mysql_config_editor to PostgreSQL is an easy way to set up multiple "personalities" for
connectingto different PostgreSQL servers. The password protection will deter the curious user from gaining access to
yourdata. It will not stop a determined hacker, but the idea is to make it more difficult. 
>
> Other than this mailing list, is there a way to make a feature request for PostgreSQL?

Cheers,
  Steve

Re: [GENERAL] mysql_config_editor feature suggestion

От
Adrian Klaver
Дата:
On 03/21/2017 03:03 PM, Tom Ekberg wrote:
> I have been working with MySQL a bit (yes, I know, heresy) and
> encountered a program called mysql_config_editor. In my opinion it does
> a better job of local password management than using a ~/.pgpass file.
> Instead of assuming that a mode of 600 will keep people from peeking at
> your password, it encrypts the password, but keeps the other parameters
> like host, port and user available for viewing as plaintext. You can
> read more about it here:
>
>   https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html
>
> The host, user, password values are grouped into what are called login
> paths which are of the form:
>
>   [some_login_path]
>   host = localhost
>   user = localuser
>
> Just like the config files you have no doubt seen before. The only way
> to set a password is to use the command:
>
>   mysql_config_editor set --login-path=some_login_path --password
>
> which will prompt the user to enter the password for the specified login
> path. The password is never seen as plain text. There are other commands
> to set, remove, print and reset values for a login path. The print
> command that shows a password will display this instead:
>
>   password = *****
>
> Adding a similar feature for PostgreSQL will also require a change to
> the psql program to specify and handle --login-path used for
> authentication. This may also be the case for some of the other pg_*
> utilities.

Something like this?:

https://www.postgresql.org/docs/9.6/static/libpq-pgservice.html

with:

https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=ba005f193d88a8404e81db3df223cf689d64d75e

https://www.postgresql.org/docs/devel/static/libpq-connect.html#libpq-connect-passfile

The only thing lacking is that the passwords are not actually encrypted
in the file. Though there are other methods available then the md5
password authentication:

https://www.postgresql.org/docs/devel/static/auth-methods.html

>
> I think adding a feature like mysql_config_editor to PostgreSQL is an
> easy way to set up multiple "personalities" for connecting to different
> PostgreSQL servers. The password protection will deter the curious user
> from gaining access to your data. It will not stop a determined hacker,
> but the idea is to make it more difficult.
>
> Other than this mailing list, is there a way to make a feature request
> for PostgreSQL?
>
> Tom Ekberg
> Senior Computer Specialist, Lab Medicine
> University of Washington Medical Center
> 1959 NE Pacific St, MS 357110
> Seattle WA 98195
> work: (206) 598-8544
> email: tekberg@uw.edu
>
>
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com