Bên cạnh những ƣu điểm của hệ mật mã công khai nhƣ an toàn, bảo mật, thuận tiện, các hệ mật mã công khai có cùng 1 yếu điểm, đó là dễ bị tấn công ngƣời ở giữa (Man in the middle).
Giả sử Alice và Bob thực hiện trao đổi truyền thông với nhau sử dụng hệ mật mã công khai. Để thực hiện đƣợc, Alice phải biết đƣợc khóa công khai của Bob và ngƣợc lại Bob phải có đƣợc khóa công khai của Alice. Tuy nhiên, giả sử kẻ tấn công Darth có thể dùng phƣơng pháp tấn công ngƣời ở giữa theo các bƣớc sau:
Trƣớc tiên, bằng một kỹ thuật nào đó, Darth có thể xen vào kênh truyền
giữa Alice và Bob. Mọi thông tin truyền giữa Alice và Bob đều đi qua Darth và Darth có thể kiếm soát đƣợc việc truyền thông tin đó.
Darth sẽ tự nhận mình là Bob, Darth sẽ sinh ra một cặp khóa cho mình
và gửi khóa công khai giả mạo tới cho Alice.
Alice sẽ tin đó là khóa công khai của Bob và gửi trở lại khóa công khai
của mình cho Darth – Ngƣời Alice tin đó là Bob.
Darth thực hiện việc giả mạo tƣơng tự đối với Bob.
Đến lúc này, giả sử Alice gửi 1 thông điệp mã hóa cho Bob, Alice sẽ dùng khóa công khai của Bob – mà thực chất là khóa công khai của Darth – để mã hóa. Do Darth đứng giữa, lại có khóa bí mật hợp lệ nên có thể đọc lén, hoặc thậm chí sửa đổi thông điệp trong đó. Sau đó sẽ sử dụng khóa công khai thật của Bob để mã hóa và gửi lại cho Bob.
Tƣơng tự, khi Alice muốn ký vào 1 thông điệp, Alice sẽ sử dụng khóa bí
mật của mình để ký và gửi đi. Darth sẽ lấy thông điệp đó, sẽ sửa đổi theo ý muốn và sử dụng khóa bí mật giả mạo để ký và gửi cho Bob. Lúc này dó Bob sử dụng giữ khóa công khai giả mạo của Alice – Thực chất là khóa công khai của Darth – để kiểm tra tính hợp lệ của thông điệp, điều tất nhiên là Bob thấy thông điệp đó là hợp lệ và tin đó là thông điệp đƣợc gửi từ Alice.
Để tránh đƣợc tấn công ngƣời ở giữa, các bên tham gia truyền thông cần một bên thứ ba tin cậy để xác nhận khóa công khai của nhau. Bên thứ ba tin cậy là một tổ chức phát hành chứng thƣ, hay còn gọi là CA (Certificate Authority).