1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngăn chặn các tấn công bằng SSL và TLS

29 362 2

Đ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 29
Dung lượng 1,32 MB

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

Nội dung

Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường truyền. Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền. Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCPIP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn:

Trang 1

Mục lục

Chương 1: Tìm hiểu về giao thức SSL trang 04

1 SSL là gì trang 04

2 Lịch sử phát triển trang 05

Chương 2: Cấu trúc và cách hoạt động trang 06

1 Cấu trúc của SSL trang 06

2 Tìm hiểu về các loại mã hóa trang 10

3 Handshake Protocol trang 13

4 Record Protocol trang 17

Chương 3: Các kiểu tấn công và phòng chống trang 23

1 Các kiểu tấn công trang 23

2 Cách phòng chống trang 24

Chương 4: Cài đặt SSL trên Web Application(sử dụng Self-Signed Cert) trang 25

Trang 2

Chương 1: Tìm hiểu Giao thức SSL/TLS

1/SSL là gì?

Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các

hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường truyền Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền Để bảo

vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn:

Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết nối

Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng

Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba Để loại trừ việc

nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người nhận

Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện chính xác

thông tin gốc gửi đến

Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mật thông tin, xác thực và toàn vẹn dữ liệu đến người dùng SSL được tích hợp sẵn vào các browser và Web server, cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn Khi Web browser sử dụng kết nối SSL tới server, biểu tượng ổ khóa sẽ xuất hiện trên thanh trạng thái của cửa sổ browser và dòng “http” trong hộp nhập địa chỉ URL sẽ đổi thành “https” Một phiên giao dịch HTTPS sử dụng cổng 443 thay vì sử dụng cổng 80 như dùng cho HTTP

SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:

Xác thực server: Cho phép người sử dụng xác thực được server muốn kết nối Lúc này,

phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate và public ID của server là có giá trị và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client Điều này rất quan trọng đối với người dùng Ví dụ như khi gửi mã số credit card qua mạng thì người dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này có đúng là server mà họ định gửi đến không

Trang 3

Xác thực Client: Cho phép phía server xác thực được người sử dụng muốn kết nối Phía

server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public

ID của server có giá trị hay không và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của server không Điều này rất quan trọng đối với các nhà cung cấp Ví dụ như khi một ngân hàng định gửi các thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất muốn kiểm tra định danh của người nhận

Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được mã hoá trên

đường truyền nhằm nâng cao khả năng bảo mật Điều này rất quan trọng đối với cả hai bên khi có các giao dịch mang tính riêng tư Ngoài ra, tất cả các dữ liệu được gửi đi trên một kết nối SSL đã được mã hoá còn được bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu ( đó là các thuật toán băm – hash algorithm)

2/Lịch sử phát triển của giao thức 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 (Layer Transport) 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ên Web: đó 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à 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ông cộ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ười dù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ên Internet)

Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và một giao 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àn CommerceNet, 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ủanó Kết quả, SSL trở thành giao thức nổi bật để cung cấ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:

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ạnh tranh 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 Microsoft bằ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ính nă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ác phiê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)

Trang 4

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 3 năm 1996 Nó được thực thi trong tất cả các trình duyệt chính bao gồm ví dụ Microsoft Internet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bả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ẫn xuất từ SSL 3.0

Chương 2: Cấu Trúc và cách hoạt động của SSL

1/Cấu trúc của giao thức SSL:

Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 1.1(Cấu trúc SSL và giao thức SSL) Theo hình này, SSL ám chỉ một lớp (bảo mậ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 định hướng nối kết và đáng tin cậy, chẳng hạn như được cungcấ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ác giao thức bảo mật lớp vận chuyển (Transport layer) nói chung và giao thức SSL 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ỳ giaothức ứng dụng được xếp lớp lên trên TCP một cách trong suốt Hình 1.1 minh họa một số giao thức ứng dụng điển hình bao gồ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ào trong 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

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

Trang 5

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:

1 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

2 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 sau khi một

sự thiết lập quan hệ ban đầu và sự thương lượng khóa session đã xảy ra

3 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ác thô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ằng cá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ân tí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ưu lượ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ôngtin 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 thi TCP, 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

Để 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:

1 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

2 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 đôi chút)

3 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

Trang 6

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ểu tiế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 giao thứ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) Tuy nhiê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 hai nố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ối kế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 giao thứ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 (Simple Authentication và Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác thực vào cá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ên SSL/TLS được tóm tắt trong bảng 1.2 và được minh họa một phần trong hình 1.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 giao thức ứng dụng tương ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêm tiền tố một cách không nhất quánvà một số từ ghép)

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.

Ldaps 636 LDAP trên TLS/SSL

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

Ftps 990 FTP (Điều khiển) trên TLS/SSL

Tenets 992 TELNET trên TLS/SSL

Imaps 994 IRC trên TLS/SSL

Pop3s 995 POP3 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ái session tương ứng bao gồm một session ID, một chứng nhận ngang hàng, một phương phá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 1.3 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 được tóm tắt trong bảng 1.4 Chúng bao gồm các tham số mật mã, chẳng hạn như các chuỗi byte ngẫ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ọng cầ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 7

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

Thành Phần Mô tả

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ã

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

Thành Phần Mô tả

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

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ởiserver 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 đó

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 cho mỗi nối kết

Như được minh họa trong hình 1.1, giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức con SSL được xếp lớp trên nó:

Trang 8

- Record OK được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP và cung cấp sự xác thực nguồn gốc thông báo, sự bí mật

dữ liệu và dữ liệu

- Các dịch vụ toàn vẹn (bao gồm nhưng thứ như chống xem lại)

- Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự hỗ trợ cho việc quản lý session SSL và thiết lập nối kết

Giao thức con SSL quan trọng nhất là SSL Handshake Protocol Lần lượt giao thức này là mộtgiao thức xác thực và trao đổi khóa vốn có thể được sử dụng để thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một trong hai điểm cuốicủa một session hoặc nối kết SSL

Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được gửi và được nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng và các thànhphần thông tin trạng thái SSL Record và Handshake Protocol được trình bầy tổng quan ở phần tiếp theo

2/Tìm Hiểu các loại mã hóa

Mật mã hóa là quá trình chuyển đổi các thông tin thông thường (văn bản thường hay văn bản rõ) thành dạng không đọc trực tiếp được, là văn bản mã Giải mật mã, là quá trình ngược lại, phục hồi lại văn bản thường từ văn bản mã Mật mã là thuật toán để mật mã hóa và giải mật mã Hoạt

động chính xác của mật mã thông thường được kiểm soát bởi khóa — một đoạn thông tin bí mật

nào đó cho phép tùy biến cách thức tạo ra văn bản mã Các giao thức mật mã chỉ rõ các chi tiết

về việc mật mã (và các nền tảng mật mã hóa khác) được sử dụng như thế nào để thu được các nhiệm vụ cụ thể Một bộ các giao thức, thuật toán, cách thức quản lý khóa và các hành động quy

định trước bởi người sử dụng thi hành cùng nhau như một hệ thống tạo ra hệ thống mật mã

Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc Các thuộc tính được yêu cầu là:

1. Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa đựng trong dạng đã mật mã hóa của nó Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp

2. Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông hay không

3. Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không

4. Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông tin đi

Trang 9

5. Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần đến người nhận mà người gửi không hề hay biết.

a.Khóa Đối xứng

Thuật toán khóa đối xứng là những thuật toán hoặc là sử dụng cùng một khóa cho việc mật mã hóa và giải mật mã hoặc là khóa (thứ hai) sử dụng để giải mật mã có thể dễ dàng tính được từ khóa (thứ nhất) đã dùng để mật mã hóa

Các thuật toán phổ biến

DES (Data Encryption Standard) là một thuật toán mã hoá có chiều dài khoá là 56 bit

3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá trong mã

hoá DES

AES: AES là một tiêu chuẩn mã hóa mới, nó đang được triển khai sử dụng đại trà từ

năm 2003

b.Khóa công khai

Các thuật toán Mã hóa khóa đối xứng có một số trở ngại không thuận tiện — hai người muốn trao đổi các thông tin bí mật cần phải chia sẻ khóa bí mật Khóa cần phải được trao đổi theo một cách thức an toàn, mà không phải bằng các phương thức thông thường vẫn dùng để liên lạc Điềunày thông thường là bất tiện, và mật mã hóa khóa công khai (hay khóa bất đối xứng) được đưa ranhư là một giải pháp thay thế Trong mật mã hóa khóa công khai có hai khóa được sử dụng,

là khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân), trong đó khóa công

khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã (cũng có thể thực hiện ngược lại).Rất khó để có thể thu được khóa bí mật từ khóa công khai Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công khai của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắcchắn rằng chỉ có họ có thể giải mật mã các thông điệp được mật mã hóa bằng khóa đó

Trang 10

Chọn một số ngẫu nhiên lớn để sinh cặp khóa.

Dùng khoá công khai để mã hóa, nhưng dùng khoá bí mật để giải mã

Trang 11

Tổ hợp khoá bí mật mình với khoá bí mật của người khác tạo ra khoá dùng chung chỉ hai người biết.

Các thuật toán phổ biến

RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ liệu

được Rivest, Shamir, and Adleman phát triển

RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán RSA

c.Hàm Băm

Hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là

một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v )

Một hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra kết

quả là một xâu ký tự có độ dài cố định.

Trang 12

Trong nhiều chuẩn và ứng dụng, hai hàm băm thông dụng nhất là MD5 và SHA-1 Năm 2005, người ta đã tìm ra lỗi bảo mật của cả hai thuật toán trên.

3/SSL Handshake Protocol:

SSL Handshake Protocol là giao thức con SSL chính được xếp lớp trên SSL Record

Protocol Kết quả, các thông báo thiết lập quan hệ SSL được cung cấp cho lớp bản ghi SSLnơi chúng được bao bọc trong một hoặc nhiều bản ghi SSL vốn được xử lý và được chuyểnnhư được xác định bởi phương pháp nén và thông số mật mã của session SSL hiện hành vàcác khóa mật mã của nối kết SSL tương ứng Mục đích của SSL Handshake Protocol là yêucầu một client và server thiết lập và duy trì thông tin trạng thái vốn được sử dụng để bảo vệcác cuộc liên lạc Cụ thể hơn, giao thức phải yêu cầu client và server chấp thuận một phiên bản giao thức SSL chung, chọn phương thức nén và thông số mật mã, tùy ý xác thực nhau và tạo một khóa mật chính mà từ đó các khóa session khác nhau dành cho việc xác thực và mã hóa thông báo có thể được dẫn xuất từ đó

Tóm lại, việc thực thi SSL Handshake Protocol giữa một client C và một server S có thể được tóm tắt như sau (các thông báo được đặt trong các dấu ngoặc vuông thì tùy ý):

Trang 13

FINISHED

4: S -> C: CHANGECIPHERSPEC

FINISHED

Hình minh họa quá trình trao đổi thông tin

Khi Client C muốn kết nối với server S, nó thiết lập một nối kết TCP với cổng HTTPS (vốn không được đưa vào phần mô tả giao thức) và gởi một thông báo CLIENTHELLO đến server ở bước 1 của sự thực thi SSL Handshake Protocol Client cũng có thể gởi một thông báo

CLIENTHELLO nhằm phản hồi lại một thông báo HELLOREQUEST hoặc chủ động thương lượng lại các tham số bảo mật của một nối kết hiện có Thông báo CLIENTHELLO bao gồm cáctrường sau đây:

- Số của phiên bản SSL cao nhất được biểu hiện bởi client (thường là 3.0)

- Một cấu trúc ngẫu nhiên do client tạo ra gồm một tem thời gian 32 bit có dạng UNIX chuẩn và một giá trị 28 byte được tạo ra bởi một bộ tạo số giả ngẫu nhiên

- Một định danh session mà client muốn sử dụng cho nối kết này

- Một danh sách các bộ mật mã client hỗ trợ

- Một danh sách các phương pháp nén mà client hỗ trợ

Trang 14

Chú ý rằng trường session identity (định danh session) nên rỗng nếu session SSL hiện không tồn tại hoặc nếu client muốn tạo các tham số bảo mật mới Ở một trong hai trường hợp, một trường session identity không rỗng là xác định một session SSL hiện có giữa client và server (nghĩa là một session có các tham số bảo mật mà client muốn sử dụng lại.) Định danh session có thể bắt nguồn từ một nối kết trước đó, nối kết này hoặc một nối kết đang hoạt động Cũng chú ý rằng danh sách các bộ mật mã được hỗ trợ, được chuyển từ client đến server trong thông báo

CLIENTHELLO, chứa các tổ hợp thuật toán mật mã được hỗ trợ bởi client theo thứ tự ưu tiêm Mỗi bộ mật mã xác định một thuật toán trao đổi khóa và một thông báo mật mã Server sẽ chọn một bộ mật mã hoặc nếu các lựa chọn có thể chấp nhận được không được trình bầy, trả về một thông báo lỗi và đóng nối kết một cách phù hợp Sau khi đã gởi thông báo CLIENTHELLO, client đợi một thông báo SERVERHELLO Bất kỳ thông báo khác được trả về bởi server ngoại trừ một thông báo HELLOREQUEST được xem như là một lỗi vào thời điểm này

Ở bước 2, server xử lý thông báo CLIENTHELLO và đáp ứng bằng một thông báo lỗi hoặc thông báo SERVERHELLO Tương tự như thông báo CLIENTHELLO, thông báo

SERVERHELLO có các trường sau đây:

- Một số phiên bản server chứa phiên bản thấp hơn của phiên bản được đề nghị bởi client trong thông báo CLIENTHELLO và được hỗ trợ cao nhất bởi Server

- Một cấu trúc ngẫu nhiên do server tạo ra cũng gồm một tem thời gian 32bit có dạng UNIX chuẩn và một giá trị 28bit được tạo ra bởi một bộ tạo số ngẫu nhiên

- Một định danh session tương ứng với nối kết này

- Một bộ mật mã được chọn từ bởi server từ danh sách các bộ mật mã được hỗ trợ bởi client

- Một phương pháp nén được chọn bởi server từ danh sách các thuật toán nén được hỗ trợ bởi client

Nếu định danh session trong thông báo CLIENTHELLO không rỗng, server tìm trong cache session của nó nhằm tìm ra một mục tương hợp Nếu mục tương hợp được tìm thấy và server muốn thiết lập nối kết mới bằng cách sử dụng trạng thái session tương ứng, server đáp ứng bằng cùng một giá trị như được cung cấp bởi client Chỉ địn này là một session được tiếp tục lại và xácđịnh rằng cả hai phía phải tiến hành trực tiếp với các thông báo CHANGECIPHERSPEC và FINISHED được trình bày thêm bên dưới Nếu không, trường này chứa một giá trị khác nhận biết một session mới Server cũng có thể trả về một trường định danh session rỗng để biểu thị rằng session sẽ không được lưu trữ và do đó không thể được tiếp tục sau đó Cũng chú ý rằng trong thông báo SERVERHELLO, server chọn một bộ mật mã và một phương pháp nén từ các danh sách được cung cấp bởi client trong thông báo CLIENTHELLO Các thuật toán trao đổi khóa, xác thực, mã hóa và xác thực thông báo được xác định bởi bộ mã được chọn bởi server và được làm lộ ra trong thông báo SERVERHELLO Các bộ mật mã vốn đã được xác định trong giao thức SSL về cơ bản giống như bộ mật mã đã xác định cho TLS (như được tóm tắt ở các bản 1.4 đến 1.7 trong những bài viết trước)

Ngoài thông báo SERVERHELLO, server cũng phải gởi các thông báo khác đến client Ví dụ, nếu server sử dụng sự xác thức dựa vào chứng nhân, server gởi chứng nhận site của nó đến clienttrong một thông báo CERTIFICATE tương ứng Chứng nhận phải thích hợp cho thuật toán trao đổi khóa của bộ mật mã được chọn và thường là một chứng nhận X.509v3 Cùng loại thông báo

sẽ được sử dụng sau đó cho sự đáp ứng của client đối với thông báo sẽ được sử dụng sau đó cho

Ngày đăng: 24/08/2017, 21:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w