Bất kỳ ai cũng có thể biết ổ khóa cửa ra vào mở và khóa theo cơ chế nào chỉ bằng cách tìm đọc hướng dẫn. Dù vậy, chúng ta vẫn yên tâm ra ngoài vì thứ được giữ bí mật là chiếc chìa khóa trong tay mình. Trong thế giới mật mã cũng có một nguyên lý lâu đời mang đúng tư tưởng này. Đó chính là “Nguyên lý Kerckhoffs (Kerckhoffs's Principle)”.
Nói một cách dễ hiểu, nguyên lý Kerckhoffs là nguyên tắc thiết kế cho rằng “một hệ thống mật mã phải an toàn ngay cả khi mọi thứ ngoài khóa đều đã được biết đến”. Điều đó có nghĩa là hãy thiết kế sao cho chỉ cần bảo vệ một khóa nhỏ, dễ thay đổi, thay vì cố bảo vệ bằng cách che giấu chính phương thức mã hóa.
Tài liệu này sẽ lần lượt tìm hiểu từ bối cảnh thế kỷ 19 khi nguyên lý ra đời, lý do chỉ giữ kín khóa lại an toàn hơn, những trường hợp sụp đổ vì dựa vào việc che giấu để bảo vệ, cho đến bài học dành cho thiết kế bảo mật ngày nay.

Điều kiện để mật mã vẫn an toàn dù không được giữ kín
Nguyên lý Kerckhoffs bắt nguồn từ đâu?

Người đưa ra nguyên lý này là Auguste Kerckhoffs, một nhà ngôn ngữ học kiêm nhà mật mã học người Hà Lan. Ông nghiên cứu mật mã trong thời gian dạy tiếng Đức tại một trường cao học kinh doanh ở Paris, và năm 1883 đã đăng bài viết “Mật mã quân sự (La Cryptographie Militaire)” thành hai kỳ trên một tạp chí học thuật quân sự.
(1) Điện báo làm thay đổi chiến trường
Khi đó, sự phổ biến của điện báo khiến lượng điện văn trao đổi trên chiến trường tăng mạnh. Nguy cơ toàn bộ thông tin liên lạc bị lộ nếu những cuốn sách mật mã bí mật dày cộp mang theo bị tịch thu cũng tăng lên tương ứng. Kerckhoffs đã đúc kết sáu điều kiện của mật mã quân sự phù hợp với thực tế này.
(2) Điều kiện thứ hai trong sáu điều kiện
Sáu điều kiện bao gồm những yêu cầu như trên thực tế phải không thể phá giải, khóa phải có thể ghi nhớ mà không cần viết ra, và một người phải có thể tự sử dụng hệ thống. Trong đó, điều kiện thứ hai là “hệ thống không được đòi hỏi phải giữ bí mật và phải không có vấn đề gì ngay cả khi rơi vào tay đối phương”; ngày nay, khi nói đến nguyên lý Kerckhoffs, người ta chính là nói đến điều kiện này.
Vì sao chỉ giữ kín khóa lại an toàn hơn?

Giữ bí mật toàn bộ phương thức mật mã có vẻ an toàn hơn, nhưng thực tế lại ngược lại. Trong một bài báo năm 1949, nhà toán học người Mỹ Claude Shannon đã diễn đạt lại tư tưởng này bằng một câu: “Đối phương biết hệ thống”; câu này còn được gọi là châm ngôn Shannon.
- Bí mật rồi sẽ bị lộ (Inevitable Disclosure): Thiết bị có thể bị tịch thu trên chiến trường, phần mềm có thể bị mổ xẻ bằng các công cụ phân tích, còn con người có thể bị mua chuộc hoặc đe dọa.
- Chi phí thay thế khác nhau (Cost of Replacement): Nếu phương thức bị lộ, phải làm lại toàn bộ thiết bị và chương trình; nhưng nếu khóa bị lộ, chỉ cần phân phối khóa mới.
- Công khai thúc đẩy việc kiểm chứng (Public Scrutiny): Khi phương thức được công khai, các chuyên gia khắp thế giới sẽ giúp tìm ra điểm yếu, và phương thức càng đứng vững lâu thì càng đáng tin cậy.
Nhà nghiên cứu bảo mật người Mỹ Steven M. Bellovin kể rằng ông từng nghe một cựu nhân viên Cơ quan An ninh Quốc gia Hoa Kỳ nói rằng nguyên tắc cơ bản ở đó là giả định sản phẩm số 1 của một thiết bị mới sẽ lập tức rơi vào tay nước đối phương. Càng có ít bí mật cần bảo vệ và những bí mật đó càng đơn giản thì càng dễ bảo vệ: đó là cốt lõi của nguyên lý này.
Những trường hợp sụp đổ vì dựa vào việc che giấu để bảo vệ

Bảo mật dựa vào việc che giấu phương thức thường được gọi là “bảo mật thông qua che giấu (Security through Obscurity)”. Lịch sử có nhiều trường hợp cho thấy cách làm này không trụ vững được lâu.
Hệ thống dây nối của Enigma
Máy mật mã Enigma được quân đội Đức sử dụng từ những năm 1920 có cả cấu trúc máy lẫn cấu hình thay đổi hằng ngày đều được giữ bí mật. Tuy nhiên, vào cuối năm 1932, nhà toán học người Ba Lan Marian Rejewski đã kết hợp tài liệu do cơ quan tình báo Pháp thu thập với phân tích toán học để tìm ra hệ thống dây nối bên trong máy. Khi cấu trúc bị lộ, tuyến phòng thủ còn lại chỉ là cấu hình, và điều này đã trở thành nền tảng để quân Đồng minh giải mã Enigma về sau.
Cơ chế chống sao chép DVD
Trong những năm 1990, DVD sử dụng một cơ chế bảo vệ video bằng phương thức mật mã không công khai. Nhưng vào năm 1999, khi một chương trình phá giải phương thức này lan truyền trên Internet, cơ chế đó gần như bị vô hiệu hóa, và cũng không có cách nào thay đổi phương thức bên trong vô số thiết bị đã bán ra.
Chip thẻ giao thông
Vào cuối những năm 2000, các nhà nghiên cứu đã phân tích cơ chế mật mã không công khai của một loại chip thẻ không tiếp xúc được dùng trong thẻ giao thông và thẻ ra vào tại nhiều thành phố trên thế giới. Họ thậm chí còn bóc các lớp của chip để quan sát mạch điện dưới kính hiển vi nhằm tìm ra phương thức, đồng thời làm lộ những điểm yếu vốn bị che giấu.
Bài học dành cho thiết kế bảo mật ngày nay

Phần lớn các hệ thống mật mã dân sự hiện đại đều công khai phương thức theo nguyên lý Kerckhoffs.
(1) Tiêu chuẩn được lựa chọn qua cạnh tranh công khai
Năm 1997, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) đã công khai mời đề xuất tiêu chuẩn mật mã mới, và các nhà nghiên cứu trên toàn thế giới đã tấn công thử các phương án ứng viên trong nhiều năm để kiểm chứng. Kết quả là vào năm 2000, phương thức do hai nhà nghiên cứu người Bỉ tạo ra đã được lựa chọn, trở thành Tiêu chuẩn Mã hóa Nâng cao (Advanced Encryption Standard) được sử dụng rộng rãi ngày nay.
(2) Tập trung nguồn lực vào quản lý khóa
Vì phương thức đã được công khai, mức độ bảo mật thực tế phụ thuộc vào việc tạo, lưu giữ và thay đổi khóa tốt đến đâu. Thói quen sử dụng các mật khẩu dài, khác nhau và thay đổi ngay khi nghi ngờ bị lộ cũng dựa trên cùng nguyên lý này.
(3) Chỉ dùng việc che giấu như một biện pháp bổ sung
Bản thân việc không chủ động công bố phương thức không phải là điều xấu. Tuy nhiên, đó chỉ là một trong nhiều lớp phòng thủ và không được trở thành căn cứ duy nhất cho sự an toàn.
Đã hơn 140 năm kể từ khi Kerckhoffs viết ra nguyên lý này; trong thời gian đó, điện báo đã được thay bằng Internet, sách mật mã được thay bằng chương trình máy tính, nhưng cốt lõi vẫn giữ nguyên. Ngày nay, khi bất kỳ ai cũng có thể mổ xẻ chương trình, nguyên lý này lại càng trở nên cấp thiết.
Cần có tư duy giả định rằng mọi thứ rồi sẽ có ngày bị lộ, và thiết kế sao cho hệ thống không sụp đổ ngay cả khi điều đó xảy ra.
Giả định đối phương biết tất cả và bảo vệ thật chắc một khóa duy nhất: đó là bước đầu tiên trong thiết kế để tạo nên sự bảo mật đáng tin cậy.