簡體   English   中英

Web Cryptography API:如何發現支持的算法?

[英]Web Cryptography API: Howto discover supported algorithms?

Web Cryptography API支持通過JavaScript使用瀏覽器本機加密功能,例如可靠的隨機數生成器或使用不同算法進行加密或簽名的可能性。

該規范列出了算法概述作為實施者的起點,但添加了以下編輯說明:

注意:列出的所有算法都應被視為“風險特征”,禁止實施者采用它們。 它們包含在編輯草案中反映了社區成員將其包含在內的請求,並作為練習包含在內,以確保本規范中定義的API的穩健性。

因此,算法列表和建議可能在將來的修訂中被顯着改變。

據我所知,規范背后的想法是為密碼學提供一個接口,而不是寫下特定的算法(這完全有意義!)。

如何確定客戶端是否支持特定算法? 隱藏實現細節是一種很好的做法,但由於算法必須具有所謂的已識別算法名稱,因此我不明白為什么您不希望公開已注冊的算法。 仍然沒有指定接口,並且您注冊算法的對象描述如下:

該規范使用內部對象[[supportedAlgorithms]]。

此內部對象不會向應用程序公開。

在當前狀態下發現可用算法的唯一可能性是捕獲細微接口的NotSupportedError

從我的角度來看,發現是簡單的程序流,錯誤應該作為例外處理,而不是實現邏輯。

任何提示或建議? 還贊賞與正確的w3c-mailinglist討論的鏈接。

不計划支持算法發現接口。

這個問題在2012年w3c工作組郵件列表中進行了詳細討論,其中提出了一些問題,請參閱主題“ RE:Strawman關於低級API的提議 - 關於可互操作的算法和算法命名 ”和“ RE:算法發現(Re:Strawman關於低級API的提議 - 關於可操作的算法和算法命名集) “。

討論的一個方面總結了發現機制的問題:

(1)當我讀取各種附件時發現,處理算法而不是可以允許或支持的參數的排列,因此算法的發現可能是成功的但可能仍然失敗,因此發現的額外努力是開銷和額外的代碼路徑

問題部分再次討論了“Bug 25985 - WebCrypto應該是可互操作的”,並且在2014年7月電話會議期間,工作組決定通過使用配置文件“稍后解決問題”。 這在規范中也提到:

特別是,我們期望為Web瀏覽器創建可互操作算法的“瀏覽器配置文件”。

我們的想法是創建配置文件,例如傳統的Web瀏覽器,智能電視等。如果存在特定的配置文件,則必須支持某些算法。 這將在測試階段后的未來決定。

我不確定您的實現要求是什么,在運行時需要知道支持的算法,但我在一個特定的項目中使用了WebCrypto API,其中預先知道所需的算法。

我們能夠在初始化期間執行一系列簡單的測試,確定我們的算法是否得到支持。 這與一些已知的無能力(window.msCrypto定義?IE11和SHA-1缺失,window.crypto.webkitSubtle定義?Webkit和AES-GCM缺失等)相結合,使我們至少早知道是否支持在那里,要么使用替代算法,替代實施或失敗。

暫無
暫無

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

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