من دستور زیر Nmap را اجرا میکنم تا قدرت سوئیتهای سری که در میزبان من استفاده شده است را آزمایش کنم
nmap -sV - script ssl-enum-ciphers -p 443
Nmap doc می گوید هر ciphersuite با درجه نامه (A through F) نشان داده شده است که نشان دهنده قدرت اتصال است و خط خروجی از ابتدا شروع می شود. مقاومت کم نشان دهنده قدرت ضعیف ترین رمز شده است
وقتی که من فرمان را در برابر میزبان اجرا کردم، من خروجی را دریافت کردم همانطور که در زیر نشان داده شده است
| ssl-enum-ciphers:
| TLSv1.0:
| رمزهای عبور:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 768) - E
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 768) - C
| TLS_DHE_RSA_WITH_DES_CBC_SHA (dh 768) - E
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| کمپرسورها:
| خالی
| اولویت رمز: مشتری
| هشدارها:
| بلوک بلوک 64 بیتی 3DES به حمله SWEET32 آسیب پذیر است
| رمزگذاری بلوک 64 بیتی vulnerable to attack SWEET32
| RF4 رفع شده توسط RFC 7465 رد شده است
| Ciphersuite از MD5 برای صداقت استفاده می کند
| تبادل کلید (dh 768) از قدرت پایین تر از کلید گواهی
| TLSv1.1:
| رمزهای عبور:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 768) - E
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 768) - C
| TLS_DHE_RSA_WITH_DES_CBC_SHA (dh 768) - E
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| کمپرسورها:
| خالی
| اولویت رمز: مشتری
| هشدارها:
| بلوک بلوک 64 بیتی 3DES به حمله SWEET32 آسیب پذیر است
| رمزگذاری بلوک 64 بیتی vulnerable to attack SWEET32
| RF4 رفع شده توسط RFC 7465 رد شده است
| Ciphersuite از MD5 برای صداقت استفاده می کند
| تبادل کلید (dh 768) از قدرت پایین تر از کلید گواهی
| TLSv1.2:
| رمزهای عبور:
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 768) - E
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 768) - C
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| کمپرسورها:
| خالی
| اولویت رمز: مشتری
| هشدارها:
| بلوک بلوک 64 بیتی 3DES به حمله SWEET32 آسیب پذیر است
| RF4 رفع شده توسط RFC 7465 رد شده است
| Ciphersuite از MD5 برای صداقت استفاده می کند
| تبادل کلید (dh 768) از قدرت پایین تر از کلید گواهی
| حداقل قدرت: E
سوالات من
- همانطور که در متن آمده است، کافیست که علامتگذاری شده به عنوان "E" رمز ضعیف است و به شیوه دیگری می توان رمز را به عنوان "A" به عنوان رمزنگاری قوی مشخص کرد
- TLS_RSA_WITH_AES_128_CBC_SHA به عنوان "A" در اینجا، اما در برخی از بحث ها، من مشاهده کرده ام آن را به عنوان WEAK ذکر شده است. آیا این به خاطر استفاده از SHA1 است؟ اگر چنین است چرا این به عنوان "A" در NMAP ارزیابی می شود؟
- من لیست زیر رمز در سرور من پیکربندی شده است.
رمزهای = "SSL_RSA_WITH_RC4_128_MD5، SSL_RSA_WITH_RC4_128_SHA، SSL_DHE_RSA_WITH_DES_CBC_SHA، SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA، TLS_RSA_WITH_AES_128_CBC_SHA، TLS_DHE_RSA_WITH_AES_128_CBC_SHA، TLS_RSA_WITH_AES_256_CBC_SHA، TLS_DHE_RSA_WITH_AES_256_CBC_SHA، TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256، TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
اما رمزهای مانند SSL_RSA_WITH_RC4_128 در خروجی از Nmap در دسترس نیست، در عوض، رمزهای مانند TLS_RSA_WITH_RC4_128 وجود دارد ، دلیل این چیست؟ آیا می توانیم از SSL و TLS به طور تعویض در Ciphers استفاده کنیم؟
- اگر چه من TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 را به عنوان یک رمز در سرورم اضافه کرده ام، در نتایج Nmap موجود نبود، چه چیزی ممکن است دلیل آن باشد؟
PS : من از JDK 1.7 به عنوان نسخه اصلی JDK برای سرور استفاده می کنم