bkpmaker でユーザフレンドリーなパスワードを生成する

先日、PHP で文字列に読みがなをふるという記事を書いたのですが、もっと簡単に運用できないかな・・・と考えていたら良い方法を思いついたので公開したいと思います。

目次

ツール bkpmaker を使う

以前ご紹介したこともある bkpmaker を使う方法です。
bkpmaker は、使用する文字を細かく指定することができるパスワード生成ツールで Windows向けのフリーソフトですが、Wine を使えば Linux でも使えます。
(Wine 3.0 で稼働確認しました)。

概要

Excel などで読みがなをふることもできますが、そもそも読みづらい(間違いやすい)文字列を排除するという逆転の発想です。
bkpmaker では、下記4種類の文字列を設定できるのですが、これらにそれぞれ何を割り当てるのかを決めることができます。

  • 大文字
  • 小文字
  • 数字
  • 記号

この機能を利用して、読みづらく且つ間違えやすい文字列を排除してパスワード文字列を生成します。

使い方

  • [設定] - [パスワード] で使用文字欄の「大文字・小文字・数字」の設定を変更します。
    • 使用文字欄
      文字種 初期値 設定例
      大文字 ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHJKLMNPQRSTUVWXYZ
      I(アイ), O(オー)を除外
      小文字 abcdefghijklmnopqrstuvwxyz abcdefghijkmnopqrstuvwxyz
      l(エル)を除外
      数字 0123456789 23456789
      0(ゼロ), 1(イチ)を除外
  • [使用文字種] 欄の「記号」の設定を変更します。
    文字種 初期値 設定例
    記号 !\"#\$\%\&\'()*+\,-.\/:\;\<\=>\?\@[\]\^_`{|}\~ [\]\@\-\;:\/\,.
    Shiftキー複合入力を除外(単独で入力可能なキーに限定)

※場合によっては、B・8 なども除外対象になるかもしれません。

あまり文字数を減らしてしまうと強度的に心配になるかも知れませんが、パスワードは複雑性よりも文字数が長いほうが強固というのが最近のトレンドです。

base on パスワードに記号は不要、JPCERT方針転換の理由 | 日経 xTECH(クロステック)
2018/08/27 05:00
パスワードを12文字以上にすれば、必ずしも記号を使う必要はない。

利用する文字種は「様々な文字種を組み合わせるとより強固になる」と表現を弱め、全文字種の利用を強く推奨はしなくなった。
その分、推奨する文字列の長さを12文字以上に増やした。

個人情報(氏名や生年月日など)や辞書に載っている単語をそのまま利用するのは論外として、パスワードを総当りでチェックしていくにはそれなりに時間がかかります。
そして、桁数が増えれば増えるほど解析に時間がかかります。
解析にかかる時間が増えるということは、パスワードが漏れたことに気が付いて変更できる猶予を稼げる可能性が高まることに繋がりますので、平たく言うと複雑さよりも長さを優先したほうが良い、ということになります。