スタンドアロンシステムのパスワード制御について
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