Kênh ngầm Trojan dạng phần cứng

15:02 | 14/07/2011

Xu hướng chung trong công nghiệp bán dẫn tách khâu thiết kế ra khỏi khâu sản xuất đang tạo ra những mối nguy cơ tiềm ẩn từ những cơ sở sản xuất vi mạch thiếu tin cậy. Những phần cứng ác ý có thể được bí mật chèn vào tại nơi sản xuất để tạo ra những “cửa hậu” ẩn nhằm khai thác trái phép thông tin mật.



Vấn đề rò rỉ thông tin qua các kênh ngầm đã thu hút sự quan tâm của nhiều nhà nghiên cứu trong thời gian gần đây. Bài báo này đề xuất một lớp các Trojan mới dạng phần cứng chủ ý sinh ra những kênh ngầm vật lý để truyền thông tin mật và giới thiệu những kênh ngầm mạnh được cài vào để lấy thông tin ở bên dưới mức năng lượng nhiễu hiệu quả của thiết bị. Khả năng cài đặt gọn nhẹ chứng tỏ chúng có khả năng kháng cự cao, chống lại việc phát hiện bằng các phương pháp kiểm tra thông thường. Hơn thế nữa, các Trojan có các thuộc tính mật mã, nên thậm chí ngay cả khi phát hiện những kênh ngầm thì cũng không cho phép tiếp cận tự do tới thông tin mật.


1. Mở đầu
Trước đây, việc lựa chọn các ứng dụng mật mã dạng phần cứng chủ yếu là do nhu cầu bảo mật mức cao trong lĩnh vực quốc phòng, an ninh, tài chính, ngân hàng. Ngày nay, điều này đã thay đổi do xu hướng sử dụng các giải pháp chip hệ thống (system- on- a- chip) đã tạo điều kiện thuận lợi cho việc tích hợp mật mã hiệu suất cao cả trong các thiết bị thương mại. Chẳng hạn, đa số các máy vi tính được bán ra cùng với các chip môđun nền tin cậy (trusted plaform module - TPM) được thiết kế sẵn. Một ví dụ khác là khuynh hướng tính toán nhúng phổ biến, đã đưa mật mã dạng phần cứng vào các sản phẩm như smartphone, thẻ thanh toán, các vật dụng được trang bị RFID hoặc các thiết bị y tế. Do các thiết bị cá nhân này có thể dễ dàng tiếp cận về mặt vật lý, nên độ an toàn của chúng thường dựa chủ yếu vào các môđun bảo mật dạng phần cứng. Ở phương diện này, các môđun bảo mật chế tạo ở dạng silicon, được coi là đáng tin cậy hơn so với các giải pháp phần mềm, vì để sửa đổi và dò mạch ở mức “siêu hiển vi”, kẻ tấn công phải có các công cụ đắt tiền. Điều đó tạo ra một mức bảo vệ cơ sở  để chống lại âm mưu trích khóa và sửa đổi thuật toán.
Gần đây, do các xu hướng không tự thiết kế mạch (mà đi thuê) trong công nghiệp bán dẫn, những sửa đổi mạch ác ý như các “Trojan ở thể cứng” có thể được lén lút cấy vào các mạch IC để làm tổn hại tính an toàn của chúng. Các tấn công như vậy vào chip dẫn tới các hậu quả nghiêm trọng như: một số lượng lớn thiết bị sẽ bị ảnh hưởng (ví dụ hàng triệu thẻ điện tử xác thực ngân hàng điện tử hoặc các chip TPM); tấn công có thể không bị phát hiện trong một thời gian dài và quan trọng hơn là việc phá vỡ tính an toàn kiểu này gần như không có khả năng sửa lỗi, vì không có phần cứng, tương đương cho các phần mềm được cập nhật. Cho đến nay, mặc dù không có một bằng chứng thuyết phục nào về các sửa đổi ác ý của các thiết bị thương mại trong thời gian sản xuất, “Trojan dạng phần cứng” vẫn được xem là nguy cơ nghiêm trọng đối với tất cả các loại môđun bảo mật. Do độ phức tạp của các dây chuyền cung cấp bán dẫn hiện tại, nhiều công ty không tự thiết kế mạch bán dẫn, nên cần thực hiện các biện pháp về tổ chức nhằm tạo điều kiện cho việc sản xuất IC một cách tin cậy.
Một số công trình nghiên cứu gần đây đã nhấn mạnh về các nguy cơ tiềm ẩn, bằng việc đưa ra các ý niệm về việc sử dụng Trojan dạng phần cứng. Trong một tài liệu đã đề xuất, một lõi ác ý nhúng trong bộ xử lý trung tâm và cho rằng khả năng bị phát hiện của Trojan loại này là thấp, chủ yếu là do chi phí phần cứng nhỏ (tổng thể gồm 2.300 cổng cho các mạch Trojan) và các xáo trộn thời gian nhỏ. Người ta cũng thực hiện một liên kết mức thanh ghi - dịch (RTL- register -transfer - level) của một ứng dụng mật mã trên phần cứng có khả năng cấu hình lại, được sửa đổi cùng với mạch logic bổ sung để thực thi phần cứng ác ý. Trojan này có mẫu kích hoạt phức tạp đến mức hầu như sẽ không bị phát hiện trong các phép kiểm tra chức năng thông thường. Một công trình khác đã nêu bật các khả năng sử dụng Trojan phần cứng, có thể ngầm làm lộ thông tin mật qua các kênh không dây, chẳng hạn như các kênh nhiệt, quang và vô tuyến. Tuy thế, công trình này vẫn yêu cầu các mạch kích hoạt và phần lớn các kênh được đề xuất đều sử dụng các tín hiệu trên các chân đầu ra. Đây có thể là một hạn chế  khi nó trở thành điểm dễ bị phát hiện của mạch ác ý.
Các môđun mật mã dạng phần cứng thường được thiết kế tốt, rất khó bị phân tích hoặc bị thay đổi. Tuy nhiên, cũng với các lý do như vậy, các nhà thiết kế chip rất khó phát hiện ra các sửa đổi ác ý đã được đưa vào mạch của chúng trong quá trình sản xuất. Các IC hiện đại thường chứa lượng lớn các mạch không sử dụng, những mạch này có thể được để lại từ các phương án thiết kế trước đó hoặc vì các mục tiêu kiểm tra tạm thời. Phần cứng với dụng ý xấu có thể được giấu bên trong những vùng chip không được sử dụng này. Vì các mạch TSC rất nhỏ, ví dụ như dưới 100 cổng, chúng không thể dễ dàng phân biệt được với hàng trăm ngàn cổng khác khi kiểm duyệt sơ đồ chip cơ bản.
Để phát hiện ra các Trojan dạng phần cứng, các nhà khoa học đã đề xuất ba kiểu tiếp cận tổng quát.  Cách thứ nhất sử dụng thiết bị kiểm trực giác như bộ kính hiển vi quang học và kính hiển vi điện tử quét (SEM- scanning electron microscopy) hoặc thậm chí phân tích mạch hình ảnh mức pico giây (một phần triệu triệu giây). Phương pháp này phụ thuộc vào phương tiện của phòng thí nghiệm và thường là không có khả năng áp dụng vào các IC đang sản xuất. Cách thứ hai là tạo ra các mẫu kiểm tra sử dụng các công cụ phát hiện lỗi VLSI chuẩn tắc. Tuy nhiên, phương pháp này không thể phát hiện ra các Trojan với các mẫu trigger phức tạp, hoặc các kênh làm rò rỉ thông tin được che dấu cẩn thận. Cách tiếp cận thứ ba là chụp nghiêng mạch IC bởi các phép đo analog khác nhau, ví dụ như các vết năng lượng. Hồ sơ của các IC tin cậy không có Trojan được sử dụng để tham khảo khi phân tích các IC nghi ngờ. Mức tiêu thụ năng lượng của các mạch IC được lập hồ sơ để phát hiện các Trojan bằng các biện pháp phân tích. Tuy nhiên, không có một kỹ thuật đánh giá hiện tại nào có thể phát hiện ra các biến đổi phần cứng với tổng số cổng rất nhỏ.
Nói chung, cách kiểm tra chức năng IC không bao gồm phân tích kênh ngầm (SCA- channel- side analysis). SCA cho phép trích thông tin từ các kênh vật lý vốn tồn tại trong các thiết bị điện tử. Các kênh ngầm thường được phân tích như năng lượng tiêu thụ và bức xạ điện từ của các IC đang hoạt động. Ngoài ra nhiều tính chất vật lý khác như hành vi theo thời gian hoặc các sóng âm cũng được chỉ ra là có thể làm lộ thông tin. Trong thời gian qua, nhiều  kết quả phân tích kênh ngầm khác nhau đã chứng tỏ rằng việc khai thác thông tin rò rỉ về mặt vật lý làm tổn hại tính bảo mật của các ứng dụng mật mã, đặc biệt là trong các thiết bị nhúng.



Phần lớn các công trình nghiên cứu xem xét các kênh ngầm như những hiện tượng phát sinh ngoài ý muốn, đòi hỏi có sự quan tâm đặc biệt để bảo vệ các thiết bị khỏi những tấn công tinh vi.  Tuy nhiên, bài báo này giới thiệu rò rỉ kênh ngầm như một thành phần được xây dựng cho mạch Trojan; đề xuất và trình diễn các Trojan ở dạng phần cứng tinh vi hơn nhiều so với những khối logic phức tạp, có thể làm tổn hại tới các phần cứng an toàn khác bằng cách làm lộ thông tin khai thác được. Giới thiệu thiết kế các Trojan sử dụng dưới 100 cổng để tạo ra các kênh ngầm năng lượng nhân tạo, thích hợp để ngầm làm lộ thông tin bí mật. Các kênh “ẩn” này được coi như các “các kênh ngầm Trojan”.

2. Giới thiệu các kênh ngầm Trojan
Trước khi nói về khái niệm kênh ngầm Trojan, có thể giới thiệu các bên tham gia vào một kịch bản kênh ngầm Trojan. Bên cấy phần cứng Trojan vào trong mạch IC nguyên thủy được  coi như kẻ tấn công (attacker) và bên đang cố gắng phát hiện các IC bị tổn thương là người đánh giá (evaluator). Kẻ tấn công, ví dụ, là xưởng sản xuất IC thiếu tin cậy, còn người đánh giá, cố gắng để kiểm tra tính đúng và toàn vẹn của IC, có thể là phòng thí nghiệm Kiểm tra  theo Tiêu chí chung (Common Criteria Testing Laboratory - CCTL).
Ngoài ra, giả thiết là những nhà thiết kế đã thực thi tất cả các lược đồ mật mã lên các thiết bị của họ, với các biện pháp đối phó hiện đại chống lại các tấn công SCA, ví dụ như sử dụng các kiểu mạch logic kháng lại kênh ngầm. Bởi vậy, việc thực thi ban đầu trên các chip có thể được xem như là đã kháng lại kênh ngầm và không làm lộ bất kỳ thông tin bí mật nào bởi rò rỉ kênh ngầm. Lưu ý rằng, một thiết bị được bảo vệ ở mức như vậy chắc chắn được đánh giá theo  khả năng kháng cự kênh ngầm của nó. Cho nên, một Trojan được cấy vào một thiết bị này cần được thiết kế để tránh bị phát hiện, thậm chí ngay trong thời gian đánh giá độ kháng cự kênh ngầm của IC nguyên thủy bằng các phương pháp tinh vi như phân tích năng lượng bậc cao hơn hoặc các tấn công mẫu.
Dựa trên các yêu cầu này, cần xác định các mục tiêu thiết kế sau cho việc cài đặt một TSC ở mức vi mạch.
Khả năng phát hiện:
+ Kích thước: Số lượng được yêu cầu của các cổng logic cần phải ở mức thấp nhất để tránh bị những người đánh giá phát hiện ra TSC.
+ Rò rỉ kênh ngầm: TSC phải không bị phát hiện khi thực hiện những phân tích năng lượng hướng đến chức năng của các mạch IC như một yêu cầu tối thiểu. Mức tiêu thụ năng lượng có liên quan của mạch TSC so với công suất toàn bộ phải là không đáng kể, cho nên nó không thể bị nhận ra từ các vết năng lượng nhờ kiểm tra bằng thị giác.
+ Trigger: TSC không được ảnh hưởng tới chức năng của thiết bị bằng bất kỳ cách nào để tránh bị phát hiện bởi phép kiểm tra chức năng liên tục. Điều này cũng ngăn cản kích hoạt và truyền thông nhờ các chân bên ngoài.
Khả năng sử dụng: Không để bất kỳ ai khai thác TSC ngoại trừ kẻ tấn công – người biết được mọi chi tiết thay đổi. Điều đó  được gọi là “thuộc tính mã mật”.



Hình 1: Nguyên lý các kênh  ngầm Trojan

Nguyên lý của một TSC được xem xét tại Hình 1. Thiết bị bị tổn thương được mô hình bằng một mạch IC trong đó được nhúng một lõi mật mã. Thiếu TSC, khóa bí mật K không thể bị phát hiện bởi các phương tiện của SCA. Trong quá trình sản xuất IC, kẻ tấn công ngầm chèn một mạch TSC vào, sao cho nó mã hóa K thành tín hiệu rò rỉ vật lý. Có thể mô hình phép mã hóa đó bằng hàm mã hóa e(K). Hàm này được thiết kế để dự phòng sử dụng và phát hiện kênh ngầm chỉ đối với kẻ tấn công đã cài đặt nó (khái niệm của mã hóa trong ngữ cảnh này không nhất thiết có các tính chất an toàn mạnh như được giả thiết chung cho các lược đồ mật mã).
Vì IC được triển khai ở dạng trường (field) nên người đánh giá không có khả năng phát hiện ra TSC. Hơn nữa tính chất mã hóa của Trojan được thiết kế để tránh việc người khác, thậm chí ngay cả người đánh giá có thể sử dụng Trojan khi biết về sự tồn tại của TSC.
Những TSC kết hợp một thuộc tính mã hóa như thế đòi hỏi phải chú ý đặc biệt trong khi đánh giá độ an toàn của IC. Một thuộc tính mã hóa tốt đòi hỏi người đánh giá phải vượt qua những nỗ lực thí nghiệm hoặc tính toán không thể thực hiện, ví dụ 280  phép toán hoặc 240 phép đo để tiếp cận thông tin bí mật đã được bộc lộ. Mặt khác kẻ tấn công (người đã thiết kế TSC) cần có một số hiểu biết để anh ta có thể sử dụng TSC  trong khả năng cho phép.           
Lớp của các TSC được giới thiệu trong công trình này sử dụng một trạng thái bên trong (được đưa vào một cách nhân tạo như một phần của TSC hoặc là trạng thái bên trong vốn có) để mã hóa thông tin bí mật, mà bị rò rỉ  bởi các phương tiện của hàm tổ hợp logic. Đầu ra của mạch logic này khi đó được nối với một thành phần đang hoạt động như một nguồn lộ tin nhân tạo. Đối với kênh ngầm dựa trên tiêu thụ năng lượng, một mạch rò rỉ như thế có thể thực hiện được, ví dụ như sử dụng điện dung lớn, các cổng logic bật- tắt (toggling) hoặc các cổng giả - NMOS (N- type metal- oxide - semiconductor). Chú ý, số lượng rò rỉ được tạo ra là một phần của không gian thiết kế TSC và có thể được điều chỉnh để lấy một tỉ lệ tín hiệu tạp (SNR- Signal- to- Noise Ratio) mong muốn bất kỳ. Việc lựa chọn SNR ảnh hưởng lên cả kẻ tấn công và người đánh giá, do nó xác định được số lượng các mẫu đo được yêu cầu để phát hiện và sử dụng TSC. Ngoài ra nó có thể ảnh hưởng lên kích thước của TSC.
(Còn tiếp)