【发布时间】:2014-05-29 15:09:10
【问题描述】:
我正在构建一个与服务器通信的移动应用。我希望通信尽可能安全,但我没有这方面的经验。
应用首次启动时,应用向服务器提交电话号码,通过 SMS 获取 6 位代码,然后将这 6 位代码提交到服务器。假设 6 位代码是有效的,服务器将返回移动应用程序一个 API 密钥(长唯一字符串)以保存在移动应用程序上。我正在这样做,因此当用户在另一台设备上重新安装应用程序时,服务器将撤销对旧移动设备的访问权限(即:API 密钥将不再有效)。
我从这里去哪里?我的意图是使用 API 机密来保护从移动应用程序到服务器的所有未来通信(即:注册后的所有通信)。我从之前使用过的不同 API 中获得了这个想法,在这些 API 中,我看到每个 API 用户都被赋予了一个 API 密钥/秘密。在这些 API 上,我注意到 API 机密以下列方式使用,但我不知道这是否是我需要的。
params = {"method": api_function_name,
"order": 'DESC'
"key": CLIENT_SPECIFIC_API_KEY,
}
params = urllib.urlencode(params)
H = hmac.new(CLIENT_SPECIFIC_API_SECRET, digestmod=hashlib.sha512)
H.update(params)
sign = H.hexdigest()
谁能帮我弄清楚我需要从这里做什么?
【问题讨论】:
标签: android security mobile https client-server