Chương 7 : Xây dựng hệ thống AccessControl
7.4 Triển khai thực tế
7.4.1 Phần mềm phía smartphone người dùng 7.4.1.1 Đăng nhập – liên hệ 7.4.1.1 Đăng nhập – liên hệ
Hình 7.2: giao diện đăng nhập - liên hệ 7.4.1.2 Giới thiệu các chức năng 7.4.1.2 Giới thiệu các chức năng
Hình 7.4: giới thiệu các chức năng của phần mềm (2) 7.4.1.3 Chức năng đăng ký thông tin người dùng
7.4.1.4 Chức năng tạo chữ ký điện tử
Hình 7.6: giao diện chức năng tạo chữ ký điện tử 7.4.1.5 Chức năng tạo QR code cho access control 7.4.1.5 Chức năng tạo QR code cho access control
7.4.2 CA & web server 7.4.2.1 Giao diện đăng nhập 7.4.2.1 Giao diện đăng nhập
Hình 7.8: giao diện đăng nhập webserver 7.4.2.2 Trang chủ 7.4.2.2 Trang chủ
7.4.2.3 Chức năng quản lý tài khoản chung
Hình 7.10: quản lý chung tài khoản người dùng 7.4.2.4 Tài khoản cá nhân người dùng 7.4.2.4 Tài khoản cá nhân người dùng
Hình 7.12: chi tiết tài khoản người dùng (2) 7.4.2.5 Chức năng cấu hình và giám sát CA server
Hình 7.13: chức năng cấu hình và giám sát CA server 7.5 So sánh hệ thống Access control mới và các hệ thống cũ 7.5 So sánh hệ thống Access control mới và các hệ thống cũ
Đối chiếu với yêu cầu đối với hệ thống mới (phần 1.3), tơi đưa ra bảng tóm tắt như sau:
Bảng 19: so sánh các hệ thống access control Yêu cầu Hệ thống mới Hệ thống dùng Yêu cầu Hệ thống mới Hệ thống dùng
smart card Hệ thống dùng sinh trắc học Tính an tồn Tấn cơng vật lý Khơng ảnh hưởng Có lỗ hổng Có lỗ hổng Tấn cơng thuật tốn Rất khó phá mã Dễ dàng phá mã Dễ dàng phá mã
Tính tiện dụng Cao Thấp Cao
8 Chương 8: Kết luận và hướng phát triển
8.1 Kết luận
Hệ thống access control mới áp dụng những công nghệ mạnh mẽ cung cấp mức độ an toàn cao hơn so với các hệ thống hiện có trên thị trường. Hệ thống mới được triển khai với phần mềm trên smart phone của người dùng, mang lại sự tiện dụng cao hơn so với các hệ thống hiện tại. Tuy nhiên, trong điều kiện triển khai và hoàn cảnh sử dụng thực tế hệ thống này nên được kết hợp với hệ thống cũ hiện có, từ đó tạo thành một hệ thống hybrid để nâng cao mức độ an toàn hơn nữa.
Hệ thống được triển khai trên các nền tảng mở như Android, Linux, sử dụng các thiết bị phần cứng giá rẻ, độ tương thích cao nên có thể mở ra nhiều hướng phát triển mới cho tương lai. Trong phần 8.2, tơi sẽ trình bày một hướng phát triển mà tơi đã đạt được trong q trình thực hiện đề tài.
8.2 Hướng phát triển
8.2.1 Tích hợp hệ thống Smart – Auto Parking 8.2.1.1 Giới thiệu 8.2.1.1 Giới thiệu
Cũng như các hệ thống access control, các hệ thống bãi giữ xe hiện nay cũng chủ yếu sử dụng các thẻ RFID để quản lý việc gửi – nhận xe. Các yếu điểm của hệ thống RFID đã được trình bày phía trên, do đó tơi sẽ áp dụng các thuật tốn mã hóa, QR code…đã dùng trong hệ thống access control ở trên để xây dựng một hệ thống bãi giữ xe Smart – Auto Parking với độ an toàn cao hơn, tiện dụng hơn, loại bỏ các thẻ RFID không cần thiết, hơn nữa hệ thống này hướng đến khả năng hoạt động độc lập mà khơng cần nhân viên ln ln có mặt trong suốt thời gian vận hành.
Hệ thống Smart – Auto Parking này sẽ được tích hợp cùng với hệ thống access control về cả backend và phần mềm phía người dùng.
8.2.1.2 Mơ hình hệ thống tích hợp
CA server
Smart Phone Certificate
Signing Request Digital signature QR code
Camera
Raspberry Pi (Access control module) Certificate
FTP server Web server
QR code QR code
Hình 8.1: mơ hình hệ thống Smart – Auto Parking tích hợp 8.2.1.3 Lưu đồ giải thuật 8.2.1.3 Lưu đồ giải thuật
- Lưu đồ giải thuật tại smartphone
START
Tạo cặp khóa (public key & private key) phục vụ cho bãi giữ xe tự động
Upload CSR lên CA server
Gửi xe vào bãi? No
Yes Tạo QR code cho xe vào (Gọi là QR_code_in)
QR_code_in = Tên đăng nhập (username) đã đăng ký ở hệ thống Access Control
Scan QR_code_in bằng module Auto parking (Raspberry Pi) Quét để nhận mã giữ xe do module Raspberry Pi tạo ra (là QR_code_out đã mã hóa bằng public key tương ứng với username gửi xe vào)
Lấy xe rời bãi? No
Yes Giải mã QR_code_out thành dạng plain text
QR_code_out = Chuỗi (Biển số xe + Mã thẻ ngẫu nhiên + Thời gian xe vào)
Tạo QR từ chuỗi QR_code_out dạng plain text đã giải mã phía trên
Scan QR_code_out bằng module Auto parking (Raspberry Pi)
STOP
Tạo Certificate Signing Request (CSR) bao gồm: - Common name
- Organization - Organization Unit - Public key
- Lưu đồ giải thuật tại Raspberry Pi
START
Gửi xe vào bãi?
Scan QR_code_in thu được username tương ứng của người điều khiển xe vào bãi
Kiểm tra thông tin certificate tương ứng với username?
Download certificate từ CA server No
- Nhận dạng biển số xe (1) - Tạo chuỗi mã thẻ ngẫu nhiên (2) - Ghi nhận thời điểm xe vào (3)
Lưu thông tin (1), (2) và (3) vào database
Mã hóa các thơng tin trên bằng public key lấy từ certificate tương ứng của người dùng.
Chuỗi tạo thành chuyển sang dạng QR code (đây là QR_code_out)
Vậy:
QR_code_out = Encrypt(Biển số xe + Chuỗi ngẫu nhiên + Thời gian xe vào)
Hiển thị mã QR lên màn hình (cho người gửi xe scan để nhận mã QR_code_out)
Lấy xe rời bãi?
Scan QR_code_out dạng plain text do người dùng giải mã bằng private key của người dùng
Kiểm tra so sánh thông tin (biển số xe + chuỗi random + thời gian xe vào) nhận được từ phía QR tạo bởi người dùng, thơng tin nhận dạng biển số xe ra và thông tin đã lưu trong database
Giống nhau? Cho xe ra STOP Yes No Yes No Yes Yes No Nhận dạng biển số xe ra
- Lưu đồ giải thuật CA server
CA server thực hiện chức năng tương tự như trong hệ thống Access Control
START
Nhận file Certificate Signing Request (CSR) upload từ người dùng (User)
Tạo chứng chỉ (Certificate) tương ứng với CSR upload từ người dùng
Chuyển sang FTP server
Kiểm tra người dùng có upload CSR khơng? No
Yes
STOP
8.2.1.4 Triển khai thực tế - Phần mềm phía người dùng
Giao diện chức năng và xử lý tạo QR vào bãi giữ xe (QR_code_in)
Ghi chú: QR_code_in là username của người gửi xe đã đăng ký (trong trường hợp này username = lamnguyen2110)
Xử lý tạo QR lấy xe rời bãi (QR_code_out)
- Phần mềm phía Raspberry Pi (module điều khiển xe ra - vào)
Scan QR_code_in, nhận diện biển số xe và tạo chuỗi QR_code_out (mã hóa)
8.2.2 Các hướng phát triển khác
Ngoài hệ thống Smart – Auto Parking giới thiệu ở trên chúng ta cịn có nhiều hướng phát triển khác như các hệ thống thanh tốn phí dịch vụ cơng cộng, hệ thống quản lý khách hàng siêu thị, nhà hàng, bán vé xem phim,…
9 Phụ lục OpenALPR
9.1 Giới thiệu
OpenALPR là một mã nguồn mở (open source) cho phép nhận diện biển số tự động được viết bằng C++, bên cạnh đó nó cũng cung cấp API cho C#, Java, Node.js và Python. Thư viện phân tích hình ảnh tĩnh và các luồng video cần xác định biển số. Đầu ra là chuỗi biển số dạng text. [32]
OpenALPR hỗ trợ nhận dạng biển số mặc định là Hoa Kỳ tuy nhiên có thể huấn luyện để nhận diện ở các quốc gia khác.
Trong phần phát triển của đề tài này, tôi đã áp dụng mã nguồn mở này để nhận diện biển số xe.
9.2 Nhận diện biển số xe bằng openALPR 9.2.1 Biển số xe máy 9.2.1 Biển số xe máy
Hình 9.1: nhận dạng biển số xe máy (1)
9.2.2 Biến số xe ô tô
Hình 9.3: nhận diện biển số xe ơ tơ (1a)
Hình 9.5: nhận dạng biển số xe ơ tơ (2a)
9.3 Kết luận
Mã nguồn mở này thật sự thú vị và hữu ích, qua tìm hiểu tơi nhận thấy mã nguồn này có thể nhận diện biển số xe Việt Nam tuy nhiên độ chính xác chưa cao, cần nghiên cứu cách thức huấn luyện để nâng cao độ chính xác.
10 DANH MỤC CƠNG TRÌNH KHOA HỌC
Tạp chí khoa học, trường Đại học Sài Gịn, số 34 (59) – tháng 11/2017, bài báo: “Thuật tốn mã hóa Elliptic Curve Cryptography (ECC) & ứng dụng trong xây dựng hệ thống Smart – Auto Parking”.
11 TÀI LIỆU THAM KHẢO
[1] Bosch “Hệ thống Access Professional Edition”, [Online]. Available:
http://vn.boschsecurity.com/vi/san_pham/accesscontrolsystems_7/accessprofess ionaledition_25/accessprofessionaledition_25_34679
[2] Honeywell “Access Control System”, [Online]. Available: http://www.honeywellcity.com/markets/commercial- office/EmployeeAndVisitorSafety.aspx
[3] Tyco Security “Access Control System”, [Online]. Available: https://www.cemsys.com/products/access-control-systems/ac2000/
[4] Qinghan Xiao, Thomas Gibbons, Hervé Lebrun “RFID Technology, Security Vulnerabilities, and Countermeasures”, [Online]. Available:
https://www.intechopen.com/books/supply_chain_the_way_to_flat_organisatio n/rfid_technology__security_vulnerabilities__and_countermeasures
[5] The beginner’s guide to RFID systems, [Online]. Available: https://www.atlasRFIDstore.com
[6] Umut Uludag, Anil K. Jain, “Attacks on Biometric Systems: A Case Study in Fingerprints”, Department of Computer Science and Engineering, Michigan State University, East Lansing, MI, USA 48824
[7] B. Schneier, “The uses and abuses of biometrics”, Comm. ACM, vol 42, no.8, pp. 223-228, 2001
[8] D.Maltoni, D. Maio, A.K. Jain, and S.Prabhakar, “Handbook of Fingerprint Recognition”, Springer, 2003
[9] William Stallings, “Cryptography and Network Security, principles and Practice, sixth edition”
[10] Wikipedia , “Public-key cryptography”, [Online]. Available: https://en.wikipedia.org/wiki/Public-key_cryptography
[11] Wikipedia, “RSA”, [Online]. Available:
https://vi.wikipedia.org/wiki/RSA_(m%C3%A3_h%C3%B3a)
[12] ECRYPT II, European Network of Excellence in Cryptology II, “ECRYPT II Yearly Report on Algorithms and Keysizes (2011-2012)”
[13] Imad Khaled Salad, Abdullah Darwish, Saleh Oqeili, “Mathematical Attacks on RSA Cryptosystem”
[14] Mark van Cuijk, “Timing Attack on RSA”
[15] Andrea Pellegrini, Valeria Bertacco, Todd Austin “Fault – Based Attack of RSA Authentication”
[16] Jame Manger, “A chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS #2.0”
[17] Reuters, “Exclusive: NSA infiltrated RSA security mode deeply than thought – study”,[Online]. Available: http://www.reuters.com/article/us-usa-security-nsa- rsa/exclusive-nsa-infiltrated-rsa-security-more-deeply-than-thought-study- idUSBREA2U0TY20140331
[18] Stephen Checkoway, Matthew Fredrikson, Ruben Niederhagen “On the Practical Exploitability of Dual EC in TLS Implementations”
[19] Mohsen Bafanddehkar, Sharifah Md Yasin, Ramlan Mahmod, “Comparison of ECC and RSA Algorithm in Resource Constrained Devices”
[20] Vipul Gupta, Douglas Stebila, “Speeding ip Decure Web Transactions Using Elliptic Curve Cryptography”
[21] Al Imem Ali, “Comparison and evaluation of digital signature schemes employed in NDN network”
[22] IDC, “Smartphone OS market share, 2017 Q1” ,[Online]. Available: https://www.idc.com/promo/smartphone-market-share/os
[23] Legion of the Spongy Castle Inc, “SC – FJA (Spongy Castle FIPS Java API) User Guide Version: 0.1 Date: 04/07/16”
[24] M. Atreya, B. Hammond, S.Paine, P. Starrett, S. Wu (2002), “Digital Signatures, RSA”.
[25] Wikipedia, “Certificate signing request”, [Online]. Available: https://en.wikipedia.org/wiki/Certificate_signing_request
[26] Microsoft, “X.509 Technical Supplement”, [Online]. Available: https://msdn.microsoft.com/en-us/library/ff647097.aspx
[27] Cert Logik, “CSR Decoder And Certificate Decoder”, [Online]. Available: https://certlogik.com/decoder/
[28]Wikipedia, “Mã QR”, [Online]. Available: https://vi.wikipedia.org/wiki/M%C3%A3_QR
[29] Sumit Tiwari, “An Introduction To QR Code Technology”
[30] Ernst Haselsteiner, Klemens BreitfuB, “Security in Near Field Communication (NFC)”
[31] Unitag, “NFC technology, discover what NFC is, and how to use it”, [Online]. Available: https://www.unitag.io/nfc/what-is-nfc
[32] OpenALPR Documentation, [Online]. Available: http://doc.openalpr.com/index.html
PHẦN LÝ LỊCH TRÍCH NGANG
Họ và tên: Nguyễn Trần Thanh Lâm.
Ngày, tháng, năm sinh: 21/10/1992 Nơi sinh: TP Mỹ Tho – tỉnh Tiền Giang. Địa chỉ liên lạc: 659 Âu Cơ, Phường Tân Thành, Quận Tân Phú, TP Hồ Chí Minh.
Q TRÌNH ĐÀO TẠO
Tháng 9 năm 2010 đến tháng 1 năm 2015: Học tại khoa Điện – Điện tử, trường Đại Học Bách Khoa Hồ Chí Minh.
Tháng 4 năm 2015: Tốt nghiệp trường Đại học Bách Khoa, chuyên ngành Viễn Thông (Lớp KSTN).
Từ tháng 9 năm 2015 đến nay: Theo học chương trình Cao học ngành Kỹ Thuật Viễn Thông, tại khoa Điện – Điện Tử, trường Đại Học Bách Khoa thành phố Hồ Chí Minh.
Q TRÌNH CƠNG TÁC
Từ tháng 1 năm 2015 đến tháng 5 năm 2015: Công tác tại Trung tâm Nghiên cứu phát triển thiết bị mạng viễn thơng Viettel (VTCore), vị trí Kỹ sư viễn thơng.
Từ tháng 5 năm 2015 đến tháng 11 năm 2016: Công tác tại Cơng ty truyền hình cáp SCTV, vị trí Kỹ sư nghiên cứu phát triển.
Từ tháng 11 năm 2016 đến tháng 12 năm 2017: Công tác tại Công ty cổ phần Viễn thơng Tecapro Telecom, vị trí Kỹ sư phần mềm.
Từ tháng 1 năm 2018 đến nay: Công tác tại Công ty dữ liệu VNPT (VNPT data Miền Nam), vị trí Kỹ sư nghiên cứu phát triển giải pháp.