スタンドアロンシステムのパスワード制御について


VB.NETスタンドアロンシステムで、コピーしての使用防止のため、初回起動時にパスワード入力を求める機能が必要になりました。
パスワードは固定の1種類とします。
正しいパスワード入力時のみ、メイン画面を起動します。また2回目以降の起動時は入力不要とします。
サーバ利用のライセンス認証などではないため、簡易的なものになりますが、以下のように実装しました。

【初回起動時】
(1)
パスワードはあらかじめ暗号化(方法は任意)し、その値をPG内の定数に保持します。
平文パスワードのハードコーディングは行いません。
(2)
初回起動時はパスワード入力ダイアログを表示します。
(3)
入力パスワードを(1)と同じ方法で暗号化、それを(1)の定数と比較します。
(4)
一致の場合、メイン画面を起動します。
(5)
同時に、入力パスワードを(1)とは別の方法で暗号化し、レジストリに書き込みます。
具体的には、Salt値(※)の一部に、稼働環境固有の値(PC名やログインユーザ名等)を使用するようにします。
(※暗号化の際に付与する文字列データ)
これにより、同じパスワードでも、暗号化した値が稼働環境により変わります。
レジストリ登録値を覗き見る人への対策としています。


【2回目以降の起動時】
(6)
まずレジストリ保持の暗号化パスワードを読み込みます。
(7)
読込パスワードを復号化します。
(8)
(7)を(1)と同様の方法で暗号化、それを(1)の定数と比較します。
(9)
一致の場合、メイン画面を起動します。

【株式会社 エム・システム】
本      社  :〒124-0023 東京都葛飾東新小岩8-5-5 5F
           TEL : 03-5671-2360 / FAX : 03-5671-2361
盛岡事業所  :〒020-0022 岩手県盛岡市大通3-2-8 3F
           TEL : 019-656-1530 / FAX : 019-656-1531
E-mail    : info@msystm.co.jp 
URL     : http://msystm.co.jp/
        : http://msystm.co.jp/excel_top.html
ブログ       : http://d.hatena.ne.jp/msystem/ 
Facebook   : http://www.facebook.com/msysteminc