2010-04-13 55 views
5

我們爲通過USB密鑰安裝的軟件進行了自動更新(使用自動運行)。如果我想確保只使用授權的USB密鑰,那麼最好的方法是什麼?授權USB密鑰的最佳方式是什麼

我們的安裝程序已經簽名,它不會運行。但我更想檢查一下已簽名的安裝程序的USB密鑰,如果它不在,請忽略,甚至「彈出」USB設備。

而且我應該能夠分辨出usb存儲設備和攝像頭或鍵盤之間的差異(代碼中)。

我只想禁用非授權的存儲設備。

謝謝你的想法。

+1

我無法從互聯網上下載補丁程序?你可能會決定彈出我的USB硬盤?考慮一下你正在嘗試做的事情的缺點(煩人的付錢者)...說這個,我很想知道你爲什麼想要去這樣的長度 – gbn 2010-04-13 19:34:34

+3

你可能想澄清你的目標。您的目標是防止人們插入除自動更新之外的任何USB設備(即在嵌入式情況下,如銷售點終端)?或者,您的目標是阻止人們複製您的自動更新軟件並將其提供給他們的朋友? – 2010-04-13 19:38:11

+1

這是一個獨立的自助服務終端應用程序,我們只希望使用某些設備。 USB輸入已經用lock/key/pwd等保護,但是...在我想嘗試鎖定的構建/構建路徑中仍有機會。 最終目標......僅允許使用已簽名軟件的存儲設備,拒絕所有其他存儲設備。 – ScottCate 2010-04-13 21:00:45

回答

4

未經授權的存儲設備?這取決於你想要的安全程度。對於最安全的水平,這將包括:

  • 寫入到閃存驅動器來獲得額外的「元信息」(讀:昂貴的定製生產的閃存驅動器)的特殊固件
  • 特殊的Windows驅動程序來讀取來自閃存驅動器的元信息
  • 您的程序正在與該設備驅動程序通信以確認其已授權。

或者到最低安全級別,你有以下選擇:(?最後文件系統修改或某事的可能散列時間)

  • 使用隱藏的文件和特殊鍵(DD易碎)
  • 下降低於文件系統級別並重新創建你自己的非常簡單的文件系統。(通過隱藏的更安全,雖然和DD可能打破)

此外,對於「最安全」選項,你真的需要一個MOR運行該程序的安全方式要比自動運行以及設備驅動程序(可能是一半以使任何東西顯示授權)更安全。爲什麼你只想從授權的閃存驅動器更新?

+0

我只是想確保平均的喬不能堅持一個USB密鑰,並獲得一個自動運行窗口。 在完美的世界中,我可以附加到「新USB設備找到」窗口事件,無論是...檢查設備,如果存儲器查找已知簽名的軟件並運行它。如果沒有找到該軟件 - 只需忽略該設備。 – ScottCate 2010-04-13 21:11:07

+0

是的,我會和那個和/或@Pkaeding的答案一起去。我不確定你需要的安全程度如何。 – Earlz 2010-04-13 21:46:06

2

您可能能夠讀取USB驅動器的序列號(假設您獲得帶有序列號的USB驅動器;並非全部都是這樣)。然後,您的應用程序可以打電話回家以獲取授權序列號的最新列表,並檢查是否有匹配。

+1

這對於大多數人來說是安全的「方法+1」。 (儘管可以使用微控制器或自定義設備驅動程序僞裝) – Earlz 2010-04-13 19:42:06

0

Earlz的反應很好,雖然我不認爲你需要定製閃存驅動器......你只需要帶有某種獨特的固件加密標識符的閃存驅動器。也許Kingston Data Traveler Line中的某些東西可能會訣竅。 (我從來沒有真正使用這些加密的USB棒之一,所以我對實際的實現細節有點模糊)。

相關問題