数年前まではランダムなパスワードを作成するにあたり、その手のWebサービスを使っておりました。ところがまぁ、サイトが閉鎖したりするようなことがあって残念な気持ちになることがあり。しかし考えたら「macOS使ってるのだからコマンドあるんじゃね?」という結論になるわけで、「おれは今まで何をしとったんやどあほ」みたいな。
そういうわけで、それ以来pwgenをインストールして、ターミナルにてランダムなパスワード生成しとります。pwgenはデフォルトでインストールされていないので、ターミナルからHomeBrewを使ってインストール。
# brew install pwgen
インストールしたらあとはpwgenを使うだけ。まずはヘルプを確認。日本語訳はGoogle翻訳して追記。カッコ書きは私が追記したもの。
# pwgen --help Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ] // [ OPTIONS ] オプション指定 // [ pw_length ] パスワード文字数指定 // [ num_pw ] 作成するパスワードの個数指定 Options supported by pwgen: -c or --capitalize Include at least one capital letter in the password // パスワードに少なくとも1つの大文字を含める -A or --no-capitalize Don’t include capital letters in the password // パスワードに大文字を含めない -n or --numerals Include at least one number in the password // パスワードに少なくとも1つの数字を含める -0 or --no-numerals Don’t include numbers in the password // パスワードに数字を含めない -y or --symbols Include at least one special symbol in the password // パスワードに少なくとも1つの特殊記号を含める -r <chars> or --remove-chars=<chars> Remove characters from the set of characters to generate passwords // パスワードを生成するために文字セットから文字を削除する -s or --secure Generate completely random passwords // 完全にランダムなパスワードを生成する -B or --ambiguous Don’t include ambiguous characters in the password // あいまいな文字をパスワードに含めない -h or --help Print a help message // ヘルプの表示 -H or --sha1=path/to/file[#seed] Use sha1 hash of given file as a (not so) random generator // 与えられたファイルのsha1ハッシュを(そうではない)ランダムジェネレータとして使う // (事前に用意しておいたハッシュファイルを指定して8桁x160個のパスワードを生成) // (オプション無しでも8桁x160個作るけど、という使い方でいいかな?) -C Print the generated passwords in columns // 生成されたパスワードを列に表示します -1 Don’t print the generated passwords in columns // 生成されたパスワードを列に表示しません // (複数のパスワードを作成したとき、それが改行されて表示される) -v or --no-vowels Do not use any vowels so as to avoid accidental nasty words // 偶然の厄介な言葉を避けるために母音を使わないでください // (母音を使用しないでパスワードを作成する)
例えば、「完全にランダムで母音使用は禁止して48文字のパスワードを5個生成し、パスワードごとに改行して表示」するなら、以下のようにする。
# pwgen -sv1 48 5 gHgwMfSJ84Xt5cHj7lSr99js9lkkD35p5xsgCfn7vRHtQplq 25Zm6sbJxgZPxnW4z4x4Lr6GH6Nzz6RWlhjqZpBRcTv8KrVB prZ8TgsSc5nmmbr2QF4hCg3ZTcl8N2gZD73ssn48lGvZf8Kq kmngtJcmm9JjqQBntw66Ttph9w3fLLVsKCdLPbxQRmPwwwSj RRVLGrvtVGVldB6LQrC3D4nHZwHp9bbWT6MfkKrdH7fwfmMg
パスワードの保存に関しては、Webサービスであればブラウザに記憶させる一方で『VeraCrypt』を使用して暗号化ディレクトリを作成し、そこに各パスワード情報を書いてテキスト保存している。そうして、これをバックアップもしておくという運用。1password等のパスワード管理ソフトは使っておりませぬ。
そうして最近知ったのだけど、pwgenを使わなくてもキーチェーンアクセスでランダムなパスワードが作成できるそうで「まじかーw」となった。pwgenほど細かい指定はできないし最大パスワード文字数は31文字だけど、pwgenとかわからんという方におかれましてはキーチェーンアクセスを使用するのもぜんぜんあり。
macOSにてキーチェーンアクセスでランダムなパスワードを作成するには、以下の手順を。
- キーチェーンアクセスを起動する。
- 『ファイル』メニューから「新規パスワード項目…」を選択する。
- 開いた画面中央、パスワードの項目の右側にある鍵のマークをクリックする。
- パスワードアシスタントのウィンドウが開くので、強度や文字数を選んでパスワード作成する。
- パスワード作成するだけなら、上記手順で作成後は保存しないで終了してよい。
うむ、ずっとmacOS使っているのだけど、キーチェーンアクセスのことはほとんど知らないままだった。pwgenのほうがお手軽感満載なので、私は緊急事態にでもならない限りはキーチェーンアクセス使わないと思うけど、知識として知っておくのは良いことだと思いました。
ちなみになぜにこのネタをまた改めて書いたかというと、どうも今朝のあさイチでセキュリティの特集があったらしく、そこで出たパスワードの話がひどかったと聞いたからです。
またパスワードに作成に関しては、ひろみちゅこと高木浩光氏が以下のようなことをずっと提言しておられまして、どのサービスでもパスワード文字数上限を撤廃してくれたらなぁと思うことがしばしば。
私の推奨は「5万語の語彙の辞書(広辞苑など)をランダムに開いて3つの語を選んで繋げる」(オフライン攻撃想定の「暗号の鍵」の場合は5つの語を選んでつなぐ)という提案。(NISCは採用していない。)
— Hiromitsu Takagi (@HiromitsuTakagi) 2018年3月27日
平成も終わろうというこのご時世でも、いまだにパスワード文字数に上限があったり記号混じりじゃないとダメだったり英大文字とか数字が入ってないと受け付けてくれなかったりするのですよねぇ。
そんなことを書いてる私も2012年には『覚えやすくて複雑なパスワードの作り方』という(今となってはお恥ずかしい)エントリをアップしておりますが、もうこういうのは古の思考回路ということで、脳内もアップデートしていかないといけませぬ。
そういうことを考えてみるに、いまだにトレンドマイクロが古の思考回路でNHKに出てきてドヤってるというのがよくわかりません。なんつーかあの会社、害悪撒き散らしてばっかのような気がしてならんのであったよ。