SSL_TLS
Cấu trúc
Định nghĩa
SSL (Secure Sockets Layer) và biến thể của nó là TLS (Transport Layer Security) là giao thức được biết đến nhiều nhất về khả năng bảo mật và độ tin cậy trong giao dịch khách - chủ (client-server) trên mạng internet
Cấu trúc
- SSL được coi là một lớp (bảo mật) trung gian giữa lớp vận chuyển và lớp ứng dụng.
- SSL được xếp lớp lên trên một dịch vụ vận chuyển định hướng kết nối và đáng tin cậy (như được cung cấp bởi TCP)
=>SSL có thể dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP
=>Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security Protocol)
- Đặc tính cơ bản của SSL:
• 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ệ.
• 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ệ
Hoạt động
- SSL dùng một chứng nhận số được phát hành bởi nhà cung cấp chứng nhận (CA) hợp lệ để xác thực cho cả hai bên trong giao dịch (máy khách và máy chủ).
- Nếu máy chủ Web được cài đặt để yêu cầu các kết nối bảo mật, nó sẽ từ chối các yêu cầu không được bảo mật.
- Khi trình duyệt máy khách khởi tạo một kết nối bảo mật, quá trình “bắt tay” SSL diễn ra.
- Trình duyệt kiểm tra chứng nhận số để xác thực định danh của máy chủ, sự xác thực của nhà cung cấp chứng nhận và xác nhận chứng nhận đó chưa hết hạn.
- Tiếp theo máy khách và chủ thỏa thuận phương thức bảo mật và các khóa được sử dụng.
- Khi quá trình bắt tay hoàn thành, một khóa mới được tạo ra, và khóa này được dùng để tạo các khóa cho phiên làm việc, những cái mà chính chúng được dùng để mã hóa các giao tiếp còn lại, dùng phương thức mã hóa được thỏa thuận giữa máy khác và chủ.
- Máy chủ sẽ xác thực máy khách nếu máy chủ được cấu hình để yêu cầu sự xác thực của máy khách.
Giao thức bảo mật SSL/TLS
Quá trình tạo bản ghi của SSL record protocol
- Đầu vào: một khối dữ liệu có kích thước tùy ý (Dữ liệu thô).
- Đầu ra: Các bản ghi SSL (<= 16383 byte.)
- Bao gồm các bước sau:
Ø Bước 1: Phân đoạn (SSL Plaintext)
Ø Bước 2: Nén (SSL Compressed)
Ø Bước 3: Mã hóa (SSL Ciphertext)
- Bước 1: Phân đoạn: Chia nhỏ dòng dữ liệu thành các mảnh kích thước 16KB (hoặc nhỏ hơn).
- Bước 2: Nén: Những mảnh dữ liệu này có thế được nén trước khi truyền. Sau đó bắt đầu quá trình tạo các bản ghi cho mỗi đơn vị dữ liệu bằng cách bổ sung thêm header, một số byte cho đủ kích thước quy định của bản ghi (Nếu kích thước của bản ghi chưa đủ) và cuối cùng là phần MAC. Phần header của mỗi bản ghi chứa 2 thông tin quan trọng đó là độ dài của bản ghi và độ dài của khối dữ liệu thêm vào phần dữ liệu gốc.
- Bước 3: Mã hóa: Phần dữ liệu cộng với MAC sẽ được mã hoá sử dụng phương pháp mã hoá (đối xứng). Ví dụ DES hoặc triple DES.
- Phần dữ liệu được mã hoá đó được gắn thêm header bao gồm các trường sau:
Ø Kiểu nội dung (content type): xác định dữ liệu nào chứa trong gói tin để quyết định xem giao thức nào ở lớp cao hơn sẽ chịu trách nhiệm xử lý dữ liệu của gói tin đó. Các giá trị có thể của trường này là: change_cipher_spec, alert, handshake và application_data tham chiếu đến các giao thức tương ứng ở mức cao hơn.
Ø Phiên bản chính (major version): phần chỉ số chính của phiên bản SSL đang sử dụng. Ví dụ với SSL 3.0 thì giá trị trường này là 3.
Ø Phiên bản phụ (minor version): phần chỉ số phụ của phiên bản SSL đang sử dụng. Ví dụ với SSL 3.0 thì giá trị trường này là 0. Sau khi tính toán xong các trường này, bản ghi đã được tạo xong và sẵn sàng để gửi đến cho máy đích
Quá trình thực thi SSL Handshacke protocol
Bước 1: Thiết lập các thông số bảo mật.
- Client gửi các thông tin về SSL version, sesion ID, và danh sách các thuật toán mã hóa nó hỗ trợ. Lúc này client và server sẽ đàm phán các tham số mã hóa như: phương pháp trao đổi khóa (RSA, Diffie-Hellman…), thuật tóan mã hóa chung, hàm thực hiện chức năng hash (MD5, SHA..),để tạo MAC (Message Access Code)…. Các thông tin mà Server cần để giao tiếp với client sử dụng SSL.
- Server sẽ gửi lại các thông tin tương tự về client.
Bước 2: Xác nhận của Server và trao đổi khóa
- Đồng thời server cũng gửi chứng nhận của nó đến client. Và nếu client yêu câu các tài nguyên cần xác thực thì server sẽ yêu cầu thông tin chứng nhận của client.
- Client sử dụng một số các thông tin được gửi bởi server để xác thực với server. Nếu server không thể xác thực, client sẽ được cảnh báo và kết nối không được thành lập. Nếu quá trình xác thực server thành công, quá trình sẽ chuyển qua bước tiếp theo.
Bước 3: Xác nhận của client và trao đổi khóa
- Sử dụng các thông tin được khởi tạo trong quá trình bắt tay trước đó, client sẽ tạo khóa tạm cho phiên kết nối, mã hóa khóa với khóa công cộng của server, gởi đến server.
- Nếu server yêu cầu thông tin chứng nhận của client, client sẽ ký vào một phần dữ liệu đã được trao đổi cho quá trình bắt tay được cả server và client biết. Sau đó gửi cả thông tin chứng nhận và dữ liệu đã được ký tới server được mã hóa bởi khóa tạm cho phiên kết nối đã trao đổi trước đó. Trong trường hợp này, server sẽ xác nhận thông tin chứng thực của client. Nếu client không được xác thực, phiên kết nối sẽ bị hủy bỏ. Ngược lại, server sử dụng khóa riêng của nó để mã hóa khóa tạm cho phiên kết nối và thực hiện quá trình khởi tạo khóa chính tương tự như quá trình khởi tạo khóa tạm.
- Client và server sẽ dùng khóa chính để khởi tạo khóa cho phiên kết nối, được sử dụng để mã hóa và giải mã cũng như đảm bảo tính toàn vẹn của dữ liệu.
Bước 4: Trao đổi khóa và kết thúc
- Client gửi thông tin đến server để xác nhận khóa chung sử dụng cho phiên làm việc, sau đó gửi tín hiệu kết thúc quá trình bắt tay đến server.
- Server gửi thông tin đến client để xác nhận khóa chung sử dụng cho phiên làm việc, sau đó gửi tín hiệu kết thúc quá trình bắt tay đến client.
- Quá trình bắt tay kết thúc, kết nối SSL được thiết lập cho phiên làm việc.Client cũng như server sử dung khóa chung để mã hóa và giải mã thông tin đảm bảo tính bảo mật cũng như tính tòan vẹn của dữ liệu.
Bạn đang đọc truyện trên: TruyenTop.Vip