Alice Bob
1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB)
2. tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA)
Tương tự giao thức xác thực hai bước, giao thức xác thực 3 bước được phát triển mở rộng từ giao thức xác thực 2 bước. 2 thông điệp đầu của giao thức này giống với 2 thông điệp của giao thức xác thực 2 bươc.
Thông điệp thứ 3 Alice gửi cho Bob là : rBob. Việc trả lại tham số rBob để Bob
không cần kiểm tra lại nhãn thời gian. Bởi vì các tham số rAlice và rBob được được gửi 2 lần theo chiều xuôi và chiều ngược lại, do vậy giúp cho Alice và Bob có thể kiểm tra và phịng chống tấn cơng lặp lại. Việc này là cần thiết khi đồng hồ của Bob và Alice là không được đảm bảo là đồng bộ.
3.3.5. Kết quả
3.3.5.1. Thiết kế chương trình
Để mô phỏng giao thức cấp phát chứng thư số dành cho điện thoại di động, học viên đã xây dựng 1 chương trình theo mơ hình Client – Server. Trong đó :
Client đóng vai trò là chiếc điện thoại di động khách, được triển khai bằng công nghệ J2ME được chay mô phỏng trên công cụ Wireless Toolkit 3.0. Để phục vụ cho các thao tác mật mã, học viên có sử dụng thư viện mã nguồn mở Bouncy Castle phiên bản trên di động.
Server: Đóng vai trị như CA, cung cấp dịch vụ phát hành chứng thư cho
phía máy khách. Server được xây dựng dựa trên công nghệ Java, sử dụng thư viện mã nguồn mở Bouncy Caslte phục vụ cho các thao tác mật mã.
Môi trường truyền thông : Client sẽ sử dụng dịch vụ GPRS hoặc dịch vụ
3G để kết nối Socket tới CA. Tất cả các thông điệp trao đổi giữa Client và CA đều được truyền qua kết nối Socket.
3.3.5.2. Các bước thực hiện
Trước tiên, để Server có thể đóng vai trị là 1 CA, Server sẽ phải sinh một cặp khóa gồm khóa bí mật và khóa cơng khai. Sau đó Server sẽ thực hiện tự sinh 1 chứng thư cho chính bản thân bằng cách lấy khóa bí mật ký xác nhận cho chứng thư được sinh ra. Sau khi hoàn tất bước này, Server sẽ sở hữu 1 chứng thư số và khóa bí mật được sử dụng để phát hành các chứng thư sau này của Client. Mã nguồn việc sinh khóa và việc tự ký của CA được trích dẫn trong phần phụ lục.