Vimでファイルを暗号化

概要

Vimでファイルに暗号化して保存することができる。

操作方法

開く時に暗号化

$ vim -x file

開いたvim画面では、

f:id:lgx:20210103123437p:plain:w450

よくあることで、2回パスワードを聞かれる。
編集して、保存した後に、同じファイルを開くと、次のようにパスワードの入力を求める。

f:id:lgx:20210103124013p:plain:w450

編集中に暗号化する

:Xコマンドすると、パスワードを求める画面が表示され、同じく2回入力すれば暗号化される。

パスワードを変更する

$ vim +X file

現在のパスワードの入力を求められて、正しく入力すると、新しいパスワードを求める画面が出る(同じく2回)

f:id:lgx:20210103124636p:plain:w450

暗号化を解除

新しいパスワードを未入力にすることで解除できる。

暗号化のタイミング

実際に暗号化が行われるのはファイル保存時、書き込みせずに強制終了したら暗号化は適用されない。

暗号化方式

:set cryptmethodで分かる、vim8.2では cryptmethod=blowfish2 になっている。

参考資料:Vimとセキュリティ問題 - Vim と暗号化機能 | 株式会社創夢 — SOUM/misc
によると、以下のような方式がある(あった)

cryptmethod 解説
zip Pkzip 互換の暗号化方式。使用するべきではない。
blowfish blowfish というブロック化暗号方式。Vim 7.3 以上が必要。脆弱性が報告されている。使用するべきではない。
blowfish2 blowfish というブロック化暗号方式。Vim 7.4.399 以上が必要。暗号化シードを毎回再生成する。

blowfishについて

参考資料:Blowfish - Wikipedia
によると、blowfishは64bit単位ブロック暗号の共通暗号化方式であり、鍵長は32ビットから448ビットまでの可変長で、ライセンスフリー