Thanks for all the replies.  From those links, especially

http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html

I'm getting the pretty clear picture that passwords are never sent in
the clear in recent versions of MySql.  Still though, I don't know how
safe it is to assume that that's exactly what's going on with DBI-
>connect.  I imagine DBI->connect must be using the underlying MySql
program in the same way as just typing

mysql -u andrew732 -p -h remote.host.ip

from the command line, but I would love to find out for sure.


On Jul 6, 12:44 pm, mcd...@stanford.edu (David McMath) wrote:
> I think the quoted section is more about how passwords are stored in the
> database itself than about how they're communicated during login.  I
> readhttp://dev.mysql.com/doc/refman/5.5/en/secure-connections.htmlto
> suggest that there isn't much encryption going on at all, particularly
>
> > The standard configuration of MySQL is intended to be as fast as possible, 
> > so encrypted connections are not used by default.
>
> I think they can get away with that attitude because (1) SSL is
> available if you really want it and (2) "localhost" is a special case
> for MySQL.  Fromhttp://dev.mysql.com/doc/refman/5.5/en/connecting.html:
>
> > On Unix, MySQL programs treat the host name localhost specially, in a way 
> > that is likely different from what you expect compared to other 
> > network-based programs. For connections to localhost, MySQL programs 
> > attempt to connect to the local server by using a Unix socket file.
>
> So for the special case of localhost, there's no "over the network" to
> worry about.  But if you're connecting to a remote machine, I think you
> _should_ be at least a little concerned about passwords.
>
> I'd be quite happy to be wrong, though.  I'm pretty sure DBD::MySQL
> isn't encrypting the password for transmission, but the underlying calls
> to the MySQL client software might be.
>
> dave
>
> Paul DuBois wrote:
> >http://dev.mysql.com/doc/refman/5.1/en/user-names.html:
>
> > "
> > MySQL encrypts passwords using its own algorithm. This encryption is the 
> > same as that implemented by thePASSWORD() SQL function but differs from 
> > that used during the Unix login process. Unix password encryption is the 
> > same as that implemented by the ENCRYPT() SQL function. See the 
> > descriptions of the PASSWORD() andENCRYPT() functions in Section 11.13, 
> > “Encryption and Compression Functions”.
>
> > From version 4.1 on, MySQL employs a stronger authentication method that 
> > has better password protection during the connection process than in 
> > earlier versions. It is secure even if TCP/IP packets are sniffed or the 
> > mysqldatabase is captured. (In earlier versions, even though passwords are 
> > stored in encrypted form in the user table, knowledge of the encrypted 
> > password value could be used to connect to the MySQL server.) Section 
> > 5.3.2.3, “Password Hashing in MySQL”, discusses password encryption further.
> > "
>
> > On Jul 6, 2010, at 5:42 AM, John Scoles wrote:
>
> >> andrew...@yahoo.com wrote:
> >> Not a 100% sure for MySql but I would think it is.
>
> >> What happens first is the connection to the server is made in this case 
> >> '$database:localhost:3306'  and then internally the username and password 
> >> are sent.
>
> >> If someone can 'sniff' the connection between the perl program and the 
> >> Server and if it is not encoded then yes it is in the clear.
> >> I know with DBD::Oracle this connection is encrypted (at least the Pw and 
> >> UID) that same should be true of MySql as I think that is part of the SQL 
> >> standard is it not??
>
> >> cheers
> >> John
> >>> When connecting to a MySql server with DBI->connect:
>
> >>> $dsn = "dbi:mysql:$database:localhost:3306";
> >>> $dbh = DBI->connect($dsn, $username, $password)
>
> >>> is the password sent in the clear?  If so, how can this be dealt with?
>
> >>> I actually don't care about hiding the plaintext password in the perl
> >>> source file or encrypting the connection with the database, I just
> >>> don't want the world to see my password when it goes out over the
> >>> network.  Is that so much to ask for?  I would think this would be an
> >>> obvious issue but as far as I can tell, nobody has ever asked this
> >>> question before in the history of the internet.  Apparently a direct
> >>> command line connection to a MySql server will not send the password
> >>> in the clear:
>
> >>> mysql -u andrew732 -p -h 123.456.789.876
>
> >>> but even that took me several hours of googling to figure out.  I'm
> >>> not new to Perl but I'm new to databases; is there a good reason that
> >>> nobody seems to care about password security when it comes to
> >>> databases?  I would love to be enlightened!  Thanks~

Reply via email to