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 các phương pháp mã hóa cũng như các giao thức mật mã [1] mà chưa đề cập đến việc các thiết bị phần cứng đầu cuối có thể bị tấn công. Do đó hiện nay, việc nghiên cứu các dạng tấn công vào thiết bị đầu cuối nói chung và tấn công kênh kề đang được thúc đẩy trên thế giới.
[2] (Side Channel Attack) là một dạng tấn công vào các thông tin trên thiết bị được mã hóa. Khái niệm "thông tin" trong tấn công kênh kề thường đề cập đến khóa bí mật của một thuật toán mã hóa. Kiểu tấn công này được thực hiện bằng cách giám sát đầu ra vật lý của thiết bị (chẳng hạn như điện năng tiêu thụ, thời gian cần thiết để thực hiện các thuật toán, phát nhiệt, ánh sáng và âm thanh). Hình 1 thể hiện các dạng rò rỉ dùng trong tấn công kênh kề.
Hình 1. Các dạng rò rỉ dùng trong tấn công kênh kề
Có một số dạng tấn công hay được sử dụng là và tấn công năng lượng. Trong đó, tấn công thời gian thường được sử dụng trong tấn công các hệ mật khóa đối xứng. Xuất phát từ các hệ mật mã khóa công khai thường mất một khoảng thời gian khác nhau để xử lý các đầu vào khác nhau. Hình 2 thể hiện đặc trưng về mặt thời gian của
Hình 2. Phân tích vệt năng lượng theo tấn công thời gian
Tấn công theo phân tích năng lượng dựa trên sự tương quan giữa dòng điện do bộ vi xử lý tạo ra bởi các lệnh hoặc dữ liệu đang được xử lý. Trong tấn công phân tích năng lượng đ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 bo mạch FPGA chạy được thể hiện trong Hình 3. Trong SPA khó có thể tấn công tìm ra được khóa bí mật, tuy nhiên lại rất có ích cho việc phát hiện được thuật toán mã hóa đang chạy trên bo mạch.
Hình 3. Vệt năng lượng của thuật toán AES-128 cài đặt trên bo mạch FPGA
Trong tấn công năng lượng vi sai (Differential Power Analysis - DPA), cần thu thập một số lượng lớn các vệt, chia chúng thành hai tập con và tính giá trị trung bình của mỗi tập con. Trong trường hợp có sự chênh lệch, khi LSB là 0 và LSB là 1, sự vi sai trung bình giữa hai tập hợp con sẽ làm nổi bật sự thay đổi trong tiêu thụ điện năng.
Phân tích năng lượng tương quan (Correlation Power Analysis - CPA) mục tiêu là tạo ra chính xác mô hình năng lượng của thiết bị bị tấn công. Mục đích của tấn công CPA là để tìm ra mối tương quan giữa năng lượng dự đoán và năng lượng thực tế của một thiết bị. Nếu mô hình công suất là chính xác thì cần chứng minh mối tương quan chặt chẽ giữa năng lượng dự đoán và năng lượng thực tế.
Cả DPA và CPA đều có thể tấn công thành công và tìm được khóa chính xác. Mặc dù tấn công DPA cho thấy rằng khả năng cao nhất của đồ thị là đoán khóa chính xác, nhưng mức độ tạp âm lớn hơn nên có khả năng làm cho khóa khó tìm được hơn. Nếu so sánh song song các kết quả được tạo ra bởi DPA và CPA, cho thấy CPA có thể tạo ra các kết quả phỏng đoán khóa đơn giản hơn từ góc độ phân tích, do không bị tạp âm so với tính giá trị DPA.
Tiếp theo, nhóm tác giả sẽ trình bày sơ lược về kết quả thực hành tấn công kênh kề lên mã khối Kalyna trên hệ thống Analyzr của Viện Khoa học - Công nghệ mật mã. Hệ thống Analyzr có thể đánh giá tính bảo mật của các hệ thống mật mã. Nó cho phép thực hiện tấn công kênh kề lên các thiết bị nhúng, SmartCard, mạch sử dụng chip FPGA,...
Hệ thống này cho phép truy cập vào các phân tích tiên tiến nhất về các đối xứng và bất đối xứng. Để thực hiện tấn công kênh kề trên hệ thống Analyzr cần thực hiện các công đoạn sau:
Công đoạn 1: Thu thập và chuẩn bị dữ liệu
Để thực hiện công đoạn này đòi hỏi người thực hiện có những hiểu biết về hệ thống phân tích kênh kề, để tiến hành thu thập vệt năng lượng trên bo mạch nhúng thông qua bức xạ điện từ. Việc đo đạc được tiến hành bởi các thiết bị đang được trang bị trên phòng thí nghiệm. Các vệt năng lượng được bắt qua máy hiện sóng có kết nối với máy tính để điều khiển việc chụp vệt tự động và đảm bảo việc thu thập vệt với số lượng lớn vết năng lượng.
Công đoạn 2: Đo đạc
Để thực hiện công đoạn này người thực hiện phải có những hiểu biết phương pháp đặt trigger trong quá trình tấn công. Tốc độ lấy mẫu sẽ quan trọng đáng kể khi xử lý các mối tương quan rất nhỏ, mối quan tâm chính đối với CPA là tỷ lệ tín trên tạp đáng kể so với các nguồn nhiễu khác. Tương tự, giới hạn băng thông có thể giúp loại bỏ các tạo tác tần số cao không mong muốn để giảm thiểu lượng dữ liệu không liên quan được thu thập. Đây thường là công đoạn tốn nhiều thời gian nhất của CPA.
Công đoạn 3: Xử lý dữ liệu
Công đoạn này đòi hỏi những hiểu biết về xử lý tín hiệu. Sau khi vệt năng lượng đã được thu thập ở dạng số, quá trình xử lý tín hiệu số có thể được cải thiện đáng kể. Việc lọc tín hiệu số ở giai đoạn này cũng có thể giúp giảm nhiễu và tập trung vào các phần của phổ tín hiệu nơi có tín hiệu rò rỉ. Một chiến lược đơn giản khác để giảm tạp âm là thu thập nhiều vệt trong khi một thao tác giống hệt nhau được lặp lại, sau đó tính trung bình cộng các vệt này lại với nhau. CPA có thể là một kiểu tấn công đòi hỏi nhiều dữ liệu, đặc biệt khi được thực hiện với một số lượng rất lớn các vệt, mỗi vệt chứa một số lượng lớn các điểm đo lường.
Công đoạn 4: Phân tích
Đây là công đoạn quan trọng, đòi hỏi những hiểu biết về thuật toán mã khối cần tấn công cũng như . Nhóm tác giả tiến hành một cuộc tấn công CPA vào mã hóa Kalyna bằng cách sử dụng vệt năng lượng Kalyna mà nhóm đã thu được. Nhóm tiến hành bắt vệt năng lượng tại đầu ra của S-box đầu tiên:
Bước 1: Chọn giá trị trung gian
Tiến hành chọn một biến trung gian được xử lý trong thuật toán. Giá trị trung gian được tính là f(d, k). Trong đó, d là một giá trị cố định đã biết có thể được lấy từ dữ liệu đã biết (ví dụ: bản gốc) và k là một phần nhỏ của khóa.
Bước 2: Đo năng lượng
Đo mức bức xạ năng lượng của thiết bị mã hóa trong khi mã hóa/giải mã khối dữ liệu D. Cần biết giá trị d tương ứng với mỗi khối dữ liệu. Các giá trị này có thể được viết dưới dạng một vectơ d = [d1 , d2 , …, dD]. Tín hiệu bức xạ năng lượng cho một hoạt động mã hóa/giải mã đơn lẻ được gọi là vệt năng lượng. Vệt là đại lượng ghi lại mức bức xạ năng lượng tức thời trong thời gian quan tâm (thời điểm giá trị trung gian đang được xử lý). Dấu vết được tạo ra trong khi mã hóa/giải mã khối dữ liệu i, bao gồm T mẫu và có thể được xem dưới dạng một vectơ ti = [ti,1, ti,2,… , ti,T]. Các dấu vệt được xếp chồng lên nhau trong một ma trận T có kích thước D×T, mỗi hàng i là một dấu vết được tạo ra trong khi mã hóa/giải mã khối i.
Hình 4. Vệt năng lượng của thuật toán Kalyna trên bo mạch nhúng
Hình 5. 10 vệt năng lượng của thuật toán Kalyna trên bo mạch nhúng
Bước 3: Tính toán trung gian giả định
Tiếp theo, cần đoán phần quan trọng, cần tính toán giá trị trung gian cho việc đoán khóa. Liệt kê tất cả các khóa con có thể dưới dạng một vectơ k = [k1 , k2 ,…, kK]. Sau đó, tính giá trị trung gian f(d, k) cho tất cả các giá trị trong vectơ d và k. Kết quả được lưu trữ trong ma trận D×K. Trong đó: Vi,j = f(di , kj ) và i = 1, 2, …, D và j = 1, 2 …, K.
Lưu ý rằng mỗi cột trong V là giá trị trung gian được tính cho tất cả các giá trị dữ liệu d cho một lần đoán khóa.
Bước 4: Tính toán giả thuyết
Dựa vào ma trận giá trị trung gian V, nhóm tác giả ước tính mức tiêu thụ điện năng khi mỗi giá trị trong V được xử lý trong thiết bị. Mô hình Trọng số Hamming (HW) là mô hình năng lượng được sử dụng rộng rãi, mô hình này đếm những bit 1 trong chuỗi bit, đếm số bit bị lật khi giá trị của một biến (Ví dụ: thanh ghi) thay đổi. Đó là HD(x, y) = x XOR y. Kết quả là một ma trận D×K được gọi là H. Đây là các kích thước giống như ma trận V.
Bước 5: Công suất tương quan giả định và vệt năng lượng thực tế
Tính tương quan H và T để tìm khóa. Nhóm đã sử dụng thuật toán tương quan lấy hai vectơ làm đầu vào và trả về một số thực để đo mức độ “giống nhau” của các vectơ. Mỗi cột i trong H được so sánh với cột j trong ma trận theo dõi T. Kết quả được lưu trữ trong ma trận tương quan R là ma trận K×T. Lưu ý rằng cột i trong ma trận H là công suất giả định nếu ki được sử dụng trong thiết bị và cột j trong T là phép đo công suất thực tại mẫu j cho tất cả các khối dữ liệu. Phần tử Ri,j đo mức độ giống nhau của cột i trong H với cột j trong T. Chỉ số của phần tử cao nhất trong ma trận Rck,ct là chỉ số trong của khóa và mẫu trong thời gian của khóa được cho là đúng, vì nó chỉ ra rằng các cột tương ứng trong H và T giống nhau nên có khả năng khóa đoán đã thực sự được sử dụng trong thiết bị.
Nhóm tiến hành tấn công thuật toán Kalyna cài đặt trên bo mạch Nucleo 64. Sau khi có được tệp vệt năng lượng khi thuật toán mã hóa Kalyna cài đặt trên bo mạch nhúng Nucleo 64. Nhóm tác giả tiến hành phân tích tìm lại khóa bí mật của thuật toán Kalyna.
Tấn công CPA yêu cầu rất cao về mặt đồng bộ giữa các vệt cho nên nếu các vệt không được đồng bộ thì khó có thể thực hiện được quá trình tấn công lên thuật toán. Trên Hình 5 là giá trị của 10 vệt năng lượng được xếp chồng lên nhau. Có thể thấy rằng các vệt năng lượng này được đồng bộ với nhau và có rất ít sự sai lệch ảnh hưởng đến quá trình phân tích ở phía sau. Sau khi thu được tệp vệt đã xử lý đồng bộ, nhóm tác giả tiến hành các bước phân tích CPA để tìm ra khóa.
Key = 74 ad 9b d0 22 14 2e db 81 35 f9 87 44 30 29 76
Res = 74 ad 9b d0 22 14 2e db 81 35 f9 87 44 30 28 76
Với tệp dữ liệu gồm 500 vệt năng lượng, nhóm tác giả có thể tấn công thành công 15/16 byte khóa bí mật. Tuy nhiên, đối với giá trị Key 14 có thể tấn công thành công thông qua việc tăng số lượng vệt thu được có thể giúp cho tấn công thành công 100%.
Hình 6. Kết quả tấn công tìm các byte khóa bí mật của thuật toán Kalyna
Nhóm tác giả đã tấn công và khôi phục đúng 15 byte trên tổng số 16 byte khóa của thuật toán Kalyna cài đặt trên bo mạch Nucleo 64. Qua đó có thể cho thấy hiệu quả của các dạng tấn công kênh kề nói chung và dạng tấn công CPA lên mật mã khối Kalyna, khi có thể tìm thành công 15/16 byte khóa bí mật. Nhóm tác giả đã xây dựng chương trình thực thi mã hóa Kalyna cài đặt trên bo mạch Nucleo 64, thiết lập quá trình thu thập vệt năng lượng trên hệ thống Analyzr để tạo tệp vệt năng lượng. Từ tệp vệt thu được, nhóm tác giả đã thực hiện tấn công CPA lên tệp vệt như đã trình bày ở trên. Nghiên cứu cho thấy rằng tấn công kênh kề hiện là một dạng tấn công nguy hiểm và cần nghiên cứu sâu hơn để từ đó có các biện pháp bảo vệ thuật toán mật mã chống lại dạng tấn công này.
TÀI LIỆU THAM KHẢO [1]. [2]. Kocher P., Jaffe J., Jun B., et al., Introduction to differential power analysis, Journal of Cryptographic Engineering, 2011. |
TS. Đinh Quốc Tiến, Phạm Hà Hải (Viện Khoa học - Công nghệ mật mã)
09:00 | 18/08/2021
14:00 | 11/09/2024
14:00 | 03/10/2009
14:00 | 29/10/2020
14:00 | 11/09/2024
Keylogger là phần cứng hoặc phần mềm có khả năng theo dõi tất cả các hoạt động thao tác nhập bàn phím, trong đó có các thông tin nhạy cảm như tên người dùng, mật khẩu thẻ tín dụng, thẻ ngân hàng, tài khoản mạng xã hội hay các thông tin cá nhân khác. Keylogger thậm chí có thể ghi lại các hành động gõ phím từ bàn phím ảo, bao gồm các phím số và ký tự đặc biệt. Bài báo sẽ hướng dẫn độc giả cách thức phát hiện và một số biện pháp kiểm tra, ngăn chặn các chương trình Keylogger nhằm bảo vệ máy tính trước mối đe dọa nguy hiểm này.
08:00 | 12/03/2024
Lộ thông tin thẻ tín dụng gây ra nhiều hệ lụy nghiêm trọng, nguy cơ mất tiền là rất cao. Bài báo giới thiệu một số cách thức giúp người dùng giảm nguy cơ khi phát hiện thông tin thẻ tín dụng bị lộ.
10:00 | 10/11/2023
Google đã thực hiện một bước quan trọng nhằm tăng cường bảo mật Internet của Chrome bằng cách tự động nâng cấp các yêu cầu HTTP không an toàn lên các kết nối HTTPS cho toàn bộ người dùng.
14:00 | 14/09/2023
NFT (Non-fungible token) là một sản phẩm của thời đại công nghệ mới và đang phát triển như vũ bão, ảnh hưởng sâu rộng đến nhiều lĩnh vực. Thị trường NFT bùng nổ mạnh mẽ vào năm 2021, tăng lên khoảng 22 tỷ USD và thu hút ước tính khoảng 280 nghìn người tham gia. Nhưng khi thị trường này phát triển, phạm vi hoạt động của tin tặc cũng tăng theo, đã ngày càng xuất hiện nhiều hơn các báo cáo về những vụ việc lừa đảo, giả mạo, gian lận và rửa tiền trong NFT. Bài báo sau sẽ giới thiệu đến độc giả tổng quan về NFT, các hành vi lừa đảo NFT và cách thức phòng tránh mối đe dọa này.
Triết lý an ninh mạng Zero Trust đặt ra nguyên tắc không có bất kỳ người dùng nào trong hoặc ngoài hệ thống mạng đủ tin tưởng mà không cần thông qua sự kiểm tra chặt chẽ về danh tính. Để triển khai Zero Trust hiệu quả, cần áp dụng các giải pháp công nghệ mạnh mẽ. Bài báo này sẽ trình bày những vấn đề cơ bản về Zero Trust.
10:00 | 25/10/2024
Nhằm trang bị cho người dân “vũ khí” chống lừa đảo trên không gian mạng, Cục An toàn thông tin (Bộ TT&TT) triển khai chiến dịch quốc gia với 5 nhóm kỹ năng thiết yếu, từ nhận biết dấu hiệu lừa đảo đến xử lý tình huống khi bị tấn công.
10:00 | 18/10/2024