یکی از سایتهای برتر الکسا (دایره مرکزی) که توسط HTTPS ایمن شده است، با زیر دامنهها (خاکستری) و وابستگیها (سفید) که در میان آنها موارد آسیبپذیر (سایهزنی چیندار) وجود دارد.
امروزه نماد اتصال امن HTTPS به یک استاندارد و حتی یک ویژگی ضروری برای هر سایت جدی تبدیل شده است. اگر
اما معلوم می شود که وجود "قفل" در نوار آدرس همیشه تضمین کننده محافظت نیست.
نتایج مطالعه
این مطالعه توسط کارشناسان دانشگاه ونیز Ca' Foscari (ایتالیا) و دانشگاه فنی وین انجام شد. آنها گزارش مفصلی را در چهلمین سمپوزیوم IEEE در مورد امنیت و حریم خصوصی، که در 40 تا 20 می 22 در سانفرانسیسکو برگزار می شود، ارائه خواهند کرد.
10 سایت برتر لیست الکسا HTTPS و 000 هاست مرتبط مورد آزمایش قرار گرفتند. پیکربندیهای رمزنگاری آسیبپذیر روی 90 میزبان شناسایی شدند، یعنی تقریباً 816٪ از کل:
- 4818 در برابر MITM آسیب پذیر است
- 733 در برابر رمزگشایی کامل TLS آسیب پذیر هستند
- 912 در برابر رمزگشایی جزئی TLS آسیب پذیر هستند
898 سایت کاملاً برای هک باز هستند، یعنی اجازه تزریق اسکریپت های اضافی را می دهند و 977 سایت محتوا را از صفحات ضعیف محافظت شده بارگیری می کنند که مهاجم می تواند با آنها تعامل داشته باشد.
محققان تاکید می کنند که در بین 898 منبع "کاملاً در معرض خطر" فروشگاه های آنلاین، خدمات مالی و سایر سایت های بزرگ هستند. 660 سایت از 898 سایت اسکریپت های خارجی را از میزبان های آسیب پذیر دانلود می کنند: این منبع اصلی خطر است. به گفته نویسندگان، پیچیدگی برنامه های کاربردی وب مدرن، سطح حمله را تا حد زیادی افزایش می دهد.
مشکلات دیگری نیز مشاهده شد: 10 درصد از فرمهای مجوز دارای مشکلاتی در انتقال امن اطلاعات هستند که تهدید به افشای گذرواژهها میکند، 412 سایت اجازه رهگیری کوکیها و ربودن جلسه را میدهند، و 543 سایت در معرض حمله به یکپارچگی کوکی (از طریق زیر دامنهها) هستند. .
مشکل این است که در سال های اخیر در پروتکل ها و نرم افزارهای SSL/TLS
تنظیمات توصیه شده
هیچ کس به طور رسمی لیست تنظیمات توصیه شده HTTPS را تأیید و توافق نکرده است. بنابراین،
حالت مدرن
قدیمی ترین مشتریان پشتیبانی شده: فایرفاکس 27، کروم 30، IE 11 در ویندوز 7، اج، اپرا 17، سافاری 9، اندروید 5.0 و جاوا 8
server {
listen 80 default_server;
listen [::]:80 default_server;
# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# modern configuration. tweak to your needs.
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}
پشتیبانی متوسط
قدیمی ترین مشتریان پشتیبانی شده: Firefox 1، Chrome 1، IE 7، Opera 5، Safari 1، Windows XP IE8، Android 2.3، Java 7
server {
listen 80 default_server;
listen [::]:80 default_server;
# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}
پشتیبانی قدیمی
قدیمی ترین مشتریان پشتیبانی شده: ویندوز XP IE6، جاوا 6
server {
listen 80 default_server;
listen [::]:80 default_server;
# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# old configuration. tweak to your needs.
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}
توصیه می شود همیشه از مجموعه کامل رمزنگاری و آخرین نسخه OpenSSL استفاده کنید. مجموعه رمز در تنظیمات سرور، اولویتی را که در آن استفاده خواهد شد، بسته به تنظیمات مشتری، مشخص می کند.
تحقیقات نشان می دهد که فقط نصب گواهی HTTPS کافی نیست. "در حالی که ما مانند سال 2005 از کوکی ها استفاده نمی کنیم، و "TLS مناسب" رایج شده است، به نظر می رسد که این موارد اساسی برای ایمن سازی تعداد شگفت انگیزی از سایت های بسیار محبوب کافی نیستند."
منبع: www.habr.com