Gần đây tôi cần cấu hình CocoaHttpServer, mà chúng tôi đang sử dụng trong ứng dụng của mình để thành công, để xử lý các kết nối HTTPS đến từ ứng dụng khách (chạy trên thiết bị Android). Điều này là tốt - có mã mẫu phong phú cho phép điều này, và chúng tôi đã có thể kích hoạt máy chủ bảo mật mà không có vấn đề.Làm thế nào để đặt mật mã SSL khi sử dụng CFSocket/CFStream trong Cocoa?
Trong thực tế, chúng tôi đã nhìn thấy các giai đoạn đàm phán SSL cực kỳ dài trong khi khách hàng đã bắt tay với máy chủ của chúng tôi - tối đa 70 giây.
Thông qua một chuỗi dài các tìm kiếm, tôi nhận thấy sự chậm trễ là do việc tính toán các tham số Diffie-Hellman được sử dụng theo mặc định khi SSL được bật trong CFSocket. Đây là số thread là nơi tôi bắt đầu tìm câu trả lời cho vấn đề của mình.
Để phù hợp với những gì máy chủ Windows của chúng tôi đang làm (sử dụng mật mã SSL kém an toàn hơn), tôi cần đặt mật mã một cách rõ ràng trên Mac, điều này không dễ dàng khi sử dụng AsyncSocket làm trình bao bọc cho truyền thông ổ cắm.
của Windows của chúng tôi máy chủ đã được sử dụng: TLS_RSA_WITH_RC4_128_MD5) (0x04) RC4 128 bit MD5 RSA
Macintosh của chúng tôi máy chủ được sử dụng: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x039) AES 256 bit SHA-1 Ephemeral Diffie-Hellman key trao đổi sử dụng giấy chứng nhận RSA
Sự khác biệt về "bảo mật" là lớn, nhưng có thể không đáng để nỗ lực/tính toán/chậm trễ mà chúng tôi đã thấy. Nhà hát an ninh?
+1 cho nỗ lực của bạn và để làm cụm từ "Nhà hát an ninh"? vào bài viết của bạn :-) –
Điều này rất hữu ích, nhưng bạn nên tách ra câu trả lời và đăng câu trả lời cho câu hỏi này, vì vậy điều này không tồn tại mãi mãi trên trang Chưa được trả lời. (Nó hoàn toàn kosher để trả lời câu hỏi của riêng bạn.) – benzado