适用于 iOS 的 MultipeerConnectivity 框架中的会话加密

Par*_*gon 5 security encryption objective-c ios multipeer-connectivity

我正在研究 iOS 多人框架,我对它非常满意。我正在共享一些敏感数据,因此必须进行加密。当我们创建会话时,我们会得到三个选项:

self.session = [[MCSession alloc] initWithPeer:self.myPeerID
                              securityIdentity:nil 
                          encryptionPreference:MCEncryptionRequired];
Run Code Online (Sandbox Code Playgroud)
  1. MCEncryptionNone
  2. MCEncryptionOptional
  3. MCEncryptionRequired

    我阅读了 Apple 指南,但找不到太多相关信息。如果我通过了MCEncryptionRequired,有人知道它的加密方式是什么吗?谢谢。

use*_*021 4

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

\n\n

身份验证所需的 MCEncryption :\xe2\x80\xa8

\n\n
    \n
  • 具有相互身份验证的 DTLS:
  • \n
  • 每个对等方发送其证书并验证另一方\xe2\x80\x99s 证书
  • \n
  • RSA 和 EC-DSA TLS 密码套件
  • \n
  • 总共支持 30 个密码套件,包括 PFS 密码套件。!
  • \n
  • 实际上,TLS_RSA_WITH_AES_256_CBC_SHA256 始终经过协商,这不提供 PFS
  • \n
\n\n

从第 61 页开始:

\n\n

MCEncryptionRequired 无需身份验证:\xe2\x80\xa8

\n\n
    \n
  • 具有匿名 TLS 密码套件的 DTLS 未交换证书
  • \n
  • \xe2\x80\x9cAnon" AES TLS 密码套件:\n
      \n
    • TLS_DH_anon_WITH_AES_128_CBC_SHA,
    • \n
    • TLS_DH_anon_WITH_AES_256_CBC_SHA,
    • \n
    • TLS_DH_anon_WITH_AES_128_CBC_SHA256,
    • \n
    • TLS_DH_anon_WITH_AES_256_CBC_SHA256
    • \n
  • \n
\n