質問箱/5298

カテゴリサイト管理・運営
サマリアカウント登録のリモート登録
バージョン1.5.1
投稿者Tomose?
状態質問
投稿日2018-03-27 (火) 09:07:46

質問

現状ユーザ認証のメカニズムはありますが、そのためのユーザ登録はpukiwiki.ini.php を管理者が編集する必要があります。 その際、管理者が「新規ユーザのパスワード」を知る必要があり、セキュリティ的に好ましくないです(wikiの編集だけならそれでもいいでしょうが、パスワード作成の癖の流出などリスクがある)。改善方法はないでしょうか。

# とはいえ管理者に許可なくユーザ登録するのも不適切っぽいので、

# 例えば管理者による「許可」をうけるために、管理者に確認メールを入れるなどの手間は必要そうですが。

回答

  • パスワードを平文(ありのまま、書いたままの文)でしか設定できないと誤解されているのですね。12年前の1.4.6からパスワードハッシュを使用できるようになっています。(厳密にはSSL上の)*1PukiWiki上のmd5プラグインや、Linuxのslappasswdコマンドで、各自に「ソルト(各自が決める、でたらめな文字列)つき」と「パスワード」を元にしたSSHAのパスワードハッシュを計算してもらった上で、パスワードハッシュを受け渡すようにすることで、常識的なレベルでは改善するでしょう。(非常識なレベルでは、これでも不足ではあります)(詳しくは dev:BugTrack/709) -- henoheno 2018-03-27 (火) 22:07:13
    • ・・・少なくとも $auth_users については $adminpass と同様ですね。 -- henoheno 2018-03-27 (火) 22:13:29
    • ・・・ slappasswd では salt は自動的に毎回異なる内容が与えられ、手動で指定できないようですね。 -- henoheno 2018-03-27 (火) 22:28:49
  • 認証設定については PukiWiki/Authentication に説明があります。henohenoさんの書かれているようにmd5などを使って平文パスワードを隠蔽することもできますし、そもそも認証情報をPukiWikiの外部に持つこともできます。(LDAP利用やAUTH_TYPE_EXTERNAL_REMOTE_USERなど) 更にPukiWiki 1.5.2 だと AUTH_TYPE_SAML で外部のSingleSignOnサーバーと連携することもできるようになります。dev:BugTrack/2411 AUTH_TYPE_EXTERNAL で twitter認証する話を質問箱/5262に書いていたりします -- umorigu 2018-03-28 (水) 02:46:49
  • 回答ありがとうございます。ちょっとニュアンスが違いまして。Pukiwikiの認証を使う場合にMD5化する方法は理解していますが、ではその「MD5化する」のは誰か、ということです。詳しくない方にはお願いできません(PCを使い慣れている方ばかりというわけではない。ということです)。 -- Tomose? 2018-03-28 (水) 05:53:22
  • 外部認証についてもまあ同様で、twitterアカウントを誰もが持っているわけでもないです。SingleSignOnは考えてなかったのでちょっと相談してみますが、これもどうだろうなぁ・・・同窓会的なメンバーで使おうと思っているので、個々人のレベルはいろいろ違うのです。 -- Tomose? 2018-03-28 (水) 05:55:55
  • ああ。読み直してちょっと思い当たりました。例えば登録ページ作って、そこで入力させたものをMD5プラグインで加工したものを出力するようなページなりプラグインなり作ればいいのか・・・ちょっと考えてみます。ありがとうございました。 -- Tomose? 2018-03-28 (水) 05:59:30
  • もう一つ余談ですが、MD5ってのも今時どうよ、とは思いました。pukiwiki.ini を直接参照されることは普通ないにせよ。sha2プラグインでも作りますかね(笑) -- Tomose? 2018-03-28 (水) 06:40:42
    • プラグインだけでは解決しなくて、認証部分にも手を加える必要があります。標準機能にsha2加えてもいいのですが最近は外部連携を重視していて、要望は少なそうだとは思ってます -- umorigu 2018-03-29 (木) 09:28:27
    • 「MD5ってのも今時どうよ、とは思いました」について、SHA2も利用可能なことがわかりました。dev:BugTrack/709 によるとプリフィクス {x-php-crypt} で PHP crypt が使えます。PHPで crypt('pass', '$6$abc') の結果が "$6$abc$dCZAbKbeBK7T0hukxi7enUZp/94Lft5t19M7i5KuPRB7fbWvBRbIYAWY22u9tH90kN7HD..U6kgPLsfSP1Rl0/" なので、以下のようにするとpukiwiki.ini.phpの中のパスワード指定に SHA512 を利用できます。(プリフィクス $5$ が SHA256, $6$ が SHA512 を表します。詳しくは php.net:manual/ja/function.crypt.php ) -- umorigu 2018-04-02 (月) 08:15:33
      $auth_users = array(
       'user_a' => '{x-php-crypt}$6$abc$dCZAbKbeBK7T0hukxi7enUZp/94Lft5t19M7i5KuPRB7fbWvBRbIYAWY22u9tH90kN7HD..U6kgPLsfSP1Rl0/',
      );
    • SHA2情報ありがとうございます。自分で言っておいてなんですが、SHA2だとハッシュ値も長く、いよいよ「利用者に意識させずにこちら側でハッシュ化」するメカニズムが必要そうなので、SSL/TLSやTwitter認証の件もひっくるめていろいろ試してみています。 どこまで「よくある」感じにするかは検討の余地はありますが、例えば「pukiwiki認証+Twitter認証の併用(利用する側が選べる)」なんてのも考えています。これはまあ、単純にやるとユーザ名衝突とか起きそうなので、登録者を限定できる環境ゆえの話ではありますが。 -- Tomose? 2018-04-03 (火) 06:34:33


*1 PukiWiki本体がSSLで守られていない場合、SSL無しでmd5プラグインを操作したとしても危険度は変わらない

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-26 (木) 05:16:33
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.290 sec.

OSDN