Basic認証とDigest認証を比較するために環境を作成する手順をまとめます。 パケットキャプチャによりパスワードが取得できるかできないかについては こちらの記事でまとめたいと思います。
■安全性
Basic認証とは、ユーザ名とパスワードをBase64でエンコードしてAuthorizationヘッダを付加してサーバにリクエストする方式です。 base64エンコードは暗号化ではなくただの符号化ですので、簡単に復号できてしまいます。 一方、Digest認証はユーザ名と暗号化したパスワードを利用するため、ネットワーク上を生パスワードが流れることはありません。 サーバ側に生パスワードを保存する必要がないのもポイントです。盗聴に対してBasic認証よりかはマシと考えられます。 Digest認証はMD5などの脆弱なアルゴリズムを使用します。SSLを使用した通信の暗号化の方が、資格証明の傍受を防ぐには好ましい方法です。
■認証設定ディレクトリ準備
[root@centos65 ~]# mkdir /var/www/html/basic [root@centos65 ~]# mkdir /var/www/html/digest [root@centos65 ~]# echo "<h1>/var/www/html/basic/index.html</h1>" > /var/www/html/basic/index.html [root@centos65 ~]# echo "<h1>/var/www/html/digest/index.html</h1>" > /var/www/html/digest/index.html [root@centos65 ~]#
■htpasswdファイル準備
## Basic認証用
[root@centos65 ~]# mkdir /etc/httpd/htpasswd [root@centos65 ~]# htpasswd -bc /etc/httpd/htpasswd/basic.htpasswd basic secret Adding password for user basic [root@centos65 ~]# cat /etc/httpd/htpasswd/basic.htpasswd basic:TrttZUUoY6iEE [root@centos65 ~]#※"-b"はパスワードを指定するオプション。
## Digest認証用
[root@centos65 ~]# htdigest -c /etc/httpd/htpasswd/digest.htpasswd DigestAuth digest Adding password for digest in realm DigestAuth. New password: ←secret Re-type new password: [root@centos65 ~]# cat /etc/httpd/htpasswd/digest.htpasswd digest:DigestAuth:9d5ce11731e1e06d88aaa030476b5447 [root@centos65 ~]#realm(領域名)を指定する必要がある。今回は"DigestAuth"とした。
■認証設定ファイル準備
[root@centos65 ~]# vi /etc/httpd/conf.d/auth.conf [root@centos65 ~]# cat /etc/httpd/conf.d/auth.conf ## for Basic Authentication <Directory "/var/www/html/basic"> AuthType Basic AuthName "Basic Authentication" AuthUserFile /etc/httpd/htpasswd/basic.htpasswd Require valid-user </Directory> ## for Digest Authentication <Directory "/var/www/html/digest"> AuthType Digest AuthName "DigestAuth" AuthUserFile /etc/httpd/htpasswd/digest.htpasswd Require valid-user </Directory> [root@centos65 ~]#Digest認証はAuthNameにrealmで指定した値を設定する必要がある。
■httpd.confにモジュールがロードされているか確認
[root@centos65 ~]# grep -e auth_basic -e auth_digest /etc/httpd/conf/httpd.conf LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so [root@centos65 ~]#
## httpd再起動
[root@centos65 ~]# /etc/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ] [root@centos65 ~]#
■認証確認
## Basic認証
http://192.168.77.149/basic/
## Digest認証
http://192.168.77.149/digest/
Basic認証と同じような手順および使い勝手であるので、パスワードをとりあえず暗号化できるDigest認証の方がお勧めかも。
この情報が何かのお役にたてれば幸いです。m(_ _)m
0 件のコメント:
コメントを投稿