LoginSignup
11
11

More than 5 years have passed since last update.

spwdというパスワード管理ツールを作った

Last updated at Posted at 2017-09-28

たまには Qiita にも。元の blog は↓

spwdというパスワード管理ツールを作った | tail -f pinzo.log

はじめに

みなさんパスワード管理どうしてますか?

Webサービスのアカウントならブラウザや LastPass のようなサービスが利用できるけど、まだまだパスワードでログインしなければいけないサーバがあったり psqlmysql コマンドでパスワード入力したりしなければならなかったりしませんか?

全部が秘密鍵で済むような環境になればいいけど、少なくとも自分を取り巻く環境はそうなっていません。意味のある文字列ならまだしも、ランダムな英数字とか覚えておくにも限界があるし、いざ入力するときも手間がかかる。

まだまだ僕たちはパスワード管理から自由になれないようです。ならせめてセキュアにパスワード管理できて、入力補助的なことができるとうれしい。

というわけで

pinzolo/spwd: Secret file based password management tool というものを作ってみた。

Screenshot

こんな感じで利用します。

何やってるのか?

spwd new で対話形式でパスワードをデータファイルに保存します。このとき、特定のファイル(以下キーファイル)のハッシュをキーにして暗号化しています。

キーファイルはデフォルトでは ~/.ssh/id_rsa を使用しますが、これは このツールを使うような人はたいてい持っていて かつ 本人しか知り得ないはずのもの だから都合がよかったからで、
SSHの秘密鍵を利用されるのは気持ち悪いという人は ~/.config/spwd/config.yml に設定を書けば別のファイルをキーにすることができます。ついでにデータファイルの場所も変更できます。(デフォルトは ~/.local/share/spwd/data.dat

ファイルのハッシュを利用しているのでキーファイルの中身は別にRSA形式じゃなくてもOKです。ぶっちゃけなんでもOKです。

そのほかつらつらと

  • キーファイルさえ流出しなければ、データファイルは Dropbox とかで同期しても大丈夫だよね。
  • キーファイルは自分さえ知り得ない長めの文字列なんかを各環境でファイルに保存すればネットワーク介さなくてもいいから安全だよね。
  • キーファイル配置先のパーミッションはちゃんとやろうね。SSH と同じだよ。
  • 万が一キーファイルが漏れたりしたら、新しいキーファイルを用意して spwd migrate /path/to/new/key/file とすればカレントディレクトリに新しいデータファイルを生成するよ。(上書きするわけではない)
  • spwd new の時に同じ Name を指定すれば、上書きするかどうかを聞いてくるので Description の更新もこっちでやってね。
  • はじめはパスワードだけ暗号化していたけどやめた。Name や Description をエディタで更新できるメリットよりも、それらがヒントになってしまうデメリットのほうが高い気がする。

そんなわけで、興味があれば慎重に使ってみてください。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11