2009-07-02 36 views
21

Tôi đã có một ứng dụng cục bộ (mà tôi không viết và không thể thay đổi) nói chuyện với một dịch vụ web từ xa. Nó sử dụng HTTPS, và tôi muốn xem những gì trong giao thông.Chụp lưu lượng truy cập HTTPS rõ ràng?

Có cách nào để tôi có thể thực hiện việc này không? Tôi thích một hệ thống Windows, nhưng tôi rất vui khi thiết lập một proxy trên Linux nếu điều này làm cho mọi thứ trở nên dễ dàng hơn.

Những gì tôi đang xem xét:

  1. Chuyển hướng trang web bằng cách hack file host của tôi (hoặc thiết lập thay thế DNS).
  2. Cài đặt máy chủ HTTPS trên trang web đó, với chứng chỉ tự ký (nhưng đáng tin cậy).
  3. Rõ ràng, WireShark có thể nhìn thấy những gì trong HTTPS nếu bạn cho nó khóa riêng. Tôi chưa bao giờ thử điều này.
  4. Bằng cách nào đó, hãy ủy quyền lưu lượng truy cập này đến máy chủ thực (nghĩa là cuộc tấn công toàn diện "ở giữa").

Điều này có hợp lý không? Có thể WireShark thực sự thấy những gì trong lưu lượng truy cập HTTPS không? Bất cứ ai có thể chỉ cho tôi một proxy phù hợp (và cấu hình cho cùng)?

Trả lời

11

Fiddler có làm những gì bạn muốn không? :

Fiddler là gì?

Fiddler là Proxy gỡ lỗi web ghi lại tất cả lưu lượng HTTP (S) giữa máy tính và Internet của bạn. Fiddler cho phép bạn kiểm tra tất cả lưu lượng HTTP (S) , đặt điểm ngắt và "fiddle" với dữ liệu đến hoặc đi. Fiddler bao gồm một hệ thống con tập lệnh dựa trên sự kiện mạnh mẽ và có thể được mở rộng bằng bất kỳ ngôn ngữ .NET nào.

Fiddler là phần mềm miễn phí và có thể gỡ lỗi giao thông từ hầu như bất kỳ ứng dụng, bao gồm Internet Explorer, Mozilla Firefox, Opera, và hàng ngàn người khác.

+1

Có, nó có thể hoạt động như một proxy trung gian cho các yêu cầu HTTPS - lưu ý rằng nó phục vụ chứng chỉ chưa ký, vì vậy nếu ứng dụng của bạn yêu cầu chứng chỉ đáng tin cậy, bạn sẽ phải vô hiệu hóa yêu cầu này hoặc tin tưởng vào chứng chỉ mà Fiddler không khuyên: http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp –

+0

Tôi đã xem nó qua lưu lượng HTTPS từ Internet Explorer và Chrome; bây giờ để tìm hiểu xem ứng dụng có hoạt động cho ứng dụng được đề cập hay không ... –

+0

... ngoại trừ ứng dụng được đề cập chỉ chạy với quyền quản trị và Fiddler dường như không muốn cài đặt chứng chỉ HTTPS trong tài khoản quản trị viên của tôi (Tôi chạy LUA hầu hết thời gian). –

4

Bạn cần thiết lập proxy cho ứng dụng cục bộ của mình và nếu nó không tôn trọng cài đặt proxy, hãy đặt proxy trong suốt và định tuyến tất cả lưu lượng truy cập https vào nó trước khi ra ngoài. Một cái gì đó như thế này có thể là "người đàn ông" ở giữa: http://crypto.stanford.edu/ssl-mitm

Ngoài ra, đây là hướng dẫn ngắn gọn về cách lưu trữ này với Wireshark: http://predev.wikidot.com/decrypt-ssl-traffic

0
  1. Để sử dụng https proxy để theo dõi, nó phụ thuộc vào loại bắt tay. Nếu ứng dụng cục bộ không kiểm tra chứng chỉ của máy chủ bằng chữ ký CA mà bạn không thể giả mạo và máy chủ không kiểm tra chứng chỉ ứng dụng cục bộ của bạn (hoặc nếu bạn có chứng chỉ proxy https) thì bạn có thể thiết lập proxy https theo dõi lưu lượng truy cập https. Nếu không, tôi nghĩ rằng không thể theo dõi lưu lượng truy cập bằng proxy https.

  2. Một cách khác bạn có thể thử là thêm đầu dò thiết bị đo đạc tại các thói quen của chương trình khách hàng của bạn, nơi nó gửi và nhận thư từ thư viện https của nó. Nó cần một số công việc kỹ thuật đảo ngược, nhưng nên làm việc cho bạn cho tất cả các tình huống.

0

Tôi muốn giới thiệu WireShark, đây là công cụ tốt nhất để theo dõi các phần lưu lượng truy cập khác nhau. Mặc dù, tôi không chắc chắn những gì bạn có thể nhìn thấy với SSL bật. Có lẽ, nếu bạn cung cấp nó với một giấy chứng nhận?

+2

Chứng chỉ không đủ. Nếu không, tất cả chúng ta sẽ giải mã tất cả lưu lượng SSL. Bạn cần một khóa riêng để giải mã lưu lượng truy cập ... như OP đã chỉ ra ... – reiniero

7

Wireshark chắc chắn có thể hiển thị các luồng được mã hóa TLS/SSL dưới dạng bản rõ. Tuy nhiên, bạn chắc chắn sẽ cần khóa riêng của máy chủ để làm như vậy. Khóa cá nhân phải được thêm vào Wireshark dưới dạng tùy chọn SSL theo tùy chọn. Lưu ý rằng điều này chỉ hoạt động nếu bạn có thể theo dõi luồng SSL ngay từ đầu. Nó sẽ không hoạt động nếu kết nối SSL được tái sử dụng.

Để truy cập Internet Explorer (sử dụng lại phiên SSL) có thể tránh được bằng cách xóa trạng thái SSL bằng hộp thoại Tùy chọn Internet. Các môi trường khác có thể yêu cầu khởi động lại trình duyệt hoặc thậm chí khởi động lại hệ thống (để tránh sử dụng lại phiên SSL).

Ràng buộc quan trọng khác là phải sử dụng thuật toán RSA. Wireshark không thể giải mã luồng TLS/SSL sử dụng DFH (Diffie-Hellman).

Giả sử bạn có thể đáp ứng các ràng buộc ở trên, lệnh "Nhấp vào dòng tuân thủ SSL" hoạt động khá tốt.

+0

Các bước cụ thể (hoặc liên kết đến bài đăng) để thiết lập điều này sẽ rất tuyệt. –

2

Bạn cũng nên xem xét Charles. Từ mô tả sản phẩm tại thời điểm trả lời này:

Charles là proxy HTTP/HTTP monitor/Reverse Proxy cho phép nhà phát triển xem tất cả lưu lượng HTTP và SSL/HTTPS giữa máy và Internet. Điều này bao gồm các yêu cầu, phản hồi và tiêu đề HTTP (chứa các cookie và thông tin bộ nhớ đệm).

Các vấn đề liên quan