Trao đổi khóa là một trong những giao thức không thể thiếu trong môi trường IoT và phương thức trao đổi khóa động là một trong những kỹ thuật tiên tiến trong mật mã, các khóa động đóng v
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
1 Cơ sở khoa học và thực tiễn của đề tài:
Internet của vạn vật (Internet of Things - IoT) không còn xa lạ và đang phát triển rất nhanh chóng An ninh bảo mật vẫn là mối lo ngại lớn nhất đối với mỗi người trong hệ sinh thái IoT Trao đổi khóa là một trong những giao thức không thể thiếu trong môi trường IoT và phương thức trao đổi khóa động là một trong những kỹ thuật tiên tiến trong mật mã, các khóa động đóng vai trò rất quan trọng trong việc xác thực Tuy nhiên thách thức đặt ra trong môi trường IoT là các hệ thống mật mã truyền thống đều không phù hợp vì sự giới hạn của tài nguyên thiết bị, năng lực xử lý và kết nối mạng… nên không thể áp dụng cơ chế bảo mật truyền thống vào mạng IoT Trong phạm vi nghiên cứu, luận văn
chỉ tập trung vào nghiên cứu và mô phỏng phương pháp trao đổi khóa động cho định danh và xác thực áp dụng cho truyền tin bảo mật trong môi trường
IoT
2 Nội dung của đề tài và các vấn đề cần giải quyết
2.1 Hướng nghiên cứu:
- Nghiên cứu vấn đề trao đổi khóa, trao đổi khóa động trong môi trường IoT
- Áp dụng phương pháp trao đổi khóa động cho định danh và xác thực trong môi trường IoT
- Mô phỏng, thử nghiệm quá trình truyền tin bảo mật trong môi trường IoT bằng ứng dụng Contiki/Cooja
2.2 Nội dung nghiên cứu:
Ngoài phần mở đầu và kết luận, nội dung của luận văn được trình bày trong 3 chương:
Chương 1: Giới thiệu tổng quan về mạng IoT Các vấn đề về trao đổi
khóa và trao đổi khóa động trong môi trường IoT
Trang 4Chương 2: Đề cập đến vấn đề trao đổi khóa phục vụ định danh và xác
thực, một số phương pháp trao đổi khóa đang được ứng dụng và hạn chế của mạng IoT khi triển khai bảo mật
Chương 3: Mô phỏng, thử nghiệm mô hình trao đổi khóa động cho định
danh và xác thực dựa trên ứng dụng Contiki/Cooja Từ đó đưa ra kết quả và ứng dụng thực tiễn cho bài toán truyền tin bảo mật
3 Kết quả đạt được
Sau thời gian nghiên cứu, về lý thuyết, luận văn đã nghiên cứu, đánh giá được mức độ an toàn khi sử dụng phương pháp trao đổi khóa động cho định danh và xác thực trong môi trường IoT Về thực nghiệm, luận văn cũng đã xây dựng được mô hình truyền tin bảo mật giữa các note Kết quả cho thấy việc áp dụng phương pháp trao đổi khóa động cho định danh và xác thực hoàn toàn có thể ứng dụng vào thực tế đối với các thiết bị IoT bị hạn chế về bộ nhớ, năng lực
xử lý,… mà vẫn đảm bảo về mặt bảo mật
Trang 5CHƯƠNG 1 - TỔNG QUAN VỀ TRAO ĐỔI KHÓA TRONG
MẠNG INTERNET OF THINGS 1.1 Khái quát về mạng IoT
1.1.1 Khái niệm
Internet of Things (IoT) đã có mặt ở nhiều lĩnh vực như quân sự, giao thông, y tế, môi trường, sức khỏe, công nông nghiệp trong đó các thiết bị có thể thu thập và truyền tải dữ liệu Rất nhiều các nhà sản xuất thiết bị IoT cho ra thị trường hàng loạt sản phẩm của mình nhưng hầu hết đều thiếu cơ chế bảo vệ
cơ bản là xác thực, mã hóa và định danh người dùng Khó khăn chính là vì các thiết bị bị hạn chế về tài nguyên, dung lượng, khả năng xử lý… nên không thể
áp dụng cơ chế Internet truyền thống vào mạng IoT
1.1.2 Kiến trúc an ninh trong mạng IoT
Kiến trúc trong IoT được chia làm 4 lớp chính: lớp cảm biến, lớp mạng, lớp hỗ trợ, lớp ứng dụng
1.1.3 An toàn trong mạng IoT
Thị trường thiết bị IoT ở nước ta hiện nay đa phần là thiết bị nhập khẩu nước ngoài, nên cũng chưa có quy trình đảm bảo an ninh, an toàn cho các thiết
bị này Việc kiểm định về an ninh, an toàn cho thiết bị hầu như còn để ngỏ
1.1.4 Các nguy cơ tấn công trong mạng IoT
Với IoT, nhiều thiết bị được kết nối với nhau và kết nối với mạng Internet Chính điều này tiềm ẩn những nguy cơ về an ninh, an toàn Các hình thức tấn công trong mạng IoT có thể kể đến như: Social Engineering (kỹ thuật đánh lừa), Impersonation (mạo danh), Khai thác lỗ hổng hệ thống, Data Attacks, Tấn công từ chối dịch vụ…
1.1.5 Vấn đề bảo mật trong IoT
Thực tế hiện nay có rất ít các giải pháp bảo mật nhằm phát hiện các hướng tấn công và lỗ hổng mới cho thiết bị IoT Gần đây, mối quan tâm về tính
Trang 6xác thực của phần mềm và định danh người sử dụng đã đưa ra nhiều kỹ thuật xác minh và xác thực đáng tin cậy phần mềm khác nhau Cuối cùng, tính bảo mật của dữ liệu vẫn luôn luôn được coi là một mối quan tâm chính Mã hóa dữ liệu là một trong những phương pháp bảo mật dữ liệu phổ biến và hiệu quả nhất, được nhiều tổ chức, cá nhân tin tưởng
1.2 Vấn đề trao đổi khóa và trao đổi khóa động trong mạng IoT
1.2.1 Vấn đề trao đổi khóa
Trao đổi khóa là phương pháp cho phép hai bên thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên Khóa bí mật tạo
ra sẽ được sử dụng để người dùng có thể chia sẻ thông tin với nhau
1.2.2 Trao đổi khóa động trong mạng IoT
Khóa động là khóa tự động thay đổi giá trị của nó mỗi lần Để cung cấp bảo mật cho bất kỳ hệ thống nào, khóa đóng vai trò rất quan trọng đối với việc xác thực
1.2.3 Yêu cầu chung về định danh, xác thực
Xác thực là một hành động nhằm thiết lập hoặc chứng thực một cái gì đó (hoặc một người nào đó) đáng tin cậy
Định danh là một tên xác thực một đối tượng duy nhất hay một lớp duy nhất của đối tượng
1.2.4 Yêu cầu về trao đổi khóa động cho định danh và xác thực trong mạng Internet Of Things
Đặc điểm cơ bản của định danh và xác thực là khả năng tạo và so sánh các mã được chia ra nhiều phân đoạn khác nhau (key segments) Nó là ngẫu nhiên và có tính tương đương được mã hóa Máy chủ xác thực người dùng hoặc thiết bị bằng cách so sánh bit - bit với mã thông báo được tạo tại máy chủ cho người dùng hoặc thiết bị này
Trang 7Khóa động (Dynamic Key) có khả năng phát hiện trạng thái Các độ lệch của các luồng chính phải được đồng bộ giữa điểm cuối và máy chủ
Nhược điểm của các thiết bị IoT chính là bộ nhớ nhỏ, năng lực xử lý bị hạn chế có thể khiến việc triển khai mã hóa, cũng như các cách bảo mật khác trở nên khó khăn Đó là lý do tại sao các phương pháp cũ không thể áp dụng trực tiếp Do vậy, cần nghiên cứu cơ chế bảo mật, trao đổi khóa, mã hóa gọn nhẹ mà vẫn bảo đảm được sự bảo mật giữa các thiết bị IoT
1.3 Kết luận chương
Việc xác thực giúp đảm bảo rằng các thiết bị được kết nối tới các dịch vụ đám mây được ủy quyền và giúp hệ thống loại bỏ được các thiết bị IoT giả mạo Sử dụng phương pháp trao đổi khóa giúp cho việc định danh và xác thực được minh bạch hơn trong môi trường IoT, đảm bảo các kết nối không bị hacker xâm nhập
Trang 8CHƯƠNG 2 - PHƯƠNG THỨC TRAO ĐỔI KHÓA ĐỘNG PHỤC
VỤ ĐỊNH DANH, XÁC THỰC 2.1 Cơ sở lý thuyết về định danh, xác thực, trao đổi khóa động
2.1.1 Vấn đề bảo mật thông tin với mật mã và khóa
Mật mã hay mã hóa dữ liệu, là một công cụ cơ bản thiết yếu của bảo mật thông tin Mật mã đáp ứng được các nhu cầu về tính bảo mật, tính chứng thực, tính toàn vẹn và tính không từ chối của một hệ truyền tin
2.1.2 Định danh và xác thực
Xác thực là cơ chế để chứng minh nếu một ai đó hoặc một thiết bị nào đó
là thực Cách tiếp cận chính để xác thực người dùng thông qua 3 loại chính: dựa trên tri thức, dựa trên sở hữu, dựa trên sinh trắc học
Chúng ta cần đặt trọng tâm hơn vào việc xác định danh tính hay nói cách khác là định danh người dùng nếu chúng ta hi vọng giữ an toàn cho IoT
2.1.3 Truyền tin bảo mật trong mạng IoT
Một hệ truyền tin bảo mật trong mạng IoT cần đảm bảo các tính chất sau: tính bảo mật, tính chứng thực, tính không từ chối, tính toàn vẹn
Các yêu cầu về bảo mật được phân chia thành năm mục là: An ninh mạng, quản lý nhận dạng, quyền riêng tư, tin cậy và khả năng phục hồi
2.1.4 Trao đổi khóa và trao đổi khóa động cho định danh, xác thực trong mạng IoT
Các sơ đồ bảo mật hiện tại cho các thiết bị IoT sử dụng mật mã khóa công khai, trong đó hai nút đồng ý với một số khóa nhất định và sử dụng khóa đó để trao đổi thông tin Bảo mật sử dụng mã khóa động cung cấp một giao thức xác thực khóa an toàn dựa trên cơ chế trả lời yêu cầu Nó có các đặc điểm như "một lần một mật mã", hiệu năng thời gian thực đạt hiệu quả cao, chi phí tính toán thấp Nó có thể được sử dụng trong quá trình xác thực các công nghệ truyền tin
cự ly ngắn khác
Trang 92.2 Khảo sát về việc áp dụng cơ chế trao đổi khóa động trong mạng IoT
Trong mạng cảm biến không dây (Wireless Sensor Networks - WSN), bảo mật dữ liệu là đảm bảo rằng dữ liệu được chuyển từ nút này sang nút khác không thể hiểu được từ bất kỳ nút trung gian hoặc bên trái phép nào Điều này được thực hiện bằng cách sử dụng cơ chế trao đổi khóa động
2.3 Một số giải thuật, phương pháp trao đổi khóa
2.3.1 Phương pháp trao đổi khóa Diffie-Hellman
Phương pháp trao đổi khóa Diffie-Hellman cho phép hai bên (người, thực thể giao tiếp) thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa
bí mật giữa hai bên
Giao thức Diffie-Hellman có ưu điểm về tốc độ và hiệu năng nhưng nhược điểm là yêu cầu năng lực tính toán cao nên không phù hợp với các thiết
bị IoT
2.3.2 Phương pháp trao đổi khóa IKE
Trao đổi khóa IKE là một cơ chế trao đổi khóa tự động được sử dụng để tạo thuận lợi cho việc chuyển giao kết hợp bảo mật IPSec
2.3.3 Phương pháp trao đổi khóa động RPL
Routing Protocol for Low power and Lossy Networks (RPL) là một giao thức định tuyến vector khoảng cách, ở đây định tuyến dựa trên các đồ thị theo định hướng đích hoặc DODAG (Destination Oriented Direct Acyclic Graph) và
là giao thức định tuyến cho mạng tổn hao năng lượng thấp nói chung và mạng cảm biến không dây nói riêng
Giao thức RPL sử dụng giao thức UDP ở lớp giao vận có ưu điểm là đơn giản, có mức tiêu thụ năng lượng thấp, có độ ổn định về cấu trúc mạng do chỉ
có 1 nút cha trong mạng và tiếp nhận các thông tin từ các nút con truyền về Cho đến nay giao thức RPL là giao thức thường được sử dụng nhất trong IoT
Trang 102.4 Một số hạn chế của mạng IoT khi triển khai bảo mật
Bảo mật hệ thống IoT là một thách thức không nhỏ khi mà hệ thống IoT được biết đến bao gồm các thiết bị có khả năng hạn chế, tốc độ tính toán chậm, nguồn năng lượng giới hạn và kích thước nhỏ Do vậy, các giải pháp bảo mật truyền thống như khóa bất đối xứng dựa trên các giao thức và giải pháp IP cơ bản không thể áp dụng cho hệ thống IoT
Phải có cơ chế, chính sách cũng như kỹ thuật bảo mật phù hợp khi thiết bị IoT kết nối Internet nhằm tăng tính an toàn, riêng tư, tin cậy cho hệ thống và người dùng
2.5 Kết luận chương
Phương pháp trao đổi khóa động thường được đi kèm với các giải thuật
mã hóa đối xứng hoặc bất đối xứng Phương pháp này có khả năng chống được các cuộc tấn công trên Internet nói chung và tấn công nhằm vào người dùng nói riêng
Trang 11CHƯƠNG 3 - MÔ PHỎNG, THỬ NGHIỆM 3.1 Các công cụ mô phỏng trong IoT
3.1.1 Công cụ mô phỏng NS-2
NS-2 (Network Solution 2) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, viết bằng ngôn ngữ C++ và OTcl NS-2 mô phỏng các chức năng và giao thức mạng có dây cũng như không dây
Hạn chế của NS-2 là thêm mới và chỉnh sửa các thành phần là không dễ dàng do cấu trúc của NS-2 đã được định hình sẵn Thêm nữa tốc độ tính toán của NS-2 cũng khá chậm Đối với người mới bắt đầu sử dụng thì cũng rất khó
và mất rất nhiều thời gian để tiếp cận phần mềm
3.1.2 Công cụ mô phỏng OPNET
OPNET là một công cụ mô phỏng mạng sự kiện mức cao OPNET hỗ trợ
mô phỏng mạng WSN tốt (cụ thể là tốt hơn NS2) OPNET là chương trình mô phỏng trên nền Windows được sử dụng rộng rãi Nó được xây dựng dựa trên ngôn ngữ C++
Hạn chế của chương trình mô phỏng này là khó tiếp cận và cần có thời gian để tìm hiểu cũng như sử dụng thành thạo
3.1.3 Công cụ mô phỏng Contiki/Cooja
Hệ điều hành Contiki là hệ điều hành mã nguồn mở, được viết bằng ngôn ngữ C Trong thực tế, Contiki đã được ứng dụng trong nhiều dự án Bên cạnh
đó, Contiki còn cung cấp những công cụ hỗ trợ mô phỏng với giao diện đơn giản, dễ sử dụng và hỗ trợ tốt những thiết bị trong thực tế, phục vụ những mục đích nghiên cứu, mô phỏng và triển khai những giao thức mới
3.2 Bộ công cụ mô phỏng Contiki/Cooja
3.2.1 Cấu trúc hệ điều hành Contiki
Bất kỳ bản Contiki nào cũng gồm 7 thư mục : Apps, Core, Cpu, Docs, Example, Platform và Tools
Trang 123.3 Xây dựng mô hình trao đổi khóa động trong mạng IoT
3.3.1 Mô tả bài toán
Để có giao tiếp an toàn giữa hai nút (tức là thiết bị IoT) kỹ thuật mã hóa
và giải mã được sử dụng Người ta tạo khóa mã hóa động được dựa trên khái niệm một khoảng thời gian cụ thể Máy khách mã hóa dữ liệu bằng cách sử dụng khóa Máy khách sẽ gửi dữ liệu được mã hóa đến máy chủ Máy chủ sẽ giải mã dữ liệu theo khóa có tọa độ được chia sẻ bởi máy khách Do đó có giao tiếp an toàn giữa máy khách và máy chủ
Hình 3 1: Sơ đồ truyền tin bảo mật
Trang 133.3.2 Mô phỏng trên ứng dụng Cooja
Mô hình mô phỏng:
Nút gửi muốn gửi bản tin đến nút nhận trong mạng cảm biến không dây
sẽ sử dụng Public Key dùng để mã hóa bản tin kết hợp với thuật toán mã hóa chuyển bản tin thành dạng bản tin đã được mã hóa Để nhận và đọc được bản tin, nút nhận cần dùng thuật toán và Private Key tương ứng để giải mã bản tin
về bản tin ban đầu
Hình 3 2: Mô hình mô phỏng truyền tin
Kịch bản mô phỏng
Khi hai mote muốn truyền dữ liệu với nhau bằng phương pháp trao đổi khóa động, trước tiên phải thực hiện việc mã hóa Cụ thể như sau:
Bước 1: Trao đổi khóa công khai cho nhau Vì đây là khóa công khai nên
không cần giữ bí mật việc trao đổi này, khóa có thể truyền công khai trên kênh thường Bản tin sẽ có dạng broadcast
Bước 2: Bản tin của 2 mote sẽ được mã hóa bằng thuật toán chung
Bước 3: Mote A gửi bản tin đã mã hóa của mình cho mote B và ngược
lại, mote B cũng gửi bản tin đã mã hóa của mình cho mote A
Bước 4: Mote A sẽ dùng Private Key của mình để giải mã bản tin mà
mote B vừa gửi Tương tự như vậy, mote B cũng sẽ dùng Private Key của mình để giải mã bản tin mote A gửi sang
Bước 5: Bản tin thu được sau khi dùng khóa giải mã của 2 mote là như
nhau Quá trình truyền tin bắt đầu được thực hiện mà không sợ việc bị nghe lén
hoặc đánh cắp thông tin
Trang 14Hình 3 3: Mô phỏng thuật toán trao đổi khóa động
Mô phỏng trên ứng dụng Cooja:
Như đã phân tích ở trên, ta sẽ sử dụng phương pháp trao đổi khóa động RPL bao gồm thuật toán mã hóa công khai RSA, thuật toán bao gồm 2 khóa là public key và private key được dùng để mô tả quá trình trao đổi khóa động, mã hóa, giải mã giữa 2 mote
Mô phỏng nhiều lần với số lượng node lần lượt là 6 node, 8 node, 16 node, 32 node
Đối với mỗi số lượng node, ta chạy 30 lần mô phỏng với vị trí các node trong mạng khác nhau
Đối với mỗi lần chạy, kết quả sẽ được lấy ngay sau khi các node được kết nối kênh truyền với nhau