第三方密码自动填充扩展程序

时间:2019-03-18 20:17:32

标签: ios autofill

苹果如何确保黑客无法将具有假域名的假应用程序与iOS密码自动填充功能配合使用?

例如,如果黑客创建的域名为linkedin.com的应用程序,则用户可能正在使用密码自动填充功能,假冒的应用程序会将linkedin.com作为服务标识符传递给自动填充扩展程序。

我找到了一些有关通用域关联域如何工作的文档,以确保确保服务标识符或域的真实性。

以下是我阅读的文档的链接:https://developer.apple.com/documentation/security/password_autofill/setting_up_an_app_s_associated_domains

如果密码自动填充使用与通用链接相同的机制,并且在允许多个域的应用程序中具有关联的域。当我们尝试对本机应用程序使用自动填充扩展功能时,哪个域会自动填充扩展程序?

1 个答案:

答案 0 :(得分:1)

应用程序和网站之间存在双向链接。

该应用在info.plist文件中列出了其关联的域。 关联域中的网站在apple-app-site-association文件中提供其受支持的应用程序的捆绑软件ID。

要使密码自动填充正常工作,链接的两个部分都必须安装到位。

查看您为linkedin.com提出的示例。

  • 攻击者可以发布将linkedin.com列为关联域的应用。
  • 该应用具有捆绑ID,例如com.badapple.trickyapp
  • 此捆绑包ID不会在linkedin.com apple-app-site-association文件中列出,因为攻击者无法更改该文件;它由链接输入控制。
  • 由于没有匹配项,因此自动填充不会自动触发。

反过来呢?

  • linkedin.com apple-app-site-association将包含其应用的捆绑包ID,例如com.linkedin.app
  • 攻击者无法发布具有该捆绑包ID的应用程序,因为商店中已经存在具有该捆绑包ID的应用程序(LinkedIn官方应用程序),因此他们必须使用其他捆绑包ID。
  • 此外,包ID还需要包含团队标识符,因此只有来自LinkedIn team 的应用可以匹配
  • 回到第一种情况;没有自动填充

本质上,您需要同时控制应用程序和网站内容才能触发自动填充。

如果应用程序中列出了多个域,并且存在相关的网站关联,则iOS将在快速类型栏上提供多个密码选择。如果钥匙串中有更多匹配项(或用户正在使用的任何密码提供者),则他们可以使用“密码...”按钮在表格视图中查看所有匹配项,然后选择相关的帐户详细信息。