人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windowsプログラミングの質問です。最近USBメモリから一意な値を取り出して鍵とするソフトウエアが多くありますが、どのような方法で一意な値を取得しているのでしょうか?

●質問者: disca
●カテゴリ:コンピュータ インターネット
✍キーワード:USBメモリ Windows ソフトウエア プログラミング
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● いのくに
●23ポイント

http://www.vector.co.jp/soft/win95/util/se334890.html

「鍵」になる個々のUSB機器の識別はそのUSB機器の持つ「ベンダーID」・「プロダクトID」・「バージョン(リビジョン)」及び「シリアルナンバー」を使って行います。

だそうです。

http://www.microsoft.com/whdc/device/storage/usbfaq.mspx

Q: Must a USB storage device contain a unique serial number?

Yes. To comply with the USB Mass Storage Class Bulk-Only Transport Specification, all USB storage devices must contain a unique (12 digits or longer) serial number, represented as a UNICODE string. Refer to section 4.1.1 of the USB Mass Storage Class (Bulk-Only Transport) specification and note that serial number characters must be 0x0030-0x0039 or 0x0041-0x0046.

A unique serial number on a USB device maintains the same device devnode as a user moves the device from USB port to port. This unique devnode ensures that properties (icons, policies, driver letters, and so on) associated with the device are not reset when the device is moved to a new port or when a second device with the same VID/PID/REV is added to the system.

IHVs must ensure that a device’s serial number is unique in order for that device to comply with Windows operating systems (refer to Microsoft Windows Logo Program System and Device Requirements B2.6.3.1) and to pass WHQL certification. (HCT version 10.0, and later HCTs, will test the uniqueness of a serial number on any USB device if one is specified.)

ということなので、個々の Serial 番号は

http://gentoo-wiki.com/HOWTO_USB_Mass_Storage_Device

USB Mass Storage Class と関係があるみたいです。


2 ● saiso
●23ポイント

http://forums.belution.com/ja/vc/000/316/71.shtml

USBメモリには通常シリアルナンバーがあります。これがそれぞれ違っていることでキーとして使用できるようです。しかし、このシリアルナンバーは通常のプログラムでは取得できないため、デバイスドライバー用のSDKを使用して取得するようになるため、そのあたりの知識がないと非常に難しいことになります。

(ちなみに私もこのSDKを使用しないで出来ないものか研究中で結構いいところまでは行っています)

◎質問者からの返答

基本的にはDDKが必要なんですね。参考になります。


3 ● ToMmY
●22ポイント

http://www.forest.impress.co.jp/article/2004/05/27/blackburn...

これの場合シリアルです。

http://pcweb.mycom.co.jp/articles/2005/03/18/usbhl/002.html

>USB鍵として最も考えられる機器。ベンダーID、プロダクトID、シリアルナンバーの3つのIDある場合が多いので、管理者鍵のような高いセキュリティが必要なUSB鍵として使える。

このようにたくさんあるようです。あとは中の任意ファイルのハッシュなどでしょう。

◎質問者からの返答

期待していた回答ではありませんが、参考になります。

(USBのシリアルキーを取得できるAPIを探しています。)


4 ● kinneko
●22ポイント

シリアル番号は安いUSBメモリでは、ちゃんとしたメーカー品でも、同じ番号が書き込まれていたり、値がないものがありますので、そのままでは使えないことがあります。また、特殊なソフトウエアを使えば書き換えも可能です。

そのため、一意なキーとして使うには十分な情報ではないと思います。

一意なキーとして、スマートカード用のAPIに対応したコントローラーを積んだ製品もありますので、そういうものを使うのも手だと思います。

それでも情報がほしいのであれば、デバイスにIOCTL_STORAGE_QUERY_PROPERTYを使うと目的の情報にたどり着けると思います。

http://msdn.microsoft.com/library/default.asp?url=/library/e...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ