Site Tools


software:win:sec:enabletls

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
software:win:sec:enabletls [2015/11/14 22:49]
– [Алгоритмы шифрования и обмена ключами] root
software:win:sec:enabletls [2022/02/04 18:32]
– removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Повышаем безопасность встроенных средств: включаем TLS 1.2, TLS 1.1 ====== 
-Затрагивает только софт который использует системные API для SSL: IE, WebDav redirector, update client, RDP, SQL NLA, RRAS...\\ 
-Не затрагивает софт который со своими крипто средствами, типа: Firefox, Opera и тп.\\ 
- 
-По умолчанию в Windows 7 (остальные смотрите сами) использует TLS1.0 и SSLv3, также не использует сильные алгоритмы хеширования, обмена ключами, шифрования и их связки.\\ 
-Однако данные алгоритмы реализованы и могут быть включены.\\ 
- 
-===== Предупреждение ===== 
-**ВСЕ МОДИФИКАЦИИ НА СВОЙ СТРАХ И РИСК!!!**\\ 
-.reg файлы не публикую специально, чтобы было время для обдумывания перед применением.\\ 
- 
-1. Если у вас установлены КриптоПро или ещё какие либо сторонние/дополнительные крипто средства - значения по умолчанию будут отличатся и при правке параметров это нужно учитывать, иначе что то можно сломать и потом долго искать причину и средство.\\ 
- 
-2. Есть реальная возможность сломать RDP на сервере выставив некоторые параметры, если других средств удалённого доступа (без TLS/SSL, типа telnet или ssh) не предусмотрено то придётся контактировать с ним физически.\\ 
- 
- 
-===== Алгоритмы шифрования и обмена ключами ===== 
-**Предупреждение**: микрософт довольно часто меняет эти параметры при установке обновлений!\\ 
-Следите/восстанавливайте значение после установки обновлений самостоятельно.\\ 
- 
- 
-В реестре, по адресу: 
-<code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002</code> 
-многостроковый параметр: Functions - определяет список доступных связок криптоалгоритмов и приоритет их использования в SSL/TLS\\ 
-Значение по умолчанию 
-<code>TLS_RSA_WITH_AES_128_CBC_SHA256 
-TLS_RSA_WITH_AES_128_CBC_SHA 
-TLS_RSA_WITH_AES_256_CBC_SHA256 
-TLS_RSA_WITH_AES_256_CBC_SHA 
-TLS_RSA_WITH_RC4_128_SHA 
-TLS_RSA_WITH_3DES_EDE_CBC_SHA 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256 
-TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384 
-TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 
-TLS_DHE_DSS_WITH_AES_128_CBC_SHA 
-TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 
-TLS_DHE_DSS_WITH_AES_256_CBC_SHA 
-TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 
-TLS_RSA_WITH_RC4_128_MD5 
-SSL_CK_RC4_128_WITH_MD5 
-SSL_CK_DES_192_EDE3_CBC_WITH_MD5 
-TLS_RSA_WITH_NULL_SHA256 
-TLS_RSA_WITH_NULL_SHA</code> 
- 
-**Включаем всё** 
-<code>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521 
-TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521 
-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384 
-TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384 
-TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 
-TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384 
-TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 
-TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 
-TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 
-TLS_RSA_WITH_AES_256_GCM_SHA384 
-TLS_RSA_WITH_AES_128_GCM_SHA256 
-TLS_RSA_WITH_AES_256_CBC_SHA256 
-TLS_RSA_WITH_AES_256_CBC_SHA 
-TLS_RSA_WITH_AES_128_CBC_SHA256 
-TLS_RSA_WITH_AES_128_CBC_SHA 
-TLS_RSA_WITH_RC4_128_SHA 
-TLS_RSA_WITH_3DES_EDE_CBC_SHA 
-TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 
-TLS_DHE_DSS_WITH_AES_256_CBC_SHA 
-TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 
-TLS_DHE_DSS_WITH_AES_128_CBC_SHA 
-TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA</code> 
- 
-Если сравнить, то видно что я добавил "сильные связки" и удалил совсем слабые.\\ 
-Когда я удалил некоторые слабые варианты, то Windows Update (который через интернет, а не локальный WSUS) перестал работать, поэтому пришлось вернуть.\\ 
-Список алгоритмов можно посмотреть тут: gpedit.msc, Конфигурация компьютера, Административные шаблоны, Сеть, Параметры настройки SSL - Порядок комплектов шифров SSL\\ 
-в описании этого параметра есть все доступные алгоритмы.\\ 
-Пользоваться групповой политикой не стал - ограничение в 1023 знака, в такое даже алгоритмы по умолчанию не вписываются.\\ 
- 
-Результат, на примере IE11:\\ 
-Было: SSL_PROTO:"TLSv1.2" SSL_CIPHER:"AES256-SHA256"\\ 
-Стало: SSL_PROTO:"TLSv1.2" SSL_CIPHER:"ECDHE-RSA-AES256-SHA384"\\ 
-(у меня на сервере жёстко заданы алгоритмы и для случая "было" согласование вообще не проходило пока я не добавлял более слабые связки алгоритмов)\\ 
- 
-===== Алгоритмы ЭЦП в SSL/TLS ===== 
-Ключ: <code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010003</code> 
-многостроковый параметр: Functions - алгоритмы для ЭЦП в SSL/TLS (так же для работы с сертификатами)\\ 
- 
-Значение по умолчанию 
-<code>ECDSA/SHA512 
-ECDSA/SHA384 
-ECDSA/SHA256 
-ECDSA/SHA1 
-RSA/SHA512 
-RSA/SHA256 
-RSA/SHA384 
-RSA/SHA1 
-DSA/SHA1</code> 
-Единственное, я немного переупорядочил их, на всякий случай.\\ 
-Не так давно ECDSA/SHA512 и ECDSA/SHA384 в этом списке не было и страждущие добавляли их самостоятельно, но похоже какой то апдейт их туда добавил. Проверить не помешает.\\ 
- 
-===== Включение/отключение протоколов TLS/SSL ===== 
-SSLv3 - пора закапывать, IMHO.\\ 
-TLS1.0 - в принципе тоже, но на него завязана работа RDP и много кто только на нём сидит до сих пор. Поэтому безболезненно отключить его нельзя.\\ 
-Тем временем МС рекомендует:\\ 
-<code>For new development, use Transport Layer Security 1.0.</code> 
-[[http://msdn.microsoft.com/en-us/library/windows/desktop/aa379810(v=vs.85).aspx]]\\ 
-при этом 1.1 и 1.2 они оставляют в подвешенном состоянии.\\ 
- 
-==== Отключаем SSL2 и SSL3 ==== 
-<code>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0] 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client] 
-"DisabledByDefault"=dword:00000001 
-"Enabled"=dword:00000000 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server] 
-"DisabledByDefault"=dword:00000001 
-"Enabled"=dword:00000000 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0] 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client] 
-"DisabledByDefault"=dword:00000001 
-"Enabled"=dword:00000000 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server] 
-"DisabledByDefault"=dword:00000001 
-"Enabled"=dword:00000000</code> 
- 
-==== Включаем TLS 1.1 и 1.2 ==== 
-<code>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1] 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2] 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff</spoiler> 
- 
-<spoiler title="TLS 1.0 - лучше не трогать/включено"> 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0] 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff 
- 
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] 
-"DisabledByDefault"=dword:00000000 
-"Enabled"=dword:ffffffff</code> 
-На TLS 1.0 в венде много завязано намертво, его отключение ломает RDP (испробовано на себе) и как минимум WebDav (видимо в бинарнике зашито, больше он ничего не хочет).\\ 
- 
-Подробности по включению/выключению: [[http://support.microsoft.com/kb/245030]]\\ 
- 
- 
-===== Дополнительные настройки TLS/SSL ===== 
-Раздел: <code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL</code> 
- 
-**AllowInsecureRenegoClients**, **AllowInsecureRenegoServers** - разрешить пересогласование на небезопасные варианты. Однозначно 0.\\ 
- 
-**DisableRenegoOnClient**, **DisableRenegoOnServer** - отключить пересогласование во время работы (насколько я понял про временный ключ шифрования). В дискуссиях/статьях упоминали что частое пересогласование - возможность DoS атаки, тк потребляет много ресурсов CPU.\\ 
-Поставил 0: сервер у меня только RDP, а DoS-ить клиента не очень перспективно таким образом, к тому же функционал в принципе нужный.\\ 
-Подробнее: [[http://www.atraining.ru/beast-move-from-ssl-to-tls/]]\\ 
- 
-**UseScsvForTls** - если выставить 1 то это отключит механизм пересогласования для совместимости со старыми реализациями TLS 1.0 (Vista без сп1). Ставим 0, чтобы включить расширение Renegotiation Info (RFC5746).\\ 
-Подробности: [[http://blogs.msdn.com/b/jpsanders/archive/2010/09/08/understanding-problems-with-ms10-049-kb-980436-and-ietf-rfc5746.aspx]]\\ 
-[[http://support.microsoft.com/kb/980436]]\\ 
-[[http://netsekure.org/2010/08/windows-ssltls-update-for-secure-renegotiation/]]\\ 
-[[http://www.atraining.ru/beast-move-from-ssl-to-tls/]] 
- 
-**SendExtraRecord** - SSL/TLS 1.0 - защита от beast атак:\\ 
-0 - вроде включено\\ 
-1 - точно включено, но SQL и пр ломается\\ 
-2 - патч совсем выключен, BEAST дырка точно включена.\\ 
-[[http://support.microsoft.com/kb/2643584/ru]]\\ 
-[[http://blogs.msdn.com/b/kaushal/archive/2012/01/21/fixing-the-beast.aspx]]\\ 
-(тут рекомендуют использовать RC4 а патч выключать, но в RC4 нашли неприятные моменты и теперь его не рекомендуется использовать)\\ 
- 
- 
-===== Утилита ===== 
-И на последок, есть такая утилита: [[https://www.nartac.com/Products/IISCrypto/Default.aspx]]\\ 
-{{:ru:software:win:sec:iis_crypto.png|}} 
- 
- 
-===== PS ===== 
-For fun: [[http://support.microsoft.com/kb/2643584]]\\ 
-  * Many applications that use schannel are written so that the receiver side assumes application data will be packed into a single packet. This occurs even though the application calls schannel for decryption. The applications ignore a flag that is set by schannel. The flag indicates to the application that there is more data to be decrypted and picked up by the receiver. **This method does not follow the MSDN-prescribed method of using schannel. Because the security update enforces record-splitting, this breaks such applications.** 
-  * **Broken applications include Microsoft products and in-box components.** The following are examples of scenarios that may be broken when the SendExtraRecord registry value is set to 1: 
- * All SQL products, and applications that are built onto SQL.\\ 
- * Terminal Servers that have Network Level Authentication (NLA) turned on. By default, NLA is enabled in Windows Vista and later versions of Windows.\\ 
- * Some Routing Remote Access Service (RRAS) scenarios.\\ 
  
software/win/sec/enabletls.txt · Last modified: 2022/02/05 04:38 by root