[前][次][番号順一覧][スレッド一覧]

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]