私は、デスクトップ、モバイル、および Web を含むアプリ エコシステムを作成しています。これらはすべて、Web サービスを使用して同じデータベースとネゴシエートします。これらのアプリは、ホーム セキュリティの制御に使用されるため、高度なセキュリティが必要です。例: 家の玄関のドアをリモートで開閉する、家の中に保管されている金庫をリモートで開閉する。
これらのアプリは可能な限り安全でありながら、許可されたユーザーの邪魔にならないようにしたいと考えています。含める予定のセキュリティ機能は次のとおりです。
ウェブアプリ
- 登録済みの携帯電話に送信されるワンタイムパスワードを使用した 2 段階認証。
- アクティビティに関する登録済み携帯電話への SMS 更新。
- SecurIDのような RSA セキュア トークンの展開
デスクトップ アプリ
- ユーザーを特定の (またはセットの) ハードウェア ID にバインドします。特定のユーザーにマッピングされたマシンのみがアクセスを許可されます。
モバイルアプリ
- 2段階認証。
- Android モバイル アプリでユーザーを NFC ハードウェア ID にバインドします。(他のプラットフォームも同様)
データベースのセキュリティ
- データベースのスキーマ/データを直接公開することはありません。
- oauth トークンを介して提供されるすべての API リクエスト。
技術スタック
現在は凍結されていませんが、次のいずれかを使用する予定です。
- Web サービス フレームワーク - Mule/Java
- データベース - Postgres
- Web フレームワーク - Django/Python
- モバイル - Android、Apple、Windows Phone SDK
または Microsoft ツール全体 - C#、ASP.NET、SQL Server 2008 R2
このシナリオでは、次の特定の質問があります。
更新:ウィルのアドバイスで、質問を1つの側面に限定しています。
- 上記のセキュリティ機能に関連する脆弱性はありますか?
- 安全でありながらユーザーの邪魔にならない、実装可能なその他のセキュリティ機能はありますか?