パスワード保護ツールの概要
Excel、WordのVBAプロジェクトを悪意あるユーザーや解析ツールから保護するためのツールです。
また、パスワードが万が一漏洩した場合にも、パスワードを確認するダイアログが表示されなくなるため、事実上の被害は発生しません。実際、既存のパスワードは無意味となりますので漏洩しても全く影響ありません。
既にご購入頂いているユーザーの方々には下記ダウンロード専用ページにて無償ダウンロードしていただけます。
http://passmaster.fujigoma.com/download/passlocker/download.htm
このように、最新版を何時でも、何処でも、何度でもダウンロードできる点もポイントの一つです。
プログラムはレンタルサーバー上のASP+SQLの環境で作成したダウンロード専用ASPにて運用しています。
試用版もご用意しております(ZIPバージョン)。使用感や動作確認を行いたい方はどうぞ。
実際にロックは掛けられませんが、ロックが可能かどうかを表示する機能があります。
また、ロック済みのファイルが同梱されておりますので、実際にロックされたファイルを開いてみることが出来ます。
VBAのパスワードとは
VBAとはVisualBasic for Applicationの略ですが、簡単に言えばMicrosoft Office製品のマクロや、ユーザー組み込みのプログラムのことを言います。単純に文章を書いたり、表計算をしたりする分には意識しませんが、ちょっと込み入った処理をさせたり、ボタンを貼り付けて操作性を挙げたりする場合に利用します。
これが実際のVBAエディタ画面です。
右側にプログラムが見えますが、このプログラムがVBAです。
マクロについても、プログラムとして記録されるようになっており、プログラムはかなり複雑なことまで記述できるため色々なことをVBAで実現できるようになります。
折角作ったプログラムも、 第三者に見られると次のように色々と不便が生じます。
- プログラムが改ざんされて、正常に動作しなくなる。
- 成果物としての価値が無くなる。
- 重要なコード(ID、Password、レジストロジックなど)が漏洩する。
- 不正に複製再利用される。
など、枚挙にいとまがありません。
これらは、一般的なプログラムと同じ概念です。
そのため、VBAには最初から上のようなプロジェクトにパスワードを掛けることが出来るようになっています。
ところが、解析ツールを使うことで簡単に解除できてしまう非常に脆弱なプロテクトであることはあまり知られていないようです。
人はなんとかして解除しようという意思が働く反面、なんとしても解除させまいとはあまり発想しないようです(予め用意されたプロテクトが安全であると考えてしまう)。
本当に重要なVBAプログラムであったり、商品であったりするのであれば、やはりソースコードの隠蔽は非常に基本的で重要な命題となります。少しでも堅牢にすべきと考えて、作者自身がVBAを含むファイルを公開するに当たってリバースエンジニアリングと情報収集によって開発したのがロックマスター(LockMaster)です。
保護するとは?
前述の通り、標準のVBAプロテクトはなんとも脆弱です。
保護ツールを使うと大きく3つのメリットを得ることが出来ます。
- パスワードの入力を許さない
- パスワードを無効化する
- 解析ツールを無効化する
という3つです。
但し、脆弱である理由についてもう少し掘り下げると次のような特徴があります。
- ソースコードが暗号化されていない場合がある
- パスワードが単純なハッシュ関数で生成されている
ここで、2番目の脆弱性についてはかなり堅牢になるのですが、1番目の脆弱性については基本的に打つ手がありません。
そのため、解析ツールの能力によってはパスワードに対する堅牢性を回避出来てしまう可能性があることをご了承下さい。
パスワードの入力を許さない
通常、VBAエディタを起動するとVBAパスワードの入力を促されます。

VBAパスワードを利用したことがある方であれば、このようなダイアログに見覚えがあると思います。
しかし、保護ツールを使った場合には入力ダイアログではなくて、警告ダイアログが表示されるようになります。

パスワード入力ダイアログが表示されると言うことは、パスワードが漏洩した場合には100%解除されてしまいますし、ユーザーとしては何か文字を入れてみたくなるかも知れません。
少なくとも、パスワードを入力されて解除されてしまう可能性は0%ではありません。
しかし、プロジェクトがロックされている旨の警告ダイアログが表示されるようになれば、パスワードを例え知っていたとしても入力することも出来ず、結果的にVBAの中身を知ることは出来ません。
パスワードを無効化する
保護ツールを使った時点で、実は既存のパスワード情報はファイルから消失して無くなってしまいます。
パスワードを入力するダイアログが表示されなくなるばかりでなく、パスワード自体がなくなるのです。
既存のパスワードを知られたとしても、それを使ってなんとかVBAのプロテクトを外そうという試みは無意味になります。
更に、パスワードを解析されて同じパスワードを使って暗号化した他のファイルも被害に遭うといった事態を避けることが出来ます。
解析ツールを無効化する
当方でリリースしている解析ツールを初めとして、世の中には少なからずVBAパスワードを解除するためのツールが存在しています。これらのツールから解析、解除されることを防ぎます。
既に、当方のツール、その他幾つかのツールにて解除不能であることを確認しています。
ただし、VBAプログラム自体はファイルの中に埋め込まれているため、いかなるツールに対しても完全に隠蔽するということは事実上不可能です。解析手法などによっては、保護ツールでプロテクトしてVBAパスワードを解除してしまうツールも存在するかも知れないことはご了承下さい。これを更に強力に保護しようとした場合、外部DLL化が有効です。
外部DLL化については、別途ご紹介いたします。
※ ご利用上の注意
ご利用に当たっては以下の点にご注意ください。
- パスワードは複製されたファイルに施されますが、元もファイルは編集するために大切に保存してください。
- 堅牢性を100%保証するものではありません。ツールや方法によっては解除される可能性はあります。
- Office97以前の環境には対応していません。保護したファイルの配布先にOffice97以前の環境がある場合には利用できませんのでご注意下さい。
ご購入・ご利用について
ご購入に際しては次の方法から選択いただけます。
雑誌掲載履歴
2005/10 ウィンドウズROM 10月号に掲載されました。
FAQ
1.別ツールの「パスワード解析ツール」でも解析できなくなりますか?
- はい。当方でリリースしている解析ツールでも、パスワードは解除できなくなります。
2.どのような仕組みで保護しているのですか?
- 堅牢性保持のため、ご購入者様であってもメカニズムを詳細に説明することは出来ません。
簡単に言えば、内部的な保護機構の特性を一部超過して利用することにより、パスワード入力や外部ツールからの解析を排除するようになっています。
3.保護されたパスワードを元に戻すことは出来ますか?
- 当初掛けられていたパスワードは保護した段階で消滅しますので、保護されたファイルからパスワードを復活することは出来ません。
|