Tấn công không xâm lấn chip xử lý mật mã
Mở đầu
Thiết bị mật mã là thiết bị điện tử thực thi các thuật toán mã dịch và lưu trữ an toàn tham số khóa mật. Các thiết bị mật mã cho phép thực hiện các phép toán mã hóa/giải mã theo tham số khóa, rồi truyền kết quả của phép toán xử lý bảo mật ra môi trường (hữu tuyến/vô tuyến) bên ngoài. Thực tiễn thấy rằng, tăng cường an toàn cho thuật toán mật mã về độ phức tạp tính toán là chưa đủ mà phải đảm bảo an toàn ở cấp độ hệ thống. Tức là, phải xem xét toàn diện việc thực thi của thuật toán mã dịch trên từng nền tảng chip cụ thể.
Chip bán dẫn (vi điều khiển/vi xử lý) là khối xử lý trung tâm để thiết kế thiết bị mật mã. Thuật toán mật mã, khóa và các dữ liệu nhạy cảm đều được xử lý trong chip. Bởi vậy, các chip bán dẫn là mục tiêu thu hút nhiều kẻ tấn công. Nghiên cứu các tấn công chip giúp chúng ta có góc nhìn nhận đúng đắn hơn về an toàn trong tiến trình thiết kế, chế tạo chip chuyên dùng hoặc khi chọn lựa các chip phù hợp để thiết kế máy mã.
Theo quan điểm thiết kế, đầu tiên phải xác định các yêu cầu kỹ thuật cho thiết bị mật mã. Điều này buộc nhà thiết kế phải tính đến việc lựa chọn hoặc chế tạo chip phù hợp với yêu cầu của bài toán. Bên cạnh những chỉ tiêu về tốc độ, hiệu năng, công suất tiêu thụ… thì vấn đề đảm bảo an toàn cũng cần được lưu tâm tương quan.
Các hãng sản xuất chip thường cung cấp tài liệu mô tả về các đặc tính kỹ thuật của chip dưới dạng Datasheet. Tuy nhiên, các AppNote về tính an toàn kèm theo Datasheet thường rất sơ lược. Phương pháp luận chung nhất để đảm bảo tính an toàn là: người thiết kế sẽ tiến hành kiểm thử (test) tính an toàn của những chip tương đương khác nhau dưới các kiểu tấn công khác nhau, để lựa chọn chip vượt qua tất cả các phép kiểm thử đó. Thực tế, đây là công việc không có điểm kết thúc, vì hoạt động này yêu cầu thời gian lớn, thiết bị chuyên dụng và đội ngũ chuyên gia giàu kinh nghiệm.
Bởi vậy, cách thức khả thi và hiệu quả nhất với các nhà thiết kế thiết bị mật mã là xác định những kiểu tấn công đã biết vào chip, từ đó, tìm kiếm các giải pháp bảo vệ hữu hiệu. Tuy nhiên, ngay cả khi sử dụng các chip chưa đạt đủ độ an toàn thì vẫn có giải pháp thỏa hiệp trong thiết kế để đạt mục tiêu an toàn cao nhất cho thiết bị. Khảo sát các công bố gần đây cho thấy, có 5 kỹ thuật tấn công đặc biệt nguy hiểm tập trung vào các chip bán dẫn, bao gồm:
- Tấn công vi thăm: xâm nhập trực tiếp vào bề mặt chip để quan sát, sửa đổi và can thiệp vào mạch điện của chip.
- Tấn công đảo ngược thiết kế: nhằm tạo lại cấu trúc của chip bán dẫn khi không có tài liệu thiết kế chip. Tấn công này đòi hỏi phải sử dụng cùng một công nghệ và khả năng tương tự với nhà chế tạo chip.
- Tấn công phần mềm: nhắm mục tiêu vào giao diện truyền thông của chip và khai thác các yếu điểm trong giao thức truyền tin. Tấn công phần mềm cũng cho phép khai phá các điểm yếu của thuật toán mật mã khi thực thi.
- Tấn công phân tích tín hiệu: thực hiện dựa trên tín hiệu analog thu được trên đường nguồn, đường liên lạc hay phát xạ điện từ do chip phát ra khi hoạt động.
- Tấn công gây lỗi: gây ra bất thường trong môi trường làm việc để các hàng rào bảo vệ hoạt động hỏng hóc, tạo điều kiện cho các tấn công tiếp sau.
Các kỹ thuật trên thường được chia thành 3 nhóm: xâm lấn, không xâm lấn và bán xâm lấn. Các tấn công vi thăm và đảo ngược thiết kế thuộc nhóm xâm lấn, bởi quá trình tấn công có thể gây hư hỏng chip. Hai loại tiếp theo là tấn công không xâm lấn, không gây hư hại cho các thiết bị chịu tấn công. Còn tấn công gây lỗi được xếp loại bán xâm lấn - bởi tấn công này tiếp cận đến vi mạch nhưng không tác động vào chất bán dẫn mà chỉ gây lỗi bằng xung ánh sáng cường độ cao, chiếu xạ điện từ, hoặc làm nóng cục bộ.
Trong phạm vi bài viết này, chúng tôi nhấn mạnh đến nguy cơ tấn công không xâm lấn. Mặc dù, những tấn công này không đòi hỏi sự chuẩn bị trước đối với chip, nhưng lại gây hậu quả đặc biệt nghiêm trọng, bởi chúng không để lại dấu vết và trong suốt đối với người dùng. Tuy nhiên, tấn công này cần nhiều thời gian, nỗ lực để thành công và cho phép thực hiện ở dạng thụ động hoặc chủ động. Hình thức này còn được gọi là tấn công kênh kề (side-channel).
Tấn công phân tích năng lượng tiêu thụ
Mục tiêu sau cùng của tấn công là trích xuất khóa của thiết bị mật mã qua phân tích điện năng tiêu thụ. Tấn công này khai thác thành phần năng lượng tiêu thụ của thiết bị mật mã gắn liền với giá trị dữ liệu được xử lý và phép toán thực thi. Phần lớn các thiết bị mật mã hiện đại đều được thiết kế dựa trên công nghệ Complementary Metal-Oxide-Semiconductor (CMOS). Do đó, năng lượng tiêu thụ phụ thuộc không nhiều vào mức logic, mà phụ thuộc chủ yếu vào sự thay đổi trạng thái của các mức logic [1]. Tại thời điểm chuyển mức logic, các transistor tầng ra của vi mạch (Hình 1) sẽ cùng thông trong khoảng thời gian rất ngắn, gây ra sự ngắn mạch. Dòng điện ngắn mạch này cao hơn nhiều so với dòng ở trạng thái tĩnh duy trì mức logic. Do đó, năng lượng tiêu thụ trung bình trong chu kỳ T của mạch điện có thể được xác định theo biểu thức:
Hình 1. Mô hình năng lượng tiêu thụ Pcir của mạch điện CMOS
Trong quá trình thực hiện thuật toán mật mã liên tục có sự chuyển trạng thái của các transistor gây ra những biến động lớn về năng lượng tiêu thụ. Để quan sát được các biến động điện năng trong quá trình máy mã thực hiện thuật toán, giải pháp khả thi và rất hiệu quả đó là mắc một điện trở thuần 1 ÷ 10 Ω nối tiếp đường nguồn hoặc đường đất của máy mã và sử dụng máy hiện sóng để thu thập tín hiệu điện áp rơi trên điện trở (Hình 2). Dữ liệu ứng với tín hiệu thu thập sau lấy mẫu bằng máy hiện sóng được truyền sang máy tính để tiếp tục phân tích.
Hình 2. Mô hình thực hiện tấn công phân tích năng lượng tiêu thụ
Thực tế, các dữ liệu ứng với năng lượng tiêu thụ của vi điều khiển khi thực hiện phép mã hóa AES-128 (Hình 3), được gọi là vết hoặc vệt năng lượng tiêu thụ. Vi điều khiển Atmega-32 nhận bản rõ từ máy tính qua giao diện RS-232 và thực hiện mã hóa, máy hiện sóng thu được các vệt năng lượng và gửi trở lại máy tính.
Hình 3. Dạng sóng điện năng tiêu thụ của vi điều khiển khi thực hiện AES-128
Phân tích rõ hơn về vệt năng lượng trên Hình 3 cho thấy sự đồng nhất trong khoảng thời gian từ 0 đến 0,35 ms, đó là vi điều khiển đang đợi bản rõ. Khi hoàn tất việc đọc bản rõ, vi điều khiển sẽ thực hiện 9 vòng mã hóa AES. Quan sát thấy các vòng mã hóa ứng với các đỉnh âm của vệt là khá rõ ràng. Mỗi vòng này xử lý mất khoảng 0,4 ms. Do không cần phép toán MixColumn, nên vòng thứ 10 có thời gian xử lý ngắn hơn. Cuối cùng, quá trình mã hóa kết thúc và vi điều khiển chờ bản rõ tiếp theo. Từ các vệt năng lượng này, kẻ tấn công hoàn toàn có thể ứng dụng các mô hình năng lượng tiêu thụ theo trọng số Hamming hoặc khoảng cách Hamming để tìm ra hệ số tương quan giữa dữ liệu rõ được xử lý tương ứng với khóa giả thiết, trên cơ sở đó sẽ xác định được khóa mật mà vi điểu khiển sử dụng.
Tấn công gây lỗi
Tấn công gây lỗi cố gắng tác động vào môi trường quanh chip, gây ảnh hưởng đến hoạt động bình thường của thiết bị [2]. Phổ biến nhất, tấn công này tác động trực tiếp vào nguồn nuôi (gây nhiễu gai điện áp nguồn) hoặc tác động vào tín hiệu clock (làm cho một chu kỳ clock ngắn hơn hoặc dài hơn bình thường) (Hình 4).
Hình 4. Mô hình thực hiện tấn công gây lỗi bằng tác động vào tín hiệu xung nhịp
Vi xử lý mật mã được cấu tạo từ các flip-flop. Mỗi flip-flop có cửa sổ lấy mẫu tín hiệu vào rất nhỏ, cỡ vài pico giây. Bởi vậy, nếu ta gây lỗi cho clock hoặc gây lỗi nguồn nuôi sẽ dẫn đến một hay một số flip-flop được cấp nhịp không chính xác. Trong trường hợp thay đổi tham số gây lỗi, khối xử lý trung tâm sẽ thực thi sai hoàn toàn một số lệnh khác nhau. Bởi vậy, gây lỗi lặp lại một cách có hệ thống sẽ tìm ra được lỗi ứng với lệnh cụ thể của CPU.
Tấn công phân tích thời gian
Đây là kiểu tấn công được Paul Kocher công bố tại Hội nghị thường niên về mật mã CRYPTO’96 vào năm 1996 tại Santa Barbara, California, Mỹ [3]. Ý tưởng chính của phương pháp này dựa trên sự phụ thuộc theo thời gian xử lý của thiết bị mật mã vào dữ liệu và tham số khóa mật mã (Hình 5). Phương pháp tấn công này đã khẳng định được khóa mật mã hoàn toàn bị khôi phục trong tiến trình mã hóa/giải mã dữ liệu. Kết quả công bố cho thấy, khóa bí mật K13 = 1101 đã được chip bảo mật sử dụng khi thực thi mã hóa.
Hình 5. Đo thời gian thực thi của thuật toán mật mã
Để thực hiện tấn công này, người tấn công phải xây dựng mô hình thời gian xử lý ứng với mỗi dữ liệu đầu vào và từng giá trị khóa bí mật. Trong đó, giá trị khóa bí mật được xác định nhờ tra bảng giá trị thời gian thực tế đo được với giá trị thời gian thực thi bằng mô hình hóa.
Bảng 1: Định thời xử lý dữ liệu
Kết luận
Từ những phân tích về hình thức tấn công không xâm lấn cho thấy, việc nghiên cứu và làm chủ được các tấn công này là một đòi hỏi bắt buộc đối với những người thiết kế máy mã nói chung và xây dựng các giải pháp phòng chống tấn công nhằm đảm bảo an toàn cho các thiết bị mật mã nói riêng, trước những tấn công không xâm lấn.
Tài liệu tham khảo [1]. Stefan Mangard, Elisabeth Oswald, Thomas Popp, “Power Analysis Attacks: Revealing the Secrets of Smart Cards”, Springer Science+Business Media, LLC 2007. [2]. Yifei Q., Zhaojun, L., Hailong, L. and Zhenglin L., “Clock Glitch Fault Injection Attacks on an FPGA AES Implementation”, Journal of Electrotechnology, Electrical Engineering and Management (2017) 1: 23-27. [3]. Kocher P.C., “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems”. In: Koblitz N. (eds) Advances in Cryptology - CRYPTO ’96. CRYPTO 1996. |
TS. Đỗ Quang Trung, TS. Nguyễn Đức Công