Tôi đang cố gắng viết mã đặt bảo mật mạnh theo mặc định và cũng là bằng chứng tương lai cho đến khi có liên quan đến curl, có nghĩa là nó không cần cập nhật nếu TLS 1.4, 1.5 vv được sử dụng trong tương lai. Mục đích là gửi các gói qua HTTPS đến ISP của người dùng, khi ISP sử dụng Plesk và chỉ kích hoạt API XML của nó. Vì vậy, nó khá nhạy cảm.
Với API này, thông tin đăng nhập của người dùng được gửi không được mã hóa dưới dạng tiêu đề HTTP, rất xa lý tưởng, do đó cần có TLS tối thiểu khá mạnh và một số loại đối số kiểm tra chứng chỉ.
Vấn đề:
Theo man
trang, không có bất kỳ tùy chọn nào đặt mã hóa tối thiểu:
--tls-max
- đặt một tối đa giới hạn. (Dường như không phải là một đối số phù hợp cho--tls-min
)--tlsauthtype
- chỉ hỗ trợ SRP--tlsv1.[0-3]
- nói rằng "Buộc cuộn tròn để sử dụng [ chính xác ] TLS phiên bản 1. [0-3] ", thay vì một tối thiểu của TLS1. [0-3]. .-1, --tlsv1
- buộc TLSv1 nhưng không quan tâm phiên bản nào .
Tôi sẽ sử dụng --anyauth
để yêu cầu mạnh nhất có thể, nhưng đó chỉ là yêu cầu thương lượng tốt nhất , không phải là một tối thiểu . Tôi không muốn thay đổi bất kỳ khía cạnh hệ thống nào khác của cài đặt mã hóa, chỉ là các mật mã mà cURL sẽ sử dụng cho cuộc gọi này. Mã này có thể được sử dụng trên một loạt các hệ điều hành hiện tại và * nix khác.
Câu hỏi:
Có cách nào để đảm bảo TLS "ít nhất là v1.2" hoặc tương tự, nếu tôi muốn đặt mức tối thiểu có thể thực hiện được theo mặc định cho người dùng (người có thể thuộc nhiều loại và độ tuổi của hệ thống)?
Nếu không, tôi có thể gửi một số loại dữ liệu null hoặc tiêu đề tối thiểu chỉ như một đầu dò, để kiểm tra mật mã mà nó sẽ sử dụng và kiểm tra xem nó có khớp khôngtls(1\.[2-9]|[2-9]\.)
hoặc một cái gì đó, trước khi gửi bất kỳ dữ liệu "thực"?Ngoài ra, như một phần thưởng, có bất kỳ tùy chọn liên quan đến chứng chỉ nào thường được sử dụng hoặc là tiêu chuẩn để kiểm tra chứng chỉ cho URI của bên thứ 3 cũng hợp lệ, do đó, nó không thể được chuyển hướng đến một IP giả mạo nếu bộ đệm DNS của người dùng bị nhiễm độc hoặc nhận được một IP giả mạo?