HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ SINH VIÊN NĂM 2021 Tên đề tài tiếng Việt: XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN CÔNG DÂN DỰA TRÊN C
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ SINH VIÊN NĂM 2021
Tên đề tài tiếng Việt:
XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN CÔNG DÂN DỰA TRÊN CÔNG
NGHỆ BLOCKCHAIN
Tên đề tài tiếng Anh:
BUILDING A CIVIL INFORMATION MANAGEMENT SYSTEM BASED ON
BLOCKCHAIN TECHNOLOGY
Khoa/ Bộ môn: Công nghệ phần mềm
Thời gian thực hiện: 6 tháng
Cán bộ hướng dẫn: TS Lâm Đức Khải
Tham gia thực hiện
TT Họ và tên, MSSV Chịu trách nhiệm Điện thoại Email
1 Nguyễn Thị Thanh Quyên
CH1802024
Chủ nhiệm 0974682802 quyenntt.13@grad
uit.edu.vn
Thành phố Hồ Chí Minh – Tháng 03/2022
Trang 2ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Ngày nhận hồ sơ
Mã số đề tài
(Do CQ quản lý ghi)
BÁO CÁO TỔNG KẾT
Tên đề tài tiếng Việt:
XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN CÔNG DÂN DỰA TRÊN CÔNG
NGHỆ BLOCKCHAIN
Tên đề tài tiếng Anh:
BUILDING A CIVIL INFORMATION MANAGEMENT SYSTEM BASED ON
BLOCKCHAIN TECHNOLOGY
Ngày 21 tháng 03 năm 2022
Cán bộ hướng dẫn
(Họ tên và chữ ký)
TS Lâm Đức Khải
Ngày 21 tháng 03 năm 2022
Sinh viên chủ nhiệm đề tài
(Họ tên và chữ ký)
Nguyễn Thị Thanh Quyên
Trang 3THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung:
- Tên đề tài: Xây dựng hệ thống quản lý thông tin công dân dựa trên công
nghệ Blockchain
- Chủ nhiệm: Nguyễn Thị Thanh Quyên
- Cơ quan chủ trì: Trường Đại học Công nghệ Thông tin
- Thời gian thực hiện: 6 tháng
2 Mục tiêu:
2.1 Lí do chọn đề tài:
Trong thời đại Cách mạng công nghiệp 4.0, Công nghệ Blockchain được
xem là "chìa khóa" cho chuyển đổi số và xây dựng nền tảng công nghệ thông tin
tương lai Blockchain là công nghệ lưu trữ và truyền tải thông tin dữ liệu bằng các khối (block) được liên kết với nhau và mở rộng theo thời gian Từng khối chứa đựng các thông tin về thời gian khởi tạo và được liên kết với các khối trước
đó Bên cạnh đó, Blockchain được thiết kế để chống lại sự thay đổi dữ liệu, khi
dữ liệu đã được ghi vào một khối thì không thể thay đổi nếu không thực hiện thay đổi ở các khối liền kề Hay nói cách khác, thông tin trong Blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các node trong hệ thống Vì thế đây là hệ thống bảo mật an toàn cao trước khả năng
bị đánh cắp dữ liệu Ngay cả khi một phần của hệ thống Blockchain sụp đổ, những máy tính và các node khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng lưới tiếp tục hoạt động
Hiện nay, công nghệ Blockchain đã được áp dụng vào rất nhiều lĩnh vực trong đời sống dựa trên tính phi tập trung, minh bạch, bất biến và bảo mật Blockchain có tiềm năng giúp chống lại việc dữ liệu bị thay đổi và xử lý các vấn
đề thiếu tính minh bạch trong bối cảnh toàn cầu Vì vậy, nó hoàn toàn phù hợp
để ghi lại những sự kiện, xử lý giao dịch, lưu trữ hồ sơ, xác thực danh tính và chứng minh nguồn gốc Công nghệ Blockchain là đề xuất hàng đầu trong việc
Trang 4xây dựng hệ thống quản lý thông tin đòi hỏi tính bất biến, độ an toàn cao, chống lại việc dữ liệu bị thay đổi Colombia, Trung Quốc, German đều đã xây dựng thành công hệ thống bảo mật tài liệu nhận dạng điện tử (e-ID) phục vụ cho công dân
Những ứng dụng quản lý hồ sơ công dân, quản lý chứng minh nhân dân ở nước ta đang sử dụng các phương pháp lưu trữ và liên lạc truyền thống, có nhiều hạn chế:
- Thiếu tính kết nối, chia sẻ và đồng bộ thông tin giữa các cơ quan
- Thiếu khả năng quản lý và vận hành trực tuyến
- Thiếu tính minh bạch: dữ liệu được quản lý bởi 1 các nhân hoặc tổ chức
Cụ thể, công dân không thể trực tiếp kiểm soát thông tin cá nhân
- Thiếu độ tin cậy: việc quản lý ứng dụng phụ thuộc vào một đơn vị trung gian, dữ liệu được lưu trữ tập trung trên Cloud server nên dễ dàng bị giả mạo
- Độ bảo mật thấp: Cơ sở dữ liệu dễ bị tấn công bởi tin tặc để sửa đổi hoặc thay đổi dữ liệu
- Tính khả dụng thấp: Cơ sở dữ liệu được lưu trữ tập trung trong Cloud server và phải luôn có dữ liệu dự phòng trong trường hợp hư hỏng
Do đó, đề tài hướng đến đề xuất “Xây dựng hệ thống quản lý thông tin công
dân dựa trên công nghệ Blockchain” tích hợp kỹ thuật bảo mật hai lớp nhằm cải
tiến những hạn chế trên
2.2 Mục tiêu đề tài:
Để xây dựng Hệ thống quản lý thông tin công dân trên nền tảng Blockchain đáp ứng nhu cầu thực tế, bước đầu đề tài cần nghiên cứu và xây dựng hệ thống với các mục tiêu cần hoàn thành như sau:
- Đề xuất phương pháp quản lý thông tin công dân dựa trên công nghệ Blockchain
- Xây dựng Hệ thống quản lý thông tin công dân có độ bảo mật hai lớp dựa trên nền tảng Blockchain kết hợp với kỹ thuật mã hóa AES
- Xây dựng giao diện website cho Hệ thống
Trang 5- Hoàn thiện Hệ thống quản lý thông tin công dân dựa trên Công nghệ Blockchain
3 Tính mới và sáng tạo:
3.1 Tính mới:
Hiện nay công nghệ Blockchain được áp dụng trong nhiều lĩnh vực ở nhiều nước trên thế giới Tuy nhiên, ở Việt Nam vẫn chưa có hệ thống quản lý thông tin công dân dựa trên nền tảng công nghệ Blockchain Bên cạnh đó, hệ thống mà tôi xây dựng bao gồm nhiều cơ quan tham gia có thể truy xuất dữ liệu từ Blockchain, giúp tiết kiệm thời gian và chi phí quản lý dữ liệu
3.2 Tính sáng tạo:
Công nghệ Blockchain đảm bảo tính toàn vẹn, bất biến nhưng người khác vẫn có thể nhìn thấy dữ liệu do tính minh bạch với tất cả các bên tham gia Vì thế, hệ thống được đề xuất kết hợp sử dụng thuật toán mã hóa AES để tăng cường tính bảo mật dữ liệu, dữ liệu sẽ được mã hóa AES trước khi lưu vào Blockchain nhằm đảm bảo tính riêng tư của thông tin công dân, chỉ những người được cấp quyền mới được xem Đây là tính sáng tạo của đề tài mà tôi thực hiện
4 Tóm tắt kết quả nghiên cứu:
4.1 Cấu trúc hệ thống:
Trong bất kỳ hệ thống nào, yếu tố bảo mật luôn được đặt lên hàng đầu Vì thế, tôi xây dựng hệ thống quản lý thông tin công dân dựa trên công nghệ Blockchain không chỉ đáp ứng yêu cầu bảo mật, mà còn đảm bảo tính minh bạch
và tin cậy Để đáp ứng được yêu cầu trên, tôi xây dựng hai lớp bảo mật cho hệ thống Lớp bảo mật thứ nhất dựa trên công nghệ Blockchain, mỗi đối tượng tham gia hệ thống phải có cặp khóa EOA/EPK để truy cập và thực hiện các chức năng của mình trên mạng Ethereum Blockchain Ở lớp bảo mật thứ hai, mọi dữ liệu trong Blockchain sẽ được mã hóa bởi bên gửi và giải mã bởi bên nhận bằng kỹ thuật mã hóa/giải mã AES-256
Cụ thể, trong hệ thống này, tôi quy ước cặp khóa cho các bên liên quan như sau: Committee sở hữu cặp khóa C.EOA/C.EPK, Police sở hữu cặp khóa P.EOA/
Trang 6P.EPK, School sở hữu cặp khóa S.EOA/S.EPK, Business sở hữu cặp khóa B.EOA/B.EPK, Citizen sở hữu cặp khóa CT.EOA/CT.EPK
Hệ thống được triển khai gồm các ứng dụng phi tập trung (Dapps - Decentralized applications) xây dựng trên các node khác nhau để các bên tham gia có thể thực hiện giao dịch trên mạng Ethereum blockchain thông qua giao thức IPFS Các Dapps: C.Dapp, P.Dapp, S.Dapp, CT.Dapp được xây dựng tương ứng với Committee, Police, School, Citizen như trong Hình 7.1
Mỗi Dapp gồm 5 lớp chính, viết bằng ngôn ngữ CreactJs:
- Interface: là giao diện người dùng, dùng để nhập và xuất dữ liệu
- NodeJs, AES En/Dec: chịu trách nhiệm chuyển đổi dữ liệu đầu vào từ lớp giao diện thành chuỗi dữ liệu JSON và ngược lại Trong hệ thống này, tôi sử dụng kỹ thuật mã hóa/giải mã AES là lớp bảo mật thứ hai để tăng cường tính bảo mật cho hệ thống
- IPFS: là nơi lưu trữ chuỗi dữ liệu JSON trên mạng IPFS, nhằm giảm chi phí và thời gian thực hiện giao dịch cho mạng blockchain
- CIMs-SC: là hợp đồng thông minh của hệ thống CIMs, dùng để ghi lại thỏa thuận của tất cả các bên tham gia Hợp đồng thông minh này sẽ do Committee quản lý và triển khai
- web3.js: dùng để kết nối Dappvới Ethereum blockchain
4.2 Cơ chế hoạt động:
Cơ chế hoạt động của hệ thống được chia thành ba giai đoạn như sau: Giai đoạn đăng ký, Giai đoạn triển khai SC, Giai đoạn thực thi được thể hiện trong Hình 7.2
Giai đoạn đăng kí:
Giai đoạn đăng ký bao gồm các chức năng từ 1-6 như trong Hình 7.2 Police, School, Business, Citizen phải trực tiếp cung cấp thông tin cần thiết cho Committee để Committee đăng ký vào Hệ thống (1,3,5)
Sau đó, các bên tham gia mới thực hiện được chức năng đã thỏa thuận trong
SC Ví dụ, để đăng ký thông tin công dân (Citizen) cần cung cấp những thông tin
Trang 7cá nhân như: Họ tên, ngày sinh, nơi sinh, dấu vân tay, họ tên cha, họ tên mẹ, hộ khẩu với Committee Trường hợp Citizen chưa đủ tuổi lấy vân tay thì sẽ lấy dấu vân tay của người giám hộ Trong hệ thống này, tôi sử dụng dấu vân tay (Finger_Print) như là một mã số định danh
Để đăng ký/chỉnh sửa passport, Citizen trực tiếp cung cấp thông tin với Police (8), sau đó Police sẽ ghi lại và lưu trữ vào Blockchain Tương tự đối với School/ Business, Citizen đăng ký thông tin (10) để School/Business ghi và lưu lại trên Blockchain (11, 14)
Giai đoạn triển khai SC:
Trong hệ thống, Committee là cơ quan có quyền hạn cao nhất, tất cả các bên muốn tham gia hệ thống phải được đăng ký thông qua Committee Sau khi các bên tham gia đồng ý với các thỏa thuận trong SC, Committee là người duy nhất soạn thảo và triển khai SC lên mạng Ethereum blockchain (7) sử dụng cặp khóa C.EOA/C.EPK Tài khoản triển khai SC phải là C.EOA để tránh tình trạng giả mạo SC Thông tin chi tiết về Hệ thống dựa trên SC có thể được truy cập bằng cách kiểm tra SC.EA trong blockchain và giao diện của nó (SC.Interface) được tạo từ Contract JSON JavaScript Signal Interface Sau đó, Committee sẽ công khai C.EOA, SC.EA, SC.Interface trên các phương tiện truyền thông được phép công bố cho mọi người
Giai đoạn thực thi:
Để thực thi những chức năng của mình, mỗi bên tham gia phải sử dụng EOA đã đăng ký với Hệ thống Với mỗi EOA đã đăng ký sẽ thực thi được những chức năng tương ứng được thỏa thuận trong SC:
- Committee sử dụng tài khoản C.EOA để xem hoặc chỉnh sửa thông tin (Get/Update Information) cho Police, School, Business, Citizen như các bước 2,4,6,12 trong Hình 7.2
- Police sử dụng tài khoản P.EOA để xem hoặc chỉnh sửa thông tin passport cho Citizen như các bước 9, 13 trong Hình 7.2
- School/Business sử dụng tài khoản S.EOA/B.EOA để xem hoặc chỉnh sửa thông tin cho Student/Employee như các bước 11,14, 15 trong Hình 7.2
Trang 8- Citizen sử dụng tài khoản CT.EOA để xem thông tin cá nhân từ Committee, xem thông tin Passport từ Police, xem thông tin Student từ School, xem thông tin Employee từ Business như bước 16 trong Hình 7.2
4.3 Bảo mật AES
Để đảm bảo an toàn dữ liệu Citizen, việc mã hóa và giải mã là vấn đề cần thiết trong Hệ thống Vì thế, tôi sử dụng thuật toán mã hóa/giải mã AES để xây dựng mô hình bảo mật hai lớp cho Hệ thống Quá trình thực hiện được minh họa như Hình 7.3
Tất cả các bên liên quan trong Hệ thống phát hành một cặp khóa bất đối xứng (Public key và Private key) và trao đổi khóa công khai (Public key) của họ
ra bên ngoài Hệ thống Sau đó, khi có một giao dịch xảy ra:
Sender:
1 Tạo ra một dãy số ngẫu nhiên, từ dãy số này sinh ra khóa bất đối xứng AES256 key
2 Người gửi kí khóa AES (AES key) bằng khóa riêng (Sender Private Key)
của mình, tạo ra chữ ký số (Signed)
3 Dữ liệu được mã hóa bằng AES key, tạo ra dữ liệu mã hóa (Encrypted
message)
4 AES key được mã hóa bởi khóa công khai của người nhận (Receiver
Public Key), tạo ra khóa được mã hóa (Encrypted key)
Sau đó: Signed, Encrypted message, Encrypted key sẽ được ghi vào
Blockchain
Receiver:
1 Sử dụng Receiver Private key để giải mã Encrypted key lấy AES256 key
2 Sử dụng Sender Public key để kiểm tra chữ ký số bằng cách giải mã
Signed lấy AES256 key Nếu AES256 key ở bước này giống ở (1) thì xác thực
được người gửi
3 Sử dụng AES256 key ở (1) để giải mã Encrypted message lấy được Data
4.4 Mô hình triển khai Hệ thống
Hình 7.4 minh họa một kịch bản hoạt động trong Hệ thống sử dụng kỹ thuật
Trang 9mã hóa AES để bảo mật dữ liệu Đầu tiên, Committee sẽ tạo ra SC và sử dụng C.EOA triển khai SC trên mạng Ethereum blockchain Sau đó, Committee công khai SC.EA, SC.Interface trên các phương tiện truyền thông cho mọi người biết Mỗi bên tham gia đều được phát hành một cặp khóa bất đối xứng RSA bao gồm: khóa công khai (Public key - PUK) và khóa cá nhân (Private key - PK) để tiến hành mã hóa/giải mã dữ liệu AES Trong kịch bản này, chúng tôi quy ước như sau: cặp khóa của Committee được kí hiệu C.PUK/C.PK, cặp khóa của Police được kí hiệu P.PUK/P.PK, cặp khóa của Citizen được kí hiệu CT.PUK/CT.PK, cặp khóa của School kí hiệu S.PUK/S.PK Tất cả các PUK đều được công khai trên hệ thống
Như mô tả ở hình 7.4, để tham gia vào Hệ thống, Citizen, Police, School phải đăng ký trực tiếp với Committee Dữ liệu đăng ký sẽ được Committee mã hóa AES rồi đưa vào Blockchain thông qua các hàm (1,2,3) Chỉ những người sở hữu PK mới giải mã được dữ liệu lưu trong Blockchain Cụ thể, Citizen, Police, School sẽ sử dụng PK của cá nhân để giải mã dữ liệu thông qua các hàm (4,9,12) Police mã hóa AES cho dữ liệu passport của Citizen rồi lưu vào Blockchain thông qua hàm (8), Citizen dùng CT.PK để giải mã dữ liệu passport lấy từ Blockchain thông qua (5) Tương tự, School/Business mã hóa AES thông tin Student/Certificate của Citizen rồi lưu vào Blockchain thông qua (10,11); Citizen giải mã dữ liệu Student/Certificate lấy từ Blockchain thông qua (6,7)
4.5 Kết quả
4.5 1 Chức năng
Hệ thống quản lý thông tin công dân mà chúng tôi đề xuất đáp ứng được các nhu cầu thiết yếu của công dân: Đăng ký/Chỉnh sửa thông tin công dân, Đăng ký/Chỉnh sửa Hộ chiếu, Cập nhật trình độ học vấn, bằng cấp cho công dân, Tra cứu thông tin công dân Tất cả thủ tục đều được thực hiện trực tuyến thông qua Finger_Print (thay thế cho thẻ Chứng minh nhân dân), tạo nên sự thuận tiện cho công dân
4.5.2 Tính kết nối
Trang 10Tất cả dữ liệu công dân đều được lưu trữ trên Blockchain, người dùng có thể truy cập tại bất kỳ vị trí nào mà không cần phải đến các cơ quan nhà nước Giảm bớt các thủ tục, tối ưu hóa các quy trình, tăng tốc độ xử lý thủ tục Blockchain giúp đồng bộ, liên thông dữ liệu, xóa bỏ các điểm “nghẽn”; giảm thời gian và công sức dành cho việc nhập và kiểm tra dữ liệu, giảm các sai sót do yếu tố con người
4.5.3 Tính minh bạch
Thông tin công dân được lưu trữ trên Blockchain, có thể được theo dõi, giám sát từ tất cả các bên tham gia, minh bạch với tất cả các bên Nâng cao trách nhiệm của đội ngũ công chức với khả năng truy vết và minh bạch thông tin cao
4.5.4 Tính bảo mật
Hệ thống quản lý thông tin công dân mà tôi đề xuất đảm bảo độ an toàn dữ liệu cao do sử dụng kỹ thuật bảo mật hai lớp với thuật toán mã hóa AES
4.5.5 Tính khả dụng
Hệ thống được xây dựng đảm bảo các mục tiêu đã đề ra và đáp ứng tốt trong môi trường thử nghiệm
4.5.6 Gas used
Gas used khi thực hiện từng function của Hệ thống được trình bày trong Bảng I Chi phí Gas phụ thuộc vào thông tin đầu vào của từng function
Bảng I Chi phí Gas của các function trong SC
(Add/Update) Add_Update_Citizen_Information() 183,962 / 114,075
Get_Police_Information_from_Committee () 0
Get_Citizen_Information_from_Committee() 0
Get_School_Information_from_Committee() 0
Get_Passport_Information_from_Police () 0
Get_Student_Information_from_School() 0