Thứ Ba, 24 tháng 3, 2020

SSL/TLS và HTTPS

Nếu là dân công nghệ thông tin, chắc hẳn bạn cũng biết HTTPS bảo mật hơn HTTP. Nhưng có bao giờ bạn tự hỏi tại sao lại như vậy không? Sau khi cùng nhau đi qua những kiến thức về asymmetric encrypted, Certificate Authority thì bài này sẽ kết hợp chúng lại để giải thích cho bạn biết được tại sao HTTPs lại bảo mật nhé.

SSL là gì?

SSL viết tắt của từ Secure sockets layer, nói cho đơn giản thì nó là một chuẩn bảo mật khi giao tiếp giữa client và server. TLS cũng y hệt như SSL, chỉ có điều nó là bản nâng cấp cao hơn.
Vậy SSL/TLS liên quan gì đến sự bảo mật của HTTPs? Đơn giản là HTTPs sử dụng SSL/TLS để bảo mật dữ liệu khi client và server giao tiếp với nhau. Và để hiểu cơ chế bảo mật này hoạt động ra sao, chúng ta sẽ đi tới 1 khái niệm nữa có tên gọi là: SSL Handshake.

SSL handshake


Bước 1: bạn đăng nhập vào máy chủ
Bước 2: khi bạn đăng nhập vào 1 máy chủ, máy chủ sẽ trả về cho bạn 1 cái Certificate. Tất nhiên certificate này được chứng nhận bởi Certificate Authority rồi. Và để hiểu hơn về khái niệm Digital Certificate này, bạn nên quay về đọc bài này.
Bước 3: Browser của bạn sẽ tự động kiểm tra xem, cái certificate của server trả về có đúng hay không. Việc xác thực này là nhờ vào cái CA Certificate mình đã nói ở bài trước.
Bước 4: Sau khi xác thực được certificate của server trả về là chính xác, thì bạn sẽ lấy cái public key đính kèm trong certificate đó ra để sử dụng. Public key này là 1 cái chìa mã hóa (encrypt key). Bạn dùng cái encrypt key này để mã hóa public key của máy bạn.
Bước 5: bạn gửi cái public key đã được mã hóa của bạn qua cho server
Bước 6: Server sẽ dùng private key của server để mã hóa dữ liệu, từ đó lấy được public key của bạn. Public key của bạn cũng là một cái encrypt key.
Bước 7: Server dùng public key của bạn để mã hóa dữ liệu trả về.
Bước 8: Server send dữ liệu đã được mã hóa về cho bạn
Bước 9: bạn dùng private key của bạn để mã hóa dữ liệu trả về.
Sau quá trình ssl handshake hoàn tất, bạn đã có được public key của server, và server cũng có được public key của bạn. Bây giờ tất cả thông tin trao đổi giữa bạn và server đều được mã hóa và bảo mật.
Ví dụ bạn muốn gửi cho server thông điệp: "cuonglv1109". Thì bạn sẽ dùng public key của server để mã hóa rồi gửi.
Server là người duy nhất có thể mã hóa được dữ liệu này.
Server gửi lại cho bạn thông điệp: "hết series https rồi" bằng cách mã hóa bằng public key của bạn.
Cũng chỉ có bạn là người có thể đọc được thông điệp này.

Share:

0 nhận xét:

Đăng nhận xét

Được tạo bởi Blogger.