仕事で必要になったので、クラックされにくいライセンスキー生成方式を考えました。

クラック方法を思いついた人は教えてください。

【前提】
・NICを複数マシンで使いまわして、MACアドレスを誤魔化されるのは無視
・バイナリ改ざん、メモリ直接書換などは防ぎ様が無さそうなので無視(ただし、バイナリエディタ等で、中を見られるだけなら安全にはしたい)

【ライセンスキー生成・確認手順】
1.アプリケーションインストール対象マシンの、MACアドレスを送信してもらう
2.ライセンス情報を、MACアドレスから生成したキーで暗号化
3.ライセンス情報(暗号化前)と、2で生成したキーのハッシュ値から、電子署名を作成
4.2の暗号化文字列と、3の電子署名を連結したものを、ライセンスキーとしてユーザへ送る
5.アプリケーションは、ライセンスキーを読み込んだ後、動作マシンのMACアドレスから動的にキーを生成して復号する
6.電子署名の公開鍵を使用して、ライセンス情報が改ざんされてないことを確認(公開鍵はバイナリへ埋め込んでおく)

他にも、業界標準のライセンスキー生成方式や、ライセンスキー生成用のライブラリ(当方VB.NETです)とかも、教えてください。

回答の条件
  • 1人2回まで
  • 登録:2007/04/03 00:28:17
  • 終了:2007/04/10 00:30:03

回答(1件)

id:felix33 No.1

felix33回答回数343ベストアンサー獲得回数22007/04/05 19:04:03

ポイント60pt

MACアドレスを偽装する

id:sabro

コメントでも指摘いただいた通りですね。

MACアドレス部分は、何らかの変更されにくい情報を使うと、読み替えてくださるようお願いします

2007/04/06 00:13:47
  • id:kurukuru-neko
    前提を覆さす事になるのでコメントに
    書きます。

    >MACアドレスを誤魔化されるのは無視
    >MACアドレスを送信してもらう
     
    クラックする人がいるなら容赦なく
    MACアドレスを変更・偽装しますね。
    ドライバーが対応していれば誰でも簡単に
    変更も可能だし、難易度は低い。

    MACアドレスを偽装させるような
    プログラムでの開発される可能性もあり。
    企業によっては、MACアドレスを変更して
    利用していることもあります。

    ユーザーからMACアドレスを教えて
    もらうのではなく
    MACアドレス
    プロダクトID(キーやGUID等の
    複数の情報から生成したキーを
    プログラムで生成(当然暗号化して)
    TEL/FAX/WEB等で登録する
    位の対策は必要ではと思います。

    http://ja.wikipedia.org/wiki/Windows_Genuine_Advantage
  • id:b-wind
    MACアドレスはそれほど信頼できるものでは無いですよ。
    http://www.atmarkit.co.jp/fwin2k/win2ktips/356macaddr/macaddr.html
    安いLANカードをいくつか買ってきたら全部一緒のMACアドレスだったなんて話もありますし。
  • id:sabro
    御指摘ありがとうございます。前提が微妙だったようですね。
    今後の回答では、MACアドレス部分を、何らかの変更されにくい情報を使うと、読み替えてくださるようお願いします。
  • id:todo36
    http://www.atmarkit.co.jp/fdotnet/tools/dotfuscator/dotfuscator_01.html

    リバースコンパイル対策は考えているのでしょうか?
  • id:sabro
    >> todo36さん

    少なくとも、リバースコンパイルして、コードを読まれただけでは、ライセンスキーの捏造は、出来ないようになっています。ライセンスキーの電子署名を作成するには、秘密鍵が必要ですが、アプリケーションには公開鍵の情報しか埋め込まれていないからです。

    ただ、前提で書いたように、リバースコンパイル後のコードを、改ざん→コンパイルされ、ライセンスキーチェックのロジックを、迂回されれば、クラックされてしまうと考えております。

    改ざんへの対策は、基本的にないものと考えていますが、todo36さんの指定されているサイトに書いてある難読化をすれば、少しは対策になるようですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません