Hướng dẫn python requests tls version - python yêu cầu phiên bản tls
Có thể thấy phiên bản TLS nào được đàm phán với máy chủ bằng mô -đun Python Requests không? Một cái gì đó tương tự như những gì --- No client certificate CA names sent --- SSL handshake has read 3043 bytes and written 375 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.1 Cipher : ECDHE-RSA-AES256-SHA Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None Đã hỏi ngày 2 tháng 10 năm 2017 lúc 19:02Oct 2, 2017 at 19:02
PalepalpalepalPalePal 531 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges 4 Sao chép cốt lõi của câu trả lời khác của tôi tại https://stackoverflow.com/a/55462022/6368697 Nếu bạn muốn làm mọi thứ chỉ một lần và để thử nghiệm, một bản vá khỉ có thể là đủ một triển khai thích hợp với bộ điều hợp vận chuyển và cũng hiển thị chứng chỉ thích hợp):
Sản lượng này:
Đã trả lời ngày 12 tháng 4 năm 2019 lúc 15:05Apr 12, 2019 at 15:05
Patrick Mevzekpatrick MevzekPatrick Mevzek 10.1k16 Huy hiệu vàng34 Huy hiệu bạc 50 Huy hiệu Đồng16 gold badges34 silver badges50 bronze badges Các yêu cầu của Python là một thư viện rất mạnh mẽ có thể được sử dụng các yêu cầu HTTP. Nó rất dễ sử dụng và có hàng tấn các tính năng tuyệt vời. Trong khi làm việc trên việc tuân thủ CC, tôi cần hạn chế phiên bản TLS thành 1.2 cũng như hạn chế các bộ mật mã trong gói Hello Client Hello. Và tôi cần phải làm điều này thông qua thư viện yêu cầu. Tôi đã tìm thấy rất nhiều giải pháp trực tuyến nhưng hầu hết chúng đều chứa các triển khai riêng biệt để hạn chế phiên bản TLS và hạn chế các bộ mật mã. Tôi không thể tìm thấy một giải pháp duy nhất có chứa cả hai chức năng và vì vậy tôi phải tự mình đưa ra nó. Trước khi bạn có thể bắt đầu với mã, hãy đảm bảo rằng bạn đã cài đặt thư viện yêu cầu: Mã sau (I hèll giải thích các bit và mảnh sau) đạt được chức năng cần thiết. Cuộn xuống xa hơn sau mã để giải thích và kiểm tra: Sau đây là những điểm quan trọng cần lưu ý:
Bây giờ, để kiểm tra điều này liệu chúng tôi có thực sự quản lý để hạn chế các bộ mã hóa và phiên bản TLS hay không, chúng tôi sẽ cần Wireshark là một công cụ phân tích gói rất phổ biến. Nếu bạn chưa có nó, hãy cài đặt nó bằng cách chạy lệnh sau:
Khi Wireshark được cài đặt, hãy chạy nó. Trên màn hình này, bạn nên một danh sách các kết nối mạng có sẵn của thiết bị hiện tại của bạn. Ví dụ: trong hình ảnh trên, bạn có thể thấy ENP0S25, WLP3S0, v.v ... Các mạng này liên kết với kết nối Ethernet của bạn, kết nối không dây, v.v. Tôi đã chọn ENP0S25 vì đó là tên của kết nối Ethernet của tôi. Chọn kết nối mạng tùy thuộc vào kết nối mà bạn hiện đang truy cập. Khi bạn chọn kết nối mạng, bạn nên đến màn hình này liệt kê tất cả các gói được gửi và nhận từ máy của bạn. Tuy nhiên, bạn sẽ thấy rất nhiều gói ở đây không có ích gì với chúng tôi. Vì vậy, chúng tôi cần lọc xuống lưu lượng truy cập được ghi lại bởi Wireshark bằng địa chỉ IP của máy chủ mà chúng tôi sẽ tấn công. Với mục đích của hướng dẫn này, tôi đã sử dụng địa chỉ IP của Google. Sao chép dòng sau trong trường văn bản bộ lọc hiển thị và thay thế IP bằng IP của máy chủ mà bạn sẽ kiểm tra nó trên: Bây giờ chạy tập lệnh Python: Thiết bị đầu cuối sẽ xuất ra một Tuy nhiên, có khả năng bạn có thể không có lưu lượng truy cập trong Wireshark do thực tế là Google sử dụng rất nhiều địa chỉ IP và địa chỉ IP mà chúng tôi đang sử dụng để lọc dữ liệu gói của chúng tôi có thể không phải là IP mà yêu cầu của chúng tôi đã được gửi. Để khắc phục điều này, chúng tôi cần thêm một mục nhập trong tệp máy chủ. Mở tệp máy chủ trong bất kỳ trình chỉnh sửa nào có đặc quyền sudo: và thêm dòng sau: 0. Bằng cách này, tất cả các yêu cầu cho Google Google.com sẽ được gửi đến địa chỉ IP 216.58.213.227.216.58.213.227 ip address.Khi điều này được thực hiện, chạy lại kịch bản Python và bây giờ bạn sẽ thấy gói được ghi lại trong Wireshark. Ở đây, trong gói Hello Client, chúng ta có thể thấy rằng giao thức là TLSV1.2. Để kiểm tra các bộ mật mã nào được gửi bởi tập lệnh Python, điều hướng đến: Lớp ổ cắm an toàn -> Lớp bản ghi TLSV1.2TLSv1.2. To check which cipher suites were sent by the python script, Navigate to: Secure Sockets Layer -> TLSv1.2 Record Layer -> Handshake Protocol -> Cipher Suites Ở đây, chúng ta có thể thấy rằng chỉ những cuits mật mã được gửi đến máy chủ để đàm phán TLS mà chúng tôi cho phép trong tập lệnh Python của chúng tôi. Để kiểm tra thêm điều này, hãy sửa đổi phiên bản TLS và các bộ mật mã bị hạn chế.Thay đổi biến mật mã thành chỉ sau:
Và thay đổi các đối số phiên bản TLS để hạn chế TLSV1 và TLSV1.2 thay vì TLSV1.1:
Thực hiện lại tập lệnh Python và xem kết quả trong Wireshark. Bây giờ chúng ta có thể thấy rằng giao thức đang được sử dụng để giao tiếp là TLSV1.1.Ngoài ra, chỉ có một bộ mật mã được gửi bởi khách hàng để đàm phán TLS và đó là một bộ mà chúng tôi đã chỉ định. Tôi hy vọng rằng điều này là hữu ích!Xin vui lòng liên hệ với tôi trong trường hợp bạn gặp phải bất kỳ vấn đề nào.Chúc mừng! |