"Kaniş" güvenlik açığını azaltmak için, sunucumda (bu durumda HTTPS yerine TLS) SSLv3 desteğini devre dışı bırakmak istiyorum. Bunu yaptığımı doğrulamak için openssl s_client
'i nasıl kullanabilirim?
"Kaniş" güvenlik açığını azaltmak için, sunucumda (bu durumda HTTPS yerine TLS) SSLv3 desteğini devre dışı bırakmak istiyorum. Bunu yaptığımı doğrulamak için openssl s_client
'i nasıl kullanabilirim?
SSLv3 desteğini devre dışı bırakıp bırakmadığınızı kontrol etmek için aşağıdakini çalıştırın
openssl s_client -connect example.com:443 -ssl3
3073927320: hata: 14094410: SSL rutinleri: SSL3_READ_BYTES: sslv3 uyarı anlaşması hatası: s3_pkt.c: 1258: SSL uyarı numarası 403073927320: error: 1409E0E5: SSL rutinleri: SSL3_WRITE_BYTES: ssl el sıkışma hatası: s3_pkt.c: 596:
SSLv3'ün sunucuda devre dışı olduğu anlamına gelir. Aksi takdirde, bağlantı başarıyla kurulur.
Alternatif olarak, desteklenen sürüm için sunucuyu taramak için nmap kullanabilirsiniz:
# nmap --script ssl-enum-ciphers example.com 2014-10-15'te Nmap 6.47 (http://nmap.org) başlatılıyor 03:19 example.com için PDTNmap tarama raporu (203.0.113.100) Host is up (0.090s gecikme). 203.0.113.100 için .rDNS kaydı: edge.example.com Gösterilmiyor: 997 filtrelenmiş bağlantı noktalarıPORT STATE SERVICE80 / tcp http443 / tcp açık https | ssl-enum-ciphers: | ** SSLv3: Desteklenen şifreleme bulunamadı ** | TLSv1.0:
Bir yan notta, aşağıdaki gibi ssl-enum-ciphers komut dosyasıyla nmap
kullanabilirsiniz
nmap --script ssl-enum-ciphers -p 443 örneği .com
Böyle bir yanıt alacaksınız.
PORT STATE SERVICE443 / tcp open https | ssl-enum-ciphers: | SSLv3: | şifreler: | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - güçlü | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - güçlü | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - güçlü | TLS_RSA_WITH_RC4_128_MD5 - güçlü | TLS_RSA_WITH_RC4_128_SHA - güçlü | kompresörler: | BOŞ | TLSv1.0: | şifreler: | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - güçlü | TLS_RSA_WITH_RC4_128_MD5 - güçlü | TLS_RSA_WITH_RC4_128_SHA - güçlü | kompresörler: | BOŞ | TLSv1.1: | şifreler: | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - güçlü | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - güçlü | kompresörler: | BOŞ | TLSv1.2: | şifreler: | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - güçlü | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - güçlü | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - güçlü | kompresörler: | NULL | _ less strong: strong
Gördüğünüz gibi ssl / tls'nin desteklenen tüm sürümlerinin yanı sıra şifre paketlerini de listeliyor
Bu testi SSLv3 protokolünün kullanılabilirliği için oluşturdum. CBC şifrelerinin kullanımda olduğunu da gösteren bir dizeyi aramanın muhtemelen daha iyi bir yolu vardır, ancak çoğu insan SSLv3'ün mevcut olup olmadığını bilmek istiyor gibi görünüyor.
Dikkat edilmesi gereken birkaç nokta:
komut dosyası:
"awk '{print içinde ip için $ 1} '< allexternal.txt`; eğer gtimeout 30 openssl s_client -connect $ ip: 443 -ssl3 | grep -q 'Protokol: SSLv3'; sonra echo $ ip SSLv3 algılandı >> sslv3output; else echo $ ip SSLv3 algılanmadı >> sslv3output; fi; bitti
Yalnızca SSLv3 devre dışı bırakılırsa, openssl s_client
'i yalnızca TLS kullanmaya zorlayabilirsiniz:
openssl s_client -connect exmaple.com:443 -tls1 kod>
OpenSSL'deki -ssl3 seçeneğinin artık derleme sırasında etkinleştirilmesi gerektiğine dikkat etmek önemlidir. Önceden derlenmiş ikili dosyalar üzerinde çalışıyorsanız, seçenek kullanılamayabilir. Bu soruna bakın: https://github.com/openssl/openssl/issues/6801
Alternatif bir araç testsl.sh'dir. Bu, protokolleri, şifreleri ve seçili güvenlik açıklarını kontrol eder: https://github.com/drwetter/testssl.sh