Quá trình trao đổi khóa dữ liệu được mô tả bên dưới [10]
Quá trình trao đổi khóa được thực hiện tương ứng với từng dịch vụ mà SS đã đăng kí trong quá trình thiết lập kết nối. Mỗi dịch vụ tương ứng với một Static SA và được định danh bởi một giá trị SAID tương ứng.
Sau khi đã nhận được thông báo Authorization Reply, SS sử dụng giá trị khóa AK để tạo hai khóa gồm: khóa mã hóa khóa (KEK - Key Encryption Key) 128 bit được sử dụng để mã hóa khóa TEK trong suốt quá trình truyền và khóa xác thực thông báo (HMAC - Hash function-based MeSSage Authentication Code) 160 bit. Tiếp đó SS gửi thông báo TEK Request để yêu cầu BS cấp cho một khóa mã hóa lưu lượng TEK, khóa này được dùng để mã hóa dữ liệu. Thông báo TEK Request gồm:
- Số tuần tự khóa AK được cấp trong quá trình xác thực.
- Một giá trị SAID tương ứng với một Static SA của một dịch vụ cụ thể mà SS đã đăng kí.
Hình 3.6: Quá trình trao đổi khóa dữ liệu
Sau khi nhận thông báo TEK Key Request từ SS, BS sử dụng thông tin trong thông báo TEK Key Request để kiểm tra giá trị khóa AK, nếu phù hợp sẽ tiến hành tạo ngẫu nhiên một khóa TEK (128 bit). Khóa TEK được tạo bởi các phương thức Triple-DES (sử dụng 128 bit KEK), hoặc phương thức RSA (sử dụng public key của SS), hoặc phương thức AES (sử dụng 128 bit KEK). Các phương thức mã hóa này được chỉ thị bởi giá trị của một đơn vị trong bộ mã hóa. Sau đó, BS gửi thông báo TEK Key Reply cho SS, thông báo TEK Key Request gồm:
- Số tuần tự khóa AK được cấp trong quá trình xác thực.
- Một giá trị SAID tương ứng với một Static SA của một dịch vụ cụ thể mà SS đã đăng kí.
- Một khóa TEK đã mã hóa.
- Một giá trị thời gian sống (life-time) của khóa TEK.
- Giá trị CBC-IV (CBC - Inittialization Vector) để mã hóa dữ liệu. - Một giá trị HMAC-SHA1 để xác thực các thông báo.
Quá trình trao đổi khóa dữ liệu hoàn tất khi cả BS và SS đều giữ khóa TEK.