「.rnd」ファイルをWindowsのCドライブのルートに作成した張本人は、オープンソースの暗号化ライブラリおよびユーティリティーである「OpenSSL」です。OpenSSLは、さまざまなオープンソースソフトウェア(OSS)やソフトウェア製品に同梱されて提供され、暗号化のための鍵生成に利用されています。とあるヴイエムウェア製品もその1つというわけです。
OpenSSLを同梱しているWindows向けのソフトウェアとしては、例えば「Git for Windows」があります。
マイクロソフトのツール集「Windows Sysinternals」の「Process Monitor(Procmon)」を使用して、「openssl」コマンドの操作中のファイル操作イベントをキャプチャーしてみました(画面2)。Windowsのコマンドプロンプトからopensslコマンドを実行してRSA鍵を生成すると、「.rnd」ファイルを探して、存在しない場合は作成する様子を確認できます(画面3)。
「.rnd」ファイルが既定の検索場所に存在しない場合、一般ユーザーの権限でopensslコマンドを実行すると、ユーザープロファイル(%USERPROFILE%)ディレクトリに「.rnd」ファイルが作成されます。一方、管理者権限に昇格したコマンドプロンプトから実行すると、Cドライブのルートに「.rnd」ファイルが作成されました。
Windows 10 Anniversary Update(バージョン1607)からは、UbuntuのBashシェル環境をネイティブに動かすことができる「Bash on Ubuntu on Windows」が提供されました。このBashシェル環境では、opensslを標準で利用できます。Bash on Ubuntu on Windowsで実行した場合は、Bashシェル環境の「$HOME」のパスに「.rnd」ファイルが作成されました(画面4)。
OpenSSLで鍵を生成するには、乱数(ランダム)データを渡す必要があります。乱数データは「openssl rand」コマンドで生成してファイルに出力することができ、作成したファイルはopensslの「-rand」パラメーターで渡すことができます。
「-rand」パラメーターを省略した場合、既定の場所を検索し、存在しなければ「.rnd」ファイルを自動的に作成するようになっています。そして、「.rnd」ファイルの検索および作成される場所は、UNIXやLinuxの場合は常に「$HOME」ですが、Windowsの場合は「%HOME%(既定では存在しない変数)」「%USERPROFILE%」「%SYSTEMROOT%」「C:\」の順番という仕様になっています。
Copyright © ITmedia, Inc. All Rights Reserved.