2.1.2 .Mô tả tấn công BEAST lên bộ giao thức SSL/TLS
2.1.3. tưởng tấn công do Wei Dai đề xuất chống lại chế độ mã khối CBC
Quá trình mã hóa trong SSL/TLS sử dụng khóa đối xứng và ở đây ta thực hiện đối với các hệ thống thực hiễn mã hóa khối dưới chế độ CBC (3DES, AES) với bản rõ đầu vào có độ dài không đổi (64, 128, 256 bit) [1].
Quá trình mã hóa và giải mã trong chế độ CBC [1]:
Hình 2.2. Sơ đồ mã hóa khối CBC Ta có: Ta có:
Ci = Ek(Ci-1 ⨁ Pi) C0 = IV
Giải mã
Hình 2.3. Sơ đồ giải mã trong chế độ mã hóa khối CBC Ta có: Ta có:
C0 = IV
Pi = Dk(Ci) ⨁ Ci-1 Trong đó:
P, C tương ứng là bản rõ và bản mã;
C0 = IV là vector khởi tạo ban đầu;
Ek , Dk là các thuận toán mã hóa và giải mã.
Vector khởi tạo CBC (IV) không cần phải giữ bí mật nhưng không thể dự đoán trước khi kẻ tấn công lựa chọn một bản rõ. Với cùng đầu vào (khóa và bản rõ) nhưng vector khởi tạo khác nhau thì giá trị đầu ra sẽ khác nhau [1]
Một hàm tiên tri (oracle) có thể được xây dựng thành công nếu kẻ tấn công biết được các vector khởi tạo sử dụng trong chế độ CBC. Coi như kẻ tấn công đã hoàn toàn sở hữu khối bản mã Cj-1 (khối bản mã trước đó). Do sử dụng chế độ CBC, nên khối bản mã này được dùng với vai trò vector khởi tạo cho khối bản rõ tiếp theo Pj. Có thể tạo ra một bản rõ dự đoán P* và xác nhận bằng cách quan sát khi nào thì biểu thức sau đây thỏa mãn (các chỉ số i và j khác nhau): Theo quá trình mã hóa, giải mã trong chế độ mã móc xích CBC ta luôn có [1][10]: C* = Ek(P*) P*= Dk(C*) Pj = Cj-1 ⨁ P* = Cj-1 ⨁ Dk(C*) (1) Cj= Ek(Cj-1 ⨁ Pj) Ta luôn đặt được: Pj+1 = C*⨁ Ci-1 ⨁ Pi (2) Khi đó: Cj+1 = Ek(Cj ⨁ Pj+1) = Ek(Ek(Cj-1 ⨁ Pj)⨁ Pj+1) = Ek(Ek(Cj-1 ⨁ Cj-1 ⨁ P*)⨁ Pj+1) = Ek(Ek(P*)⨁ Pj+1 (3) = Ek (C*⨁ C*⨁ Ci-1 ⨁ Pi) = Ek(Ci-1 ⨁ Pi)
= Ci
Nếu thỏa mãn phương trình (3), thì giá trị Pj+1 ở (2) mà kẻ tấn công dự đoán là chính xác và việc dự đoán này sẽ tìm thấy hoàn toàn bản rõ. Nếu Pj+1 nhận một giá trị W cụ thể thì có thể giải mã được sau khi thử tất cả giá trị W có khả năng. Trong thực tế phạm vi của giá trị W rất rộng, tầm 2128. Câu hỏi được đặt ra là làm sao để thu nhỏ phạm vi dự đoán của W? Phương án được đưa ra là chọn ranh giới tấn công chống lại mã khối ở chế độ CBC. Di chuyển đường biên khối xung quanh để thu nhỏ giá