Những điều cần biết về an toàn phần cứng (phần 1)

10:37 | 23/07/2021

Trong thời đại kỷ nguyên số, mọi xử lý, lưu trữ và truyền đạt thông tin đều dựa trên các hệ thống tính toán, mà cốt lõi của hệ thống tính toán lại dựa trên phần cứng điện tử. Phần cứng điện tử có mặt khắp mọi nơi, từ các thiết bị di động, đồ dùng trong gia đình đến các hệ thống công nghiệp, quốc phòng… Tuy nhiên, mối lo ngại về an toàn phần cứng ngày càng trở nên hiện hữu.

Đặt vấn đề

Internet và xu thế kết nối vạn vật (Internet of Things - IoT) đã khiến các thiết bị điện tử đang ngày càng thông minh, không còn độc lập mà trở thành một phần của siêu hệ thống. Thông qua phần cứng điện tử, mọi vật đều được kết nối với nhau. Điều này đã góp phần thúc đẩy phần cứng điện tử phát triển.

Kết nối vạn vật ở đây không chỉ là kết nối các thiết bị điện tử với nhau, mà còn là kết nối giữa các tổ chức, các nhà máy, các quốc gia, là sự phân công lao động, là đòi hỏi của mô hình kinh doanh theo chiều ngang trải rộng trên khắp thế giới. Hay nói tóm tắt, đó là sự hợp tác, liên minh toàn cầu về thiết kế chế tạo phần cứng điện tử. Khó có một tổ chức nào đủ tiềm lực để tự mình làm một phần cứng điện tử từ A đến Z.

Hợp tác, liên minh là xu thế tất yếu cho sự phát triển, nhưng mặt trái của nó là kéo theo vô số nguy cơ mất an toàn, bởi thay vì việc người chủ sở hữu kiểm soát mọi thứ, thì thiết bị của họ từ khi được thiết kế, chế tạo, cho đến quá trình triển khai sử dụng… đều có sự tham gia trực tiếp hay gián tiếp của rất nhiều thành phần không có độ tin cậy và hầu như không thể xác định được nguồn gốc hay xuất xứ của các thành phần ấy.

Trước đây, phần cứng điện tử vẫn được mặc định là an toàn, là nền tảng tin cậy cho mọi hoạt động và phần mềm chạy trên nó. Nhưng trong khoảng vài chục năm gần đây, ngày càng có nhiều minh chứng về các hậu quả khó lường của việc mất an toàn từ các cuộc tấn công nhắm vào phần cứng.

Tội phạm trong lĩnh vực phần cứng không đơn giản chỉ là các hacker gõ lệnh trên máy tính, mà mọi thực thể liên quan đến vòng đời của phần cứng đều có thể trở thành mối đe dọa cho an toàn phần cứng. Ngay từ lúc khởi đầu một thiết kế, rồi đến các giai đoạn thiết kế, chế tạo vi mạch, mạch in trong các IP core và trong các công cụ thiết kế dựa trên sự hỗ trợ của máy tính (Computer-aided design - CAD), trong giai đoạn kiểm thử, trong chuỗi cung ứng linh kiện, quá trình sử dụng, cho đến cả việc kết thúc, thải loại và tái chế đều có chứa rủi ro mất an toàn.

Mối đe doạ về an toàn phần cứng đang ngày càng trở nên hiện hữu. Vậy chính xác thì an toàn phần cứng là gì, liên quan đến những thực thể nào, những khả năng tổn thương nào của phần cứng, những đe dọa và nguy cơ, những tấn công phần cứng nào hiện có và các biện pháp đối phó tương ứng ra sao? Bài báo dưới đây sẽ trả lời các câu hỏi trên, tập trung phân tích những xu hướng an toàn phần cứng mới nổi có thể trở thành chủ yếu trong tương lai.

Phần cứng điện tử

Phần cứng là thực thể có thể nhìn thấy, sờ thấy, khác với phần mềm là thứ chỉ cảm thấy mà không tiếp xúc trực quan. Có thể lấy ví dụ một trang sách, ở đó phần cứng là giấy, là mực in; còn phần mềm là nội dung mà con chữ thể hiện. Có thể cầm sách, nhìn thấy chữ, đọc nó, cảm nhận được nội dung nhưng không nhìn thấy nội dung.

Tình huống khác, phần mềm trong bộ nhớ không thể nhìn thấy được mà chỉ biết về nó thông qua mức tín hiệu tại các trigger bán dẫn. Trong ngữ cảnh bài báo này nói về phần cứng điện tử, tức là phần cứng cấu tạo từ các linh kiện điện tử. Có thể xem phần cứng của một hệ thống điện tử gồm 3 lớp được mô tả trong Hình 1.

Hình 1. Các lớp của phần cứng điện tử

Lớp trên cùng là mức hệ thống, ở đó tích hợp mọi thành phần vật lý, ở ví dụ trong hình đó là máy điều nhiệt và điện thoại thông minh. Mức tiếp theo là bảng mạch, ở đó các linh kiện điện tử được kết nối theo cách nào đó để tạo thành chức năng hệ thống. Lớp thứ ba chứa linh kiện gồm các vi mạch, các linh kiện chủ động và thụ động khác nhau.

An toàn phần cứng

Như đã biết, An toàn phần mềm và An toàn thông tin nghiên cứu về các mối đe dọa, các tấn công lên phần mềm và thông tin cùng các biện pháp đối phó. An toàn phần cứng cũng tương tự, nhưng đối tượng ở đây là phần cứng, phức tạp hơn nhiều, do phần cứng được chế tạo với sự liên quan của quá nhiều thành phần không tin cậy, không thể kiểm soát trải rộng và phân tán trên khắp thế giới, với tất cả các mức trừu tượng.

Quá nhiều câu hỏi đặt ra về sự tin cậy: Có tin được vi mạch sử dụng trong thiết kế không? Các IP core mua về có “sạch” không? Nơi nào tích hợp cấu trúc phục vụ kiểm-thử/gỡ-lỗi? Có tin được nơi thuê thiết kế và gia công mạch in không? Nơi nào lắp ráp bảng mạch và thiết bị, thực hiện kiểm thử từng thành phần phần cứng và sản phẩm cuối? Họ có sửa đổi sai thiết kế theo yêu cầu không? Có cấy Trojan vào không? Công cụ thiết kế CAD có tin cậy không? Nhà cung cấp có tin cậy, chuỗi cung ứng linh kiện có tin cậy không? Làm sao kiểm định đảm bảo mọi linh kiện và mạch in đều sạch, không bị cài Trojan? Trong quá trình sử dụng có bị rò rỉ thông tin dưới các dạng side-channel không? Các khả năng bị tổn thương trong thực tế triển khai là gì, những mối đe dọa nào có thể đối với từng thành phần phần cứng, những nguy cơ bị tấn công nào và kèm theo là những biện pháp chống lại ra sao? Những chính sách an toàn nào phải thỏa mãn?

Ngay cả khi phần cứng đi hết vòng đời của mình rồi, thì việc hủy bỏ hay tái chế thế nào cũng phải tính đến để linh kiện hay thiết bị đã thải loại không quay lại chuỗi cung ứng nữa. Làm sao để cân đối giữa an toàn với tốc độ, hiệu năng và năng lượng tiêu thụ vì đó là hai mảng đối lập nhau. Làm sao để các kỹ sư thiết kế điện tử nhận thức được tầm quan trọng của an toàn phần cứng để tích hợp các biện pháp an toàn ngay từ khâu thiết kế hệ thống chứ không phải bổ sung chắp vá về sau.… Sau khi đã nhận thức đầy đủ những điểm yếu về độ tin cậy trong thiết kế, thì phải xác định các bề mặt tấn công, các mối đe dọa, từ đó làm sao xây dựng các biện pháp đối phó hữu hiệu tích hợp vào thiết kế phần cứng.

Một nhiệm vụ quan trọng nữa của an toàn phần cứng là không chỉ giữ an toàn cho chính mình, mà phải tạo được môi trường an toàn cho phần mềm hoạt động. Trong một thiết bị bao giờ cũng phân một cách trừu tượng thành hai khu vực. Một khu vực công khai ở đó liên lạc với thế giới bên ngoài, một khu vực an toàn lưu trữ tài sản quý giá là môi trường cho phần mềm an toàn hoạt động. TrustZone của ARM, SGX của Intel, và Knox của Samsung là các ví dụ về cấu trúc này.

Hai khu vực này vừa phải liên lạc với nhau nhưng lại phải cách ly nhau. Các yêu cầu về bảo mật, toàn vẹn và khả dụng tạo thành ba trụ cột quan trọng để thực hiện an toàn phần mềm trên nền tảng phần cứng. Để thỏa mãn các yêu cầu này cần cơ chế hoạt động chung phần cứng, phần mềm. Trong đó, phần cứng có nhiệm vụ cách ly và tạo thuận tiện cho việc sử dụng có hiệu quả các hàm mật mã.

Lịch sử phát triển an toàn phần cứng

Các vấn đề về an toàn phần cứng bắt đầu vào khoảng đầu những năm 1990 và phát triển nhanh chóng cả các hình thức tấn công lẫn các giải pháp đối phó, từ mức chip, mức bảng mạch cho đến mức hệ thống. Từ khi thiết kế, chế tạo đến khi hệ thống đã triển khai sử dụng cho đến cả quá trình tái chế ở cuối vòng đời. Các nghiên cứu liên quan đến an toàn phần cứng không chỉ trong giới tội phạm, mà còn là lĩnh vực thu hút giới học thuật và các ngành công nghiệp điện tử. Hình 2 là tóm lược lịch sử an toàn phần cứng.

Hình 2. Các mốc liên quan an toàn phần cứng qua các thập kỷ gần đây

Trước năm 1996, chỉ có một số tấn công theo kiểu đánh cắp IP, chủ yếu phục vụ làm nhái vi mạch. Năm 1996, một tấn công phần cứng dưới dạng tấn công timing trích xuất thông tin từ phần cứng mật mã làm chấn động thế giới điện tử. Năm 1997, tấn công gây lỗi theo kiểu ép môi trường khắc nghiệt lên hệ thống khiến nó rò rỉ dữ liệu. Năm 1998 xuất hiện tấn công phân tích điện năng tiêu thụ, đây là một loại tấn công kênh kề, tìm ra khóa bí mật trong chip mật mã.

Năm 2005 xuất hiện các vi mạch giả mạo và chip dùng rồi được tái chế, không có độ tin cậy và an toàn. Năm 2007 xuất hiện Trojan phần cứng, đây được coi là một dạng bom hẹn giờ, được kích hoạt ở những điều kiện khắc nghiệt nên rất khó để phát hiện. Gần đây là những tổn thương Meltdown và Spectre trên các bộ vi xử lý hiện đại.

Song song với các tấn công lên phần cứng là các biện pháp ngăn chặn chúng. Năm 1998, các chuyên gia đưa ra ý tưởng gắn thẻ phần cứng, tức là mỗi IC được gán một ID duy nhất. Đầu những năm 2000 xuất hiện các giải pháp bảo vệ phần cứng dựa trên các nguyên thủy an toàn PUF và TRNG. Năm 2008, Bộ Quốc phòng Mỹ đã khởi động Chương trình toàn vẹn và tin cậy cho mạch tích hợp để bảo vệ phần cứng. Năm 2012, Thượng viện Mỹ đã công bố một điều tra cho thấy hơn một triệu đồ giả mạo đang được sử dụng trong Không lực Hoa Kỳ. Năm 2014, Bộ Quốc phòng Mỹ thành lập Chương trình toàn vẹn phần cứng chuỗi cung ứng cho Phòng thủ điện tử để phát triển công nghệ theo dõi và giám sát các vi mạch, linh kiện điện tử, bảng mạch khi chúng di chuyển qua suốt chuỗi cung ứng. Có thể thấy các nỗ lực rất lớn cả từ chính phủ, ngành công nghiệp điện tử đến giới học thuật nhằm tạo nền tảng phần cứng an toàn và tin cậy.

Một số vụ việc điển hình về tấn công phần cứng

Năm 2007, đài radar quân sự của Syrian đã không cảnh báo được các cuộc không kích của Israel. Về sau người ta suy đoán là có cửa hậu cài trong các vi xử lý thương mại dùng trong điều khiển radar, gây hỏng chức năng và khóa tạm thời radar.

Năm 2011 xảy ra tai nạn máy bay Poseidon P-8A của quân đội Mỹ, loại máy bay chuyên dùng để vận chuyển tên lửa chống tàu ngầm và chống tàu nổi. Điều tra sau đó cho thấy các FPGA điều khiển module phát hiện đóng băng trên bề mặt máy bay là thứ FPGA đã qua sử dụng, nhưng được tái chế và in tem mác giả mạo do hãng Xilinx sản xuất. Phân tích thêm về chuỗi cung ứng cho thấy, FPGA này xuất phát từ một nhà máy ở Thâm Quyến, Trung Quốc.

Tháng 1/2014, tờ Thời báo New York tiết lộ chương trình Quantum của Cơ quan an ninh quốc gia Mỹ (NSA) cấy Trojan phần cứng vào giao thức liên lạc USB hoặc vào cổng USB, nhờ đó họ thu được nhiều dữ liệu mật từ các mạng quân sự của Nga, Trung Quốc, các hệ thống máy tính của cảnh sát và cả của các cơ quan thương mại của EU khắp nơi trên thế giới.

Năm 2015, FBI thu giữ một chiếc iPhone 5C của kẻ khủng bố nhưng họ không thể truy cập vì Apple đã thiết lập chế độ nếu nhập sai mật khẩu quá số lần cho phép thì dữ liệu trong iPhone sẽ tự động bị xóa. Apple đã từ chối giúp FBI và phản đối lệnh của tòa án với lý do chính sách bảo vệ người dùng của họ không cho phép. Các chuyên gia sau đó đã giúp FBI tấn công vào chiếc iPhone, phá bỏ bảo vệ an toàn của Apple, tạo ra nhiều bản sao bộ nhớ NAND và thử trên từng bản sao cho đến khi tìm được mật khẩu. Quá trình này chỉ diễn ra chưa đến một ngày.

Ngược dòng lịch sử, trong Thế chiến thứ II. Máy bay ném bom B-29 của Mỹ bị Liên xô bắt. Họ đã chống đối bằng cách làm nhái thành máy bay ném bom Tupolev Tu-4 (Hình 3). Cấu hình của hai máy bay này cơ bản giống nhau, trừ động cơ và pháo.

Hình 3.(A) máy bay ném bom B-29 của Không lực Hoa Kỳ và (B) máy bay ném bom Tu-4 của Liên xô

Năm 1998, Paul Kocher công bố tấn công phân tích điện năng tiêu thụ PDA, một tấn công dạng kênh kề, cho phép tìm ra khóa của mã khối trong thời gian tính bằng giờ, mà nếu vét cạn phải mất nhiều tỉ năm. Tấn công này đã gây chấn động cả ngành công nghiệp sản xuất smartcard.

Ở tấn công phần cứng kiểu Trojan, các Trojan có thể phức tạp nhưng cũng có thể ở dạng rất đơn giản. Hình 4 là ví dụ minh họa một Trojan dạng đơn giản. Nhà máy được thuê chế tạo mạch in đã cố tình thay đổi, chỉ một chút, mạch của khách hàng, bằng cách tăng độ rộng đường mạch và tăng khoảng cách giữa các đường lên gấp 2 lần so với nguyên bản, sau đó uốn cong một đường mạch thêm chút ít. Những thay đổi này làm suy giảm điện áp ra, tăng trễ đường mạch, tăng điện áp ghép, dẫn đến mạch điện hoạt động sai khi môi trường thay đổi. Trojan kiểu này hầu như không thể bị phát hiện bằng kiểm thử chức năng và kiểm thử tham số, và sự khác biệt đường mạch so với bản gốc quá nhỏ nên cũng hầu như bị bỏ qua khi kiểm định bằng thị giác. Đây mới chỉ là ví dụ mạch in 2 lớp, còn với mạch in phức tạp nhiều lớp thì việc phát hiện những sửa đổi tế vi kiểu này là hầu như không thể.

Hình 4. So sánh mạch in nguyên bản và mạch đã bị điều chỉnh

Với tác động lớn, tấn công phần cứng ngày càng gia tăng lên các hệ thống, hạ tầng công nghệ thông tin. Trong phần tiếp theo, bài báo sẽ cung cấp tới độc giả sự khác nhau giữa an toàn và tin cậy phần cứng, cùng những kiến thức cơ bản trong việc phòng chống tấn công phần cứng.

TÀI LIỆU THAM KHẢO

1. Swarup Bhunia, Mark Tehranipoor., Hardware Security. A Hands-on Learning Approach., Morgan Kaufmann publishers., 2019.

2. Một số nguồn từ internet.