[英]Verifying Browserid Assertions in JavaScript with 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.