我正在制作一个应用生态系统,其中包括桌面、移动和 Web,所有这些都使用 Web 服务与相同的数据库进行协商。这些应用程序需要高度安全,因为它们将用于控制家庭安全。例如:远程打开/锁定家中的前门,远程打开/关闭保存在家里的钱库。
我希望这些应用程序尽可能安全,同时尽可能减少对授权用户的干扰。我计划包括的一些安全功能是:
网络应用
- 2步验证,使用一次性密码发送到注册手机。
- 向已注册手机发送有关任何活动的短信更新。
- 部署 RSA 安全令牌,如SecurID
桌面应用
- 将用户绑定到特定(或一组)硬件 id/s。只有映射到特定用户的机器才被允许访问。
移动应用
- 2步验证。
- 在 Android 移动应用中将用户绑定到 NFC 硬件 ID。(其他平台也一样)
数据库安全
- 没有直接暴露数据库模式/数据。
- 通过 oauth 令牌提供的所有 API 请求。
技术栈
它现在还没有冻结,但我打算使用:
- Web 服务框架 - Mule/Java
- 数据库 - Postgres
- Web 框架 - Django/Python
- 移动设备 - Android、Apple、Windows Phone sdks
或 Microsoft 工具 - C#、ASP.NET、SQL Server 2008 R2
在这种情况下,我有以下具体问题。
更新:根据Will的建议,我将我的问题限制在一个方面。
- 上述安全功能是否存在漏洞?
- 任何其他可以实现的安全功能,既安全又不会干扰用户?