Đôi nét về tấn công tiêm lỗi
Giới thiệu
Tấn công gây lỗi hay tiêm lỗi là phương pháp tấn công gây ra các lỗi vô ý hay cố ý trong quá trình thực hiện bình thường của các thuật toán mật mã và phân tích đầu ra sau khi bị gây lỗi nhằm mục đích truy xuất khóa bí mật [1]. Để có thể thực hiện thành công phương pháp tấn công tiêm lỗi và trích xuất được khóa mật mã, quá trình gây lỗi thường phải thực hiện lặp đi lặp lại nhiều lần và đúng thời điểm. Do đó, các thuật toán hay giao thức mật mã sử dụng khóa mật mã tĩnh có thể là đối tượng của tấn công tiêm lỗi.
Trong lĩnh vực thẻ thông minh, các cuộc tấn công tiêm lỗi như vậy ngày càng được nghiên cứu nhiều hơn kể từ khi bài báo đầu tiên của Boneh, Demillo và Lipton xuất bản năm 1996 [2]. Họ đã đề xuất một mô hình tấn công mới chống lại thẻ thông minh, gọi là “Phân tích mật mã trong sự có mặt của lỗi phần cứng”.
Mô hình tấn công này ban đầu tập trung vào một số khóa công khai thuật toán mã hóa RSA và Fiat-Shamir. Vào thời điểm đó, mặc dù cuộc tấn công mô tả trong bài báo chỉ đơn thuần là lý thuyết, tuy nhiên những cải tiến trong công nghệ đã cho phép những kẻ tấn công đưa các cuộc tấn công tiêm lỗi vào thực tế. Tác động của tấn công bằng phương pháp này là việc loại bỏ các thuật toán mã hóa. Tấn công này thực sự liên quan đến toàn bộ phần mềm được nhúng trên thẻ và có thể tập trung vào bất kỳ điểm nào mà tính bảo mật của thẻ có ở đó. Mục đích của phương pháp này là có thể được sử dụng để bỏ qua xác minh mã PIN hoặc bỏ qua thời gian chạy kiểm tra tính thực thi tưởng lửa của máy ảo thẻ Java.
Năm 2001, Skorobogatov và Anderson đã trình bày một cuộc tấn công thực tế bằng cách sử dụng photoflash. Họ đã thành công trong việc lật một bit trong ô bộ nhớ mặc dù thực tế là thành phần này là một con chip cũ không được bảo vệ [3]. Bài báo đã chỉ ra một phương tiện để đưa vào thực tế các cuộc tấn công tiêm lỗi lý thuyết đối với các thuật toán mã hóa và nó cũng cho thấy, mọi ứng dụng phần mềm liên quan đến bảo mật đều có thể bị đe dọa bằng phương pháp tấn công tiêm lỗi này. Điều này hiện đang là mối đe dọa nghiêm trọng đối với bảo mật thẻ thông minh, gây nguy cơ mất an toàn thông tin.
Ngày nay, các cuộc tấn công tiêm lỗi rất mạnh mẽ và có thể cho phép kẻ tấn công phá vỡ hệ thống không được bảo vệ nhanh hơn bất kỳ hệ thống nào trong các phương pháp tấn công kênh kề như phương pháp phân tích năng lượng đơn giản (simple power analysis – SPA), phương pháp phân tích năng lượng vi sai (differential power analysis – DPA) hay phương pháp phân tích điện từ (electromagnetic analysis – EMA). Ví dụ, kẻ tấn công có thể sử dụng phương pháp tấn công tiêm lỗi để có thể phá vỡ mật mã RSA-CRT, tiêu chuẩn mã hóa dữ liệu (DES) hoặc tiêu chuẩn mã hóa nâng cao (AES). Mục đích của bài báo này là giới thiệu các loại lỗi và khảo sát các phương pháp tiêm lỗi thường được sử dụng trên thế giới hiện nay.
Các phương pháp tiêm lỗi và cách ngăn chặn
Có rất nhiều cách để gây ra lỗi, bài báo sẽ mô tả các kỹ thuật tiêm lỗi phổ biến hiện nay.
Tiêm lỗi trục trặc điện áp
Trước đây, cách đầu tiên để tạo ra hành vi lỗi trong thẻ thông minh là gây ra trục trặc nguồn điện trên một trong các điểm tiếp xúc. Sự thay đổi điện áp cung cấp cho mạch hoặc đồng hồ bên ngoài có thể cản trở chức năng của thiết bị [4]. Nó có thể dẫn đến sự hiểu sai hoặc bỏ qua các lệnh từ CPU, điều này có thể dẫn đến thiết bị đọc sai dữ liệu. Tuy nhiên, để thành công, kẻ tấn công phải kiểm soát được biên độ điện áp và thời gian của thực hiện trục trặc điện áp đó. Điều này rất quan trọng bởi vì nếu điện áp tăng quá cao có thể gây hư hại linh kiện bên trong thiết bị hoặc nếu thời gian thực hiện trục trặc lâu sẽ dễ bị phát hiện.
Phương pháp này rất dễ áp dụng vì kẻ tấn công không cần quan tâm đến cấu trúc bên trong của thiết bị. Tuy nhiên, điểm hạn chế của phương pháp này là kẻ tấn công không thể tập trung vào các thành phần cụ thể của thiết bị. Ngày nay, hầu hết các thẻ thông minh đều có bộ phận phát hiện trục trặc và bộ lọc điện áp để chống lại các cuộc tấn công như vậy.
Tiêm lỗi nhiệt độ
Trong một cuộc tấn công nhiệt độ, một quy trình độc hại làm rò rỉ thông tin bằng cách điều chỉnh nhiệt độ của thiết bị. Nhiệt độ tăng thường là do khởi chạy các tính toán chuyên sâu của hệ thống. Sự khác biệt về nhiệt độ có thể được cảm nhận bằng nhiều phương tiện khác nhau như theo dõi các biến thể tốc độ quạt, đọc thuộc tính đĩa SMART hoặc theo dõi các lỗi bộ nhớ do quá nhiệt [5].
Ví dụ, khi tiêm lỗi nhiệt độ, thiết bị sẽ hoạt động không đúng cách. Điều này sẽ dẫn đến những sửa đổi ngẫu nhiên trong các ô RAM hoặc đọc và ghi không phù hợp với ngưỡng trong bộ nhớ. Thông thường, thông lượng của các kênh thuộc phương pháp tấn công tiêm lỗi nhiệt độ là tương đối thấp, nhưng việc rò rỉ khóa bí mật (khoảng vài trăm bit) cũng đủ để có thể tổn hại đến các hệ thống được bảo vệ không đúng cách.
Hiện nay, hầu hết các thẻ thông minh đều có máy dò nhiệt độ để có thể phát hiện ra các cuộc tấn công kiểu này. Tuy nhiên, trong một số trường hợp vẫn có thể xảy ra lỗi giữa nhiệt độ hoạt động của các ô nhớ trong RAM và phạm vi phát hiện của máy dò.
Tiêm lỗi ánh sáng
Các cuộc tấn công ánh sáng từng được giới thiệu vào năm 2000 bởi Skorobogatov và Anderson, cho đến hiện tại, đây vẫn được coi là cuộc tấn công mạnh mẽ nhất trong các phương pháp tấn công kênh kề. Không giống một cuộc tấn công trục trặc điện áp, trong trường hợp này, kẻ tấn công có thể lựa chọn vị trí của cuộc tấn công trong thiết bị [6]. Vì tất cả mạch điện đều nhạy cảm với ánh sáng do hiệu ứng quang điện, kẻ tấn công có thể lợi dụng dòng điện do photon tạo ra để gây ra lỗi như ý muốn. Cụ thể hơn là sử dụng năng lượng phát xạ ánh sáng để xáo trộn silicon của một con chip. Đây là phương pháp tấn công bán xâm lấn, vì vậy chip rất khó để có thể chống lại cuộc tấn công kiểu này. Tuy nhiên, để thành công, kẻ tấn công phải kiểm soát được năng lượng bức xạ ánh sáng, bước sóng, vị trí và thời gian phát xạ.
Ví dụ, một đèn flash của máy ảnh có thể thực thi một cuộc tấn công đơn giản vào thiết bị thẻ thông minh. Ưu điểm của phương pháp này là nó rất rẻ, nhưng độ xuyên sâu của ánh sáng của đèn flash phụ thuộc vào bước sóng của ánh sáng mà ánh sáng đèn flash có bước sóng nhìn thấy được. Hơn nữa, ánh sáng đèn flash rất khó điều khiển một cách chính xác. Do đó, hệ thống đèn laser có thể sẽ hiệu quả hơn cho một cuộc tấn công kiểu này vì nó cho phép sử dụng một số bước sóng rời rạc và nhắm mục tiêu đến một khu vực rất nhỏ của thiết bị, làm cho nó khó có khả năng chống lại mặc dù hầu hết các thẻ thông minh đều có bộ phát hiện ánh sáng và tấm chắn kim loại. Hơn nữa, ngày nay có thể thực hiện cuộc tấn công bằng tia laser vào mặt sau của chip, nơi thường không áp dụng các cơ chế bảo mật.
Tiêm lỗi từ trường
Một cách khác để gây ra lỗi là sử dụng phát xạ xung từ trường mạnh gần silicon, các từ trường tạo ra các dòng điện cục bộ trên bề mặt của linh kiện để tạo ra lỗi như mong muốn. Phương pháp tấn công này có thể được thực hiện với các vật liệu rẻ tiền, ví dụ một cây kim quấn bằng dây dẫn, cho dòng điện chạy qua dây dẫn tạo ra từ trường có định hướng. Kết quả sẽ tốt hơn nếu cuộc tấn công là bán xâm lấn [7].
Như vậy, cây kim phải càng gần silicon càng tốt vì lớp nhựa phải được loại bỏ. Tùy thuộc vào thiết bị được sử dụng và các thông số của nó phải được tính đến như: cường độ từ trường, thời gian thực hiện và vị trí cục bộ trên chip. Trên thực tế, phương pháp này khó để thực hiện vì việc tạo ra một từ trường cao sẽ yêu cầu một dòng điện cao, như vậy sẽ phá hủy dây dẫn.
Cách ngăn chặn
Hiện nay, phương pháp tấn công tiêm lỗi vẫn đang chỉ thực hiện trong phòng thí nghiệm. Tuy nhiên, đã có rất nhiều nhà khoa học nghiên cứu các biện pháp để ngăn chặn cuộc tấn công kiểu này. Một phương pháp đơn giản là phương pháp mặt nạ dự phòng thường được biết đến như là một biện pháp hiệu quả để chống lại các cuộc tấn công tiêm lỗi. Sự phụ thuộc giữa mức tiêu thụ năng lượng và các biến đã xử lý được loại bỏ bằng cách áp dụng mặt nạ ngẫu nhiên cho giá trị v:
vm = v x m (1)
với v – giá trị năng lượng của các linh kiện điện tử, vm – giá trị năng lượng ngẫu nhiên của linh kiện điện tử, m – hằng số ngẫu nhiên.
Một phương pháp phổ biến nữa là khóa tạm thời. Tức là lợi dụng vào phương thức tiến hành tấn công tiêm lỗi là phải thực hiện nhiều lần, lấy được càng nhiều thông tin càng giúp cho việc phá khóa thành công. Chính vì vậy, các nhà thiết kế chip đã sử dụng phương pháp khóa tạm thời, sao cho giới hạn số lượng lần lấy mã PIN, số lượng lần chip nhận thông tin không chính xác. Đây là phương pháp rất đơn giản để chống lại các cuộc tấn công tiêm lỗi.
Các loại lỗi
Có hai loại lỗi thường gặp được tạo ra do ảnh hưởng của các cuộc tấn công tiêm lỗi, đó là: lỗi vĩnh viễn và lỗi tạm thời.
Lỗi vĩnh viễn
Trong một lỗi vĩnh viễn, giá trị của một ô trong bộ nhớ chắc chắn sẽ thay đổi, dữ liệu (EEPROM) hoặc RAM) hoặc mã (EEPROM) có thể bị hỏng. Một lỗi vĩnh viễn có thể ảnh hưởng mạnh mẽ đến thiết bị khi khóa bị mất đã được thay đổi. Tuy nhiên, rất khó để có thể gây ra lỗi vĩnh viễn trên các ô logic cụ thể bằng cách sử dụng cơ chế mã bộ nhớ và xáo trộn địa chỉ thực của bộ nhớ trong thẻ thông minh hiện nay.
Lỗi tạm thời
Khi bị tấn công, thiết bị có thể ở trạng thái lỗi tạm thời, khi đó mạch phục hồi hành vi ban đầu của thiết bị khi đặt lại hoặc khi bị kích thích do lỗi sẽ bị tạm dừng. Một lỗi tạm thời có thể gây ảnh hưởng đến lệnh thực thi hoặc một tính toán cụ thể trong hệ thống. Do vậy, một lệnh gọi đến một chương trình con có thể bị bỏ qua, một lệnh kiểm tra có thể không được thực hiện, các lệnh khác có thể được thực thi, và một giá trị sai có thể được tìm nạp hoặc một bộ đếm chương trình có thể được sửa đổi.
Kết luận
Mặc dù thiết bị để thiết lập các cuộc tấn công tiêm lỗi dường như rất đơn giản, nhưng chúng tôi thấy rằng việc đưa các cuộc tấn công như vậy vào thực tế đòi hỏi kẻ thực hiện phải có kinh nghiệm kỹ thuật và hiểu biết chuyên sâu về vấn đề này. Hơn nữa, việc làm xáo trộn hệ thống của thiết bị ngày càng khó vì các bộ vi điều khiển mới nhất được thiết kế để chống lại các cuộc tấn công tiêm lỗi. Tuy nhiên, nguy cơ tồn tại và rủi ro do phương pháp tấn công này phải được đánh giá, quan tâm và xem xét nghiêm túc.
Tài liệu tham khảo
|
TS. Phạm Văn Tới