.3 Giao thức trao đổi khóa được xác thực bởi TAut

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 65 - 67)

- Bắt đầu phiên giao dịch, SysInt tạo ra số chỉ sử dụng một lần NSuM, và gửi NSuM, SID, VID và "ReqIP" đến IPVend.

- IPVend nhận và xác minh các tham số. Nếu các tham số là phù hợp, IPVend sẽ gửi khóa cơng khai PKV đến SysInt.

- SysInt nhận và gửi PKV cùng với số định danh của IPVend VID đến TAut để xác minh. TAut sẽ kiểm tra, xác minh rồi gửi bản tin thông báo "ConfirmPKV" đến cho SysInt. Nếu bản tin thơng báo "ConfirmPKV" cho kết quả đúng thì SysInt sẽ sử dụng khóa này để mã hóa SKS, và gửi cho IPVend.

- IPVend nhận và gửi SKS mã hóa cùng với số định danh của SysInt SID đến TAut để xác minh.

- TAut xác minh khóa SKS của SysInt và gửi một bản tin thông báo "ConfirmSKS" đến IPVend.

- Nếu bản tin thơng báo "ConfirmSKS" cho kết quả đúng. Có nghĩa là SKS là chính xác của SysInt. IPVend sử dụng khóa riêng SKV để giải mã SKS đã được mã hóa, và sau đó sử dụng khóa SKS này để mã hóa lõi IP rồi gửi cho SysInt.

Tại mỗi phiên giao dịch, cả hai khóa PKV và SKS ln được trao đổi và xác thực qua

TAut. Riêng khóa riêng SKV là khơng trao đổi. Khóa cơng khai PKV khơng cần phải giữ bí mật nên khi trao đổi qua mạng khơng cần thiết phải được mã hóa. Chỉ khóa bí mật SKS cần phải được bảo mật và nó đã được mã hóa bởi khóa PKV trước khi gửi qua Internet. Giao thức trao đổi khóa an tồn được mơ tả chi tiết hơn trong các thuật toán sau.

2.3.1.1. Thuật toán 3 - Thuật toán bên phía nhà thiết kế hệ thống

S1. Generate(NSuM)

S2. M0 = HMAC(“ReqIP”, SID, VID, NSuM)

52 S4. Receive(“ReqSKS”, PKV, M1)

S5. M1‟ = HMAC(“ReqSKS”, PKV, M0) S6. If M1‟ ≠ M1 then goto S1

S7. M2 = HMAC(“VerifyPKV”, SID, VID, TAID, PKV, M1)

S8. Send(“VerifyPKV”, SID, VID, TAID, PKV, M1, M2) S9. Receive(“ConfirmPKV”, M3)

S10. M3‟ = HMAC(“ConfirmPKV”, M2)

S11. If (“ConfirmPKV ” ≠ PKV_OK) or M3‟ ≠ M3 then goto S1 S12. M4 = HMAC(EncryptedSKS, M1)

S13. Send(EncryptedSKS, M4) S14. Receive(EncryptedIP, M7)

2.3.1.2. Thuật tốn 4 – Thuật tốn bên phía nhà cung cấp IP

V1. Receive(“ReqIP”, SID, VID, NSuM, M0) V2. M0‟ = HMAC(“ReqIP”, SID, VID, NSuM)

V3. If M0‟ ≠ M0 then goto V1 V4. M1 = HMAC(“ReqSKS”, PKV, M0) V5. Send(“ReqSKS”, PKV, M1) V6. Receive(EncryptedSKS, M4) V7. M4‟ = HMAC(EncryptedSKS, M1) V8. If M4‟ ≠ M4 then goto V1 V9. M5 = HMAC(“VerifySKS”, EncryptedSKS, M4)

V10. Send(“VerifySKS”, EncryptedSKS, SID, VID, TAID, PKV, M4, M5) V11. Receive(“ConfirmSKS”, M6)

V12. M6‟ = HMAC(“ConfirmSKS”, M5)

V13. If (“ConfirmSKS ” ≠ SKS_OK) or M6‟ ≠ M6 then goto V1 V14. M7 = HMAC(EncryptedIP, M6)

V15. Send(EncryptedIP, M7)

2.3.1.3. Thuật toán 5 – Thuật tốn bên phía trung tâm xác thực

T1. Receive(“VerifyPKV”, SID, VID, TAID, PKV, M1, M2) T2. M2‟ = HMAC(“VerifyPKV”, SID, VID, TAID, PKV, M1) T3. If M2‟ ≠ M2 then goto T1

T4. M3 = HMAC(“ConfirmPKV”, M2)

T5. Send(“ConfirmPKV”, M3)

T6. Receive(“VerifySKS”, EncryptSKS, SID, VID, TAID, PKV, M4, M5) T7. M5‟ = HMAC(“VerifySKS”, EncryptedSKS, M4)

53 T9. M6 = HMAC(“ConfirmSKS”, M5)

T10. Send(“ConfirmSKS”, M6)

2.3.2. Giao thức trao đổi khóa qua khơng qua trung tâm xác thực

Khi các bên có thể tin tưởng lẫn nhau, trao đổi khóa có thể khơng cần phải qua trung tâm xác thực. Tuy nhiên, để phịng ngừa rủi ro, khóa đối xứng theo phiên (sau đây gọi là khóa phiên) được đề xuất sử dụng. Khóa phiên là một khóa đối xứng có thể được sử dụng cho từng trao đổi khác nhau giữa các đối tác. Khóa được tạo ra cho mỗi phiên giao dịch để loại bỏ các yêu cầu về bảo trì và lưu trữ. Mỗi một khố được sử dụng một lần với một bản tin duy nhất.

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 65 - 67)

Tải bản đầy đủ (PDF)

(120 trang)