アカウント名:
パスワード:
せっかくなので、ここで良いパスワードの生成方法を検討したらどうですかねITリテラシが高そうな/.jではサービスごとにパスワードを変えてる人が多いでしょうがどうやって生成し管理するか、面倒ですよね
個人的には今のところ、いくつかの乱数アルゴリズムを組み合わせてURLやサービス名、ユーザー名、パスワードを設定した年月をシードにしてパスワードを生成するコードをCで書いて使ってます。CですがポータビリティはまあまあでLinux、Windows、ARMのAndroidで動くことを確認してます。利点は、
・サービスごと、設定した年月ごとに異なるパスワードを生成できる・パスワードをなくしてもシードを再構成できれば同じパスワードが再生成できる・使っている乱数アルゴリズムと組み合わせ方が漏れなければパスワードの類推は出来ない(自分で書いたコードだから大丈夫)
てな感じでしょうか。他に良いツールやよいやり方を知ってる人がいたら開陳してください私や皆さんの参考になりますし。
今までにもなんどか [srad.jp] 挙げました [srad.jp]が、私は、
アルゴリズムは、・サービス名と、パスフレーズを連結した文字列を生成する(パスフレーズ自体は秘密で全サービス共通)・md5 を取って、base64で可視化する。パスワードに使える文字によっては、+/=は取り除くというもの。サービス名slashdot.jp、パスフレーズpasswordなら、MD5 ("slashdot.jppassword") = 056f4e7e19e041883212ed3708b2d435なので、これをbase64化して、パスワードは BW9OfhngQYgyEu03CLLUNQ になります。実際には、「slashdot.jppassword」って文字列を与えたら、それに対応するパスワードを表示するperlスクリプトを使ってます。1linerで「perl -e 'use Digest::MD5; print Digest::MD5->new->add("slashdot.jppassword")->b64digest;'」って感じ。
アルゴリズムは、・サービス名と、パスフレーズを連結した文字列を生成する(パスフレーズ自体は秘密で全サービス共通)・md5 を取って、base64で可視化する。パスワードに使える文字によっては、+/=は取り除くというもの。
サービス名slashdot.jp、パスフレーズpasswordなら、MD5 ("slashdot.jppassword") = 056f4e7e19e041883212ed3708b2d435なので、これをbase64化して、パスワードは BW9OfhngQYgyEu03CLLUNQ になります。
実際には、「slashdot.jppassword」って文字列を与えたら、それに対応するパスワードを表示するperlスクリプトを使ってます。1linerで「perl -e 'use Digest::MD5; print Digest::MD5->new->add("slashdot.jppassword")->b64digest;'」って感じ。
でやってます。実際には、上述の結果に対し、パスワードが8文字制限だったら先頭8文字の「BW9Ofhng」を使うというのが基本ですが、アルファベットと数字の混在必須とかのルールで、先頭の文字列に数字が無かったら、切り出し位置を変えるとか、サービス名をちょっと変えて見るとか、小手先の技は使ってます。
この方法のメリットは
・サービス名はテキストデータとしてファイルに保管。ハッシュからのパスワード切り出し位置が先頭以外の場合は、切り出し位置などもメモ。パスフレーズは頭の中にあるだけなので、このテキストだけからはパスワードの入手はまず不可能。まあ、どれかのサービスのIDとパスワードが漏れたら、そこからブルートフォースで「秘密のパスフレーズ」を見つけることは理論上は可能ですが、実質、私一人のIDのためにそこまでやる人はいないでしょう。
・公開されたアルゴリズムだけで作ってるので(パスワード生成プログラムのソースコードを無くしたとかで)パスワード生成手段が失われる心配がない。 (そのかわり、生成手順はどこかに残して置く必要があるわけですが、そういうバックアップの意味もかねて、こういうところにコメントしてたり)
というわけで、漏洩の心配はまずないこと。
最近の難点は、Androidでのパスワード生成方法が面倒なこと。Androidローカルで動くPerlアプリを作るのは面倒なので、自宅サーバにて、上記パスワード生成コードをCGIで動かして、それをhttps経由でアクセスしてます。問題ないはずなんですけど、何となく気持ち悪さがのこります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
パスワードをどうやって作るのがいいのか考えましょう (スコア:0)
せっかくなので、ここで良いパスワードの生成方法を検討したらどうですかね
ITリテラシが高そうな/.jではサービスごとにパスワードを変えてる人が多いでしょうが
どうやって生成し管理するか、面倒ですよね
個人的には今のところ、いくつかの乱数アルゴリズムを組み合わせてURLやサービス名、
ユーザー名、パスワードを設定した年月をシードにしてパスワードを生成するコードをCで書いて
使ってます。
CですがポータビリティはまあまあでLinux、Windows、ARMのAndroidで動くことを確認してます。
利点は、
・サービスごと、設定した年月ごとに異なるパスワードを生成できる
・パスワードをなくしてもシードを再構成できれば同じパスワードが再生成できる
・使っている乱数アルゴリズムと組み合わせ方が漏れなければパスワードの類推は出来ない(自分で書いたコードだから大丈夫)
てな感じでしょうか。他に良いツールやよいやり方を知ってる人がいたら開陳してください
私や皆さんの参考になりますし。
Re:パスワードをどうやって作るのがいいのか考えましょう (スコア:1)
今までにもなんどか [srad.jp] 挙げました [srad.jp]が、私は、
でやってます。
実際には、上述の結果に対し、パスワードが8文字制限だったら先頭8文字の「BW9Ofhng」を使うというのが基本ですが、アルファベットと数字の混在必須とかのルールで、先頭の文字列に数字が無かったら、切り出し位置を変えるとか、サービス名をちょっと変えて見るとか、小手先の技は使ってます。
この方法のメリットは
・サービス名はテキストデータとしてファイルに保管。ハッシュからのパスワード切り出し位置が先頭以外の場合は、切り出し位置などもメモ。パスフレーズは頭の中にあるだけなので、このテキストだけからはパスワードの入手はまず不可能。
まあ、どれかのサービスのIDとパスワードが漏れたら、そこからブルートフォースで「秘密のパスフレーズ」を見つけることは理論上は可能ですが、実質、私一人のIDのためにそこまでやる人はいないでしょう。
・公開されたアルゴリズムだけで作ってるので(パスワード生成プログラムのソースコードを無くしたとかで)パスワード生成手段が失われる心配がない。
(そのかわり、生成手順はどこかに残して置く必要があるわけですが、そういうバックアップの意味もかねて、こういうところにコメントしてたり)
というわけで、漏洩の心配はまずないこと。
最近の難点は、Androidでのパスワード生成方法が面倒なこと。Androidローカルで動くPerlアプリを作るのは面倒なので、自宅サーバにて、上記パスワード生成コードをCGIで動かして、それをhttps経由でアクセスしてます。問題ないはずなんですけど、何となく気持ち悪さがのこります。