智能卡 - 機載公鑰生成過程中的熵
我知道一些(高級)智能卡或令牌允許直接在設備上生成密鑰對,但我想知道卡如何在此過程中收集熵。任何的想法 ?
簡而言之,他們直接從晶片上的源檢索熵。
來自維基百科:
在計算中,硬體隨機數發生器(TRNG,True Random Number Generator)是一種從物理過程中產生隨機數的裝置,而不是電腦程序。此類設備通常基於產生低水平、統計隨機“雜訊”信號的微觀現象,例如熱雜訊、光電效應和其他量子現象
所有相當安全的智能卡都包含一個硬體熵源。這樣,它們就不再依賴於來自外部的熵。這對於智能卡來說當然非常重要,因為它們應該將任何外部資訊視為可能受到污染。
通常這些隨機熵源通過某種形式的白化進行後處理。通常,在應用程序使用數據或將數據發送到外部世界之前,它們會被送入確定性隨機數生成器。在不太安全的卡上,這通常是 LSFR,但在高端卡上使用 NIST 模式,例如 CTR_DRBG。因此,這有點類似於
RD_RAND
在現代 Intel CPU 上的操作方式。請注意檢查卡密鑰生成是否在特定智能卡的現場實際得到認證。即使支持密鑰生成,它也可能沒有足夠的保護來抵禦現場的側通道攻擊。在這種情況下,您應該只在安全環境中使用板載密鑰生成。對於 RSA 密鑰對生成尤其如此。
就像智能卡處理器的所有其他部分一樣,熵源以及後處理都可能受到攻擊。此外,在智能卡中隨機生成的實現中存在(許多)錯誤。其中一些可能導致智能卡晶片資源有時極端受限(過度優化)。
這是一個非常有趣的問題,因為每個智能卡提供商都聲稱自己的流程不可侵犯。
如今,智能卡可以使用適當的硬體在卡本身上生成其加密密鑰。熵通常由嵌入式隨機生成器生成。生成器的硬體通常由 FIPS 等組織認證,該組織發布有關生成加密密鑰的建議。
儘管採取了所有這些預防措施,但這些方法還不夠嚴格。2013 年報告了一些針對包含經過認證的 RSA 密鑰對的數據庫的衝突的攻擊。台灣政府此前已經認證了該過程的安全性。
數據庫中不同 RSA 模數之間的 GCD 的簡單計算發現 184 個不同的 RSA 模數共享一個素數。通過對共享素數模數的檢查,研究人員得出結論,隨機數生成器在密鑰生成過程中存在偏差。這增強了使用其他模式和攻擊變體執行的攻擊,例如基於 LLL 的 Coppersmith 方法。這使得找到更多關鍵值成為可能。
如果您想了解更多資訊,請參閱:http ://smartfacts.cr.yp.to/index.html