2017-01-16 327 views
0

假設使用java 1.8的基於(基於java的)服務器和使用java 8的(基於java的)客戶端。 並且考慮到java 8默認支持TLS 1.2。 是否保證會使用512位加密?如果不影響對稱密鑰大小?TLS 1.2 - 密鑰對大小和加密密鑰長度

關於RSA密鑰(1024或2048)的另一個問題。 RSA證書的關鍵部分或RSA密鑰是否在TLS握手期間確定?

非常感謝 蓋伊

+1

啓用的密碼套件的列表確定所使用的算法和密鑰強度。客戶端和服務器將協商已啓用的密碼套件。服務器在共享候選人中選擇。 --- RSA密鑰是證書的一部分。 – Andreas

+0

Thanks @Andreas默認情況下,有幾個密碼可用,哪一個會被選中?我想知道兩端支持TLS 1.2有沒有保證512位密鑰會被使用?用來選擇密碼的算法是什麼? – Guy

回答

2

爲關鍵尺寸(對稱)加密數據協商作爲密碼組的一部分,例如TLS_RSA_WITH_AES_256_CBC_SHA使用AES與256位密鑰而TLS_RSA_WITH_AES_128_CBC_SHA使用AES與128位密鑰。來自Oracle(和之前的Sun)的Java軟件包即裝即用,僅限於128位強度的對稱密碼;要使用AES-256密碼套件,您需要安裝「無限強度」策略,請參閱SSLHandshakeException while connecting to a https site,但OpenJDK沒有此限制。請注意,強度與尺寸不一樣;在SSL/TLS(密鑰選項1)中使用的3DES具有密鑰大小 168但強度只有112並且在「有限」策略下允許。

在任何SSL/TLS中都沒有使用'512位加密'算法。請注意,通過傳統方式打破AES-256這樣的256位強度是無法在我們當前的太陽系中完成的。你需要控制至少幾十億年的銀河系,而對於這樣的對手來說,你的貓視頻,銀行賬戶,甚至是商業策略都是完全沒有意義的。量子公司可能會改變這一點,但沒人知道這種情況是否會奏效,何時或如何。

是的,RSA密鑰在證書中,如果您使用RSA這是最常見的選擇,但不是唯一的。 (除了在一些故意破壞的「導出」密碼套件中存在短暫的RSA密鑰,您並不想使用這些密鑰,並且這些密鑰已在TLSv1.1 2006和TLSv1.2 2008中正式禁止,並且Java默認已完全禁用自2011年以來Java7)。自2013年以來,像Symantec GoDaddy等公共CA尚未頒發小於2048位的RSA密鑰的證書;如果您使用自簽名證書或運行自己的個人CA,則可以這樣做,但瀏覽器可能會給出錯誤或警告。請注意,RSA-1024只有大約80位的強度(這就是爲什麼它不再被認爲是安全的),RSA-2048大約是112;看到https://www.keylength.com
https://crypto.stackexchange.com/questions/1978/how-big-an-rsa-key-is-considered-secure-today
https://crypto.stackexchange.com/questions/6236/why-does-the-recommended-key-size-between-symmetric-and-assymetric-encryption-
https://crypto.stackexchange.com/questions/8687/security-strength-of-rsa-in-relation-with-the-modulus-size