b)
4.2.1.4 Bảo vệ anti-replay
Bảo vệ anti-replay được đưa ra bởi chuẩn RFC 2401. Bảo vệ anti-replay nhằm chống lại tấn công mã hóa lặp gói bằng cách ấn định một sequence number duy nhất đến mỗi gói được mã hóa. SA anti-replay là một dịch vụ bảo mật mà bên nhận có thể từ chối các gói cũ lặp lại nhằm bảo vệ chính nó chống lại tấn công replay. Trước khi gửi gói tin, bên mã hóa sẽ tiến hành tăng thêm một vào sequence number trong mục SA outbound của nó. Sau khi nhận được gói tin bên giải mã sẽ kiểm tra xem sequence number nhận được đã được bên thu ghi nhận trước đó hay chưa. Nếu đã có thì tiến hành loại bỏ gói tin, nếu không tiến hành giải mã gói tin. N là kích thước cửa sổ replay_window được lưu trong Mục SA. Bên giải mã có khả năng nhớ các gói có sequence number từ X-N+1 đến X. Bất cứ gói nào với sequence number có khoảng cách so với sequence number cao nhất lớn hơn N-1 sẽ bị loại bỏ.
Những hàm sau được dùng để kiểm tra và cập nhật bảo vệ anti-replay:
ipsec_check_replay_window(): kiểm tra nhanh một sequence number trong gói
nhận được không với việc cập nhật thông tin vào bảng SA. Chương trình này được gọi trước phần xác thưc gói tin. Các gói tin có sequence number không đúng thì sẽ bị loại bỏ mà không tiến hành mã hóa. Điều này sẽ tiết kiệm thời gian xử lý và sequence number trong Mục SA sẽ không bị thay đổi.
ipsec_update_replay_window(): sau khi xác thực, chương trình này nhằm xác
định và cập nhật replay window và sequence number trong mục SA. Nếu gói chưa được nhận và sequence number của gói nhỏ hơn sequence number trong mục SA một khoảng nhỏ hơn N, bit tương ứng trong replay_window sẽ được cập nhật. Trong trường hợp là gói mới(sequence number gói nhận lớn hơn sequence number trong mục SA), replay_window sẽ được dịch sai phải một lượng sequence_number(packet nhận được)-
sequence number(trong mục SA). Cuối cùng, anti-replay được cập nhật lại vào mục SA.
1.1.26.Quá trình thực hiện của chương trình.
Trước lúc khởi động quá trình xử lý gói ra, gói vào, trước khi khởi tạo các giao diện mạng, cấu hình ban đầu cho SPD phải được thực hiện trước. Cấu hình thiết lập bảng SPD được thực hiện thông qua việc cập nhật thông tin từ hai file chứa đựng thông tin của bảng SPD outbound và SPD inbound lần lượt là SPD_outbound.cfg và
SPD_inbound.cfg . Sau khi đã cập nhật thông tin ban đầu, quá trình xử lý IPSec được tiến hành phù thuộc vào gói tin đó là gói tin inbound hay gói outbound.