Các tấn công trên thiết bị PKI Token

14:45 | 03/02/2016

Trong các hệ thống chứng thực điện tử, việc sử dụng thiết bị PKI Token để lưu trữ khóa bí mật và thực thi các thuật toán mật mã một cách an toàn trên thiết bị là một giải pháp an toàn và phổ biến nhất hiện nay. Do sự phổ biến của thiết bị PKI Token nên hiện nay có nhiều tấn công nhằm vào thiết bị này để khai thác khóa bí mật và giải mã dữ liệu. Bài viết này đưa ra một số phương thức tấn công và phân tích một cách tổng quan các tấn công trên thiết bị PKI Token.

Thiết bị PKI Token cung cấp một môi trường an toàn cho việc lưu trữ dữ liệu và thực thi các hoạt động mật mã. Trong thực tế, không có một môi trường nào là bảo đảm an toàn tuyệt đối, thiết bị PKI Token cũng vậy. Hiện nay, các tấn công nhằm vào PKI Token có thể chia thành 3 loại: Tấn công vào yếu tố con người, tấn công mức vật lý và tấn công mức logic. Thực tế còn xuất hiện các dạng tấn công kết hợp giữa các phương thức trên. Ví dụ, một tấn công ở mức vật lý là một bước đệm cho một tấn công tiếp theo ở mức logic như tấn công phân tích lỗi sai khác (differential fault analysis). Dưới đây phân tích về hai dạng tấn công thông dụng vào PKI Token là tấn công mức vật lý và tấn công logic.



Tấn công mức vật lý

Các tấn công mức vật lý cần thao tác ở cấp độ phần cứng bán dẫn và đòi hỏi đáng kể về nguồn lực kỹ thuật, tùy thuộc vào phương án tấn công, (ví dụ, kính hiển vi, máy cắt laser, các bộ phát chùm ion, thiết bị khắc hóa học, máy tính tốc độ cao để phân tích, ghi chép và đánh giá các quá trình điện tử xảy ra trong chip). Các thiết bị này và cách sử dụng chúng yêu cầu trình độ kỹ thuật cao nên chỉ các tổ chức lớn mới có thể đầu tư. Điều này làm giảm xác suất của tấn công vật lý. Tuy nhiên, nhà sản xuất thiết bị PKI Token hoặc nhà sản xuất bán dẫn phải luôn xác định rằng một kẻ tấn công tiềm năng luôn có khả năng sử dụng các thiết bị và dụng cụ cần thiết phục vụ cho các tấn công. 

Với một cuộc tấn công ở mức vật lý, kẻ tấn công cần thực hiện một số bước cơ bản sau đây. Đầu tiên là thực hiện loại bỏ các môđun ra khỏi thiết bị PKI Token, sau đó, cần phải tách lớp nhựa eposit bao quanh chip. Như vậy, chip đã bị bóc hoàn toàn các lớp bảo vệ và vẫn hoạt động. Tuy nhiên để đọc dữ liệu, kẻ tấn công còn phải thực hiện một số thao tác nữa để có thể truy xuất những dữ liệu bí mật được lưu trữ trong chip.

Tấn công mức vật lý có 3 loại chính là: Tấn công vi xử lý, tấn công các bus, tấn công bộ nhớ và một số dạng tấn công vật lý khác.

Kỹ thuật tấn công vi xử lý: Việc thiết kế bộ vi xử lý mang tính quyết định đến độ an toàn của thiết bị PKI Token. Nó phải có năng lượng tiêu thụ tương đương nhau tại mỗi thời điểm thực hiện mỗi câu lệnh, nếu không mức năng lượng tiêu thụ có thể bị lợi dụng để suy luận ra cấu trúc đang được xử lý. Kết quả là một số thông tin bí mật có thể được tìm ra từ những suy luận này.

Thực tế đã kiểm nghiệm là có khả năng suy luận ra các cấu trúc đang được thực hiện bởi bộ vi xử lý, và thậm chí là dữ liệu đang được xử lý bằng việc phân tích mức năng lượng tiêu thụ hiện hành của bộ vi xử lý khi nó hoạt động. Đây là dạng tấn công phân tích năng lượng đơn giản - SPA và tấn công năng lượng vi sai - DPA được công bố vào tháng 6/1998.

Tấn công bus dữ liệu: Trước khi các bus của vi điều khiển nối giữa bộ vi xử lý và các loại bộ nhớ bị thăm dò, chip đã bị bóc tách, loại bỏ các lớp thụ động trên toàn bộ bề mặt hoặc một số vị trí được lựa chọn. Các lớp thụ động bảo vệ chip chống lại sự oxy hóa và nó cũng có thể chống lại một số tấn công vì tính toàn vẹn của lớp này được giám sát bởi một số cảm ứng. Về mặt lý thuyết, kẻ tấn công có thể tạo được các kết nối với các bus địa chỉ, bus dữ liệu và bus điều khiển sử dụng các que dò siêu nhỏ. Nếu kết nối được vào cả ba loại bus này, thì rất dễ dàng xác định các tế bào nhớ riêng rẽ và đọc được bất kỳ vùng nhớ nào của bộ nhớ ROM, EEPROM hoặc Flash. 

Tấn công bộ nhớ: Loại chip không cần phải cấp nguồn và bất kỳ kết nối nào tới thiết bị cũng có thể sử dụng để thực hiện tấn công này. Thiệt hại do tấn công này gây ra là vô cùng lớn, vì trên lý thuyết tất cả dữ liệu bí mật trong bộ nhớ cố định đều bị truy xuất. Trực tiếp đọc nội dung bộ nhớ của một vi điều khiển là một dạng tấn công mà độ nguy hiểm của nó có tác động ngay lập tức. Một dạng tấn công tương tự gây hậu quả nghiêm trọng không kém, đó là cố ý thay đổi nội dung bộ nhớ của vi điều khiển. Tấn công này nhằm mục đích thay đổi một cách có chọn lọc các giá trị hiện hành của các bit hoặc byte trên bộ nhớ ROM, hoặc các loại bộ nhớ cố định khác. Tuy nhiên, do không nhằm mục đích tạo ra các lỗi sai ngẫu nhiên trong quá trình tính toán, nên tấn công này còn được gọi là tấn công cảm ứng lỗi.

Các tấn công vật lý khác: Tấn công đo bức xạ điện từ của vi điều khiển, những suy luận liên quan đến những quá trình xảy ra bên trong vi điều khiển của thiết bị PKI Token có thể được thực hiện nhờ các bức xạ điện từ của chip thu được bằng phương pháp tương tự như phương pháp phân tích năng lượng vi sai. Sử dụng một cuộn dây nhỏ kết nối với các bộ khuếch đại nhiễu thấp (low - noise amplifiers), kẻ tấn công có thể đo được từ trường có biên độ thấp của thiết bị PKI Token. Các phép đo có thể được phân tích tương tự giống với tấn công SPA và DPA, mà không cần biết chi tiết cấu trúc bên trong thiết bị bán dẫn. Phương pháp này được gọi là phân tích bức xạ điện từ đơn giản (SEMA) và phân tích bức xạ điện từ vi sai (DEMA). 

Tấn công phân tích lỗi vi sai - DFA được Eli Biham và Adi Shamir công bố năm 1996. Đây là một dạng mở rộng của tấn công Bellcore được phòng thí nghiệm Bell (nghiên cứu về lĩnh vực truyền thông) công bố trước đó. Nguyên lý hoạt động của những dạng tấn công này khá đơn giản. Đầu tiên, một bản rõ tùy ý được mã hóa sử dụng khóa đã biết trước, kết quả là bản mã được lưu lại. Tiếp theo, trong quá trình thực hiện thuật toán mật mã, hoạt động của thiết bị PKI Token bị làm nhiễu loạn bằng một số tác động nhiễu bên ngoài, như chiếu các chùm tia ion hoặc từ trường có tần số cao để thay thế một bit đơn của khóa ở một vị trí ngẫu nhiên. Điều này mang lại một bản mã không chính xác do các bit khóa bị thay đổi. Quá trình này được lặp đi lặp lại nhiều lần và tất cả các kết quả được lưu lại để phân tích. Phần tiếp theo để xác định giá trị của khóa bí mật thuần túy là các suy luận toán học.

Tấn công logic

Tấn công hệ điều hành

Hệ điều hành của thiết bị PKI Token là một chương trình phần mềm được thực thi trong vi xử lý của thiết bị và là phần quan trọng nhất của thiết bị. Hệ điều hành PKI Token dùng để điều khiển, quản lý các thiết bị phần cứng, quản lý bộ nhớ, quá trình trao đổi dữ liệu, một số thuật toán mật mã, cung cấp môi trường quản lý, chạy các ứng dụng trên thiết bị. Các tấn công phổ biến trên hệ điều hành của chip bao gồm: 

Tấn công phân tích để xác định tập hợp câu lệnh của thiết bị PKI Token: Mặc dù các lớp lệnh và câu lệnh trong thiết bị PKI Token thường không được công bố công khai, song không khó để xác định được chúng. Những thông tin này có thể được sử dụng như là cơ sở cho các tấn công tiếp theo.

Tấn công ngắt nguồn điện: Một dạng tấn công đã thành công với rất nhiều loại thiết bị PKI Token là tấn công ngắt nguồn điện cung cấp tới thiết bị tại một thời điểm cụ thể trong quá trình thực hiện câu lệnh. Dạng tấn công này dựa trên thực tế là với các chương trình thông thường, tất cả các hoạt động ghi dữ liệu lên bộ nhớ EEPROM hay bộ nhớ Flash được thực hiện tuần tự. Nếu người lập trình sắp xếp trình tự của các hoạt động ghi không tốt, kẻ tấn công có thể lợi dụng để can thiệp vào quá trình này thông qua cách ngắt nguồn điện vào đúng thời điểm.

Tấn công phân tích nguồn điện trong quá trình so sánh mã PIN: Dạng tấn công này dựa trên so sánh các đặc trưng, ví dụ như so sánh mã PIN, có thể được thực hiện kết hợp với phép đo vật lý các tham số và sự biến đổi của các giá trị logic. Nó áp dụng cho tất cả các cơ chế trong đó dữ liệu được gửi đến thiết bị PKI Token và được so sánh với giá trị lưu trong thiết bị. Cùng với quá trình này sẽ có một biến đếm tăng lên theo kết quả so sánh.

Tấn công phân tích thời gian của việc so sánh mã PIN: Các lập trình viên luôn dành sự quan tâm rất lớn cho việc viết các đoạn mã chạy càng nhanh càng tốt. Điều này là quan trọng, song những ảnh hưởng của việc giảm thiểu thời gian chạy cũng có thể tạo ra những lỗ hổng cho các cuộc tấn công. Nếu mã PIN được gửi đến một thiết bị PKI Token để so sánh, các thủ tục so sánh liên kết thông thường sẽ so sánh nó với mã PIN lưu trong thiết bị PKI Token theo từng byte một. Tuy nhiên, một lập trình viên không có ý thức bảo mật thường sẽ lập trình gọi thủ tục trả lời ngay lập tức và trả về giá trị phản hồi cho chương trình gọi, ngay khi có sự khác biệt đầu tiên giữa hai giá trị so sánh. Điều này dẫn đến sự khác biệt dù rất nhỏ về mặt thời gian trong các thủ tục so sánh và có thể được đo bằng thiết bị thích hợp. Kẻ tấn công có thể lợi dụng đặc điểm này để xác định mã số PIN bí mật một cách tương đối đơn giản.

Tấn công mức ứng dụng

Các ứng dụng của thiết bị PKI Token hoạt động trên hệ điều hành và trên máy tính của người dùng. Các tấn công mức ứng dụng trên hệ điều hành của thiết bị chủ yếu thực hiện với các tham chiếu luật truy cập được lưu trong tệp EF. Các luật này đóng vai trò quan trọng trong hệ thống sử dụng các điều kiện truy cập dựa trên các quy tắc, bởi vì nó chứa toàn bộ các điều kiện truy cập. Những tệp này chứa các con trỏ tham chiếu tới bản ghi tương ứng trong tệp EF, thể hiện loại truy cập được cho phép. 

Kẻ tấn công luôn tập trung vào các tệp EF này vì nhiều thông tin quan trọng thu được từ những tập tin này. Do đó, tệp EF cần được bảo mật cao, không thể bị xóa và không cho phép bất kỳ điều kiện truy cập nào có thể truy cập toàn bộ các bản ghi trong tệp. Thêm vào đó, cần đặc biệt chú ý trong thiết kế các ứng dụng để đảm bảo tệp EFARR được bảo vệ an toàn. Điều này cũng cần áp dụng cho các quyền ghi vào và tạo thêm các quyền cho tệp này.

Kết luận

Các tấn công trên thiết bị PKI Token bao gồm các tấn công về con người, tấn công vật lý, tấn công logic là rất đa dạng và phức tạp khi đi sâu vào phân tích cụ thể các tấn công. Việc xác định và phân loại các tấn công trên thiết bị PKI Token là rất quan trọng phục vụ cho quá trình nghiên cứu và phát triển các thiết bị PKI Token, cần phải có các giải pháp phòng chống các tấn công này để đảm bảo tính an toàn cho thiết bị.

 
Tấn công vào quá trình thiết kế, sản xuất PKI Token

- Thiết kế phần cứng vi điều khiển cho thiết bị PKI Token: kẻ tấn công có thể đánh cắp toàn bộ các thiết kế phần cứng của chip, từ đó, chúng có thể biết các thông tin về thiết kế chip như các cơ chế bảo vệ, các loại cảm biến hiện diện trên chip và sơ đồ xáo trộn của bus và bộ nhớ. Những kiến thức này rất hữu ích cho kẻ tấn công trong quá trình phân tích chip vật lý.

- Xây dựng hệ điều hành, phần mềm cho thiết bị PKI Token: Nắm được thông tin về quá trình này, kẻ tấn công có thể biết được cấu trúc của phần mềm, hệ điều hành, cơ chế xác thực, mã nguồn… từ đó có thể phân tích, cài cửa hậu, mã độc lên các phần mềm, hệ điều hành của thiết bị để đọc khóa hoặc giải mã dữ liệu.

Bên cạnh đó, trong quá trình sử dụng thiết bị PKI Token có rất nhiều nguy cơ mất an toàn như thiết bị có thể bị đánh cắp, người dùng có thể đặt mật khẩu yếu, dễ bị đoán cho thiết bị, cho mượn, làm mất thiết bị....