2017-01-16 9 views
0

Предполагая (на основе Java) сервер, который использует java 1.8 и клиент (java based), который также использует java 8. И учитывая, что поддержка java 8 по умолчанию TLS 1.2. Гарантируется ли использование шифрования на 512 бит? если не влияет на размер симметричного ключа?TLS 1.2 - размер ключа и длина ключа шифрования

Другой вопрос о ключе RSA (1024 или 2048). Является ли ключ RSA ключом сертификата или ключ RSA во время установления связи TLS?

Большое спасибо Guy

+1

Список разрешенных шифров определяют алгоритмы и основные сильные стороны используются. Клиент и сервер будут согласовывать набор шифров, который был включен. Сервер выбирает среди общих кандидатов. --- RSA-ключ является частью сертификата. – Andreas

+0

Спасибо @Andreas По умолчанию доступно несколько шифров, какой из них будет выбран? Интересно, что оба конца поддерживают TLS 1.2, есть ли гарантия, что будет использоваться 512-битный ключ? Каков алгоритм, используемый для выбора шифрования? – Guy

ответ

2

размер ключа для (симметричный) шифрования данных переговоров в рамках CipherSuite, например TLS_RSA_WITH_AES_256_CBC_SHA использует AES с 256-битным ключом, а TLS_RSA_WITH_AES_128_CBC_SHA использует AES с 128-битным ключом. Пакеты Java от Oracle (и ранее Sun) из-за коробки ограничены симметричным криптограммой 128 бит; для использования шифров AES-256 вам необходимо установить политику «Без ограничений», см. SSLHandshakeException while connecting to a https site, но OpenJDK не имеет этого ограничения. Обратите внимание, что сила не такая же, как размер; 3DES, используемый в SSL/TLS (ключ 1), имеет ключ размер 168 но прочность только 112 и разрешен в соответствии с «ограниченной» политикой.

Не существует алгоритмов шифрования «512 бит», используемых в любых SSL/TLS. Обратите внимание, что разрыв в 256-битной прочности, такой как AES-256 обычными средствами, не может быть выполнен в нашей текущей солнечной системе; вам нужно будет контролировать по крайней мере большую часть галактики в течение миллиардов лет, и для такого противника ваши видео для кошек, банковские счета или даже бизнес-стратегия совершенно неинтересны. Квант может изменить это, но никто не знает, будет ли это когда-либо работать, когда и как хорошо.

Да, ключ RSA находится в сертификате, если вы используете RSA, который является наиболее распространенным вариантом, но не единственным. (Кроме того, были некоторые эфемерные ключи RSA в некоторых из намеренно нарушенных «экспортных» ciphersuites, которые вы никогда не хотели использовать и которые официально запрещены в TLSv1.1 2006 и TLSv1.2 2008, а Java полностью отключена по умолчанию начиная с Java7 около 2011 года.) Общественные ЦС, такие как Symantec GoDaddy и т. д., не выдавали сертификаты для ключей RSA менее 2048 бит с 2013 года; если вы используете самоподписанные сертификаты или запускаете свой собственный 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