こんにちは、阿久津です。早いもので2013年もこれが最後となります。今年を振り返ると、CIA(中央情報局)およびNSA(国家安全保障局)の局員だったEdward Snowden氏のリーク情報が大きな話題を呼びました。特にNSAの通信監視プログラムPRISMがGoogleやYahoo、Facebookなど大手Webサービスの情報を極秘に収集していた、と夏に報じられたのは記憶に強く残っていることでしょう。

そして秋にはNIST(米国立標準技術研究所)が、RSA暗号化で利用する乱数生成アルゴリズム「Dual_EC_DRBG」にバックドアが仕掛けられている可能性があるため、同ライブラリを使わないように勧告しています。国内ではあまり話題にならなかったこの件に関して、先頃驚くべきニュースが報じられました。

米ロイターの記事「Exclusive: Secret contract tied NSA and security industry pioneer」によれば、IT系ソフトウェアやストレージ製造など行う米EMCのRSA事業本部が、NSAから1千万ドルを受け取り、バックドアのある乱数生成アルゴリズムを採用していたそうです。

そもそもRSA事業本部は2006年にEMCから買収を受ける前は、インターネット上の認証サービスを展開するVerisignを内包したRSA Data Securityという企業でした。1995年に分社化でVerisignが独立しましたが、RSAは他社の買収を受け、最終的にはEMCの一部門となります。

NSAおよびEMCは米ロイターの記事に対するコメントを控えているため、真偽のほどは不明です。しかし、Snowden氏の情報リークから始まった一連の流れを踏まえれば、故意か否かは別にしてバックドアが存在すると疑いの目を向けられても仕方がないでしょう。

RSAに限らず、以前からバックドアに関する噂はOSやアプリケーションなど、さまざまなソフトウェアに付いて回ったものです。今回の一件はソースコードを開示しない"クローズドソース"ソフトウェアに対する不信感を増し、残念な結果となりました。

さて、Windows OSでは、サインアウト(ログアウト)やシャットダウン時にアプリケーションが「応答なし」となった場合、一定時間待機してからプロセスを強制終了する文字列値「WaitToKillAppTimeout」が参照されてきました。調べてみると、Windows 2000の時代から使われています(図01)。

図01 編集中のファイルが保存されていない場合や、プロセスが応答しない場合、再起動を妨げる画面が現れます

ただし、Windows 8.1で確認したところ、サインアウトや再起動時は図01の確認をうながす画面が現れますが、編集中のファイルが未保存だった場合にそのまま放置すると、1分後にスタート画面に戻る仕組みになりました。今週は同エントリを使い、「応答なし」となったアプリケーションが妨げるサインアウト/再起動の待機時間を変更するチューニングをお送りします。

1. 管理者権限でレジストリエディターを起動します。
2. HKEY_CURRENT_USER\Control Panel\Desktopキーを開きます。
3. 文字列値「AutoEndTasks」を作成し、データを「1」に変更します。
4. 文字列値「WaitToKillAppTimeout」を作成し、データを「5000」に変更します。
5. レジストリエディターを終了し、Windows 8.1に再サインインします。

これでチューニングが完了しました(図02~11)。

図02 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図03 レジストリエディターが起動したら、HKEY_CURRENT_USER\Control Panel\Desktopまで、キーをたどって開きます

図04 右ペインの何もないところを右クリックし、メニューから<新規>→<文字列値>とクリックします

図05 「新しい値 #1」を「AutoEndTasks」に変更します

図06 文字列値「AutoEndTasks」をダブルクリックし、データを「1」に変更して<OK>ボタンをクリックします

図07 再び右ペインの何もないところを右クリックし、メニューから<新規>→<文字列値>とクリックします

図08 「新しい値 #1」を「WaitToKillAppTimeout」に変更します

図09 文字列値「WaitToKillAppTimeout」をダブルクリックし、データを「5000」に変更して<OK>ボタンをクリックします

図10 <×>ボタンをクリックして、レジストリエディターを終了させます

図11 スタート画面のユーザーアイコンをクリックし、メニューから<サインアウト>をクリックします

早速結果を確認してみましょう。同じように編集中のファイルが未保存の状態や、プロセスが正常終了しない場合、5000ミリ秒(5秒)の待機を経てからコンピューターの再起動やサインアウトが実行されました。ただし、未保存のファイルを編集中のアプリケーションがある場合も強制的にサインアウト/再起動が実行されます。注意してください。なお、こちらのエントリが存在しない場合、初期値は「20000(20秒)」となります(図12)。

図12 チューニング後は待機画面は現れず、サインアウトや再起動が実行されます

また、本チューニングを現在のユーザーだけでなく、新規ユーザーにも適用する場合は、HKEY_USERS.DEFAULT\Control Panel\Desktopに文字列値「AutoEndTasks」および「WaitToKillServiceTimeout」を作成してください。ちなみに同種のエントリとして、サービスに対して同じ動作を行う文字列値「WaitToKillServiceTimeout」が、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Controlキーに用意されていますが、こちらの初期値は「5000(5秒)」ですので、変更する必要はないでしょう。

なお、本チューニングの結果を無効にする場合は、文字列値「AutoEndTasks」および「WaitToKillServiceTimeout」を削除してください。

それでは、また次号でお目にかかりましょう。

阿久津良和(Cactus