3. Thiết kế giao thức truyền nhận giữa thiết bị và server
3.2 Bản tin login
Để tăng tính bảo mật cho việc truyền nhận với server, trước khi thực hiện quá trình gửi dữ liệu lên server, thiết bị phải thực hiện quá trình login vào server, quá trình này sẽ được trải qua các bước để xác thực giữa thiết bị và server nhờ các key trong bản tin login.
Quá trình login
Gửi bản tin
login lên server.
Nhận được xác thực login từ server
Kiểm tra key trong bản tin xác thực
Sai
Đúng
Sai
Đúng Nhận key mới, thực hiện
50
Hình 3.8 - Quá trình login của thiết bị
Cơ chế sinh mã bảo mật trong giao thức truyền nhận giữa thiết bị và server.
Các packet truyền giữa thiết bị và server đều được xác thực bằng mã bảo mật (MBM), MBM được sinh ra dựa theo 1 mảng KEY và trường thời gian trong packet, thuật toán để sinh ra MBM là Triple DES (TDES), thuật toán này đã được chứng minh bằng các cơng thức tốn học đảm bảo khơng thể dịch ngược lại cơ chế sinh mã từ các mã thu được[12][13][14]. Việc sinh KEY và MBM thực hiện qua các bước sau :
- Thiết bị gửi bản tin login vào server, MBM được sinh ra dựa vào PUBLIC KEY và trường thời gian trong packet theo thuật toán TDES. PUBLIC KEY là 1 mảng byte quy định trước giữa server và thiết bị.
- Khi nhận được bản tin login, server sẽ kiểm tra MBM dựa theo PUBLIC KEY và trường thời gian trong bản tin theo thuật tốn mã hóa TDES, nếu chính xác server sinh ra 1 KEY mới và gửi KEY này xuống thiết bị, tất cả các MBM sinh ra ở các bản tin sau này đều dựa trên KEY mới.
Nếu 1 packet không đúng mã bảo mật thì khi nhận được packet đó, server hoặc thiết bị sẽ coi là packet sai và không xử lý dữ liệu của packet đó.
Nội dung của bản tin login bao gồm các trường sau :
Trường Số lần reset Firmware thiết bị Loại thiết bị ID thiết bị Serial Number Độ dài (Byte) 2 10 1 10 20
Bảng 3.2–Nội dung bản tin login
Số lần reset : Mỗi lần thiết bị khởi động lại, thiết bị sẽ tăng số lần reset được lưu
trong bộ nhớ lên 1 đơn vị, trường này nhằm giúp chẩn đoán lỗi thiết bị.
Commented [q7]: Tài liệu tham khảo.
Commented [q8]: Nếu mảng byte này mà ngươi hacker biết (ví dụ do người của cơng ty cung cấp) thì có khả năng bẻ khóa hay không ?
Commented [PK9]: Nếu bị lộ mảng byte này thì có thể bị bẻ khóa khi hacker biết phương thức mã hóa là TDES, thường thì khi cơng ty biết được thiết bị bị hack, họ sẽ update firmware cho thiết bị để thay đổi mảng byte này ạ
51
Loại thiết bị : Thiết bị có thể phát triển nhiều phiên phản phần cứng khác nhau,
trường này giúp người dùng nhận biết loại thiết bị để khiển thiết bị từ server.
ID thiết bị : Cùng 1 lúc có thể có nhiều ID thiết bị thể hiện cùng kết nối tới server,
do vậy phải dùng ID để phân biệt các thiết này với nhau, ID này có thể được cấu
hình để thay đổi.
Serial Number : Là 1 dãy số cố định, không thể thay đổi được, mô tả serial của
thiết bị, nhằm giúp quá trình quản lý, giám sát, cũng như phục vụ công tác bảo hành thiết bị.
52