5 Ứng dụng ý tưởng tấn công của Wei Dai để giải mã yêu cầu HTTPS

Một phần của tài liệu Nghiên cứu một số lỗ hổng thiếu an ninh trong ứng dụng công nghệ thông tin, phương pháp và công cụ kiểm soát, xử lý lỗ hổng (Trang 41 - 43)

[1][10]

Ứng dụng cụ thể của cách tấn công dùng để giải mã yêu cầu HTTPS. HTTP sử dụng SSL để bảo vệ cookies trong yêu cầu và hồi đáp (responses). SSL nhận được thông báo HTTP từ lớp ứng dụng là dữ liệu nguyên bản (raw data), sau đó được phân chia thành các bản ghi có chiều dài nhỏ hơn hoặc bằng 214 byte. Lỗ hổng bảo mật được khai thác như sau: Mỗi bản ghi được mã hóa ở chế độ CBC với những vector khởi tạo móc xích với nhau, tức là vector khởi tạo CBC dành cho mỗi bản ghi chính là khối bản mã cuối cùng của bản ghi trước đó ngoại trừ vector khởi tạo đầu tiên[1][10].

Block Block P O S T / A A A A A A H T T P

Block

R S [...] \r \n R E Q U E S T B O D Y [...] Hình 2.5. Thực hiện tấn công lựa chọn biên với POST requers trong HTTPS Điều kiện để thực hiện thành công cuộc tấn công:

 Kẻ tấn công nghe trộm được dữ liệu trên đường truyền giữa victim và server;

 Kẻ tấn công có khả năng điều khiển được victim thực hiện một HTTP(S) POST requests tới server;

 Kẻ tấn công điều khiển được đường dẫn đến trong POST request của victim;

 Kẻ tấn công điều khiển được victim truy cập vào một website tạo bởi chính kẻ tấn công để tiến hành cài Agent vào trình duyệt của victim. [1][10]

Kịch bản tấn công như sau[1]:

 Người dùng 1 (Alice) đóng vai trò victim truy cập địa chỉ server của người dùng (Bob): https://www.bob.com;

/ 1 . 1 \r \l n

42

 Alice truy cập địa chỉ https://www.oscar.com do kẻ tấn công (Oscar) điều khiển;

 Oscar sẽ giải mã dữ liệu trên đường truyền từ Alice tới https://www.bob.com. Nguyên lý tấn công [1]:

1) Oscar bắt Allice thực hiện một HTTPS POST requests tới server của Bob (với đường dẫn https://www.bob.com/AAAAAA), brower của Allice sẽ tạo một request (P =POST/AAAAAA HTTP/1.1 ), chia thành các bản ghi ở dạng các block và được mã hóa trong chế độ CBC. Kết quả là bản mã C = Ek(P) được gửi tới server của Bob;

2) Oscar thu được C= [C0…Cn] và đặt i = 1. Oscar đã tiến hành chèn AAAAAA vào trong P và ở đây Oscar sẽ tìm được cookies thông qua giải mã được REQUEST HEADER từ việc dự đoán giá trị P3 trong các bước tiếp theo;

3) Đặt Pi= Ci-1 ⨁ C3 ⨁ P3 với P3= P/1.1\r\nW[i]

Trong đó W[i] là giá trị dự đoán của X tương ứng với bản rõ Pi; 4) Gắn Pi vào request body;

5) Điều khiển trình duyệt của Allice tính Ci = Ek(Ci-1⨁ Pi). Và Ci sẽ được gửi tới server của Bob.

6) Thực hiện:

Ở đây Ci sẽ được khai triển như sau: Ci= Ek(Ci-1 ⨁ Pi)

= Ek(Ci-1⨁ Ci-1 ⨁ C3 ⨁ P3) = Ek(C3⨁ P3)

= C3

Tiến hành kiểm tra: for(i=1; i<=256; i++){ if(Ci= C3)

return X=W[i]; else

43 goto step3;}

Cuối cùng tìm được các giá trị X và tất cả các bản rõ Pi tương ứng. Vậy Oscar sẽ giải mã thành công HTTPS request của Alice gửi cho Bob. Khi đó Oscar tìm được thành công cookies và từ đây dễ dàng truy cập vào server của Bob trên tài khoản của Alice.

Một phần của tài liệu Nghiên cứu một số lỗ hổng thiếu an ninh trong ứng dụng công nghệ thông tin, phương pháp và công cụ kiểm soát, xử lý lỗ hổng (Trang 41 - 43)

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

(91 trang)