درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن...

79
صادق دوستیحمد م و شبکه امنیت داده و شبکهه امنیت داده آزمایشگانشگاه دا شریف صنعتی کامپیوتر مهندسیانشکده د صادق دوستیحمد مhttp://dnsl.ce.sharif.edu 1 / 79 درس10 : SSL وTLS

Transcript of درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن...

Page 1: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

امنیت داده و شبکه محمد صادق دوستی

صنعتی شریف دانشگاه آزمایشگاه امنیت داده و شبکه دانشکده مهندسی کامپیوتر

محمد صادق دوستی

http://dnsl.ce.sharif.edu

1 / 79

TLSو SSL: 10درس

Page 2: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 2 امنیت داده و شبکه محمد صادق دوستی

فهرست مطالب

معرفی و تاریخچه

SSL/TLS در سطح باال

TLS در عمل

جزئیاتTLS

Heartbleed

Page 3: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 3 امنیت داده و شبکه محمد صادق دوستی

معرفی کلی

SSL: Secure Sockets Layer

TLS: Transport Layer Security

SSL در شررکتNetscape Communications توسرعه (.SSLطاهر الجمل؛ پدر )یافت و به سرعت محبوب شد

هدف اصلیSSL امنیت وب ،(HTTP )بود.

ترکیبHTTP رویSSL راHTTPS گوییم.

امروزهSSL کاربردهای دیگری نیز دارد.

TLS نسخه استاندارد شدهSSL است.

Page 4: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 4 امنیت داده و شبکه محمد صادق دوستی

جایگاه در شبکه

SSL/TLS برراالی الیرره انتدرراش در پشررته پروتکررل الیرره ایTCP/IP است.

برخی آن را در زمره الیه کاربرد محسوب می کنند.

SSL/TLS بر مبنای پروتکلTCP است.

بررر مبنررای نسررخه ایUDP هررم پیرراده شررده اسررت کرره برره آنDatagram Transport Layer Security ( یراDTLS )

.می گویند

نظیرررررر پروتکلهررررراییHTTP ،FTP ،SMTP ،NNTP وXMPP قادرند ازSSL/TLS استفاده کنند.

Page 5: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 5 امنیت داده و شبکه محمد صادق دوستی

معروف پیش فرض پورتهای

SSL/TLSروی پورت عادی پورت پروتکل

HTTP 80 443

XMPP 80 443

SMTP 25 465 587و

NNTP 119 563

FTP 20 990و 989 21و

IMAP 143 993

POP3 110 995

LDAP 389 636

Telnet 23 992

.تفاوت دارد SSHکامال با پروتکل SSL/TLSروی Telnetپروتکل :توجه

Page 6: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 6 امنیت داده و شبکه محمد صادق دوستی

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

Page 7: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 7 امنیت داده و شبکه محمد صادق دوستی

تاریخچه

توضیح سال پروتکل

SSL 1.0 داخلی ؟؟ Netscape – به شدت ناامن –منتشر نشد

SSL 2.0 1995 به بعد منسوخ محسوب می شود 2011از –تعدادی ناامنی(RFC 6176)

SSL 3.0 1996 به بعد منسوخ محسوب 2015از -به آن وارد است POODLEحمله (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 – عدم سازگاری باSSL 2.0

TLS 1.3 افزودن الگوریتمهای رمز جدید –رمز ضعیف حذف برخی الگوریتمهای به زودی

Page 8: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 8 امنیت داده و شبکه محمد صادق دوستی

فهرست مطالب

معرفی و تاریخچه

SSL/TLS در سطح باال

TLS در عمل

جزئیاتTLS

Heartbleed

Page 9: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 9 امنیت داده و شبکه محمد صادق دوستی

SSL/TLSدو مفهوم اساسی

نشست(Session:) بین کارخواه و کارگزار تناظری.

ی برار تبرادش ( از جمله کلید نشست)پارامترهای رمزنگاری : ایده

.شوند و پس از آن بتوان با خیاش راحت انواع ارتباط را داشت

هزینه زیادی داردپارامترهای رمزنگاری تبادش : علت.

و کارگزارارتباطی برای انتداش بسته ها بین کارخواه :اتصاش.

روی ی نشست می توان چندین اتصاش داشت.

ندارنرد و از پارامترهرای تبادش پارامترهای رمزنگاری نیاز به اتصالها

.نشست بهره می گیرند

Page 10: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 10 امنیت داده و شبکه محمد صادق دوستی

SSL/TLSزیر پروتکلهای

پروتکلSSL/TLS شامل چند زیر پروتکل است:

Record Protocol (رکورد)

Handshake Protocol (دستداد)

Change Cipher Spec Protocol (تغییر رمز)

Alert Protocol (هشدار)

Page 11: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 11 امنیت داده و شبکه محمد صادق دوستی

پروتکلهای دستداد و رکوردزیر

پروتکررل دسررتداد پارامترهررای زیررر بررا اسررتفاده از و کررارگزار کررارخواه

.را تبادش می کنندرمزنگاری

استفاده کرده و بررای سرایر پارامترهای رمزنگاری پروتکل رکورد، از زیر

و پروتکرل الیره کراربرد روی آن خردمات SSL/TLSزیر پروتکلهای

.را فراهم می آورد صحتو محرمانگی

پروتکلهای دستداد، تغییر رمز، هشدار و الیره براالیی روی پروتکرل زیر

.اجرا می شود TCPروی HTTPرکورد اجرا می شوند؛ همان طور که

الزم را بره آنهرا افرزوده و در صرورت لرزوم سررآیندهای پروتکل رکورد

.رمزنگاری انجام می دهد

Page 12: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 12 امنیت داده و شبکه محمد صادق دوستی

پروتکل رکورد زیر اجرای پروتکلها روی

Page 13: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 13 امنیت داده و شبکه محمد صادق دوستی

پروتکل رکوردزیر عملیات

، معموال CRIMEبه دلیل حمله انجام TLSدر فشرده سازی

نمی شود

شامل ی Encryptمرحله Padding نیز هست.

Page 14: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 14 امنیت داده و شبکه محمد صادق دوستی

قالب بسته های زیر پروتکل رکورد

Page 15: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 15 امنیت داده و شبکه محمد صادق دوستی

زیر پروتکل تغییر رمز

در خالش پروتکل دستداد، هری از کارخواه و کارگزار پارامترهرای

.می فرستندامنیتی مورد نظر خود را

پارامترهرا ، «تغییر رمرز »پس از پایان کار، با ارساش ی زیر پروتکل

.نهایی می شوند

با دریافت پیغام تغییر رمز، حالت معلر(pending ) هرر طررف

.تبدیل می شود( current)به حالت جاری

کوچکترین پروتکل امنیت شبکه است« تغییر رمز»زیر پروتکل.

1بایت با مددار 1شامل فدط!

Page 16: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 16 امنیت داده و شبکه محمد صادق دوستی

1 –چهار فاز تبادل پارامترهای امنیتی

پیامهای خاکستری اختیاری یا .وابسته به موقعیت هستند

Page 17: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 17 امنیت داده و شبکه محمد صادق دوستی

2 –چهار فاز تبادل پارامترهای امنیتی

پیامهای خاکستری اختیاری یا .وابسته به موقعیت هستند

Page 18: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 18 امنیت داده و شبکه محمد صادق دوستی

1 –علت وجود پیامهای اختیاری یا وابسته به موقعیت

انواع مدلهای اعتماد:

طرفین هیچ کلید مشترکی از هم ندارند(Anonymous DH)

طرفین از هم کلید متدارن(Pre-Shared Key یاPSK ) دارند؛

.TLS-PSKمشهور به

کارگزار، کارخواه، یا هر دو از هم گواهی دیجیتاش دارند.

(برای امضا و رمز RSAفدط برای امضا؛ RSA: دو نوع) RSAمبتنی بر • (DH؛ بدون پارامترهای DHشامل پارامترهای : دو نوع) DSAمبتنی بر •

Fixed DH Ephemeral DH

Page 19: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 19 امنیت داده و شبکه محمد صادق دوستی

2 –علت وجود پیامهای اختیاری یا وابسته به موقعیت

نوع پروتکل مورد استفاده جهت تبادش کلید:

انتداش کلید(Transport:) معموال مبتنی برRSA

معموال مبتنی بر :تبادش کلیدDH

استفاده ازDH به دلیل فراهم آوردن امنیت پیشرو ترجیح دارد.

DH با امنیت مساویRSA شدیدا کندتر است.

اسررتفاده ازDH بیضرروی خمهررایروی(Elliptic Curves )

Exchange کوترره نوشررتانتهررایی ECDHE (Eمعررروف برره

(.است

Page 20: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 20 امنیت داده و شبکه محمد صادق دوستی

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

Page 21: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 21 امنیت داده و شبکه محمد صادق دوستی

زیر پروتکل هشدار

در صورتی که در حین اجررای پروتکرلSSL/TLS خطرایی رخزیرر پروتکرل دهد، یا طرفین بخواهند پیامهای کنترلری بفرسرتند،

.هشدار اجرا می شود

سطح هشدار، و کد هشدار: شامل دو بایت

سطح هشدار می تواندwarning ( 1مددار ) یاfatal ( 2مدردار ) .باشد

سطح هشدارfatal بالفاصله باعث بسته شدن اتصاش می شود.

روی نشست جراری ممکرن اسرت ادامره یابنرد، ولری اتصالهاسایر

.اتصاش جدیدی اجازه تشکیل نخواهد داشت

Page 22: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 22 امنیت داده و شبکه محمد صادق دوستی

از زیر پروتکل هشدار نمونه هایی

unexpected_message

bad_record_mac

handshake_failure

certificate_revoked

certificate_expired

close_notify از پیام کنترلی نمونه ای

Page 23: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 23 امنیت داده و شبکه محمد صادق دوستی

زیر پروتکل رکورد در یک نگاه Payloadانواع

Page 24: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 24 امنیت داده و شبکه محمد صادق دوستی

فهرست مطالب

معرفی و تاریخچه

SSL/TLS در سطح باال

TLS در عمل

جزئیاتTLS

Heartbleed

Page 25: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 25 امنیت داده و شبکه محمد صادق دوستی

Gmailاز رمزنگاری فایرفاکساطالعات : مثال

Page 26: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 26 امنیت داده و شبکه محمد صادق دوستی

بیشتر واکاوی

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

Page 27: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 27 امنیت داده و شبکه محمد صادق دوستی

نقشه راه

تا می کنیمدر ادامه، سعیTLS را در عمل بررسی کنیم.

با توجه به گستردگی پروتکل، امکان بررسری تمرام حالتهرا وجرود .ندارد

دو حالت خاص:

عمومی کلید : 1حالتRSA انتداش کلید با ؛RSA

عمومی کلید : 2حالتRSA تبادش کلید ؛DH

Apache + OpenSSL رویUbuntu به عنوان کارگزار

Firefox به عنوان کارخواه

Page 28: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 28 امنیت داده و شبکه محمد صادق دوستی

فایرفاکسدر about:configبا TLS پیکربندیجزئیات

Page 29: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 29 امنیت داده و شبکه محمد صادق دوستی

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

ماژوش پیکربندیو فعاش سازی SSL آپاچی(mod_ssl)

Page 30: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 30 امنیت داده و شبکه محمد صادق دوستی

mod_ssl ماژول پیکربندی

فعاش سازی:

sudo a2enmod ssl

پیکربندی:

/etc/apache2/sites-available/default-ssl.conf

مجدد آپاچی راه اندازی:

sudo /etc/init.d/apache2 restart

SSLCertificateFile /etc/apache2/ssl/server.crt

SSLCertificateKeyFile /etc/apache2/ssl/server.key

Page 31: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 31 امنیت داده و شبکه محمد صادق دوستی

mod_ssl ماژولامنیتی در تنظیمات

راه انرردازیبرررای تنظیمرراتآنچرره تررا کنررون گفترره شررد، حررداقل

HTTPS در آپاچی بود.

فایل در دیگری تنظیماتبرای امنیت بیشتر، بایدssl.conf

آپرراچی بایررد مجررددا تنظیمرراتپررس از انجررام )آپرراچی انجررام داد

(.شود راه اندازی

می کنیمدر اسالیدهای بعدی دو تنظیم مهم را بررسی:

نسخهSSL/TLS

رمز و پروتکلهای مورد استفاده الگوریتمهای

Page 32: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 32 امنیت داده و شبکه محمد صادق دوستی

SSL/TLSنسخه

# The protocols to enable.

# Available values:

# all, SSLv3, TLSv1, TLSv1.1, TLSv1.2

# SSL v2 is no longer supported

SSLProtocol all

تنظیم امن تریندر حاش حاضر ،TLSv1.2 است.

از این نسخه از پروتکل در کارخواه هاالبته الزم است پشتیبانی

.نظر گرفته شود

Page 33: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 33 امنیت داده و شبکه محمد صادق دوستی

رمز و پروتکلهای مورد استفاده الگوریتمهای

# 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

به معنی عدم استفاده است( !)عالمت تعجب.

aNull یعنرری پروتکررل برردونauthentication ( معررادش فعررالAnonymous DH.)

قبولندبا امنیت متوسط و باال مورد رمزهایدر مثاش فوق فدط.

Page 34: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 34 امنیت داده و شبکه محمد صادق دوستی

DHمجبور کردن کارگزار به عدم استفاده از

به طور پی فرض، کارگزار از پروتکلECDH برای تبادش کلیرد

.استفاده می کند

در جهت حفظ محرمانگی پیشرو

در حالت اوش می خواهیم انتداش کلید از طریRSA انجرام شرود؛

.را سمت کارگزار غیر فعاش می کنیم ECDHبه همین دلیل

/etc/apache2/mods-enabled/ssl.conf

SSLCipherSuite !ECDH:!DH:HIGH:MEDIUM:!aNULL:!MD5

Page 35: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 35 امنیت داده و شبکه محمد صادق دوستی

DHعدم استفاده از مرورگر به مجبور کردن

بخواهیم که از فایرفاکسهمچنین می توانستیم ازDH استفاده نکند.

Page 36: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 36 امنیت داده و شبکه محمد صادق دوستی

بین کارخواه و کارگزار RSAتعامل – 1حالت

با استفاده ازWireshark می کنیمتعامل را شنود.

Page 37: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 37 امنیت داده و شبکه محمد صادق دوستی

در صورت اعتماد به کلید عمومی کارگزار و ادامه پروتکل

C S

Client Hello

Server Hello

Certificate

Server Hello

Done

C S

Client Key

Exchange

Change Cipher

Spec

Enc. Handshake

Message

C S

New Session

Ticket

Change Cipher

Spec

Enc. Handshake

Message

Page 38: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 38 امنیت داده و شبکه محمد صادق دوستی

Client Hello روی پروتکل رکورد

1.0پروتکل رکورد از نسخه .استفاده کرده است TLSاز

Page 39: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 39 امنیت داده و شبکه محمد صادق دوستی

Client Helloداخل پیام

با محدود کردن رمزهرا ، هررریچ فایرفررراکسدر

RSAروشرری غیررر از بررررای تبرررادش کلیرررد

.پیشنهاد نمی شود

1.2پروتکل دستداد از نسخه .استفاده کرده است TLSاز

Page 40: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 40 امنیت داده و شبکه محمد صادق دوستی

پاسخ کارگزار

داخل پیامهای رکورد

از 1.2کارگزار نسخه : دقتTLS را پیشنهاد می دهد.

Page 41: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 41 امنیت داده و شبکه محمد صادق دوستی

Server Helloداخل پیام

کررارگزار یکرری از رمزهررای پیشررنهاد شررده .توسط مرورگر را می پذیرد

Page 42: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 42 امنیت داده و شبکه محمد صادق دوستی

Certificateداخل پیام

Page 43: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 43 امنیت داده و شبکه محمد صادق دوستی

Server Hello Doneداخل پیام

Page 44: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 44 امنیت داده و شبکه محمد صادق دوستی

پاسخ کارخواه

داخل پیامهای کوتررراهترین پروتکرررل رکورد

!امنیتی شبکه

Page 45: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 45 امنیت داده و شبکه محمد صادق دوستی

Client Key Exchangeداخل پیام

،کارخواهPre-Master Secret را تولید نموده، آن را برا کلیرد

.عمومی کارگزار رمز و ارساش می کند

6 کلید نشست از رویPre-Master Secret استخراج شده و

.از این پس تدریبا همه چیز رمز شده خواهد بود

آیررا مرری ترروان از :سررلاشWireshark خواسررت کرره پیامهررا را

رمزگشایی کند؟

Page 46: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 46 امنیت داده و شبکه محمد صادق دوستی

با کلید خصوصی کارگزار Wiresharkرمزگشایی پیامها توسط

Page 47: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 47 امنیت داده و شبکه محمد صادق دوستی

با کلید خصوصی کارگزار Wiresharkرمزگشایی پیامها توسط

Page 48: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 48 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی -کل پروتکل

Page 49: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 49 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی -پاسخ کارخواه

Page 50: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 50 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی -پاسخ کارخواه

و MACبرررا الصررراق سررپس رمررز کررردن آن، کارخواه به کارگزار اثبات .می کند که کلید را دارد

Page 51: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 51 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی -پاسخ کارگزار

Page 52: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 52 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی -پاسخ کارگزار

Page 53: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 53 امنیت داده و شبکه محمد صادق دوستی

Session Ticket چیست؟

Session Ticket توسعه هاییکی از TLS است.

درRFC 5077 تعریف شده است.

،هدف این است که نیرازی نباشرد کرارگزار بره ازای هرر کرارخواه

.نگه دارد( State)اطالعات وضعیت

اطالعات وضعیت کارگزار از طریSession Ticket در اختیرار .کارخواه قرار می گیرد

کارخواه در تماس های بعدی از آن استفاده می کند.

است کربروساز نظر مفهومی شبیه بلیت در.

Page 54: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 54 امنیت داده و شبکه محمد صادق دوستی

بین کارخواه و کارگزار DHتعامل – 2حالت

در سررمت کررارگزار، تنظرریم!ECDH:!DH را حررذف و آپرراچی را .مجددا راه اندازی می کنیم

در سمت کارخواه، یکی از پروتکلهای مربوط بهDH می نماییمرا فعاش

(.فایرفاکس about:configدر بخ )

،برای سادگیECDH نمی کنیمرا فعاش.

مجددا تعامل را باWireshark بررسی می کنیم.

،چرا حتی با داشتن کلید خصوصی کارگزارWireshark نمری توانرد پیامهای رمز شده را رمزگشایی نماید؟

امنیت پیشرو!

Page 55: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 55 امنیت داده و شبکه محمد صادق دوستی

عدم امکان رمزگشایی پیامها حتی با داشتن کلید خصوصی

اگر بتوان به مرورگر گفت که از :راهکارPre-Master Secret

کپی بگیرد، قادریم پیامها را حتی بردون داشرتن کلیرد خصوصری

.کارگزار رمزگشایی کنیم

چطور؟

Page 56: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 56 امنیت داده و شبکه محمد صادق دوستی

متغیر محیطی و NSSکتابخانه

مثررل مرورگرهرراییFirefox وChrome برررای رمزنگرراری از

توسررعه یافترره Mozillaکرره توسررط NSSبرره نررام کتابخانره ای

.استفاده می کنند

کوته نوشتNetwork Security Services

اطالعات بیشتر:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS

می توان با تنظیم متغیر محیطریSSLKEYLOGFILE بره ،NSS

.را در ی فایل ذخیره کند Pre-Master Secretگفت که

Page 57: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 57 امنیت داده و شبکه محمد صادق دوستی

در ویندوز NSSتنظیم متغیر محیطی

Page 58: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 58 امنیت داده و شبکه محمد صادق دوستی

در ویندوز NSSتنظیم متغیر محیطی

Page 59: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 59 امنیت داده و شبکه محمد صادق دوستی

در ویندوز NSSتنظیم متغیر محیطی

Page 60: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 60 امنیت داده و شبکه محمد صادق دوستی

نکات مهم

پس از تنظیم متغیر محیطی، الزم است مرورگر را بسرته و مجرددا

.باز نمایید

هر برنامه تنها هنگام باز شدن متغیرهای محیطی را می خواند.

الزم است مرورگر به فایل تعیین شرده(ssl.log ) دسترسری

write داشته باشد.

تنظیم کنترش دسترسی به فایل

حاش مجددا به صفحهHTTPS مد نظرر برویرد و تعرامالت را برا

Wireshark ذخیره نمایید.

Page 61: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 61 امنیت داده و شبکه محمد صادق دوستی

ssl.logمحتوای فایل

قالب فایل در نشانی زیر مستند شده است:

US/docs/Mozilla/Projects/NSS/Key_Log_Format-developer.mozilla.org/enhttps://

هر خط از فایرل، یرا براRSA یرا برا ( انتدراش کلیرد )شرروع مری شرودCLIENT_RANDOM ( تبادش کلیدDH.)

در حالت دوم، دو عدد بعد ازCLIENT_RANDOM می آید:

کارخواه نانس(: بایتی 64)عدد نخست

مددار (: بایت 96)عدد دومPre-Master Secret

# SSL/TLS secrets log file, generated by NSS

CLIENT_RANDOM 1723a3ca6b5a… e99d65eeaa5e…

Page 62: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 62 امنیت داده و شبکه محمد صادق دوستی

Wiresharkدر ssl.logتنظیم نشانی فایل

Page 63: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 63 امنیت داده و شبکه محمد صادق دوستی

قبل و بعد از رمزگشایی

Page 64: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 64 امنیت داده و شبکه محمد صادق دوستی

یافتن کلید مرتبط به هر نشست

Wireshark برا کمر مدردارRandom در پیرامClient

Hello متوجه می شود که از کدام سطرssl.log باید بررای

.رمزگشایی استفاده نماید

Page 65: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 65 امنیت داده و شبکه محمد صادق دوستی

یافتن کلید مرتبط به هر نشست

Wireshark برا کمر مدردارRandom در پیرامClient

Hello متوجه می شود که از کدام سطرssl.log باید بررای

.رمزگشایی استفاده نماید

Page 66: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 66 امنیت داده و شبکه محمد صادق دوستی

DHتبادل الگوریتمهای رمز پس از فعال سازی

Client Hello

Server Hello

Page 67: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 67 امنیت داده و شبکه محمد صادق دوستی

Server Key Exchange

Page 68: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 68 امنیت داده و شبکه محمد صادق دوستی

Client Key Exchange

مددارPre-Master Secret برابر کلید تبرادش شرده درDH

.است

Page 69: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 69 امنیت داده و شبکه محمد صادق دوستی

فهرست مطالب

معرفی و تاریخچه

SSL/TLS در سطح باال

TLS در عمل

جزئیاتTLS

Heartbleed

Page 70: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 70 امنیت داده و شبکه محمد صادق دوستی

(RFC 5246تعریف در ) master secretتولید

master_secret = PRF(

pre_master_secret,

"master secret",

ClientHello.random ||

ServerHello.random)

master secret است بایتی 48مدداری.

PRF یا تابع شبه تصادفی(Pseudo-Random Function)

مدداری مخفی، برچسب :ورودی(label) و بذر ،(seed.)

مدداری تصادفی به طوش دلخواه: خروجی.

Page 71: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 71 امنیت داده و شبکه محمد صادق دوستی

PRF

درTLS ازHMAC برای ساختPRF استفاده می شود.

TLS 1.2 استفاده از ،SHA-256 یرا بهترر را بررایHMAC

.توصیه می کند

PRF(secret, label, seed) =

P_hash(secret, label || seed)

Page 72: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 72 امنیت داده و شبکه محمد صادق دوستی

کلید نشست 6استخراج

key_block = PRF(

master_secret,

"key expansion",

ServerHello.random ||

ClientHello.random)

6 کلید نشست به ترتیب زیر از رویkey_block اسرتخراج :می شوند

Client write MAC secret

Server write MAC secret

Client write encryption key

Server write encryption key

Client write encryption IV

Server write encryption IV

Page 73: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 73 امنیت داده و شبکه محمد صادق دوستی

MAC_write_keyمثال از کاربرد

MAC = MAC_Algorithm(MAC_write_key,

seq_num ||

TLSCompressed.type ||

TLSCompressed.version ||

TLSCompressed.length ||

TLSCompressed.fragment)

Page 74: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 74 امنیت داده و شبکه محمد صادق دوستی

فهرست مطالب

معرفی و تاریخچه

SSL/TLS در سطح باال

TLS در عمل

جزئیاتTLS

Heartbleed

Page 75: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 75 امنیت داده و شبکه محمد صادق دوستی

(Heartbleed)آسیب پذیری خونریزی قلبی

در نررم افرزار 2014ی آسیب پذیری بسیار معرروف کره در سراش

OpenSSL کشف شد.

تأثیر روی میلیونها کارگزارHTTPS در دنیا!

آسیب پذیری در پیاده سازی پروتکرلHeartbeat از توسرعه ای ؛TLS تعریف شده درRFC 6520.

اتصاش است نگهداشتنزنده بررسی و این پروتکل برای.

آسیب پذیری از نوع سرریز بافر است.

در کد 2011ازOpenSSL وجود داشته است.

Page 76: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 76 امنیت داده و شبکه محمد صادق دوستی

Heartbleedچگونگی سوء استفاده از آسیب پذیری

Page 77: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 77 امنیت داده و شبکه محمد صادق دوستی

Heartbleedچگونگی سوء استفاده از آسیب پذیری

Page 78: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

79 / 78 امنیت داده و شبکه محمد صادق دوستی

Heartbleedچگونگی سوء استفاده از آسیب پذیری

Page 79: درس 10: SSL و TLSce.sharif.edu/.../DataNetSec-Dousti-10-SSL_TLS-v1.pdfینماان هجیتن رد و ssl 3.0 هب شاصتا شزنت تیلباق – ssl 3.0 یانبم رب

امنیت داده و شبکه محمد صادق دوستی

پایان

:صفحه درس

/1-442/ce1/95-94http://ce.sharif.edu/courses/

16الی 15 شنبه ها :مراجعه حضوری جهت رفع اشکاش

(جنب آسانسور شیشه ایطبده پنجم دانشکده، درب )

یا در زمانهای دیگر با قرار قبلی

dousti@ce :یا به وسیله رایانامه

79 / 79