Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ mạng hiện đại, xu hướng ảo hóa hạ tầng mạng (virtualized network infrastructures) và điện toán đám mây (cloud computing) ngày càng trở nên phổ biến nhằm đáp ứng nhu cầu mở rộng dịch vụ linh hoạt. Mạng khả lập trình (Software-Defined Networking - SDN) ra đời như một giải pháp thay thế mạng truyền thống nhờ kiến trúc phân tách độc lập giữa tầng điều khiển (Control Layer) và tầng chuyển tiếp dữ liệu (Infrastructure Layer). Việc quản lý mạng tập trung qua bộ điều khiển (Controller) cho phép lập trình cấu hình luồng dữ liệu mềm dẻo thông qua giao diện lập trình ứng dụng hướng Bắc (Northbound REST API).
Tuy nhiên, kiến trúc SDN phải đối mặt với các thách thức an ninh nghiêm trọng tại kênh giao tiếp Northbound do thiếu cơ chế xác thực và phân quyền chặt chẽ cho các ứng dụng mạng bên thứ ba. Các ứng dụng độc hại có thể lợi dụng lỗ hổng API để thực hiện leo thang đặc quyền, chiếm quyền điều khiển toàn bộ mạng, hoặc truy cập trái phép vào các nguồn tài nguyên nhạy cảm. Mặt khác, các hệ thống xác thực tập trung truyền thống bộc lộ nhược điểm tồn tại điểm lỗi duy nhất (single point of failure), dữ liệu phân quyền và nhật ký (log) có nguy cơ bị chỉnh sửa hoặc xóa bỏ, gây khó khăn cho công tác điều tra sự cố. Giải pháp SEAPP của Tao Hu và cộng sự (2021) dù đã kiểm soát quyền gọi REST API nhưng vẫn chưa giải quyết triệt để tính toàn vẹn của cơ sở dữ liệu xác thực và thiếu khả năng tự phục hồi khi gặp sự cố. Để khắc phục các hạn chế này, tác giả đề xuất ứng dụng công nghệ chuỗi khối (Blockchain) để xây dựng cơ chế xác thực, phân quyền và kiểm soát phi tập trung.
Mục tiêu nghiên cứu của đề tài được xác định cụ thể bao gồm:
- Xây dựng cơ chế xác thực cho các ứng dụng quản lý mạng và cấu hình bảo mật mạng khi kết nối đến bộ điều khiển SDN.
- Xây dựng cơ chế phân quyền chi tiết cho ứng dụng mạng trước khi bộ điều khiển xử lý và phản hồi dữ liệu.
- Hỗ trợ tính năng giám sát, truy vết hoạt động của ứng dụng thông qua việc ghi nhật ký bất biến trên sổ cái blockchain.
- Đảm bảo tính sẵn sàng cao, loại bỏ rủi ro điểm chết tập trung và hỗ trợ phục hồi nhanh nhờ bản chất phân tán của blockchain.
- Đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu xác thực, không thể bị sửa đổi hoặc xóa bỏ trái phép.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các ứng dụng quản lý/cấu hình bảo mật mạng; các bộ điều khiển SDN; các kênh giao tiếp trong kiến trúc SDN (đặc biệt là Northbound Interface); công nghệ Blockchain và các đặc tính phân tán, bất biến, đồng thuận; các mô hình an ninh AAA (Authentication - Authorization - Accounting); hệ mã hóa bất đối xứng RSA và chữ ký số.
- Phạm vi triển khai và thử nghiệm:
- Mô hình mạng SDN thử nghiệm gồm 10 máy chủ (hosts) và 02 bộ điều khiển (Ryu Controller) được thiết lập trên môi trường giả lập Mininet/Containernet.
- Mạng Blockchain xây dựng trên nền tảng Hyperledger Fabric gồm 03 tổ chức (organizations), mỗi tổ chức chứa 02 peer; 03 node orderer; 01 Certificate Authority (CA), chạy trên môi trường máy ảo Ubuntu quản lý bởi Kubernetes Rancher và giải thuật đồng thuận Raft.
- Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khóa luận kết hợp các nền tảng lý thuyết và công nghệ cốt lõi sau:
- Kiến trúc mạng khả lập trình (SDN): Mô hình phân tầng gồm Tầng ứng dụng (Application Layer), Tầng điều khiển (Control Layer) và Tầng hạ tầng (Infrastructure Layer). Hai kênh giao tiếp chính gồm Northbound Interface (sử dụng RESTful API) và Southbound Interface (sử dụng giao thức OpenFlow).
- Công nghệ Blockchain và thuật toán đồng thuận: Khái niệm sổ cái phân tán (distributed ledger), cấu trúc khối liên kết bằng hàm băm (Previous Block Hash, Nonce, Timestamp, Merkle Root Hash), tính bất biến và cơ chế đồng thuận phân tán (Raft, CFT, PoW, PoS).
- Mô hình bảo mật AAA: Khung bảo mật kết hợp Điều khiển truy xuất (Access Control/Authorization) theo vai trò (RBAC) và thuộc tính (ABAC); Xác thực danh tính (Authentication) dựa trên cặp khóa công khai - khóa bí mật; Kiểm toán/Kiểm tra (Accounting/Auditing) nhằm lưu trữ lịch sử tương tác phục vụ truy vết.
- Mã hóa bất đối xứng và Chữ ký số: Sử dụng thuật toán RSA để tạo chữ ký điện tử cho mỗi yêu cầu từ ứng dụng, đảm bảo tính toàn vẹn và chống giả mạo danh tính.
- JSON Web Token (JWT): Định dạng mã hóa token nhỏ gọn chứa thông tin phân quyền và hạn dùng, được cấp phát để ứng dụng thực hiện xác thực với bộ điều khiển.
Phương pháp nghiên cứu thực nghiệm và xây dựng hệ thống:
- Phương pháp phân tích - tổng hợp tài liệu: Khảo sát các công trình liên quan như SEAPP (Tao Hu et al.), Bubbles of Trust (Mohamed Tahar Hammi et al.), và hệ thống xác thực IoT/5G-VANETs (Wang et al.).
- Phương pháp thiết kế và phát triển phần mềm/hệ thống: Hiện thực các module hợp đồng thông minh (Smart Contract / Chaincode) bằng ngôn ngữ Go trên nền tảng Hyperledger Fabric; phát triển các ứng dụng mạng và module tích hợp trên bộ điều khiển Ryu bằng ngôn ngữ Python; xây dựng REST API qua giao thức an toàn HTTPS.
- Phương pháp thực nghiệm kiểm thử: Đánh giá chức năng phân quyền, kiểm tra khả năng phòng chống tấn công lặp lại (Replay Attack) bằng phần mềm Wireshark, kiểm thử truy cập không có token / sai token / giả mạo chữ ký, và đo lường hiệu năng thời gian phản hồi cùng khả năng chịu tải của hệ thống.
Thiết kế và triển khai hệ thống
Hệ thống AAA phi tập trung được thiết kế thành các module chức năng độc lập, tương tác với nhau qua mạng Blockchain Hyperledger Fabric và kênh truyền REST API bảo mật:
[SDN Application] <---(1. Request Token)---> [Authentication Module]
| |
(2. Request + Token + Sig) (Issue JWT)
v v
[SDN Controller] <---(3. Validate Access)---> [Authorization Module]
|
[Token / Participant / Log Modules]
1. Cấu trúc các module chức năng
Hệ thống bao gồm 6 thành phần chính:
- Participant Module: Quản lý danh tính các thực thể tham gia mạng blockchain bao gồm SDN Application và SDN Controller.
- Authentication Module: Tiếp nhận thông tin định danh của ứng dụng, kiểm tra tính hợp lệ của đối tượng trên sổ cái và cấp phát token JWT.
- Authorization Module: Tiếp nhận yêu cầu kiểm tra token và chữ ký số từ bộ điều khiển, giải mã JWT, đối chiếu quyền hạn (Permission và Role) của ứng dụng với tài nguyên yêu cầu trên Controller.
- Token Module: Khởi tạo, lưu trữ và quản lý trạng thái của tài sản Token trên Chaincode, theo dõi biến đếm yêu cầu (
CounterRequest) nhằm ngăn chặn tấn công phát lại.
- Log / Accounting Module: Tự động ghi lại toàn bộ nhật ký giao dịch, thay đổi quyền hạn và lịch sử truy cập của ứng dụng vào sổ cái bất biến
Log Asset.
- REST API (HTTPS): Cung cấp giao diện trung gian chuẩn hóa cho phép bộ điều khiển Ryu và các ứng dụng gửi nhận dữ liệu mã hóa đến hệ thống AAA.
2. Cấu trúc dữ liệu trên Chaincode
| Tên Module |
Tên Đối Tượng / Tài Sản |
Thuộc Tính Cốt Lõi |
Mô Tả Chức Năng |
| Participant |
Controller Asset |
Id, Name, Accept Roles |
Định danh bộ điều khiển và danh sách vai trò ứng dụng được phép truy cập. |
| Participant |
Application Asset |
Id, Name, Permission, Key, Role |
Định danh ứng dụng, quyền truy cập cụ thể, Public Key RSA và vai trò được phân bổ. |
| Token |
Token Asset |
CounterRequest, Application, Public Key |
Đếm số lần gửi yêu cầu để chống Replay Attack; lưu khóa công khai xác thực chữ ký. |
| Log |
Log Asset |
Timestamp, ControllerId, TokenId, Action, Status |
Lưu trữ bất biến dấu vết thời gian, hành động thực hiện và kết quả truy cập. |
3. Quy trình xác thực và kiểm soát truy cập
Quy trình xử lý yêu cầu diễn ra theo các bước tuần tự:
- Yêu cầu cấp phát Token: Ứng dụng SDN gửi mã định danh (
Application ID) và bộ điều khiển đích (Controller ID) đến hệ thống AAA. Hệ thống kiểm tra sự tồn tại và tính hợp lệ của quyền truy cập trên sổ cái. Nếu thỏa mãn, hệ thống sinh mã JWT, lưu thông tin vào Token Module và phản hồi token về ứng dụng.
- Gửi yêu cầu tài nguyên: Ứng dụng tạo yêu cầu truy cập đến Ryu Controller, đính kèm Token đã nhận và Chữ ký số (sinh từ Private Key RSA của ứng dụng).
- Thẩm định quyền truy cập: Ryu Controller chuyển tiếp Token và Chữ ký số sang Authorization Module trên Chaincode.
- Kiểm tra chữ ký và chống Replay Attack: Hệ thống AAA sử dụng Public Key đã lưu để kiểm tra tính hợp lệ của chữ ký, đồng thời đối chiếu biến đếm
CounterRequest để xác định gói tin không bị phát lại.
- Thực thi và Ghi nhận: Nếu hợp lệ, Controller phản hồi tài nguyên cho ứng dụng; đồng thời Accounting Module tự động tạo một giao dịch mới để ghi lại toàn bộ hoạt động vào
Log Asset trên Blockchain.
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương này trình bày tổng quan về sự phát triển của công nghệ mạng, tính cấp thiết của việc bảo mật cho mạng khả lập trình SDN, và lý do lựa chọn công nghệ Blockchain làm nền tảng xác thực. Tác giả phân tích các nghiên cứu liên quan, nêu bật hạn chế của giải pháp SEAPP và các mô hình AAA tập trung truyền thống (dữ liệu dễ bị can thiệp, nguy cơ điểm chết duy nhất). Từ đó, chương xác định rõ tính khoa học, tính mới, 5 mục tiêu nghiên cứu cụ thể, đối tượng nghiên cứu, phạm vi triển khai và kế hoạch thực hiện của đề tài.
Chương 2: Tổng quan
Chương 2 cung cấp cơ sở lý thuyết nền tảng phục vụ cho việc thiết kế hệ thống, bao gồm:
- Kiến trúc 3 tầng của SDN và đặc điểm hoạt động của kênh giao tiếp hướng Bắc (REST API) và hướng Nam (OpenFlow), đi kèm bảng phân loại các nguy cơ tấn công vào tầng ứng dụng, tầng điều khiển và hạ tầng mạng.
- Nguyên lý hoạt động của công nghệ Blockchain: cấu trúc khối, mạng ngang hàng (P2P), cơ chế đồng thuận (PoW, PoS, PoB, Raft), các thuộc tính an ninh (tính phân tán, tính bất biến, tính minh bạch, tính ràng buộc trách nhiệm).
- Mô hình bảo mật AAA (Authentication, Authorization, Accounting) và các giải pháp kiểm soát truy cập (RBAC, ABAC).
- Nền tảng mã hóa bất đối xứng RSA, cấu trúc chữ ký số và cơ chế truyền thông bảo mật qua RESTful API/HTTPS.
Chương 3: Phân tích thiết kế hệ thống
Chương này tập trung vào thiết kế kiến trúc hệ thống AAA phi tập trung:
- Phân tích yêu cầu bảo đảm tính bền bỉ dữ liệu và tính phi tập trung dựa trên sổ cái chia sẻ.
- Chi tiết hóa kiến trúc 6 thành phần: Participant Module, Authorization Module, Authentication Module, Token Module, Log Module, Accounting Module và REST API.
- Thiết kế chi tiết cấu trúc dữ liệu cho Controller Asset, Application Asset, Token Asset và Log Asset.
- Xây dựng lưu đồ luồng công việc (workflow), quy trình xác thực chữ ký số, giải mã JWT, kiểm tra quyền hạn truy cập và mã giả (pseudocode) cho hai quy trình: cấp phát token và kiểm tra token hợp lệ.
Chương 4: Hiện thực và đánh giá
Chương 4 mô tả toàn bộ quá trình hiện thực kỹ thuật và kết quả đo đạc thực nghiệm:
- Hiện thực kỹ thuật: Triển khai mạng SDN với bộ điều khiển Ryu; lập trình Chaincode trên Hyperledger Fabric bằng Go; xây dựng ứng dụng SDN bằng Python; cấu hình định dạng JSON Web Token (JWT).
- Thực nghiệm an ninh:
- Đánh giá khả năng ngăn chặn truy cập trái phép khi ứng dụng không gửi kèm token hoặc gửi token không hợp lệ.
- Kiểm tra cơ chế phân quyền động qua hàm
Update Permission (ứng dụng bị từ chối khi chưa đủ quyền và thực hiện thành công sau khi được cấp quyền).
- Kiểm thử tấn công giả mạo (hệ thống phát hiện chữ ký không khớp) và tấn công lặp lại Replay Attack (hệ thống chặn thành công nhờ kiểm tra biến đếm yêu cầu).
- Đánh giá hiệu năng: Đo lường thời gian phản hồi truy cập của hệ thống AAA; kiểm tra khả năng chịu tải của hệ thống trước và sau khi nâng cấp cấu hình tài nguyên.
Chương 5: Kết luận và hướng phát triển
Tổng kết toàn bộ các kết quả đạt được của khóa luận; chỉ ra những thuận lợi và khó khăn trong quá trình nghiên cứu, triển khai hệ thống xác thực kết hợp giữa SDN và Blockchain; đề xuất các hướng hoàn thiện và mở rộng đề tài trong tương lai.
Kết quả và đóng góp
1. Kết quả thực nghiệm chính
Khóa luận đã hiện thực hoàn chỉnh mô hình thử nghiệm và ghi nhận các kết quả kỹ thuật:
| Hạng Mục Thực Nghiệm |
Phương Thức Kiểm Thử |
Kết Quả Đạt Được |
| Xác thực và Phân quyền |
Gửi yêu cầu không token / sai token / sai quyền hạn |
Hệ thống trả về lỗi Invalid Token / Access Denied; chặn 100% các truy cập không hợp lệ. |
| Chống Giả Mạo Danh Tính |
Giả mạo chữ ký của ứng dụng hợp lệ |
Authorization Module phát hiện chữ ký sai lệch qua Public Key RSA và phát cảnh báo giả mạo. |
| Chống Tấn Công Lặp Lại |
Bắt gói tin hợp lệ qua Wireshark và phát lại (Replay Attack) |
Hệ thống kiểm tra CounterRequest, phát hiện gói tin trùng lặp và từ chối xử lý. |
| Cập Nhật Quyền Động |
Thực thi hàm cập nhật quyền trên Chaincode |
Quyền hạn mới của ứng dụng có hiệu lực ngay lập tức mà không cần khởi động lại Controller. |
| Kiểm Toán & Giám Sát |
Truy vấn hàm Query Log trên Chaincode |
Ghi nhận đầy đủ, bất biến toàn bộ lịch sử truy cập (thời gian, hành động, ID, trạng thái). |
| Đánh Giá Hiệu Năng |
Đo thời gian phản hồi và khả năng chịu tải |
Xác định thời gian xử lý yêu cầu xác thực và cải thiện năng lực chịu tải sau nâng cấp phần cứng. |
2. Đóng góp khoa học và kỹ thuật của đề tài
- Khắc phục điểm lỗi tập trung: Thay thế cơ chế AAA truyền thống bằng hệ thống sổ cái phân tán Hyperledger Fabric, giúp hệ thống duy trì hoạt động liên tục ngay cả khi một số node gặp sự cố.
- Bảo đảm tính toàn vẹn và bất biến: Toàn bộ thông tin phân quyền và nhật ký truy cập được lưu trữ trên chuỗi khối, ngăn chặn hoàn toàn nguy cơ quản trị viên hoặc kẻ tấn công xóa dấu vết hay tự ý leo thang đặc quyền.
- Tích hợp xác thực đa lớp: Kết hợp chữ ký số RSA, mã hóa token JWT và kiểm tra quyền hạn thời gian thực trên Chaincode Go, bảo vệ toàn diện kênh giao tiếp Northbound của SDN.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phạm vi và kết quả trình bày trong văn bản:
- Hạn chế:
- Hệ thống mới được thử nghiệm trên môi trường giả lập (Mininet, Containernet và máy ảo Ubuntu), chưa được kiểm thử trên hạ tầng mạng vật lý quy mô lớn hoặc môi trường đám mây thực tế.
- Quy mô mạng blockchain thử nghiệm dừng lại ở mức 3 tổ chức (mỗi tổ chức 2 peer, 3 orderer, 1 CA), cần thêm các đánh giá chuyên sâu về độ trễ giao dịch khi số lượng node và tần suất gọi API tăng đột biến.
- Hướng phát triển:
- Mở rộng triển khai hệ thống AAA trên các môi trường phân tán thực tế với đa dạng bộ điều khiển SDN khác nhau (ngoài Ryu).
- Tối ưu hóa thuật toán đồng thuận và cấu trúc Chaincode để giảm thiểu độ trễ phản hồi của API khi xử lý khối lượng giao dịch lớn.
- Nghiên cứu cơ chế tự động hóa phân quyền thông minh dựa trên hành vi của ứng dụng mạng.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo chuyên môn hữu ích cho:
- Sinh viên và Kỹ sư ngành An toàn Thông tin / Mạng máy tính & Truyền thông: Cung cấp kiến thức chuyên sâu về cách thức tích hợp công nghệ Blockchain vào các bài toán an ninh mạng hiện đại.
- Nhà nghiên cứu về Mạng khả lập trình (SDN): Cung cấp mô hình kiến trúc chi tiết, mã giả logic kiểm soát truy cập và giải pháp khắc phục điểm yếu bảo mật tại kênh giao tiếp Northbound Interface.
- Kỹ sư phát triển Blockchain doanh nghiệp: Cung cấp mã nguồn tham khảo về thiết kế Chaincode (Go) trên nền tảng Hyperledger Fabric để quản lý tài sản, xác thực JWT và lưu trữ nhật ký kiểm toán bất biến.
Câu hỏi thường gặp
1. Khóa luận sử dụng nền tảng Blockchain nào và kiến trúc mạng thử nghiệm gồm những thành phần gì?
Khóa luận sử dụng nền tảng Blockchain doanh nghiệp Hyperledger Fabric (sử dụng thuật toán đồng thuận Raft, triển khai qua Kubernetes Rancher trên máy ảo Ubuntu). Mạng thử nghiệm bao gồm 03 tổ chức, mỗi tổ chức gồm 02 peer; 03 node orderer và 01 Certificate Authority (CA).
2. Hệ thống phòng chống tấn công lặp lại (Replay Attack) bằng cách nào?
Hệ thống sử dụng trường CounterRequest trong Token Module. Khi ứng dụng gửi yêu cầu có kèm token và chữ ký, hệ thống AAA sẽ kiểm tra biến đếm này; nếu phát hiện số thứ tự yêu cầu bị lặp lại (do kẻ tấn công bắt gói tin qua Wireshark và phát lại), hệ thống sẽ từ chối truy cập và ghi nhận cảnh báo.
3. Bộ điều khiển SDN và ngôn ngữ lập trình nào được sử dụng trong đồ án?
Tác giả sử dụng bộ điều khiển Ryu Controller, các ứng dụng SDN được phát triển bằng ngôn ngữ Python, còn các hợp đồng thông minh (Smart Contract / Chaincode) trên Hyperledger Fabric được lập trình bằng ngôn ngữ Go.
4. Dữ liệu phân quyền và nhật ký hoạt động được tổ chức thành các tài sản (assets) nào trên Chaincode?
Dữ liệu được tổ chức thành 4 loại tài sản chính: Controller Asset (lưu ID, tên, các role được chấp nhận), Application Asset (lưu ID, tên, quyền permission, Public Key RSA, role), Token Asset (lưu bộ đếm request, ID ứng dụng, Public Key) và Log Asset (lưu dấu vết thời gian, ID controller, ID token, hành động và trạng thái truy cập).
5. Điểm khác biệt chính giữa giải pháp của khóa luận so với giải pháp SEAPP của Tao Hu và cộng sự là gì?
SEAPP kiểm soát quyền REST API nhưng vẫn lưu trữ tập trung, dữ liệu có thể bị sửa đổi/xóa và thiếu cơ chế tự phục hồi khi gặp sự cố. Khóa luận khắc phục triệt để bằng cách đưa toàn bộ cơ chế xác thực, phân quyền và ghi log lên Blockchain phi tập trung, tận dụng tính bất biến để bảo vệ dữ liệu và loại bỏ điểm lỗi đơn lẻ.
Kết luận
Khóa luận tốt nghiệp của sinh viên Trần Nguyễn Quốc Tuấn và Hoàng Văn Tú đã giải quyết thành công bài toán an ninh tại kênh giao tiếp Northbound của mạng khả lập trình SDN thông qua việc đề xuất và hiện thực hóa mô hình AAA phi tập trung dựa trên nền tảng Blockchain Hyperledger Fabric. Hệ thống không chỉ đảm bảo tính xác thực danh tính, phân quyền truy cập chặt chẽ bằng chữ ký số RSA và mã hóa JWT, mà còn tận dụng đặc tính bất biến của sổ cái để lưu trữ nhật ký kiểm toán minh bạch, chống lại các hình thức tấn công giả mạo và lặp lại. Kết quả thực nghiệm trên bộ điều khiển Ryu và mạng SDN giả lập đã chứng minh tính đúng đắn, khả thi và tiềm năng ứng dụng thực tiễn của giải pháp trong việc bảo vệ hạ tầng mạng thế hệ mới.