KIỂM THỬ CÁC KỸ THUẬT GIẢM THIỂU TẤN CÔNG KHÔNG XÂM LẤN TRONG MÔ-ĐUN MẬT MÃ
Các mô-đun mật mã cung cấp các dịch vụ mật mã và bảo vệ các tham số an toàn quan trọng (CSP). Bảo vệ CSP có thể thông qua logic, vật lý hoặc cả hai. Tuy nhiên, sự hiểu biết những thông tin về CSP có thể bị rò rỉ khỏi mô-đun mật mã trong khi thao tác, nếu mô-đun không được thiết kế để giảm thiểu sự rò rỉ đó. Nếu không giảm thiểu, kẻ tấn công có thể ghi lại sự rò rỉ kênh kề có sẵn. Sự rò rỉ này là một đại lượng vật lý liên quan đến các CSP và có thể được phân tích theo cách rút ra hiểu biết về các tham số đó. Phân tích như vậy là thụ động, trong đó nó chỉ đơn giản là thu thập rò rỉ kênh kề bằng cách sử dụng thiết bị đo có sẵn. Lưu ý rằng công cụ đo lường có thể được điều khiển một cách thích ứng. Dạng khai thác và phân tích này được gọi là không xâm lấn.
Các kỹ thuật không xâm lấn cho phép khai thác sự rò rỉ các CSP được gọi là cuộc tấn công vào mô-đun. Các công cụ kiểm thử không xâm lấn kênh kề có thể được tự động hóa để thu thập sự rò rỉ. Để mô tả chất lượng của các công cụ kiểm thử, cần có các số liệu, chẳng hạn như tỷ số tín hiệu trên nhiễu (S/N) (được mô tả trong ISO/IEC 20085-2). ISO/IEC 20085 (Tất cả các phần) đề cập đến các kỹ thuật đo lường và phân tích. Chúng được tự động hóa trong một công cụ kiểm thử. Chức năng và hoạt động của công cụ kiểm thử được mô tả trong ISO/IEC 20085 (Tất cả các phần). Các nội dung tiếp theo sẽ cung cấp cho độc giả thông số kỹ thuật cho các công cụ kiểm thử tấn công không xâm lấn và cung cấp thông tin về cách vận hành các công cụ đó. Mục đích của các công cụ kiểm thử là thu thập các dấu hiệu (tức là rò rỉ kênh kề) và phân tích chúng như một cuộc tấn công không xâm lấn, IUT (triển khai kiểm thử) trên mô-đun mật mã.
CÁC CÔNG CỤ KIỂM THỬ
Yêu cầu chung
ISO/IEC 20085 (tất cả các phần) liên quan đến TCVN 12212:2018 (ISO/IEC 17825:2016), quy định các chỉ số kiểm thử giảm thiểu tấn công không xâm lấn để xác định sự phù hợp với các yêu cầu được quy định trong TCVN 11295:2016 (ISO 19790:2012) đối với mức an toàn 3 và 4. Các chỉ số kiểm thử liên kết với các chức năng an toàn được quy định trong TCVN 11295:2016 (ISO 19790:2012). Bài báo này cũng liên quan đến tiêu chuẩn ISO/IEC 20085-2, trong đó nêu chi tiết cách hiệu chuẩn công cụ kiểm thử để điều chỉnh theo các yêu cầu (giá trị ngưỡng, đối với mức an toàn 3 và 4) của TCVN 12212:2018 (ISO/IEC 17825:2016).
Các loại kênh kề
Yêu cầu chung TCVN 12212:2018 (ISO/IEC 17825:2016), mục 6, chỉ định ba loại kênh kề liên quan đến các cuộc tấn công không xâm lấn, đó là: Tiêu thụ năng lượng khi IUT, Phát xạ điện từ khi IUT, Thời gian tính toán khi IUT. Các kênh kề này được đo một cách thụ động trong phạm vi tác động IUT không bị công cụ đo lường làm nhiễu.
- Năng lượng tiêu thụ: Năng lượng kênh kề có thể được đo bằng nhiều phương tiện khác nhau. Các phép đo điện năng tiêu thụ đặc trưng bởi sự khác nhau giữa điện áp đo được.
- Phát xạ điện từ: Phép đo được biểu thị bằng sự chênh lệch điện áp được đo bởi một ăng-ten. Do đó, phép đo có thể được thực hiện từ xa và không cần tiếp xúc với mô-đun mật mã.
- Thời gian tính toán: Phép đo được biểu thị bằng sự khác biệt về thời gian cho hoạt động mật mã đã chọn, thu được dưới dạng phép trừ thời gian tương ứng với các tài nguyên mật mã cho các trình kích hoạt (bắt đầu và kết thúc).
Phân loại công cụ kiểm thử
Các công cụ kiểm thử có thể được phân loại rộng rãi thành hai loại: “Được lắp ráp trong phòng thử nghiệm” và “Ứng dụng cụ thể”.
- Đối với các dụng cụ được lắp ráp trong phòng thử nghiệm, công cụ kiểm thử tấn công không xâm lấn được lắp ráp từ hai hoặc nhiều sản phẩm thương mại bán sẵn (COTS), mỗi sản phẩm có thể có một mục đích khác trong phòng thử nghiệm.
- Công cụ ứng dụng cụ thể, cũng có thể có sẵn các phép đo dành riêng cho các sản phẩm COTS và yêu cầu của ISO/IEC 20085 (tất cả các phần). Chúng không thể được sử dụng cho các nhiệm vụ kiểm thử khác trong phòng thử nghiệm.
Các thành phần của công cụ kiểm thử
- Yêu cầu chung: Một công cụ kiểm thử được cấu thành từ: công cụ đo lường và công cụ phân tích. Yêu cầu về chúng được trình bày chi tiết trong điều khoản dưới đây.
- Công cụ đo lường: Công cụ đo lường được yêu cầu để thu thập các kênh kề phát ra từ IUT. Phải có ít nhất hai phép đo: thời gian (kênh kề phương ngang) và điện áp/điện từ trường (kênh kề phương dọc). Các công cụ đo lường có thể là hai công cụ riêng biệt, tức là một bộ đếm thời gian và một bộ số hóa. Cả hai chức năng có thể được biểu thị bằng một công cụ duy nhất (ví dụ: máy hiện sóng), có thể đo các đại lượng phương dọc cũng như tính thời gian như một “chức năng” nổi bật. Việc thiết lập như vậy có thể thực hiện tất cả các kiểm thử được tìm thấy trong ISO/IEC 20085 (tất cả các phần) nối tiếp nhau mà không cần cấu hình thiết lập lại phần cứng. Giải pháp một công cụ được khuyến nghị vì thuận tiện hơn cho Kiểm thử viên và hỗ trợ độ chính xác vì các điều kiện kiểm thử được duy trì không thay đổi trong toàn bộ quy trình kiểm thử. Công cụ đo lường như vậy phải phản ánh các hoạt động nội bộ được thực hiện trong IUT. Ví dụ, kênh kề phương ngang sẽ liên quan đến con số tính toán cần thiết, trong khi kênh kề phương dọc sẽ hiển thị khi một tham số an toàn quan trọng (CSP) được sử dụng. Trong trường hợp thứ hai này, CSP có thể ảnh hưởng trực tiếp đến kênh kề phương dọc hoặc gián tiếp, ví dụ: nó được trộn với các phần của bản rõ/bản mã (giả sử hoạt động trong mã hóa đối xứng). Kênh kề phương ngang có thể được đo bằng khoảng thời gian giữa một yêu cầu và một phản hồi. Tuy nhiên, độ trễ không thể đoán trước có thể làm giảm S/N của phép đo đó. Một tùy chọn chính xác hơn bao gồm tính thời lượng hoạt động từ một dấu vết kênh kề phương dọc. Trong trường hợp này, khoảng thời gian thực tế có thể được đo lường. Cảm biến liên quan là một bộ đếm thời gian. Các yêu cầu kiểm thử được liệt kê trong ISO/IEC 17825 yêu cầu độ phân giải nhỏ hơn hoặc bằng tần số đồng hồ của mô-đun mật mã được tạo thành hoặc được nhúng trong IUT. Kênh kề phương dọc có thể được đo tổng thể hoặc cục bộ. Phép đo toàn bộ kênh kề phương dọc bao gồm việc thu được một đại lượng tổng hợp, ví dụ: tổng năng lượng tiêu thụ trong IUT toàn bộ.
Phương pháp này rất thích hợp cho các mô-đun chip đơn. Phép đo kênh kề phương dọc toàn bộ bao gồm IUT việc sử dụng một cảm biến nhỏ, được đặt ở các vị trí khác nhau xung quanh hoặc IUT bên trong, nơi S/N mạnh hơn. Quy trình này được gọi là lập bản đồ (xem chi tiết trong A.8). Đây là phương pháp được ưu tiên để xác định vị trí thuận lợi nhất trong trường hợp IUT một mô-đun nhiều chip. Cảm biến sẽ phải thăm dò thông tin bị rò rỉ mà không cần IUT can thiệp vào. Ví dụ về các cảm biến như vậy là:
- Ăng ten (kích thước hiển vi, cực nhỏ hoặc nhìn thấy được bằng mắt) đo điện từ trường của IUT phát ra;
- Một đầu dò dòng điện đặt trên cáp thông tin hoặc cáp nguồn trong IUT có thể đo độ rò rỉ bên ngoài ranh giới của IUT. Các phân tích như vậy bao gồm mật mã phi đối xứng trong đó tham số an toàn được cập nhật theo mỗi hoạt động mật mã hoặc mật mã đối xứng có thể được phân tích bằng cách sử dụng một cuộc tấn công được mô tả (còn được gọi là cuộc tấn công "mẫu"). Về phân tích kênh kề phương dọc, S/N có thể được nâng cao bằng cách thêm nhiều dấu vết hơn. Nếu tiếng ồn không phụ thuộc vào phép đo này sang phép đo tiếp theo, thì S/N (năng lượng) sẽ tăng tuyến tính với số lần đo. Do đó, chất lượng thiết lập có thể được đổi lấy cho nhiều phép đo hơn trong phân tích kênh kề phương dọc. Ngoài ra, phân tích kênh phương dọc yêu cầu các dấu vết phải được căn chỉnh thích hợp, nếu không, độ tương phản của phân tích sẽ giảm.
Cách thức hoạt động truyền thống ngay cả khi phân tích phương ngang và phương dọc được quy định:
- Trước tiên tiến hành phân tích theo phương ngang: nếu luồng điều khiển phụ thuộc vào khóa thì có khả năng khai thác được ở giai đoạn này;
- Nếu không, luồng điều khiển không phụ thuộc vào nguyên liệu làm khóa, do đó các dấu vết được căn chỉnh (theo thiết kế), đây là một tình huống thuận lợi cho các phân tích kênh kề phương dọc. Các điều kiện môi trường phải được giám sát cẩn thận trong quá trình đo. Các điều kiện môi trường bên ngoài phải được kiểm soát vì chúng có thể ảnh hưởng đến các thay đổi phát ra kênh kề trong quá trình đo; nhiệt độ và điện áp nguồn phải được giám sát như quy định trong tiêu chuẩn TCVN 11295:2016 (ISO/IEC 19790:2012). Dụng cụ đo phải ổn định. Ví dụ: một số máy hiện sóng yêu cầu một khoảng thời gian khởi sưởi ấm khi khởi động để thực hiện các phép đo có thể lặp đi lặp lại và chính xác. Một cách đối xứng, IUT phải được cấp nguồn đủ trước để nó đạt đến trạng thái ổn định, cho phép thực hiện các phép đo với chiều hướng ít nhiễu nhất có thể.
Đo năng lượng tiêu thụ, phát xạ điện từ và thời gian tính toán có thể được thực hiện như giải thích dưới đây:
− Các phép mức tiêu thụ năng lượng điện được thực hiện qua một đầu dò dòng điện hoặc một dây dẫn được đặt nối đất (ground) (hoặc nguồn điện áp) vào giữa phép đo trong IUT. Dây dẫn có thể là điện trở (hoặc điện dung hoặc điện trở kháng tương ứng), trong trường hợp đó phép đo là hiệu điện thế, tỷ lệ với dòng điện tạo bởi điện trở (hoặc tương ứng, tỷ lệ với tích phân hoặc đạo hàm của nó). Tín hiệu thu được có thể được khuếch đại. Tùy thuộc vào thuật toán được nhắm làm mục tiêu, dấu vết: Có thể tập trung vào các chu kỳ xung nhịp đầu tiên (hoặc cuối cùng) của hoạt động mật mã (trường hợp ASCA về mật mã đối xứng, trong đó bản rõ (hoặc bản mã) được biết đến); Bao gồm toàn bộ hoạt động, như trường hợp của HA trên mật mã phi đối xứng.
− Đối với công suất tiêu thụ, tín hiệu điện từ có thể được khuếch đại. Vị trí của đầu dò là một thông số quan trọng. Để tối ưu hóa S/N, lập bản đồ có thể được thực hiện. Nó có thể quét qua khuôn đúc chip hoặc toàn bộ bảng mạch in (PCB), bao gồm cả các tụ điện tách rời.
− Phép đo thời gian tính toán có thể được thực hiện theo nhiều cách khác nhau. Tùy chọn đầu tiên là sự khác biệt về thời gian hoạt động giữa thời điểm khởi chạy và kết quả được trả về. Một lựa chọn thứ hai là sự khác biệt về thời gian giữa các mô-đun mật mã bắt đầu và dừng, được quan sát ví dụ từ dấu vết kênh kề đa biến số, có thể là nguồn điện hoặc kênh kề điện từ. Về mặt này, phép đo bao gồm quá trình hậu xử lý công suất hoặc phép đo phát xạ điện từ.
Công cụ phân tích
Công cụ phân tích được tạo thành từ ba thành phần. Thành phần đầu tiên kiểm soát quá trình đo lường. Đây là một nhiệm vụ tự động hóa có thể được thực hiện theo một số cách, ví dụ: thông qua một ngôn ngữ kịch bản hoặc thông qua việc sử dụng một chương trình nâng cao hơn. Điều khiển này có thể chỉ cần yêu cầu dấu vết một cách tuần tự. Tuy nhiên, khi cần một số lượng lớn phép đo, phép đo hàng loạt có thể hữu ích (tham khảo A.7). Thành phần thứ hai là hậu xử lý dữ liệu trong đó các phép đo được ghi lại, được điều chỉnh để:
- Loại bỏ các dấu vết bất thường (các dấu vết không hợp lệ rõ ràng được xác định là các ngoại lệ được lọc ra);
- Căn chỉnh bằng cách sử dụng các điểm quan tâm trong các dấu vết (bước này là tự nhiên đối với các cuộc tấn công phương dọc; tuy nhiên, nó cũng có lợi cho các cuộc tấn công phương ngang khi dấu vết thu được từ mức trung bình của các hoạt động giống hệt nhau);
- Giảm kích thước, nhờ phân tích thành phần chính (PCA), phân tích biệt thức tuyến tính (LDA) hoặc kiểm thử phương sai để nén dữ liệu, thống kê (ví dụ: hàm mật độ xác suất) đơn giản hóa và giảm tải tính toán;
- Cho phép tổng hợp dữ liệu, đặc biệt trong trường hợp đa cảm biến hoặc nhiều phương thức (ví dụ: phép đo đồng thời công suất và điện từ trường). Việc xử lý hậu kỳ như vậy thường được thực hiện bởi một chương trình phần mềm. Nó có thể yêu cầu một bộ nhớ đệm của các phép đo. Mục đích của bộ đệm là cung cấp bộ nhớ tạm thời cục bộ của một phần hoặc tất cả các phép đo. Thành phần thứ ba phân tích dữ liệu được hậu xử lý để xác định bất kỳ cuộc tấn công hợp lệ nào. Phương pháp luận được giải thích trong ISO/IEC 17825. Mục tiêu của công cụ này là xác minh rằng phép đo và phân tích đã được thực hiện đúng cách. Nó bao gồm một cuộc tấn công khôi phục CSP, trong đó CSP thu được được kiểm tra tính nhất quán với các bản rõ/bản mã đã biết.
Các hạng mục chức năng của thành phần công cụ kiểm thử
Công cụ đo lường bao gồm các mục sau đây:
- Đầu dò: là cảm biến đo tín hiệu. Ví dụ về các tín hiệu là điện áp, dòng điện, điện từ trường, thời gian, phát xạ photon,... Chúng nhằm mục đích thu thập các tín hiệu thô.
- Bộ khuếch đại: sử dụng phóng đại tín hiệu. Trong một số trường hợp của công cụ kiểm thử, tín hiệu thô được định lượng (tức là số hóa), do đó động lực học của nó phải lớn hơn bước định lượng, đồng thời vẫn nằm trong phạm vi của công cụ lấy mẫu.
- Bộ lọc vật lý: các tín hiệu đo được thường bị nhiễu. Bộ lọc vật lý do đó có thể loại bỏ các phần của tiếng ồn, đồng thời giữ lại phần lớn tín hiệu. Ví dụ, nếu tín hiệu chủ yếu nằm ở một tần số trung tâm, thì các bộ lọc vật lý có thể cắt hoặc làm suy giảm các tần số khác, những tần số này được cho là chỉ truyền tải tiếng ồn. Do đó, mục tiêu của việc chèn các bộ lọc vật lý là để tăng S/N.
- Bộ số hóa và cơ sở thời gian (cả hai có thể được kết hợp trong một sản phẩm COTS, chẳng hạn như máy hiện sóng): bộ số hóa chuyển tín hiệu tương tự thành tín hiệu kỹ thuật số và hoạt động cùng với cơ sở thời gian (riêng biệt hoặc tích hợp) để thiết lập tốc độ mẫu đo.
- Lưu giữ dấu vết thu thập được: các dấu vết thu được có thể được lưu giữ trong một khung nhìn để phân tích sau đó. Bộ nhớ có thể là tệp, cơ sở dữ liệu, bộ đệm bộ nhớ,...
Công cụ phân tích bao gồm các mục sau:
- Lưu giữ dấu vết: đây là kho lưu giữ các dấu vết, bây giờ được coi là đầu vào cho phân tích, được lưu lại. Bộ lưu giữ này có thể được tách biệt hoặc dùng chung với bộ lưu giữ của công cụ đo lường.
- Xử lý lọc: nhiễu trong các vết cũng có thể được loại bỏ sau các phép đo. Đây là vai trò của bộ lọc. Ví dụ như lọc kỹ thuật số, với các bộ lọc đáp ứng xung hữu hạn (FIR), có tần số thấp (trong thực tế, tiếng ồn thường nằm ở tần số lớn).
- Phân tích móc xích: việc thiết lập đo lường có thể phức tạp. Do đó, điều quan trọng là phải hiểu cái gọi là "kênh đo lường", chẳng hạn như để xử lý các phép đo một cách liên quan.
- Phân tích tần số: xảy ra trường hợp khó nhận ra tín hiệu trong các phép đo. Phân tích tần số thời gian có thể giúp định vị tín hiệu theo thời gian và theo tần số chính của nó. Ví dụ như các hình phổ và vô số các biểu đồ tỷ lệ khác nhau (tùy thuộc vào sóng mẹ).
- Công cụ căn chỉnh: các cuộc tấn công theo phương dọc yêu cầu các dấu vết phải được căn chỉnh về thời gian. Nếu không, có thể thiết kế lại chúng dựa trên một quá trình hậu xử lý, khai thác các điểm tương đồng trong các dấu vết để phù hợp với chúng về mặt thời gian. Ngoài ra, các dấu vết có thể được căn chỉnh bằng cách phân tích một tín hiệu khác, tín hiệu này sẽ phản ánh hoạt động bên trong của hệ thống (ví dụ: bộ đếm lệnh, thông tin từ hệ điều hành,…).
- Phân tích thống kê: các tín hiệu có thể là đầu vào của một bài kiểm thử thống kê để phát hiện rò rỉ hoặc để tương quan giữa chúng với một mô hình phụ thuộc bí mật. Những phân tích này nhằm mục đích định lượng lượng rò rỉ che giấu trong các dấu vết đo được. Theo tùy chọn, phân tích thống kê có thể bao gồm khả năng trích xuất bí mật như trong một cuộc tấn công thực sự.
HOẠT ĐỘNG KIỂM THỬ
Có hai tập hợp là: Phép đo đơn hợp lệ cho các kiểm thử phân tích điện năng đơn giản (SPA), bộ kiểm thử thứ hai được đề cập trong TCVN 12212:2018 (ISO/IEC 17825:2016); Nhiều phép đo, cho phép “ASCA” bắt buộc đối với tất cả các kiểm thử khác, cụ thể là phân tích tương quan thời gian và phân tích vi sai năng lượng (DPA), là bộ kiểm thử đầu tiên và thứ ba được đề cập trong TCVN 12212:2018 (ISO/IEC 17825:2016).
Khi tiến hành các kiểm thử SPA, nếu S/N kém do điều kiện môi trường, thì phòng thử nghiệm có thể bù đắp điều này bằng cách thu thập một số phép đo cho một đầu vào với mục đích duy nhất là cải thiện S/N. Phép thử phải được lặp lại ít nhất một lần bằng cách lặp lại cùng một thao tác cách nhau 6 giờ, 12 giờ hoặc 24 giờ. Trong cả hai trường hợp, dụng cụ đo và IUT phải được duy trì đồng bộ. Quy trình thu thập bao gồm các bước sau:
- Thiết lập công cụ đo lường để sẵn sàng thu thập dữ liệu khi được kích hoạt;
- Yêu cầu một hoạt động (có thể là một hoạt động hàng loạt) từ IUT;
- Thu thập dữ liệu;
- Lưu giữ dữ liệu;
- Chuyển dữ liệu sang công cụ phân tích, để lưu cục bộ tạm thời hoặc để hậu xử lý. Bộ kích hoạt có thể là đầu vào thứ hai của công cụ đo lường hoặc chính tín hiệu (ví dụ: mức của nó hoặc một loạt các mức khác nhau với thời gian chờ giữa chúng). Trong trường hợp thứ hai, đòi hỏi một kênh duy nhất của công cụ đo lường.
Tương tác giữa công cụ đo lường và IUT
Công cụ đo lường và IUT tương tác bằng cách trao đổi các lệnh để kích hoạt mô-đun mật mã và bằng cách đo kênh kề trong quá trình hoạt động của mô-đun mật mã. Giao diện cho các lệnh hiện diện trong các giao diện lập trình ứng dụng (API) nói chung với các quy ước mã hóa dữ liệu không đồng nhất, đặc biệt, kiểu dữ liệu thường phụ thuộc vào nền tảng. Do đó, giao diện sẽ xử lý định dạng dữ liệu di động. Bên cạnh đó, một vài dịch chuyển có thể bao gồm các dấu vết dài (đa biến số cao). Sự tương tác được hưởng lợi từ một giải pháp ở đầu công cụ đo lường có khả năng tuần tự hóa lượng lớn dữ liệu một cách hiệu quả. Dữ liệu đo có thể được tùy chọn lưu giữ bởi công cụ đo lường trước khi được xử lý bởi lớp số liệu an toàn (ví dụ: TCVN 12212:2018 (ISO/IEC 17825)). Nó có thể được lưu dưới dạng dấu vết thô hoặc trong cơ sở dữ liệu. Tùy chọn thứ hai này cho phép truy cập nhanh với lập chỉ mục dữ liệu được tối ưu hóa.
Tương tác giữa công cụ phân tích và IUT
Các công cụ phân tích cần có quyền truy cập vào dữ liệu đầu vào hoặc đầu ra từ IUT, chẳng hạn như bản rõ hoặc bản mã. Thông tin này là cần thiết để tiến hành hầu hết các cuộc tấn công không xâm lấn (ngoại trừ cái gọi là cuộc tấn công mù quáng - blind attacks).
Tương tác giữa công cụ phân tích và công cụ đo lường
Lưu ý rằng không phải lúc nào cũng cần sự đồng bộ giữa công cụ đo lường và công cụ phân tích. Có một sự tương tác khi phân tích được thực hiện một cách nhanh chóng.
KẾT LUẬN
TCVN XXXX:2023 do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề nghị, Uỷ ban Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố. Bài viết đã giới thiệu tổng quan nội dung của TCVN XXXX:2023, quy định về yêu cầu về công cụ kiểm thử và phương pháp hiệu chuẩn công cụ kiểm thử để sử dụng trong kiểm thử các kỹ thuật giảm thiểu tấn công không xâm lấn trong mô-đun mật mã, công cụ và kỹ thuật kiểm thử.