From 9e17ae5e67eaec0fd860f132426060ff82b91fdb Mon Sep 17 00:00:00 2001 From: LUXEY Adrien Date: Fri, 17 Jul 2020 16:05:52 +0200 Subject: [PATCH] performed a SSL security test, needs to be reviewed --- .../2020-07_SSL_Server_Test_luxeylab.net.html | 4317 +++++++++++++++++ .../analyze_report.css | 788 +++ .../analyze_singleView.js | 204 + .../analyze_ssllabs.css | 264 + .../collapse.png | Bin 0 -> 1060 bytes .../expand.png | Bin 0 -> 1074 bytes .../icon-certificate.png | Bin 0 -> 1484 bytes .../icon-certificates.png | Bin 0 -> 1599 bytes .../icon-chain.png | Bin 0 -> 1938 bytes .../icon-cipher.png | Bin 0 -> 1296 bytes .../icon-handshake.png | Bin 0 -> 1964 bytes .../icon-http.png | Bin 0 -> 3030 bytes .../icon-misc.png | Bin 0 -> 992 bytes .../icon-protocol-details.png | Bin 0 -> 940 bytes .../icon-protocol.png | Bin 0 -> 1247 bytes .../main.css | 745 +++ .../qualys-ssl-labs-logo.png | Bin 0 -> 21209 bytes 17 files changed, 6318 insertions(+) create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net.html create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_report.css create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_singleView.js create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_ssllabs.css create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/collapse.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/expand.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-certificate.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-certificates.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-chain.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-cipher.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-handshake.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-http.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-misc.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol-details.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol.png create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/main.css create mode 100644 security/2020-07_SSL_Server_Test_luxeylab.net_files/qualys-ssl-labs-logo.png diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net.html b/security/2020-07_SSL_Server_Test_luxeylab.net.html new file mode 100644 index 0000000..88ea9dc --- /dev/null +++ b/security/2020-07_SSL_Server_Test_luxeylab.net.html @@ -0,0 +1,4317 @@ + + + SSL Server Test: luxeylab.net (Powered by Qualys SSL Labs) + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+
SSL Report: + luxeylab.net + (92.243.8.85)
+
+ Assessed on:  Fri, 17 Jul 2020 14:00:40 UTC + | Hide + | Clear cache +
+ + +
+ +
+
+ Due to a recently discovered bug in Apple's code, your browser is exposed to MITM attacks. Click here for more information. +

+
+ + + +
+ +
+
Summary
+
+
+ +
Overall Rating
+ +
+ B +
+ + + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+
+
0
+
20
+
40
+
60
+
80
+
100
+
+
+ +
+
+
Certificate
+
 
+
+ +
+
Protocol Support
+
 
+
+ +
+
Key Exchange
+
 
+
+ +
+
Cipher Strength
+
 
+
+
+ +
+ +
+ +
+ Visit our documentation page + for more information, configuration guides, and books. Known issues are documented + here. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ This server supports TLS 1.0 and TLS 1.1. + Grade capped to B. MORE INFO » +
+ + + + + + + + +
+ This server supports TLS 1.3. +
+ + + + +
+ HTTP Strict Transport Security (HSTS) with long duration deployed on this server. +  MORE INFO » +
+ + + + + +
+
+ + + + + +
+
Certificate #1: RSA 2048 bits (SHA256withRSA) +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Server Key and Certificate #1
+ +
+
+
Subject + luxeylab.net +
+ Fingerprint SHA256: 3173b385c4db4e0d5ef8ea7cadf3f3a84d099e3dbcb8f507ea194a820855e7aa
+ Pin SHA256: sx2MqZVMZMHAz7CFZCV2Ki38O1PPMUDVWrwUhTgKppY= +
+
Common namesluxeylab.net
Alternative namesluxeylab.net www.luxeylab.net
Serial Number043611de408f4c669e3a0228a186b6025229
Valid fromThu, 11 Jun 2020 15:50:01 UTC
Valid untilWed, 09 Sep 2020 15:50:01 UTC (expires in 1 month and 23 days)
KeyRSA 2048 bits + (e 65537)
Weak key (Debian) No
IssuerLet's Encrypt Authority X3
+ AIA: http://cert.int-x3.letsencrypt.org/ +
+
+
Signature algorithmSHA256withRSA
Extended ValidationNo
Certificate TransparencyYes + (certificate)
OCSP Must StapleNo
Revocation information + OCSP
+ OCSP: http://ocsp.int-x3.letsencrypt.org +
+
+
Revocation statusGood (not revoked) + + + + +
DNS CAANo (more info)
TrustedYes +
+ Mozilla  + Apple  + Android  + Java  + Windows  +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Additional Certificates (if supplied)
+ +
+
+
Certificates provided2 (2557 bytes)
Chain issuesNone
#2
SubjectLet's Encrypt Authority X3
+ + Fingerprint SHA256: 25847d668eb4f04fdd40b12b6b0740c567da7d024308eb6c2c96fe41d9de218d
+ Pin SHA256: YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=
Valid untilWed, 17 Mar 2021 16:40:46 UTC (expires in 8 months)
KeyRSA 2048 bits + (e 65537)
IssuerDST Root CA X3
Signature algorithm + SHA256withRSA
+ +

+ + + + + + + + +
+ + + + Certification Paths
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Click here to expand

+
+
+ +
+
Configuration
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Protocols
TLS 1.3Yes
TLS 1.2Yes
TLS 1.1Yes
TLS 1.0 Yes +
SSL 3No
SSL 2No
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cipher Suites
+ + +
# TLS 1.3 (suites in server-preferred order) +
+
+ TLS_AES_256_GCM_SHA384 (0x1302) + +   ECDH secp384r1 (eq. 7680 bits RSA)   FS + + + 256
+ TLS_CHACHA20_POLY1305_SHA256 (0x1303) + +   ECDH secp384r1 (eq. 7680 bits RSA)   FS + + + 256
+ TLS_AES_128_GCM_SHA256 (0x1301) + +   ECDH secp384r1 (eq. 7680 bits RSA)   FS + + + 128
+ + +
# TLS 1.2 (suites in server-preferred order) +
+
+ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) + +   ECDH secp384r1 (eq. 7680 bits RSA)   FS + + + 256
+ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) + +   ECDH secp384r1 (eq. 7680 bits RSA)   FS + + + 128
+ TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f) + +   + + DH 2048 bits   FS + + + 256
+ TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e) + +   + + DH 2048 bits   FS + + + 128
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) +   ECDH secp384r1 (eq. 7680 bits RSA)   FS +   WEAK + 256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) +   ECDH secp384r1 (eq. 7680 bits RSA)   FS +   WEAK + 256
+ TLS_DHE_RSA_WITH_AES_256_CCM_8 (0xc0a3) + +   + + DH 2048 bits   FS + + + 256
+ TLS_DHE_RSA_WITH_AES_256_CCM (0xc09f) + +   + + DH 2048 bits   FS + + + 256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b) +   + + DH 2048 bits   FS +   WEAK + 256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39) +   + + DH 2048 bits   FS +   WEAK + 256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) +   ECDH secp384r1 (eq. 7680 bits RSA)   FS +   WEAK + 128
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) +   ECDH secp384r1 (eq. 7680 bits RSA)   FS +   WEAK + 128
+ TLS_DHE_RSA_WITH_AES_128_CCM_8 (0xc0a2) + +   + + DH 2048 bits   FS + + + 128
+ TLS_DHE_RSA_WITH_AES_128_CCM (0xc09e) + +   + + DH 2048 bits   FS + + + 128
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x67) +   + + DH 2048 bits   FS +   WEAK + 128
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33) +   + + DH 2048 bits   FS +   WEAK + 128
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d) +   WEAK + 256
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c) +   WEAK + 128
TLS_RSA_WITH_AES_256_CCM_8 (0xc0a1) +   WEAK + 256
TLS_RSA_WITH_AES_256_CCM (0xc09d) +   WEAK + 256
TLS_RSA_WITH_AES_128_CCM_8 (0xc0a0) +   WEAK + 128
TLS_RSA_WITH_AES_128_CCM (0xc09c) +   WEAK + 128
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3d) +   WEAK + 256
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c) +   WEAK + 128
TLS_RSA_WITH_AES_256_CBC_SHA (0x35) +   WEAK + 256
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) +   WEAK + 128
+ + +
# TLS 1.1 (suites in server-preferred order) +
+
+ + +
# TLS 1.0 (suites in server-preferred order) +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Handshake Simulation
+ Android 2.3.7 +   No SNI 2 + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_DHE_RSA_WITH_AES_128_CBC_SHA + + +   + DH 2048 + + + +  FS + + +
+ Android 4.0.4 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 4.1.1 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 4.2.2 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 4.3 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 4.4.2 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 5.0.0 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 6.0 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 7.0 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 8.0 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 8.1 + + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Android 9.0 + + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Baidu Jan 2015 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ BingPreview Jan 2015 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Chrome 49 / XP SP3 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Chrome 69 / Win 7 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Chrome 70 / Win 10 + + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Chrome 80 / Win 10 +  R + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Firefox 31.3.0 ESR / Win 7 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Firefox 47 / Win 7 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Firefox 49 / XP SP3 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Firefox 62 / Win 7 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Firefox 73 / Win 10 +  R + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Googlebot Feb 2018 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ IE 7 / Vista + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ IE 8 / XP +   No FS 1   No SNI 2 + Server sent fatal alert: handshake_failure
+ + + +
+ IE 8-10 / Win 7 +  R + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ IE 11 / Win 7 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 + + +   + DH 2048 + + + +  FS + + +
+ IE 11 / Win 8.1 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 + + +   + DH 2048 + + + +  FS + + +
+ IE 10 / Win Phone 8.0 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ IE 11 / Win Phone 8.1 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ IE 11 / Win Phone 8.1 Update +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 + + +   + DH 2048 + + + +  FS + + +
+ IE 11 / Win 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Edge 15 / Win 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Edge 16 / Win 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Edge 18 / Win 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Edge 13 / Win Phone 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Java 6u45 +   No SNI 2 + Client does not support DH parameters > 1024 bits
+ + RSA 2048 (SHA256) +   |  + + TLS 1.0 + +  |  + + TLS_DHE_RSA_WITH_AES_128_CBC_SHA + +  |  DH 2048 + + +
+ Java 7u25 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Java 8u161 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Java 11.0.3 + + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Java 12.0.1 + + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ OpenSSL 0.9.8y + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_DHE_RSA_WITH_AES_256_CBC_SHA + + +   + DH 2048 + + + +  FS + + +
+ OpenSSL 1.0.1l +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ OpenSSL 1.0.2s +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ OpenSSL 1.1.0k +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ OpenSSL 1.1.1c +  R + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 5.1.9 / OS X 10.6.8 + + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 6 / iOS 6.0.1 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 6.0.4 / OS X 10.8.4 +  R + RSA 2048 (SHA256) +   + + TLS 1.0 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 7 / iOS 7.1 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 7 / OS X 10.9 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 8 / iOS 8.4 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 8 / OS X 10.10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 9 / iOS 9 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 9 / OS X 10.11 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 10 / iOS 10 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 10 / OS X 10.12 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 12.1.2 / MacOS 10.14.6 Beta +  R + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Safari 12.1.1 / iOS 12.3.1 +  R + - +   + + TLS 1.3 + + + + TLS_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Apple ATS 9 / iOS 9 +  R + RSA 2048 (SHA256) +   + + TLS 1.2 + + > http/1.1 +   + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ Yahoo Slurp Jan 2015 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ YandexBot Jan 2015 + + RSA 2048 (SHA256) +   + + TLS 1.2 + + + + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + + + +   + ECDH secp384r1 + + +  FS + + +
+ + +
# Not simulated clients (Protocol mismatch)
+
+ IE 6 / XP +   No FS 1   No SNI 2 + Protocol mismatch (not simulated)
+ + + +
+ +
+ (1) Clients that do not support Forward Secrecy (FS) are excluded when determining support for it. +
+ (2) No support for virtual SSL hosting (SNI). Connects to the default site if the server uses SNI. +
+ (3) Only first connection attempt simulated. Browsers sometimes retry with a lower protocol version. +
+ (R) Denotes a reference browser or client, with which we expect better effective security. +
+ (All) We use defaults, but some platforms do not use their best protocols and features (e.g., Java 6 & 7, older IE). +
+ (All) Certificate trust is not checked in handshake simulation, we only perform TLS handshake. +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Protocol Details
DROWNNo, server keys and hostname not seen elsewhere with SSLv2
+
+ (1) For a better understanding of this test, please read this longer explanation
+ (2) Key usage data kindly provided by the Censys network search engine; original DROWN website here
+ (3) Censys data is only indicative of +possible key and certificate reuse; possibly out-of-date and not +complete
+
+ + +
Secure RenegotiationSupported
Secure Client-Initiated RenegotiationNo
Insecure Client-Initiated RenegotiationNo
BEAST attack + Not mitigated server-side (more info) +   TLS 1.0: 0xc014 +
POODLE (SSLv3) + No, SSL 3 not supported (more info) +
POODLE (TLS) + No + (more info) +
Zombie POODLENo (more info) +   TLS 1.2 : 0xc014
GOLDENDOODLENo (more info) +   TLS 1.2 : 0xc014
OpenSSL 0-LengthNo (more info) +   TLS 1.2 : 0xc014
Sleeping POODLENo (more info) +   TLS 1.2 : 0xc014
Downgrade attack prevention + Yes, TLS_FALLBACK_SCSV supported (more info) +
SSL/TLS compressionNo
RC4No
Heartbeat (extension)No
Heartbleed (vulnerability)No (more info)
Ticketbleed (vulnerability)No (more info)
OpenSSL CCS vuln. (CVE-2014-0224)No (more info)
OpenSSL Padding Oracle vuln.
(CVE-2016-2107)
No (more info)
ROBOT (vulnerability)No (more info)
Forward SecrecyYes (with most browsers) +   ROBUST (more info)
ALPNYes   + http/1.1 +
NPNYes   + http/1.1 +
Session resumption (caching)Yes
Session resumption (tickets)No
OCSP staplingYes + +
Strict Transport Security (HSTS)Yes
max-age=63072000; includeSubDomains; +
HSTS Preloading + + + + + Not in: + Chrome  + Edge  + Firefox  + IE  + + +
Public Key Pinning (HPKP)No (more info)
Public Key Pinning Report-OnlyNo
Public Key Pinning (Static)No (more info)
Long handshake intoleranceNo
TLS extension intoleranceNo
TLS version intolerance + + + + + + No
Incorrect SNI alertsNo
Uses common DH primesNo
DH public server param (Ys) reuseNo
ECDH public server param reuseNo
Supported Named Groups + secp384r1
SSL 2 handshake compatibility Yes
0-RTT enabled No
+ +

+ + + + + + + + + + + +
+ + + HTTP Requests +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 1 https://luxeylab.net/ +  (HTTP/1.1 200 OK) +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Miscellaneous
Test dateFri, 17 Jul 2020 13:58:02 UTC
Test duration157.610 seconds
HTTP status code + 200 +
HTTP server signaturenginx
Server hostname xvm-8-85.dc0.ghst.net
+ +

+ +
+
+ + + +
+ + +

SSL Report v2.1.5

+ +
+ + + + + +
+ +
+ +
+ + + \ No newline at end of file diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_report.css b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_report.css new file mode 100644 index 0000000..7d99ef6 --- /dev/null +++ b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_report.css @@ -0,0 +1,788 @@ + +.highlight { + color: green; +} + +.warning { + color: #F88017; +} + +.error { + color: red; +} + +.moreInfo { + font-size: 11px; + font-weight: bold; +} + +#certificateMismatch li { + font-size: 20px; + line-height: 30px; + font-weight: bold; +} + +#warningBeta { + margin: 20px; + margin-bottom: 0px; + text-align: center; + padding: 5px; + font-size: 12px; + font-weight: bold; + xborder: 1px solid #bbbbbb; + background: #009ddf; + color: #ffffff; +} + +#warningBox { + margin-bottom: 0px; + text-align: center; + padding: 15px; + font-size: 18px; + border: 1px solid #bbbbbb; + background: #fffacd; +} + +.testDate { + font-size: 12px; + line-height: 24px; +} + +.grayText { + font-size: 12px; + line-height: 24px; + color : #666666; +} + +.dhParams { + font-size: 10px; + color : #666666; +} + +.dhParamsNoColour { + font-size: 10px; +} + +.grayCode { + font: 12px/20px monospace; + color : #666666; +} + +.reportTitle { + margin: 0px; + margin-bottom: 5px; + font: 26px/28px Arial, Helvetica, sans-serif; + color: #666666; + font-weight: bold; +} + +.reportTime { + margin-bottom: 20px; + color : #666666; +} + +.reportInfo { + font-size: 10px; + color: #666666; +} + +.url { + font-weight: bold; + color: #444444; +} + +.ip { + font-size: 18px; + color: #666666; +} + +.box { + border: 3px solid #a6c2c4; + background: #fdfdfd; + text-align: left; +} + + .boxHead { + color: #009ddf; + font-weight: bold; + padding-bottom: 5px; + vertical-align: middle; + border-bottom: 2px solid #c6d2d4; + font-size: 14px; + } + + .boxContent { + padding: 15px; + font-size: 12px; + } + + .box p { + margin: 6px 0px; + } + + a:link { + color: #005ccf; + } + + .box a { + color: #005ccf; + } + + .box a:hover { + text-decoration: underline; + } + + .box .rating { + float: right; + font-weight: bold; + width: 15px; + text-align: left; + padding-right: 10px; + } + +.submitBox { + padding: 15px; + background: #dbe7f7; + text-align: center; + vertical-align: middle; + margin-bottom: 20px; + font-size: 16px; + font-weight: bold; + color: #009ddf; +} + +.submitBox input { + font-size: 16px; + padding: 4px; +} + +.submitError { + text-align: center; + font-size: 12px; + line-height: 14px; + font-weight: bold; + color: #cc0000; + margin-top: 10px; +} + +.reportSection { + width: 980px; + border: 4px solid #a6c2c4; + background: #fdfdfd; + /*margin-top: 20px;*/ + margin-bottom: 20px; + text-align: center; +} + +.bannerSection { + width: 840px; + border: 1px solid #c0c0c0; + background: #fdfdfd; + margin-top: 20px; + margin-bottom: 20px; + text-align: center; + padding: 3px; +} + +.sectionTitle { + text-align: left; + font: 23px/28px Arial, Helvetica, sans-serif; + font-weight: bold; + color: #888888; + padding: 16px; + background: #f7f7f7; + border-bottom: 1px solid #c6d2d4; +} + +.sectionInfo { + font-size: 15px; +} + +.sectionBody { + margin: 20px 15px; +} + +#chart { + margin-top: 20px; + margin-right: 70px; + float: right; + width: 450px; + height: 200px; +} + + .chartScale { + position: absolute; + margin-left: 110px; + width: 360px; + height: 162px; + z-index: 100; + } + + .chartBody { + position: relative; + width: 450px; + z-index: 200; + } + + .chartScaleDiv { + width: 1px; + margin-right: 59px; + height: 162px; + float: left; + background: #bbbbbb; + } + + .chartScaleLabelRow { + position: absolute; + top: 160px; + left: -29px; + } + + .chartScaleLabel { + width: 60px; + float: left; + text-align: left; + color: #999999; + text-align: center; + } + + .chartRow { + height: 28px; + clear: both; + margin-top: 10px; + margin-bottom: 10px; + } + + .chartValue { + float: right; + display: block; + line-height: 28px; + font-weight: bold; + margin-left: 15px; + } + + .chartLabel { + font-size: 11px; + float: left; + display: block; + margin-right: 10px; + line-height: 28px; + width: 100px; + text-align: right; + font-weight: bold; + } + + .chartBar_g{ + float: left; + text-align: right; + height: 28px; + background: url('../images/chart-green.gif') repeat-x; + } + + .chartBar_a { + float: left; + text-align: right; + height: 28px; + background: url('../images/chart-amber.gif') repeat-x; + } + + .chartBar_r { + float: left; + text-align: right; + height: 28px; + background: url('../images/chart-red.gif') repeat-x; + } + +#rating { + text-align: center; + padding: 0px 0px; + margin-bottom: 0px; + float: left; + width: 400px; +} + + .twoRatingMargin { + margin-left: 20px !important; + } + + .ratingTitle { + font-size: 11px; + font-weight: bold; + font-size: 14px; + color: #999999; + } + + .rating_g { + font-family: Arial, Helvetica, sans-serif; + text-align: center; + margin: 15px auto; + width: 128px; + height: 128px; + font-size: 100px; + line-height: 128px; + font-weight: bold; + color: #ffffff; + background: url('../images/rating-green.gif') no-repeat; + } + + .rating_a { + font-family: Arial, Helvetica, sans-serif; + text-align: center; + margin: 15px auto; + width: 128px; + height: 128px; + font-size: 100px; + line-height: 128px; + font-weight: bold; + color: #ffffff; + background: url('../images/rating-amber.gif') no-repeat; + } + + .rating_r { + font-family: Arial, Helvetica, sans-serif; + text-align: center; + margin: 15px auto; + width: 128px; + height: 128px; + font-size: 100px; + line-height: 128px; + font-weight: bold; + color: #ffffff; + background: url('../images/rating-red.gif') no-repeat; + } + + .rating_r_icon { + font-family: Arial, Helvetica, sans-serif; + text-align: center; + display:inline; + font-size: 12px; + font-weight: bold; + color: #ffffff; + background: url('../images/rating-red.gif') no-repeat; + background-size: 100% 100%; + } + + .belowGrade { + line-height: 16px; + font-weight: normal; + font-size: 11px; + color: grey; + } + + .percentage_g { + font-weight: bold; + font-size: 28px; + color: #7ed84d; + } + + .percentage_a { + font-weight: bold; + font-size: 28px; + color: #ffa100; + } + + .percentage_r { + font-weight: bold; + font-size: 28px; + color: #ff553e; + } + + +table.reportTable { + width: 850px; + margin: 0px; + padding: 0px; + margin-top: 0px; + font-size: 12px; + line-height: 20px; + margin-right: 10px; +} + + .tableHead { + color: #009ddf; + font-weight: bold; + padding-bottom: 5px; + vertical-align: middle; + border-bottom: 2px solid #c6d2d4; + font-size: 13px; + } + + .tableSubHead { + color: #009ddf; + font-weight: bold; + padding-bottom: 5px; + vertical-align: middle; + padding-top: 15px; + border-bottom: 1px solid #c6d2d4; + font-size: 12px; + } + + .tableLeft { + text-align: left; + padding: 3px 0px; + border-bottom: 1px solid #f0f0f0; + vertical-align: middle; + } + + .tableRight { + width: 50px; + text-align: right; + padding: 3px 0px; + border-bottom: 1px solid #f0f0f0; + vertical-align: middle; + } + + .tableLabel { + text-align: left; + padding: 3px 0px; + padding-right: 10px; + color: #444444; + border-bottom: 1px solid #f0f0f0; + vertical-align: middle; + font-size: 12px; + font-weight: bold; + width: 250px; + } + + .tableLabelTop { + text-align: left; + padding: 3px 0px; + padding-right: 10px; + color: #444444; + border-bottom: 1px solid #f0f0f0; + vertical-align: top; + font-size: 12px; + font-weight: bold; + width: 180; + } + + .tableLabelRight { + text-align: right; + padding: 3px 0px; + padding-right: 15px; + color: #444444; + border-bottom: 1px solid #f0f0f0; + vertical-align: middle; + font-size: 12px; + font-weight: bold; + } + + .tableCell { + text-align: left; + padding: 3px 0px; + border-bottom: 1px solid #f0f0f0; + vertical-align: middle; + font-size: 12px; + word-wrap: break-word; + word-break: break-all; + word-break: break-word; + -webkit-hyphens: auto; + -moz-hyphens: auto; + hyphens: auto; + } + + .tableIcon { + text-align: right; + padding: 0px; + padding-left: 15px; + vertical-align: top; + width: 20px; + } + + .tableIcon img { + vertical-align: middle; + margin-top: 2px; + } + +.fleft { + float: left; +} + +.fright { + float: right; +} + +.black { + color: #000000; +} + +.g { + color: #4ec83d; +} + +.a { + color: #ffa100; +} + +.r { + color: #ef251e; +} + +.b { + color: #009ddf; +} + +#urlInput { + width: 500px; + font-size: 24px; + margin-bottom: 20px; + padding: 4px; +} + +#urlSubmit { + font-size: 24px; +} + +.intro { + font-size: 11px; + line-height: 16px; + width: 400px; + text-align: center; + margin: 0px auto; + margin-top: 20px; +} + +.tIcon { + float: left; + margin-right: 10px; +} + +.note { + position: absolute; + left: 0px; + top: 0px; + width: 300px; + border: 2px solid #ffffff; + z-index: 1000; +} + +.noteBack { + border: 2px solid #c6d2d4; + background: #dddfe0; +} + +.noteHead { + color: #ffffff; + padding: 2px 6px; + font-weight: bold; +} + +.noteHead.green { + background: url('../images/chart-green.gif') repeat-x; +} + +.noteHead.amber { + background: url('../images/chart-amber.gif') repeat-x; +} + +.noteHead.red { + background: url('../images/chart-red.gif') repeat-x; +} + + +.noteBody { + font-size: 11px; + padding: 8px 10px; + text-align: left; +} + +#multiTable { + border: 3px solid #a6c2c4; + width: 1040px; +} + +#multiTable th { + padding: 14px; + background: #CFECEC; + border: 1px solid #a6c2c4; + font-size: 18px; +} + +#multiTable td { + border: 1px solid #CFECEC; +} + +.greySmall { + color : #666666 !important; + font-size: 10px; +} + +.greenSmall { + color : green; + font-size: 10px; +} + +.orangeSmall { + color : #F88017; + font-size: 10px; +} + +.redSmall { + color : red; + font-size: 10px; +} + +img { + border: none; +} + +table { + border-collapse: collapse; +} + +div.icon-download +{ + width: 12px; + height: 12px; + background: url('../images/download.png'); + background-repeat: no-repeat; + background-size: 12px 12px; +} + +.reportSubHeading { + float: left; + width: 825px; +} +.hideIcon { + text-align: center; + display: block; + width: 14px; + height: 14px; + cursor: pointer; + float: right; +} + +.hideIcon.indent { + margin-top: 8px; +} + +.showIcon { + text-align: center; + display: block; + width: 14px; + height: 14px; + cursor: pointer; + float: right; + display: none; +} + +.showIcon.indent { + margin-top: 8px; +} + +.expand { + text-align: center; +/* font-weight: bold;*/ + color: #009ddf; + padding: 15px; + cursor: pointer; +} + +.expand span { + border: 1px solid #ddd; + padding: 5px 12px; +} + +.normal { + font-weight: normal; +} + +.count { + text-align: center; + font-weight: bold; + border: 1px solid #009ddf; + color: #009ddf; + padding: 1px 4px 0px 4px; + border-radius: 2px; + margin-right: 5px; + //cursor: pointer; +} + +.tableCellCenter2 { + width: 75px; + text-align: center; + padding-left: 10px; + padding-right: 10px; + font-size: 11px; +} + +.reportTable.indent { + margin-left: 75px; +} + + +.simCertLink:link { + color: black; + text-decoration: none; +} + +.simCertLink:visited { + color: black; + text-decoration: none; +} + +.simCertLink:hover { + color: black; + text-decoration: none; +} + +.ratingOne { + float: left; + margin-left: 35px; +} + +.ratingMiddle { + float: left; + margin-top: 24px; + width: 106px; +} + +.middleImg { + width: 26px; + height: 26px; +} +.ratingSecond { + float: left; + background-size: 64px 64px; + font-size: 32px; + background-position: center; + margin: 0px auto; + height: 64px; + width: 64px; + line-height: 64px; + margin-top: 8px; +} + +.ratingTitleOne { + width: 200px; +} + +.ratingTitleTwo { + float: left; + margin-top: 50px; + width: 200px; + margin-left: 36px; + font-size: 12px; +} + +.belowGradeOne { + text-align: center; + float: left; + clear: both; + width: 200px; +} + +.belowGradeSecond { + text-align: center; + float: left; + width: 200px; + margin-left: 200px; + font-size: 10px; +} + +.belowGradeSecondTwo { + text-align: center; + float: left; + width: 200px; + font-size: 10px; +} \ No newline at end of file diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_singleView.js b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_singleView.js new file mode 100644 index 0000000..3c86cc1 --- /dev/null +++ b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_singleView.js @@ -0,0 +1,204 @@ +// Function to hide the contents +function hide(c) { + + var hideEl = document.getElementById("hide"+c); + var showEl = document.getElementById("show"+c); + var expandEl = document.getElementById("expand"+c); + + if(!hideEl || !showEl) { + return; + } + + hideEl.style.display = "none"; + showEl.style.display = "block"; + + var el = document.getElementsByClassName(c+"Block"); + for (var i = 0; i < el.length; i++){ + el[i].style.display = "none"; + } + + if (c != "" && c != "http" && expandEl) { + expandEl.style.display = "block"; + } +} + +// Function to show the content +function show(c) { + + var hideEl = document.getElementById("hide"+c); + var showEl = document.getElementById("show"+c); + var expandEl = document.getElementById("expand"+c); + + if(!hideEl || !showEl) { + return; + } + + hideEl.style.display = "block"; + showEl.style.display = "none"; + + var el = document.getElementsByClassName(c+"Block"); + for (var i = 0; i < el.length; i++){ + el[i].style.display = ""; + } + + if (c != "" && c != "http" && expandEl) { + expandEl.style.display = "none"; + } +} + +// Binds show/hide buttons +var chainCount = document.getElementById("chainCount").value; +for (var i = 1; i <= chainCount; i++) { + + // Binds Certification Paths buttons + var hideCert = document.getElementById('hidecert'+i); + var showCert = document.getElementById('showcert'+i); + var expandCert = document.getElementById('expandcert'+i); + if(hideCert && showCert && expandCert ) { + hideCert.onclick = function() { + hide(this.getAttribute("cert")); + } + + showCert.onclick = function() { + show(this.getAttribute("cert")); + } + + expandCert.onclick = function() { + show(this.getAttribute("cert")); + } + } + + // Bind buttons to Server Certifcate section + var hideChain = document.getElementById('hidechain'+i); + var showChain = document.getElementById('showchain'+i); + var expandChain = document.getElementById('expandchain'+i); + + if (document.getElementById('hidechain'+i) && document.getElementById('showchain'+i) && document.getElementById('expandchain'+i)) { + document.getElementById('hidechain'+i).onclick = function() { + hide(this.getAttribute("cert")); + } + + document.getElementById('showchain'+i).onclick = function() { + show(this.getAttribute("cert")); + } + + document.getElementById('expandchain'+i).onclick = function() { + show(this.getAttribute("cert")); + } + } + + // Hide on initial load + hide('cert'+i); + hide('chain'+i); +} + +//Bind buttons to cipher suites block section +var protocolCount = document.getElementById("protocolCount"); +var identicalSuites = document.getElementById("identicalSuites"); +var noSniSuites = document.getElementById("noSniSuites"); +if (protocolCount && identicalSuites && noSniSuites) { + protocolCount = protocolCount.value; + identicalSuites = identicalSuites.value; + noSniSuites = noSniSuites.value; + for (var i = 0; i <= protocolCount; i++) { + + var hideCipher = document.getElementById('hidecipher'+i); + var showCipher = document.getElementById('showcipher'+i); + + if(hideCipher && showCipher) { + hideCipher.onclick = function() { + hide(this.getAttribute("cipher")); + } + + showCipher.onclick = function() { + show(this.getAttribute("cipher")); + } + } + + // Hide suites if suites exists observed in highest supported protocol suites + // And always hide no sni suites + if (protocolCount > 1 && i > 1 && identicalSuites === "true") { + hide('cipher'+i); + } else if (noSniSuites == "true" && i == protocolCount) { + hide('cipher'+i); + } + } +} + +// Bind onclick to Http block buttons +var hidehttp = document.getElementById('hidehttp'); +var showhttp = document.getElementById('showhttp'); +if (hidehttp && showhttp) { + hidehttp.onclick = function() { + hide("http"); + } + + showhttp.onclick = function() { + show("http"); + } +} + +// Hide http section on initial load +hide('http'); + +// Bind onclick to simulations section +var hidesimulations = document.getElementById('hidesimulations'); +var showsimulations = document.getElementById('showsimulations'); +var expandsimulations = document.getElementById('expandsimulations'); +if (hidesimulations && showsimulations && expandsimulations) { + hidesimulations.onclick = function() { + hide("simulations"); + } + showsimulations.onclick = function() { + show("simulations"); + } + expandsimulations.onclick = function() { + show("simulations"); + } +} + +// Hide not simulated simulations section on initial load +hide('simulations'); +var notsimulatedcount = document.getElementById('notSimulatedCount'); +if (notsimulatedcount && notsimulatedcount.value < 3) { + // show not simulated clients if count < 3 + show('simulations'); +} + +//Multiple Trust store +function openTrustPath(evt, trustPath) { + // Declare all variables + var i, tabcontent, tablinks; + var selectedChain = trustPath[trustPath.length - 1]; + trustPath = trustPath + 'content'; + // Get all elements with class="tabcontent+respective chain number" and hide them + tabcontent = document.getElementsByClassName("tabcontent"+selectedChain+" fadeEffect"); + for (i = 0; i < tabcontent.length; i++) { + tabcontent[i].style.display = "none"; + } + + // Get all elements with class="tablinks+respective chain number" and remove the class "active" + tablinks = document.getElementsByClassName("tablinks"+selectedChain); + for (i = 0; i < tablinks.length; i++) { + tablinks[i].className = tablinks[i].className.replace(" active", ""); + } + + // Show the current tab, and add an "active" class to the button that opened the tab + document.getElementById(trustPath).style.display = "block"; + evt.currentTarget.className += " active"; +} + +// Bind Multiple TrustStores button +for (var i = 1; i <= chainCount; i++) { + var tablinks = document.getElementsByClassName("tablinks"+i); + for (var j = 0; j < tablinks.length; j++) { + tablinks[j].onclick = function(event) { + openTrustPath(event, this.id); + } + } +} + +// Show/Select Mozilla Store for all by default +for (var i = 1; i <= chainCount; i++) { + document.getElementById("Mozilla"+i).click(); +} \ No newline at end of file diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_ssllabs.css b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_ssllabs.css new file mode 100644 index 0000000..0ca7ead --- /dev/null +++ b/security/2020-07_SSL_Server_Test_luxeylab.net_files/analyze_ssllabs.css @@ -0,0 +1,264 @@ + +body { + font: normal 12px Arial, Helvetica, sans-serif; + line-height: 180%; + color: #222222; + margin: 0px 0px; + background: #f0f0f0; + text-align: center; +} + +.footnote { + color:gray; + font-size: 11px; +} + +#pageEnd { + width: 1100px; + background: #ffffff; + margin: auto; + text-align: left; + padding-bottom: 10px; + border-left: 1px solid #BCD4DD; + border-right: 1px solid #BCD4DD; + border-bottom: 1px solid #BCD4DD; +} + +#copyright { + width: 1100px; + padding: 10px; + padding-left: 20px; + padding-bottom: 0px; +} + +#breadcrumbs { + margin-top: 6px; + margin-left: 30px; +} + +#page { + width: 1100px; + background: #ffffff; + margin: auto; + text-align: left; + padding-bottom: 10px; + border-left: 1px solid #BCD4DD; + border-right: 1px solid #BCD4DD; + border-bottom: 1px solid #BCD4DD; +} + +#main { + padding: 30px; + padding-top: 10px; +} + +.newsTitle { + font-size: 13px; + font-weight: bold; + color: #444444; + margin: 0px; +} + +.projectTitle { + color: #444444; + font-family: Arial, Helvetica, sans-serif; + font-weight: bold; + font-size: 13px; + line-height: 20px; +} + +.projectTitle2 { + font-size: 16px; + color: #444444; + font-family: Arial, Helvetica, sans-serif; + font-weight: bold; + padding-top: 25px; + padding-bottom: 0px; + line-height: 0px; +} + +p { + font-size: 13px; + line-height: 20px; +} + +li { + font-size: 13px; + line-height: 20px; +} + +.newsDate { + padding: 0px; + margin: 0px; + color: gray; +} + +a { + color: #005ccf; +} + +h1 { + color: #444444; + font-weight: bold; + padding-bottom: 5px; + font: 27px/28px Arial, Helvetica, sans-serif; + font-weight: bold; + letter-spacing: -0.04em; +} + +h2 { + font-size: 16px; + color: #444444; + font-family: Arial, Helvetica, sans-serif; + font-weight: bold; + padding-top: 10px; +} + +h3 { + color: #58585a; + font-size: 110%; + font-weight: bold; + margin-top: 0px; + margin-bottom: 0px; +} + + +#header { + width: 1100px; + padding-top: 8px; + padding-bottom: 8px; + border-top: 18px solid #de1d0b; + border-bottom: 1px solid #BCD4DD; +} + +#mini-header { + width: 1100px; + padding-top: 8px; + padding-bottom: 8px; + border-top: 18px solid #de1d0b; + border-bottom: 1px solid #BCD4DD; + margin-bottom: 20px; +} + +#dev-header { + padding: 10px 20px; + font-weight: bold; + background-color: #fffacd; +} + +#logo { + float: left; + margin: 0px; + padding: 4px; + margin-left: 14px; + padding-top: 6px; + padding-bottom: 6px; +} + +#logo-powered-by { + float: right; + padding: 10px; + padding-right: 30px; +} + +#logo-co-branded { + float: left; + margin: 0px; + padding: 10px; + padding-left: 30px; +} + +#navigation { + float: right; + margin-top: 10px; + margin-right: 10px; + font-family: Arial, Helvetica, sans-sefif; + font-size: 15px; + font-weight: bold; +} + + #navigation .link { + color: #444444; + text-decoration: none; + padding-right: 25px; + } + + #navigation .link:hover { + text-decoration: underline; + } + +#threeColumns { + margin: 20px; + margin-top: 0px; + padding-top: 20px; +} + +#pageHeader { + padding: 30px 30px 0px 30px; + clear: both; +} + +a.newsLink { + display: block; + font-family: Arial, Helvetica, sans-serif; + margin-top: 0px; + margin-bottom: 5px; + color: #58585a; +} + +a.newsLink:hover { + color: #a70b16; + text-decoration: underline; +} + +/* Style the tab */ +div.tab { + overflow: hidden; + margin-top: 5px; +} + +/* Style the buttons inside the tab */ +div.tab button { + background-color: #f0f0f0; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 10px 10px; +} + +/* Change background color of buttons on hover */ +div.tab button:hover { + opacity: 0.5; + background-color: #40a0cf; + color: #fff; +} + +/* Create an active/current tablink class */ +div.tab button.active { + background-color: #40a0cf; + color: #fff; +} + +.fadeEffect { + -webkit-animation: fadeEffect 0.8s; + animation: fadeEffect 0.8s; /* Fading effect takes 1 second */ +} + +@-webkit-keyframes fadeEffect { + from {opacity: 0;} + to {opacity: 1;} +} + +@keyframes fadeEffect { + from {opacity: 0;} + to {opacity: 1;} +} + +.tab:first-child { + border-radius: 4px 0 0 4px; +} + +.tab > button:last-child { + border-radius: 0 4px 4px 0; +} diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/collapse.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..97768286bf981ee81d43aa6ca5b499450b5cd8a7 GIT binary patch literal 1060 zcmbVLzfaUq950eHO2mYqMvRFs#mRX6b=>vZTs?aIA!j@!$31J_aLnQVot1R89*6RRPdUY)Gjs|&W| z(8XJz5X(fsgV+MGx9CT5tk7*;ne3BmmIiGIUQpEryQM4Lp87nmLv=f3CR4PZpe$-7ANf{ek0n0NS z>v>6BZFGdI@Q)kEqNCbM0NE;x&~j*#dd!XX$Ru|s8%lu08~I-7lA>6PI;OPru*^d7hDN7(Xh*t6>ryIrn!B3ITzXkirA5L)bYz*G}q6g5!*wCOCEaeW81 zqNF&TSale>51?a)$OG-{%I-1NCG%fVceu{~WQ--wut{tD)hfL!(tpYJsPW0+Xmp@Y z<|QP9@p||15*e!dWnHbsdkt%A?N_mXWIc5!^K|E+INbkiJ@tO;dg}QY|9S1*_^Zut zOE){94;&vLqre81l)n9cx3&w>)J4vZf#}8;oKJ4#l)_CVGV2F(!Q{Q7X%Mt z42gIFxo{*gG103r8WR&e>d_dka^p|Hw_`&O1QVOI??<2K`F*dKr)~}nUL7O|VyHN& zRq%Q-e$Su7-_gm`H@u7>y^gAI2DQxq5ULFufGoP^ET{m}UYh?3CI}*7JGDBhmu@Q- zbZIlj(2?t7HbG3}BHy&;03sV;*735`;kyqM>DXCnS}d_8zW|!fSK*L~`;bd8k zHF!RS5vg#=LuQon!m*x$20|-veB?lnj1|oWTtHb0dwLv#>z7I=!d}=-6iyivnLfkO zEaSRyTpe_XD&UVBr=r8!k`I^)2;o9t;d;!B^~gAPXB&!v*c;_e;NYT|Ee%==F7QxM z%To9cZ9BFi>mrxo^BGN*3_Z~Er=OO=xLnB6*-Yl^M)iDn$B^0S}vqn zS>OycuNz`MqxZN)FGQwifu3Cl+wF4GXL6N7089jf8icK02b7x-!LSK^vQQPtX~(l+ zJB*8S9IFNbXA#&&09~?^UBx-Yx@`O_>SM0`KN(}NGfdnXf3-^Q3in^UJ!yP=I2j$_ z;du%0VC-&O8OB3p7d5pO{b<-*507$*k(Gg4!sgy#?s8&#W#IGHwSmme{QlZenKQ`b z{f$Shn*p&Am_kzjA$vVRL`?Wp(5^`!@CL;I8rF;A1i~{Oa3j}yYjV=oB*WxKI>Qmb5{Dals#n?~G literal 0 HcmV?d00001 diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-certificate.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-certificate.png new file mode 100644 index 0000000000000000000000000000000000000000..ea294d506ac62e728cfaeac2cc261a7317619ce4 GIT binary patch literal 1484 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 literal 0 HcmV?d00001 diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-chain.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-chain.png new file mode 100644 index 0000000000000000000000000000000000000000..da180fd7f5476d1c7349026dd4d8951a337e33c9 GIT binary patch literal 1938 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 Y0I}>ay|O?>TL1t607*qoM6N<$g2btRKmY&$ literal 0 HcmV?d00001 diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-misc.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-misc.png new file mode 100644 index 0000000000000000000000000000000000000000..e018950f613df5d2562494c876dc5f69d43a8f6d GIT binary patch literal 992 zcmeAS@N?(olHy`uVBq!ia0vp^O+cK&!3HF~DSr z1<%~X^wgl##FWaylc_cg49rcQE{-7;x8BS>8+hA6!r?j(>kgKs%)yPieK7@E1vVlR zb}-H1QeZVWA=(mSkyI*BF0hoje8QWyrwtR66Fq;|YVS2){PF05tM5K<|F50Qpu_x< z<&LeL>bK;q^$S1ksoJs2;=Y2Dwa}d#{rVH1T)h^T8J=n(I3+=HBFi!NHCuhZcXV9H zDgB^*$>w!RiiPN|{4@JkO+R7qJ?P3IuBpn0qKi~nZC8Dm`<~bJ`1I#-9&R&(eeF$W z3$AR6J9FgkBj)?p?tWgrw_Hn9(T^wN(Z2G%Y#OQ`1vv#pHfJm!HUbYx*5oLwMa!JWxLT?SO@INV2L+%d0bG zQbp@#o7*ZJo+-NAp(XF*%enW0mf^{UxhX!{fyl4H?~%13kqz z8f|O;(B8oi!rQ;?Knuww^sRrT^}7!RM(rZ#6k*3!nO@w)y%hCvo#|%_h+U zxnYIHAD!#s9Sbf$h+iwPJLsmCx_)_v$=`ZOcLorrY1QFFW%q z)Kny8u|+GJpq$SPW|akV*6K4y3a-;T7waT8rCowMp6%0Kw%HTT*sRyP6`*(U$9B%+ z&uep|EGxGzIbM)_Z(i&RxdhkBeT#B9@28nR+E&OCuf4bJZcCKmDW~iCy36~r68)!F zODoNn2w;M`qG7{cwu52iN%Q=TxE%#gU##3Ka8PXD?B3$tYwTtp&|X!${m1ORd9x+% zI=58qi1b?->^HX}ul@Scz2`ENPq;QOz4$R|!9;&RCPTY70aHfmxQp)78&qol`;+0O`S^Q2+n{ literal 0 HcmV?d00001 diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol-details.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol-details.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3a3066275a2ad96a81e77a3f3fa5387f45bd88 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0vp^O+cK&!3HF~DSr z1<%~X^wgl##FWaylc_cg49tF>E{-7;x8BUX=qv3g;4u9J>yG9bT#rH;&Z^tDan%U2 zGKkIy5zt^r3}^WHPdBf#K?-M?oCeAsrk@0ug^R)Yu!^93bzJINyWrLbaOzzKfPHw%dN;jlledXGB zqiE^%##beplguW3n<=AsKcir7U{mO>!gv8iVdihFf=v@I z9(c4*WTx_;(-F6pJj>--8amJF>|zdkmFD?Z=gj`Hr!=b5e9D1C9Rlw^XTPp^ea7~z z%$K?&I;DFTPu(!N%AerYUBAoPdJjwuYP$M zx=u6mjkUS*p@!nD-S2~*a%grtD(~!a>vPGd7D|+jR~5Xad3u`gzod+B3sYYnwmoCD z$>YwK-yFg~=S`XYp<2*0?-|Iw?1g=Ir<cd;GtY!~B)B(eJ<&YyCFS-)6G@%+w!~w(;@?l_o>tQ7xYM!V#p2xQlG}az z5*TaSCLGDCU6VVt;&Q+0zV!#ctWo?|^>S9@?B5&>aCqQLA@fJpx#E7meqH;-?G}AZ zwW6TpVy5BiGpl$+=31zIR;s8Gek~+;PcT@vE8*LWSpg+hrAm!2lcs%LG`TFMaH@k7 zvjP(g8r0SZe~dgERgxwB{&=TP>G6($`7D>)zAP4-VrTmEdf+r?=gX(gi&`>G(7EPu zxy$bfN2$WcGPT0({+mv$c{rU%@xAmN4qlk+FhT+pHu>t$t6Co3z5H2l`2&3`)vgOC zD<4cyH>p{^I`@05mf*3*=Q4ZRD?PSod{ek8=xMirJK!t3cI>(Lt5sjjpD&{y+qpr> q#ow-K&hy?gj}FB)Z22RSz>t05Y{Kp`-j~4a$KdJe=d#Wzp$PzyWvH_N literal 0 HcmV?d00001 diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/icon-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..b1fade581bbfad6def79bbfd8f09f36708765519 GIT binary patch literal 1247 zcmV<51R(o~P)YW&aFG>i! zfM5Wi9K&&-ZIBu``>{gc90W$$#;FGg@{m^*u5AP^Dd)Lk2&TGxQ2{%h+73s9Tg4~k zeB=@WTH=Q8fpj@F+?3RlLnsTV4HkzC#d9IpTK49YfD+N-)q$TqqyOi^~AP5}> zS5re;(lAj&unj|K(}Yil(mNp73qu|Y2!Nm*hQ_B%WHC1c!43?KPZ1aq8iXJUKLSGt z?qh`jAZ#E=R1pt}5(0p*(I93B0K(}K1pz?VD2o{afUsG@(eiB?D+B=He;BS0z#tX^ zfN(qvlVcz-Tjp5`o<$1`x3aV6KK#8Ss@if9XmfI8gfF&x$m1B}JM zAsFuY7r-DLgbGo_A!kb;Ak+iFS}8CP27<&LNC3ef1T$bD1cWmnm>hBz0R;IFQ0!m? z1O$K(bB>`n5NP>kc1;64gqHf z1~oxI2YTGb2ErPKr8?~Zs*r4gqz(vFg;U?S8;ko^6`T!2ie;RWzeq<7InRNVma`b# z>VRSyW{MkE0DGm1gFt7#l3+W4zzYmCv|okXcx^xcNdW;600ck)5DH5i`2+yruLV9o zC4>#hn;Lq60U!VdfB+Z(0$>0LfB_&>g&{%LR#T&~2FkWE0hwC;3*3GVAbJqiFrXVS zH9*2au*J|Xg|^{$OWg_}6tWHXsX2X2j7(;-?P#7?Zuio1*htF~>pkPxP!`eVlQOVB z;ds4`C^GoVHZmyLr h2 { + font-size: 380%; + line-height: 100%; + letter-spacing: -1px; + font-weight: bold; + color: #fff; + max-width: 400px; + margin: 0; + text-shadow: 2px 2px 0 #000000; +} + +.mainPhoto > h3 { + font-size: 200%; + line-height: 130%; + font-weight: normal; + color: #fff; + max-width: 450px; + margin: 0; + margin-top: 20px; + text-shadow: 2px 2px 0 #000000; +} + +.featured { + width: 360px; + right: 20px; + top: 18px; + position: absolute; + margin-right: 20px; +} + +a.featuredLink { + display: block; + margin: 2px; + background: url(../images/black40.png); + font-size: 170%; + line-height: 100%; + font-weight: normal; + width: 350px; + height: 69px; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 15px; + padding-left: 25px; + text-decoration: none; + color: #fff; + text-shadow: 2px 2px 0 #000000; +} + +a.featuredLink:hover { + background: url(../images/black50.png); +} + +a.featuredLink img { + float: left; + display: block; + margin-right: 20px; +} + +a.featuredLink > .d { + font-size: 60%; + font-weight: normal; + display: block; + margin-top: 0px; +} + + +.bookImage { + border: 1px solid #bbbbbb; + margin-right:10px; + margin-top: 5px; +} + +.spanFont { + font-weight: bold; + font-size: 11px; +} + +.footer { + font-size: 12px; +} + +/*ssltest/viewClient.vm*/ +.floatLeft { + float: left; +} + +/*ssltest/viewClient.vm*/ + +.floatRight { + float:right; + font-weight: bold; + font-size: 20px; +} + +.clientsJsonLink { + float:left; + margin-left: 10px; + margin-top: 25px; + text-decoration: underline; +} + + +#multiTable th { + cursor: pointer; + cursor: hand; +} + +.greyColor { + color:grey; + font-size: 12px; +} + +.partnerLogo { + float: right; + padding-right: 30px; + padding-top: 10px; +} + +#serverTestPara { + font-size: 16px; + line-height: 24px; +} + +#serverTestHideResults { + font-size: 12px; + color: black; + font-weight: normal; + text-align: left; +} + +.boxStyle{ + float:left; + width:327px; + margin-right:20px; + height:340px; +} + +.boxStyleRight{ + float:left; + width:327px; + height:340px; +} + +#appleTestDiv { + display: none; +} + +#statusDetailMsg { + font-size: 14px; + color: #666666; + padding-top: 5px; +} + +.certMismatch { + font-size: 0.7em; +} + +.invalidHost { + font-weight: normal; + font-size: 0.7em; +} + +#knownIssues { + font-size: 1.2em; +} + +#commonError { + font-size: 1.2em; +} + +#gradeA { + margin-bottom: 8px; +} + +.Aplus{ + font-size: 0.75em; +} + +.Aminus{ + font-size: 0.80em; +} + +.zeroMargin { + margin:0px; +} + +.serverKeyCert { + float: left; + width: 825px; +} + +.downloadIcon { + float: left; + margin-left: 8px; + margin-top: 5px; +} + +.blackColor{ + color: black; +} + +.colorF88017 { + color: #f88017 !important; +} + +.colorRed { + color : red !important; +} + + +.color666666 { + color: #666666 !important; +} + + +.color-green { + color : green !important; +} + +.tableCellRight { + width: 75px; + text-align: right; +} + +.tableCellCenter { + width: 125px; + text-align: center; + padding-left: 10px; + padding-right: 10px; + font-size: 11px; +} + +#no-trust-path { + text-align: center; + width: 850px; +} + +.cursor-help { + cursor : help; +} + +.cursor-default { + cursor: default; +} +.font-10{ + font-size: 10px; +} + +.font-11{ + font-size: 11px; +} + +.drown-test { + font-size: 12px; + color: grey; + line-height: 18px; +} + +/*ssltest/viewClient.vm*/ + +.display-none{ + display: none; +} + + +.infoBox { + border: 1px solid #bbbbbb; + padding: 5px; + background: #fffacd; + margin-top: 10px; + font-weight: bold; + color: #222222; +} + +.highlightBox { + border: 1px solid #888888; + padding: 5px; + background: #7ed84d; + margin-top: 10px; + font-weight: bold; + color: #222222; +} + +.noticeBox { + border: 1px solid #bbbbbb; + padding: 5px; + background: #CCEEFF; + margin-top: 10px; + font-weight: bold; + color: #222222; +} + +.warningBox { + border: 1px solid #bbbbbb; + padding: 5px; + background: #FFCF79; + margin-top: 10px; + font-weight: bold; + color: #222222; +} + +.errorBox { + border: 1px solid #bbbbbb; + padding: 5px; + background: #FFCCCB; + margin-top: 10px; + font-weight: bold; + color: #222222; +} + +#drownTable th { + color: #009ddf; + border-bottom: 2px solid #c6d2d4; + text-align: left; + font-size: 12px; + padding-top: 4px; + padding-bottom: 2px; +} + +#drownTable td { + text-align: left; + font-size: 12px; + padding-top: 4px; + padding-bottom: 2px; +} + +.warning-box-margin { + margin-top: 10px; +} + +.text-align-left { + text-align: left; +} + +/*ssltest/viewClient.vm*/ + +.report-title-style{ + color: black; + padding-top: 10px; +} + +/*ssltest/viewClient.vm*/ +.width-650{ + width: 650px; +} + +/*ssltest/viewClient.vm*/ +.browser-handshake-fail{ + font-size: 0.7em; + color: #666666; +} + +/*ssltest/viewClient.vm*/ +.warning-box-line-height{ + line-height: 145px; +} + +/*ssltest/viewClient.vm*/ +#protocolTestDiv, #ssl2TestDiv, #ssl3TestDiv, #appleTestDiv, #freakTestDiv, #jamTestDiv, #curveBallTestDiv { + display: none; +} + +#protocolTestMsg, #ssl2TestMsg, #ssl3TestMsg, #appleTestMsg, #freakTestMsg, #jamTestMsg, #curveBallTestMsg { + font-size: 16px; + font-weight: bold; +} + +#protocolTestMsgNotes, #ssl2TestMsgNotes, #ssl3TestMsgNotes, #appleTestMsgNotes, #freakTestMsgNotes, #jamTestMsgNotes, #curveBallTestMsgNotes { + color: grey; + font-size: 14px; +} + +.width-100{ + width : 100px; +} + +.report-table-margin{ + margin-left: 75px !important; +} + +.settings-message{ + width: 800px; + color: grey; + font-size: 12px; +} + +.category_width_0{ +width:0px; +} +.category_width_3{ +width:3px; +} +.category_width_6{ +width:6px; +} +.category_width_9{ +width:9px; +} +.category_width_12{ +width:12px; +} +.category_width_15{ +width:15px; +} +.category_width_18{ +width:18px; +} +.category_width_21{ +width:21px; +} +.category_width_24{ +width:24px; +} +.category_width_27{ +width:27px; +} +.category_width_30{ +width:30px; +} +.category_width_33{ +width:33px; +} +.category_width_36{ +width:36px; +} +.category_width_39{ +width:39px; +} +.category_width_42{ +width:42px; +} +.category_width_45{ +width:45px; +} +.category_width_48{ +width:48px; +} +.category_width_51{ +width:51px; +} +.category_width_54{ +width:54px; +} +.category_width_57{ +width:57px; +} +.category_width_60{ +width:60px; +} +.category_width_63{ +width:63px; +} +.category_width_66{ +width:66px; +} +.category_width_69{ +width:69px; +} +.category_width_72{ +width:72px; +} +.category_width_75{ +width:75px; +} +.category_width_78{ +width:78px; +} +.category_width_81{ +width:81px; +} +.category_width_84{ +width:84px; +} +.category_width_87{ +width:87px; +} +.category_width_90{ +width:90px; +} +.category_width_93{ +width:93px; +} +.category_width_96{ +width:96px; +} +.category_width_99{ +width:99px; +} +.category_width_102{ +width:102px; +} +.category_width_105{ +width:105px; +} +.category_width_108{ +width:108px; +} +.category_width_111{ +width:111px; +} +.category_width_114{ +width:114px; +} +.category_width_117{ +width:117px; +} +.category_width_120{ +width:120px; +} +.category_width_123{ +width:123px; +} +.category_width_126{ +width:126px; +} +.category_width_129{ +width:129px; +} +.category_width_132{ +width:132px; +} +.category_width_135{ +width:135px; +} +.category_width_138{ +width:138px; +} +.category_width_141{ +width:141px; +} +.category_width_144{ +width:144px; +} +.category_width_147{ +width:147px; +} +.category_width_150{ +width:150px; +} +.category_width_153{ +width:153px; +} +.category_width_156{ +width:156px; +} +.category_width_159{ +width:159px; +} +.category_width_162{ +width:162px; +} +.category_width_165{ +width:165px; +} +.category_width_168{ +width:168px; +} +.category_width_171{ +width:171px; +} +.category_width_174{ +width:174px; +} +.category_width_177{ +width:177px; +} +.category_width_180{ +width:180px; +} +.category_width_183{ +width:183px; +} +.category_width_186{ +width:186px; +} +.category_width_189{ +width:189px; +} +.category_width_192{ +width:192px; +} +.category_width_195{ +width:195px; +} +.category_width_198{ +width:198px; +} +.category_width_201{ +width:201px; +} +.category_width_204{ +width:204px; +} +.category_width_207{ +width:207px; +} +.category_width_210{ +width:210px; +} +.category_width_213{ +width:213px; +} +.category_width_216{ +width:216px; +} +.category_width_219{ +width:219px; +} +.category_width_222{ +width:222px; +} +.category_width_225{ +width:225px; +} +.category_width_228{ +width:228px; +} +.category_width_231{ +width:231px; +} +.category_width_234{ +width:234px; +} +.category_width_237{ +width:237px; +} +.category_width_240{ +width:240px; +} +.category_width_243{ +width:243px; +} +.category_width_246{ +width:246px; +} +.category_width_249{ +width:249px; +} +.category_width_252{ +width:252px; +} +.category_width_255{ +width:255px; +} +.category_width_258{ +width:258px; +} +.category_width_261{ +width:261px; +} +.category_width_264{ +width:264px; +} +.category_width_267{ +width:267px; +} +.category_width_270{ +width:270px; +} +.category_width_273{ +width:273px; +} +.category_width_276{ +width:276px; +} +.category_width_279{ +width:279px; +} +.category_width_282{ +width:282px; +} +.category_width_285{ +width:285px; +} +.category_width_288{ +width:288px; +} +.category_width_291{ +width:291px; +} +.category_width_294{ +width:294px; +} +.category_width_297{ +width:297px; +} +.category_width_300{ +width:300px; +} + +/*ssltest/clients.html*/ +.h { + color: green; +} + +.w { + color: #F88017; +} + +.e { + color: red; +} + + +/*projects/documentation/*/ + +.openssl-book-style{ +margin-right: 10px; margin-top: 5px; +} + +.minisite-header-3pixel{ + padding-bottom: 3px; +} + +.minisite-header{ + padding-bottom: 1px; +} + + +/*ssltest/blacklistcheck.html*/ +#donot-scan-list { + font-size: 16px; + line-height: 24px; +} + + +/*about/activityLog.vm*/ +#activityTable th { + font-size: 13px; +} + +#activityTable td { + font-size: 13px; +} \ No newline at end of file diff --git a/security/2020-07_SSL_Server_Test_luxeylab.net_files/qualys-ssl-labs-logo.png b/security/2020-07_SSL_Server_Test_luxeylab.net_files/qualys-ssl-labs-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7301302616c5a7673946d17a3244b9068ba85faf GIT binary patch literal 21209 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