Lỗ hổng ROCA của thủ tục sinh khóa RSA trong các chipset Infineon

08:50 | 13/11/2017

Trung tâm Nghiên cứu Mật mã và An toàn, Đại học Masaryk (Cộng hòa Czech), Enigma Bridge Ltd (Vương quốc Anh) và Đại học Ca'Foscari University of Venice (Italy) đã phát hiện ra một lỗ hổng bảo mật trong các thiết bị smartcards, security tokens, chipsets và phần cứng bảo mật được sản xuất bởi Công ty bán dẫn Infineon (Đức).

Các chipset bị lỗi được sử dụng trong các máy tính PC để tạo ra các khoá mã RSA tồn tại một lỗ hổng đã làm suy yếu tính an toàn của mật khẩu được lưu trữ, các ổ đĩa được mã hóa, tài liệu và nhiều dữ liệu khác.

Lỗ hổng với tên gọi ROCA (Return of Coppersmith’s Attack), được định danh CVE-2017-15361 liên quan đến mô đun TPM (Trusted Plaform Module) được sử dụng để xác thực, bảo mật các dịch vụ và hệ thống máy tính. Lỗi này đã được phát hiện trong quá trình thực hiện việc tạo ra cặp khóa RSA trong một thư viện mật mã được sử dụng bởi các sản phẩm TPM Infineon, nó được gọi là “cuộc tấn công phân tích số trên thực tế”.

Tấn công ROCA

Kiểu tấn công này cho phép bên tấn công sử dụng khóa công khai của đối tượng để tạo ra một khoá bí mật với lượng thời gian và năng lực không đáng kể, có thể áp dụng đối với các độ dài khóa cỡ 1024bit và 2048bit.

 Bất kỳ khóa RSA nào được tạo ra bởi các sản phẩm sử dụng các chip Infineon lỗi đều không thực sự ngẫu nhiên, khiến chúng yếu và do đó dễ bị phá vỡ. Hầu hết các dòng sản phẩm sản xuất trước năm 2012 đều bị ảnh hưởng. Bao gồm cả các thiết bị đã đạt chứng nhận NIST FIPS 140-2 và CC EAL 5+.

Điều quan trọng cần lưu ý là thuật toán RSA không có lỗi ở đây, mà là việc thực hiện cài đặt không an toàn, không chính xác, không thực sự ngẫu nhiên của các thuật toán mật mã trong các sản phẩm. Lỗi liên quan trực tiếp đến cấu trúc cụ thể của các số nguyên tố RSA được sinh ra. Cấu trúc cụ thể của các số nguyên tố đó, cho phép một phát hiện nhanh đối với các khóa RSA bị tổn thương. Tính chất này hữu ích đối với người dùng để cho phép đánh giá khóa bí mật RSA của mình có bị tổn thương hay không. Nhưng cũng là thông tin hữu ích đối với những tấn công tiềm tàng (nghĩa là các khóa dễ bị tổn thương có thể được lựa chọn trước).

Để sử dụng thuật toán RSA, cần phải có các cặp khóa bí mật và khóa công khai, khóa công khai bao gồm một số nguyên n là tích của hai thừa số nguyên tố lớn và chúng phải được tạo ra trước tiên. Hiện nay, ngay cả với các hệ thống máy tính hiện đại, việc tìm kiếm số nguyên tố có chiều dài thích hợp và kiểm tra xem chúng có thực sự là nguyên tố hay không là một nhiệm vụ đầy thách thức trong các ứng dụng cụ thể. Do đó, thông thường phải sử dụng các thuật toán tăng tốc để tạo ra các cặp khóa, đặc biệt đối với các thiết bị có tài nguyên hạn chế. Infineon cũng sử dụng thuật toán tăng tốc như vậy thuật toán “Fast Prime”. “Fast Prime” là thuật toán dùng để sinh các số nguyên tố, mà chỉ dựa trên những thông tin đã có về khoá công khai tương ứng. Thuật toán này dựa trên phần mềm và không liên quan đến phần cứng.

Cơ sở của thuật toán “Fast Prime” bắt đầu từ năm 2000. Việc sử dụng nó khoảng 10 năm sau đó sau khi đã được xem xét kỹ lưỡng. Nó cũng là một phần của một thư viện mật mã được cung cấp cho khách hàng làm nền tảng cho sự phát triển của chính họ, chức năng phần mềm này đã được chứng nhận bởi BSI (Cơ quan Liên bang về An toàn Thông tin) ở Đức. Không có điểm yếu về mặt toán học nào được biết và không có lỗ hổng nào được phát hiện trong quá trình chứng nhận của BSI.

 Gần đây, một nhóm nghiên cứu từ Đại học Masaryk, Cộng hòa Séc đã phát triển các phương pháp toán học tiên tiến nhằm phân tích và khai thác các điểm yếu trong thuật toán “Fast Prime”. Hơn nữa, nhóm nghiên cứu phát triển phương pháp để xác định các đặc điểm dễ nhận thấy của các thuật toán này trong các sản phẩm của các nhà sản xuất khác nhau. Phương pháp bao gồm 4 bước. Cụ thể:

Bước 1: Thiết lập các đặc tính của các khóa được tạo ra từ các thư viện mật mã mã nguồn mở với các cài đặt đã được biết trước.

Bước 2: Tập hợp một số lượng lớn các cặp khóa RSA từ các thư viện phần mềm và thẻ mật mã (hàng triệu cặp).

Bước 3: So sánh các khoá có nguồn gốc từ các thư viện mã nguồn mở với các thư viện dạng black-box và quan sát sự tương đồng cũng như khác biệt giữa chúng. Ví dụ, sự phân bố các ước của p – 1.

Bước 4: Phân tích các khóa được tạo ra sử dụng nhiều kỹ thuật thống kê. Ví dụ, tính toán sự phân bố các bit cao của các số nguyên tố.

Sau khi khám phá được các bit thông tin của khóa bí mật, người tấn công có thể sử dụng kết hợp nhiều phương pháp để phân tích và khám phá ra khóa bí mật RSA (chẳng hạn như phương pháp của Coppersmith dựa trên lý thuyết dàn).

Độ khó của tấn công phân tích số ở đây không giống nhau đối với tất cả các độ dài khóa và tăng không chặt (một số khóa dài hơn có thể mất ít thời gian để phân tích hơn). Các dãy độ dài khóa sau đây được coi là phù hợp thực tế hiện nay (độ phức tạp thời gian giữa 1 CPU-hours đến 1000 CPU-years): 512-704 bit, 992-1216 bit và 1984-2144 bit. Lưu ý rằng, khóa tấn công với khóa RSA 4096 bit là không thực tế ở thời điểm này, nhưng có thể trở thành hiện thực, nếu tấn công được cải tiến.

Các nhà nghiên cứu cho biết, chỉ cần có kiến thức về khoá công khai là đủ mà không cần tiếp cận vật lý tới thiết bị có lỗi bảo mật, tất cả các khóa RSA được tạo ra bởi một chip có lỗi đều bị ảnh hưởng. Cuộc tấn công đã được xác minh bằng cách sử dụng các khóa RSA 1024 bit được chọn ngẫu nhiên và một số khóa 2048 bit được lựa chọn trước.

Nhóm nghiên cứu đã cung cấp các ước tính sơ bộ về thời gian và chi phí để bên tấn công có thể lấy được một khoá bí mật RSA dựa trên kiến thức về khoá công khai với máy tính Intel E5-2650 v3@3GHz Q2/2014. Kết quả ước tính như bảng dưới đây.

Bảng kết quả tính về thời gian và chi phí khóa RSA cho máy Intel E5-2650 v3@3GHz Q2/2014

TT

Độ dài khóa

Thời gian

Chi phí

1.

512 bit

2 CPU-hours

0,06 USD

2.

1024 bit

97 CPU-days

40-80 USD

3.

2048 bit

140,8 CPU-years

 20.000-40.000 USD

 
Ảnh hưởng thực tế đối với các thiết bị và ứng dụng mật mã

Các chip mật mã và TPM của Infineon được tích hợp trong nhiều ứng dụng, bao gồm các chứng thực, chữ ký và mã hóa của các nhà cung cấp và các loại chip khác. Với một loạt các ứng dụng, trừ khi được vá lỗi hoặc thay thế, vấn đề này có thể phá vỡ tính bảo mật của mọi thứ từ mã hóa ổ đĩa đến an toàn tài khoản, an toàn duyệt web, ký phần mềm và các thẻ xác thực.

Ảnh hưởng thực tế của lỗ hổng bảo mật này phụ thuộc vào các ngữ cảnh sử dụng, tính sẵn có của các khóa công khai và độ dài của chúng. Các nhà nghiên cứu tìm thấy và phân tích các khóa dễ bị tổn thương trong nhiều lĩnh vực khác nhau. Bao gồm tài liệu công dân điện tử, các thẻ chứng thực, các thiết bị khởi động tin cậy, các gói phần mềm được ký, các khóa TLS/HTTPS và PGP. Máy tính xách tay Google Chromebook, HP, Lenovo và Fujitsu, cùng với bộ định tuyến và các thiết bị khác đều bị ảnh hưởng. Số lượng các khóa RSA dễ bị tổn thương đã được xác nhận là khoảng 760.000 nhưng có thể lên đến hai hoặc ba lần con số như vậy. 

Lỗ hổng bảo mật này đã được các nhà nghiên cứu phát hiện từ tháng 1/2017. Tuy nhiên đến tận tháng 10/2017 mới được công bố rộng rãi. Điều này đã gây bất ngở cho các nhà nghiên cứu cung cấp sản phẩm cũng như người sử dụng. Ngay sau khi họ phải đối phó với cuộc tấn công KRACK liên quan đến tiêu chuẩn mã hóa WPA2 trong các thiết bị wifi.

Các công cụ phát hiện trực tuyến và ngoại tuyến để người dùng có thể kiểm tra lỗ hổng bảo mật ROCA được cung cấp tại địa chỉ https://github.com/crocs-muni/roca.