メンバーパスワードの仕組みについて

2020年9月25日 at 15:34

フォーラムの皆さま

平素より大変お世話になっております。
concrete5のシステムセキュリティに関することですので、ご回答
いただけるか不明でございますが、質問させていただきます。

concrete5にメンバーを登録した際、MySQL側の「Users」テーブル
に、作成したメンバー情報が登録されていることを確認いたしました。
アドオンの「Export User CSV」でデータをエクスポートし、適当な
メンバーを追加して、今度は「Import User CSV」でインポートした
のち、MySQLの「Users」テーブルを確認しますと、「uPassword」
フィールドにハッシュ化されたパスワード文字列らしきものが見えました。

そこで質問でございますが、
「Users」テーブルに表示されている「uPassword」の完全形を確認
する方法はございませんでしょうか?
また、uPasswordが万一判明したとして、その文字列をデコードして
ログイン画面からログインできるものでしょうか?

concrete5では、パスワードは必ずメンバーがパスワードを新規発行して
運用することは理解しておりますが、「Users」テーブルに自動生成され
ている「uPassword」が気になります。
ご教示いただけますと幸いです。

どうぞよろしくお願いいたします。

【環境情報】
# concrete5 Version
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307

# Database Information
Version: 5.1.73
SQL Mode:

# concrete5 Packages
CSV User Import & Export (0.1.1), Honest Websites Back To Top (1.1.0), Login/Logout Link (1.0), Login Page Background (0.9.1), Manual Nav (2.3.3), Migration Tool (0.9.1)

# concrete5 Overrides
blocks/external_form/form/controller/tkp_menu.php, blocks/external_form/form/controller/enq_a.php, blocks/external_form/form/controller/enq_b.php, blocks/external_form/form/controller, blocks/external_form/form/tkp_menu.php, blocks/external_form/form/enq_a.php, blocks/external_form/form/enq_b.php, blocks/external_form/form, blocks/external_form, mail/mail_send_hyoka_a.php, mail/mail_send_hyoka_b.php

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - On
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
apache2handler

# PHP Version
7.1.33

# PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mysqli, mysqlnd, odbc, openssl, pcre, PDO, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, recode, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib

# PHP Settings
max_execution_time - 3600
log_errors_max_len - 4096
max_file_uploads - 100
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 384M
sql.safe_mode - Off
upload_max_filesize - 256M
ldap.max_links - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 4000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5

タグ:

Re: メンバーパスワードの仕組みについて

2020年9月25日 at 15:36
パスワードはハッシュ化して保管されていますので、誰も元の平文のパスワードに戻すことはできません(逆に戻せるものをハッシュ化とは呼びません)。
 

Re: メンバーパスワードの仕組みについて

2020年9月25日 at 15:38
hissyさま

ありがとうございます。
確かにおっしゃる通りでございますね(;^_^A
元に戻せたら、ハッシュとは申しませんね。
ご教示ありがとうございます。
 

Re: Re: メンバーパスワードの仕組みについて

2020年9月25日 at 15:50
それ弊社のGitHubに上がってるアドオンですね。
どうなるんだろう。ちょっと心配になってきました
 

Re: Re: Re: メンバーパスワードの仕組みについて

2020年9月25日 at 16:07
現状、空文字をハッシュ化して保存してますね。
実際には、パスワードを入力せずにログインフォームから送信はできないのでログインできないのですが、望ましい状態ではないので、将来的にはアドオンを改善しようと思います。
良い投稿ありがとうございました!
 

Re: メンバーパスワードの仕組みについて

2020年9月25日 at 18:12
hissyさま

ご回答ありがとうございます。
空文字をハッシュ化しているわけでございますね。
今回の質問の発端は、admin用として登録済のメールアドレスが
何らかの事故で使えなくなったときに、MySQL側でパスワードを
変更したり、リセットできるものなのか?と思い、投稿させて
いただきました。
 

Re: メンバーパスワードの仕組みについて

2020年9月26日 at 8:34
横からすみません。
「admin用として登録済のメールアドレスが何らかの事故で使えなくなったとき」
の対処法としては、MySQL側でadminのメールアドレスを書き換えて
concrete5ログイン画面からパスワードリセットするのがよろしいかと。
 

Re: メンバーパスワードの仕組みについて

2020年9月27日 at 14:31
aniyaさま

いつも大変お世話になっております。
なるほど!!
万一、登録時のメールアドレスがなんらかの原因で
変更になった場合は、MySQLでメールアドレスを変更
してから、ログイン画面経由でパスワードを変更する
わけでございますね。
ご対応の方法ありがとうございます。
すっきりいたしました\(^o^)/