Người đàn ông ở giữa không thể lấy chìa khóa bị đối thủ tráo đổi, thay đổi chìa khóa và sau đó giải mã và mã hóa tin nhắn một lần nữa?
Vâng, họ có thể.
Một giao thức trao đổi khóa tương tự (phiên bản "sách giáo khoa" của) DH là an toàn chống nghe trộm (ví dụ, chỉ cần quan sát những gì đang được truyền trên kênh), nhưng hoàn toàn bị phá vỡ chống lại (MITM) tấn công man-in-the-middle, như bạn đã tuyên bố
Chứng chỉ là một nỗ lực khắc phục điều này, nhưng một vấn đề khác phát sinh: Làm thế nào bạn có thể đảm bảo cả hai bên nhận được chứng chỉ chính xác? Rõ ràng bạn không thể chỉ gửi các chứng chỉ qua kênh không an toàn vì điều này một lần nữa dễ bị tấn công MITM.
Giải pháp là sự tồn tại của một kênh thay thế, (hoàn toàn) an toàn . Đây sẽ là hai bên gặp gỡ trực tiếp và trao đổi chứng chỉ của họ hoặc qua một số kênh đáng tin cậy thay thế (ví dụ: qua điện thoại, nếu có thể tin cậy được).
Trong các mạng máy tính, kênh thay thế thường là cơ sở hạ tầng khóa công khai (PKI). Điều này có nghĩa là hệ điều hành hoặc trình duyệt của bạn có một bộ chứng chỉ gốc được cấu hình sẵn từ đó các chứng chỉ khác được ký (và có thể cả các chứng chỉ khác sử dụng chúng làm chứng chỉ trung gian ). Do đó, khi bạn truy cập một số trang web, nó sẽ xuất trình chứng chỉ đã ký , được ký bằng (một chuỗi) chứng chỉ mà bạn đã tin tưởng. Sau đó, bằng cách sử dụng chứng chỉ này, có thể trao đổi khóa được xác thực (ví dụ: để đồng ý về khóa phù du để sử dụng với mã hóa đối xứng thông thường).