How does HTTPS work?
Key takeaways
-
HTTPS - Hypertext Transfer Protocol Secure là giao thức mở rộng của HTTP. Nó sẽ encrypt data sử dụng Transport Layer Security (TLS). Nếu hacker lấy được data thì cũng chỉ là binary code.
-
Mã hóa đối xứng: Kiểu như ROT-13.
-
Mã hóa bất đối xứng: Sử dụng public-key và private-key.
- Client và server sẽ trao đổi public key cho nhau.
- Trước khi gửi tin nhắn gì, họ sẽ dùng public key đó để encrypt message.
- Khi nhận được encrypted message, mỗi bên sẽ dùng private key để giải mã.
-
Nhưng hacker có thể giả mạo public key ngay trong lần trao đổi đầu tiên??? Giải pháp là bên server sẽ “nhờ” 1 bên thứ 3, đó là Certification Authority xác nhận chữ ký. Khi 2 bên trao đổi public key, ta sẽ nhờ 1 bên thứ 3 chứng nhận chữ ký đó.
-
Quá trình này tốn rất nhiều thời gian, nên https chỉ sử dụng Mã hóa bất đối xứng cho việc trao đổi key. Sau khi trao đổi key xong rồi, họ sẽ dùng mã hóa đối xứng để trao đổi thông tin.
Flow
- Mike gửi cho James 1 chiếc hộp, không khóa (chính là
public key
) - James nhận hộp, bỏ tin nhắn vào đó, đóng hộp lại, gửi lại cho Mike
- Mike sử dụng
private key
- chìa khóa để mở hộp và đọc tin nhắn.
Nhưng nếu ngay lần đầu, Faker đã giả cái hộp của Mike, và gửi cho James hộp pha ke thì sao?
⇒ Mike và James nhờ Tim - một người nổi tiếng chuyên đi ký cho những ai đã xác thực, ký vào cái hộp. (Certification Authority
) ⇒ Ngay khi nhận hộp lần đầu, James xác nhận đã có đúng chữ kí của Tim cho Mike không? ()