Lerijs Vols: 5 programmēšanas valodas, kas jāzina visiem Lielā domā

Es izmantoju Apache 2.2.34, OpenSSL 1.0.2l. Jā, es zinu, ka tā ir noregulēta un netiek atbalstīta, taču plāni to uzlabot nav tūlītēji.

Es mēģinu saprast atšķirību starp šiem diviem apgalvojumiem. Šķiet, ka abi Apache serveri ierobežo tikai ar TLS 1.2 pieprasījumiem, bet

SSLProtocol all -SSLv2 -SSLv3 SSLProtocol TLSv1.1 TLSv1.2 -SSLv2 -SSLv3 

Abi šķietami ierobežo serveri ar TLSv1.2, vismaz norāda www.ssllabs.com, tāpēc neesmu pārliecināts, kāpēc vienam no mūsu lietotājiem bija problēmas ar otro, kas tika izmantots testa serverī, nevis ar pirmo , kas ir ražošana. Viņi teica, ka viņiem ir jāatjaunina risinājums, lai izmantotu TLSv1.2. Vai kāds spētu noskaidrot, kas šeit notiek?

  • "bet ...." - izskatās, ka šeit kaut kas ir izlaists?
  • Lūdzu, definējiet "vienam no mūsu lietotājiem bija problēmas ar otro". Kāda problēma? Vai TLS rokasspiediens neizdevās? Vai arī izdevās ar citu versiju, nekā gaidīts? Kurš klients tas bija? Vai tas tika izmēģināts ar citu klientu no tā paša datora, piemēram, openssl s_client?

Pamatojoties uz https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol:

Viss

Šis ir īsinājumtaustiņš attiecīgi "+ SSLv2 + SSLv3 + TLSv1" vai - lietojot OpenSSL 1.0.1 un jaunākas versijas - "+ SSLv2 + SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2".

Tāpēc vispirms būtu jāzina, kuru OpenSSL versiju jūs izmantojat.

Pārrakstīsim jūsu paziņojumus:

1) pirms OpenSSL 1.0.1:

 SSLProtocol all -SSLv2 -SSLv3 

kļūst

 SSLProtocol +SSLv2 +SSLv3 +TLSv1 -SSLv2 -SSLv3 

kam droši vien vajadzētu nozīmēt

 SSLProtocol +TLSv1 

2) pēc OpenSSL 1.0.1

tad tas kļūst ar tādu pašu pamatojumu

 SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 

Otra jūsu rīcībā esošā direktīva ir:

 SSLProtocol TLSv1.1 TLSv1.2 -SSLv2 -SSLv3 

Šī direktīva neko nepasaka par TLSv1 (kas faktiski ir 1,0), tāpēc abi apgalvojumi nav līdzvērtīgi.

Viens ļauj TLS 1.0 ( SSLProtocol all -SSLv2 -SSLv3), kur otrs (SSLProtocol TLSv1.1 TLSv1.2 -SSLv2 -SSLv3) pieļauj tikai TLS 1.1 un 1.2

Tādējādi klients, kas atbalsta ne vairāk kā TLS 1.0, varēs izveidot savienojumu ar pirmo gadījumu, nevis ar otro.

Bet, kā jau teicu savā komentārā, jūs sīkāk neaprakstāt klienta problēmu. Būtu nepieciešamas TLS rokasspiediena detaļas gan no viņa puses, gan no Apache žurnāla failiem.

Jūs varat atdarināt savienojumus, izmantojot kaut ko līdzīgu openssl s_client un īpašu karodziņu nodrošināšana, lai piespiestu TLS versiju un pārbaudītu, vai tīmekļa serveris atbild. Vai tādu rīku kā https://testssl.sh/ vai analyze-ssl.pl vietnē https://github.com/noxxi/p5-ssl-tools

Nobeiguma piezīmes:

  • mūsdienās, izņemot ļoti svarīgu iemeslu dēļ (piemēram, klientu, kuru jūs absolūti nevarat atjaunināt), jums vajadzētu iespējot tikai 1.2 (vai jaunāku). Šajā virzienā iet dažādas atsauces un normas gan valdības līmenī, gan nozares vadlīnijās (piemēram, PCI-DSS), gan tehniskajos standartos (piemēram, IETF).
  • iepriekš minētais ir tikai labākais minējums, jo joprojām var būt noklusējuma versiju saraksts, kas Apache vai OpenSL, kas var sajaukt, un var atšķirties starp teikšanu +TLSv1.2 pret tikko TLSv1.2 (vispirms pievienojat vērtību esošam noklusējuma sarakstam, otrajā gadījumā pašreizējo noklusējuma sarakstu varat aizstāt tikai ar vienu vērtību).
  • Izmantojot OpenSSL 1.0.2l.
  • Jā, man jāsaņem sīkāka informācija no pārdevēja. Viņi teica, ka viņi atjaunināja savu lietojumprogrammu (es uzskatu, ka balstīta uz PHP), lai atbalstītu TLSv1.2. Tātad varbūt viņi izmantoja TLSv1.0?
  • Viņi, iespējams, ir jauninājuši uz 1.0.2, līdzās PHP, lai iespējotu TLS 1.1 un 1.2 (kas tika pievienoti OpenSSL 1.0.1, tāpēc es domāju, ka tie iepriekš bija kādā 0.9 versijā). Ņemiet vērā, ka no OpenSSL vietnes: "Versija 1.0.2 tiks atbalstīta līdz 2019-12-31 (LTS)."

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?