This shows you the differences between two versions of the page.
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: | ||
- | ====== Повышаем безопасность встроенных средств: | ||
- | Затрагивает только софт который использует системные API для SSL: IE, WebDav redirector, update client, RDP, SQL NLA, RRAS...\\ | ||
- | Не затрагивает софт который со своими крипто средствами, | ||
- | |||
- | По умолчанию в Windows 7 (остальные смотрите сами) использует TLS1.0 и SSLv3, также не использует сильные алгоритмы хеширования, | ||
- | Однако данные алгоритмы реализованы и могут быть включены.\\ | ||
- | |||
- | ===== Предупреждение ===== | ||
- | **ВСЕ МОДИФИКАЦИИ НА СВОЙ СТРАХ И РИСК!!!**\\ | ||
- | .reg файлы не публикую специально, | ||
- | |||
- | 1. Если у вас установлены КриптоПро или ещё какие либо сторонние/ | ||
- | |||
- | 2. Есть реальная возможность сломать RDP на сервере выставив некоторые параметры, | ||
- | |||
- | |||
- | ===== Алгоритмы шифрования и обмена ключами ===== | ||
- | **Предупреждение**: | ||
- | Следите/ | ||
- | |||
- | |||
- | В реестре, | ||
- | < | ||
- | многостроковый параметр: | ||
- | Значение по умолчанию | ||
- | < | ||
- | 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</ | ||
- | |||
- | **Включаем всё** | ||
- | < | ||
- | 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</ | ||
- | |||
- | Если сравнить, | ||
- | Когда я удалил некоторые слабые варианты, | ||
- | Список алгоритмов можно посмотреть тут: gpedit.msc, Конфигурация компьютера, | ||
- | в описании этого параметра есть все доступные алгоритмы.\\ | ||
- | Пользоваться групповой политикой не стал - ограничение в 1023 знака, в такое даже алгоритмы по умолчанию не вписываются.\\ | ||
- | |||
- | Результат, | ||
- | Было: SSL_PROTO:" | ||
- | Стало: SSL_PROTO:" | ||
- | (у меня на сервере жёстко заданы алгоритмы и для случая " | ||
- | |||
- | ===== Алгоритмы ЭЦП в SSL/TLS ===== | ||
- | Ключ: < | ||
- | многостроковый параметр: | ||
- | |||
- | Значение по умолчанию | ||
- | < | ||
- | ECDSA/ | ||
- | ECDSA/ | ||
- | ECDSA/SHA1 | ||
- | RSA/SHA512 | ||
- | RSA/SHA256 | ||
- | RSA/SHA384 | ||
- | RSA/SHA1 | ||
- | DSA/ | ||
- | Единственное, | ||
- | Не так давно ECDSA/ | ||
- | |||
- | ===== Включение/ | ||
- | SSLv3 - пора закапывать, | ||
- | TLS1.0 - в принципе тоже, но на него завязана работа RDP и много кто только на нём сидит до сих пор. Поэтому безболезненно отключить его нельзя.\\ | ||
- | Тем временем МС рекомендует: | ||
- | < | ||
- | [[http:// | ||
- | при этом 1.1 и 1.2 они оставляют в подвешенном состоянии.\\ | ||
- | |||
- | ==== Отключаем SSL2 и SSL3 ==== | ||
- | < | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client] | ||
- | " | ||
- | " | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server] | ||
- | " | ||
- | " | ||
- | |||
- | [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] | ||
- | " | ||
- | " | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server] | ||
- | " | ||
- | " | ||
- | |||
- | ==== Включаем TLS 1.1 и 1.2 ==== | ||
- | < | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] | ||
- | " | ||
- | " | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] | ||
- | " | ||
- | " | ||
- | |||
- | [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] | ||
- | " | ||
- | " | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] | ||
- | " | ||
- | " | ||
- | |||
- | <spoiler title=" | ||
- | [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] | ||
- | " | ||
- | " | ||
- | |||
- | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] | ||
- | " | ||
- | " | ||
- | На TLS 1.0 в венде много завязано намертво, | ||
- | |||
- | Подробности по включению/ | ||
- | |||
- | |||
- | ===== Дополнительные настройки TLS/SSL ===== | ||
- | Раздел: | ||
- | |||
- | **AllowInsecureRenegoClients**, | ||
- | |||
- | **DisableRenegoOnClient**, | ||
- | Поставил 0: сервер у меня только RDP, а DoS-ить клиента не очень перспективно таким образом, | ||
- | Подробнее: | ||
- | |||
- | **UseScsvForTls** - если выставить 1 то это отключит механизм пересогласования для совместимости со старыми реализациями TLS 1.0 (Vista без сп1). Ставим 0, чтобы включить расширение Renegotiation Info (RFC5746).\\ | ||
- | Подробности: | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | |||
- | **SendExtraRecord** - SSL/TLS 1.0 - защита от beast атак:\\ | ||
- | 0 - вроде включено\\ | ||
- | 1 - точно включено, | ||
- | 2 - патч совсем выключен, | ||
- | [[http:// | ||
- | [[http:// | ||
- | (тут рекомендуют использовать RC4 а патч выключать, | ||
- | |||
- | |||
- | ===== Утилита ===== | ||
- | И на последок, | ||
- | {{: | ||
- | |||
- | |||
- | ===== PS ===== | ||
- | For fun: [[http:// | ||
- | * 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, | ||
- | * **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.\\ | ||