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ã [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.
Tấn công kênh kề [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à tấn công thời gian 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 thuật toán RSA.
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 thuật toán mã hóa AES đượ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 thuật toán mật mã đố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ư phương pháp tấn công kênh kề. 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 [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
10:00 | 28/03/2024
Google Drive là một trong những nền tảng lưu trữ đám mây được sử dụng nhiều nhất hiện nay, cùng với một số dịch vụ khác như Microsoft OneDrive và Dropbox. Tuy nhiên, chính sự phổ biến này là mục tiêu để những kẻ tấn công tìm cách khai thác bởi mục tiêu ảnh hưởng lớn đến nhiều đối tượng. Bài báo này sẽ cung cấp những giải pháp cần thiết nhằm tăng cường bảo mật khi lưu trữ tệp trên Google Drive để bảo vệ an toàn dữ liệu của người dùng trước các mối đe dọa truy cập trái phép và những rủi ro tiềm ẩn khác.
15:00 | 19/02/2024
SoftEther là phần mềm xây dựng mạng riêng ảo (Virtual Private Network - VPN ) cho phép hoạt động ở lớp 2 trong mô hình OSI (lớp liên kết dữ liệu). SoftEther tích hợp nhiều giao thức VPN mà có thể hoạt động ở các lớp khác nhau, trong đó có giao thức SE-VPN hoạt động ở lớp 2. Bài viết này giới thiệu về giải pháp máy chủ VPN tích hợp SoftEther, cũng như trình bày về cách xử lý, đóng gói gói tin của giao thức SE-VPN được sử dụng trong máy chủ SoftEther.
18:00 | 22/09/2023
Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu thường nằm trong tầm ngắm của nhiều tin tặc. Ngày nay, các cuộc tấn công liên quan đến cơ sở dữ liệu để đánh cắp hay sửa đổi thông tin càng trở nên khó lường và tinh vi hơn, vì vậy việc quản lý cơ sở dữ liệu đặt ra những yêu cầu mới với các tổ chức, doanh nghiệp. Trong hệ thống phân tán, khi dữ liệu được phân mảnh và phân phối trên các vị trí khác nhau có thể dẫn đến khả năng mất toàn vẹn của dữ liệu. Thông qua sử dụng cây Merkle và công nghệ Blockchain ta có thể xác minh tính toàn vẹn của dữ liệu. Trong bài viết này, nhóm tác giả sẽ trình bày các nghiên cứu về ứng dụng cây Merkle và công nghệ Blockchain để bảo đảm tính toàn vẹn dữ liệu cho cơ sở dữ liệu phân tán, đồng thời đảm bảo hiệu năng của hệ thống.
10:00 | 08/08/2023
Bên cạnh việc phát triển không ngừng của các công nghệ, giải pháp an toàn thông tin được ứng dụng, triển khai trên hệ thống mạng của các tổ chức, doanh nghiệp, các hoạt động tấn công mạng vẫn không ngừng diễn ra và có sự gia tăng cả về số lượng, phạm vi, cách thức với tính chất ngày càng tinh vi. Cùng với việc sử dụng các kỹ thuật và công cụ để vượt qua các hàng rào bảo mật, tin tặc còn tìm cách để lẩn tránh điều tra số. Bài báo sẽ trình bày về một trong những kỹ thuật mà tin tặc thường sử dụng để chống lại các hoạt động điều tra số, đó chính là việc xóa bỏ các chỉ mục trên máy tính nạn nhân.
Bộ nhớ RAM là một trong những nơi chứa các thông tin quý báu như mật khẩu, khóa mã, khóa phiên và nhiều dữ liệu quan trọng khác khiến nó trở thành một trong những mục tiêu quan trọng đối với tin tặc. Tấn công phân tích RAM có thể gây tiết lộ thông tin, thay đổi dữ liệu hoặc khai thác các lỗ hổng bảo mật trong hệ thống, đây đang là một hình thức tấn công bảo mật nguy hiểm đối với dữ liệu, chúng tập trung vào việc truy cập, sửa đổi hoặc đánh cắp thông tin người dùng. Bài báo sau đây sẽ trình bày về các nguy cơ, phương pháp tấn công phân tích RAM và những biện pháp bảo vệ để ngăn chặn hoạt động tấn công này.
13:00 | 30/09/2024
Quy định Bảo vệ Dữ liệu chung (GDPR) của Liên minh châu Âu là văn bản pháp lý quan trọng, hình mẫu cho các nước, khu vực khác trong việc bảo vệ dữ liệu. Tuy nhiên, việc tuân thủ GDPR sẽ đòi hỏi các tổ chức phải đầu tư kinh phí bổ sung, tăng cường nhân lực dành cho xử lý dữ liệu. Dưới đây là hướng dẫn 12 bước triển khai GDPR cho tổ chức do Ủy ban Bảo vệ Dữ liệu công bố.
16:00 | 23/09/2024