題:
複製保護,知識保護和部署問題
Brethlosze
2015-04-01 22:22:59 UTC
view on stackexchange narkive permalink

使用Raspberry Pi 2 Model B v1.1一段時間後,我有以下擔憂嗎?

  1. 我知道它專注於增強脆弱的教育部門,但是有可能出售基於RPi的產品?用它賺錢?成為億萬富翁嗎?
  2. 我應該如何保護一個開發,例如,我不希望有人拿走我的RPi SD卡,複製它並擁有自己的副本 ?我當前的替代方法是用強力膠:)填充SDCard端口。另一個選擇可能是使RPi聯機 ping 許可證服務器,這當然需要 WiFi 連接。或硬件哈希ID(我想這應該是一個更好的答案...)
  3. 我檢查了是否存在通過安裝SD來恢復安裝的機制,即使您沒有root用戶也是如此。卡。同樣,我最好的解決方法是使用強力膠水方法。...
  4. ol>

    先謝謝了。

這是一個一般的嵌入式Linux問題。從技術上和法律上來說這都是一個複雜的問題。
您好,歡迎來到RaspberryPi.SE!這是一個太多的問題。一些問題也很廣泛,而不是特定於Pi的。您需要考慮到,只要花些時間和精力,所有的版權保護系統都可以被規避。特別是這樣,如果您的系統已部署並且您無法阻止“壞蛋”使用所有可用工具來破壞保護。
@craig:有嵌入式Linux社區嗎?
WRT#2:您不能*在任何平台上*從技術上*防止盜版,您所能做的只是*合法*地打擊盜版。 **我想您在這兒比馬車先。**當您有一個基於pi的軟件項目對此感到擔憂時,您會意識到沒有真正與pi綁定的基於pi的項目。它只是一個通用設備,社區是面向開發的。
@goldilocks:感謝您的澄清。請從這個意義上講,開發應該理解為硬件+軟件的結合。我不知道Raspberry Foundation是否允許根據其平台銷售產品...
當然,保護系統具有成本範圍。如果我有$ 20.000,我會打破它,或者從頭開始重新開發它:)...問題是,您到目前為止看到的替代方案有哪些?
在應用程序開發方面,這不是“他們的平台”,他們知道並且不在乎。那不是“他們的目的”。它是實現ARM體系結構的Broadcom SoC。任何人都無法將pi輕鬆移植到各種各樣的其他設備上。因此,再一次:**您在馬車前面有推車**。到您對知識產權的關注具有任何意義或意義的時候,您將了解我想對您說的話...
……如果這引起爭議或不清楚,請不要擔心:*現實情況是您沒有任何知識產權值得關注。*道歉,但事實就是事實。如果您認真考慮要開始考慮的問題,則需要關註一些更基本的問題,例如創建您關心的任何內容。
@goldilocks。這是一個好點,我想這個答案就是第1點。您並不粗魯。確實,在這種意義上有任何需要保護和關注的東西,應該在另一種情況或框架下進行-即ZIP算法-並且可以在任何平台上實現。
關於Point 2,實際上我正在變得更加實用。現在,我理解您的觀點了,語言有時在各個學科中都有其自身的含義。所謂保護,是指我的設備是不可克隆的(在某些最小的努力範圍內)。我不希望有人拿SD卡複製它:)。因此,超級膠水和/或哈希技術。這是問題的技術意義...
順便說一句,如果您滿意,您可以考慮接受最喜歡的答案。
八 答案:
avra
2015-04-02 18:32:09 UTC
view on stackexchange narkive permalink

如果您真的很想保護自己的知識產權,則可以將基於Rapberry Pi的應用程序與一些基於外部定制微控制器(如AVR,PIC,8051等MCU)的硬件密鑰(通過USB連接到Pi)結合起來,RXTX,I2C,SPI,1wire ...)。例如,Pi端應用程序生成一個隨機數,該隨機數發送到MCU,進行解碼並作為解鎖密鑰發送回去,以解密重要內容。然後,您還可以直接在MCU中執行一些重要功能(您只需傳遞參數並從MCU中獲取結果)。您可以想像這將如何在數量級上增加黑客的破解難度,因為他的知識必須比通常的知識廣得多。沒有完美的保護,但是如果您真的想挑戰一下,那麼這可能是一種解決方法。

確實,這是一個不錯的解決方案。...我將嘗試這個概念。
不幸的是,硬件密鑰的解決方案與軟件密鑰相同-只需刪除代碼中有問題的部分,構建正確的答案,等等。因此,同樣的技能也可以對付硬件密鑰。
如果您在硬件密鑰中添加了一些重要功能,並且使其結果對於您的Pi應用程序功能至關重要,則不是這樣。由於功能僅存在於微控制器中,因此在Pi側無須刪除。這不是不可能打破的,但是難度要大很多倍,因為它需要比通常的代碼破解更高的技能。
儘管這些外部電路確實可以提供保護,但這些東西卻要花很多錢:研究,原型製作,製造,測試,實施,維護。如果沿途發生什麼怎麼辦?如果Raspberry在將來的模型中更改其界面怎麼辦?如果壽命短或愛好項目,那就去吧。如果它是一種工業/商業產品,那麼OEM也許是一個更安全的選擇。
user1217949
2015-04-01 23:19:56 UTC
view on stackexchange narkive permalink
  1. 我認為這一直是計算模塊的想法。賺錢應該不是問題。

  2. / 4.超級膠水選擇可能是一個不錯的權衡。最終,您無法通過物理訪問設備來擊敗攻擊者。看看可能在DRM基礎架構上投資了數百萬美元的遊戲機,它們最終都掉了。換一種說法,您還可以擁抱開放性並出售產品的開發版本,並包括某種SDK。您從以技術為中心的用戶組中獲得的反饋可能很有價值,並且對您有用。

  3. ol>
superglue選項可能完全是錯誤的,但是您在這裡還有其他一些要點。 ; |
實際上,我在考慮Raspberri Pi的一些硬件ID,以便可以為每個RPi卡編程每個RPi軟件,因此,如果我克隆該軟件,則該系統將無法運行。舊的uProcessor只是在板上編程的,因此您不能* unplug * :)。
即使您具有硬件ID,其他具有物理訪問權限的人也可以讀取它。當然,在板上編程的處理器也提供調試接口,因此您實際上可以讀取它們。在更複雜的系統中,SOC可能只負責執行簽名的代碼。如果Broadcom芯片在該方向上具有某些功能,我不會感到驚訝,但是您沒有相關文檔。如果您想計劃銷售數百萬個產品,他們可能會與您討論;)
大聲笑..不,我想我會賣掉他們的**數量**。因此,如果我有一個在Raspbian下運行的代碼,其他任何人都可以拿SD卡讀取它?調試嗎?破解嗎?我完全確定,答案是肯定的。最好的選擇是使用* avra *推薦的“ Hardware Key”(硬件密鑰),並將帶有SuperGlue的SD卡埋入其連接器中嗎?
EDP
2015-09-05 14:22:20 UTC
view on stackexchange narkive permalink

雖然這種做法肯定會失去覆蓋範圍,但是您會為企業辦公室環境中台式機上粘著的USB連接器數量感到驚訝。我在這裡是在談論大型跨國公司。

但是現在是話題...

對於以IP保護為主要因素的商業項目,Pi非常適合早期原型設計/最好的概念證明。即使保護不會成為問題,但大規模部署Pi並不是最佳的解決方案-出於多種原因,我在本論壇的更早版本中對此進行了描述。

沒有針對逆向工程/黑客入侵/複製的系統安全措施。任何系統都是可利用的。但是,每個系統都有一個滲透率分數。憑藉其開放式方法和外部SD卡,Pi的價格非常低。定制的,經過軍事批准的,帶有定制SoC,夾層組件和多層PCB以及定制引導加載程序的硬件板,硬件加密將獲得更高的分數。

最重要的是要考慮部署因素。您的市場越廣泛,人們進入並竊取您的技術就會變得越有意思。

如果硬件是整個設置中的阻力,而保護技術是主要因素,我認為Pi不是適合您的產品。如果您的硬件是服務銷售的促進者,那麼保護技術應該在服務器端而不是客戶端上進行。

我們使用Pi來銷售此類服務。我們在Pi上的軟件確實具有更高的保護級別,我們使用的是已編譯的C應用程序,該應用程序鎖定在MAC和/或CPU序列號上。但是最後,如果沒有我們的服務器端,甚至源代碼實際上都是無用的。

Paulo Arede
2015-09-05 12:50:32 UTC
view on stackexchange narkive permalink

您可以在樹莓派內部使用帶有加密密鑰的背負式。市場上有幾種商業設備。我使用了 Raspberry Pi的軟件串行保護,效果很好。

這不會幫助您保護系統免受克隆的侵害-黑客會根據需要從您的二進製文件中刪除對HW密鑰的檢查... HW密鑰將僅提供一定程度的保護(也許會停止第一級愛好)黑客)。
MadMike
2017-02-23 18:09:40 UTC
view on stackexchange narkive permalink

將其設為開源

嚴重的是,請勿嘗試對其進行複制保護。使它開源。如果可能,讓其他人加入您的項目。

然後收取服務費用。如果做對了,您可以賺大錢。

Red-had就是這樣做的,還有其他一些公司。他們都做得很好並且還在成長。

不,這是產品,不是項目,也不是大項目,也不是非常有趣的編程項目。聽起來很漂亮,但同樣,沒有。
我不同意。根據我的經驗,我編寫的每個程序都已被客戶端交付並被客戶積極使用,它將獲得支持電話,增強功能的請求以及錯誤修復。唯一沒有這些軟件的軟件是在發貨後從未使用過的軟件。
考慮以下問題:[對不起:您的軟件項目將永遠不會完成。](https://artandlogic.com/2017/02/im-sorry-software-project-will-never-finished/)
重點是,這是針對產品,設備的。軟件中根本沒有藝術,但是像任何智能控制器一樣,必須保護處理變量的方式。您無意以這種方式開源您的開發,這是不可能的,那是另一種工作。也許您在一家公司中,當客戶打電話給您時,您會很生氣,實際上,這給您的老闆更多了賬單,並為您提供了售後服務,從長遠來看,這是一件好事。無論如何,開源對人類有益,而不是為了牟利。
在哪個世界需要支持電話和增強功能要求不好?那總是積極的,非常積極的。錯誤修復是另一個問題,您必須做好工作。當然還要為所有這些收費。
同樣,這是關於將所有工作奉獻給人類的利益或將每個人的所作所為收取費用的主題討論。
Jatin Gandhi
2017-02-23 17:35:21 UTC
view on stackexchange narkive permalink

幾分錢:

  1. 永遠不要圍繞可直接讀取的腳本創建解決方案。
  2. 從多個軟件/過程和硬件上分解功能。
  3. 添加一些讀取硬件的“功能”依賴項。
  4. 添加智能卡讀取器,並與您的產品一起銷售“啟用”智能卡。
  5. 有一個許可證服務器
  6. 在EEPROM中有一個使用計數器!!!並且應該有一些在線“充電”的方法。;-)
  7. ol>

    ...

Dmitry Grigoryev
2018-05-25 18:59:38 UTC
view on stackexchange narkive permalink

作為入門級保護,在 / sys / block / mmcblk0 / device / 下有一個唯一的SD卡ID,典型的磁盤映像克隆軟件無法克隆該SD卡ID。這樣做的優點是不需要單獨的設備來保存唯一ID,並且在超級膠水之後可以作為第二層保護很好地工作。

關於使用ID進行保護的另一提示是避免使用簡單的檢查,即

  if( readID()!= 0xDEADBEEF)exit();  

像這樣的簡單檢查很容易發現(通過搜索已知ID或監視對 exit()的調用)並刪除。更好的方法是將ID作為常量包含在計算中。也就是說,您將編寫

  i = i + readID()-0xDEADBEEF + 1;  
,而不是代碼中的 i ++

這將很難發現,因為確切的ID不會逐字出現在您的代碼中( 0xDEADBEEF + 1 == 0xDEADBEF0 ),並檢查對 exit()的所有調用也不會顯示保護代碼的位置。相反,您的代碼只會在具有錯誤ID的系統上崩潰,攻擊者將不得不調試應用程序的邏輯以了解並解決問題。

Benjamin LIiiiiiiii
2018-06-12 10:09:56 UTC
view on stackexchange narkive permalink

使用外部組件,我的意思是安全組件可以解決該問題。如果您真的認為自己的想法很棒,並且值得為此付出額外的費用,那麼我建議您使用一些專業的MCU / CPU。像Broadcom BCM58101系列一樣,並不是真正具有成本效益並且對新用戶不友好,但是高安全級別也可以保護您的想法/設計。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...