Tấn công kênh kề trên các thiết bị mật mã

14:02 | 03/10/2009

Cho đến nay, phần lớn các nghiên cứu về mật mã nhằm đánh giá các đặc trưng toán học của thuật toán mật mã, các phương pháp mã hóa cũng như các giao thức mật mã. Khi mật mã được áp dụng trong truyền tin bí mật thì các tấn công lấy cắp thông tin chủ yếu là tập trung vào các thông tin được truyền trên kênh hơn là tấn công tại các thiết bị phần cứng đầu cuối.

Tuy nhiên, các thiết bị phần cứng thực hiện chức năng mã hóa để bảo mật thông tin chính là phần quan trọng nhất trong toàn bộ hệ thống và cần được quan tâm nhiều nhất.
Sự phát triển nhanh chóng của công nghệ phần cứng tính toán đã tạo ra các thiết bị ngày càng nhỏ hơn, nhanh hơn, rẻ hơn và phổ biến hơn. Với các thành tựu đó, thiết bị phần cứng mật mã ngày nay đã được sử dụng rộng rãi trong mọi lĩnh vực, từ việc ứng dụng cho  thiết bị Tivi (TV unit) đến điện thoại di động (cell phone) hay thẻ thanh toán, thẻ kiểm soát ra vào (smartcard). Các thiết bị này thường lưu trữ khóa bí mật  hoặc các dữ liệu nhạy cảm. Do vậy, các tổn hại lên các thiết bị phần cứng bảo vệ hay lên các dữ liệu riêng tư này có thể kéo theo những tổn thất như mất thông tin cá nhân, bị truy cập trái phép, hoặc bị lấy trộm tiền qua tài khoản ngân hàng,…

Do các thiết bị mật mã có thể dễ dàng tiếp cận nên kẻ tấn công có thể biết được cấu trúc bên trong của thiết bị phần cứng và tìm ra các chi tiết đặc biệt trong quá trình thực thi. Từ những hiểu biết về hoạt động của thiết bị, kẻ tấn công có thể lấy được các thông tin cần thiết mà không cần tấn công vào các thuật toán mã hóa. Nói một cách khác, ngay cả khi tất cả các thuật toán cũng như giao thức mật mã được thực hiện một cách an toàn nhất thì kẻ tấn công vẫn có thể lấy được các thông tin bí mật trong quá trình làm việc của phần cứng mã hóa. Thậm chí, khi không thể lấy được các thông tin bí mật thì kẻ tấn công vẫn có thể phá hỏng phần cứng, tấn công từ chối dịch vụ hay tạo ra các lỗi khác trên hệ thống an toàn.

Có nhiều kiểu tấn công phần cứng khác nhau, nhưng chúng được chia thành 3 kiểu cơ bản bao gồm: tấn công kênh kề (side channel attacks), tấn công điểm yếu (fault attacks) và can thiệp vật lý (physical tempering). Bài viết này giới thiệu về kiểu tấn công khá phổ biến và đáng quan tâm là tấn công kênh kề.

Kênh kề là khu vực thông tin được tạo ra do quá trình hoạt động của thiết bị phần cứng mật mã. Ví dụ như tiếng ồn (sound), bức xạ tia hồng ngoại (infrared radiation), độ trễ thời gian (time delays), nguồn tiêu thụ (power consumption) và bức xạ điện từ (electromagnetic radiation). Thông tin rò rỉ này có thể được phân tích thống kê để tìm ra các mối liên quan đến những phép tính cơ bản được cài đặt trong thiết bị mật mã hoặc là khóa mật mã, đó là đầu mối thông tin quan trọng cho kẻ tấn công.
Các công nghệ tấn công can thiệp trực tiếp vào phần cứng cần có sự che đậy hay xóa dấu vết sau đó, còn tấn công kênh kề có thể lấy ra các thông tin quan trọng trong khi hệ thống vẫn hoạt động bình thường mà không hề làm thay đổi phần cứng. Nhiều tham số có thể được ứng dụng trong tấn công kênh kề, nhưng phổ biến là 3 tham số chính: thời gian, nguồn điện tiêu thụ và tín hiệu bức xạ.

1. Tấn công kênh kề theo thời gian (timing attacks)

Đây là cách tấn công kênh kề khá đơn giản, tài liệu của Kocher xuất bản năm 1996 đã giải thích tại sao giới hạn thời gian tính toán có thể tiết lộ ra các thông tin hết sức quan trọng về khóa bí mật. Tấn công của Kocher đã chỉ ra cách thức đo thời gian cần thiết cho một thực thi (hành động) đối với khóa riêng để có thể phát hiện ra số mũ được sử dụng trong thuật toán Diffie-Hellman (fixed Diffie-Hellman exponents), các thừa số RSA (RSA factors) hay các tham số bí mật khác của hệ thống mã hóa. Nó chứng tỏ rằng, kẻ tấn công có thể biết chi tiết các hoạt động trong hệ thống mật mã và các tấn công là dựa vào các chi tiết hoạt động đặc biệt của hệ thống. Ví dụ, với thuật toán lấy modular hàm mũ sử dụng trong tính toán RSA: m = cd mod n, kẻ tấn công muốn có được khóa bí mật d.



Hình 1. Các vết thu được từ một SPA trên một smartcard sử dụng DES 16 vòng (Nguồn Kocher, 1999)

Có thể dùng kỹ xảo (crafted) để tìm ra bất kỳ một thực thi nào đó hoạt động không trong khuôn khổ thời gian đã được thiết lập. Ví dụ như thuật toán lấy modular của hàm mũ sẽ kiểm tra một bit của khóa để phân ra phép tính nhanh (nếu như bit đó là 0) hoặc phép tính chậm (nếu bit đó là 1), thông tin về khóa sẽ bị lộ ra theo cách này.
Kẻ tấn công có thể bắt đầu với phỏng đoán (giả thiết) bit đầu tiên có thể là 0 hoặc là 1. Sau đó xem xét các kết quả giả thiết trong mối tương quan chặt chẽ giữa thời gian thực thi thực tế và thời gian dự đoán. Quá trình này được thực hiện nhiều lần, cho đến khi kẻ tấn công tìm ra được hết các bit khóa bằng cách quan sát sự tương quan về mặt thời gian giữa nhiều mẫu và bit khóa lựa chọn. Như vậy không gian tìm kiếm khóa có thể đã được thu nhỏ lại. Trong cuộc thử nghiệm của Kocher, với công cụ phần mềm RSAREE chạy trên máy tính 120Mhz Pentium, với chỉ vài nghìn lần thử đã tìm ra giá trị hàm mũ bí mật 256 bit sử dụng trong công thức lấy modular của hàm mũ. Tấn công này được cho là khá đơn giản về mặt tính toán.

2. Tấn công theo phân tích nguồn điện cung cấp (power analysis)

Phương pháp phân tích nguồn điện cung cấp được thực hiện dựa trên việc so sánh giữa nguồn mẫu cơ bản với nguồn sử dụng thực tế tại thời điểm phân tích. Việc phân tích bao gồm các phép đo về vật lý (meansurements), thông qua các máy dò vật lý (probe) trên nguồn điện tiêu thụ của thiết bị phần cứng tại thời điểm phân tích. Tấn công phân tích nguồn điện dựa trên sự tương quan giữa dòng điện do bộ vi xử lý tạo ra và các lệnh hoặc dữ liệu đang được xử lý.

Trong tấn công phân tích nguồn điện đơn giản  (Simple Power Anlysis - SPA), kẻ tấn công tiến hành quan sát vết (trace) của nguồn điện tiêu thụ trong một khoảng thời gian và cố gắng áp dụng nó trực tiếp vào nguyên lý hoạt động của thiết bị mật mã. Một ví dụ thể hiện các vết thu được từ một SPA trên một smartcard chạy thuật toán mã hóa DES được thể hiện trong Hình 1.

Trong tấn công thời gian (trình bày ở phần trên), thời gian dùng để thực hiện phép tính có thể làm lộ ra thông tin để đoán được bit khóa bí mật. Còn trong tấn công SPA, một ví dụ so sánh năng lượng điện tiêu thụ trên smartcard để thực hiện hai phép tính được thể hiện như Hình 2.

Sự khác nhau chỉ xuất hiện tại vòng 6, điều này cho biết thông tin về chu trình các phép tính đã được thực hiện trên  smartcard, với một số phép tính cụ thể thì các thông tin này có thể làm tiết lộ khóa.

Tấn công SPA đã từng phá vỡ hoạt động của RSA do nó chỉ ra sự khác nhau giữa phép nhân và phép lũy thừa sử dụng trong biểu thức lấy giá trị modular hàm mũ. Trong trường hợp tấn công SPA độc lập không thể lấy được khóa bí mật, thì nó cũng có thể cung cấp các tham số là đầu mối quan trọng cho các cuộc tấn công khác.


Hình 2. Vết SPA từ hai phép tính  trên Smartcard chỉ  xuất hiện ở vòng thứ 6 (Nguồn Kocher, 1999)

Một kiểu tấn công phân tích nguồn tiêu thụ cũng được áp dụng phổ biến là Phân tích nguồn điện vi phân (Differential Power Analysis - DPA), dựa trên các kiểm tra thống kê để cô lập tín hiệu cần quan tâm với nhiễu và các tín hiệu nguồn điện tổ hợp trong thiết bị. Sử dụng DPA, kẻ tấn công có thể khám phá ra một nhóm các bit khóa trong một lần thử nên đã làm giảm một lượng đáng kể không gian khóa có thể. PDA còn giúp kẻ tấn công lấy được các thông tin cần thiết thể hiện ở sự tương quan giữa nguồn điện và dữ liệu được xử lý, ngay cả khi là mối liên quan giữa nguồn điện tiêu thụ và các lệnh thực thi hoạt động khá phức tạp (không thực hiện được bằng SPA).

3. Tấn công kênh kề theo phương pháp phân tích bức xạ điện từ 

Trong khi SPA dựa theo các tính toán phân tích trên nguồn điện tiêu thụ, thì phương pháp phân tích bức xạ điện từ lại dựa theo các tính toán trên các tín hiệu điện từ (electromagnetic signals) tạo ra tại các vi mạch (microelectronics) trong quá trình hoạt động. So với các tấn công SPA, tấn công phân tích bức xạ có thể thu được các thông tin mật một cách đơn giản hơn. Các tấn công phân tích bức xạ thường được áp dụng là: phân tích điện từ đơn giản (Simple Electro-Magnetic Analysis – SEMA) và phân tích điện từ vi phân (Differential Electro-Magnatic Analysis – DEMA).

Có nhiều điểm khác nhau đáng chú ý giữa tấn công dựa theo phân tích nguồn điện tiêu thụ và phân tích tín hiệu điện từ bức xạ. Trong khi tấn công phân tích nguồn điện thường bị giới hạn do các phép đo trên nguồn điện tiêu thụ của thiết bị, thì tấn công phân tích bức xạ điện từ có thể hướng vào nhiều khu vực đặc biệt của chip vi xử lý thông qua việc gắn các anten nhỏ vào vị trí có thể. Tấn công phân tích bức xạ điện từ cũng rất cơ động bởi kẻ tấn công có thể ở xa thiết bị phần cứng và không cần một kết nối vật lý trực tiếp với thiết bị. Kẻ tấn công có thể dùng phương pháp điều biên (AM) đơn giản để có thể lấy được thông tin trên chip từ khoảng cách vài mét thay vì kết nối vật lý trực tiếp.
Tuy nhiên, tấn công phân tích bức xạ điện từ lại chịu ảnh hưởng của nhiễu, giao thoa tần số (RF) và lỗi thu tín hiệu bức xạ.

Kết luận 

Việc nghiên cứu tìm hiểu về tấn công phần cứng mật mã nói chung và tấn công kênh kề nói riêng là hết sức cần thiết đối trong lĩnh vực bảo mật và an toàn thông tin. Trên thế giới đã có nhiều trường đại học và tổ chức nghiên cứu và đưa ra các giải pháp cũng như thiết bị cho lĩnh vực này. Tại Việt Nam đây là một lĩnh vực tương đối mới và cần được sự quan tâm, đầu tư nghiên cứu trong thời gian tới.