1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU MỘT SỐ BIỆN PHÁP NÂNG CAO ĐỘ AN TOÀN CỦA GIAO THỨC SSLTLS, ỨNG DỤNG TRONG BẢO MẬT THÔNG TIN MẠNG MÁY TÍNH

103 100 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 103
Dung lượng 3,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

NGHIÊN CỨU MỘT SỐ BIỆN PHÁP NÂNG CAO ĐỘ AN TOÀN CỦA GIAO THỨC SSLTLS, ỨNG DỤNG TRONG BẢO MẬT THÔNG TIN MẠNG MÁY TÍNHĐược thiết kế bởi Netscape bao gồm các cơ chế bảo mật trong các sản phẩm trình duyệt để tạo ra truyền thông an toàn trên mạng, SSLTLS hiện đang là giao thức bảo mật được sử dụng phổ biến trên Internet nhất là trong các hoạt động thương mại điện tử. Ban đầu, SSL được thiết kế kết hợp cùng với giao thức HTTP được sử dụng bởi các Web server và browser, nhưng bây giờ nó đã là một thành phần quan trọng trong mọi loại truyền thông Internet bảo mật. Việt Nam đang trên đường hội nhập với nền công nghệ thông tin thế giới, các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ diễn ra sôi nổi, khi đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSLTLS là điều cần thiết. Cho đến hiện nay có rất nhiều phương pháp bảo mật như DES, RSA,… Nhưng một trong số đó, bộ giao thức SSLTLS là một phương pháp được sử dụng phổ biến nhất trong bảo mật trên internet.Trong đồ án này, em nghiên cứu một số biện pháp nâng cao độ an toàn của giao thức SSLTLS, ứng dụng trong bảo mật thông tin mạng máy tính. Em hy vọng rằng với đồ án tốt nghiệp này sẽ đem đến cái nhìn cụ thể hơn về SSLTLS và bảo mật mạng, tầm quan trọng của nó cũng như ứng dụng trong thực tế.

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU MỘT SỐ BIỆN PHÁP NÂNG CAO ĐỘ

AN TOÀN CỦA GIAO THỨC SSL/TLS, ỨNG DỤNG TRONG

BẢO MẬT THÔNG TIN MẠNG MÁY TÍNH

Ngành: An toàn thông tin

Trang 3

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU MỘT SỐ BIỆN PHÁP NÂNG CAO ĐỘ

AN TOÀN CỦA GIAO THỨC SSL/TLS, ỨNG DỤNG TRONG

BẢO MẬT THÔNG TIN MẠNG MÁY TÍNH

Ngành: An toàn thông tin

Trang 5

Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng góp

ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè

Em xin gửi lời cảm ơn chân thành đến ThS Nguyễn Thanh Sơn - Cục QLMMDS

& KĐSPMM người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình làm đồ án tốtnghiệp

Em cũng chân thành cảm ơn các thầy cô giáo trong Học Viện Kỹ Thuật Mật mãnói chung, các thầy cô trong Khoa An Toàn Thông Tin nói riêng đã dạy dỗ cho em kiếnthức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lýthuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập

Cuối cùng em, xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện,quan tâm, giúp đỡ em trong suốt quá trình học tập và hoán thành đồ án tốt nghiệp

Em xin chân thành cảm ơn!

Hà Nội, ngày 25 tháng 05 năm 2018

Sinh viên

Trần Văn Dũng

Trang 6

Được thiết kế bởi Netscape bao gồm các cơ chế bảo mật trong các sản phẩm trìnhduyệt để tạo ra truyền thông an toàn trên mạng, SSL/TLS hiện đang là giao thức bảo mậtđược sử dụng phổ biến trên Internet nhất là trong các hoạt động thương mại điện tử Banđầu, SSL được thiết kế kết hợp cùng với giao thức HTTP được sử dụng bởi các Webserver và browser, nhưng bây giờ nó đã là một thành phần quan trọng trong mọi loạitruyền thông Internet bảo mật Việt Nam đang trên đường hội nhập với nền công nghệthông tin thế giới, các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ diễn ra sôi nổi,khi đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSL/TLS là điều cần thiết Chođến hiện nay có rất nhiều phương pháp bảo mật như DES, RSA,… Nhưng một trong số

đó, bộ giao thức SSL/TLS là một phương pháp được sử dụng phổ biến nhất trong bảo mậttrên internet.Trong đồ án này, em nghiên cứu một số biện pháp nâng cao độ an toàn củagiao thức SSL/TLS, ứng dụng trong bảo mật thông tin mạng máy tính Em hy vọng rằngvới đồ án tốt nghiệp này sẽ đem đến cái nhìn cụ thể hơn về SSL/TLS và bảo mật mạng,tầm quan trọng của nó cũng như ứng dụng trong thực tế

Trang 7

LỜI CẢM ƠN i

TÓM TẮT ii

MỤC LỤC iii

DANH SÁCH HÌNH VẼ v

DANH SÁCH BẢNG BIỂU vi

BẢNG CHÚ GIẢI MỘT SỐ CỤM TỪ VIẾT TẮT vi

MỞ ĐẦU vii

CHƯƠNG 1 TỔNG QUAN VỀ BỘ GIAO THỨC SSL/TLS 1

1.1 Giới thiệu về bộ giao thức SSL/TLS 1

1.1.1 SSL/TLS là gì? 1

1.1.2 Tại sao sử dụng SSL/TLS 1

1.1.3 Lịch sử ra đời của SSL/TLS 2

1.2 Cấu trúc, nguyên lý hoạt động của bộ giao thức SSL/TLS 4

1.2.1 Kiến trúc giao thức SSL/TLS 4

1.2.2 Cách SSL/TLS làm việc 22

1.2.2.1 Tiến trình SSL 22

1.2.2.2 Giao thức SSL 23

1.3 Kết luận chương 1 26

CHƯƠNG 2 MỘT SỐ VẤN ĐỀ VỀ AN TOÀN ĐỐI VỚI BỘ GIAO THỨC SSL/TLS 27

2.1 Một số tấn công đã biết đối với bộ giao thức SSL/TLS 27

2.1.1 Tấn công MITM (Man in the middle) 27

2.1.2 Tấn công Brute-force trên các khoá session 38

2.1.3 Tấn công BEAST (Browser Exploit Against SSL/TLS) 39

2.1.4 Tấn công CRIME (Compression Ratio Info-Leak Made Easy) 44

2.1.5 Tấn công HEARTBLEED 49

2.2 Một số biện pháp nâng cao an toàn đối với bộ giao thức SSL/TLS 52

2.2.1 Phòng chống các tấn công đã biết 53

2.2.1.1 Tấn công MITM (Man in the middle) 53

2.2.1.2 Tấn công Brute-force trên các khoá session 57

2.2.1.3 Tấn công BEAST (Browser Exploit Against SSL/TLS) 58

Trang 8

2.2.2 Tùy biến các thuật toán mật mã và tham số mật mã 60

2.2.2.1 Các thuật toán mật mã an toàn dùng cho SSL/TLS 60

2.2.2.2 Các tham số mật mã an toàn dùng cho SSL/TLS 62

2.3 Kết luận chương 2 64

CHƯƠNG 3 NGHIÊN CỨU BỘ THƯ VIỆN MẬT MÃ OPENSSL VÀ ĐỀ XUẤT ỨNG DỤNG TRONG BẢO MẬT THÔNG TIN TRÊN MẠNG MÁY TÍNH 65

3.1 Tổng quan về bộ thư viện mật mã OpenSSL 65

3.1.1 Giới thiệu về OpenSSL 65

3.1.2 Các phiên bản của OpenSSL 65

3.1.3 Các chức năng đơn giản của chương trình OpenSSL 66

3.1.3.1 Sử dụng để băm dữ liệu 66

3.1.3.2 Mã hóa dữ liệu 67

3.1.3.3 Tạo mật khẩu đã được mã hóa 67

3.1.3.4 Ký và xác thực chữ ký 67

3.1.3.5 Tạo khóa RSA , DSA hay EC 67

3.1.3.6 Kiểm tra số nguyên tố 68

3.1.3.7 Kiểm tra hiệu suất phần cứng của hệ thống 68

3.2 Đề xuất ứng dụng trong bảo mật thông tin trên mạng máy tính 69

3.2.1 Demo phương pháp tấn công HTTP 69

3.2.2 Giải pháp phòng chống và triển khai SSl 72

3.3 Kết luận chương 3 81

KẾT LUẬN 82

TÀI LIỆU THAM KHẢO 83

Trang 9

Hình 1 Cấu trúc của SSL 5

Hình 2 Hoạt động của SSL Record Protocol 9

Hình 3 Thể hiện trao đổi lúc ban đầu cần được thiết lập một kết nối logic giữa client và server Việc trao đổi có thể xem như có bốn giao đoạn. 16

Hình 4 Các message SSL 23

Hình 5 Mô hình tấn công MITM 27

Hình 6 Quá trình truyền thông ARP 29

Hình 7 Chặn truyền thông bằng các giả mạo ARP Cache 30

Hình 8 Truy vấn và đáp trả DNS 32

Hình 9 Các gói truy vấn và đáp trả DNS 32

Hình 10 Truy vấn và đáp trả DNS bằng đệ quy 33

Hình 11 Tấn công giả mạo DNS bằng phương pháp giả mạo DNS ID 34

Hình 12 Một Session bình thường 35

Hình 13 Chiếm quyền điều khiển 35

Hình 14 Quá trình truyền thông HTTPS 36

Hình 15 Chiếm quyền điều khiển truyền thông HTTPS 38

Hình 16 Sơ đồ tấn công CRIME 45

Hình 17 HTTP request của client 46

Hình 18 SSL/TLS không ẩn độ dài request/response 46

Hình 19 HTTP request của client đã bị kẻ tấn công thay đổi 47

Hình 20 Tấn công CRIME thực hiện tại một bên liên lạc 48

Hình 21 Chia tách bản ghi sử dụng giá trị biên đã lựa chọn 49

Hình 22 Xem ARP Cache 54

Hình 23 Phát hiện tấn công CRIME trong máy chủ 59

Trang 10

Bảng 1 Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL. 7

Bảng 2 Các thành phần thông tin trạng thái Session SSL 8

Bảng 3 Các thành phần thông tin trạng thái nối kết SSL 8

Bảng 4 Các thuật toán mã hóa 11

Bảng 5 Các kiểu message giao thức SSL handshake 15

Bảng 6 Bảng tổng hợp đề xuất thuật toán và tham số mật mã sử dụng trong giao thức SSL/TLS 64

BẢNG CHÚ GIẢI MỘT SỐ CỤM TỪ VIẾT TẮT

CA Certificate Authority (Tổ chức cấp chứng chỉ)

Client Máy khách

HTTP HyperText Transfer Protocol (Giao thức truyền siêu văn bản)

MAC Message Authentication Code (Mã xác thực thông điệp)

Server Máy chủ

SSL Secure Sockets Layer (Khe cắm an toàn)

TLS Transport Layer Security (Bảo mật tầng giao vận)

IETF Internet Engineering Task Force

TCP/IP Transfer Control Protocol/Internet Protocol

Trang 11

SSL (Secure Sockets Layer) được Netscape phát triển vào năm 1994, và nhanhchóng trở thành một giao thức được sử dụng rộng rãi cho các ứng dụng và server cần vậnchuyển dữ liệu an toàn qua mạng Internet Giao thức HTTPS mà ta thường thấy ngày naykhi truy cập Facebook, Google, Youtube… chính là sự kết hợp giữa SSL và HTTP VìSSL là giao thức độc quyền nên vào năm 1999 IETF đã chuẩn hóa SSL 3.1 thành TLS 1.0(được quy định trong RFC 2246) Mặc dù SSL và TLS (Transport Layer Security) cónhiều điểm tương đồng, nhưng vẫn có những khác biệt khiến chúng không thể hoạt độngchung với nhau SSL và TLS có các version sau:

SSL đảm bảo tính riêng tư, tính toàn vẹn và chứng thực thông qua các thuật toán

mã hóa và hash đã đề cập trong bài viết Tổng quan về công nghệ VPN SSL nằm giữatầng application và tầng transport trong mô hình OSI, và sử dụng TCP làm giao thức vậnchuyển nhằm truyền các gói tin một cách tin cậy

Ngày nay việc bảo mật thông tin là yếu tố quan trọng để quyết định sự sống còncủa một tổ chức, một công ty hay doanh nghiệp Với sự phát triển nhanh chóng của côngnghệ đã mang lại nhiều tiện ích cho người dùng nhưng đồng thời cũng đặt ra một nhu cầuhết sức cấp thiết về sự an toàn và bảo mật Cho đến hiện nay có rất nhiều phương phápbảo mật như DES, RSA,… Nhưng một trong số đó, bộ giao thức SSL/TLS là một phươngpháp được sử dụng phổ biến nhất trong bảo mật trên internet Từ nhận thức và các kiếnthức đã được học trong Học Viện Kỹ Thuật Mật Mã em đã chọn đề tài “NGHIÊN CỨUMỘT SỐ BIỆN PHÁP NÂNG CAO ĐỘ AN TOÀN CỦA GIAO THỨC SSL/TLS, ỨNGDỤNG TRONG BẢO MẬT THÔNG TIN MẠNG MÁY TÍNH ” để nghiên cứu thực tế

và viết thành đồ án này Với những hiểu biết còn hạn chế và thời gian thực tế quá ngắnngủi, với sự giúp đỡ của các thầy cô giáo , em hy vọng sẽ giúp mọi người hiểu được phầnnào bộ giao thức SSL/TLS và ứng dụng nó trong bảo mật mạng internet

Trang 12

sử ra đời của SSL/TLS) và Cấu trúc, nguyên lý hoạt động của bộ giao thức SSL/TLS.

Chương 2 Một số vấn đề về an toàn đối với bộ giao thức SSL/TLS Chương nàygiới thiệu một số tấn công đã biết đồi với bộ giao thức SSL/TLS và một số giải pháp tùybiến các tham số, nguyên thủy mật mã nhằm nâng cao độ an toàn của giao thức

Chương 3 Nghiên cứu bộ thư viện mật mã OpenSSL và đề xuất ứng dụng trongbảo mật thông tin trên mạng máy tính Chương này sẽ giới thiệu tổng quan về bộ thư việnmật mã OpenSSL và đề xuất ứng dụng trong bảo mật thông tin trên mạng máy tính(Demo phương pháp tấn công HTTP và giải pháp phòng chống và triển khai SSL)

Bài viết này đã được hoàn thành với sự tận tình hướng dẫn, giúp đỡ của ThS Nguyễn Thanh Sơn và các Thầy cô trong trong khoa An Toàn Thông Tin

Em xin chân thành cảm ơn!

Trang 13

Chương 1 TỔNG QUAN VỀ BỘ GIAO THỨC SSL/TLS

1.1 Giới thiệu về bộ giao thức SSL/TLS

1.1.1 SSL/TLS là gì?

SSL được viết tắt của từ Secure Socket Layer, là tiêu chuẩn của công nghệ bảomật, truyền thông mã hoá giữa máy chủ Web server và trình duyệt (browser) Tiêu chuẩnnày hoạt động và đảm bảo rằng các dữ liệu truyền tải giữa máy chủ và trình duyệt củangười dùng đều riêng tư và toàn vẹn SSL hiện tại cũng là tiêu chuẩn bảo mật cho hàngtriệu website trên toàn thế giới, nó bảo vệ dữ liệu truyền đi trên môi trường internet được

an toàn

TLS được viết tắt của từ Transport Layer Security, là sự kế thừa của SSL và do đó

TLS bao gồm rất nhiều cải tiến và sửa lỗi trên SSL SSL đã được giới thiệu vào đầu

những năm 1990 và ba phiên bản đã được đưa lên SSL 3.0 Sau đó, vào năm 1999, phiênbản SSL tiếp theo xuất hiện dưới tên TLS 1.0 Hiện tại, phiên bản mới nhất là TLS 1 2.SSL là một cũ có rất nhiều lỗi bảo mật đã biết và do đó dễ bị tấn công như đã biết, nhưtấn công POODLE.Phiên bản mới nhất của TLS có các bản sửa lỗi cho các cuộc tấn côngnày trong khi nó cũng hỗ trợ các tính năng và thuật toán mới Vì vậy, đối với các ứngdụng cần bảo mật tốt hơn, nên sử dụng phiên bản TLS mới nhất thay vì sử dụng giao thứcSSL cũ

1.1.2 Tại sao sử dụng SSL/TLS

Ngày nay việc bảo mật thông tin là yếu tố quan trọng để quyết định sự sống còncủa một tổ chứng, một công ty hay doanh nghiệp.Với sự phát triển nhanh chóng của côngnghệ đã mang lại nhiều tiện ích cho người dùng nhưng đồng thời cũng đặt ra một nhu cầuhết sức cấp thiết về sự an toàn và bảo mật Cho đến hiện nay có rất nhiều phương phápbảo mật như DES, RSA,… Nhưng một trong số đó, bộ giao thức SSL/TLS là một phươngpháp được sử dụng phổ biến nhất trong bảo mật trên internet

Việc truyền các thông tin nhạy cảm trên mạng rất không an toàn vì những vấn đề sau:

 Bạn không thể luôn luôn chắc rằng bạn đang trao đổi thông tin với đúng đối tượngcần trao đổi

 Dữ liệu mạng có thể bị chặn, vì vậy dữ liệu có thể bị một đối tượng thứ ba khácđọc trộm, thường được biết đến như attacker

 Nếu attacker có thể chặn dữ liệu, attacker có thể sửa đổi dữ liệu trước khi gửi nóđến người nhận

Trang 14

SSL giải quyết các vấn đề trên SSL giải quyết vấn đề đầu tiên bằng cách cho phépmột cách tùy chọn mỗi bên trao đổi có thể chắc chắn về định danh của phía đối tác trongmột quá trình gọi là authentication (xác thực) Một khi các bên đã được xác thực, SSLcung cấp một kết nối được mã hóa giữa hai bên để truyền bảo mật các message Việc mãhóa trong quá trình trao đổi thông tin giữa hai bên cung cấp sự riêng tư bí mật, vì vậy màgiải quyết được vấn đề thứ hai Thuật toán mã hóa được sử dụng với SSL bao gốm hàmbăm mã hóa, tương tự như một checksum Nó đảm bảo rằng dữ liệu không bị thay đổitrong quá trình truyền dẫn Hàm băm mã hóa giải quyết vấn đề thứ ba, tính toàn vẹn dữliệu.

Chú ý rằng, cả xác thực và mã hóa đều là tùy chộn, và phụ thuộc vào cipher suites(các bộ mã hóa) được đàm phán giữa hai đối tượng

Một ví dụ rõ ràng nhất mà trong đó bạn nên sử dụng SSL là trao đổi thông tin giaodịch qua mạng (e-commerce) Trong trao đổi e-commerce, thât dại đột khi giả ddinjhjrằng bạn có thể chắc chắn về định danh của server mà bạn đang trao đổi thông tin Ai đó

có thể ễ dàng tại ra một Website giả hứa hẹn cách dịch vụ tuyệt vời, chỉ để cho bạn nhậpvào đó số tài khoản SSL cho phép bạn, client,xác thực về định danh của server Nó cũngcho phép server xác thực định danh của client, mặc dù trong các giao tác Internet, việcnày hiếm khi được làm

Một khi client và server đã hài lòng với định danh của mỗi bên đối tác SSL cũngcấp tính bảo mật và tính toàn vẹn thông qua các thuật toán mã hóa mà nó sử dụng Điềunày cho phép các thông tin nhạy cảm, như số tài khoản, được truyền đi một cách an toàntrên Internet

Trong khi SSL cung cấp tính xác thực, tính bảo mật và toàn vẹn dữ liệu, nó khôngcũng cấp non-repudiation (tính không từ chối) Non-repudiation có nghĩa là khi một đốitượng gửi đi một message, thì sau đó không thể phù nhận việc mình đã gửi message đó.Khi một chữ kí số tương đương được liên kết với một message, việc trao đổi này sau đó

có thể được chứng minh SSl một mình nó không cung câp non-repudiation

1.1.3 Lịch sử ra đời của SSL/TLS

Như chúng ta đã biết có hai giao thức bảo mật quan trọng lớp vận chuyển (LayerTransport) có tầm quan trọng cao nhất đối với sự bảo mật của các trình ứng dụng trênWeb: đó là hai giao thức SSL và TLS

Nói chung, có một số khả năng để bảo vệ bằng mật mã lưu lượng dữ liệu HTTP

Ví dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP mà về cơ bản là

Trang 15

một cải tiến bảo mật của HTTP Một phần thực thi của S-HTTP đã làm cho có sẵn côngcộng trong một phiên bản được chỉnh sửa của trình duyệt Mosaic NCSA mà những ngườidùng phải mua (trái với trình duyệt Mo NCSA "chuẩn" có sẵn công cộng và miễn phí trênInternet).

Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và mộtgiao thức tương ứng với phiên bản đầu tiên của Netscape Navigator, Trái với tập đoànCommerceNet, Netscape Communications đã không tính phí các khách hàng của nó vềviệc thực thi giao thức bảo mật của nó Kết quả, SSL trở thành giao thức nổi bật để cungcấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP 1994 và S-HTTP lặng lẽ biến mất.Cho đến bây giờ, có ba phiên bản của SSL và bốn phiên bản dành cho TLS

1 SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications Nó chứa một

số khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài

2 SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x Nó có một

số điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của đối tượng trung gian.Trong một nỗ lực nhằm dùng sự không chắc chắn của công chúng về bảo mật của SSL,Microsoft cũng đã giới thiệu giao thức PCT (Private Communication Technology) cạnhtranh trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996

3 Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoftbằng cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và thêm một số tínhnăng mới Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất cả cácphiên bản phần mềm dựa vào TCP/IP của nó (mặc dù phiên bản riêng của nó vẫn hỗ trợPCT cho sự tương thích ngược)

Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung ra chính thức vào tháng 3năm 1996 Nó được thực thi trong tất cả các trình duyệt chính bao gồm ví dụ MicrosoftInternet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiênbản cao hơn), và Open Như được thảo luận ở phần sau trong chương này, SSL 3.0 đãđược điều chỉnh bởi IETF TLS WG Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫnxuất từ SSL 3.0

4 Theo mặc định, TLS 1.1 và TLS 1.2 được kích hoạt khi Windows EmbeddedCompact 7 dựa trên thiết bị được cấu hình là một khách hàng bằng cách sử dụng cài đặt

Trang 16

trình duyệt Giao thức bị vô hiệu hoá khi Windows Embedded nén 7-dựa thiết bị được cấuhình như một máy chủ web.

5 TLS 1.3 mới đã được hoàn thành vào ngày 21 tháng 3 năm 2018 Phần thú vịcho cộng đồng WordPress và khách hàng ở đây tại Kinsta là TLS 1.3 bao gồm rất nhiềucải tiến về bảo mật và hiệu suất Với bản cập nhật giao thức HTTP / 2 vào cuối năm 2015

và bây giờ TLS 1.3 vào năm 2018, các kết nối được mã hóa hiện đã an toàn hơn và nhanhhơn bao giờ hết

1.2 Cấu trúc, nguyên lý hoạt động của bộ giao thức SSL/TLS

1.2.1 Kiến trúc giao thức SSL/TLS

Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 1(Cấu trúc SSL và giao thức SSL) Theo hình này, SSL ám chỉ một lớp (bảomật) trung gian giữa lớp vận chuyển (Transport Layer) và lớp ứng dụng(Application Layer) SSL được xếp lớp lên trên một dịch vụ vận chuyển địnhhướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP Về khảnăng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy

ý dựa vào TCP chứ không chỉ HTTP Thực tế, một ưu điểm chính của cácgiao thức bảo mật lớp vận chuyển (Transport layer) nói chung và giao thứcSSL nói riêng là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được

sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên trên TCP mộtcách trong suốt Hình 1 minh họa một số giao thức ứng dụng điển hình baogồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3 Tất cả chúng có thểđược bảo vệ bằng cách xếp lớn chúng lên trên SSL (mẫu tự S được thêm vàotrong các từ ghép giao thức tương ứng chỉ định việc sử dụng SSL) Tuy nhiên,chú ý rằng SSL có một định hướng client-server mạnh mẽ và thật sự khôngđáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng

Trang 17

Cấu trúc của SSL và giao thức SSL

Hình 1 Cấu trúc của SSL

Tóm lại, giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:

 Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách sửdụng mật mã khóa chung

 Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa trong suốt saukhi một sự thiết lập quan hệ ban đầu và sự thương lượng khóa session đã xảy ra

 Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì cácthông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằngcách sử dụng MAC

Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công phântích lưu lượng Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích không được mã hóa

và các số cổng TCP, hoặc xem xét lượng dữ liệu được truyền, một người phân tích lưulượng vẫn có thể xác định các bên nào đang tương tác, các loại dịch vụ đang được sửdụng, và đôi khi ngay cả dành được thông tin về các mối quan hệ doanh nghiệp hoặc cánhân Hơn nữa, SSL không ngăn các cuộc tấn công có định hướng dựa vào phần thực thiTCP, chẳng hạn như các cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session

Trang 18

Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia đang sử dụng SSL Nói chung, có ba khả năng để giải quyết vấn đề này:

 Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned Numbers Authority (IANA) Trong trường hợp này, một số cổng riêng biệt phải được gán cho mọi giao thức ứng dụng vốn sử dụng SSL

 Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọn bảo mật như là một phần của giao thức ứng dụng (bây giờ được chỉnh sửa đôichút)

 Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật, chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường

Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là khảnăng thứ hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh sửa để hiểutiến trình thương lượng Ngoài ra, việc xác định một tùy chọn TCP (nghĩa là khả năng thứba) là một giải pháp tốt, nhưng đó không được thảo luận nghiêm túc cho đến bây giờ.Thực tế, các số cổng riêng biệt đã được dành riêng và được gán bởi IANA cho mọi giaothức ứng dụng vốn có thể chạy trên SSL hoặc TLS (nghĩa là khả năng thứ nhất) Tuynhiên, hãy chú ý việc sử dụng các số cổng riêng biệt cũng có khuyết điểm là đòi hỏi hainối kết TCP nếu client không biết những gì mà server hỗ trợ Trước tiên, client phải nốikết với cổng an toàn và sau đó với cổng không an toàn hay ngược lại Rất có thể các giaothức sau này sẽ hủy bỏ phương pháp này và tìm khả năng thứ hai Ví dụ, SALS (SimpleAuthentication và Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác thực vàocác giao thức ứng dụng dựa vào kết nối Theo thông số kỹ thuật SALS, việc sử dụng các

cơ chế xác thực có thể thương lượng giữa client và server của một giao thức ứng dụng đãcho

Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy trênSSL/TLS được tóm tắt trong bảng 1 và được minh họa một phần trong hình 1 Ngày nay,

"S" chỉ định việc sử dụng SSL được thêm (hậu tố) nhất quán vào các từ ghép của các giaothức ứng dụng tương ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêmtiền tố một cách không nhất quán và một số từ ghép)

Trang 19

Bảng 1 Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL.

Ftps-data 989 FTP (dữ liệu) trên TLS/SSL

Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và duy trìthông tin trạng thái ở một trong hai phía của session Các phần tử thông tin trạng tháisession tương ứng bao gồm một session ID, một chứng nhận ngang hàng, một phươngpháp nén, một thông số mật mã, một khóa mật chính và một cờ vốn chỉ định việc session

có thể tiếp tục lại hay không, được tóm tắt trong bảng 2 Một session SSL có thể được sửdụng trong một số kết nối và các thành phần thông tin trạng thái nối kết tương ứng đượctóm tắt trong bảng 3 Chúng bao gồm các tham số mật mã, chẳng hạn như các chuỗi bytengẫu nhiên server và client, các khóa mật MAC ghi server và client, các khóa ghi server

và client, một vector khởi tạo và một số chuỗi Ở trong hai trường hợp, điều quan trọngcần lưu ý là các phía giao tiếp phải sử dụng nhiều session SSL đồng thời và các session có

nhiều nối kết đồng thời.

Trang 20

Bảng 2 Các thành phần thông tin trạng thái Session SSL

Session ID Định danh được chọn bởi server để nhận

dạng một trạng thái session hoạt động hoặc

có thể tiếp tục lại

Peer certificate Chứng nhân X.509 phiên bản 3 của thực thể

ngang hàng

Compression method Thuật toán dừng để nén dữ liệu trước khi mã hóa

Cipher spec Thông số của các thuật toán mã hóa dữ liệu

và MAC

Master secret Khóa mật 48-byte được chia sẻ giữa client

và server

Is resumable Cờ vốn biểu thị session có thể được sử dụng

để bắt đầu các nối kết mới hay không

Bảng 3 Các thành phần thông tin trạng thái nối kết SSL

Ngẫu nhiên server và client

Các chuỗi byte được chọn bởi server và client cho mỗi nối kết

Khóa mật MAC ghi server

Khóa mật được sử dụng cho các hoạt động MAC trên dữ liệu được ghi bởi server

Khóa mật MAC ghi client

Khóa mật được sử dụng cho các hoạt động MAC trên dữ liệu được ghi bởi client

Khóa ghi server Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và giải mã bởi client

Khóa ghi client Khóa được sử dụng để mã khóa dữ liệu bởi client và giải mã bởi server

Initialization vector

Trạng thái khởi tạo cho một mật mã khối trong chế độ CBC Trường này được khởi tạo đầu tiên bởi SSL Handshake Player Sau

đó, khối text mật mã sau cùng từ mỗi bản ghi được dành riêng để sử dụng vởi bản ghi sau đó

Trang 21

Số chuỗi Mỗi phía duy trì các số chuỗi riêng biệt cho

các thông báo được truyền và được nhận chomỗi nối kết

1 Giao thức SSL Record

SSL Record Protocol cung câp 2 dịch vụ cho kết nối SSL:

 Confideniality (tính cẩn mật): Handshake Protocol định nghĩa 1 khóa bí mật đượcchia sẽ, khóa này được sử dụng cho mã hóa quy ước các dữ liệu SSL

 Message integrity (tính toàn vẹn thông điệp): Handshake protocol cũng định nghĩa

1 khóa bí mật được chia sẻ, khóa này được sử dụng để hình thành MAC (mã xácthực message)

Hình sau sẽ chỉ ra toàn bộ hoạt động của SSL RecordProtocol SSL Record Protocol nhận message ứng dụng sắp đượctuyền đi, phân mảnh dữ liệu thành nhiều block, nén dữ liệu 1 cáchtùy chọn, áp dụng vào một MAC, mã hóa, thêm vào header, vàtruyền khối kết quả thu được trong 1 segment TCP Dữ liệu nhậnđược được giải mã, kiểm tra, giải nén, sắp xếp lại và phân phối đếnngười sử dụng ở lớp cao hơn

Trang 22

Hình 2 Hoạt động của SSL Record Protocol

Bước đầu tiên là phần mảnh Mỗi message của lớp bên trên được

phân mảnh thành các block, mỗi block là 214 byte (16384 byte) hoặc

ít hơn

Tiếp theo, nén được áp dụng 1 cách tùy chọn Nén phải là không

mất mát thông tin và có thể không làm tăng chiều dài nội dung nhiềuhơn 1024 byte (Dĩ nhiên, người ta mong muốn nén làm co lại dữ liệuhơn là nới rộng dữ liệu Tuy nhiên, với những block ngắn, có thể, dođịnh dạng quy ước, thuật toán nén thực sự làm cho output dài hơninput) Trong SSLv3 ( cũng như phiên bản hiện tại của TLS), không

có thuật toán nén nào được chỉ rõ, vì vậy thuật toán nén mặc định lànull

Bước xử lí kế tiếp theo là tính toán MAC (mã xác thực message)

trên dữ liệu đã được nén Để thực hiện cần dùng đến 1 khóa bí mậtđược chia sẻ Phép tính được định nghĩa như sau:

Hash(MAC_write_secret||pad_2||hashI(MAC_write_secret||pad_1||seq_num||SSLCompressed.type||SSLCompressed.legth||

SSLCompressed.fragment))Trong đó:

 || : phép nối/ hoặc

 MAC_write_secret: khóa bí mật được chia sẻ

 Hasd: thuật toán băm mã hóa, MD5 hoặc SHA-1

 Pad_1: byte 0x36 (00110110) được lặp lại 48 lần (384 bit) cho MD5 và 40 lần (320bit) cho SHA-1

 Seq_num: sequence number cho message này

 SSLCompressed.type: giao thức ở lớp trên được dùng để xử lí phân mảnh này

 SSLcompressed.length: chiều dài của phân mảnh đã được nén

 SSLCompressed.fragment: phân mảnh đã được nén (nếu nén không được dùng,phần mảnh ở dạng plaintext)

Chú ý rằng, cái này tương tự như thuật toán HMAC Điểmkhác biệt alf 2 phần đệm (pad) được || trong SSLv3 và được XOR

Trang 23

trong HMAC Thuật toán MAC trong SSLv3 được dựa trên bànohacs thảo Internet ban đầu cho HMAC Phiên bản gần nhất củaHMAC được định nghĩa trong RFC 2104, sử dụng XOR.

Kế tiếp, message đã nén cộng thêm MAC được mã hóa theo phương pháp mã hóa đối xứng Mã hóa có thể không làm tăng

chiều dài nội dung hơn 1024 byte, vì vậy chiều dài tổng cộng khôngvượt quá 214 + 2048 Các thuật toán mã hóa sau được cho phép:

Bảng 4 Các thuật toán mã hóaBlock cipher (Mã

hóa khối)

Stream cipher (Mãhóa luồng)

Thuậttoán

Kíchthướckhóa

Thuậttoán

KíchthướckhóaA

ES

128,192,256

RC4-40

40

IDEA

128

RC4-12

128

Trang 24

C2-40

40

DES-40

40

DES

56

3DES

168

Fortezza

80

Fortezza có thể được sử dụng trong mục tiêu mã hóa smart card

Với mã hóa stream (luồng), meassge đã nén cộng thêm MACđược mã hóa Chú ý rằng MAC được tính toán trước hi mã hóa xảy

ra và MAC được mã hóa cùng với plaintext hoặc là plaintext đã nén.Với mã hóa block (khối), Mac có thể được đệm thêm trướckhi mã hóa Phần đệm thêm (padding) có dạng gồm nhiều byte đệmđược theo sau bởi 1 byte chỉ rõ chiều dài của phần đệm Tổng sốlượng đệm vào là lượng nhỏ nhất sao cho tổng kích thước dx liệuđược mã hóa (plaintext + MAC + padding) là 1 bội số của chiều dàukhối mã hóa, Ví dụ, plaintext (hoặc text đã nén nếu nén được dùng)

Trang 25

là 58 byte, với MAC là 20 byte (dùng SHA-1), được mã hóa vớichiều dài bội của 8,1 byte đệm được thêm vào.

Bước cuối cùng của xử lí SSL Record Protocol là gắn thêm vào 1header, bao gồm các mục sau:

 Content Type (8 bit): giao thức lớp trên được dùng để xử lí phân mảnh đi kèm

 Major Version (8 bit): chỉ ra phiên bản SSL tối đa được dùng Ví dụ, SSLv3, giá trịnày là 3

 Minor Version (8 bit): chỉ ra phiên bản tối thiểu được dụng Ví dụ, SSLv3, giá trịnày là 0

 Compressed Length (16 bit): chiều dài theo byte của phân mảnh plaintext (hoặcchiều dài theo byte cyar phân mảnh đã nén nếu nén được dùng) Giá trị lớn nhất là

214 + 2048

Các loại nội dung được định nghĩa là change_cipher_spec,alert, handshake, và application_data Ba cái đầu tiên là các giaothức đặc trưng_- SSL, được bàn đến trong phần kế tiếp Chú ý rằngkhông có sự khác biệt nào được tạo ra giữa các ứng dụng (nhưHTTP…) có thể dùng SSL, nội dung dữ liệu được tạo ra bởi các ứngdụng đó thì không trong suốt đối với SSL

yte+0

s 1-4

(Major)

Trang 26

s 5

1)Byte

Padding (block ciphers only)

Content types Versions

ype

MajorVersion Minorversion Version Type

hangeCipherSpec

lert

1.0

andshake

1.1

Trang 27

1.2

2 Giao thức SSL change cipher spec

Giao thức SSL Change Cipher Spec là giao thức đơn giản nhấttrong ba giao thức đặc trưng của SSL mà sử dụng giao thức SSLRecord Giao thức này bao gồm một message đơn 1 byte giá trị là 1.Mục đích chính của message này là sinh ra trạng thái tiếp theo đểgán vào trạng thái hiện tại, và trạng thái hiện tại cập nhật lại bộ mãhóa để sử dụng trên kết nối này

yte+0

Byte

s 5

CCSprotoc

Trang 28

3 Giao thức SSL Alert

Giao thức SSL Alert được dùng để truyền cảnh báo liên kếtSSL với đầu cuối bên kia Như những ứng dụng khác dử dụng SSL,alert messages được nén và mã hóa, được chỉ định bởi trạng tháihiện tại

Mỗi message trong giao thức này gồm 2 bytes Byte đầu tiêngiữ giá trị cảnh báo (1) hoặc nguy hiểm (2) để thông báo độ nghiêmngặt của message Nếu mức độ là nguy hiểm, SSL lập tức chấp dứtkết nối Những kết nối cùng phiên khác vẫn có thể tiếp tục nhưng sẽkhông kết nối nào khác trên phiên này được khởi tạo thêm, Byte thứhai chứa một mã chỉ ra cảnh báo đặc trưng Đầu tiên, chúng ta liệt kênhững cảnh báo đó mà luôn ở mức nguy hiểm (được định nghĩa từnhững thông số SSL):

không thể giải nén hoặc giải nén lớn hơn độ dài tối đa cho phép)

Handshake_failure: Bên gửi không thể thương lượng một bộ chập nhận được của

các thông số bảo mật được đưa ra từ những lựa chọn có sẵn

Illegal_parameter: Một trường trong một handshake message thì vượt khỏi dãy

hoặc trái với những trường khác

Phần còn lại của cảnh báo thì như sau:

Close_notify: Thông báo cho bên nhận rằng bên gửi sẽ không gửi thêm message

não nữa trong kết nối này Mỗi nhóm thì được yêu cầu gửi một close_notify cảnhbáo trước khi kết thúc phần ghi của một kết nối

No_certificate: Có thể được gửi để trả lời cho một yêu cầu certificate nếu không

Trang 29

Certificate_revoked: Certificate đã bị thu hồi bởi nhà cung cấp.

Certificate_expired: Certificate đã hết hạn đăng ký.

Certificate_unknown: Một số phát xinh không nói rõ xuất hiện trong quá trình xử

lý certificate làm cho nó không thể chấp nhận

yte+0

Byte

Byte0

escrpti

Trang 30

onBytes

1 4

Version

Length

elloRequest

lientHelloBytes

5 8 Messagetype Handshakemessage

data length

erverHello

ertifi

Trang 31

data

erverKeyExchangex

ertificateRequestBytes

n (n+3) Messagetype Handshakemessage

data length

er

Trang 32

ertificateVerifyBytes

data

lientKeyExcha

Trang 33

inished

Phần “khó nuốt” nhất của SSL là giao thức Handshake Giaothức này cho phép server và client chứng thực với nhau và thươnglượng cơ chế mã hóa, thuật toán MAC và khóa mật mã được sửdụng để bảo vệ dữ liệu được gửi trong SSL record Giao thức SSLHandshake thường được sử dụng trước khi dữ liệu của ứng dụngđược truyền đi

Giao thức SSL Handshake bao gồm một loạt những messagetrao đổi giữa client và server Mỗi message có ba trường:

 Type (1 byte) : chỉ ra một trong mười dạng message

 Length (3 bytes) : độ dài của message theo bytes

 Content (>=0 bytes) : tham số đi kèm với message này, được liệt kê trong Bảng 5

Bảng 5 Các kiểu message giao thức SSL handshake

Trang 34

Certificate_request Type, authorities

Client_key_excha

Trang 35

Hình 3 Thể hiện trao đổi lúc ban đầu cần được thiết lập một kết nối logic giữa client và

server Việc trao đổi có thể xem như có bốn giao đoạn.

Giai đoạn 1 – Thiết lập khả năng bảo mật:

Trang 36

Giai đoạn này được dùng để bắt đầu một kết nối logic và thiếtlập khả năng bảo mật mà sẽ liên kết với nó Việc trao đổi thì đượckhởi tạo bởi client bằng việc gửi một client_hello message vớinhững thông số sau đây:

 Version: version SSL mới nhất mà client biết:

 Random: một cấu trúc sinh ra ngẫu nhiên từ client, bao gồm một nhãn thời gian 32bit và 28 bytes sinh bởi một bộ sinh số ngẫu nhiên an toàn Những giá trị này phục

vụ cho lần này và sử dụng suốt quá trình trao đổi khóa để ngăn tấn công lặp lại

 Session ID: một ID của phiên có chiều dài thay đổi được Session ID khác 0 nghĩa

là client muốn cập nhật tham số của một kết nối đang tồn tại hay tạo một kết nốimới trên phiên này Session ID = 0 chỉ ra rằng client muốn thiết lập một kết nốimới trên một phiên mới

 CipherSuite: đây là 1 danh sách mà chứa những bộ biên dịch của những thuật toán

mã hóa được hỗ trợ bởi client, tham khảo theo thứ tự giảm dần Mỗi thành phầntrong danh sách (mỗi bộ mã hóa) định nghĩa cả một khóa trao đổi và mộtCipherSpec, những thông số này sẽ được bàn đến sau

 Compression Method: đây là danh sách của những phương thức nén mà client hỗtrợ

Sau khi gửi client_hello message,client chờ nhận server_hellomessage mà chứa cùng thông số với client_hello message Vớiserver_hello message, những thỏa thuận kèm theo được áp dụng.Trường Version chứa version thấp hơn được đề nghị bởi client vàcao nhất được hỗ trợ bởi server Trường Random được sinh ra bởiServer và độc lập với trường Random của client Nếu trườngSessionID của client khác 0, thì giá trị tương tự được dùng bởiserver,ngược lại thì trường SessionID của serverr chứa giá trị củamột phiên mới Trường CipherSuite chưa bộ mã hóa chọn bởi server

từ những đề xuất của client Trường compression chứa phương thứcnén chọn bởi server từ những đề xuất của client

Thành phần đầu tiên của thông số Cipher Suite là phương thứctrao đổi khóa (ví dụ như bằng cách nào những khóa mã hóa cho việc

mã hóa thông thường và MAC được trao đổi) Những phương thứctraid dổi kháo sau được hỗ trợ:

Trang 37

 RSA: kháo bí mật được mã hóa với khóa công khai RSA của bên nhận Mộtpublic_key certificate cho khóa bên nhận phải được tạo sẵn.

 Fixed Diffie_Hellman: đầy là sự trao đổi khóa Diffie-Hellman trong certificate củaserver chứa các thông số công khai Diffie-Hellman được ký bởi CertificateAuthority (CA) Nghĩa là certificate khóa công khai chứa các thông số khóa côngkhai Diffie-Hellman Client chứa sẵn các thông số khóa công khai Diffie-Hellman

đó trong certifficate nếu chứng thực client được yêu cầu hoặc trong một messagetrao đổi khóa Phương thức này mang lại kết quả một khóa bí mật cố định giữa haiđầu, dựa trên tính toán Diffie-Hellman sử dụng khóa công khai cố định

 Ephenmeral Diffie-Hellman: Phương pháp đước ử dụng để tạo khóa ”ephemeral”(tạm thời,1 lần)- khóa tạm thời Trong trường hợp này, khóa công khai Diffie-Hellman được trao đổi, được ký sr dụng khóa bí mật RSA hoặc DSS của bên gửi.Bên nhận có thể sử dụng khóa công khai tương ứng để xác minh chữ ký.Certificate được sử dụng để xác thực khóa công khai Điều này như là sự bảo đảmnhất của ba lựa chọn Diffie-Hellman bởi vì nó là kết quả của sự tạm thời và khóaxác thực

 Anonymous Diffie-Hellman: thuật toán Diffie-Hellman cơ bản được sử dụng,không chứng thực Nghĩa là mỗi lần một bên gửi thông số Diffie-Hellman côngkhai của nó cho bên kia thì không xác thực Điều này gần như là có thể bị tấn côngMan-in-middle, trong đó kẻ tấn công điều khiển cả nhóm anonymous Diffie-Hellman

 Fortezza: phương pháp định nghĩa cho lược đồ Fortezza

Định nghĩa kèm theo cho một phương pháp trao đổi khóa làCipherSpec, bao gồm những trường sau:

 CipherAlgorithm: một vài thuật toán kế đến: RC4, RC2, DES, 3DES, DES40,IDEA, Fortezza

 MACAlgorithm: MD5 hoặc SHA-1

 CipherType: luồng hoặc khối

 IsExportable: True hoặc False

 HashSize: 0,16(cho MD5), hay 20 (cho SHA-1) bytes

 Key Material: thứ tự của các bytes mà chứa dữ liệu được dùng trong sinh khóa

 IV Size: kích thước của giá trị khởi tạo cho mã hóa Cipher Block Chaining (CBC)

Giai đoạn 2- Xác thực server và trai đổi khóa:

Trang 38

 Server bắt đầu giai đoạn này bằng cách gửi certificate của nó nếu nó cần được xácthực; thông điệp chứa một hoặc một chuỗi certificate (chứng thực) X.509 Thôngđiệp chứng thực được yêu cầu cho bất kì một phương pháp trao đổi kháo nào đượcthỏa thuận, ngoại trừ anonymous Diffie-Hellman Chú ý rằng nếu fixed Diffie-Hellman được dùng, thì thông điệp chứng thực có chức năng như là thông điệp traođổi khóa của server vì nó chứa các tham số Diffie-Hellman công khai của server.

 Sau đó một thông điệp server_key_exchange được gửi đi nếu nó được yêu cầu Nókhông yêu cầu trong 2 trường hợ sau:

- (1) Server đã gửi mọt certificate với các tham số fixed Diffie-Hellman.

- (2) Trao đổi khóa RSA được dùng.

Thông điệp server_key_exchange cần cho các trường hợp sau:

 Anonymous Hellman: Nội dung thông điệp bao gồm hai giá trị Hellman toàn cục (một số nguyên tố và một số nguyên tố cùng nhau với số đó)cùng với khóa Diffie-Hellman của server

Diffie- Ephemeral Hellman: Nội dung thông điệp bao gồm 3 tham số Hellman cung cấp cho anonymous Diffie-Hellman, cùng với một chữ kí của cáctham số này

Diffie- Trao đổi khóa RSA, mà theo đó server sử dụng RSA nhưng có một khóa bí mậtđược mã hóa với khóa công khai/bí mật RSA phụ và sử dụng thông điệpserver_key_exchanged để gửi khóa công khai Nội dung thông điệp bao gồm haithám ố của khóa công khai RSA phụ(số mũ và số dư) cùng với một chữ ký của cáctham số này

 Fortezza: một vài chi tiết thêm về chữ kí được đảm bảo Như thường lệ, một chữ kíđược tạo ra bởi việc lấy mã băm của một thông điệm và mã hóa nó với khóa bí mậtcủa bên gửi

Trong trường hợp này mã băm được định nghĩa:

Hash (ClientHello.random||ServerHello.random||Serverparams)

Vì vậy mã băm bao gồm không chỉ các thông số Hellman hay RSA, mà còn có hai số ngẫu nhiên từ thông điệp hellokhởi tạo, Điều này đảm bảo chống lại tấn công replay vàmisrepresentation(giả dạng) Trong trường hợp chữ kí DSS, mã bămđược biểu diễn sử dụng giải thuật SHA-1

Trang 39

Diffie-Trong trường hợp chữ kí RSA, cả mã băm MD5 và Sha-1 đều đượctính toán, và sự nối nhau của hau mã băm (36 byte) được mã hóa vớikhóa bí mật của server.

 Kế đến, một nonanonymous server(server không dùng anonymous Diffie-Hellman)

có thể yêu cầu một certificate_authorities Kiểu certificate chỉ ra giải thuật khóacông khai, và nó dùng;

- RSA, chỉ dùng chữ kí

- DSS, chỉ dùng chữ kí

- RSA cho Diffie-Hellman thích hợp, trong trường hợp này chữ kí được dùng

chỉ để xác thực, bằng cách gửi dùng certificate được kí với RSA

- DSS cho fixed Diffie-Hellman, một lần nữa, chỉ dùng đễ xác thực.

- RSA cho ephemeral Diffie-Hellman

- DSS cho ephemeral Diffie-Hellman

- Fortezza.

Thông số thứ 2 của thông điệp certificate_request là một danhsách các tên của những CA đặc biệt được chấp nhận Thông điệpcuối cùng trong giai đoạn 2, và là một phần luôn được yêu cầu, làthông điệp Server_done, mà được gửi cho server để chỉ ra điểm cuốicủa thông điệp cuối của server_hello và các message đi kèm Sau khigửi thông điệp, server dẽ chờ hồi đáp của client Thông điệp nàykhông có tham số

Giai đoạn 3 – Xác thực client và trao đổi khóa :

 Trong khi nhận thông điệp server_done,client sẽ xác nhận xem server cung cấpmột chứng chỉ hợp lệ hay chưa nếu được yêu cầu và kiểm tra xem các thông số củaserver_hello được chấp nhận hay không Nếu tất cả đều thỏa mãn, client gửi mộthay nhiều message trở lại cho server Nếu server yếu câu một certificate,client bắtđầu giai đoạn này bằng cách gửi 1 thông điệp certificate Nếu không có certificatephù hợp vào hợp lệ, client gửi một cảnh báo no_certificate thay thế

 Kế đến là thông điệp client_key_exchange phải được gửi đi trong giai đoạn này.Nội dung của thông điệp phụ thuộc vào kiểu trao đổi khóa Như sau:

- RSA: client sinh một trường 48 byte pre-master secret và mã hóa với khóacông khai từ chứng của server hoặc khóa RSA phụ từ thông điệp

Trang 40

server_key_exchange Nó dùng để tính toán một master secret (sẽ được nóisau).

- Ephemeral hoặc Anonymous Diffie-Hellman: các tham số Diffie-hellmancông khai của client được gửi đi

- Fixed Diffie-Hellman: các tham số Diffie-Hellman công khai của clientđược gửi đi trong một thông điệp certificate, vì vậy nội dung của thông điệp

là null

- Fortezza: các tham số Foftezza của client được gửi đi

 Cuối cùng, trong giai đoạn này, client sẽ gửi 1 message certificate_verify để cungcấp xác thực tường minh của một chứng chỉ client Thông điệp này chỉ được gửitheo sau bất kì một cliet certificate nào đã đánh dấu là có khả năng (nghĩa là tất cảcertificate ngoại trừ những cái chứa tham số fixed Diffie-Hellman) Thông điệpnày đánh dấu một mã băm dựa trên các thông điệp có trước, được định nghĩa nhưsau:

CertificateVerify.signature.md5_hash

MD5(master_secret||pad_2||MD5(handshake_message||master_secret||pad_1)):CertificateVerify.signature.md5_hash

 Trong trường hợp khác, mục đích là để xác minh quyền sở hữu của client với khóa

bí mật cho chứng thực client Cho dù là bất cứ ai đang lạm dụng certificate củaclient thì cũng sẽ không thể gửi message này

Giai đoạn 4 – Kết thúc:

 Giai đoạn này hoàn thành thiết lập của một kết nối an toàn, Client gửu một thôngđiệp change_cipher_spec và chép CipherSpec đệm vào CipherSpec hiện tại Chú ýrằng thông điệp này không được xem là một phần của giao thức bắt tay nhưngđược gửi đi sử dụng giao thức Change Cipher Spec Client sau đó ngay lập tức gửi

Ngày đăng: 16/10/2020, 10:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. Javvin, Network Protocols Handbook 4, Copyright © 2004 - 2005 Javvin Technologies Inc Sách, tạp chí
Tiêu đề: Network Protocols Handbook
Tác giả: Javvin
Nhà XB: Javvin Technologies Inc
Năm: 2004 - 2005
[3]. Information Security Principles - By Mark Stamp Sách, tạp chí
Tiêu đề: Information Security Principles
Tác giả: Mark Stamp
[4]. Internet Security Cryptographic principles, Algorithms and protocols- - By Man Young Rhee Sách, tạp chí
Tiêu đề: Internet Security Cryptographic principles, Algorithms and protocols
Tác giả: Man Young Rhee
[5]. Beginning Crypyography with Java_ By David hook [6]. http://www.openssl.org/ Sách, tạp chí
Tiêu đề: Beginning Crypyography with Java
Tác giả: David Hook
[1]. Joshua Davies, Implementing SSL/TLS Using Cryptography and PKI, Published by Wiley Publishing, Inc Khác

🧩 Sản phẩm bạn có thể quan tâm

w