多点连接框架中使用的加密?

Posted

技术标签:

【中文标题】多点连接框架中使用的加密?【英文标题】:Encryption used in Multipeer Connectivity framework? 【发布时间】:2015-11-03 13:33:47 【问题描述】:

嘿,我在 ios 中为聊天应用程序使用多点连接框架。这个框架是否支持任何加密。我想知道这个框架中使用的加密,比如 AES 或 RSA 加密系统? 我的发现或研究: 1.https://datatheorem.github.io/documents/BH_MultipeerConnectivity.pdf 2.https://nabla-c0d3.github.io/blog/2014/08/20/multipeer-connectivity-follow-up/

请发表你的建议

【问题讨论】:

【参考方案1】:

是的,MCSession.h 类中有一个加密选项

 // Encryption preference.
typedef NS_ENUM (NSInteger, MCEncryptionPreference) 
MCEncryptionOptional = 0,                   // session preferred encryption but will accept unencrypted connections
MCEncryptionRequired = 1,                   // session requires encryption
MCEncryptionNone = 2,                       // session should not be encrypted
 NS_ENUM_AVAILABLE (10_10, 7_0);

调用这个方法:

- (instancetype)initWithPeer:(MCPeerID *)myPeerID
        securityIdentity:(nullable NSArray *)identity
    encryptionPreference:(MCEncryptionPreference)encryptionPreference NS_DESIGNATED_INITIALIZER;

【讨论】:

感谢您的回复。这是什么加密? RSA 还是 AES? 请建议他们遵循什么加密方法?【参考方案2】:

为了回答您的第二个问题,MCSession 使用DTLS 对其数据进行加密。 DTLS 基于 TLS(替换 SSL),并提供相同级别的安全性。

所以只使用

MCSession *session = [[MCSession alloc] initWithPeer:localPeerID
                                securityIdentity:nil
                            encryptionPreference:MCEncryptionRequired];

确保您的通信安全。

【讨论】:

以上是关于多点连接框架中使用的加密?的主要内容,如果未能解决你的问题,请参考以下文章

目标 C - 使用多点连接框架发送对象,点未连接

iOS 中的多点连接框架问题

使用 iOS 中的多点连接框架一次可以连接多少台设备?

蓝牙连接立即断开多点框架

iOS 7:多点连接框架 - 负载测试

iOS 7:多点连接框架