Mở đầu
Những loại tấn công cài đặt mật mã hiện đại, nguy hiểm nhất hiện nay là nhằm tới các phần mềm đóng kiểu hộp đen (Black Box) và các thiết bị thẻ thông minh (Smartcard), USB Token, môđun an toàn phần cứng (HSM) và các môđun nền tin cậy (TPM). Những loại tấn công cài đặt này kẻ tấn công có thể tìm ra được các khóa bí mật và phá vỡ hoàn toàn các hệ mật an toàn, cho dù khóa bí mật được sinh ra bên trong các thiết bị hay các phần mềm được bảo vệ an toàn cao.
Một số tấn công có thể phá vỡ hoàn toàn các hệ mật qua giải mã mà không cần biết đến khóa bí mật tương ứng. Bằng cách tích lũy thông tin kẻ tấn công có thể giải ra được thông báo rõ từ thông báo mã, mà không cần sử dụng đến khóa bí mật giải mã.
Bài báo này giới thiệu một loại tấn công cài đặt nguy hiểm và đang trên đà phát triển ngày càng tinh vi hơn. Đó là các tấn công Kleptography, đánh cắp thông tin một cách bí mật và an toàn bằng cách cài đặt cửa hậu mật mã (Backdoor) vào các phần mềm và thiết bị mật mã, giúp cho những kẻ tấn công có thể sinh lại các tham số mật mã bí mật từ các tham số mật mã công khai, từ đó làm chủ hoàn toàn hệ mật. Chỉ kẻ tấn công mới có thể thực hiện được công việc này vì kể cả việc dịch ngược chương trình cũng không giúp lấy ra được các thông tin bí mật (chúng không được lưu trữ trong các chương trình). Với cách dịch ngược người ta cũng chỉ có thể phát hiện ra khóa công khai của kẻ thiết lập cửa hậu mật mã từ chương trình.
Các cửa hậu có thể được tìm thấy trong tất cả các loại hệ mật đang được sử dụng thông dụng hiện nay, từ mật mã phi đối xứng, mật mã đối xứng, đến các hàm băm, các nguồn sinh số ngẫu nhiên hay các giao thức mật mã phức tạp. Chúng len lỏi trong công nghệ tính toán như phân tích số nguyên RSA sang lôgarit rời rạc và tính toán trên các đường cong Elliptic trên các trường hữu hạn.
Các cửa hậu cũng được che giấu ngày càng tinh vi, khiến cho những người dò tìm dù có khả năng dịch ngược chương trình thì cũng không thể tìm ra dấu vết, nếu không kiểm tra quá trình sinh các tham số mật mã bí mật. Thậm chí nếu đọc được thuật toán với các tham số mật mã công khai thì người phát hiện cũng không thể biết được là có hay không cửa hậu trong thuật toán mật mã đã cho.
Kẻ tấn công cũng làm cho các tham số mật mã của hệ mật có cửa hậu có những tính chất giống như trường hợp không có cửa hậu, khiến cho việc phân tích các tham số mật mã cũng không có hiệu quả.
Trong tấn công cài đặt cửa hậu mật mã, một hộp đen sinh ra cặp khóa phi đối xứng, bao gồm một khóa bí mật và một khóa công khai. Khóa bí mật được sử dụng để giải mã hoặc sinh chữ ký số và phải luôn được lưu giữ bên trong hộp đen để ngăn chặn việc bị sử dụng sai trái hoặc nhân bản. Khóa công khai được phân phối theo kênh công khai.
Cửa hậu mật mã có thể được nhúng vào quá trình sinh ra hệ mật để giúp cung cấp cho kẻ tấn công có khả năng truy cập đến khóa bí mật mà không gây ra sự chú ý của bên thứ ba. Khi đã có khóa bí mật thì kẻ tấn công sẽ trở thành chủ thực sự của hệ mật này, cho dù các khóa mật mã được sinh ra bên trong hộp đen đã được gắn nhãn bảo đảm và không có truy cập trái phép nào đến nội dung của hộp đen.
Tấn công cửa hậu mật mã nguy hiểm
Các tấn công cài cửa hậu mật mã vào các phần mềm, phần cứng mật mã được hai nhà mật mã học là Adam Young và Moti Yung nói đến lần đầu vào năm 1996 tại hội nghị mật mã thế giới Crypto. Khái niệm Kleptography được đưa ra nhằm nói về phương pháp nghiên cứu việc lấy cắp thông tin một cách an toàn và cách thức để kẻ tấn công sử dụng phép lập mã phi đối xứng nhằm cài đặt cửa hậu mật mã.
Họ cũng đưa ra khái niệm Cửa sập được nhúng một cách bí mật với sự bảo vệ vạn năng (Secretly Embedded Trapdoor with Universal Protection) đó là tấn công được mô tả tương ứng với việc sinh khóa của hệ mật RSA nổi tiếng.
Cửa hậu mật mã không phải là một kênh truyền bổ sung đối của hệ mật và cũng không đòi hỏi truyền các dữ liệu bổ sung. Nó được nhúng trực tiếp vào bên trong các liên lạc có chủ đích. Chính vì vậy mà Kleptography trở thành một nhánh nghiên cứu của virus mật mã, hay Cryptovirology, tức là việc ứng dụng mật mã trong phần mềm độc hại.
Thông thường, đặc điểm của tấn công cài đặt cửa hậu là nó có thể bị phát hiện thông qua quá trình dịch ngược chương trình (Reverse Engineering). Tuy nhiên, dù có tìm thấy cửa hậu thì người phát hiện cũng không sử dụng nó được. Người dịch ngược chương trình chỉ có thể tìm thấy khóa công khai của kẻ tấn công, chứ không tìm được khóa bí mật. Khóa bí mật không được lưu trữ trong chương trình thực hiện, mà được tính ra từ tham số mật mã bí mật được lập mã bởi khóa công khai của kẻ tấn công để trở thành ngẫu nhiên. Khóa này được lưu trữ ngụy trang trong các tham số mật mã công khai và sẽ được tính ngược trở lại khi cần thiết.
Đối với các phần mềm, phần cứng đóng như thiết bị USB Token, Smartcard hay các thiết bị HSM, vốn được coi như các hộp đen, thì đây là môi trường lý tưởng cho tấn công cài đặt cửa hậu mật mã. Vấn đề còn lại là tăng độ khó của bài toán phát hiện có cửa hậu thông qua dịch ngược chương trình và bài toán phát hiện cửa hậu thông qua các tham số mật mã công khai tiến triển mạnh như thế nào.
Tình hình còn trở nên nghiêm trọng hơn đối với bộ sinh số giả ngẫu nhiên Dual_EC_DRBG được tiến cử đưa vào chuẩn NIST SP 800 – 90A của Mỹ. Dịch ngược chương trình đối với cài đặt của Dual_EC_DRBG không mang lại lợi ích gì cho người phát hiện, vì thông tin về sự tồn tại của cửa hậu mật mã (nếu có) bị xóa đi không để lại bất kỳ một dấu vết nào, cho dù xét tường minh thuật toán Dual_EC_DRBG.
Tìm kiếm sự khác biệt trong thuật toán Dual_EC_DRBG để xem có cài đặt cửa hậu mật mã hay không là rất khó khăn, vì nó sử dụng đến kiến thức về mật mã Elliptic, vốn rất khó và phức tạp về mặt toán học.
Tháng 8/2007, hai nhà mật mã học Dan Shumow và Niels Ferguson đã phát hiện ra rằng Dual_EC_DRBG có một tổn thương có thể được sử dụng như là một cửa hậu mật mã (như đã nói ở trên). Tuy nhiên, hai nhà mật mã này cũng không khẳng định được rằng liệu NSA đã có chủ đích cài đặt cửa hậu mật mã bên trong Dual_EC_DRBG hay không. Vào tháng 9/2013, thời báo The New York Times tố cáo, các thông báo nội bộ bên trong NSA bị rò rỉ bởi Edward Snowden chỉ ra rằng, chuẩn Dual_EC_DRBG thực sự có chứa cửa hậu mật mã của NSA. Trong khi cơ quan ban hành chuẩn là Viện tiêu chuẩn và công nghệ quốc gia Mỹ (NIST) phát biểu rằng NIST không có chủ đích làm yếu đi một chuẩn mật mã.
Giải pháp ngăn chặn tấn công cửa hậu mật mã
Giải pháp ngăn chặn đầu tiên là các phần cứng công nghiệp liên quan đến an toàn thông tin cần phải được đánh giá an toàn một cách độc lập, bởi ít nhất từ hai tổ chức khác nhau để đạt được sự đánh giá khách quan trên toàn bộ quá trình sản xuất.
Cách tiếp cận cơ bản hơn là kết hợp các phần cứng từ nhiều nhà sản xuất khác nhau vào một hệ thống. Một tổ chức có thể sử dụng hai thẻ thông minh từ hai nhà sản xuất khác nhau và độc lập với nhau để lập mã toàn bộ dữ liệu hai lần dưới dạng lập mã bội và chồng lên nhau. Trong trường hợp này, nếu một nhà sản xuất giả mạo quá trình sinh khóa, thì anh ta cũng không thể giải mã được dữ liệu, bởi không có được khóa bí mật của thẻ thông minh kia. Tuy nhiên, các kỹ thuật này không đảm bảo rằng sự giả mạo không xảy ra và độ phức tạp gia tăng làm cho chúng trở nên không thực tế.
Một kỹ thuật khác đã được giới thiệu vào năm 2002 là bên thứ ba có thể kiểm tra quá trình sinh khóa RSA. Quá trình này là một kiểu sinh khóa phân tán mà trong đó khóa bí mật chứa trong hộp đen. Với cách thức này, việc sinh khóa khó bị giả mạo và khóa không thể bị khám phá thông qua tấn công cài đặt cửa hậu mật mã.
Chúng ta thấy rằng, khâu quan trọng trong quá trình hoạt động một thuật toán mật mã bất kỳ là sinh ra các tham số mật mã. Cài đặt cửa hậu mật mã thường nhằm vào khâu này để sử dụng kênh ngầm phân tách ra các tham số bí mật, dù chúng được sinh ra trong các hộp đen. Quản lý và kiểm tra được khâu sinh tham số mật mã sẽ giúp phát hiện và loại bỏ được khả năng cài đặt cửa hậu mật mã. Trường hợp chấp nhận các tham số mật mã bí mật do nhà sản xuất sinh ra, thì người dùng cũng phải chấp nhận khả năng có thể bị cài đặt cửa hậu mật mã.
Với sự tiến bộ của khoa học và công nghệ thì việc cài đặt cửa hậu mật mã cũng ngày càng tinh vi và các cửa hậu mật mã khó bị phát hiện hơn. Tuy nhiên có thể nâng cao khả năng phát hiện và loại bỏ cửa hậu mật mã bằng kiến thức và phương tiện khoa học công nghệ ngày càng hiện đại.
Kết luận
Tấn công cài đặt cửa hậu mật mã là loại tấn công cài đặt nguy hiểm thứ ba, sau loại tấn công dựa vào sai sót cài đặt (làm cho các nguồn sinh tham số bí mật giảm độ bất định hoặc tăng tần số lặp lại) và loại tấn công dựa vào rò rỉ thông tin khi cài đặt (thông qua việc hình thành các hàm tiên tri đệm thông báo).
Trong loại tấn công này, các tham số mật mã được sinh ra theo một quá trình kiểm soát của kênh ngầm thông qua cửa hậu mật mã. Sau đó, kẻ tấn công chỉ cần dựa vào các tham số công khai để tìm ra được các tham số bí mật tương ứng giúp khám phá hệ mật.
Điểm mấu chốt của tấn công cài đặt cửa hậu mật mã nằm ở quá trình sinh tham số mật mã bí mật và công khai. Nếu người phát hiện có khả năng dịch ngược quá trình sinh tham số mật mã thì anh ta có thể phát hiện ra khả năng có cài đặt cửa hậu mật mã. Tuy nhiên, nếu không có khả năng tính ra được các tham số bí mật của hệ mật, thì không làm chủ được hệ mật.
Khi các cửa hậu mật mã cài đặt vào các phần mềm và phần cứng đóng kín như các hộp đen thì người phát hiện chỉ có thể phát hiện cài đặt cửa hậu mật mã thông qua sự khác biệt giữa các tham số mật mã công khai (trường hợp có cài đặt cửa hậu mật mã và không có cài đặt cửa hậu mật mã).
Đây là cuộc đấu tranh rất khó khăn của các chuyên gia an toàn thông tin, vì các phần mềm và các phần cứng kiểu hộp đen ngày càng nhiều với khả năng chống dịch ngược ngày càng cao. Bên cạnh đó, trình độ che giấu cửa hậu mật mã qua các tham số mật mã công khai của kẻ tấn công ngày càng cao.
Kiểm soát được quá trình sinh các tham số mật mã và loại bỏ các kênh ngầm là cách thức chắc chắn để loại bỏ cửa hậu mật mã được cài đặt trong phần mềm, phần cứng mật mã chuyên dụng.