it-swarm-vi.com

Https có ngăn chặn người đàn ông trong các cuộc tấn công trung gian bằng máy chủ proxy không?

Có một máy khách để bàn A kết nối với trang web W trong kết nối https

A --> W

Bằng cách nào đó giữa A và W, có một proxy G.

A --> G --> W
  • Trong trường hợp này, G có thể lấy chứng chỉ mà A đã nhận trước đó từ W không?
  • Nếu G có thể lấy chứng chỉ, điều đó có nghĩa là G sẽ có thể giải mã dữ liệu?
183
jojo

HTTPS hoạt động như thế nào?

HTTPS dựa trên mật mã khóa công khai/khóa riêng. Điều này về cơ bản có nghĩa là có một cặp khóa: Khóa chung được sử dụng để mã hóa và khóa riêng bí mật được yêu cầu để giải mã.

Một chứng chỉ về cơ bản là khóa công khai có nhãn xác định chủ sở hữu.

Vì vậy, khi trình duyệt của bạn kết nối với máy chủ HTTPS, máy chủ sẽ trả lời bằng chứng chỉ của nó. Trình duyệt kiểm tra xem chứng chỉ có hợp lệ không:

  • thông tin chủ sở hữu cần khớp với tên máy chủ mà người dùng yêu cầu.
  • giấy chứng nhận cần phải được ký bởi một cơ quan chứng nhận đáng tin cậy.

Nếu một trong những điều kiện này không được đáp ứng, người dùng sẽ được thông báo về vấn đề này.

Sau khi xác minh, trình duyệt trích xuất khóa chung và sử dụng nó để mã hóa một số thông tin trước khi gửi đến máy chủ. Máy chủ có thể giải mã nó vì máy chủ có khóa riêng phù hợp.

Làm thế nào để HTTPS ngăn chặn con người trong các cuộc tấn công giữa?

Trong trường hợp này, G có thể lấy chứng chỉ mà A đã nhận trước đó từ W không?

Có, chứng chỉ là khóa công khai với nhãn. Máy chủ web sẽ gửi nó cho bất kỳ ai kết nối với nó.

Nếu G có thể lấy chứng chỉ, điều đó có nghĩa là G sẽ có thể giải mã dữ liệu?

Không. Chứng chỉ chứa khóa chung của máy chủ web. Proxy độc hại không thuộc sở hữu của khóa riêng phù hợp. Vì vậy, nếu proxy chuyển tiếp chứng chỉ thực cho máy khách, nó không thể giải mã thông tin mà máy khách gửi đến máy chủ web.

Máy chủ proxy có thể cố gắng giả mạo chứng chỉ và cung cấp khóa công khai của riêng anh ấy. Tuy nhiên, điều này sẽ phá hủy chữ ký của cơ quan chứng nhận. Trình duyệt sẽ cảnh báo về chứng chỉ không hợp lệ.

Có cách nào một máy chủ proxy có thể đọc HTTPS không?

Nếu quản trị viên máy tính của bạn hợp tác, máy chủ proxy có thể đánh hơi các kết nối https. Điều này được sử dụng trong một số công ty để quét virus và thực thi các hướng dẫn sử dụng chấp nhận được.

A cơ quan chứng nhận cục bộ là thiết lập và quản trị viên nói với trình duyệt của bạn rằng CA này đáng tin cậy. Máy chủ proxy sử dụng CA này để ký các chứng chỉ giả mạo của mình.

Ồ và tất nhiên, người dùng có xu hướng nhấp vào cảnh báo bảo mật.

209
Hendrik Brummermann

Giả sử rằng người dùng không nhấp qua các cảnh báo chứng nhận (và giả sử rằng bạn đang chạy một ứng dụng khách chưa sửa đổi), câu trả lời là: Không, proxy không thể giải mã dữ liệu .

Để biết giải thích chi tiết về cách HTTPS ngăn người trung gian giải mã lưu lượng truy cập của bạn, hãy xem bất kỳ tài nguyên tiêu chuẩn nào trên SSL/TLS, ví dụ:

P.S. Giấy chứng nhận là dữ liệu công khai. Nó chứa khóa công khai và tên miền của máy chủ, cả hai đều không bí mật. Quan sát chứng chỉ không giúp kẻ tấn công giải mã dữ liệu. (Có, proxy có thể quan sát chứng chỉ, nhưng điều này là vô hại.)

20
D.W.

Từ blog công nghệ của Philipp C. Heckel với một số chỉnh sửa nhẹ:

Mặc dù việc tấn công lưu lượng HTTP không được mã hóa có thể được thực hiện mà không phải xử lý các chứng chỉ X.509 và cơ quan cấp chứng chỉ (CA), các kết nối HTTPS được mã hóa SSL mã hóa mọi yêu cầu và phản hồi giữa đầu cuối của máy khách và máy chủ. Và bởi vì dữ liệu được truyền được mã hóa bằng một bí mật chung, một người trung gian (hoặc proxy) không thể giải mã các gói dữ liệu được trao đổi. Khi máy khách mở kết nối SSL/TLS đến máy chủ web bảo mật, nó sẽ xác minh danh tính của máy chủ bằng cách kiểm tra hai điều kiện: Đầu tiên, nó kiểm tra xem chứng chỉ của nó có được ký bởi CA biết với máy khách không. Và thứ hai, nó đảm bảo rằng tên chung (CN, cũng: Tên máy chủ) của máy chủ khớp với tên mà nó kết nối. Nếu cả hai điều kiện đều đúng, máy khách sẽ cho rằng kết nối là an toàn.

Tuy nhiên, để có thể theo dõi kết nối, máy chủ Proxy có thể đóng vai trò là cơ quan cấp chứng chỉ, tuy nhiên, không đáng tin cậy: Thay vì cấp chứng chỉ cho người hoặc tổ chức thực tế, proxy sẽ tự động tạo chứng chỉ cho bất kỳ tên máy chủ nào cần thiết cho kết nối . Ví dụ: nếu khách hàng muốn kết nối với https://www.facebook.com , proxy sẽ tạo chứng chỉ cho Trang web www.facebook.com và ký tên với CA. Với điều kiện khách hàng tin tưởng CA này, cả hai điều kiện được đề cập ở trên đều đúng (CA đáng tin cậy, cùng CN) - có nghĩa là khách hàng tin rằng máy chủ proxy trên thực tế là www.facebook.com. Hình dưới đây cho thấy luồng yêu cầu/phản hồi cho kịch bản này. Cơ chế này được gọi là ủy quyền HTTPS minh bạch.

enter image description here

Để cuộc tấn công này hoạt động, có một vài điều kiện phải được đáp ứng:

  • Máy chủ proxy làm cổng chuẩn (HTTP và HTTPS) : Đối với cả proxy HTTP và HTTPS, tất nhiên máy chủ proxy phải có khả năng chặn các gói IP - có nghĩa là nó phải ở đâu đó trên đường đi của gói. Cách dễ nhất để đạt được điều này là thay đổi cổng mặc định trong thiết bị khách sang địa chỉ máy chủ Proxy.
  • CA Proxy đáng tin cậy (chỉ HTTPS) : Để proxy HTTPS hoạt động, khách hàng phải biết (và tin cậy!) CA proxy, tức là khóa CA tập tin phải được thêm vào kho tin cậy của khách hàng.

enter image description here

Nếu bạn quan tâm đến việc đánh hơi các ổ cắm SSL đơn giản trong suốt, bạn có thể muốn thử SSLsplit, một proxy trung gian TLS/SSL trong suốt. Có nhiều cách để tấn công SSL, nhưng bạn không cần chứng chỉ SSL giả, Cơ quan chứng nhận giả mạo (CA) hoặc các biến thể đối với các cuộc tấn công SSL trung gian của chuyên gia bảo mật Moxie Marlinspike. Tại sao phải giải quyết tất cả những rắc rối đó khi bạn chỉ có thể mua proxy chặn SSL, chẳng hạn như ProxySG của Blue Coat Systems hoặc thiết bị SSL Netronome được mua gần đây của họ để thực hiện công việc cho bạn?


Từ Steven J. Vaughan-Nichols trên ZDNet (trích):

Blue Coat, cái tên lớn nhất trong ngành kinh doanh đánh chặn SSL, khác xa với người duy nhất cung cấp khả năng chặn và phá vỡ SSL trong một hộp. Cho đến gần đây, chẳng hạn, Microsoft sẽ bán cho bạn một chương trình, Cổng quản lý mối đe dọa hàng đầu năm 2010, có thể thực hiện công việc cho bạn. Với một chương trình hoặc thiết bị proxy chặn chặn SSL được đặt ra, đây là những gì thực sự xảy ra:

enter image description here

Nếu công ty của bạn đã thiết lập proxy chính xác, bạn sẽ không biết có gì bị tắt vì họ sẽ sắp xếp để có chứng chỉ SSL nội bộ của proxy được đăng ký trên máy của bạn làm chứng chỉ hợp lệ. Nếu không, bạn sẽ nhận được thông báo lỗi bật lên, nếu bạn nhấp vào để tiếp tục, sẽ chấp nhận chứng chỉ kỹ thuật số "giả mạo". Trong cả hai trường hợp, bạn có được kết nối an toàn với proxy, nó có kết nối an toàn với trang bên ngoài - và mọi thứ được gửi qua proxy có thể được đọc bằng văn bản thuần túy. Rất tiếc.

19
manav m-n

Tùy thuộc vào cấu hình của mạng mà bạn đang bật, quản trị viên có thể xem nội dung của các kết nối HTTPS (và có thể cả VPN).

Rõ ràng có thể chặn lưu lượng truy cập trên mạng, nhưng vấn đề thường gặp là họ không thể cấp chứng chỉ hợp lệ cho tất cả các trang web bạn truy cập, do đó bạn sẽ thấy rất nhiều cảnh báo chứng chỉ mỗi khi bạn truy cập trang web HTTPS, nếu họ cố gắng giải mã lưu lượng để xem xét nó.

Tuy nhiên, nếu bạn đang sử dụng máy do công ty cung cấp, họ có thể cài đặt Tổ chức phát hành chứng chỉ mới và sau đó sử dụng máy đó để tạo chứng chỉ SSL cho các trang web bạn truy cập, do đó nó sẽ không xuất hiện như một vấn đề.

Với khía cạnh VPN, mọi thứ có thể phức tạp hơn nếu VPN không sử dụng SSL, nhưng áp dụng lý thuyết tương tự. Nếu bạn truy cập Internet từ một máy thuộc sở hữu của người khác trên mạng mà họ kiểm soát, họ có thể truy cập bất kỳ nội dung nào bạn nhập.

Nếu bạn đang tìm cách tránh loại sự cố này, tôi sẽ sử dụng một thiết bị mà bạn sở hữu/kiểm soát để truy cập Internet, theo cách đó bạn sẽ được cảnh báo nếu có bất kỳ chặn SSL nào xảy ra.

8
Rory McCune

Đúng vậy, các quản trị viên mạng công ty thực hiện một cuộc tấn công trung gian chống lại khách hàng TLS bằng CA riêng của họ để họ có thể thấy những gì rời khỏi mạng của họ. Họ có thể sẽ có một thiết bị sẽ tạo chứng chỉ khi đang bay hợp lệ cho gmail.com khi bạn truy cập gmail.com. Lý do họ làm điều này không phải để chơi Dr. Evil, vì vậy họ có thể bảo vệ chống lại các bí mật thương mại bị đưa ra khỏi tòa nhà của họ qua kết nối Internet của họ. Nghiêm túc, đừng làm ngân hàng tư nhân của bạn trên một máy tính làm việc.

Nếu bạn sử dụng một sản phẩm phần mềm không sử dụng kho chứng chỉ hệ thống (ví dụ: ví dụ OpenVPN), thì, không, họ không thể chặn và giải mã lưu lượng truy cập của bạn vì bạn không tin tưởng CA của họ. Chẳng hạn, bạn có thể đạt được kết quả tương tự khi sử dụng ứng dụng di động Firefox. Và trong hầu hết các trình duyệt, bạn có thể kiểm tra chi tiết về kết nối an toàn của mình và xem CA là ai, để chắc chắn ai đang lắng nghe hay không.

7
Bill McGonigle

Proxy có thể chặn https và chỉ cho phép http từ trình duyệt. Sau đó, nó có thể bắt đầu kết nối https của riêng mình để chuyển các yêu cầu đến máy chủ.

Hầu hết người dùng sẽ không nhận thấy.

HSTS có nhiệm vụ ngăn chặn điều này nhưng nó không được sử dụng rộng rãi.

4
Erik van Velzen

Chấm dứt SSL hoặc các sản phẩm proxy SSL như Bluecoat cần có trên mạng của bạn và xem xét chi phí, quy trình cài đặt có liên quan và chính sách bảo mật thông thường mà bất kỳ tổ chức nào sẽ cài đặt các sản phẩm này - mối đe dọa của kẻ tấn công độc hại sử dụng sản phẩm chấm dứt SSL thương mại là gần như bằng không. OTOH - một người trong cuộc đáng tin cậy có quyền truy cập vào NOC (trung tâm điều hành mạng) trên thực tế có thể theo dõi lưu lượng truy cập bị chấm dứt SSL và tiết lộ thông tin nhạy cảm.

Đây là mối quan tâm chung (có hợp lý hay không) đối với các công ty triển khai hệ thống DLP.

TUY NHIÊN ĐÃ NÓI TẤT CẢ RATNG - có một vectơ tấn công phổ biến trong không gian ngân hàng gia đình không yêu cầu proxy mạng và là các cuộc tấn công piggback/shim trong trình duyệt - vì DOM có quyền truy cập để xóa lưu lượng văn bản trước khi nó truy cập vào Đường ống SSL - đây là một vectơ tấn công thuận tiện và thường được cài đặt thông qua tiện ích mở rộng trình duyệt. Có một bài viết Stackexchange tuyệt vời về shims - Có thể cài đặt shim (còn gọi là polyfill) trong IE, FF hoặc Chrome mà không cần người dùng biết và có thể đọc mật khẩu do người dùng nhập trên trang đăng nhập?

2
Danny Lieberman