通过iOS深层链接传递身份验证令牌是否安全?

时间:2017-01-04 06:50:16

标签: ios security authentication

我正在设计一个webapp / mobileapp安全流程,其中没有密码,只有通过短信发送到手机的身份验证令牌。这个缺陷?

计划:

  • 手机接收带有嵌入式邀请令牌 http://domain.com/invite/ABCD
  • 的短信链接
  • 用户点击,转到要求用户安装移动应用的网络应用(通过深层链接,传递相同的令牌myapp://invite/ABCD
  • 加载应用时,邀请令牌ABCD会发送到服务器并交换auth tokensession token
  • Auth token永久存储在应用中的本地存储中。
  • Session token用于连续的api调用,有效期为24小时,然后Auth token将再次用于换取新的session token
                                                                +---+
                                                                |   |
+---------+ <---------------------------------------------------+   |
| Invite  |                                                     | S |
| Link    |                               send invite           | E |
| rec'd   |   +---------+   +--------+    token                 | R |
| via     |   |WebApp:  |   |        +----------------------->  | V |
| SMS     |   |deep     |   | ios App|                          | E |
|         +-> |linked   +-> |        |   receiv auth &          | R |
| (token) |   |to mobile|   |        |   session token          |   |
+---------+   |app      |   |        | <----------------------+ |   |
              |(install)|   |        |                          |   |
              |         |   |        |  use session token       |   |
              |         |   |        |  for all api calls       |   |
              +---------+   +--------+ +--------------------->  +---+

问题:

  • 通过深层链接传递令牌是否安全?
  • 查看此方案的其他任何缺陷?
  • 甚至需要auth / session组合?理由是会话在24小时后到期,因为它更多地通过网络暴露,但是因为它超过了ssl,也许我只需要一个永久存储的auth令牌,也用于api auth?

1 个答案:

答案 0 :(得分:0)

似乎应该可以,但是请注意您的用户体验。您不希望人们共享链接并进行未经授权的登录,而不是将其视为私人密码。使邀请链接仅可使用一次将使它们类似于Slack使用的“魔术链接”模式,但是我会避免将其称为“邀请”,因为这些往往是您会提供给其他人的东西。