見出し画像

Tera Termマクロでパスワードを暗号化して利用する方法

パスワードをマクロファイルに直書きせず、パスワードを暗号化して別ファイルに保存して読み出す方法について解説します。


 暗号化したパスワードをファイルに保存する

パスワードを暗号化してファイルに保存するためのTTLコマンドはsetpasswordです。このTTLコマンドにパスワードファイル、識別子、パスワードを引数で渡すと暗号化したパスワードを引数で渡したパスワードファイルに保存します。

passwdfile = 'passwd.dat' ;パスワードファイル
ident = 'foo'            ;識別子
passwd = 'password'      ;パスワード

setpassword passwdfile ident passwd

このマクロを実行すると次のような内容のファイルが作成されます。

[Password]
foo=HI}^hJT\ymat.@sTuPCgQU7*

識別子の選定は慎重に行いましょう。サンプルでは 'foo'としていますが、ユーザー名やIPアドレス、ホスト名を識別子にすると複数のアカウントを登録した際に重複してしまい意図した通りに動かない可能性があります。

ユーザー名とホスト名(IPアドレス)を組み合わせるなど、重複しない識別子にする事をおすすめします。 既存の識別子に対してsetpasswordを実行すると、暗号化されたパスワードは上書きされます。

重複を避ける方法

重複をさけるためにはispasswordを使います。

ispasswordはTera Term 4.75から使うことができるTTLコマンドで、パスワードファイル filenamepassword nameで指定した識別子が存在するかどうか調べます。

存在する場合はシステム変数resultに1が格納され、存在しない場合はシステム変数resultに0が格納されます。

passwdfile = 'passwd.dat' ;パスワードファイル
ident = 'foo'            ;識別子
passwd = 'password'      ;パスワード

ispassword passwdfile ident

if result == 1 then
    messagebox '登録済みです' '登録済み'
else
    messagebox '未登録です' '未登録'
endif

暗号化したパスワードの利用方法

暗号化されたパスワードが格納されたパスワードファイルから平文のパスワードを取り出す方法を紹介します。

passwdfile = 'passwd.dat' ;パスワードファイル
ident = 'bar'            ;識別子
passwd = 'password'      ;パスワード

getpassword passwdfile ident passwd

messagebox passwd passwd

パスワードを取り出すTTLコマンドはgetpasswordです。このTeraTermマクロを実行すると、パスワードファイルから識別子(foo)に対応したパスワードを復号化して変数(passwd)に格納しメッセージボックスに表示されます。

もしfooという識別子でパスワードが登録されていない場合、パスワード登録画面が表示され、パスワードが登録されます。

未登録の識別子を指定すると新規パスワード登録となる

Tera Termマクロでパスワードを暗号化する際の注意点

Tera Termマクロでパスワード登録する方法は実はそれほど実効性がありません。というのも、暗号化されたパスワードファイルを入手すれば誰でも復号化できるからです。

ですからTera Termマクロでパスワードを暗号化するのは気休め程度だと思ってください。

この記事が気に入ったらサポートをしてみませんか?