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

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

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

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


(過去ログ 107 を表示中)

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

■64037 / inTopicNo.1)  PCの世界唯一の識別ID
  
□投稿者/ まくん (1回)-(2012/11/05(Mon) 17:41:17)

分類:[Windows 全般] 

WINDOWS APIを使ってこのPCの世界唯一の識別ID(OS自身のIDではない)を取得したいですが、
可能でしょうか。
要はOSが置き換えても変わらないそのPC特有の識別情報がほしいです。
もしこのような事ができれば、そのIDは何と言うIDでしょうか。

具体的な取得方法まで教えていただければ嬉しいです。


引用返信 編集キー/
■64038 / inTopicNo.2)  Re[1]: PCの世界唯一の識別ID
□投稿者/ 774RR (15回)-(2012/11/05(Mon) 18:30:32)
では、まず「このPC」とは何かを定義するところから、だな。
OSの再インストールをしたら同一PCなのか異なるPCなのか。
クローンソフトでOSごとコピーしてハードディスクを交換したら以下略
CPU を交換したら以下略
マザボを以下略

なんとなくこんな過去ログを示したい気分
http://bbs.wankuma.com/index.cgi?mode=al2&namber=58182&KLOG=97

ま、そういうIDは無い、に1票。
引用返信 編集キー/
■64039 / inTopicNo.3)  Re[2]: PCの世界唯一の識別ID
□投稿者/ まくん (2回)-(2012/11/05(Mon) 19:03:02)
そうですか。
このPCのIDといっても、自明でないでしょうか。
そうしたら、PCにとって不可欠な同時に二つ以上のPCに利用できないハードパーツの識別番号やらコードで宜しいと思います。
例えば、
1.CPUの唯一のID[世の中に唯一な存在と仮定]
2.OSが実装されているHDのID[世の中に唯一な存在と仮定]
3.電源ボードのID[世の中に唯一な存在と仮定]

この三つのどれでもいいですけれども、、、、

引用返信 編集キー/
■64040 / inTopicNo.4)  Re[3]: PCの世界唯一の識別ID
□投稿者/ 774RR (16回)-(2012/11/05(Mon) 20:18:34)
その「固有なID」を何に使うのかわからないとねー。
そのIDを個人情報の追跡調査(プライバシー侵害のため)に使うとかだったら、
もしあっても答えたくないし、答えるべきではないだろうし。

実際 PSN (Processor Serial Number) って Pentium 3 にはあったんだけど
猛反発を食らって Pentium 4 以後は削除されちゃったし。
ハードディスクの ボリュームシリアルナンバー は任意に付け替え可能だし。
なんにせよ「存在しない」にもう1票。
引用返信 編集キー/
■64041 / inTopicNo.5)  Re[3]: PCの世界唯一の識別ID
□投稿者/ 魔界の仮面弁士 (76回)-(2012/11/05(Mon) 21:20:48)
No64039 (まくん さん) に返信
> このPCのIDといっても、自明でないでしょうか。
細かいことを言い出すと、自明にならない気も。

ターミナルサービスの場合、サーバー側のIDが必要なのか。クライアント側のIDが必要なのか。
仮想端末の場合、ゲスト機を識別するIDが必要なのか。物理ホストのIDが必要なのか。
ハードウェアがホットスワップされた場合はどうするのか。


> 1.CPUの唯一のID[世の中に唯一な存在と仮定]
CPUによって、シリアルナンバーの表記が異なるようですね。
http://www.intel.com/jp/support/processors/sb/CS-030330.htm

とりあえず、CPUID 命令について調べてみると良いかも。
http://www.wdic.org/w/SCI/cpuid%20%28x86%29

もう少しお手軽な所では、WMI の Win32_Processorクラス の ProcessorId プロパティとか。
最近の OS なら、コマンドラインの「wmic CPU get ProcessorID」で取れるかも。
物理CPUを複数搭載している場合への対応も忘れずに。


> 2.OSが実装されているHDのID[世の中に唯一な存在と仮定]
WMI の Win32_DiskDrive クラスの SerialNumber プロパティですかね。
ボリュームシリアルとは別物なので注意。

ただ、HDD を SSD に変更したり、HDD を増設したり、あるいは、
複数の PC で HDD を入れ替えたり、USB 接続の HDD が繋がれた場合なども
考慮する必要があるでしょう。


> 3.電源ボードのID[世の中に唯一な存在と仮定]
「電源ボード」が何を指しているのか分からなかったので省略。


上記以外だと、Win32_BaseBoard クラスあたりも使えるかも知れません。
引用返信 編集キー/
■64046 / inTopicNo.6)  Re[4]: PCの世界唯一の識別ID
□投稿者/ まくん (3回)-(2012/11/06(Tue) 09:41:37)
貴重なご意見ありがとうございます。

質問の目的は何ですかと言いますと、
ソフト製品を複数PCに無断複製するのを禁止するためです。
予め指定されたPCでなければソフトが動かないようにしたいです。

ですので、どうやって「そのPC」であることを判定できるかは問題になりますね。

考えてみれば、やはりそのPCが所有している肝心なハードパーツしかないでは、、、

皆さんに何かいいアイディアあれば、是非もう一度ご教授お願いします。

引用返信 編集キー/
■64047 / inTopicNo.7)  Re[5]: PCの世界唯一の識別ID
□投稿者/ 774RR (17回)-(2012/11/06(Tue) 10:40:56)
先のコメントで挙げておいた過去ログは見た?
俺個人としては、その手のプロテクトは無駄・無意味・サポートコストアップなだけと思う。
どうしてもプロテクトを掛けるだけの価値があるなら「ドングル」を採用すべし。
http://ja.wikipedia.org/wiki/%E3%83%89%E3%83%B3%E3%82%B0%E3%83%AB

UNIKEY STD 1000本ロットで3200円くらいとのこと。
http://www.a-d.co.jp/00c/co_z_news_unikey.html

「どんぐりこ」とか。
http://www.sync.co.jp/donglico/index.html

引用返信 編集キー/
■64048 / inTopicNo.8)  Re[5]: PCの世界唯一の識別ID
□投稿者/ とっちゃん (12回)-(2012/11/06(Tue) 11:16:09)
とっちゃん さんの Web サイト
No64046 (まくん さん) に返信
> 質問の目的は何ですかと言いますと、
> ソフト製品を複数PCに無断複製するのを禁止するためです。
> 予め指定されたPCでなければソフトが動かないようにしたいです。
>
> ですので、どうやって「そのPC」であることを判定できるかは問題になりますね。
>
> 考えてみれば、やはりそのPCが所有している肝心なハードパーツしかないでは、、、
>
> 皆さんに何かいいアイディアあれば、是非もう一度ご教授お願いします。
>
複製の定義が必要かと。。。
PCのソフトはデジタルデータのため、電子データそのものとしては純粋な複製が可能です。

おそらくは、開発したソフトをライセンスした以上のマシンで使わせないための方法がほしいのだと思いますが
この部分をはっきりさせないと、具体的なアドバイスは難しいと思いますよ。

ま、複製防止のよくあるパターンとしては。。。

・ドングルを使う(ドングル で検索すればいろいろ出てきます。コストに見合うかどうかはわかりませんが、検討の価値はあるでしょう)。
・ライセンスサーバーと通信する

というところでしょうか。
前者の場合、ドングルがないと動かないので、インストールの制約は行わないもののソフトの起動そのものを制限することで動作に制約をかけることができます。
ドングルをなくさない限り、マシンのリプレースなどは気にしなくていいため、長期的な寿命を持つ製品ではよく見かけるパターンの一つといえます。

ライセンスサーバーは、ボリュームディスカウントも想定した製品販売の場合に効果を発揮します。
ドングルと違い、ハードウェアの追加コストがないため(ライセンスサーバーの維持管理は必要)
製品寿命が短いもの(1年程度でバージョンアップするなど)や、不特定多数に対して販売される市販パッケージなどではよく使われる手法の一つです。
また、サブスクリプション的な製品(年間契約などを結んでその間だけ使えるものなど)もこういう形で管理することが多いですね。

引用返信 編集キー/
■64050 / inTopicNo.9)  Re[6]: PCの世界唯一の識別ID
□投稿者/ why (1回)-(2012/11/06(Tue) 13:21:01)
横取りですみませんが、
ドングルって所詮USBに暗号化したファイルを書き込んでる話で、
そういうUSBディスク自身をそのまま丸ごと複製できれば、
他のソフトを保護することもできなくなるよね、と、ちょっと不思議に思いますが。

どういう仕組みでしょうか。

引用返信 編集キー/
■64051 / inTopicNo.10)  Re[7]: PCの世界唯一の識別ID
□投稿者/ 774RR (18回)-(2012/11/06(Tue) 13:55:15)
# 横取りと思ったのなら別スレッドにすればいいのに・・・

その辺具体的にどう実装されているかはおそらく各社まちまちで NDA 対象でもあろうし、
正確なところは実際に当該ドングルを使う契約を結ばないと知りようが無いだろう。
(契約を結んでも教えてくれるとは限らない)

まあ俺がこういう製品を作るとしたら、で話を続けるとして

どんぐりこ、の解説ページ
http://www.sync.co.jp/donglico/product_explanation_a.html
を補足しておくなら

USB デバイスは USB 団体に加入しないと VID (ベンダ ID) がもらえない
(年会費が必要であり、その辺の個人やインチキ団体では維持しきれない)
VID がないと USB 製品の開発ができない。
VID と PID (プロダクト ID) とで *** 社 +++ 製品を特定することになっているうえ、
USB メモリの場合、同一製品を複数個同時に接続した場合でも混乱がないように
USB メモリメーカ側で唯一無二の シリアル番号 SN を各メモリ製品1個1個に振るものとされている。
(紹介ページのシリアルNoとはこの SN または VID+PID+SN のことであろう)

ということは USB VID+PID+SN は、今の議題で欲しいといっている唯一IDの代用になるわけだ。

単にファイルの中身をコピーしても USB VID, PID, SN まではコピーできない。
(USB メモリデバイス自体が所有しているものだから)
当該暗号化データを VID+PID+SN デバイスからしか読まないようにしておけば無問題。

> USBディスク自身をそのまま丸ごと複製できれば
リーズナブルなコストで(=ライセンス数をもうひとつ購入するより安く)そこまでできると思う?

仮想 USB デバイスとか、仮想ドライバまで作れる人・団体なら、
ライセンス数とか、その種の契約をきっちり守るであろうし、やはり問題なし。

まあ欠点もあって、この手のドングルって、お客様が紛失させてしまうと再発行が面倒だ。
引用返信 編集キー/
■64052 / inTopicNo.11)  Re[8]: PCの世界唯一の識別ID
□投稿者/ kiku (1回)-(2012/11/06(Tue) 14:48:37)
NICがあることが前提になってしまいますが
MACアドレスをキー代わりに使うっていうのはどうでしょう?
MACアドレスなら唯一であることが保証されるので。
仮想サーバなどはどうなるのかはわかりません・・・
引用返信 編集キー/
■64054 / inTopicNo.12)  Re[9]: PCの世界唯一の識別ID
□投稿者/ みきぬ (9回)-(2012/11/06(Tue) 15:21:10)
・MAC アドレスは変更可能である(PCを新調して、そのMACアドレスを元のPCと同じにすればなりすませる)
・NIC を変更すると MAC アドレスも変わる。

要件次第ですが、おそらくこのスレ的には適さないでしょう。

引用返信 編集キー/
■64055 / inTopicNo.13)  Re[9]: PCの世界唯一の識別ID
□投稿者/ 魔界の仮面弁士 (77回)-(2012/11/06(Tue) 15:34:38)
No64052 (kiku さん) に返信
> MACアドレスをキー代わりに使うっていうのはどうでしょう?

使ったことがありますが、単体で一意キーとして使うには弱いですね。
他の情報と組み合わせて使うならば、選択肢となりえるかも知れませんが。


まず、複数のインターフェイスを持っている環境がありますので、
どのインターフェイスから抜き出すかを定めなければなりません。

・有線LAN、Wi-Fi・3G 回線を装備しているノート
・複数の有線LANポートを持つサーバー
・仮想ネットワークを設定してある場合
・常設されないインターフェイス(無線LAN、ダイアルアップネットワークなど)


さらに、単一の物理 NIC しかない環境だとしても、デバイスマネージャーなどから
任意の MAC アドレスを割り当てられる製品も少なくないので、
これ単体で一意性のある ID として扱う事はできないかと思います。
引用返信 編集キー/
■64056 / inTopicNo.14)  Re[10]: PCの世界唯一の識別ID
□投稿者/ まくん (4回)-(2012/11/06(Tue) 16:11:57)
> 最近の OS なら、コマンドラインの「wmic CPU get ProcessorID」で取れるかも。
> 物理CPUを複数搭載している場合への対応も忘れずに。


私案として、上記コマンドラインでユーザよりProcessorIDを取得してもらって、
それをうちで独自の暗号化し、ファイルの形で小さいUSBディスクに保存して、ソフト製品と一緒にユーザに渡すっていう 
やり方で良いではと思いますが?
これは一番簡単でコスト発生しない方法でしょう。



引用返信 編集キー/
■64057 / inTopicNo.15)  Re[11]: PCの世界唯一の識別ID
□投稿者/ みきぬ (10回)-(2012/11/06(Tue) 16:45:03)
No64056 (まくん さん) に返信
> 私案として、上記コマンドラインでユーザよりProcessorIDを取得してもらって、
> それをうちで独自の暗号化し、ファイルの形で小さいUSBディスクに保存して、ソフト製品と一緒にユーザに渡すっていう 
> やり方で良いではと思いますが?
> これは一番簡単でコスト発生しない方法でしょう。
>

無断複製を防ぎたいということで、一般ユーザに売るような用途を想定しましたが、
利用する側の立場としては、そんな面倒なことを要求するソフトはなるべく使いたくないです。

引用返信 編集キー/
■64058 / inTopicNo.16)  Re[11]: PCの世界唯一の識別ID
□投稿者/ ヴァン (5回)-(2012/11/06(Tue) 17:01:36)
こんにちは。

このソフトはどの様なユーザーをターゲットにしてますか?
1ユーザー(個人)が複数使うのを防ぎたいのか、ネットに出回るのを防ぎたいのか。


No64056 (まくん さん) に返信
>>最近の OS なら、コマンドラインの「wmic CPU get ProcessorID」で取れるかも。
>>物理CPUを複数搭載している場合への対応も忘れずに。
>
>
> 私案として、上記コマンドラインでユーザよりProcessorIDを取得してもらって、
> それをうちで独自の暗号化し、ファイルの形で小さいUSBディスクに保存して、ソフト製品と一緒にユーザに渡すっていう 
> やり方で良いではと思いますが?
> これは一番簡単でコスト発生しない方法でしょう。
>
>
>
引用返信 編集キー/
■64059 / inTopicNo.17)  Re[12]: PCの世界唯一の識別ID
□投稿者/ まくん (5回)-(2012/11/06(Tue) 17:20:10)
> このソフトはどの様なユーザーをターゲットにしてますか?

MSオフィスのような汎用的なソフトではありません。
特定のメーカに提供する計測用のソフトです。

引用返信 編集キー/
■64060 / inTopicNo.18)  Re[13]: PCの世界唯一の識別ID
□投稿者/ とっちゃん (13回)-(2012/11/06(Tue) 17:32:28)
とっちゃん さんの Web サイト
No64059 (まくん さん) に返信
>>このソフトはどの様なユーザーをターゲットにしてますか?
>
> MSオフィスのような汎用的なソフトではありません。
> 特定のメーカに提供する計測用のソフトです。
>
特定メーカーにということは不特定多数に対して売るわけではないのですよね?
なぜコストをかけてまで複製防止の必要性があるのでしょう?

引用返信 編集キー/
■64061 / inTopicNo.19)  Re[13]: PCの世界唯一の識別ID
□投稿者/ ヴァン (6回)-(2012/11/06(Tue) 18:27:08)
No64059 (まくん さん) に返信
>>このソフトはどの様なユーザーをターゲットにしてますか?
>
> MSオフィスのような汎用的なソフトではありません。
> 特定のメーカに提供する計測用のソフトです。
>

例えば1企業に100ライセンスになるとあの方法だと結構大変でしょう。

企業対企業であれば、見込みのライセンス数で契約してしまえば良いと思うのですが。
引用返信 編集キー/
■64063 / inTopicNo.20)  Re[14]: PCの世界唯一の識別ID
 
□投稿者/ howling (42回)-(2012/11/06(Tue) 19:13:12)
ちょっとだけ話ズレるかもしれませんが、
前いた会社では、Mayaのネットワークライセンスを1つだけ購入し、
Aさんが使用中はBさんが使わず、使いたくなったらAさんに作業を中断してもらう、
なんていうちょっと貧乏くさいことをしてました。
(いや、貧乏くさいっていうと悪い言い方ですが、良い言い回しが出てこないので。私は貧乏くさいですw)

きっと、まくんさんはそういうのを避けたいのでしょう…。

同様に、エンジンを他社に提供する際には、ドングルを使用しておりました。
1000本くらい使ってましたが…。
急ぎの場合、最悪バイク便などで送っていたので、そういったデメリットもあるかもしれません。

個人的には、企業相手ならMACアドレスで十分かと思います。(価格にもよりますが)
確かに変えることはできるのですが、そこまで細かく対応するべきなのか?という点で疑問です。
本気でやったらこういうのっていたちごっこにしかならないと思ってますので。

# でも、仕事が仕事なので、こういう議論はすごく興味があります。
# DVDでもゲームでも、シリアルコードを売るだけの時代に突入してくると思いますから…。
引用返信 編集キー/

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

管理者用

- Child Tree -