簡體   English   中英

WebAssembly 執行保密

[英]WebAssembly execution secrecy

我知道在 WASM 中包含秘密/密碼是一個壞主意,因為可以解密二進制文件,但是是否有安全生成鹽的概念/技巧以在 WASM 中創建主機無法讀取並因此存在的秘密僅在單個 WASM 執行時?

不,這又是不可能的 DRM 問題。

讓我們來看看:

  • 您編寫的 wasm 執行某些任務,它需要在我的計算機上運行。 我從頭開始構建我的計算機,自己設計硅芯片,以便它們記錄計算機所做的事情。 我記錄了你的“一次性”秘密。 但這對我來說很貴,定制硅芯片並不便宜。
  • 您編寫的 wasm 執行某些任務,它需要在我的 web 瀏覽器上運行。 我從 chromium 源代碼編譯了我自己的瀏覽器,並帶有一個補丁,以將任何 wasm 復制到磁盤,包括該 wasm 的任何輸入和輸出。 我知道你的 wasm 做了什么並且可以復制它。
  • 您編寫了執行某些任務的 wasm,您的計划是要求第三方網站包含您的 wasm。 您不是想從用戶/CPU/瀏覽器中隱藏它,您只是想從加載您的 wasm 的 web 頁面隱藏秘密。 最重要的是,每次從您的服務器加載 wasm 時,嵌入的秘密都是不同的。 我的 web 頁面沒有正常加載您的 wasm,而是在 javascript 中實現了自己的wasm 解釋器,並執行您的 wasm 所做的任何事情,查看其秘密數據並記錄其動作。

當然,與所有 DRM 系統一樣,您可以嘗試編造任何復雜的方案以使這些記錄難以被人類理解,但最終您會嘗試向兩者提供信息(即秘密或鹽),同時否認他們同樣的信息。 您可以在時間或人力破解難度方面提高“成本”。

現在,為了完整起見,有一種基於完全同態加密的尚不實用的方法,您可以在其中生成其他人可以在他們無法理解程序所做的事情的情況下運行的程序(它是“在計算上無法區分”) ,但是當前的實現需要近千兆字節大小的密鑰,並將毫秒計算轉換為幾分鍾或幾小時,其次這與 Wasm 無關,如果你可以用 Wasm 來做,你可以用 python 代碼或 x86-64 做同樣的事情可執行。 我所知道的當前最佳方法是https://tfhe.github.io/tfhe/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM