【邊緣AI系列】淺淺談OpenVINO 模型保護與安全性

Grady Huang
3 min readApr 19, 2020

--

老闆問:「我們越來越多的終端推掄服務與客戶端的硬體部署,這些客製化訓練的模型該如何做好安全性與保護呢?」

在OpenVINO中並沒有針對模型提供保護或加密的技術,官方建議可以使用第三方的保護工具如:OpenSSH,來協助完成模型加密達到安全性保護的效果。

更進一步可以使用 Intel® Software Guard Extensions (Intel® SGX),透過保護金鑰與硬體綁定等機制來確保模型不會輕易被複製與解密。

基本的模型保護可以透過一下流程來完成:

在開發端中訓練好的各種模型透過OpenVINO Model Optimizer轉換成IR檔(Intermediate Representation),就是我們看到的輸出bin參數檔和xml模型結構檔,透過第三方加密工具來將參數與模型結構檔來做加密保護,也可以在加密後自定義模型副檔如.gradymodel等來標準化系統模型格式。

接著在要部署的終端設備中放入加密的模型資料,系統啟動後載入加密的模型與解密金鑰,解密的鑰匙可以透過不同的機制來做驗證如:遠端認證、設備序號綁定等,確認沒問題後將解密的模型參數檔放入記憶體區塊中,提供系統進行推論使用。

簡易的設計方法可以使用InferenceEngine::ICNNNetReader 來存取解密後的模型資料,並存放在記憶體區塊中。

在使用 InferenceEngine::Core::ReadNetwork() 方式來載入模型參數與結構檔,就可以進一步提供各系統的推論應用。

藉由以上方式我們就可以做好「基本的模型保護」工作囉,至少不會讓你辛苦訓練好的模型很輕易的就被別人拿去用拉,對於終端的設備推論也有較好的安全性。

以上基本作法可延伸閱讀Intel OpenVINO官網

Grady Huang

--

--

Grady Huang

平凡的工程從業人員,投入在電腦視覺研究和應用開發的深淵中,寫寫筆記避免隔天忘記~ 喜歡拍手👏就好,不分享‧留一手🤫