要望:マスターパスワードによる保護仕様の強化
席を離れたらデータを盗まれるという類の問題ですので、根本的にソフトウェアでは防げません。 考えられる対策としては以下のようなものが考えられます。
一般的な実装ですが、後に示す理由でほとんど意味がありません。
使い勝手はWindows VistaのUACのように大きく低下します。
レジストリエディタで"HKEY_CURRENT_USER\Software\Sota\FFFTP"以下を編集すれば回避できます。
いずれの対策も、パスワード入力欄を覗き見るツール(一部のスパイウェアにもこの機能が搭載)が流通しているため、それを使用すると簡単にパスワードを盗み出すことができます。 ちなみに1.98b以降はDLLインジェクションによるパスワードの覗き見を、1.98e以降はウィンドウメッセージによるパスワードの覗き見を、コマンドラインの"--protect"オプションで抑制できます。 マスターパスワードの変更前に現在のマスターパスワードを要求する実装は、"--protect"オプションとの組み合わせで一定の効果はありそうなため、次のバージョンで実装する予定です。
パスワードをあきらめてSSHのような公開鍵や電子証明書を利用する方法は、どうでしょう?
セキュリティを重視するのであれば、ハードウェアは必須ですが、iCanalのmyuTokenのICカードエミュレータでも多少、役立つように思います。
FFFTPの開発についていえば、SiMyuCardというICカードシミュレータが利用でき、myuTokenもSiMyuCardも無料で使えるので ネットワーク上のいろいろな人にデバッグを手伝ってもらうのにも便利だと思います。
ICカードのAPIは、PKCS#11なので多少、とっつきが悪いかもしれませんが、そのあたりであれば、お手伝いできそうな気がします。
PKCS#11が困難であれば、WindowsのCrypto APIを使う方法でもかまわないと思います。そのあたりも、お手伝いできそうな気がします。
canal への返信
パスワードをあきらめてSSHのような公開鍵や電子証明書を利用する方法は、どうでしょう?
セキュリティを重視するのであれば、ハードウェアは必須ですが、iCanalのmyuTokenのICカードエミュレータでも多少、役立つように思います。
FFFTPの開発についていえば、SiMyuCardというICカードシミュレータが利用でき、myuTokenもSiMyuCardも無料で使えるので ネットワーク上のいろいろな人にデバッグを手伝ってもらうのにも便利だと思います。
ICカードのAPIは、PKCS#11なので多少、とっつきが悪いかもしれませんが、そのあたりであれば、お手伝いできそうな気がします。
PKCS#11が困難であれば、WindowsのCrypto APIを使う方法でもかまわないと思います。そのあたりも、お手伝いできそうな気がします。
ICカードなどの鍵だったとしても鍵を挿入したまま席を離れた場合は無意味です。席を離れない、席を離れるときは必ずWindowsをロックするなど、各自の運用で対策してください。
s_kawamoto への返信
canal への返信
パスワードをあきらめてSSHのような公開鍵や電子証明書を利用する方法は、どうでしょう?
セキュリティを重視するのであれば、ハードウェアは必須ですが、iCanalのmyuTokenのICカードエミュレータでも多少、役立つように思います。
FFFTPの開発についていえば、SiMyuCardというICカードシミュレータが利用でき、myuTokenもSiMyuCardも無料で使えるので ネットワーク上のいろいろな人にデバッグを手伝ってもらうのにも便利だと思います。
ICカードのAPIは、PKCS#11なので多少、とっつきが悪いかもしれませんが、そのあたりであれば、お手伝いできそうな気がします。
PKCS#11が困難であれば、WindowsのCrypto APIを使う方法でもかまわないと思います。そのあたりも、お手伝いできそうな気がします。ICカードなどの鍵だったとしても鍵を挿入したまま席を離れた場合は無意味です。席を離れない、席を離れるときは必ずWindowsをロックするなど、各自の運用で対策してください。
ICカードは、FTP接続の開始の時だけ挿入すればよく、席を離れるときは、たとえアップロード中であってもICカードを引き抜くことができるので便利ですよ。
とりあえずマスターパスワードを変更する前に現在のマスターパスワードの入力を求めるように変更しました。 http://git.sourceforge.jp/view?p=ffftp/ffftp.git;a=commit;h=4ba73d7cc7a7ac164a08b47a2be7d2cb3c7b890a
CygwinのscpコマンドがPKCS#11に対応していることを確認しました。
http://www.icf.jpn.org/web/scp_pkcs11.html
このOpenSSH 5.9p1のソースを使えば、FFFTPがPKCS#11に対応できたりするのでしょうか?
マスターパスワードに頼らず、セキュリティを強化できるように思うのですが。
マスターパスワード導入の経緯である非対話的にレジストリからパスワードを抜かれる脅威は防げているのですが、マスターパスワード入力後のFFFTP画面を操作できると、以下の手順でマスターパスワードの保護を容易に回避できてしまいます。もっとセキュリティを強化できませんでしょうか。
1. (前提:Aliceさんがマスターパスワードを入力した後の画面である)
2. Bobはレジストリをfooに書き出す
3. Bobはマスターパスワードを既知のものに変更する(もちろんリターン2回でもOK)
4. Bobはレジストリをbarに書き出す
5. Bobはレジストリfooを読み込み(これで元のAliceの使っていたマスターパスワードに戻る)、FFFTPを終了させる。
Bobはbarを持ち出せば各サーバアクセスのパスワードを知ることが出来ます。Bobが作成されたファイルを消して、FFFTPが終了してしまっている言い訳ができれば、Aliceさんはこの行為に気づかない可能性が高いです。