ベーシック認証・ダイジェスト認証とクライアント証明書
こんにちは。技術部のsです。
今回はベーシック認証・ダイジェスト認証とクライアント証明書について紹介します。
どちらも、特定のユーザのみ対象のWEBページへアクセスができるよう制限をかける設定となります。
それぞれの特徴は以下の通りです。
ベーシック認証
特定のディレクトリやファイルに対して、IDとパスワードで認証を行う方法です。
.htaccessまたはconfファイルに設定を記載し、.htpasswd等のパスワードファイルを指定します。
このパスワードファイルはIDとパスワードをBase64という方式で エンコード(記号化) しているだけで
暗号化 されているわけではありません。
またHTTPで通信している場合はIDとパスワードが平文のまま流れてしまいますので、
改ざんや盗聴のリスクが高まります。
なるべくSSLを利用し、HTTPS通信で暗号化を行いましょう。
ダイジェスト認証
こちらもベーシック認証同様、IDとパスワードで認証を行う方法です。
ダイジェスト認証はパスワードファイルがMD5やSHA-256等のアルゴリズムで ハッシュ化
されているので、HTTP通信の際でも平文でパスワードが送信されることはありません。
その為、ベーシック認証より強固ではありますが、強度はあまり強くありません。
クライアント証明書
「証明書」というとサーバに設置し、WEBページを暗号化するSSLサーバ証明書がよく聞かれると思いますが、
クライアント証明書は、PCやスマートフォン端末等のクライアント側が証明書を提示し、認証を行う方法です。
ベーシック認証やダイジェスト認証と違い、IDやパスフレーズの入力の必要はないので、
その分セキュリティリスクを削減できます。
クライアント証明書はサーバ上のプライベート認証局(オレオレ認証局)で自己証明書として発行し
利用することが可能です。
グローバルサイン等のパブリック認証局でも発行、購入することは可能ですが
SSLサーバ証明書に比べると、お値段がお高めになっています。
まとめ
ベーシック認証とダイジェスト認証は、設定が容易ではありますが、
設定する際には、HTTPSでの利用、ベーシック認証の場合は.htpasswdをドキュメントルート配下に設置しない等、対策を重ねることを推奨します。
また 簡易的な設定 であることも念頭に置いておきましょう。
一方、クライアント証明書は、特定の端末からのみの認証が可能となるため
情報を持っていれば不特定多数の場所から認証が可能になる、IDとパスワードでの認証より
安全に利用することができますが、証明書作成や設置の作業や、費用が発生することになります。
やはり安全を手に入れるためには、手間やお金を惜しむことはできませんね…。
また、今回ご紹介の認証設定は、弊社で設定代行も可能でございますので、ご希望のお客様はお問い合わせくださいませ。