TLS là gì?
TLS (Transport Layer Security) là một tiêu chuẩn bảo mật mạng được sử dụng rộng rãi trên Internet để bảo vệ tính bảo mật và toàn vẹn của dữ liệu truyền tải giữa các máy tính. TLS là phiên bản tiến hóa của tiêu chuẩn trước đó là SSL (Secure Sockets Layer). Phiên bản đầu tiên của giao thức TLS được xuất bản vào năm 1999. Phiên bản gần đây nhất là TLS 1.3, được xuất bản vào năm 2018.
TLS và SSL khác nhau như thế nào?
TLS và SSL là hai tiêu chuẩn bảo mật mạng được sử dụng để bảo vệ tính bảo mật và toàn vẹn của dữ liệu truyền tải qua mạng. TLS ra đời sau SSL và hiện tại đã thay thế SSL để trở thành tiêu chuẩn mới, an toàn hơn và thay thế các phiên bản SSL (1.0, 2.0, 3.0) có nhiều lỗ hổng bảo mật. Ngoài ra TLS có hiệu suất tốt hơn SSL nhiều.
Tuy TLS đã thay thế SSL tuy nhiên mọi người vẫn thường gọi theo tên cũ phổ biến là SSL, hoặc chứng chỉ SSL.
TLS hoạt động như thế nào?
Toàn bộ quá trình kết nối TLS bao gồm các bước kết nối và thuật toán phức tạp, tuy nhiên có thể mô tả trong các bước cơ bản sau đây:
- Bắt tay (handshake): là bước đầu tiên trong việc thiết lập kết nối bảo mật. Trình duyệt hoặc ứng dụng gửi yêu cầu kết nối bảo mật đến máy chủ. Máy chủ phản hồi với thông tin về chứng chỉ SSL/TLS của nó (phiên bản TLS, kiểu mã hoá...) và một khóa công khai (public key).
- Xác minh chứng chỉ: trình duyệt kiểm tra chứng chỉ SSL/TLS của máy chủ. Chứng chỉ này được phát hành và ký bởi một Cơ quan cấp chứng chỉ (CA - Certificate Authority) và xác minh rằng máy chủ là đáng tin cậy.
- Tạo khoá phiên (session key): sau khi xác minh đúng chứng chỉ, trình duyệt sử dụng khóa công khai của máy chủ để tạo một khóa phiên mới, hay còn gọi là khóa bí mật. Khóa phiên này sẽ được sử dụng để mã hóa và giải mã dữ liệu truyền tải trong suốt phiên kết nối để đảm bảo hiệu suất.
- Mã hoá và truyền dữ liệu: dữ liệu được truyền tải giữa trình duyệt và máy chủ được mã hóa bằng khóa phiên mới tạo ra. Điều này đảm bảo rằng bất kỳ thông tin nào cũng không thể đọc được khi nó truyền qua mạng.
- Kết thúc phiên: Khi phiên kết nối kết thúc, khóa phiên sẽ bị hủy bỏ, và mọi thông tin về phiên này sẽ bị xoá đi.
TLS có ảnh hưởng đến tốc độ web không?
Về lý thuyết thì việc truyền tải dữ liệu được mã hoá TLS thì sẽ không nhanh bằng việc truyền tải dữ liệu văn bản thô, tuy nhiên các ảnh hưởng này thường được coi là tương đối nhỏ và đáng đổi lấy lợi ích về bảo mật và toàn vẹn dữ liệu. Các phiên bản mới nhất của TLS hầu như không ảnh hưởng đến hiệu suất ứng dụng web, có thể kể đến một số kỹ thuật sau:
- Giữ kết nối phiên: một phần của việc cải thiện hiệu suất trang web là sử dụng kết nối Keep-Alive, trong đó một kết nối được duy trì và tái sử dụng cho nhiều yêu cầu thay vì tạo kết nối mới cho mỗi yêu cầu. Trình duyệt web chỉ tốn nhiều thời gian nhiều ở giai đoạn bắt tay đầu tiên.
- Các thuật toán mã hoá, nén dữ liệu: được tối ưu hơn ở các phiên bản sau, giúp giảm dung lượng truyền tải dữ liệu xuống và giải mã hoá nhanh hơn.
- Giảm độ trễ khi bắt tay: sử dụng TLS False Start cho phép máy chủ và máy khách bắt đầu truyền dữ liệu trước khi quá trình bắt tay TLS hoàn tất. Cách làm này giúp dữ liệu truyền tải và quá trình bắt tay làm song song nhau.
- TLS session resumption: cho phép tái sử dụng một phiên kết nối TLS đã thiết lập trước đó. Tính năng này giúp cải thiện hiệu suất và giảm độ trễ trong quá trình thiết lập kết nối mới bằng cách sử dụng thông tin từ phiên kết nối trước đó.