Tải bản đầy đủ - 0 (trang)
Khối giao tiếp Client – Sever

Khối giao tiếp Client – Sever

Tải bản đầy đủ - 0trang

-



44



Hình 3.4.1.1.1.



Hàm quét và kết nối tới mạng wifi



-



45



-



Hàm gửi truy vấn lên sever:

- unsigned long sendNTPpacket(IPAddress& address){…}

-



Hình 3.4.1.1.2.

-



Hàm gửi truy vấn lên sever



Đặt memset là bộ nhớ khởi tạo cho gói dữ liệu truyền nhận trong đó:

o const int NTP_PACKET_SIZE = 48 // dấu thời gian NTP sẽ ở trong 48 bytes

đầu của gói dữ liệu.

o byte packetBuffer[NTP_PACKET_SIZE] //buffer được dùng như một bộ nhớ



-



tạm thời để lưu các gói dữ liệu truyền và nhận.

Hàm nhận và xử lý dữ liệu phản hồi nhận về từ sever:

o Dữ liệu gói được Sever gửi về chứa 4 bytes có giá trị dấu thời gian

(Timestamp) bắt đầu từ byte thứ 40.

o Sau khi xử lý 4 bytes ta thu được kết quả là 1 chuỗi số có định dạng unsigned

long, gọi là NTP time, là số giây tính từ 1/1/1990 tới thời điểm sever phản hồi.

o Tuy nhiên, để đổi ra ngày tháng, ta cần 1 bước nữa đó là đổi giá trị vừa đạt

được ra UnixTime (đơn vị thời gian được sử dụng phổ biến trên các thiết bị sử

dụng giao thức mạng ngày nay). UnixTime được tính từ 00:00:00 ngày

1/1/1970, do đó:

-



unsigned long epoch = secsSince1900 - 2208988800UL;



-



(2208988800UL là số giây của 70 năm từ 1900 đến 1970)

46



-



Hình 3.4.1.1.3.

-



Hàm nhận và xử lý tín hiệu phản hồi từ sever



Sau khi có được giá trị của epoch, ta có thể tìm được các giá trị ngày tháng và

thời gian qua các thuật toán đơn giản.



Khối xử lý trung tâm

-



Hàm sinh code từ thời gian thực



Sử dụng thư viện sha1.h là thư viện đã đươc viết sẵn cho thuật toán HMAC-SHA-1.

Thuật toán TOTP đươc thực hiện theo các bước như sau:

-



Bước 0: Map giá trị của time step vào 1 mảng 8 bytes.

47



Bước 1: Tạo giá trị HMAC-SHA-1 từ giá trị time step vừa tạo và key được

tạo từ đầu.

Bước 2: Áp dụng thuật toán rút ngắn động để tạo ra một chuỗi 4 bytes từ 20

bytes giá trị kết quả của thuật tốn mã hóa SHA-1.

Bước 3: Tính tốn giá trị OTP vừa nhận được và chuyển về dạng chuỗi để so

sánh với chuỗi giá trị người dùng nhập vào.

-



Hình 3.4.1.1.4.



Hàm sinh mã từ giá trị thời gian thực



-



48



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Khối giao tiếp Client – Sever

Tải bản đầy đủ ngay(0 tr)

×