mysql:8863
From: tateyan <tateyan <tateyan@xxxxxxxxxx>>
Date: Mon, 23 Feb 2004 23:04:07 +0900
Subject: [mysql 08863] Re: mod_auth_mysql のパスワード暗号化について
たてやんっす 杉本誠さんの 題名「[mysql 08860] mod_auth_mysql のパスワード暗号化について」のメールからの引用です > お世話になります。はじめて投稿します。 > すぎもとといいます。よろしくお願いします。 > > 早速ですが、ご教授いただければ幸いです。 > 社内イントラで、mod_auth_mysqlを使用し、MySQL上で暗号化パスワードの利用を > 考えています。 > しかし、通常のテキストなら認証OKなのですが、パスワードフィールドを暗号化する > と認証できなくなってしまいます。 > 環境は以下の通りです。 > OS: WindowsNT4.0SP6a > WebServer: Apache1.3.24 > MySQL :3.23.55 > 使用データベースとテーブル authdb 、authtable > > ●Apache httpd.confのmod_auth_mysql関係部分抜粋 > LoadModule mysql_auth_module modules/mod_auth_mysql.so > <IfModule mod_auth_mysql.c> > <Location /restricted> > AuthName "MySQL Secured Place" > AuthType Basic > require valid-user > AuthMySQLHost localhost > AuthMySQLDB authtdb > AuthMySQLUser apache > AuthMySQLPassword PaSsWorD > AuthMySQLUserTable authtable > AuthMySQLNameField username > AuthMySQLPasswordField password > AuthMySQLCryptedPasswords On > </Location> > </IfModule> > > ●認証対象のディレクトリの.htaccess > AuthName "このページはパスワード制限されています" > AuthType Basic > require valid-user > AuthMySQLHost localhost > AuthMySQLDB authdb > AuthMySQLUser apache > AuthMySQLPassword PaSsWorD > AuthMySQLUserTable authtable > AuthMySQLNameField username > AuthMySQLPasswordField password > AuthMySQLCryptedPasswords On > > これら2つの設定は、mod_auth_mysqlの付属サンプルほぼそのままです。 > > ●authtableにユーザーを追加するSQL > INSERT INTO authtable (username, password) VALUES('sugimoto', password('abcd')); > > password()関数で、確かに暗号化されますが、それを正しくBasic認証することが出来ません。 password はMySQLのパスワードになります Basic認証に使うには ENCRYPT()関数を使うことになるんでしょうけど WindowsNTなんですね... PASSWORD() 暗号は不可逆です。 PASSWORD() は UNIX のパスワードが暗号化す るのと同じ方法で暗号化を行うわけではありません。 UNIX のパスワードと MySQL のパスワードが同じと思ってはいけません。 UNIX のパスワードファイル に保存される値が PASSWORD() が返すと考えてはいけません。 ENCRYPT() 参照。 れます。 ということなんで使えないですね apacheであれば md5 でbasic 認証できますので mysql のmd5()関数と組み合わせれば認証できそうな気がします あとで この辺試してみます > password()を使用せずにBasic認証すると、OKとなります。 > AuthMySQLCryptedPasswords Onで暗号化対応だと思うのですが、プレーンテキストで > 認証してしまいます。 > いろいろ調べて、暗号化がpassword()関数ではなく、encrypt()関数を使用するという記 > 述に行き当たりましたが、WinNT用MySQLでは使用できないとの事でした。 > > mod_auth_mysqlはバージョンによって、設定方法がかなり違うようで、試行錯誤しています。 > 何かヒントでもいただければ幸いです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 彡彡从 たてやんっす d□/□-b <tateyan@xxxxxxxxxx> ヽ"ー"丿 Key fingerprint = 5D56 8EA3 B9FE A721 4866 FB4A 0041 672C 08DD C33A
8860 2004-02-23 10:34 [杉本誠 <sugimoto@xxx] mod_auth_mysql のパスワード暗号化について 8862 2004-02-23 22:31 ┣["A.K.I." <aki@xxxxxx] 8865 2004-02-24 10:31 ┃┗[杉本誠 <sugimoto@xxx] -> 8863 2004-02-23 23:04 ┗[tateyan <tateyan@xxx] 8864 2004-02-23 23:35 ┣[tateyan <tateyan@xxx] 8867 2004-02-24 11:06 ┃┗[杉本誠 <sugimoto@xxx] 8866 2004-02-24 10:43 ┗[杉本誠 <sugimoto@xxx]