TÌM HIỂU VÀ THỰC THI MẬT MÃ HẠNG NHẸ TRÊN RFID

67 9 0
TÌM HIỂU VÀ THỰC THI MẬT MÃ HẠNG NHẸ TRÊN RFID

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TÌM HIỂU VÀ THỰC THI MẬT MÃ HẠNG NHẸ TRÊN RFID Việc triển khai các thiết bị RFID ở môi trường không kiểm soát mà đối phương có thể truy cập vật lý tới thiết bị hoặc điều khiển thiết bị. Vì vậy khả năng an toàn của các thiết bị ngay từ việc cài đặt cần được hết sức chú trọng. Do các thiết bị như RFID có tài nguyên hạn chế cho nên việc áp dụng mật mã thông thường là quá lớn, quá chậm và tốn năng lượng. Các thuật toán mật mã hạng nhẹ khắc phục những nhược điểm này. Mục tiêu của mật mã hạng nhẹ là ứng dụng cho các thẻ thông minh, vi điều khiển… của các thiết bị, hệ thống giao thông thông minh và Internet of things (IoT)… RFID là các loại thẻ được thiết kế nhỏ gọn vì vậy việc chọn thuật toán nào an toàn, đảm bảo độ bảo mật và có khả năng tích hợp vào hệ thống là vấn đề cần thiết. Thuật toán mã hóa TEA (Tiny Encryption Algorithm) là một trong những thuật toán được nghiên cứu, sau đó đã được phát triển và đề xuất thuật toán XTEA phục vụ cho mục đích trên. Xuất phát từ lý do đó tôi chọn đề tài: “Tìm hiểu và thực thi mật mã hạng nhẹ trên RFID”. Đồ án gồm 3 chương cụ thể như sau: Chương 1: Tổng quan về công nghệ RFID Chương này trình bày khái quát về công nghệ RFID bao gồm khái niệm, lịch sử, ứng dụng, hoạt động và tính bảo mật của công nghệ RFID Chương 2: Mật mã hạng nhẹ ix Chương này trình bày tổng quan về mật mã hạng nhẹ, ứng dụng của mật mã hạng nhẹ, giới thiệu về thuật toán XTEA và ứng dụng trong RFID. Chương 3: Ứng dụng mã khối XTEA vào RFID Chương này sẽ giới thiệu module RC522 và tiến hành mã hóa giải mã dữ liệu trên thẻ RFID sử dụng thuật toán XTEA Về mặt cơ sở lý thuyết: • Tìm hiểu tổng quan về công nghệ RFID bao gồm thành phần, ứng dụng và ưu nhược điểm của công nghệ RFID. • Tìm hiểu về mật mã hạng nhẹ, lựa chọn một thuật toán mã hóa và đánh giá khả năng ứng dụng trên RFID. Kêt quả đạt được: • Tìm hiểu về RFID và khả năng ứng dụng trong thực tế. • Tìm hiểu về mật mã hạng nhẹ, thuật toán XTEA và khả năng ứng dụng trên RFID • Triển khai mô hình ứng dụng XTEA để mã hóa dữ liệu trên thẻ RFID. Hướng phát triển: Công nghệ RFID là một công nghệ đầy triển vọng phát triển và tính ứng dụng cao. Việc thực thi mật mã hạng nhẹ để tăng độ an toàn cho RFID được coi là lý tưởng và hoàn toàn có thể ứng dụng trong thực tế. Tuy nhiên, để có thể sử dụng trong các đơn vị thuộc hệ thống chính trị hoặc doanh nghiệp lớn, bên cạnh sử dụng mật mã để mã hóa dữ liệu, đòi hỏi thêm một số giải pháp bảo mật như xác thực, chống sao chép,…. Từ những nhận xét trên, em xin đề xuất hướng nghiên cứu tiếp theo để hoàn thiện hơn kết quả đạt được như sau: • Nghiên cứu thiết kế thẻ RFID tích hợp khả năng mã hóa và giải mã sử dụng mật mã hạng nhẹ, từ đó triển khai mô hình xác thực thẻ trên cơ sở mật mã hạng nhẹ. • Tìm hiểu và sử dụng các bộ sinh khóa để tăng tính bảo mật.

ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ TÌM HIỂU VÀ THỰC THI MẬT MÃ HẠNG NHẸ TRÊN RFID Nguyen Thanh Long Hà Nội - 2023 i MỤC LỤC MỤC LỤC ii LỜI CẢM ƠN Lỗi! Thẻ đánh dấu không được xác định LỜI CAM ĐOAN Lỗi! Thẻ đánh dấu không được xác định CÁC KÝ HIỆU, CHỮ VIẾT TẮT iv DANH SÁCH BẢNG BIỂU v DANH MỤC HÌNH ẢNH vi LỜI NÓI ĐẦU viii CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ RFID 10 1.1 Khái quát công nghệ RFID 10 1.1.1 Khái niệm 10 1.1.2 Lịch sử phát triển 11 1.1.3 Các chuẩn RFID 12 1.1.4 Ứng dụng công nghệ RFID 14 1.1.5 Ưu nhược điểm công nghệ RFID 15 1.2 Hệ thống RFID 16 1.2.1 Thẻ RFID (RFID tag) 16 1.2.2 Đầu đọc RFID (RFID reader) 21 1.3 Hoạt động RFID 24 1.3.1 Tần số hoạt động RFID 24 1.3.2 Giao tiếp đầu đọc thẻ 25 1.4 Tính bảo mật hệ thống RFID 28 CHƯƠNG 2: MẬT MÃ HẠNG NHẸ 31 2.1 Tổng quan mật mã hạng nhẹ 31 2.1.1 Khái niệm mật mã hạng nhẹ 31 2.1.2 Lịch sử hình thành 33 ii 2.1.3 Tiêu chuẩn thiết kế mật mã hạng nhẹ 33 2.1.4 Ứng dụng mật mã hạng nhẹ 35 2.2 Mật mã khối hạng nhẹ 36 2.2.1 Giới thiệu mã khối hạng nhẹ 36 2.2.2 Tiêu chuẩn thiết kế 37 2.2.3 Đánh giá thuật toán 38 2.3 Mã khối XTEA 41 2.3.1 Giới thiệu XTEA 41 2.3.2 Thuật toán XTEA 41 2.3.3 Giao thức xác thực sở thuật toán XTEA 46 2.3.4 Hiệu suất cài đặt hệ thống RFID 48 CHƯƠNG 3: ỨNG DỤNG MÃ KHỐI XTEA VÀO RFID 52 3.1 Giới thiệu module RC522 52 3.1.1 Sơ đồ chân module MRFC522 53 3.1.2 Thẻ MIFARE cổ điển (thẻ MIFARE classic) 54 3.2 Cài đặt chương trình 55 3.2.1 Công cụ 55 3.2.2 Cài đặt chương trình 56 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC Lỗi! Thẻ đánh dấu không được xác định iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt EPC Electronic Product Code Mã sản phẩm điện tử EPCIS EPCglobal Information Services Dịch vụ thông tin EPCglobal ERP Enterprise resource planning systems Phần mềm định nguồn lực doanh nghiệp ICT Information Communication Công nghệ thông tin truyền Technology thông IoT Internet of things Mạng lưới thiết bị kết nối Internet ISO International Organization for Standardization Tổ chức tiêu chuẩn hóa quốc tế IC Integrated circuit Vi mạch LWC Lightweight cryptography Mật mã hạng nhẹ ONS Object Naming Service Dịch vụ tên đối tượng RFID Radio Frequency Identification Nhận dạng qua tần số vô tuyến SNMP Simple network management Giao thức quản lý mạng đơn protocol giản Unique Identifier Định danh nhất UID iv DANH SÁCH BẢNG BIỂU Trang Bảng 1.1: Các chuẩn RFID 13 Bảng 1.2: Tần số hoạt động hệ thống RFID 25 Bảng 2.1: Một số thuật toán mật mã hạng nhẹ 32 Bảng 2.2: Một số hệ mật phổ biến được sử dụng 37 Bảng 2.3: Lược đồ khóa thuật toán XTEA 44 Bảng 2.4: So sánh các khóa liên hệ TEA XTEA 45 Bảng 2.5: So sánh triển khai phần cứng TEA XTEA 46 Bảng 3.1: Thông số kỹ thuật đầu đọc ghi RC522 RFID 53 v DANH MỤC HÌNH ẢNH Trang Hình 1.1: Mơ hình hệ thống RFID 10 Hình 1.2: Cấu tạo thẻ RFID 17 Hình 1.3: Đầu đọc thẻ RFID 21 Hình 1.4: Sơ đồ cấu tạo đầu đọc RFID 23 Hình 1.5: Điều chế Backscatter 26 Hình 1.6: Điều chế kiểu transmitter 27 Hình 1.7: Điều chế kiểu thẻ 27 Hình 1.8: Các khu vực bảo mật hệ thống RFID 28 Hình 2.1:Lịch sử phát triển mật mã hạng nhẹ 33 Hình 2.2: Sự thỏa hiệp thiết kế mật mã hạng nhẹ 34 Hình 2.3: Ước tính độ trễ 39 Hình 2.4: Ước tính độ trễ trung bình 39 Hình 2.5: Ước tính điện tiêu thụ 40 Hình 2.6: Vịng mã hóa thứ n XTEA 42 Hình 2.7: Giao thức xác thực dựa mã hóa XTEA 48 Hình 2.8: Định dạng thơng điệp cập nhật khóa 48 Hình 3.1: Sơ đồ chân RC522 53 Hình 3.2: Lưu trữ liệu thẻ MIFARE 54 Hình 3.3: Arduino Uno R3 56 Hình 3.4: Mơ hình cài đặt 56 Hình 3.5: Quá trình mã hóa liệu 57 Hình 3.6: Quá trình giải mã liệu 57 Hình 3.7: Cài đặt thư viện hỗ trợ 58 Hình 3.8: Nạp code thành cơng 61 Hình 3.9: Bắt đầu chương trình 62 vi Hình 3.10: Đọc thẻ ghi liệu 62 Hình 3.11: Nhập liệu cần lưu 63 Hình 3.12: Mã hóa ghi liệu mã hóa lên thẻ thành cơng 63 Hình 3.13: Dữ liệu sau mã hóa được lưu thẻ 64 Hình 3.14: Giải mã liệu thẻ thành cơng 64 Hình 3.15: Giải mã thất bại 65 vii LỜI NÓI ĐẦU Với phát triển ngày nhanh chóng cơng nghệ thông tin các ứng dụng điện tử mạng, nhu cầu bảo vệ thông tin hệ thống các ứng dụng điện tử ngày được quan tâm có ý nghĩa quan trọng Các kết khoa học mật mã ngày được triển khai sâu rộng nhiều lĩnh vực Các ứng dụng mã hóa thơng tin cá nhân, trao đổi thơng tin ngày được sử dụng rộng rãi trở nên quen thuộc Sự đời các hệ thống nhận dạng đáp ứng ngày nhiều cho nhu cầu nhận dạng sống Điển hình cơng nghệ RFID – Radio Frequency Identification, giúp nhận dạng người vật thể sử dụng sóng vơ tuyến Việc triển khai các thiết bị RFID môi trường không kiểm soát mà đối phương truy cập vật lý tới thiết bị điều khiển thiết bị Vì khả an toàn các thiết bị từ việc cài đặt cần được trọng Do các thiết bị RFID có tài nguyên hạn chế việc áp dụng mật mã thông thường quá lớn, quá chậm tốn lượng Các thuật toán mật mã hạng nhẹ khắc phục nhược điểm Mục tiêu mật mã hạng nhẹ ứng dụng cho các thẻ thông minh, vi điều khiển… các thiết bị, hệ thống giao thông thông minh Internet of things (IoT)… RFID các loại thẻ được thiết kế nhỏ gọn việc chọn thuật toán an tồn, đảm bảo độ bảo mật có khả tích hợp vào hệ thống vấn đề cần thiết Thuật toán mã hóa TEA (Tiny Encryption Algorithm) thuật toán được nghiên cứu, sau được phát triển đề xuất thuật toán XTEA phục vụ cho mục đích Xuất phát từ lý tơi chọn đề tài: “Tìm hiểu thực thi mật mã hạng nhẹ RFID” Đồ án gồm chương cụ thể sau: Chương 1: Tổng quan cơng nghệ RFID Chương trình bày khái quát công nghệ RFID bao gồm khái niệm, lịch sử, ứng dụng, hoạt động tính bảo mật cơng nghệ RFID Chương 2: Mật mã hạng nhẹ viii Chương trình bày tổng quan mật mã hạng nhẹ, ứng dụng mật mã hạng nhẹ, giới thiệu thuật toán XTEA ứng dụng RFID Chương 3: Ứng dụng mã khối XTEA vào RFID Chương giới thiệu module RC522 tiến hành mã hóa - giải mã liệu thẻ RFID sử dụng thuật toán XTEA ix CHƯƠNG 1: TỔNG QUAN VỀ CƠNG NGHỆ RFID 1.1 Khái qt cơng nghệ RFID 1.1.1 Khái niệm RFID (Radio Frequency Identification) phương thức giao tiếp khơng dây sử dụng sóng vơ tuyến để xác định theo dõi đối tượng, cung cấp khả ứng dụng rộng lớn cho giới đại Hình 1.1: Mơ hình hệ thống RFID Cơng nghệ RFID sử dụng truyền thông không dây dải tần sóng vơ tuyến để truyền liệu từ các thẻ (Tag) đến các đầu đọc (Reader) khoảng cách xa mà không thực bất kỳ giao tiếp vật lý thẻ đầu đọc Công nghệ cho ta phương pháp truyền, nhận liệu từ điểm đến điểm khác Thẻ được đính kèm gắn vào đối tượng được nhận dạng sản phẩm, hộp pallet Đầu đọc quét liệu thẻ gửi thông tin đến sở liệu có lưu trữ liệu thẻ Hệ thống RFID có liên quan chặt chẽ với các thẻ thông minh Giống các hệ thống thẻ thông minh, liệu được lưu trữ thiết bị mang liệu điện tử - phát đáp hay thẻ Tuy nhiên, không giống thẻ thông minh, việc cung cấp lượng cho thiết bị mang liệu trao đổi liệu thiết bị mang liệu đầu đọc đạt được mà khơng cần sử dụng các tiếp điểm điện, 10 Bảng 3.1: Thông số kỹ thuật đầu đọc ghi RC522 RFID Dải tần số Băng tần ISM 13,56 MHz Giao diện chủ SPI / I2C / UART Điện áp cung cấp hoạt động 2,5 đến 3,3V Dòng điện làm việc tối đa 13 – 26mA Dòng điện làm việc tối thiểu 10𝜇A Phạm vi đọc 5cm 3.1.1 Sơ đồ chân module MRFC522 Module RC522 có tổng cộng chân cho phép giao tiếp với bên ngồi Hình 3.1: Sơ đồ chân RC522 VCC cung cấp lượng cho các module nằm khoảng 2,5 đến 3,3V RST đầu vào cho reset tắt nguồn Khi chân xuống thấp, tắt nguồn cứng được bật Điều tắt tất các dòng điện bên bao gồm dao động các chân đầu vào bị ngắt kết nối với bên Tại sườn lên, module được reset GND chân nối đất cần được kết nối với chân nối đát Arduino IRQ chân ngắt dùng để thông báo vi điều khiển thẻ RFID đến khu vực lân cận 53 MISO chân đóng vai trị Master in – slave out giao diện SPI được bật, hoạt động đồng hồ nối tiếp giao diện I2C được mở đóng vai trị đầu liệu nối tiếp bật giao diện UART MOSI đầu vào SPI cho module RC522 SDA pin đóng vai trị tín hiệu đầu vào giao diện SPI được bật, hoạt động liệu nối tiếp giao diện I2C được bật hoạt động đầu vào liệu nối tiếp giao diện UART được bật Ghim thường được đánh dấu cách bọc ghim hình vng để phân biệt với các chân khác 3.1.2 Thẻ MIFARE cổ điển (thẻ MIFARE classic) Thẻ MIFARE cổ điển được sử dụng module RC522 thẻ thông minh không tiếp xúc thông dụng, sử dụng giao thức độc quyền tương thích với các phận theo tiêu chuẩn ISO/ IEC 14443 loại A Dữ liệu được bảo vệ khóa A B, dung lượng thường gồm 1Kb 4Kb Tốc độ đọc thẻ 10% giây, tuổi thọ lên đến 100000 lần đọc/ghi Dữ liệu thẻ MIFARE 1Kb được tổ chức thành 16 phân vùng (từ đến 15) Mỗi phân vùng được chia thành khối (từ khối đến 3) Mỗi khối lưu 16 byte liệu (từ đến 15) Hình 3.2: Lưu trữ liệu thẻ MIFARE 54 Khối phân vùng được gọi đoạn cuối phân vùng chứa thông tin được gọi bit truy cập (Access bit) phép đọc ghi liệu chứa khối phân vùng Điều có nghĩa có khối cuối (khối 0, 2) phân vùng thực cho phép lưu trữ liệu, điều có nghĩa có 48 byte 64 byte phân vùng cho phép lưu trữ liệu sử dụng Ngoài ra, khối phân vùng được biết đến khối hay liệu nhà sản xuất, chứa liệu nhà sản xuất IC mã định danh nhất (UID) 3.2 Cài đặt chương trình 3.2.1 Cơng cụ Các cơng cụ được sử dụng bao gồm: • Module RFID RC522, tần số 12,56 Mhz (bao gồm đầu đọc thẻ) • Arduino bao gồm phần cứng Arduino UNO R3 phần mềm hỗ trợ Arduino tích hợp IDE dùng để soạn thảo, biên dịch code nạp chương trình cho Board Arduino phần tảng mã nguồn mở để xây dựng các ứng dụng điện tử tương tác với môi trường thuận lợi Giống máy tính nhỏ, Arduino giúp người dùng lập trình thực các dự án điện tử mà không cần các công cụ chuyên biệt để phục vụ việc nạp code Với tính mở, khả kết nối với máy tính các linh kiện điện tử khác khả hoạt động độc lập, Arduino được sử dụng ngày rộng rãi thiết kế robot, game tương tác, các điều khiển cảm biến, âm thanh…Đối với phần mềm, các thiết bị dựa tảng Arduino được lập trình ngơn ngữ riêng Ngôn ngữ dựa ngôn ngữ Wiring, biến thể C/C++, được viết cho phần cứng nói chung Arduino UNO R3 dịng mạch hệ thứ 3, sử dụng vi điều khiển họ bit Atmega, với nhớ EEPROM 1Kb Mạch kết nối đến máy tính thơng qua cổng USB 55 Hình 3.3: Arduino Uno R3 3.2.2 Cài đặt chương trình Đồ án mô tả việc ứng dụng mã khối hạng nhẹ XTEA vào RFID sử dụng Module RC522, thực quá trình mã hóa giải mã liệu được lưu thẻ RFID Mỗi thẻ RFID lưu trữ 48 byte thơng tin định danh, được mã hóa sử dụng thuật toán XTEA với đầu vào 64 bit 128 bit khóa Hình 3.4: Mơ hình cài đặt 56 Bắt đầu Đọc UID thẻ Nhập liệu Sinh khóa lưu khóa vào EEPROM Mã hóa liệu Ghi liệu vào thẻ Kết thúc Hình 3.5: Quá trình mã hóa liệu Bắt đầu Đọc UID thẻ Kiểm tra khóa EEPROM Khơng Có Đọc liệu thẻ Giải mã liệu thẻ Xuất rõ hì nh Kết thúc Hình 3.6: Quá trình giải mã liệu 57 Xây dựng chương trình: Cài đặt các thư viện hỗ trợ: các thư viện cho Arduino các mã nguồn mở viết cho Arduino Các thư viện thường được viết ngôn ngữ C++, bao gồm các file cpp h Các thư viện được tìm thấy cài đặt từ giao diện Arduino cách chọn Sketch → Include Library → Manage Libraries Hình 3.7: Cài đặt thư viện hỗ trợ Tại ta lần lượt nhập tên thư viện chọn Install Thư viện được cài đặt bao gồm: − Thư viện Mfrc522 thư viện hỗ trợ giao tiếp Rfid, giúp ta đọc – ghi liệu, kiểm tra UID,… − Thư viện Crypto thư viện mật mã Arduino, hỗ trợ số thuật toán mã hóa hạng nhẹ, chế độ mã hóa, … − Thư viện EEPROMex hỗ trợ lưu trữ liệu nhớ EEPROM arduino − Thư viện mã hóa - giải mã sử dụng thuật toán XTEA Mã hóa liệu: Dữ liệu cần lưu được nhập từ bàn phím, sau được đọc theo byte với liệu tối đa đọc được 48 byte Số byte liệu được hiển thị lên hình 58 byte buffer[50]; Serial.println(F("Nhập liệu cần lưu, kết thúc #")); len = Serial.readBytesUntil('#', (char *) buffer, 50) ; Serial.print(F("Số byte lưu:")); Serial.println(len); Sau đọc liệu, hàm RNG.rand được sử dụng để tạo giá trị giả ngẫu nhiên 16 byte tương ứng với 128 bit khóa để mã hóa liệu Khóa với UID được lưu lại EEPROM theo cấu trúc sau: byte UID 16 byte khóa Đoạn mã thực hiện: RNG.rand(iv, sizeof(iv)); for(byte i=0;i

Ngày đăng: 21/08/2023, 14:18

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan