C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[21]: PCの世界唯一の識別ID [1]


(過去ログ 107 を表示中)

[トピック内 36 記事 (21 - 36 表示)]  << 0 | 1 >>

■64073 / inTopicNo.21)  Re[15]: PCの世界唯一の識別ID
  
□投稿者/ まくん (6回)-(2012/11/07(Wed) 09:04:04)
皆さんお世話になります。

みきぬ様書かれました
> 利用する側の立場としては、そんな面倒なことを要求するソフトはなるべく使いたくないです

ヴァン 様書かれました
> 例えば1企業に100ライセンスになるとあの方法だと結構大変でしょう。

とっちゃん様書かれました
> なぜコストをかけてまで複製防止の必要性があるのでしょう?


私の案に確かに面倒なところがあると思いますが、
ドングルの場合面倒な事はないでしょうか。
少なくとも何か組織に加入とか第三者からUSBIDを取得しなければならないでは?

引用返信 編集キー/
■64074 / inTopicNo.22)  Re[14]: PCの世界唯一の識別ID
□投稿者/ まくん (9回)-(2012/11/07(Wed) 09:07:50)
皆さんお世話になります。

私の案に確かに面倒なところがあると思いますが、
ドングルの場合面倒な事はないでしょうか。
少なくとも何か組織に加入とか第三者からUSBIDを取得しなければならないでは?

引用返信 編集キー/
■64075 / inTopicNo.23)  Re[16]: PCの世界唯一の識別ID
□投稿者/ ヴァン (7回)-(2012/11/07(Wed) 09:25:38)
No64073 (まくん さん) に返信
> 私の案に確かに面倒なところがあると思いますが、
> ドングルの場合面倒な事はないでしょうか。
> 少なくとも何か組織に加入とか第三者からUSBIDを取得しなければならないでは?

ソフトを配布する側は大変だと思いますよ。
でも、これ位の事考えているわけですから、お値段はかなりの額と思われます。
なので配布側の手間は仕方がないかなと。

でも、ユーザー側にしてみれば面倒なことは避けたいですよね。
ドングルだとそれを付ければOKですから、楽と言えば楽ですよね。
(ドングルが良いという話ではありませんが)

個人的にはボリュームライセンスというか、そんな感じで良いとは思いますが。

引用返信 編集キー/
■64076 / inTopicNo.24)  Re[15]: PCの世界唯一の識別ID
□投稿者/ みきぬ (11回)-(2012/11/07(Wed) 09:28:58)
No64074 (まくん さん) に返信
> 皆さんお世話になります。
>
> 私の案に確かに面倒なところがあると思いますが、
> ドングルの場合面倒な事はないでしょうか。
> 少なくとも何か組織に加入とか第三者からUSBIDを取得しなければならないでは?
>

その面倒さは、ドングルを使わせる側(=アプリを提供する側)にかかるものです。
# ドングルのことよく知らないので、違ってたらスマソ
一般の人に使ってもらうのであれば、提供者側が苦労しても利用者側が楽になる方法のほうがよいと、私は思います。

利用者が限られるのなら、費用とか期間とか諸々考慮して、互いに納得できる方法なら何でもよいと思います。
ただ利用者側の立場から言えば、要件に関係ないことで費用がかかるような方法は受け入れにくいのではないかと。
その意味で、機能やデバイスでなく契約で縛るのも有効でしょう。

利用者が限られる場合でも、もし事前に利用者側の同意を得ずにやるなら
やっぱり利用者側になるべく意識させない方法のほうが、いいんじゃないかと思います。

引用返信 編集キー/
■64081 / inTopicNo.25)  Re[15]: PCの世界唯一の識別ID
□投稿者/ とっちゃん (14回)-(2012/11/07(Wed) 11:14:22)
とっちゃん さんの Web サイト
No64074 (まくん さん) に返信

> 私の案に確かに面倒なところがあると思いますが、
> ドングルの場合面倒な事はないでしょうか。
> 少なくとも何か組織に加入とか第三者からUSBIDを取得しなければならないでは?
>
何を持って面倒とするかにもよりますが。。。

基本的には、ドングル提供会社からもらうチェックコードを呼び出して必要があれば、起動をブロックするだけです。
仕事で使ったことはありますけど、開発面で面倒な部分はありませんでしたよ。

詳しいことはドングル提供会社に聞いてみてください。単価の問題とかもありますし。

引用返信 編集キー/
■64091 / inTopicNo.26)  Re[17]: PCの世界唯一の識別ID
□投稿者/ 774RR (19回)-(2012/11/07(Wed) 12:35:04)
B2B なら「契約」で縛るべきであろう、に1票。
くだらんプロテクトは廃止。サポートコストのコストダウンをしよう。

そのへんすべて承知の上で、あえて技術論だけ語るとして:
ドングル会社のライブラリを使わずに USB メモリをドングルにするコードを
俺が全部自分で書くとしたら (考察抜けとかいろいろありそうだ)

パターン1
USB メモリを まくん 氏(なり関係者)が買う(その辺のお店で売ってるものでいい)
その USB メモリに自作ソフトのインストーラとライセンスファイルを入れておく。
お客様には USB メモリごとソフト(のライセンス)を買ってもらう。

ライセンスファイルには、その USB メモリの VID/PID/SN を調査して、
暗号化して記憶させとく。この作業は まくん 氏(の関係者以下略)が行う。
当然 USB メモリ1本1本でライセンスファイルの内容が異なる。

パターン2
ソフトはダウンロードしてもらってもいいし CD-R で提供してもいい。
お客様には以下の2つを買ってもらう。
・ソフトウエアのライセンス
・任意の USB メモリ(その辺のお店で売ってるものでいい)
ソフトにはライセンスツールを同梱しておき、そのライセンスツールでパターン1と同じことを
する。すなわち、その USB メモリの VID/PID/SN を調査し暗号化したものを
お客様→まくん氏にメールしてもらうなり WebForm に入力してもらうなり自動送信するなり。
折り返し、まくん氏→お客様にライセンスファイルを返却する。
※当然、買っていただいたライセンス数を超えて発行しない。

インストール後、そのソフトが起動する際には
インストール時に一緒にコピーしたライセンスファイルに書いてある VID/PID/SN の
USB メモリが接続されているかどうかチェックする(接続されていないとエラー終了)
実行中にも WM_DEVICECHANGE のタイミングでチェック。
(いきなし終了するのはいろいろまずそうなので「保存」以外は選べなくするとか)

紛失等まで考えるとライセンスファイルには「無効な VID/PID/SN セット」が入れられる
ようにしておくといい。

自分で USB.org に参加する必要も年会費払う必要も無い。

ちなみに「第三者から USBID 購入」は明確に禁じられてしまったので
本当に個人が趣味のハードウエア自作で USB 機器を作るのは困難になってしまった。
引用返信 編集キー/
■64092 / inTopicNo.27)  Re[18]: PCの世界唯一の識別ID
□投稿者/ howling (49回)-(2012/11/07(Wed) 12:46:37)
ちなみに、ドングル使用は入っているアプリを有効化するだけでなく、
無効化する機能も必要です。

なんでかというと、
「PC移行するので以前のライセンスから移行したいのですが」
ってことがあるからですね。
もちろん、ドングルを一旦返却頂いて、更新するのもアリですが…、
そのドングルが刺さっているPCだけ動作するように最初からなっている方が良いです。
上記の問題にはぶち当たらないので。

で、これがうまいこといかないことがあることを考えると、サポートもめんどくさいです。
だからドングルを作るっていうのが仕事になるわけですね。
本来お金がかかるところを自分でやるっていうのは難しい。

まぁ、当たり前ですけどね。そんなに甘くない。
引用返信 編集キー/
■64094 / inTopicNo.28)  Re[19]: PCの世界唯一の識別ID
□投稿者/ 魔界の仮面弁士 (79回)-(2012/11/07(Wed) 14:08:46)
No64092 (howling さん) に返信
> 本来お金がかかるところを自分でやるっていうのは難しい。
> まぁ、当たり前ですけどね。そんなに甘くない。

結局のところ、USB の「VID/PID/SN セット」を使おうと、
CPU のシリアル、HDD のシリアル、マザーボードのシリアル等を使おうと、
MAC アドレス、3G回線の電話番号、自前生成の秘密鍵などを使おうと、
同じ話になってくる気がしています。。


個人が趣味の範疇で独自のプロテクト手法を実装したいという話なら別ですが、
仕事で作るとなると、現状の様に掲示板で人に聞ききながら自前実装したものでは、
どこかしらで綻びが出てしまうと予想しています。この手の開発が未経験ならなおさら。


なので、無理にハードウェアから取得生成したIDに拘らず、

(案1)ライセンス形態を見直し、コピープロテクトを実装しない運用とする。

(案2)サードパーティ製のプロテクト製品(HASP、UNIKEY、ドングルマスター等)を導入する。
 http://www.vector.co.jp/soft/winnt/util/se479509.html
 http://www.aladdin.co.jp/hasp/
 http://www.esecutech.com/ja/ソフトウエア保護/ユニキー-比較表.html

などで対応する道を模索した方が無難かと思います。

独自実装で、ユーザー別あるいはPC別にライセンスを発行する形態で
作ることもできますが、その場合は調査・実装工数だけでなく、
事後のサポート費用もかさんできますしね。


なお、個別にライセンスキーを作る場合、そのシードを
どこから取ってくるかが肝になりますが、自分の所だと、
 ・個人別IC カード(PASMO、Edy等)の IDm PMm をキー代わりに使う。
  (PC 側に Felica リーダーが必要)
 ・静脈(あるいは指紋)情報を用いて認証する。
  (PC 側に指静脈リーダーあるいはデジカメ+画像解析ソフトが必要)
 ・自社でキーを作り、公開鍵をユーザーに渡して、鍵が合致するかどうかを検証する。
  (ライセンスファイルをどのように渡すか、照合をクライアントで行うかサーバーで行うかは別途考慮)
 ・CPU や HDD 等から得たシリアルを複数組み合わせてキーとする。
  (ハードウェアが交換された場合の実装も盛り込む)
などで運用していました。

ただ、こうした手間をかけるのは、パッケージ開発の場合や個人識別が必要なケースだけで、
大抵の場合(特に委託開発の場合)は、そうしたプロテクトは施さずに、契約で縛るだけで
済ませています。費用面などで折り合いがつかないので。



No64056 (まくん さん) に返信
>>最近の OS なら、コマンドラインの「wmic CPU get ProcessorID」で取れるかも。
> 私案として、上記コマンドラインでユーザよりProcessorIDを取得してもらって、

「wmic CPU get ProcessorID」や「wmic DISKDRIVE get SerialNumber」を
ユーザーにやらせるのは、あまりよろしくないように思います。

WMI 自体は、C#、VB.NET、VBA、C++、PowerShell、VBScript等々、
大抵の言語から利用できますので、プログラムから WMI を呼び出した方が
実装としてはスマートかと思います。
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/fb2cc500-4d0f-4bd1-a410-082622ffa9bc
引用返信 編集キー/
■64095 / inTopicNo.29)  Re[18]: PCの世界唯一の識別ID
□投稿者/ まくん (10回)-(2012/11/07(Wed) 14:23:38)
皆さん丁寧なご指導ありがとうございます。

基本は774RR様のアイディア[非常にうまい!]でやってみたいですけれども
ただ、 「ライセンスツール」は何を持って、USB メモリの VID/PID/SN を調査するのでしょうか?
そのようなAPIやらライブラリーはWINDOWSにはありますか。

「実行中にも WM_DEVICECHANGE のタイミングでチェック。」
これも素晴らしいアイディアですけれども、どんな APIを使えば良いのでしょうか?

実行環境はWINDOWS XP, VISTA に決まっております。

引用返信 編集キー/
■64096 / inTopicNo.30)  Re[19]: PCの世界唯一の識別ID
□投稿者/ 774RR (20回)-(2012/11/07(Wed) 15:14:52)
えっと、俺は開発代行業者ぢゃないのですよ。甘えすぎ。
そういうの自分で調べる能力なり時間なり、存在しないのなら自分でやるべきぢゃない。
たぶんドングル業者と契約してライブラリ使ったり、サポートしてもらったりするほうが
開発期間=人件費 が安上がりになる可能性がある、いやむしろ、可能性が高い、ですだよ。
# 事後のサポートとかも。
先の案は、前に出した「どんぐりこ」とほぼ同等であろうと推定される。
どんぐりこ特許出願中って書いてあるし、自作して特許に引っかかっても知らないよっと。

ライセンス=お金、の話の過去ログ
http://bbs.wankuma.com/index.cgi?mode=al2&namber=41999&KLOG=72

ドングル使うくらいなら「プロテクトしない」「契約縛り」が安上がりだと思うのは既出。

そこをあえて自社開発してドハマリしたいというなら止めないよ。
まあとりあえずヒントは Windows DDK (今なら WDK というのか) とか
DDK サンプルの USBView とか。
引用返信 編集キー/
■64097 / inTopicNo.31)  Re[20]: PCの世界唯一の識別ID
□投稿者/ くまくん (1回)-(2012/11/07(Wed) 15:57:22)
「契約縛り」は一番理想だと思いますけれども、
例えば、7本約束しても8本利用されても分りませんね!


引用返信 編集キー/
■64098 / inTopicNo.32)  Re[19]: PCの世界唯一の識別ID
□投稿者/ 魔界の仮面弁士 (80回)-(2012/11/07(Wed) 16:11:25)
No64095 (まくん さん) に返信
> 何を持って、USB メモリの VID/PID/SN を調査するのでしょうか?
> そのようなAPIやらライブラリーはWINDOWSにはありますか。

デバイス インスタンス パス("USB\VID_054C&PID_05B9\BB6001109130001116" など)の
形式で良ければ、先にも紹介した「WMI」で拾えます。

CIM_USBDevice の PNPDeviceID / DeviceID プロパティや、
Win32_DiskDrive の PNPDeviceID / DeviceID プロパティあたり。


ちなみに、上記のデバイス インスタンス パスは、手持ちの SONY "USM64GQ S" のもの。
文字列中の 054C という VID は、Sony Corp. を意味します。


開発言語が一切紹介されていないので、とりあえず Excel VBA あたりで書いてみた。

Public Sub Test()
  Dim w As Object
  For Each w In GetObject("winmgmts:").InstancesOf("CIM_USBDevice")
    Debug.Print w.Name; Tab(1); "=>"; w.DeviceID
  Next
End Sub

引用返信 編集キー/
■64099 / inTopicNo.33)  Re[21]: PCの世界唯一の識別ID
□投稿者/ howling (50回)-(2012/11/07(Wed) 16:12:51)
くまくんになった(笑)

んー…ここで言う7本利用っていうのはどっちの意味なんだろう。

・同じPCでしか使えない(つまり8台目からは何かしら連絡か処理が必要)
・同一時間内に使える最大数

もし後者なら、774RRさんのURLにある、使用開始と終了でサーバに通知して7ライセンスより多い場合は許可しない、
でどうにかなるんじゃ。
でもって、通知する際にMACアドレスか何か投げておけばいいんじゃないかな。

上の場合だと、ホント色々困るんじゃないかと。PC移行もそうだし、2台所持している人もそうだし、すごい大変そう。
これなら多分ドングルって感じになるんじゃないかと。



ライセンス契約だと、社内ならいくらでもどうぞって形なんじゃないかなぁ。
その代わり、年間でいくら、とか、プロジェクト1つにつきいくら、みたいな感じ。
だから、そもそも社内で配る分には問題ない。
外に出たら契約違反で賠償問題だし。
引用返信 編集キー/
■64100 / inTopicNo.34)  Re[20]: PCの世界唯一の識別ID
□投稿者/ ピポパ (1回)-(2012/11/07(Wed) 16:59:28)
っていうか、万が一、7ライセンス分の販売で8台のPCにインストールされてしまった場合、どのような弊害があるのでしょうか?
そんなに高級なアプリなのでしょうか?
このスレの内容を見る限り、特定の分野で使用する計測用アプリと見受けましたが、果たして、ライセンス違反を犯してまでユーザーがこの手のアプリが導入したいと思うかどうかは疑問です。
不特定多数を相手にするならば別ですが、おそらく特定企業間の話なのだろうと思いますので、相手を信頼してライセンス契約で済ませた方が、よい関係を築けると思うのですが。
セキュリティについての費用対効果もよく考えなければなりません。

ところで、このアプリに関して、競合他社はないのでしょうか?
引用返信 編集キー/
■64101 / inTopicNo.35)  Re[21]: PCの世界唯一の識別ID
□投稿者/ ヴァン (10回)-(2012/11/07(Wed) 17:12:31)
No64097 (くまくん さん) に返信
> 「契約縛り」は一番理想だと思いますけれども、
> 例えば、7本約束しても8本利用されても分りませんね!

確かに判りませんね。

でも、こういう場合は10ライセンスにして、ディスカウントして8掛け位の金額で契約って感じじゃないですか?
それで15PCにインストールされてもそこは目をつぶるというか...
まあ、10ライセンスを超える場合は別途契約ねって言っておくとか...
引用返信 編集キー/
■64124 / inTopicNo.36)  Re[21]: PCの世界唯一の識別ID
□投稿者/ まくん (11回)-(2012/11/08(Thu) 12:53:35)
皆さんの知恵を参考にさせていただきます。
どうもありがとうございました!
解決済み
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -