DataNetSec-Dousti-10-SSL_TLS-v1.pdf

‫دانشگاه صنعتی شریف‬
‫دانشکده مهندسی کامپیوتر‬
‫آزمایشگاه امنیت داده و شبکه‬
‫‪http://dnsl.ce.sharif.edu‬‬
‫درس ‪ SSL :10‬و ‪TLS‬‬
‫محمد صادق دوستی‬
‫‪1 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست مطالب‬
‫‪ ‬معرفی و تاریخچه‬
‫‪ SSL/TLS ‬در سطح باال‬
‫‪ TLS ‬در عمل‬
‫‪ ‬جزئیات ‪TLS‬‬
‫‪Heartbleed ‬‬
‫‪2 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫معرفی کلی‬
‫‪Secure Sockets Layer‬‬
‫‪ SSL:‬‬
‫‪Transport Layer Security‬‬
‫‪ TLS:‬‬
‫‪ SSL ‬در شرکت ‪ Netscape Communications‬توسره‬
‫یاف و ب سکع محبوب شد (طاهک الجمل؛ پدر ‪.)SSL‬‬
‫‪‬هدف اصلی ‪ ،SSL‬امنی وب (‪ )HTTP‬بود‪.‬‬
‫‪‬تکتیب ‪ HTTP‬روی ‪ SSL‬را ‪ HTTPS‬گوییم‪.‬‬
‫‪‬امکوزه ‪ SSL‬تاربکدهای دیگکی نیز دارد‪.‬‬
‫‪ TLS ‬نسخ استاندارد شده ‪ SSL‬اس ‪.‬‬
‫‪3 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جایگاه در شبکه‬
‫‪ SSL/TLS ‬الیرر ای برراالی الیرر انتدرراش در پوررت پکوت ررل‬
‫‪ TCP/IP‬اس ‪.‬‬
‫‪‬بکخی آن را در زمکه الی تاربکد محسوب میتنند‪.‬‬
‫‪ SSL/TLS ‬بک مبنای پکوت ل ‪ TCP‬اس ‪.‬‬
‫‪‬نسررخ ای بررک مبنررای ‪ UDP‬هررم پیرراده شررده اس ر ت ر ب ر آن‬
‫‪( Datagram Transport Layer Security‬یرا ‪)DTLS‬‬
‫میگویند‪.‬‬
‫‪ ‬پکوت لهرررررایی نظیرررررک ‪ NNTP ،SMTP ،FTP ،HTTP‬و‬
‫‪ XMPP‬قادرند از ‪ SSL/TLS‬استفاده تنند‪.‬‬
‫‪4 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پورتهای پیشفرض معروف‬
‫پروتکل پورت عادی پورت روی ‪SSL/TLS‬‬
‫‪443‬‬
‫‪80‬‬
‫‪HTTP‬‬
‫‪443‬‬
‫‪80‬‬
‫‪XMPP‬‬
‫‪465‬‬
‫‪ 25 SMTP‬و ‪587‬‬
‫‪563‬‬
‫‪119‬‬
‫‪NNTP‬‬
‫‪ 989‬و ‪990‬‬
‫‪ 20‬و ‪21‬‬
‫‪FTP‬‬
‫‪IMAP‬‬
‫‪POP3‬‬
‫‪LDAP‬‬
‫‪Telnet‬‬
‫‪143‬‬
‫‪110‬‬
‫‪389‬‬
‫‪23‬‬
‫‪993‬‬
‫‪995‬‬
‫‪636‬‬
‫‪992‬‬
‫توجه‪ :‬پکوت ل ‪ Telnet‬روی ‪ SSL/TLS‬تامالً با پکوت ل ‪ SSH‬تفاوت دارد‪.‬‬
‫‪5 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
STARTTLS ‫فرمان‬
‫ ت برا‬، ‫ افزون ای بک پکوت لهای متن آش ار اس‬STARTTLS ‫ فکمان‬
: ‫ مثاا‬.‫ ارتدا دهنرد‬TLS ‫اجکای آن میتوانند امنی خود را ب تمک‬
:SMTP
S: <waits for connection on TCP port 25>
C: <opens connection>
S: 220 mail.example.org ESMTP service ready
C: EHLO client.example.org
S: 250-mail.example.org offers welcome
S: 250 STARTTLS
C: STARTTLS
S: 220 Go ahead
C: <starts TLS negotiation>
C & S: <negotiate a TLS session>
C & S: <check result of negotiation>
C: EHLO client.example.org
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
6 / 79
‫تاریخچه‬
‫پروتکل‬
‫سال‬
‫‪SSL 1.0‬‬
‫؟؟‬
‫‪SSL 2.0‬‬
‫‪1995‬‬
‫تهدادی ناامنی – از ‪ 2011‬ب بهد منسوخ محسوب میشود (‪)RFC 6176‬‬
‫‪SSL 3.0‬‬
‫‪1996‬‬
‫حمل ‪ POODLE‬ب آن وارد اس ‪ -‬از ‪ 2015‬ب بهد منسوخ محسوب‬
‫میشود (‪)RFC 7568‬‬
‫‪TLS 1.0‬‬
‫‪1999‬‬
‫بک مبنای ‪ – SSL 3.0‬قابلی تنزش اتصاش ب ‪ SSL 3.0‬و در نتیج ناامنی‬
‫‪TLS 1.1‬‬
‫‪2006‬‬
‫رفع تهدادی از ناامنیهای ‪TLS 1.0‬‬
‫‪TLS 1.2‬‬
‫‪2008‬‬
‫افزودن بکخی الگوریتمهای رمز ب ‪TLS 1.1‬‬
‫‪TLS 1.3‬‬
‫‪7 / 79‬‬
‫توضیح‬
‫داخلی ‪ – Netscape‬منتوک نود – ب شدت ناامن‬
‫ب زودی حذف بکخی الگوریتمهای رمز ضهیف – افزودن الگوریتمهای رمز جدید‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست مطالب‬
‫‪ ‬معرفی و تاریخچه‬
‫‪ SSL/TLS ‬در سطح باال‬
‫‪ TLS ‬در عمل‬
‫‪ ‬جزئیات ‪TLS‬‬
‫‪Heartbleed ‬‬
‫‪8 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫دو مفهوم اساسی ‪SSL/TLS‬‬
‫‪ ‬نشست (‪ :)Session‬تناظکی بین تارخواه و تارگزار‪.‬‬
‫‪‬ایده‪ :‬پارامتکهای رمزنگاری (از جمل تلید نوس ) یک بار تبرادش‬
‫شوند و پس از آن بتوان با خیاش راح انواع ارتباط را داش ‪.‬‬
‫‪‬علت‪ :‬تبادش پارامتکهای رمزنگاری هزین زیادی دارد‪.‬‬
‫‪ ‬اتصا ‪ :‬ارتباطی بکای انتداش بست ها بین تارخواه و تارگزار‪.‬‬
‫‪‬روی یک نوس میتوان چندین اتصاش داش ‪.‬‬
‫‪‬اتصالها نیاز ب تبادش پارامتکهای رمزنگاری ندارنرد و از پارامتکهرای‬
‫نوس بهکه میگیکند‪.‬‬
‫‪9 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
SSL/TLS ‫زیر پروتکلهای‬
: ‫ شامل چند زیک پکوت ل اس‬SSL/TLS ‫ پکوت ل‬
 Record
Protocol (‫)رتورد‬
 Handshake
 Change
 Alert
‫محمد صادق دوستی‬
Protocol (‫)دستداد‬
Cipher Spec Protocol (‫)تغییک رمز‬
Protocol (‫)هودار‬
‫امنیت داده و شبکه‬
10 / 79
‫زیر پروتکلهای دستداد و رکورد‬
‫‪ ‬تررارخواه و تررارگزار بررا اسررتفاده از زیررک پکوت ررل دسررتداد پارامتکهررای‬
‫رمزنگاری را تبادش میتنند‪.‬‬
‫‪ ‬زیک پکوت ل رتورد‪ ،‬از پارامتکهای رمزنگاری استفاده تکده و برکای سرایک‬
‫زیک پکوت لهای ‪ SSL/TLS‬و پکوت رل الیر تراربکد روی آن خردمات‬
‫محکمانگی و صح را فکاهم میآورد‪.‬‬
‫‪ ‬زیک پکوت لهای دستداد‪ ،‬تغییک رمز‪ ،‬هودار و الیر براالیی روی پکوت رل‬
‫رتورد اجکا میشوند؛ همان طور ت ‪ HTTP‬روی ‪ TCP‬اجکا میشود‪.‬‬
‫‪‬پکوت ل رتورد سرکآیندهای الزم را بر آنهرا افرزوده و در صرورت لرزوم‬
‫رمزنگاری انجام میدهد‪.‬‬
‫‪11 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫اجرای پروتکلها روی زیر پروتکل رکورد‬
‫‪12 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫عملیات زیر پروتکل رکورد‬
‫ب دلیل حمل ‪ ،CRIME‬مهموالً‬
‫فوکدهسازی در ‪ TLS‬انجام‬
‫نمیشود‬
‫مکحل ‪ Encrypt‬شامل یک‬
‫‪ Padding‬نیز هس ‪.‬‬
‫‪13 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫قالب بستههای زیر پروتکل رکورد‬
‫‪14 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫زیر پروتکل تغییر رمز‬
‫‪ ‬در خالش پکوت ل دستداد‪ ،‬هکیک از تارخواه و تارگزار پارامتکهرای‬
‫امنیتی مورد نظک خود را میفکستند‪.‬‬
‫‪ ‬پس از پایان تار‪ ،‬با ارساش یک زیک پکوت ل «تغییک رمرز»‪ ،‬پارامتکهرا‬
‫نهایی میشوند‪.‬‬
‫‪‬با دریاف پیغام تغییک رمز‪ ،‬حال مهلر (‪ )pending‬هرک طرکف‬
‫ب حال جاری (‪ )current‬تبدیل میشود‪.‬‬
‫‪ ‬زیک پکوت ل «تغییک رمز» توچ تکین پکوت ل امنی شب‬
‫اس ‪.‬‬
‫‪‬شامل فدط ‪ 1‬بای با مددار ‪!1‬‬
‫‪15 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫چهار فاز تبادل پارامترهای امنیتی – ‪1‬‬
‫پیامهای خاتستکی اختیاری یا‬
‫وابست ب موقهی هستند‪.‬‬
‫‪16 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫چهار فاز تبادل پارامترهای امنیتی – ‪2‬‬
‫پیامهای خاتستکی اختیاری یا‬
‫وابست ب موقهی هستند‪.‬‬
‫‪17 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫علت وجود پیامهای اختیاری یا وابسته به موقعیت – ‪1‬‬
‫‪ ‬انواع مدلهای اعتماد‪:‬‬
‫‪‬طکفین هیچ تلید موتکتی از هم ندارند (‪)Anonymous DH‬‬
‫‪‬طکفین از هم تلید متدارن (‪ Pre-Shared Key‬یا ‪ )PSK‬دارند؛‬
‫موهور ب ‪.TLS-PSK‬‬
‫‪‬تارگزار‪ ،‬تارخواه‪ ،‬یا هک دو از هم گواهی دیجیتاش دارند‪.‬‬
‫• مبتنی بک ‪( RSA‬دو نوع‪ RSA :‬فدط بکای امضا؛ ‪ RSA‬بکای امضا و رمز)‬
‫• مبتنی بک ‪( DSA‬دو نوع‪ :‬شامل پارامتکهای ‪DH‬؛ بدون پارامتکهای ‪)DH‬‬
‫‪Fixed DH‬‬
‫‪18 / 79‬‬
‫امنیت داده و شبکه‬
‫‪Ephemeral DH‬‬
‫محمد صادق دوستی‬
‫علت وجود پیامهای اختیاری یا وابسته به موقعیت – ‪2‬‬
‫‪ ‬نوع پکوت ل مورد استفاده جه تبادش تلید‪:‬‬
‫‪‬انتقا کلید (‪ :)Transport‬مهموالً مبتنی بک ‪RSA‬‬
‫‪‬تباد کلید‪ :‬مهموالً مبتنی بک ‪DH‬‬
‫‪ ‬استفاده از ‪ DH‬ب دلیل فکاهم آوردن امنی پیوکو تکجیح دارد‪.‬‬
‫‪ DH ‬با امنی مساوی ‪ RSA‬شدیداً تندتک اس ‪.‬‬
‫‪‬اسررتفاده از ‪ DH‬روی خمهررای بیضرروی (‪)Elliptic Curves‬‬
‫مهررکوف برر ‪ E( ECDHE‬انتهررایی توترر نوشرر ‪Exchange‬‬
‫اس )‪.‬‬
‫‪19 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
Pre-Master Secret
Pre- ‫ مدرداری بر نرام‬،‫ تلیدی ت در پکوت ل دستداد تبادش میشرود‬
. ‫ اس‬Master Secret
‫مدردار مخفری محاسرب‬
‫ شر‬،Pre-Master Secret ‫ با استفاده از‬
:‫میشود‬
Client write MAC secret
 Server write MAC secret
 Client write encryption key
 Server write encryption key
 Client write encryption IV
 Server write encryption IV

‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
20 / 79
‫زیر پروتکل هشدار‬
‫‪ ‬در صورتی ت در حین اجرکای پکوت رل ‪ SSL/TLS‬خطرایی رخ‬
‫دهد‪ ،‬یا طکفین بخواهند پیامهای تنتکلری بفکسرتند‪ ،‬زیرک پکوت رل‬
‫هودار اجکا میشود‪.‬‬
‫‪‬شامل دو بایت‪ :‬سطح هودار‪ ،‬و تد هودار‬
‫‪ ‬سطح هودار میتواند ‪( warning‬مددار ‪ )1‬یا ‪( fatal‬مدردار ‪)2‬‬
‫باشد‪.‬‬
‫‪ ‬سطح هودار ‪ fatal‬بالفاصل باعث بست شدن اتصاش میشود‪.‬‬
‫‪‬سایک اتصالها روی نوس جراری مم رن اسر ادامر یابنرد‪ ،‬ولری‬
‫اتصاش جدیدی اجازه تو یل نخواهد داش ‪.‬‬
‫‪21 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫نمونههایی از زیر پروتکل هشدار‬
 unexpected_message
 bad_record_mac
 handshake_failure
 certificate_revoked
 certificate_expired
 close_notify
‫محمد صادق دوستی‬
 ‫نمون ای از پیام تنتکلی‬
‫امنیت داده و شبکه‬
22 / 79
‫انواع ‪ Payload‬زیر پروتکل رکورد در یک نگاه‬
‫‪23 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست مطالب‬
‫‪ ‬معرفی و تاریخچه‬
‫‪ SSL/TLS ‬در سطح باال‬
‫‪ TLS ‬در عمل‬
‫‪ ‬جزئیات ‪TLS‬‬
‫‪Heartbleed ‬‬
‫‪24 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مثال‪ :‬اطالعات فایرفاکس از رمزنگاری ‪Gmail‬‬
‫‪25 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫واکاوی بیشتر‬
 TLS_ECDHE_RSA_WITH_AES_128_GCM_
SHA256, 128 bit keys, TLS 1.2
ECDHE: Elliptic Curve DH Exchange
RSA: Gmail Public Key Type
AES 128: Symmetric Key Cipher
GCM: Mode of Encryption
SHA256: Hash Algorithm (for MAC)
TLS 1.2: TLS Version
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
26 / 79
‫نقشه راه‬
‫‪ ‬در ادام ‪ ،‬سهی میتنیم تا ‪ TLS‬را در عمل بکرسی تنیم‪.‬‬
‫‪ ‬با توج ب گستکدگی پکوت ل‪ ،‬ام ان بکرسری تمرام حالتهرا وجرود‬
‫ندارد‪.‬‬
‫‪ ‬دو حال خاص‪:‬‬
‫‪‬حالت ‪ :1‬تلید عمومی ‪RSA‬؛ انتداش تلید با ‪RSA‬‬
‫‪‬حالت ‪ :2‬تلید عمومی ‪RSA‬؛ تبادش تلید ‪DH‬‬
‫‪ Apache + OpenSSL ‬روی ‪ Ubuntu‬ب عنوان تارگزار‬
‫‪ Firefox ‬ب عنوان تارخواه‬
‫‪27 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جزئیات پیکربندی ‪ TLS‬با ‪ about:config‬در فایرفاکس‬
‫‪28 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
Apache + OpenSSL ‫تنظیمات‬
:OpenSSL ‫ تولید گواهی دیجیتاش تارگزار توسط‬
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 1095 -newkey
rsa:2048 -out /etc/apache2/ssl/server.crt -keyout
/etc/apache2/ssl/server.key
:/etc/apache2/ports.conf ‫ تنظیم پورت در‬
Listen 443
)mod_ssl( ‫ آپاچی‬SSL ‫ فهاشسازی و پی کبندی ماژوش‬
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
29 / 79
mod_ssl ‫پیکربندی ماژول‬
:‫ فهاشسازی‬
sudo a2enmod ssl
:‫ پی کبندی‬
/etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile
/etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
:‫ راهاندازی مجدد آپاچی‬
sudo /etc/init.d/apache2 restart
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
30 / 79
‫تنظیمات امنیتی در ماژول ‪mod_ssl‬‬
‫‪ ‬آنچ ر تررا تنررون گفت ر شررد‪ ،‬حررداقل تنظیمررات بررکای راهانرردازی‬
‫‪ HTTPS‬در آپاچی بود‪.‬‬
‫‪ ‬بکای امنی بیوتک‪ ،‬باید تنظیمات دیگکی در فایل ‪ssl.conf‬‬
‫آپرراچی انجررام داد (پررس از انجررام تنظیمررات آپرراچی بایررد مجرردداً‬
‫راهاندازی شود)‪.‬‬
‫‪ ‬در اسالیدهای بهدی دو تنظیم مهم را بکرسی میتنیم‪:‬‬
‫‪‬نسخ ‪SSL/TLS‬‬
‫‪‬الگوریتمهای رمز و پکوت لهای مورد استفاده‬
‫‪31 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫نسخه ‪SSL/TLS‬‬
‫‪# The protocols to enable.‬‬
‫‪# Available values:‬‬
‫‪all, SSLv3, TLSv1, TLSv1.1, TLSv1.2‬‬
‫‪is no longer supported‬‬
‫‪#‬‬
‫‪# SSL v2‬‬
‫‪SSLProtocol all‬‬
‫‪ ‬در حاش حاضک امنتکین تنظیم‪ TLSv1.2 ،‬اس ‪.‬‬
‫‪‬البت الزم اس پوتیبانی تارخواهها از این نسخ از پکوت ل در‬
‫نظک گکفت شود‪.‬‬
‫‪32 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫الگوریتمهای رمز و پروتکلهای مورد استفاده‬
#
#
#
#
#
#
SSL Cipher Suite:
List the ciphers that the client is
permitted to negotiate. See the
ciphers(1) man page from the openssl
package for list of all available options.
Enable only secure ciphers:
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
. ‫ عالم تهجب (!) ب مهنی عدم استفاده اس‬
‫ (فه رالً مهررادش‬authentication ‫ یهنرری پکوت ررل برردون‬aNull
.)Anonymous DH
.‫ در مثاش فوق فدط رمزهای با امنی متوسط و باال مورد قبولند‬
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
33 / 79
‫مجبور کردن کارگزار به عدم استفاده از ‪DH‬‬
‫‪ ‬ب طور پی فکض‪ ،‬تارگزار از پکوت ل ‪ ECDH‬بکای تبادش تلیرد‬
‫استفاده میتند‪.‬‬
‫‪‬در جه حفظ محکمانگی پیوکو‬
‫‪ ‬در حال اوش میخواهیم انتداش تلید از طکی ‪ RSA‬انجرام شرود؛‬
‫ب همین دلیل ‪ ECDH‬را سم تارگزار غیک فهاش میتنیم‪.‬‬
‫‪/etc/apache2/mods-enabled/ssl.conf‬‬
‫‪SSLCipherSuite !ECDH:!DH:HIGH:MEDIUM:!aNULL:!MD5‬‬
‫‪34 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مجبور کردن مرورگر به عدم استفاده از ‪DH‬‬
‫‪ ‬همچنین میتوانستیم از فایکفاتس بخواهیم ت از ‪ DH‬استفاده ن ند‪.‬‬
‫‪35 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫حالت ‪ – 1‬تعامل ‪ RSA‬بین کارخواه و کارگزار‬
‫‪ ‬با استفاده از ‪ Wireshark‬تهامل را شنود میتنیم‪.‬‬
‫‪36 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫در صورت اعتماد به کلید عمومی کارگزار و ادامه پروتکل‬

C
Client Hello
Server Hello
Certificate
Server Hello
Done
‫محمد صادق دوستی‬
S
C

S
C

S
Client Key
New Session
Exchange
Ticket
Change Cipher
Change Cipher
Spec
Spec
Enc. Handshake
Enc. Handshake
Message
Message
‫امنیت داده و شبکه‬
37 / 79
‫‪ Client Hello‬روی پروتکل رکورد‬
‫پکوت ل رتورد از نسخ ‪1.0‬‬
‫از ‪ TLS‬استفاده تکده اس ‪.‬‬
‫‪38 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫داخل پیام ‪Client Hello‬‬
‫پکوت ل دستداد از نسخ ‪1.2‬‬
‫از ‪ TLS‬استفاده تکده اس ‪.‬‬
‫با محدود تکدن رمزهرا‬
‫در فایکفررراتس‪ ،‬هررریچ‬
‫روشرری غیررک از ‪RSA‬‬
‫برررکای تبرررادش تلیرررد‬
‫پیونهاد نمیشود‪.‬‬
‫‪39 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارگزار‬
‫داخل‬
‫پیامهای‬
‫رتورد‬
‫دق ‪ :‬تارگزار نسخ ‪ 1.2‬از‬
‫‪ TLS‬را پیونهاد میدهد‪.‬‬
‫‪40 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫داخل پیام ‪Server Hello‬‬
‫تررارگزار ی رری از رمزهررای پیوررنهاد شررده‬
‫توسط مکورگک را میپذیکد‪.‬‬
‫‪41 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫داخل پیام ‪Certificate‬‬
‫‪42 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫داخل پیام ‪Server Hello Done‬‬
‫‪43 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارخواه‬
‫داخل‬
‫پیامهای‬
‫رتورد‬
‫توتررراهتکین پکوت رررل‬
‫امنیتی شب !‬
‫‪44 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫داخل پیام ‪Client Key Exchange‬‬
‫‪ ‬تارخواه‪ Pre-Master Secret ،‬را تولید نموده‪ ،‬آن را برا تلیرد‬
‫عمومی تارگزار رمز و ارساش میتند‪.‬‬
‫‪ 6‬تلید نوس از روی ‪ Pre-Master Secret‬استخکاج شده و‬
‫از این پس تدکیباً هم چیز رمز شده خواهد بود‪.‬‬
‫‪ ‬ساالا ‪ :‬آیررا مرریترروان از ‪ Wireshark‬خواس ر ت ر پیامهررا را‬
‫رمزگوایی تند؟‬
‫‪45 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫رمزگشایی پیامها توسط ‪ Wireshark‬با کلید خصوصی کارگزار‬
‫‪46 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫رمزگشایی پیامها توسط ‪ Wireshark‬با کلید خصوصی کارگزار‬
‫‪47 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫کل پروتکل ‪ -‬قبل و بعد از رمزگشایی‬
‫‪48 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارخواه ‪ -‬قبل و بعد از رمزگشایی‬
‫‪49 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارخواه ‪ -‬قبل و بعد از رمزگشایی‬
‫برررا الصررراق ‪ MAC‬و‬
‫س ر س رمررز تررکدن آن‪،‬‬
‫تارخواه ب تارگزار اثبات‬
‫میتند ت تلید را دارد‪.‬‬
‫‪50 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارگزار ‪ -‬قبل و بعد از رمزگشایی‬
‫‪51 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پاسخ کارگزار ‪ -‬قبل و بعد از رمزگشایی‬
‫‪52 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪ Session Ticket‬چیست؟‬
‫‪ Session Ticket ‬ی ی از توسه های ‪ TLS‬اس ‪.‬‬
‫‪ ‬در ‪ RFC 5077‬تهکیف شده اس ‪.‬‬
‫‪ ‬هدف این اس ت نیرازی نباشرد ترارگزار بر ازای هرک ترارخواه‪،‬‬
‫اطالعات وضهی (‪ )State‬نگ دارد‪.‬‬
‫‪ ‬اطالعات وضهی تارگزار از طکی ‪ Session Ticket‬در اختیرار‬
‫تارخواه قکار میگیکد‪.‬‬
‫‪‬تارخواه در تماسهای بهدی از آن استفاده میتند‪.‬‬
‫‪ ‬از نظک مفهومی شبی بلی در تکبکوس اس ‪.‬‬
‫‪53 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫حالت ‪ – 2‬تعامل ‪ DH‬بین کارخواه و کارگزار‬
‫‪ ‬در سررم تررارگزار‪ ،‬تنظرریم ‪ !ECDH:!DH‬را حررذف و آپرراچی را‬
‫مجدداً راهاندازی میتنیم‪.‬‬
‫‪ ‬در سم‬
‫(در بخ‬
‫تارخواه‪ ،‬ی ی از پکوت لهای مکبوط ب ‪ DH‬را فهاش مینماییم‬
‫‪ about:config‬فایکفاتس)‪.‬‬
‫‪‬بکای سادگی‪ ECDH ،‬را فهاش نمیتنیم‪.‬‬
‫‪ ‬مجدداً تهامل را با ‪ Wireshark‬بکرسی میتنیم‪.‬‬
‫‪ ‬چکا حتی با داشتن تلید خصوصی تارگزار‪ Wireshark ،‬نمریتوانرد‬
‫پیامهای رمز شده را رمزگوایی نماید؟‬
‫‪‬امنی پیوکو!‬
‫‪54 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫عدم امکان رمزگشایی پیامها حتی با داشتن کلید خصوصی‬
‫‪ ‬راهکااار‪ :‬اگررک بتروان بر مکورگررک گفر تر از ‪Pre-Master‬‬
‫‪ Secret‬ت ی بگیکد‪ ،‬قادریم پیامها را حتری بردون داشرتن تلیرد‬
‫خصوصی تارگزار رمزگوایی تنیم‪.‬‬
‫‪‬چطور؟‬
‫‪55 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫کتابخانه ‪ NSS‬و متغیر محیطی‬
‫‪ ‬مکورگکهررایی مثررل ‪ Firefox‬و ‪ Chrome‬بررکای رمزنگرراری از‬
‫تتابخانر ای بر نررام ‪ NSS‬تر توسررط ‪ Mozilla‬توسرره یافتر‬
‫استفاده میتنند‪.‬‬
‫‪‬توت نوش ‪Network Security Services‬‬
‫‪ ‬اطالعات بیوتک‪:‬‬
‫‪https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS‬‬
‫‪ ‬میتوان با تنظیم متغیک محیطری ‪ ،SSLKEYLOGFILE‬بر ‪NSS‬‬
‫گف ت ‪ Pre-Master Secret‬را در یک فایل ذخیکه تند‪.‬‬
‫‪56 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تنظیم متغیر محیطی ‪ NSS‬در ویندوز‬
‫‪57 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تنظیم متغیر محیطی ‪ NSS‬در ویندوز‬
‫‪58 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تنظیم متغیر محیطی ‪ NSS‬در ویندوز‬
‫‪59 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫نکات مهم‬
‫‪ ‬پس از تنظیم متغیک محیطی‪ ،‬الزم اس مکورگک را بسرت و مجردداً‬
‫باز نمایید‪.‬‬
‫‪‬هک بکنام تنها هنگام باز شدن متغیکهای محیطی را میخواند‪.‬‬
‫‪ ‬الزم اس‬
‫مکورگک ب فایل تهیین شرده (‪ )ssl.log‬دستکسری‬
‫‪ write‬داشت باشد‪.‬‬
‫‪‬تنظیم تنتکش دستکسی ب فایل‬
‫‪ ‬حاش مجدداً ب صفح ‪ HTTPS‬مد نظرک بکویرد و تهرامالت را برا‬
‫‪ Wireshark‬ذخیکه نمایید‪.‬‬
‫‪60 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫محتوای فایل ‪ssl.log‬‬
‫‪# SSL/TLS secrets log file, generated by NSS‬‬
‫…‪CLIENT_RANDOM 1723a3ca6b5a… e99d65eeaa5e‬‬
‫‪ ‬قالب فایل در نوانی زیک مستند شده اس ‪:‬‬
‫‪https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format‬‬
‫‪ ‬هک خط از فایرل‪ ،‬یرا برا ‪ RSA‬شرکوع مریشرود (انتدراش تلیرد) یرا برا‬
‫‪( CLIENT_RANDOM‬تبادش تلید ‪.)DH‬‬
‫‪ ‬در حال دوم‪ ،‬دو عدد بهد از ‪ CLIENT_RANDOM‬میآید‪:‬‬
‫‪‬عدد نخس (‪ 64‬بایتی)‪ :‬نانس تارخواه‬
‫‪‬عدد دوم (‪ 96‬بای )‪ :‬مددار ‪Pre-Master Secret‬‬
‫‪61 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تنظیم نشانی فایل ‪ ssl.log‬در ‪Wireshark‬‬
‫‪62 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫قبل و بعد از رمزگشایی‬
‫‪63 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫یافتن کلید مرتبط به هر نشست‬
‫‪ Wireshark ‬برا تمرک مدردار ‪ Random‬در پیرام ‪Client‬‬
‫‪ Hello‬متوج میشود ت از تدام سطک ‪ ssl.log‬باید برکای‬
‫رمزگوایی استفاده نماید‪.‬‬
‫‪64 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫یافتن کلید مرتبط به هر نشست‬
‫‪ Wireshark ‬برا تمرک مدردار ‪ Random‬در پیرام ‪Client‬‬
‫‪ Hello‬متوج میشود ت از تدام سطک ‪ ssl.log‬باید برکای‬
‫رمزگوایی استفاده نماید‪.‬‬
‫‪65 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تبادل الگوریتمهای رمز پس از فعالسازی ‪DH‬‬
‫‪Client Hello‬‬
‫‪Server Hello‬‬
‫‪66 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪Server Key Exchange‬‬
‫‪67 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪Client Key Exchange‬‬
‫‪ ‬مددار ‪ Pre-Master Secret‬بکابک تلید تبرادش شرده در ‪DH‬‬
‫اس ‪.‬‬
‫‪68 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست مطالب‬
‫‪ ‬معرفی و تاریخچه‬
‫‪ SSL/TLS ‬در سطح باال‬
‫‪ TLS ‬در عمل‬
‫‪ ‬جزئیات ‪TLS‬‬
‫‪Heartbleed ‬‬
‫‪69 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
)RFC 5246 ‫ (تعریف در‬master secret ‫تولید‬
master_secret = PRF(
pre_master_secret,
"master secret",
ClientHello.random ||
ServerHello.random)
. ‫ بایتی اس‬48 ‫ مدداری‬master secret 
)Pseudo-Random Function( ‫ یا تابع شب تصادفی‬PRF 
.)seed( ‫ و بذر‬،)label( ‫ بکچسب‬،‫ مدداری مخفی‬:‫ورودی‬
.‫ مدداری تصادفی ب طوش دلخواه‬:‫خروجی‬
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
70 / 79
‫‪PRF‬‬
‫‪ ‬در ‪ TLS‬از ‪ HMAC‬بکای ساخ ‪ PRF‬استفاده میشود‪.‬‬
‫‪ ،TLS 1.2‬استفاده از ‪ SHA-256‬یرا بهترک را برکای ‪HMAC‬‬
‫توصی میتند‪.‬‬
‫= )‪PRF(secret, label, seed‬‬
‫)‪P_hash(secret, label || seed‬‬
‫‪71 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫ کلید نشست‬6 ‫استخراج‬
key_block = PRF( master_secret,
"key expansion",
ServerHello.random ||
ClientHello.random)
‫ اسرتخکاج‬key_block ‫ تلید نوس ب تکتیب زیک از روی‬6 
:‫میشوند‬
Client write MAC secret
 Server write MAC secret
 Client write encryption key
 Server write encryption key
 Client write encryption IV
 Server write encryption IV

‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
72 / 79
MAC_write_key ‫مثال از کاربرد‬
MAC = MAC_Algorithm(MAC_write_key,
seq_num ||
TLSCompressed.type ||
TLSCompressed.version ||
TLSCompressed.length ||
TLSCompressed.fragment)
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
73 / 79
‫فهرست مطالب‬
‫‪ ‬معرفی و تاریخچه‬
‫‪ SSL/TLS ‬در سطح باال‬
‫‪ TLS ‬در عمل‬
‫‪ ‬جزئیات ‪TLS‬‬
‫‪Heartbleed ‬‬
‫‪74 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫آسیبپذیری خونریزی قلبی (‪)Heartbleed‬‬
‫‪ ‬یک آسیبپذیکی بسیار مهرکوف تر در سراش ‪ 2014‬در نرکمافرزار‬
‫‪ OpenSSL‬توف شد‪.‬‬
‫‪ ‬تأثیک روی میلیونها تارگزار ‪ HTTPS‬در دنیا!‬
‫‪ ‬آسیب پذیکی در پیاده سازی پکوت رل ‪Heartbeat‬؛ توسره ای از‬
‫‪ TLS‬تهکیف شده در ‪.RFC 6520‬‬
‫‪‬این پکوت ل بکای بکرسی و زنده نگهداشتن اتصاش اس ‪.‬‬
‫‪ ‬آسیبپذیکی از نوع سکریز بافک اس ‪.‬‬
‫‪ ‬از ‪ 2011‬در تد ‪ OpenSSL‬وجود داشت اس ‪.‬‬
‫‪75 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫چگونگی سوء استفاده از آسیبپذیری ‪Heartbleed‬‬
‫‪76 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫چگونگی سوء استفاده از آسیبپذیری ‪Heartbleed‬‬
‫‪77 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫چگونگی سوء استفاده از آسیبپذیری ‪Heartbleed‬‬
‫‪78 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پایان‬
‫صفحه درس‪:‬‬
‫‪http://ce.sharif.edu/courses/94-95/1/ce442-1/‬‬
‫مراجعه حضوری جهت رفع اشکا ‪ :‬ی ونب ها ‪ 17‬الی ‪18‬‬
‫(طبد پنجم دانو ده‪ ،‬درب شیو ای جنب آسانسور)‬
‫یا در زمانهای دیگر با قرار قبلی‬
‫یا به وسیله رایانامه‪dousti@ce :‬‬
‫‪79 / 79‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬