iOS的MultipeerConnectivity框架中的会话加密

时间:2014-04-21 20:47:00

标签: ios objective-c security encryption multipeer-connectivity

我正在开发iOS多重框架,我对它非常满意。我正在分享一些敏感数据,所以必须进行加密。 当我们创建会话时,我们有三个选项:

self.session = [[MCSession alloc] initWithPeer:self.myPeerID
                              securityIdentity:nil 
                          encryptionPreference:MCEncryptionRequired];
  1. MCEncryptionNone
  2. MCEncryptionOptional
  3. MCEncryptionRequired

    我阅读了Apple指南,但无法找到有关它的更多信息。如果我通过MCEncryptionRequired,有人知道它做了什么样的加密吗? 感谢。

1 个答案:

答案 0 :(得分:2)

Alban Diquet分析了该框架的通信,并在此BlackHat presentation中记录了他的结果。从第58页开始:

MCEncryptionRequired with Authentication

  • 使用相互身份验证的DTLS:
  • 每个对等方发送证书并验证另一方的证书
  • RSA& EC-DSA TLS密码套件
  • 总共支持30个密码套件,包括PFS密码套件。!
  • 实际上,TLS_RSA_WITH_AES_256_CBC_SHA256始终是协商的,但不提供PFS

从第61页开始:

未经身份验证的MCEncryptionRequired

  • DTLS与匿名TLS密码套件没有交换证书
  • “Anon”AES TLS密码套件:
    • TLS_DH_anon_WITH_AES_128_CBC_SHA,
    • TLS_DH_anon_WITH_AES_256_CBC_SHA,
    • TLS_DH_anon_WITH_AES_128_CBC_SHA256,
    • TLS_DH_anon_WITH_AES_256_CBC_SHA256