Giao thức SSL

Một phần của tài liệu chữ ký số và ứng dụng bảo mật trang thông tin điện tử (Trang 62 - 65)

a) Giới thiệu giao thức SSL

Trong việc bảo mật thông tin là yếu tố quan trọng để giải quyết sự sống còn của một tổ chức, công ty hay doanh nghiệp. Với sự phát triển nhanh chóng về công nghệ thông tin đã mang lại nhiều tiện ích cho con người đồng thời cũng đặt ra một nhu cầu cần thiết về sự an toàn và bảo mật. Và SSL (Secure Socket Layer) chính là giải pháp tốt nhất hiện nay đáp ứng những nhu cầu đó và nó được coi là “Lá chắn cuối cùng” trong bảo mật.

Giao thức SSL ban đầu được phát triển bởi Netscape version 1.0 thì đã được công bố rộng rãi, version 2.0 được công bố tháng 2/1995 nhưng chứa nhiều lỗ hổng bảo mật và sau cùng đưa đến mô hình SSL version 3.0 được ban hành 1996.

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

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ông cung cấp non-repudiation (tính không từ chối). Non-repudiation có nghĩa là khi 1 đối tượng gửi 1 gói tin, thì sau đó không thể phủ nhận việc mình đã gửi gói tin đó. Khi 1 chữ ký số tương đương được liên kết với 1 gói tin, việc trao đổi này sau đó có thể được chứng minh SSL 1 mình nó không cung cấp non-repudiation.

b) Tiến trình SSL

Việc trao đổi trên mạng sử dụng SSL với việc trao đổi thông tin qua lại giữa client và server. Sự trao đổi thông tin này gọi là SSL handshake.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Một phiên bản SSL bắt đầu với việc đàm phán giữa client và server xem cipher suite nào mà chúng sẽ sử dụng. Một cipher suite là 1 tập các thuật toán mã hóa và kích thước khóa mà máy tính có thể dùng để mã hóa dữ liệu. Một cipher suite bao gồm thông tin về các thuật toán trao đổi khóa công khai và các thuật toán thỏa thuận khóa và các hàm băm mã hóa. Client nói với server các cipher suite nào có sẵn và server lựa chọn cipher suite tốt nhất có thể chấp nhận.

+ Xác thực server

Trong SSL, bước xác thực là tùy chọn, việc xác thực server cho phép client chắc chắn rằng chính server này đại diện cho đối tượng mà client tin tưởng.

Để chứng minh server thuộc về tổ chức mà nó khẳng định là nó đại diện, server phải trình chứng chỉ khóa công khai của nó cho client. Nếu chứng chỉ này là hợp lệ, client có thể chắc chắn về định danh server.

+ Gửi dữ liệu đã mã hóa:

Giờ cả client và server có thể truy cập đến khóa bí mật chung. Với mỗi gói tin, chúng dùng đến hàm băm mã hóa, đã được chọn trong bước đầu của tiến trình, và chia sẻ thông tin bí mật để tính toán 1 HMAC nối thêm vào gói tin. Sau đó chúng dùng khóa bí mật và thuật toán khóa bí mật đã được đàm phán trước đó để mã hóa dữ liệu và HMAC an toàn. Client và server giờ có thể trao đổi thông tin với nhau một cách an toàn với các dữ liệu đã băm và mã hóa.

c) Giao thức SSL

Giao thức SSL handshake là sự trao đổi thông tin giữa client và server trước khi gửi các gói tin đã được mã hóa, phần này sẽ mô tả chi tiết chuỗi tuần tự các gói tin được trao đổi trong SSL handshake. Các gói tin mà chỉ được gửi trong một trường hợp nào đó được đánh dấu là tùy chọn

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Client Server

1. Client hello

2. Server hello

3. Certificate Options 4. Certificate request Options 5. Server key exchange Options 6. Server hello done

7. Certificate Options 8. Client key exchange

9. Certificate verify Options 10. Change cipher spec

11. Finish

12. Change cipher spec 13.Finished

14. Encrypted data 14. Encrypted data 15. Close Message 15. Close Message

Hình 3.7 Các gói tinh trong SSL

Mô tả các gói tin SSL được gửi theo thứ tự sau:

+ Client hello: client gửi đến server các thông tin bao gồm phiên bản SSL cao nhất và 1 danh sách các cipher suite mà nó hỗ trợ bao gồm các thuật toán mã hóa và kích thước khóa.

+ Server hello: server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhất mà cả client và server hỗ trợ và gửi thông tin này về client.

+ Certificate: server gửi cho client 1 chứng chỉ hoặc 1 chuỗi chứng chỉ. Về cơ bản 1 chuỗi chứng chỉ bắt đầu bằng chứng chỉ khóa công khai của server và kết thúc bằng chứng chỉ gốc cảu một tổ chức có thẩm quyền chứng chỉ. Gói tin này là tùy chọn, nhưng nó được dùng bất cứ khi nào xác thực server là cần thiết (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

+ Certificate request: nếu server cần xác thực client, nó gửi cho client 1 yêu cầu xem chứng chỉ. Trong các ứng dụng internet, gói tin này hiếm khi được gửi đi.

+ Server key exchange: server gửi cho client 1 gói tin trao đổi khóa server trong khi khóa công khai được gửi.

+ Server hello done: server nói với client rằng nó hoàn thành các gói tin đàm phám ban đầu.

+ Certificate: nếu server cần chứng chỉ từ client trong gói tin 4, client gửi chuỗi chứng chỉ của nó, cũng giống như server làm trong gói tin 3.

+ Client key exchange: client sinh ra thông tin được dùng để tạo ra khóa trong mã hóa đối xứng. Với RSA, client mã hóa thông tin khóa này bằng khóa công khai của server rồi gửi đến server.

+ Certificate verify: gói tin này được gửi khi client trình ra chứng chỉ. Mục tiêu của nó là cho phép server hoàn thành tiến trình xác thực client. Khi gói tin này được dùng. Client gửi thông tin với chữ ký số tạo bằng hàm băm mã hóa. Khi server giải mã thông tin này bằng khóa công khai của client, server có thể xác thực client.

+ Change cipher spec: client gửi gói tin bảo server thay đổi kiểu mã hóa. + Finished: client nói với server rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn.

+ Change cipher spec: server gửi gói tin bảo client thay đổi kiểu mã hóa. + Finished: server nói với client rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn. Kết thúc SSL handshake.

+ Encrypted data: client và server trao đổi với nhau, sử dụng thuật toán mã hóa đối xứng và hàm băm mã hóa đã đàm phám ở 1 và 2 và dùng khóa bí mật mà client gửi cho server.

+ Closed gói tin: kết thúc 1 kết nối, mỗi bên gử 1 gói tin close-notify để thông báo đầu kia biết kết nối bị đóng.

Một phần của tài liệu chữ ký số và ứng dụng bảo mật trang thông tin điện tử (Trang 62 - 65)