将iPhone / iPad连接到Mac(Apple方式)

时间:2010-08-11 11:50:35

标签: iphone macos wifi nsnetservice

当Apple的远程应用程序尝试连接到本地网络(使用WiFi)上的Mac(运行iTunes)时,用户需要输入iPhone提供的密码作为安全措施。这种方法已被许多其他应用程序采用(例如,Rowmote,Pastebot,......)。是否有提供这种工作方式的API?

假设Bonjour正在播放中,iPhone如何在不解析Mac发布的NSNet服务的情况下检查Mac上输入的密码是否正确?或者iPhone是否解析了Mac正在发布的NSNetService,并在处理可能通过NSNetService发送的任何其他数据包(密码以外的数据包)之前等待确认密码。

我有一个解决我的问题的方法,但我想知道是否有一个我忽略的API提供了现成的解决方案。

欢迎提供建议和指示。

提前致谢,

巴特

1 个答案:

答案 0 :(得分:0)

我不相信Apple会为此提供API。我只是使用Bonjour API打开两个设备之间的连接,然后让一个随机创建一个4位密码并向其他设备询问它。另一个设备提供UI以询问用户密码,然后将其传回并等待答案。如果它们匹配,则设备会存储彼此的标识符,以便在下次连接时跳过此过程。

编辑:感谢tc指出这种实现并不完全安全。我现在有一个设备创建一个唯一的随机密码,并将其发送到另一个设备,然后存储密码的SHA1哈希值以供将来参考。然后另一个设备存储密码,并在连接进行身份验证时将其重新发送回来。用户执行一次数字代码,以便让设备知道他们将来应该相互信任,但现在为了让逆向工程师连接到设备,他们必须知道标识符和密码。有效的连接设备。 (或者他们必须能够访问这两个设备并执行数字代码;显然,没有办法阻止任何人这样做。)