2014年3月14日金曜日

Puppy Linux Precise-5.7.1 で KeePassX が動作不良

Puppy Linux Precise-5.7.1 の導入時から気になっていたのですが、パスワード・マネージャの KeePassX で自動入力を行うと特定のウェブサイトでログインに失敗してしまうことがありました。ユーザー名とパスワードをそれぞれメニューにあるコピーボタンを使って、コピー&ペースト(以下コピペ)を行うと正常にログインできます。

同じバージョンの 0.4.3 をインストールしてある Puppy Linux Precise-5.5.0 や Puppy Linux Lucid-5.2.8 においては、自動入力で問題なくログインができます。もちろん同じマシン上での話ですし、他のマシンでも同様の症状が発生します。

そこで原因を探してみました。

とりあえずブラウザ(Firefox)ではなく、テキストエディタの上に KeePassX から自動入力をさせてみました。 するとどうでしょう。自動入力させた文字のうち、英数字は問題ありませんが、記号文字は入力されなかったり、文字化けをするようになっていることに気づきました。

ユーザー名にメールアドレスを使用するウェブサイトの場合、メールアドレスの途中にあるアットマーク「@」が「[」に文字化けしてしまうのです。その他、「_」が消失したりします。特に私の場合には、パスワードは KeePasX に備わっているパスワード・ジェネレータを使って、可能なかぎり記号も含めた乱数を設定するようにしています。そのためパスワード部分も文字化けや文字の消失が発生しているようです。 そのためウェブサイトのログインに失敗しているようです。

KeePassX の自動入力と手動でコピペ入力するのでは動作が異なっているようです。手動でコピペするときには、いわゆるシステムのコピペ機能を使って一気に文字を流し込んでいるようです。このコピペ機能を使用するときには問題ありません。

しかし自動入力のときには、ユーザー名やパスワードを一文字ずつタイプするように入力を行うようです。KeePassX の設定画面で、「詳細設定」の「自動入力の微調整」の項目で「キーストロークの遅延」が初期値 5 ミリ秒であったものを 100 ミリ秒などとぐっと遅くすると、文字入力が一文字ずつゆっくりと入力して行くのが目視できます。しかしゆっくりタイピングする状態にしても、記号文字の時にだけ文字化けや消失が発生するようです。

何かシステムのキーボードからの入力処理に割り込む部分に問題があるのでしょうか?

もしかして日本語キーボードと英語キーボードで違いがあるのか確認してみました。
すると英語キーボード(us)ではちゃんと自動入力ができました。しかし、その後再び日本語キーボード(jp106)へ戻しても正常に自動入力が行われます。どうやらこのキーボード処理へのデータの受け渡しのあたりに問題がありそうです。
(注:メニュー>セットアップ>QuickSetup パピーの初期設定でキーボードを設定し直しました。)

現在のところ、これ以上の対応は私には不可能のようです。Puppy Linux Precise-5.7.1 の時にだけ、正常に動作する「手動でコピペ」で対応したいと思います。

2014-03-17 追記
英語キーボード(us)の設定にしておくと、システムの再起動に係わらず 自動入力は正常に行われるようです。我が家には英語キーボードを取り付けてあるデスクトップ・パソコンがありますが、このパソコンでは快調に使用できています。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。