2015-03-03 42 views
10

Chúng tôi đang sử dụng okhttp trong dự án Android của chúng tôi để nói chuyện với API của chúng tôi; tất cả các liên lạc được mã hóa bằng SSL/TLS và các máy chủ của chúng tôi có thể nói được SPDY. Chúng tôi cũng liên kết trong số Google Play Services cho nhà cung cấp vị trí hợp nhất và một số chức năng khác.Chúng tôi có nên sử dụng nhà cung cấp bảo mật của Google với OkHttp không?

Một phần Dịch vụ của Play mà chúng tôi hiện không sử dụng là security provider, hứa hẹn nâng cấp ngăn xếp SSL của thiết bị bằng cách nào đó bảo vệ chống lại các lỗ hổng khác nhau. Tuy nhiên, các tài liệu có phần mơ hồ về những gì nhà cung cấp thực sự là không và những phương pháp SSL nào bị ảnh hưởng và không (một vài ví dụ được cung cấp nhưng không phải là danh sách toàn diện).

Vì vậy, tôi đoán câu hỏi của tôi có hai phần:

  • sẽ là nhà cung cấp an ninh năng động thậm chí làm việc với okhttp, hoặc không okhttp dựa vào cấp dưới (hoặc cấp cao hơn) API mà không bị ảnh hưởng bởi cài đặt nhà cung cấp?

  • Giả sử nó hoạt động, các lợi ích là gì? Có những lợi ích an ninh đáng quan tâm không? Nó có thực sự khắc phục sự cố nguyên gốc liên quan đến ALPN trong okhttp 2.2, là nfuller hints it might không?

+0

Bạn đã tìm thấy giải pháp chưa? – rekire

+0

@rekire, không, chúng tôi không bao giờ tìm ra chính xác những gì đang diễn ra, và vì vậy đã rời khỏi điều này từ bây giờ ... – mlc

Trả lời

3

TL; DR: Có.

Play Services Provider động Security là một JCACryptographic Service Provider (CSP). Một chương trình Java có thể có nhiều CSP được đăng ký và mỗi CSP có thể cung cấp các triển khai khác nhau về các nguyên tắc bảo mật như các thuật toán băm. Dưới đây là một danh sách các CSP có trong Android 2.3:

  • AndroidOpenSSL phiên bản 1.0
  • phiên bản DRLCertFactory 1.0
  • phiên bản BC phiên bản 1,45
  • Crypto phiên bản 1.0
  • HarmonyJSSE 1,0

Khi bạn activate the Play Services Dynamic Security Provider như được nêu trong Tài liệu dành cho nhà phát triển Android, chỉ một nhà cung cấp khác được thêm vào đầu danh sách :

  • phiên bản GmsCore_OpenSSL 1.0
  • AndroidOpenSSL phiên bản 1.0
  • phiên bản DRLCertFactory 1.0
  • phiên bản BC 1,45
  • Crypto phiên bản 1.0
  • HarmonyJSSE phiên bản 1,0

Khi OkHttp (hoặc bất kỳ phần nào khác của ứng dụng của bạn) "bảo mật" bằng cách sử dụng JC Nó chọn một nhà cung cấp theo khả năng của nó và tùy chọn (thứ tự sắp xếp) có nghĩa là GmsCore_OpenSSL sẽ được sử dụng.

Bằng cách dựa vào GmsCore_OpenSSL thay vì bất cứ điều gì đi kèm với các thiết bị ứng dụng của bạn đang chạy trên bạn sẽ có được một thực hiện up-to-date của the provided security primitives thậm chí trên các thiết bị cổ xưa với Android 2.3, tức là không có nhiều SSLv3, TLS 1.2 (Android 2.3 doesn't even support TLS 1.1) với bộ mã hóa hiện tại và lỗ hổng bảo mật được vá. Bởi vì Dịch vụ Play được cập nhật độc lập với Android, nhà cung cấp dịch vụ bảo mật động của Dịch vụ Play luôn cập nhật và do đó, việc sử dụng nó trên các thiết bị hiện tại cũng có ý nghĩa.

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