Chương 7 : Xây dựng hệ thống AccessControl
7.2 Lưu đồ giải thuật
7.2.2 Module điều khiển accesscontrol (Raspberry Pi)
START
Scan mã QR code từ điện thoại của người dùng
Scan thành công? Yes No
Giải mã QR code thành dạng chuỗi
QR code = Chuỗi( Thời gian + Tên đăng nhập + Chuỗi chữ ký dạng plain text + Chuỗi chữ ký)
Tách chuỗi giải mã thành các chuỗi con: - Thời gian
- Tên đăng nhập (username) - Chuỗi chữ ký dạng plaintext - Chuỗi chữ ký
Kiểm tra chuỗi thời gian (chống Replay Attack)
Hợp lệ
Yes
Kiểm tra file Certificate trên board Raspberry Pi
Tồn tại?
Download file Certificate tương ứng với Tên đăng nhập (username) No Yes Xác thực (verify) chữ ký điện tử Xác thực thành cơng? Cho phép Access STOP No No Yes
Q trình thực hiện:
B1: Scan và giải mã QR code từ smart phone của người dùng
Nếu module điều khiển access control scan thành công QR code từ smart phone của người dùng thì chuyển sang bước 2. Nếu khơng sẽ báo lỗi để người dùng điều chỉnh vị trí đặt smart phone cho đến khi scan QR code thành công.
B2: Giải mã QR code
Module điều khiển access control chuyển mã QR code thành dạng chuỗi.
Chuỗi QR code = thời gian + tên đăng nhập (username) + chuỗi chữ ký dạng plain text + chuỗi chữ ký điện tử (đã mã hóa).
B3: Tách chuỗi và kiểm tra tính hợp lệ
Module điều khiển access control thực hiện quá trình tách chuỗi. Thành phần đầu tiên là chuỗi thời gian, nếu chuỗi thời gian còn trong khoảng thời gian hợp lệ (chênh lệch không quá 60s so với đồng hộ hiện tại trên module điều khiển – nhằm chống replay attack) thì thực hiện tiếp bước 4. Ngược lại, sẽ chấm dứt quá trình.
B4: Xác thực chữ ký điện tử
Module điều khiển kiểm tra xem file X.509 certificate tương ứng với username trong chuỗi đã tách phía trên đã có trên module điều khiển hay chưa? Nếu chưa thì download file này từ CA server.
Module điều khiển nhận thông tin public key từ file X.509 certificate để tiến hành xác thực chuỗi chữ ký điện tử. Nếu chữ ký hợp lệ, module sẽ cho phép access. Ngược lại, sẽ chấm dứt quá trình.