Thông qua kênh giao tiếp hướng Bắc northbound interface, được cung cấp bởi bộ điều khiển trong mạng khả lập trình, những ứng dụng mạng có thể sử dụng những REST API để sử dụng tài nguyên
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
Trần Nguyễn Quốc Tuấn
Hoàng Văn Tú
KHÓA LUẬN TÓT NGHIỆP
CƠ CHÉ XÁC THỰC PHI TẬP TRUNG DỰA TRÊN BLOCKCHAIN CHO TÁC VU QUAN LY AN NINH
MANG TRONG MANG KHA LAP TRINH
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
Trần Nguyễn Quốc Tuấn -17521225
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN ThS DO HOANG HIẾN
TP HO CHÍ MINH, 2021
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
"———— ngay của Hiệu trưởng Trường Dai học Công ng
hệ Thông tin.
Trang 4LỜI CẢM ƠN
Đầu tiên, chúng em xin gửi lời chân thành cảm ơn đến thầy ThS Đỗ Hoàng Hiển va thầy ThS Phan Thế Duy đã hướng dẫn và hỗ trợ tận tình trong xuyên suốt quá trình thực hiện khóa luận để nhóm chũng em có thể hoàn thành khóa luận một cách tốt nhất.
Nhóm chúng em cũng xin chân thành gửi lời cảm ơn đến toàn thể quý thầy
cô trường Đại học Công nghệ Thông tin, đặc biệt là các thầy cô khoa Mạng máy tính & Truyền thông và Phòng thí Nghiệm An toàn Thông tin đã giúp đỡ và hỗ trợ
và truyền đạt những kiến thức quý báu trong suốt thời gian học tập tại trường.
Nhóm chúng em xin chân thành cảm ơn.
TP Hồ Chính Minh, ngày 12 tháng 07 năm 2021
Trang 5ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
TRƯỜNG ĐẠI HỌC NAM CÔNG NGHỆ THONG TIN Độc Lập - Tự Do - Hạnh Phúc
ĐÈ CUONG CHI TIẾT
TÊN ĐÈ TÀI:
+ Tiếng Việt: Cơ chế xác thực phi tập trung dựa trên blockchain cho tác vụ
quản lý an ninh mạng trong mạng khả lập trình
« Tiếng Anh: A decentralized blockchain-based authentication scheme for
network security orchestration in SDN-aware network
Cán bộ hướng dẫn: ThS Dé Hoang Hiền
Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021
Sinh viên thực hiện:
Sinh viên: Trần Nguyễn Quốc Tuần MSSV: 17521225 SĐT: 0944870702
Sinh viên: Hoàng Văn Tú MSSV: 17521195 SDT: 0346961330
Nội dung đề tai:(M6 tả chỉ tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện,
két quả mong đợi của đề tài)
Giới thiệu:
Trong những năm gần đây, có thể thấy xu hướng công nghệ mạng đang hướng tới
việc ảo hóa hạ tầng mạng và đưa lên đám mây đồng thời được quản lý sử dụng công
nghệ mạng khả lập trình Điều này cho phép sự dễ dàng mở rộng của những dịch vụ mạng và sự linh hoạt trong quản lý mạng Thông qua kênh giao tiếp hướng Bắc
(northbound interface), được cung cấp bởi bộ điều khiển trong mạng khả lập trình,
những ứng dụng mạng có thể sử dụng những REST API để sử dụng tài nguyên của
hệ thống mạng Tuy nhiên, do thiếu cơ chế xác thực cho ứng dụng mạng, mạng khả
lập trình gặp phải vân đề an ninh về độ tin tưởng của những ứng dụng sử dụng những
API này và những sự tấn công đến mạng khả lập trình lợi dụng REST API từ ứng
dụng phá hoại.
Để khác phục vấn đề này, nhóm tác giả gồm Tao Hu và cộng sự [5] đã đề ra phương pháp SEAPP SEAPP gôm hai bộ phận Bộ phận thứ nhất thực hiện phát hiện và kiểm tra độ hợp lệ về quyền của ứng dụng Bộ phận thứ hai thực hiện đăng ký xác thực cho
ứng dụng Những ứng dụng đã đăng ký sẽ được xác thực trong một môi trường mã
hóa Sau đó, những ứng dụng â ấy sẽ được phân quyền sử dụng API dựa vào mức độ
nguy hiểm của mỗi ứng dụng Khi một ứng dụng gọi API, quyên hạn của nó sẽ được
kiểm tra Giải pháp này đã một phan nào đó giải quyết được van đề về độ tin tưởng thông qua việc giới hạn quyền hạn Tuy nhiên, giải pháp nay vẫn chưa thể đảm bảo hoàn toàn độ tin tưởng của từng ứng dụng, độ tin cậy của cơ sở dữ liệu lưu trữ thông tin về xác thực và phần quyền, chưa có cơ chế phục hồi khi gặp sự cố.
Trang 6Blockchain chính là lời giải cho những vấn đề trên Độ tin tưởng của ứng dụng có thể được đảm bảo thông qua những thuật toán đồng thuận (consensus algorithm) Độ tin
cậy của cơ sở dữ liệu được đảm bảo bởi tính bat biến (immutability) của blockchain Blockchain cũng đảm bảo tính chống phá hoại va khả năng phục hồi cao do blockchain lưu trữ bản sao ở nhiều nơi khác nhau Nhờ đặc tính phi tập trung này
(decentralised), nếu một node trong mạng blockchain bị hỏng thì sẽ không làm ảnh hưởng đến hoạt động của mạng blockchain Hơn nữa, blockchain có thể lưu lại mọi hoạt động của ứng dụng mạng, điều này cho phép sự thuận lợi trong điều tra khi có
sự cố hệ thống.
Nhóm tác giả L Xie, Y Ding, H Yang and X Wang [6] đã xây dựng hệ thống blockchain nhằm đảm bảo an ninh cho hệ thống phương tiện giao thông có tích hợp
thiết bị loT kết nối qua 5G Mọi hoạt động của phương tiện trong mạng, như hình ảnh
ay thông tin vị trí hay những chia sẻ thông tin, đều được lưu vào blockchain Những phương tiện trong mạng sẽ thực hiện trao đổi thông tin về đường xá để có thể di chuyển một cách thuận tiện nhất Khi một phương tiện quảng bá thông tin, những phương tiện khác sẽ thực hiện việc xác thực thông tin đó Nếu một phương tiện quảng
bá quá nhiều thông tin được xác thực là không chính xác, phương tiện ây sẽ bị đưa
vào danh sách đen và bị chặn quyền quảng bá Công trình này cho thấy sự hiệu quả
của blockchain trong việc phát hiện thực thể gây hại, đảm bảo tính chịu trách nhiệm, tính bat biến của thông tin được lưu lại và khả năng triển khai quy mô lớn khi áp dụng blockchain cho việc xác thực.
Trong đề tài này, nhóm sẽ thực hiện nghiên cứu phương pháp ứng dụng blockchain vào cơ chế xác thực của tác vụ quản lý an ninh trong mạng khả lập trình Đồng thời,
nhóm cũng tận dụng những đặc tính của blockchain để xây dựng tính năng phân quyền
và kiểm soát để tăng cường an ninh cho tác vụ quản lý an ninh.
Mục tiêu:
Xây dựng cơ chế xác thực cho những ứng dụng quản lý mang/cau hình bảo mật mạng
kết nôi đên bộ điêu khiên đê tham gia mạng khả lập trình sử dụng các đặc tính của công nghệ blockchain, với những mục tiêu sau:
e Xây dựng cơ chế xác thực cho ứng dụng quản lý mang/cdu hinh bao mat mang.
e _ Xây dựng cơ chế phân quyên cho ứng dụng quản lý mạng/cấu hình bảo mật mạng.
¢ H6 trợ tính năng truy vết hoạt động của ứng dụng trong mạng blockchain, đảm
bảo độ tin cậy của dữ liệu nhờ đặc tính bất biến (immutability) của blockchain.
¢ Đảm bao tính sẵn sang của hệ thống bằng cách tận dung đặt tính phi tập trung
(decentralise) của blockchain.
Pham vi nghiên cứu:
e Xây dựng cơ chế xác thực, phân quyền phi tập trung dựa trên công nghệ
blockchain cho các ứng dụng quản lý và câu hình mạng, triên khai trên môi trường
mạng khả lập trình.
e _ Cung cấp tnh năng hỗ trợ điều tra, truy vết cho mạng khả lập trình.
Trang 7e _ Triển khai mang khả lập trình có: 10 máy chủ và 2 bộ điều khiển.
e Triển khai mạng blockchain có: 3 tổ chức, mỗi tổ chức gồm 2 peer; 3 orderer; 1
CA.
Đối tượng nghiên cứu:
© _ Các ứng dụng quản lý mạng/cấu hình bảo mật mạng.
© Cac bộ điều khiển khi tương tác với từng vùng mạng.
e Céng nghệ blockchain và đặc tính của nó.
¢ _ Những loại giao thức AAA (Authentication — Authorisation - Accounting) phổ
biên.
Phương pháp thực hiện:
a Nội dung 1: Tìm hiểu kiến trúc, nguyên tắc hoạt động của mạng SDN, các kết
nỗi giữa ứng dụng và bộ điêu khiên.
© Mục tiêu:
o Nắm được kiến trúc, nguyên tắc hoạt động của hệ thống mạng SDN.
o Triển khai được một hệ thống mạng SDN.
o Xây dựng một số ứng dụng SDN đề sử dụng trong việc thực nghiệm hệ
thông.
« Phương pháp:
o _ Nghiên cứu tài liệu về kiến trúc của SDN, những mô hình SDN và những
phương pháp triên khai một mạng SDN.
° Thực hiện triển khai mạng SDN với Mininet/Containernet với bộ điều
khiên là Ryu.
o Xây dựng ứng dụng SDN cho bộ điều khiển Ryu bằng ngôn ngữ Python.
b Nội dung 2: Tìm hiểu tổng quan về blockchain và xây dựng cơ chế xác thực dựa
trên blockchain.
e Mục tiêu:
o Nắm được kiến thức tổng quan và các đặc tính của công nghệ blockchain.
o Triển khai một hệ thống blockchain có chức năng xác thực cho mạng khả
lập trình, triển khai trên một máy ảo Ubuntu, bao gồm hai tổ chức và mỗi
tô chức chứa hai peer.
o Xây dựng kênh giao tiếp giữa hệ thống blockchain và mạng khả lập trình.
o Xây dựng cơ chế xác thực dựa trên blockchain.
« Phương pháp:
o Tham khảo các video mô tả, tài liệu giải thích và các phương triển khai
blockchain trên mạng khả lập trình.
Trang 8Sử dụng các công nghệ như Hyperledger Fabric, Kubernetes Rancher, Raft
để triển khai và quản lý blockchain
Xây dựng cơ chế, xác thực theo dạng token trên hợp đồng thông minh
(smart contract) băng ngôn ngữ Go.
c Nội dung 3: Xây dựng thêm cơ chế phân quyền và kiểm soát cho hệ thống quản
Nắm kiến thức về cơ sở đữ liệu.
Xây dựng cơ sở dữ liệu tiết kiệm tài nguyên, chính xác, có thé được truy
xuât dê dàng và có định dạng thân thiện người dùng.
Xây dựng cơ chế phân quyền hoạt động với cơ chế xác thực.
s Phương pháp:
° Nghiên cứu những tài liệu về phương pháp xây dựng cơ sở dữ liệu, kỹ
thuật phân quyên và những loại mô hình phân quyên.
Xây dựng cơ chế phân quyền dựa trên token được tạo ở cơ chế xác thực,
trên hợp đông thông minh (smart contract) băng ngôn ngữ Go.
d Nội dung 4: Thực nghiệm và đánh giá kết quả.
e Mục tiêu:
° Triển khai cơ chế xác thực dựa trên blockchain cho hệ thống quản lý an
ninh trong môi trường mạng khả lập trình và có hỗ trợ cơ chế phân quyền
và tính năng kế toán, thâm định.
Triển khai hệ thống mạng khả lập trình trên môi trường giả lập.
Đánh giá hiệu năng và độ chính xác trong quá trình hoạt động thông qua các kịch bản thực nghiệm.
s Phương pháp:
° Thực hiện triển khai mạng khả lập trình bằng Containernet và bộ điều
khiên Ryu.
Xây dựng và triển khai hệ thống xác thực bằng blockchain có hỗ trợ phân
quyên và kê toán, thâm định sử dụng nên tảng Hyperledger Fabric.
Sử dụng những ứng dụng mạng khả lập trình đã xây dựng để đánh giá hoạt
động và độ hiệu quả của hệ thông quản lý an ninh.
Kết quả mong đợi:
» - Xây dựng thành công hệ thống quản lý an ninh mạng có hỗ trợ xác thực, phân
quyên và truy vết trên mạng khả lập trình.
« _ Triển khai được hệ thông blockchain và hệ thống mang khả lập trình.
+ _ Xây dựng được kịch bản thử nghiệm và phương pháp đánh giá hệ thống.
Trang 9« C6 được kết qua từ kịch bản thử nghiệm
+ Duara được báo cáo tổng quan về kết quả và quá trình thực hiện đề tai.
Tài liệu tham khảo
[1] Mohamed Tahar Hammi, Badis Hammi, Patrick Bellot, Ahmed Serhrouchni,
Bubbles of Trust: a decentralized Blockchain-based authentication system for IoT,
Computers & Security (2018).
[2] J Xie et al., "A Survey of Blockchain Technology Applied to Smart Cities:
Research Issues and Challenges," in IEEE Communications Surveys & Tutorials, thirdquarter 2019.
[3] Shailendra Rathore, Byung Wook Kwon, Jong Hyuk Park, BlockSecloTNet: Blockchain-based decentralized security architecture for IoT network, Journal of
Network and Computer Applications, 2019.
[4] Y Wu, H -N Dai and H Wang, "Convergence of Blockchain and Edge
Computing for Secure and Scalable HoT Critical Infrastructures in Industry 4.0," in IEEE Internet of Things Journal, Feb.15, 2021.
[5] Tao Hu, Zhen Zhang, Peng Yi, Dong Liang, Ziyong Li, Quan Ren, Yuxiang Hu, Julong Lan, SEAPP: A secure application management framework based on REST API access control in SDN-enabled cloud environment, Journal of Parallel and
Trang 10Kế hoạch thực hién:(M6 ta kế hoạch làm việc và phân công công việc cho từng sinh
viên tham gia)
chế xác thực
Triển khai mô hình mạng khả lập
trình, triên khai hệ thông blockchain.
Xây dựng ứng dụng SDN và tính năng kiểm soát, truy vet cho hệ thông quản lý an ninh mạng.
Sinh viên 2
Tìm hiểu về mạng khả lập trình,
blockchain và những phương pháp áp dụng blockchain cho cơ
chế xác thực.
Triển khai mô hình mạng khả lập
trình, triên khai hệ thông blockchain.
Xây dựng cơ chế xác thực, phân
quyên cho hệ thông quản lý an ninh mạng.
Xây dựng kịch bản thực nghiệm,
phương pháp đánh giá và thực hiện thực nghiệm, đánh giá kết
quả.
Xây dựng kịch bản thực nghiệm, phương pháp đánh giá và thực
hiện thực nghiệm, đánh giá kết
quả.
Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
TP HCM, ngày 16 thang 03 năm 2021
Sinh viên (Ký tên và ghi rõ họ tên)
Trang 11MỤC LỤC
Chương l: MO ĐẦU 2 222,,22221, HH erue 3
1.1.
12 Đặt vấn đề 22 22222221 HH 1 errrrrgggey 3
1.3 Tình hình nghiên cứu - 2° + ©+£ kệ E13 HH HH HH Hà Hàng ưy 4
1.4 _ Tính khoa học và tính mới của đề tài -c:cctccc tt 5
1.5 Mục tiêu đề tài 2222222222112 1t nh 1e tre 6 1.6 Đối tượng nghiên cứu -+-22VE22+++tt+EEEEY2E+tt2EEEEYYrtEETEEEErrrrtrrrkrrrrrrrrrrrrrree 7
IS 5 ồ.ồŠ.ồ.ố 7 1.8 Nội dung và Phương pháp thực hiện „8 Chương 2:
2.1 Kiến thức nền tan;
TÓNG QUAN.
2.1.1 | Mang khả lập trình (SDN) 11 2.1.2 Công nghệ Blockchain 25-55252222 teEerxerrirrerrirrrrrrerrrrrrrrree 15
2.13 Thuật toán đồng thuận -.-22222222222222ttrtrttrttEEE11111111111 re 19
2.1.4, Mô hình bảo mật AAA: - cv c2ttctthnnhhnthhtrrrrrrerrerrrrrrrdee 20
2.1.5 RESTfulAPI Lá 23
2.1.6 Chữ ký số
2.17 Hệ mã hoá bất đối xứng
Chương3: PHAN TÍCH THIET KE HE THO
3.1 Giéi thiệu chung
Trang 123.2.6 Accounting Module
3.2.7 REST API 31
3.3 Kết chương -.34 Chương4: HIỆN THỰC VAD
AL, Công nghệ sử dụng - ¿5s 2t Tnhh eererree 35 4.1.1 Mininet
4.12 Bộ điều khiến Ryu
4.1.3 Hyperledger Eabric - ST ư 35 4.1.4, JSON Web Token (JWT) csctectirtrrrrrrrntrrrtrrrrrrrrrrrerrrrrrrrrrrrrrrrrrrrree 36 4.1.5 RSA256 HH tà 37 4.2 Tài nguyên sử dụng -. - 5+ nề Hà HH1 HH re 39
4.3 Triển khai hệ thống AAA -222+-©22E222++EE222222112212211122222211111 22211112 ctrrrrrrrre 40
4.3.1 Triển khai Participant Module ¿ 52222222+2222EV2+v+et2EEEEEvvetrtrrrkrrrrrrrrrrrree 40
4.3.2 Triển khai Authorization Module -:::-+ttccctttriittettttrrrrrrrrrrrrrree 41 4.3.3 Triển khai Authentication Module 55c cvtrtrrtrrttrtrrrrtttrtrrrrrrrrrrrrree 47 4.3.4 Triển khai Token Module -cvcctttttttttttttttttitiiiiiiiiiiiiirirree 48 4.3.5 _ Triển khai Accounting Module : -22+2222EEE++++tttEEEEY+rrrrtrrrvrrrrrrrrrrrree 49
4.3.6 Triển khai Hyperledger Fabric và Chaincode API :-c5ccccccvvervverereerree 51
4.4 _ Triển khai mạng SDN
4.4.1 Triển khai bộ điều khiển Ryu -2 22222+2222EEES2zrtttEEEEYvrrrrtrrrvrrrrrrrrrrrree 52
4.4.2 Chức năng của Ryu API.
4.4.3 Lưu đồ hoạt động chung của bộ điều khiển khi ứng dụng truy cập - 56
Kha năng xứ lý yêu cầu xác thực từ của hệ thống AAA -ccccc-ccccccee 59
Khả năng chịu tải của hệ thống AAA
Thue nghiệm đánh giá bao mật hệ thống, -::-555cvvvvvvvveerrrrrrrrrrrrrrrer 61
Đánh giá bảo mật hệ thống
"c0 — 70
Trang 14DANH MỤC HÌNH VẼ
Hình 3.1: Sơ đồ hệ thống xác thực AAA
Hình 3.2: Quy trình xác thực token
Hình 3.3 Sơ đồ luồng công việc hệ thống AAA
Hình 4.1 Cấu trúc JSON TOKEN WEB (JWT)
Hình 4.2: Cấu trúc Application Assets trong Chain Code
Hình 4.3: Cấu trúc Controller Assets trong Chain Code
Hình 4.4 Hàm kiểm tra truy cập dựa trên Permission
Hình 4.5: Hàm kiểm tra truy cập dựa trên vai trò của ứng dụng
Hình 4.6: Hàm xác thực chữ ký dựa của ứng dụng
Hình 4.7: Quá trình kiểm tra chống Replay Attack khi xác thực token
Hình 4.8: Kiểm tra tính khả dụng của Token
Hình 4.9: Giải mã token
Hình 4.10: Thông tin của token sau khi giải mã
Hình 4.11: Kiểm tra tính hợp lệ hành động của ứng dụng yêu cầu
Hình 4.12: Hàm cập nhật Permission cho ứng dụng
Hình 4.13: Hàm cập nhật danh sác vai trò của ứng dụng được phép truy cập vào Controller
Hình 4.14: Kiểm tra quyền và vai trò của ứng dụng trước khi xuất bản token
Hình 4.15: Hàm sinh JWT(JSON WEB TOKEN) cho ứng dụng
Hình 4.16: Khởi tạo vào ghi tài sản Token vào Chain Code
Hình 4.17: Cấu trúc tài sản Token
Hình 4.18: Hàm vô hiệu hoá Token
Hình 4.19: Cấu trúc tài sản Log
Hình 4.20: Quá trình ghi lại Log
Hình 4.21: Hàm query log của controller tương ứng
Hình 4.22: Khởi chạy ứng bộ điều khiển Ryu
14
Trang 15Hình 4.23: Lưu đồ hoạt động xử lý các yêu cầu từ ứng dụng
Hình 4.24: Lưu đồ hoạt động quá trình truy cập hợp lệ của 1 ứng dungHình 4.25: Kết quả thực hiện truy cập không kèm token
Hình 4.26: Cau trúc body của một yêu cau hợp lệ từ ứng dụng
Hình 4.27: Kết quả trả về khi thực hiện một truy cập với token hợp lệ
Hình 4.28: Yêu cầu đăng đọc thông tin một ứng dụng trong mang SDNHình 4.29: Cảnh báo giả mạo từ hệ thong AAA
Hình 4.30: Quyền và vai trò mà ứng dụng đã được phân
Hình 4.31: Thực hiện chức năng Update Permission
Hình 4.32: Quyền hạn của ứng dụng sau khi được cập nhật
Hình 4.33 Ứng dụng thực hiện truy cập thất bại do không đủ quyền hạnHình 4.34: Ứng dụng thực hiện truy cập thành công
Hình 4.35 Gói tin thu thập được bằng WireShark
Hình 4.36: Thực hiện tan công lặp lại
Hình 4.37: Phản hồi của hệ thống AAA khi gặp tan công lặp lại
15
Trang 16DANH MỤC BẢNG
Bảng 3.1 Cấu trúc các đối tượng trong Participant ModuleBảng 3.2 Cấu trúc đối tượng trong Token Module
Bang 3.3 Cấu trúc đối tượng Log Assets
Bảng 4.1: Tài nguyên sử dụng đề xây dựng hệ thống
Bảng 4.2: Kết quả đo thời gian phản hồi truy cập
Bảng 4.3: Kết quả đo khả năng chịu tải
Bảng 4.4: Kết quả đo khả năng chịu tải sau nâng cấp
16
Trang 17TOM TAT KHÓA LUẬN
Càng ngày nhu cầu sử dụng mang của thé giới ngày càng gia tăng và là nhu cầu thiết yếu trong đời sống, ví dụ như trong học tập, làm việc hay cả ăn uống Nhu cầu này sẽ càng
tăng mạnh khi thế giới ứng dụng nhiều hơn công nghệ đám mây (cloud computing) và côngnghệ IoT (Internet of things) vào đời sống thường ngày Đề có thể đáp ứng được cho nhucầu sử dụng không 16 trong tương lai này, hệ thống mạng phải trở nên linh hoạt hơn và cóthé tùy chỉnh chức năng dé đáp ứng với nhu cầu sử dụng đa dang Hơn nữa, hệ thống mạngcần có khả năng mở rộng (vertical scaling và horizontal scaling) dé dang dé bao đảm được
tính sẵn sàng cho mọi tình huống Vì thế, một mô hình mạng mới được đề suất mang tên
SDN (Software Defined Network), hứa hẹn có thể giải quyết được những yêu cầu trên
SDN là tương lai và điểm sáng trong công cuộc phát triển công nghệ mạng SDN
cho phép ta có thể quản lý các thiết bị mạng trong hệ thống thông qua bộ điều khiển
(controller) tập trung Bộ điều khiến tập trung sẽ quản lý mọi hoạt động, thiết bị và dữ liệutrên SDN và có thê được lập trình mọi chức năng theo ý muốn Điều này cho phép hệ thốngmạng trở nên linh hoạt hơn và có thê đáp ứng phù hợp với nhiều loại nhu cầu Hơn nữa,với sự chia tách phần điều khiến và phần cứng ra làm hai phan riêng biệt, hệ thong SDN
có thê được mở rộng và nâng cấp một cách thuận tiện và nhanh chóng mà không làm ảnhhưởng đến hoạt động hay chức năng của hệ thống
Tuy vậy, việc bảo mật đối với SDN nói chung và các bộ điều khiển tập trung còn
gap rất nhiều thách thức Một trong những thách thức nghiêm trọng nhất là sự thiếu cơ chế
xác thực phân quyền cho các ứng dụng đang hoạt động trên SDN SDN sẽ phải đối mặt vớicác nguy cơ tan công như ứng dụng thực hiện leo thang quyền dẫn đến chiếm quyền điềukhiến cả hệ thống mạng hay, truy cập trái phép từ các ứng dụng độc hại hay sựu truy cậpthông tin nhạy cảm bởi ứng dụng bình thường Hơn nữa, việc điều tra tác nhân khi hệ thống
có sự cố sẽ cực kỳ khó khăn nếu như không có sự ràng buộc danh tính cho những hoạtđộng trên mạng Vậy, SDN cần có một cơ chế xác thực phân quyền hiệu quả và an toàn.Đây là lý do nhóm chọn đề tài
Trang 18Trong đề tài nghiên cứu này, nhóm sẽ thực hiện nghiên cứu, đề ra mô hình và xây
dựng một cơ chế xác thực danh tính, phân quyền sử dụng và kiểm soát hoạt động phi tập
trung dựa vào công nghệ blockchain cho các ứng dụng mạng trên SDN dé có thê giải quyết bài toán xác thực phân quyền cho hệ thống SDN Ngoài ra, nhóm cũng sẽ xây dựng những
kịch bản thử nghiệm để kiểm tra chức năng và độ hiệu quả an ninh của cơ chế xác thực,
phân quyền và kiểm soát mà nhóm đã đề ra.
Trang 19Chương 1: MỞ ĐẦU
1.1 Tóm tắt
Trong để tài này, nhóm sẽ thực hiện nghiên cứu phương pháp tận dụng những đặc
tính của blockchain vào tác vụ quản lý an ninh trong mạng khả lập trình và thực hiện xây
dựng cơ chế xác thực, cơ chế phân quyền và cơ chế kiểm soát.
điều khiển và tang dữ liệu được tách thành hai tầng riêng biệt Tầng điều khiển chứa những
bộ điều khiển phần mềm đảm nhiệm mọi nhiệm vụ điều khiển và quản lý các thiết bị và
lưu lượng (dataflow) trên mạng Còn tầng dữ liệu chứa những ứng dụng mạng và dữ liệu
mạng khác Những ứng dụng mạng này tương tác với bộ điều khiển và sử dụng tài nguyên của SDN thông qua những API (Application Programming Interface) do bộ điều khiển cung cấp Sự tách rời này cho phép SDN có khả năng mở rộng cao (theo cả chiều ngang
và chiều dọc), có thể được dé dang nâng cấp theo ý muốn và linh hoạt hơn trong công tác
quản lý.
SDN đang là một tiêu điểm trong lĩnh vực phát triển công nghệ mạng và là một mô hình mạng có nhiều hứa hẹn trong tương lai Tuy nhiên, SDN cũng có những vấn đề bảo
Trang 20mật cần được giải quyết trước khi có thể thay thế mạng truyền thống Một trong những vấn
dé nghiêm trọng nhất là SDN chưa có cơ chế xác thực danh tinh, phân quyền và kiểm soát
cho ứng dụng mạng muốn truy cập vào bộ điều khiển Vì thế, kẻ tắn công có thể lợi dụng
lỗ hồng bảo mật này đề xâm nhập và tan công hệ thống mạng.
1.3 Tình hình nghiên cứu
Dé khắc phục van đề thiếu cơ chế xác thực danh tính cho ứng dụng truy cập bộ điều khiển, nhóm tác giả gồm Tao Hu và cộng sự [5] đã đề ra phương pháp SEAPP trong bài
báo “SEAPP: A secure application management framework based on REST API access
control in SDN-enabled cloud environment”, SEAPP gồm hai bộ phận Bộ phận thứ nhất
thực hiện phát hiện và kiểm tra độ hợp lệ về quyền của ứng dụng Bộ phận thứ hai thực
hiện đăng ký xác thực cho ứng dụng Những ứng dụng đã đăng ký sẽ được xác thực trong
một môi trường mã hóa Sau đó, những ứng dụng ấy sẽ được phân quyền sử dụng API dựa vào mức độ nguy hiểm của mỗi ứng dụng Khi một ứng dụng gọi API, quyền hạn của nó
sẽ được kiểm tra Giải pháp này đã một phần nào đó giải quyết được vấn đề về độ tin tưởng thông qua việc giới hạn quyền hạn Tuy nhiên, giải pháp này vẫn chưa thể đảm bảo hoàn
toàn độ tin tưởng của từng ứng dụng, độ tin cậy của cơ sở dữ liệu lưu trữ thông tin về xác
thực và phần quyền, chưa có cơ chế phục hồi khi gặp sự có.
Blockchain có thể khắc phục được những điểm yếu của giải pháp trên qua một số đặc tính sau Độ tin tưởng của ứng dụng tham gia mạng có thể được đảm bảo thông qua
những thuật toán đồng thuận (consensus algorithm) Độ tin cậy của cơ sở dit liệu được đảm
bảo bởi tính bất biến (immutability) của blockchain Ngoài ra, blockchain cũng đảm bao tính chống phá hoại và khả năng phục hồi cao đo blockchain lưu trữ bản sao ở nhiều nơi
khác nhau Nhờ đặc tính phi tập trung này (decentralised), nếu một node trong mạng blockchain bị hỏng thì sẽ không làm ảnh hưởng đến hoạt động của mạng blockchain Hơn nữa, blockchain có thê lưu lại mọi hoạt động của ứng dụng mạng, điều này cho phép sự
thuận lợi trong điều tra khi có sự cố hệ thống Ý tưởng sử dụng blockchain cho tác vụ xác
thực và an ninh cũng đã được một số nhóm nghiên cứu đề suất và đã trả về những kết quả tốt.
Trang 21Một ý tưởng được đề ra, bởi nhóm tác giả gồm Mohamed Tahar Hammi và cộng sự,
là sử dung công nghệ blockchain đề xây dựng cơ chế xác thực cho mạng IoT [1] trong bài
báo “Bubbles of Trust: A decentralized blockchain-based authentication system for IoT”.
Nhóm tác giả này đề xuất phương pháp xây dựng một không gian ảo an toàn, một vùng
tin tưởng (Bubble of Trust), dé các thiết bị IoT có thể tin tưởng và trao đổi với nhau Những
thiết bị IøT ở ngoài một vùng không thể giao tiếp với thiết bị bên trong Mỗi giao dịch giữa
hai thiết bị sẽ được xác thực bởi blockchain Công trình này cho thấy sự bảo đảm an toàn
khi áp dụng blockchain cho xác thực.
Nhóm tác giả L Xie, Y Ding, H Yang and X Wang [6] đã xây dựng hệ thống blockchain nhằm đảm bảo an ninh cho hệ thống phương tiện giao thông có tích hợp thiết
bị IoT kết nối qua 5G trong bài “Blockchain-based secure and trustworthy Internet of
Things in SDN-enabled 5G-VANETS” Mọi hoạt động của phương tiện trong mạng, như
hình ảnh hay thông tin vị trí hay những chia sẻ thông tin, đều được lưu vào blockchain Những phương tiện trong mạng sẽ thực hiện trao đồi thông tin về đường xá dé có thể di
chuyển một cách thuận tiện nhất Khi một phương tiện quảng bá thông tin, những phương
tiện khác sẽ thực hiện việc xác thực thông tin đó Nếu một phương tiện quảng bá quá nhiều thông tin được xác thực là không chính xác, phương tiện ấy sẽ bị đưa vào danh sách đen
và bị chặn quyền quảng bá Công trình này cho thấy sự hiệu quả của blockchain trong việc
phát hiện thực thé gây hại, đảm bảo tính chịu trách nhiệm, tính bat biến của thông tin được lưu lại và khả năng triển khai quy mô lớn khi áp dụng blockchain cho việc xác thực.
1.4 Tính khoa học và tính mới của đề tài
SDN là một mô hình mới, hứa hẹn sẽ phát triển trong tương lai SDN giúp cho việc
quản lý và kiểm soát mạng hiệu quả và đơn giản hơn SDN cung cấp một mạng tập trung,
có thê lập trình, có thể cung cấp hệ thống mạng linh động để giải quyết các nhu cầu thay đổi của các doanh nghiệp Với SDN, quản trị viên có thể thay đổi bất kỳ quy tắc chuyển đổi mạng nào khi cần thiết, cô lập hoặc thậm chí chặn các loại gói cụ thể với mức độ kiểm soát và bảo mật cụ thé Tuy nhiên van đề bảo mật là một thách thức lớn với mang SDN Việc truy cập vào bộ điều khiển cho phép đối tượng tham gia hệ thống mạng có thể có
Trang 22được nhiều thông tin quan trọng và có thé kiểm soát được toàn toàn bộ hệ thống mạng Do
đó, cần có cơ chế xác thực, phần quyền và kiểm soát các ứng dụng một cách chặt chẽ khi truy cập và sử dụng kênh giao tiếp Northbound Ngoài ra, cơ chế này cần phải khắc phục
được các nhược điểm của cơ chế cũ trước đây như: dữ liệu có thể chỉnh sửa hoặc xoá đổi,
leo thang đặc quyền trên ứng dụng hoặc xóa bỏ các tập tin ghi log; mô hình quan lý tập
trung (centralization) gây ra vấn đề một điểm chết của hệ thống.
Để giải quyết những vấn đề trên, nhóm đề xuất một hệ thống AAA với các cách tiếp
cận sau:
e Phan tích những nguy cơ bao mật, lỗ hồng tại kênh giao tiếp Northbound và
những yêu cầu cho việc xây dựng một cơ chế xác thực tin cậy dựa trên chuẩn
AAA Điều này đảm bảo việc xác thực, phân quyền và kiểm soát các ứng dụng khi truy cập đến bộ điều khién một cách đúng đắn và an toàn.
e Sử dụng công nghệ Blockchain làm nền tảng Với các đặc điểm: bền bỉ dữ liệu
và phi tập trung, việc sử dụng công nghệ Blockchain làm nền tảng giúp cho hệ thống AAA mới có thể khắc phục được các điềm yếu còn tồn tại trong các hệ thống cũ.
Với các tiếp cận này, hệ thống xác thực mới do nhóm đề xuất sẽ có thể khắc phục các điểm yếu còn tồn tại trong các hệ thống xác thực truyền thống Qua đó giúp tăng cường
bảo mật cho bộ điều khiển khỏi những ứng dụng độc hại và giúp hệ thống mạng SDN hoạt
động an toàn và tin cậy hơn.
thống AAA này sẽ thực hiện xác thực và phân quyền cho những ứng dụng truy cập bộ điều
khiển Ngoài ra hệ thống sẽ tận dụng những đặc tính của blockchain dé có thé đảm bảo tính
Trang 23bên bi, độ tin cậy và khả năng phục hồi nhanh cho dữ liệu Tác giả đề xuất hệ thống AAA
hướng tới một sô mục tiêu sau:
Xây dựng cơ chế xác thực cho ứng dụng quan lý mang/cau hình bao mật mang
muốn truy cập vào bộ điều khiển hay những đối tượng hoạt động trong SDN Xây dựng cơ chế phân quyền cho ứng dụng quản lý mạng/cấu hình bảo mật
mạng, mọi yêu cầu từ ứng dụng gửi lên bộ điều khiển sẽ được kiểm tra quyền
hạn trước khi bộ điều khiển trả về dit liệu được yêu cau.
Xây dựng tính năng truy vết hoạt động của ứng dụng trong SDN dựa trên blockchain, mọi hoạt động đều được ghi log trên blockchain.
Đảm bảo tính sẵn sàng của hệ thống, giảm thiểu nguy cơ lỗi single-point of failure và khả năng phục hồi nhanh chóng bằng cách tận dụng đặc tính phi tập
trung (decentralised) của blockchain.
Đảm bao tính bền bi và độ tin cậy của dữ liệu bằng cách tận dụng đặc tính bat
biến (immutability) của blockchain, dé liệu được lưu rất khó có thể bị sửa đổi
hay xóa đi.
1.6 Đối tượng nghiên cứu
Các ứng dụng quản lý mạng/cấu hình bảo mật mạng.
Các bộ điều khiển khi tương tác với từng vùng mạng.
Công nghệ blockchain và đặc tính của nó.
Những hệ thống và loại giao thức AAA (Authentication — Authorisation
-Accounting) phổ biến.
Các kênh giao tiếp của cấu trúc SDN
Mạng điều khiển phần mềm (SDN)
1.7 Pham vi nghiên cứu
Đề xuất mô hình AAA dựa trên blockchain dé thực hiện xác thực, phân quyền phi tập trung và kiểm soát cho các ứng dụng quản lý và cầu hình mạng trên
môi trường mạng khả lập trình.
Trang 24© _ Cung cấp tính năng hỗ trợ điều tra, truy vết cho mang khả lập trình.
e _ Xây dựng và triển khai hệ thông như mô hình đã đề xuất
e _ Đánh giá hiệu suất hoạt động của hệ thống
e _ Triển khai mang SDN và xây dựng ứng dụng SDN dé kiểm tra thử nghiệm hệ
thống AAA
e Triển khai mạng blockchain và xây dựng chaincode đề hiện thực mô hình đã
đề xuất
1.8 Nội dung và Phương pháp thực hiện
Nội dung 1: Tim hiểu kiến trúc, nguyên tắc hoạt động của mang SDN, các kết nối giữa ứng
dụng và bộ điêu khiên.
e Mục tiêu:
o Nắm được kiến trúc, nguyên tắc hoạt động của hệ thống mang SDN.
o_ Triển khai được một hệ thống mạng SDN.
o Xây dựng một số ứng dụng SDN dé sử dụng trong việc thực nghiệm hệ
thống.
e Phuong pháp:
o Nghiên cứu tài liệu về kiến trúc của SDN, những mô hình SDN va những
phương pháp triển khai một mạng SDN.
o Thực hiện triển khai mang SDN với Mininet/Containernet với bộ điều khiển
là Ryu.
o Xây dựng ứng dụng SDN cho bộ điều khiển Ryu bằng ngôn ngữ Python.
Nội dung 2: Tìm hiểu tổng quan về blockchain và xây dựng cơ chế xác thực dựa trên
blockchain.
e Mục tiêu:
o Nắm được kiến thức tổng quan và các đặc tính của công nghệ blockchain.
o_ Triển khai một hệ thống blockchain có chức năng xác thực cho mạng khả
lập trình, triển khai trên một máy ảo Ubuntu, bao gồm hai tô chức và mỗi
tổ chức chứa hai peer.
Trang 25Sử dụng các công nghệ như Hyperledger Fabric, Kubernetes Rancher, Raft
đề triển khai và quản lý blockchainXây dựng cơ chế xác thực theo dang token trên hợp đồng thông minh (smartcontract) bằng ngôn ngữ Go
Nội dung 3: Xây dựng thêm cơ chế phân quyền và kiểm soát cho hệ thống quản lý an ninh
Nắm kiến thức về cơ sở dữ liệu
Xây dựng cơ sở dữ liệu tiết kiệm tài nguyên, chính xác, có thể được truyxuất dé dang và có định dạng thân thiện người dùng
Xây dựng cơ chế phân quyền hoạt động với cơ chế xác thực
e Phương pháp:
S Nghiên cứu những tài liệu về phương pháp xây dựng cơ sở dữ liệu, kỹ thuật
phân quyền và những loại mô hình phân quyền
Xây dựng cơ chế phân quyền dựa trên token được tạo ở cơ chế xác thực,trên hợp đồng thông minh (smart contract) bằng ngôn ngữ Go
Nội dung 4: Thực nghiệm và đánh giá kết quả
e Mục tiêu:
S Triển khai cơ chế xác thực dựa trên blockchain cho hệ thống quản lý an ninh
trong môi trường mạng khả lập trình và có hỗ trợ cơ chế phân quyền và
kiêm soát.
Trang 26Triển khai hệ thống mạng khả lập trình trên môi trường giả lập
Đánh giá hiệu năng và độ chính xác trong quá trình hoạt động thông qua
Sử dụng những ứng dụng mạng khả lập trình và kịch ban thử nghiệm déđánh giá hoạt động và độ hiệu quả của hệ thống quản lý an ninh
Xây dựng kịch bản tan công dé đánh giá độ an ninh của hệ thong
10
Trang 27Chuong 2: TONG QUAN
2.1 Kiến thức nền tang
2.1.1 Mạng khả lập trình (SDN)
Tổng quan:
Trong một hệ thống mạng truyền thống, những thiết bị mạng thường có chức năng
cố định, như bộ chuyền mạch hoặc bộ định tuyến Hầu hết những phần mềm và phần cứng
của những thiết bị mạng truyền thống được sản xuất độc quyền và cấu hình chuyên dụngcho từng chức năng cụ thé Vì thế, những thiết bi mạng đến từ cùng một nhà sản xuất sẽhoạt động cực kỳ hiệu quả với nhau, có thé tương tác và trao đôi thông tin dữ liệu một cáchtrơn tru và nhanh chóng.
Tuy nhiên, chính sự độc quyền và chuyên dụng của những thiết bị này là nguyênnhân mạng truyền thong không có tính linh hoạt và khả năng mở rộng cao Theo thời gian,
nhu cầu và mục đích sử dụng hệ thống mạng có thể sẽ thay đôi và hệ thống mạng sẽ phải
được nâng cấp, hoặc thay đổi, dé thỏa mãn nhu cầu sử dụng Giai đoạn nâng cấp chính làlúc nhược điểm của mạng truyền thống thể hiện rõ nhất, thường sẽ phải thay thiết bị cũbăng thiết bị hoàn toàn mới Điều này sẽ gia tăng chỉ phí và thời gian cho việc nâng cấp hệthống
Đề có thé khắc phục được tính cố định và thụ động của mạng truyền thống, một kiến
trúc mạng mới được dé xuất, gần đây đang trở thành một tiêu điểm trong lĩnh vực mang,
được gọi là mạng khả lập trình (Software Defined Network - SDN).
Mạng khả lập trình cho phép hệ thống mạng trở nên linh động, linh hoạt hơn và cóthể lập trình hoạt động dễ dàng hơn Hơn nữa, mạng khả lập trình còn cho phép người dùng
ảo hóa phần cứng của mình, làm cho quá trình nâng cấp và mở rộng hệ thống trở nên nhanhchóng và đơn giản hơn.
11
Trang 28Hình 2.1: Cấu trúc của SDN
Tang điều khiển (Controller Layer), là không gian hoạt động của một hay nhiều bộđiều khiển (controller) Những phần bộ điều khiến này là những phần mềm có chức năngđiều khiển luồng mạng (network flow), thực hiện cấu hình cho các thiết bị mạng và quản
lý toàn bộ hệ thống mạng Có thé xem như tang điều khiến là bộ não của mạng khả lậptrình Sự tập trung quản lý này sẽ cho phép hệ thống quản lý, bảo mật tài và sử dụng tàinguyên một cách tôi ưu hơn.
Tang ứng dụng (Application Layer) là nơi hoạt động của những ứng dụng hay dịch
vụ mạng và chứa đựng tài nguyên hệ thống Những ứng dụng mạng là phương tiện cho
người dùng hoặc người quản trị hệ thống có thé giao tiếp với bộ điều khiển và hệ thống
mạng ứng dụng mạng có thé có một số chức năng như: truy van thông tin hệ thống, cau
12
Trang 29hình thiết bị, cân bằng tải, tường lửa hay sửa đổi quy luật của luồng mang Các ứng dụng
sẽ được nối trực tiếp đến mạng và giao tiếp với bộ điều khiển thông qua những API(Application Programming Interface) được cung cấp bởi chính bộ điều khiển Những APInày sẽ gửi yêu cầu sử dụng chức năng mạng (network functions) từ ứng dụng lên bộ điềukhiển Sau đó, bộ điều khiển sẽ xử lý yêu cầu, xác định đường đi cho các luồng dữ liệu
(network flow), xác định các giao thức luồng sẽ sử dung (flow protocol) và cuối cùng sẽ
thực hiện chức năng mạng đã được yêu câu.
Tang hạ tang (Infrastructure Layer) bao gồm phan cứng như các switch, router vànhững thiết bị chuyền tiếp dữ liệu mạng khác Một ưu điểm của mạng khả lập trình là sự
sử dụng công nghệ ảo hóa cho phần cứng và các chức năng mạng đã được cung cấp bởitầng điều khiển Vậy nên, hệ thống mạng không cần phải sử dụng phan cứng chuyên dụng
và chính điều này giúp cho việc nâng cấp mở rộng trở dễ dàng hơn.
Mô hình SDN sẽ làm tăng cường hiệu suất và bảo mật cho các ứng dụng trong mạng.Ngoài ra, SDN cũng linh hoạt, linh động và dé dàng hon trong việc thay đổi cấu hình hoặc
nâng cấp hệ thống.
Kênh giao tiếp Northbound và Southbound:
Hệ thống mạng khả lập trình sẽ có hai kênh giao tiếp chính: kênh giao tiếp hướngBắc (Northbound Interface) và kênh giao tiếp hướng Nam (Southbound Interface)
Tang điều khiển và tang ứng dụng sẽ giao tiếp với nhau qua kênh giao tiếp hướngBắc Những API, thường sẽ theo dang RESTful, của bộ điều khiển sẽ nhận yêu cầu từ ứngdụng qua kênh giao tiếp này Một số chức năng mà API có thể cung cấp cho ứng dụng:
© Cho phép thiết lập hay truy van bat kì thuộc tính hay trạng thái nào trong phạm
vị cho phép.
e Cho phép ứng dụng điều khiển luồng dữ liệu
e Cho phép một số chức năng như STP, MAC, ICMP, 802.1X.
¢ Cho phép ứng dụng đăng ký thông báo lỗi hay cảnh báo vượt ngưỡng
13
Trang 30e Cho phép ứng dụng gọi các chức năng xử lý lưu lượng.
Tang điều khiến và tang hạ tang sẽ giao tiếp với nhau qua kênh giao tiếp hướng Namcủa bộ điều khién Kênh giao tiếp có thé sử dụng nhiều loại chuẩn giao tiếp khác nhau Mộttrong những chuẩn giao tiếp được phổ biến sử dụng nhất và cũng là chuẩn được thiết kếđầu tiên là chuan giao tiếp OpenFlow
Vấn đề bảo mật của SDN:
SDN hứa hẹn có thé thay thế mạng truyền thống trong tương lai Tuy nhiên, ở hiệntại, điều này là vẫn chưa thể vì SDN cũng đi kèm với một số vấn đề bảo mật đặc biệt của
nó Sau đây là một số vấn đề an ninh của SDN:
e Tan công vào lớp ứng dụng:
o Lợi dụng lỗ hồng trong quyền của ứng dụng
o Tấn công vào lỗ hồng trong Northbound API
e Tan công vào lớp bộ điều khiển:
o Đầu độc bộ điều khiển
o Tran gói tin đi vào
o Tran bảng chuyền mach của bộ điều khiển
o Ép buộc switch ngắt kết nối
e Tan công vào kênh Southbound:
o_ Tấn công nghe lén
o Tấn công người đứng giữa
e Tan công vào lớp hạ tang:
o Tan cong đầu độc ARP
o Thay déi/xa flow-rule
o Tran flow-rule
o Malformed control packet injection.
o Tan công kênh bên
e Khó khăn về đảm bảo an ninh của hệ thống:
14
Trang 31o Chuẩn đánh giá độ an ninh của hệ thống SDN
o Khó khăn trong điều tra hệ thống SDN
o Độ tin tưởng của các ứng dụng mạng trong hệ thống
Trong số những vấn đề an ninh của SDN, một trong những vấn đề nghiêm trọng
nhất là sự thiếu cơ chế xác thực cho các ứng dụng trong SDN SDN hoạt động trong môi
trường có nhiều ứng dụng được phân bố phân tán và không có độ tin tưởng cao Vì thé,SDN cần phải xác thực và phân quyền cho các ứng dụng hoạt động trên mang dé tránhnhững trường hợp mạo danh dé truy cập trái phép hay một ứng dụng nào đó lợi dụng lỗhồng trong API dé có thể thực hiện tấn công leo thang Ngoài ra, đề có thé dé dàng thựchiện điều tra mỗi khi sự cố xảy ra, SDN cần một cơ chế nhật ký chính xác, có độ tin cậycao, có thé chống tan công thay đồi, có tốc độ phục hồi nhanh và có tính ràng buộc cao Dégiải quyết những khó khăn trên, ta có thể tận dụng những đặc tính blockchain cho cơ chế
an ninh bao gồm chức năng xác thực, phân quyền và kiểm soát cho SDN Đây là lý donhóm chọn đề tài
2.1.2 Công nghệ Blockchain
Blockchain là một mô hình cơ sở dữ liệu phi tập trung (decentralised) Công nghệ
blockchain được mọi người biết đến lần đầu tiên khi một người, hay nhóm người, tênSatoshi Nakamoto công bố một bài báo nghiên cứu tựa đề “BitCoin: A peer to peerelectronic cash system” vào năm 2008 Bai báo này đưa ra ý tưởng về một cuốn sô cái điện
tử phân bồ phi tập trung trên một hệ thống mạng và có khả năng chống lỗi cao Blockchainđược tạo ra dé cho phép người dùng lưu trữ thông tin một cách an toàn, độ tin tưởng cao,tính bất biến cao (Gmmutability), tính minh bach (transparency)
Blockchain chạy trên một hệ thống mang ngang hang (peer-to-peer) thay vì ở mộtmáy chủ nhất định Dữ liệu trên hệ thống blockchain sẽ được lưu phân tan ở nhiều máychủ (node) lưu trữ khác nhau trong hệ thống Mỗi node sẽ chứa một bản sao của toàn bộ
dữ liệu cua mạng Moi loại dữ liệu đều có thé được lưu trên mạng blockchain
Một số đặc tính của blockchain có thé tận dụng trong việc đảm bảo an ninh:
15
Trang 32a) Tinh phân tán - Mạng blockchain là mạng ngang hang (peer-to-peer) và mọi hoạt
động trên mạng đều phải được các node trong mạng đồng thuận trước khi thựchiện, cho nên không có một node nào có thê chỉ phối cả hệ thống mạng theo lợi
ích riêng.
b) Khả năng phục hoi - Tat cả những node trong mạng blockchain sẽ nắm giữ bản
sao của bộ dữ liệu, vi thế, nếu một bản sao bị phát hiện có lỗi, hệ thống có thé dédàng tiễn hành phục hồi cho node bị lỗi và không hề làm ảnh hưởng đến hoạtđộng của toàn thể hệ thống
c) Tinh trong suốt - Tat cả mọi thông tin được lưu lại trên blockchain đều có thé
được đọc bởi tất cả mọi người, điều này giúp cho việc kiểm chứng thông tin vàsửa lỗi trong bộ dữ liệu dễ dàng hơn, đảm bảo độ tin cậy cho blockchain
d) Tính bat biến - blockchain có thé đạt được tính bất biến nhờ vào cấu tạo liên kết
giữa các khối (mỗi khối sẽ chứa giá trị băm của khối trước nó), công nghệ băm
và chữ ký điện tử Khi dữ liệu ở một khối thay đổi, giá trị băm của khối ấy sẽ
khác với giá trị được lưu trên khối sau nó Lỗi sẽ được phát hiện và sửa một cáchnhanh chóng và dé dàng Ngoài ra, việc phát hiện lỗi càng dé dàng vì tat cả các
node trong mạng đêu năm một bản sao của chuôi dữ liệu
e) Tinh ràng buộc - Tất cả những ghi chép giao dịch trên blockchain đều luôn kèm
theo thông tin về thời gian, người gửi và người nhận trong giao dịch, kết hợp vớitinh bat biến va tính trong suốt thi việc giả mạo hay chối từ một giao dịch đã đượcthực thi là cực kỳ khó khăn (đường như là không thé đối với một blockchain đủ
đài).
Tính đồng thuận — Tat cả mọi hoạt động trên mạng blockchain phải được sự đồngthuận của phần lớn thành viên trong mạng Nếu một người muốn chiếm toànquyền kiểm soát hoạt động của mạng, người ấy phải chiếm quyền kiểm soát được
16
Trang 33phan lớn (ít nhất là 51%) node trong mạng Điều kiện này dường như không thé
đạt được với một mạng blockchain lớn có hàng triệu node tham gia.
Khi tận dụng những thuộc tính trên của blockchain vào hệ thống SDN, ta có thể xâydựng một sô chức năng an ninh như:
a) Application flows authentication - Blockchain sẽ giúp hệ thống xác thực các
application flow có trong hệ thống mạng đến từ các application hợp pháp
b) Application flows tracing and accounting - Blockchain mang đến khả năng truy
vết và tính ràng buộc trách nhiệm, giúp cho việc xử lý sự cố một thiết bị mạng bị
hỏng.
c) Secure access control on network-wide resources - Blockchain có thé cung cấp
chức năng kiểm soát truy cap (access control) cho hệ thống mạng, đảm bảo độtin cậy cho các thiết bị
d) Controller-switch communication authentication - Blockchain cũng có thé duoc
áp dụng dé phục vụ cho việc xác thực giao tiếp giữa các controller va switch
Hoạt động của blockchain:
Theo như tên, dữ liệu trong blockchain sẽ được chia thành nhiều khối (block) vàđược nối với nhau thành chuỗi (chain) Blockchain tận dụng rất nhiều công nghệ băm(hash) và chữ ký số trong việc lưu trữ dữ liệu
Một khối thường lưu một số gia tri sau:
e Previous Block Hash - Giá tri băm của khối nằm phía trước chính mình Chính
giá trị băm này là mắt xích của những khối trong chuỗi và cũng là lý do mà
blockchain có thé đảm bảo độ tin cậy cao Như đã biết về hàm băm, mỗi giá tri đầu vào chỉ có một giá trị đầu ra duy nhất Vậy, chỉ cần một thay đôi nhỏ ở một
khối, giá trị băm của khối đó sẽ thay đổi hoàn toàn và sẽ khác với giá trị bămđược lưu ở khối sau nó Vậy lỗi sẽ được phát hiện ngay lập tức và vì bản sao bộ
dữ liệu được lưu ở nhiêu nơi, việc phục hôi có thê được thực hiện cực kỳ dê
17
Trang 34dàng Nếu một kẻ xấu muốn chỉnh sửa thông tin tại một khối thì cũng sẽ phảichỉnh sửa thông tin từ khối đó đến hết chuỗi Đối với một chuỗi dài thì điều này
sẽ tiêu tốn cực kỳ nhiều thời gian và tài nguyên và dường như là không thé
e Nonce - Giá trị này góp phan tạo nên giá trị băm của một khối Ngoài ra, đối với
những mạng blockchain có sử dụng những thuật toán xác thực như POW hayPOC, giá trị nonce này sẽ được sử dụng trong quá trình xác thực khối
e Timestamp - Giá trị thời gian khối này được đưa tạo ra.
e Merkel Root Hash - Hash của những giao dich nằm trong khối Danh sách giao
dịch thường sẽ được đưa qua hàm băm và lưu dưới dang cây Merkle dé tăngcường độ tin cậy cho thông tin giao dịch.
Quá trình giao dịch:
Khi người dùng muốn khởi tạo một giao dịch (cụ thé giao dịch là hành động gi sẽtùy thuộc vào thiết của mạng), một thông báo về khởi tạo giao dịch sẽ được quảng bá đếntất cả các node trong mạng blockchain
Sau đó, các node trong mạng sẽ tiến hành kiểm chứng giao dịch xem có hợp lệ haykhông Một sỐ giá tri có thé sẽ được kiểm chứng là: địa chỉ nguồn va dich, giao dịch cótrong phạm vi quyền của node không, node giao dịch có hợp lệ hay được mạng tin tưởng
hay không,
Sau khi đánh giá và kiểm chứng xong, node sẽ tiễn hành xác nhận và xác thực giaodịch Các node sẽ sử dụng giải thuật đồng thuận dé đưa ra được một quyết định xác thựcmột cách đồng thuận (Proof-of-Work, Proof-of-Stake, Crash Fault Tolerant, ByzantineFault Tolerance ), đảm bảo được sự đồng bộ của tất cả bản sao phân tán của bộ dữ liệu vàđảm bảo sự tin tưởng giữa các node trong mạng Một khi tất cả các node đồng ý, giao dịch
sẽ được thực hiện và lịch sử giao dịch sẽ được lưu lại trên blockchain.
18
Trang 35Trong thực tế, sẽ có nhiều yêu cầu giao dịch sẽ được thực hiện cùng một lúc Nhữnggiao dịch này sẽ được nhóm lại vào cùng một khối Một khối sẽ được đưa đi đóng gói vàxác thực khi khối ấy đầy hết dụng lượng cho phép hay sau một khoảng thời gian được quyđịnh nao đó Node hay nhóm node nào hoàn thành xong xác thực cho khói đầu tiên sẽ đượcthưởng và nếu là node nằm ngoài mạng blockchain thì sẽ được quyền tham gia mạng.
2.1.3 Thuật toán đồng thuận
Hệ thống blockchain không phụ thuộc vào sự quản lý của bên thứ ba hay một máychủ duy nhất nào trong hệ thống mà chính tất cả các máy chủ trong thống sẽ tự quản lý lẫnnhau Dé có thé quản lý, đồng bộ, kiểm duyệt và đảm bao tin cậy dữ liệu trong môi trườngphi tập trung, blockchain sử dụng một loại giải thuật đặc biệt gọi là giải thuật đồng thuận
(Consensus Algorithm)
Giải thuật đồng thuận cho phép những máy chủ trong mạng blockchain có thê đưa
ra một quyết định thống nhất khi phê duyệt và kiểm chững những giao dịch trong mang.Mỗi giao dịch sẽ được thực hiện và lưu vào cơ sở dữ liệu nếu phần lớn những node trongmạng blockchain đồng ý thông qua cho giao dịch Điều nay đảm bảo mỗi thông tin giaodịch trên mạng blockchain là chính xác tuyệt đối
Giải thuật đồng thuận như một bộ luật mà tất cả các node trong mạng blockchainđều tuân thủ Nhờ giải thuật đồng thuận mà mạng blockchain có thé dam bảo độ tin cậy
của từng node hoạt động trong mạng Hiện nay, đã có rất nhiều giải thuật đồng thuận đã
được đê ra và môi giải thuật đêu có điêm mạnh, điêm yêu và mục đích ứng dụng riêng.
Một số loại giải thuật đồng thuận phô biến:
¢ Proof-of-Work (PoW) - Đây là một trong những giải thuật đồng thuận đầu tiên
được thiết kế và được biết đến nhiều khi được sử dụng trong BitCoin Thuậttoán này hoạt động băng cách bắt buộc những node muốn tham gia mạngblockchain phải giải một bài toán Bài toán này tiêu tốn khá nhiều tài nguyêntính toán và kết quả của bài toán được sử dụng trong quá trình xác thực một
19
Trang 36block mới cho blockchain Chỉ duy nhất node đầu tiên đưa ra câu trả lời đúngđược tham gia vào mạng Điều này đảm bảo những node mới tham gia vào mạng
sẽ phải đầu tư khá nhiều về ha tầng và giảm thiểu ý muốn tan công hệ thống
Proof-of-Stake (PoS) - POS là một giải thuật đồng thuận phổ biến khác cho blockcham, được sử dụng cho Ethereum Thay vì đầu tư năng lực tính toán như
ở POW, POS bắt những node tham gia xác thực cọc một khoản tiền cho hệ thống.
Node nào có càng nhiều tiền cọc thì sẽ càng có cơ hội cao được hệ thống chọn
thực hiện xác thực Sau khi hoàn thành xác thực, node thực hiện xác thực sẽ
được thưởng một số Nếu một node bị phát hiện là đã xác thực giao dịch bắt hợp
pháp thì node đó sẽ bi thu hồi toàn bộ số tiền cọc Cơ chế cọc tiền này rất hiệuquả trong việc can ngăn hành vi xác thực gian dối trên hệ thống
Proof-of-Burn (PoB) - POB được sinh ra từ nhu cầu muốn giảm thiểu sự tiêu
hao năng lượng của POW Trên POB, những node trên mạng sẽ phải bỏ ra, hay
là “đốt”, một khoản tiền để đổi lay quyén được xác thực block mới choblockchain Lượng block một node được quyền xác thực sẽ phụ thuộc vào khoảntiền mà node ay đã “đốt” Sau đó, node sẽ có thé thực hiện xác thực block vanhận tiền thưởng khi hoàn thành Cơ chế này tiết kiệm tài nguyên rất nhiều so
với POW.
Blockchain còn được xem như một sô cái công khai đê lưu trữ dữ liệu giao dịch và
sô cái này không được năm giữ bởi bat ky ai Một đặc điêm đặc biệt của cuôn sô cái này là
những thông tin được lưu trên đây sẽ không thé bị thay đổi hoặc xóa đi, dam bảo tính toàn
vẹn cho thông tin.
2.1.4 Mô hình bảo mật AAA
Chiến lược bảo mật hệ thống AAA (Điều khiến truy xuất-Access control, Xác
thực-Authentication, Kiêm tra-Auditing) được xem là bước tiép cận cơ bản và là chiên lược nên
tảng đề thực thi các chính sách bảo mật trên một hệ thống được mô tả theo mô hình CIA
(Tính bí mat-Confidentiality, Tính toàn ven- Integrity, Tinh khả dụng- Availability).
20
Trang 37Cơ sở của chiên lược nảy như sau:
1 Quyền truy xuất đến tất cả các tài nguyên trong hệ thống được xác định một
cách tường minh và gán cho các đối tượng xác định trong hệ thống
2 Mỗi khi đối tượng muốn vào hệ thống dé truy xuất các tài nguyên, nói phải được
xác thực bởi hệ thống để chắc chắn rằng đây là một đối tượng có quyền truy
xuất
3 Sau khi được xác thực, tất cả các thao tác của đối tượng đều phải theo dõi dé
bao đảm đối tượng không thực hiện quá quyền hạn của mình
AAA gồm 3 lĩnh vực tách rời nhưng hoạt động song song với nhau nhằm tạo ra các
cơ chế đề bảo vệ sự an toàn của hệ thống.
¢ _ Thiết lập các cơ chế điều khiến truy xuất cho từng đối tượng (Access control)
* Xác thực đối tượng trước khi cho phép thao tác trong hệ thống (Authentication)
« Theo dõi các thao tác của đối tượng trên hệ thong (Accounting)
Diéu khién truy xuat:
Diéu khién truy xuất được định nghĩa là một quy trình được thực hiện bởi một thiết
bị phần cứng hay một module phần mềm, có tác dụng chấp thuận hay từ chối một sự truyxuât cụ thê đên một tài nguyên cụ thê.
Các mô hình điêu khiên truy xuât phô biên:
e Attribute Based Access-Control - Kiểm soát truy cập dựa trên thuộc tinh
(ABAC) là một cách tiếp cận khác dé kiểm soát truy cập, trong đó quyền truy
cập được cấp thông qua việc sử dụng các chính sách được tạo thành từ các thuộc
tính hoạt động cùng nhau ABAC sử dụng các thuộc tính làm khối xây dựng để
xác định các quy tac kiêm soát truy cập và các yêu câu truy cập.
e_ Role Based Access Control - Đây là mô hình điều khiển truy xuất dựa trên vai
trò của từng người dùng trong hệ thống (user roles)
21
Trang 38Van đề quan trọng trong mô hình điều khiển truy xuất theo vai trò là định nghĩa cácquyên truy xuất cho từng nhóm đối tượng tùy theo vai trò của các đối tượng đó.Việc này được định nghĩa ở mức hệ thống và áp dụng cho tất cả các đối tượng.
Xác thực:
Xác thực là một thủ tục có chức năng xác minh nhận dang (identity) của một đốitượng trước khi trao quyền truy xuất cho đối tượng này đến một tài nguyên nào đó Xác
thực được thực hiện dựa trên 3 cơ sở:
e What you know (diéu mà đối tượng biết): ví dụ mật khâu
e What you have (cái mà đối tượng có ): ví dụ thẻ thông minh smartcard
e What you are (đặc trưng của đối tượng): các đặc diém nhận dang sinh trắc học
như dâu vân tay, võng mạc,
Có nhiều giải thuật xác thực khác nhau Giải thuật đơn giản nhất chỉ cần so sánh tênđăng nhập va mật khâu mà người sử dụng cung cấp với tên đăng nhập va mật khâu đãđược lưu trong hệ thống, nếu giống nhau nghĩa là thủ tục xác thực thành công (PAP) Giải
thuật phức tạp hơn như CHAP thì thực hiện việc mã hoá thông tin trên một giá trị ngẫu
nhiên nao đó do may chu đưa ra (gọi là challenge) dé tránh trường hợp mật khẩu bị đọc lén trên mạng và các hình thức tấn công phát lại (reply attack) Một giải thuật phức tạp khác là Kerberos thực hiện thủ tục xác thực theo một quá trình phức tạp gồm nhiều bước nhằm
đảm bao hạn chê tat cả các nguy cơ gây nên xác thực sai.
Kiểm tra
Kiểm tra là cơ chế theo dõi hoạt động của hệ thống ghi nhận các hành vi diễn ra trên
hệ thông và liên kêt các hành vi này với các tác nhân gây ra hành vi.
Các mục tiêu của kiêm tra:
e_ Cung cấp các thông tin cần thiết cho việc phục hồi hệ thống khi có sự có.
e Đánh giá mức độ an toàn của hệ thống dé có kế hoạch nâng cấp kịp thời
22
Trang 39e_ Cung cấp các thông tin làm chứng cứ cho việc phát hiện các hành vi truy xuất
trái phép trên hệ thông
Trong một hệ thống tin cậy (reliable system) thì việc kiểm tra cũng là một yêu cầuquan trọng bởi vì nó đảm bảo răng các hành vi của bất kỳ người dùng nào trong hệ thống(kế cả những người dùng hợp lệ đã được xác thực — authentication user) cũng đều đượctheo dõi dé chắc răng những hành vi đó diễn ra đúng theo các chính sách anh toàn đã đượcđịnh nghĩa trên hệ thông
Các thành phần của hệ thống kiểm tra:
e Logger - Ghi lại thông tin giám sát trên hệ thống
e Analyzer - Phân tích kết quả kiểm tra
e Notifier - Cảnh báo về tinh an toàn của hệ thống dựa trên kết quả phân tích
2.1.5 RESTful API
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) dé tiện cho việc quan lý các resource Nó chú trọng vào tài nguyên
hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động ), bao gồm các trạng thái
tài nguyên được định dạng và được truyền tải qua HTTP.
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên
sẽ sử dụng những phương thức HTTP riêng.
e GET (SELECT): Trả về một Resource hoặc một danh sách Resource
e POST (CREATE): Tao mới một Resource.
e PUT (UPDATE): Cập nhật thông tin cho Resource.
e DELETE (DELETE): Xoá một Resource.
23
Trang 40Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với
Create, Read, Update, Delete — Tao, Doc, Sửa, Xóa.
2.1.6 Chữ ky số
Chữ ký số là một dạng của chữ ký điện tử Nó là một dạng dữ liệu dùng để chứng
thực cho các dữ liệu khác Việc chứng thực diễn ra như thế nào chúng ta sẽ tim hiểu ở phần
tiếp theo
Chữ ký số sử dụng một hệ mã hóa bất đối xứng Trong phần lớn các trường hợp, nócòn có thể kiểm tra cả tính toàn vẹn của dữ liệu nữa Chữ ký số tương tự như chữ ký taytrên nhiều phương diện nhưng việc cài đặt và sử dụng chữ ký số khó khăn hơn rất nhiều.2.1.7 Hệ mã hoá bat đối xứng
Hệ mã hóa bat đối xứng (asymmetric cryptography) hay còn gọi là hệ mã hóa publickey là một hệ mã hóa sử dụng một cặp key dé mã hóa và giải mã: khóa công khai (publickey) dùng để mã hóa và khóa bí mật (private key) đề giải mã
Trong hệ mã hóa này, bắt cứ ai cũng có thể sử dụng khóa công khai đã mã hóa bảntin và gửi cho người nhận Nhưng một điều hiển nhiên là người sở hữu khóa bí mật sẽ giữ
nó cho riêng mình, và do đó, chỉ chủ sở hữu khóa bí mật mới có giải mã được mà thôi.
Thông thường thì cặp khóa được sinh này sẽ cố gắng đảm bảo rang từ khóa côngkhai rất khó (gần như là không thé) truy ra được khóa bí mật Vì vay, bat cứ kẻ tan công
nào nếu có được khóa công khai (điều này khá dé dàng) cũng không thé có được khóa bí
mật đê giải mã.
24