パスワード生成カードのSVGファイルを作成するPython Script

Created , Modified .

概要

UUIDv4を自動生成し, それをシリアルコードとしたパスワード生成カードのSVG画像を<日付>_card-front.svg<日付>_card-back.svgとしてファイル作成する. 標準出力には, シリアルコード(UUID), 数字15文字, 英数字25文字, 記号と英数字50文字のリストを出力する. 利用方法の詳細はGitHubのREADME.mdを参照.

例示 カード表にはシリアルコード(UUID), 数字15文字への換字暗号表, 英数字25文字への換字暗号表がある


例示 カード裏には記号と英数字50文字への換字暗号表がある

Fig 1. 作成されるSVG画像例, (上) カード表, (下) カード裏

動機

このもの自体の原型はたまたま目についたクラウドファンディングの金属製の同目的なカードである. 大きなくくりで言えばパスワード管理の運用手段を探し続けている状態にあったことだろうか. 特にその運用で何に悩んでいるかといえば, そのバックアップと親類への公開手段である.

グダグダした理由はあるものの, 作った理由を突き詰めれば数10年以上の保管に対するデジタルな耐久性の不信感とデジタルな場所は自身がいなくなった後では他人に託したところで発見できず利用できないことから, アナログにパスワードを受け継がせようとしつつ単純には盗ませないために, このパスワード生成カードとそれに与えるパラメータを別の場所に保存すればある程度溜飲は下がるだろうというもんである.

運用想定

カードのSVG画像を作成するPython Scriptの詳細はGitHubのREADME.mdを参照.

準備

  1. カードのSVGを作成し, 印刷, 表裏貼り合わせをする.
  2. カードの空欄に何らかの利用法をメモする.[*1]
  3. 印刷したカードの保護加工をする.[*3]
  4. ノートを用意する.

普段使い

ノートには利用サービス(管理対象)ごとに, IDと, カードを用いたパスワードの導出方法を記入する. IDがメールアドレスであったり, 備考的にメールアドレスをノートに書く際には, 常にアドレス全部を記入するよりも, メールアドレスに短い名前をつけて識別する. 利用サービスが多くとも, 紐づくメールアドレスは4~5個の使い回しであるハズである.

カードとノートは別に保管する. カードは財布に入れて, ノートは利用場所に近い本棚の中など. カードとノートのどちらかだけでは, いわば鍵が揃わないため, パスワードを解読するのは困難になるはずである. ノートが盗られた場合は, パスワードそのものは無事だろうけれども, 利用サービスとIDが抜かれている状態にはなる. パスワードの使い回しなどをしてしまっていると, 脆弱なサービスそのものが標的にされた場合, 芋づる式な当て込みが成立してしまう可能性が残る.

バックアップ

カードのバックアップをとるときには準備のときに, 余分の同じカードを印刷したままの状態で保管しておけば良いと思う. ブランクなカードを入手できたところで, 2項で定めた利用法が不明ならば, 解読に相当量手間がかかるハズである. ノートのバックアップはやや面倒がある. というのも, カードは一度作れば破損や汚損しない限りそのまま利用していけばよいけれども, ノートは月日が立てば, サービスの増加や削除が発生することが予想されるからである. やるとしたら, デジタルなノートも用意しておき, アナログなノートで増加や削除が発生したら転記して, 半年~1年程度で印刷するとかだろうか?

引き継ぎ

引き継がせるには利用法の書かれたカードとノートの両方が渡るようにすればよい. バックアップの保存場所も伝えるときには, カードの利用法や, 管理しているサービスの記述を参照させればよいのでなかろうか?

蛇足

先の運用想定(とこの記事全体)ではノートを用いたアナログなパスワード管理を提案していることになる. かつて市販のパスワードノートでアナログに保管することはそれなりな賛否両論が発生していたような気がする. では, どの程度今回の手段が正当であろうかについて, IPAから以下のことを述べている.

Cite 1. 不正ログイン対策特集ページ "2. パスワードの作成・管理方法について" ()

IPAではパスワードを「できるだけ長く」, 「複雑で」, 「使い回さない」ものとすることを推奨しています.

その様なパスワード作成・管理方法の1つとして,「コアパスワード」を使った方法を紹介します. 具体的な方法について下記のページを参考にして、安全なパスワードの作成・管理を実施してください.

不正ログイン被害の原因となるパスワードの使い回しはNG

このコアパスワードによる運用は, 1. コアパスワードという長くて英数字記号を含む文字列を覚える, 2. サービスとその識別子を電子ファイルや紙で記録する, 3. 実際のパスワードはサービスの識別子とコアパスワードの組み合わせにする, というものである.

この記事のカードとノートによる運用は, コアパスワードによる運用のサービスの識別子をパスワードの導出方法に置き換えて, 実際のパスワードをアナログなカード導出に頼るところが異なる. 一応はどちらか単体の紛失や流失ならば悪用はできない. しかし, どちらもアナログである以上は同時に失うことはあり得る. さらなる堅牢さを求めるなら, ノートに書いたパスワードの導出方法をそのまま利用しないなどの工夫が必要となるだろう.

参考


*1 :: なぜこんなフワッとした物言いをするか? 理由としては, これが最後にはパスワードの堅牢性になるし, なんなら何も書かずにちゃんと頭で覚えるのがもっとも強力だからである.

*2 :: 2016年の情報であるけど, なんやかんやと今でもちょこちょこ参照されている状況である.

*3 :: 印刷時のサイズを1, 2周り小さくしないとならないが, 100円均一の貼るラミネートやフォトケース封入などがある.