相反する要件があります:
ユーザーは自分のデバイスを更新できる必要があり、複雑な手順やパスワードを覚えるのが苦手です。
と:
また、ユーザーのパスワードを知っている場合、デバイスを持っている人なら誰でもそのユーザー情報を更新できます。
ユーザーがパスワードを使用することしか (かろうじて) 期待できる場合、パスワードを知っている他の誰かから保護できるとは期待できません。
特定のユーザーまたはデバイスが、提供したものを超えて正当であることを示す「魔法の」認証はありません。
ダウンロードをパスワードで保護したり、証明書をロードしたり、PDA 情報 (さらにはセルラー情報) を取得したりできますが、別の認証メカニズムを追加しない限り、結局のところパスワードしかありません。
パスワードはあなたの最も弱いリンクであり、より厳密なアクセスを提供できないことを示しているようですが、どういうわけかそれが必要ですか?
別の認証チャネル (電話、電子メール、SMS) がある場合は、より堅牢で意味のある認証を提供できます。
たとえば、サーバーが使用するために必要なユーザーごとの公開鍵を含む「public.key」ファイルにプログラム操作を依存させることができます。ユーザーが Web サイトにログインしたら、電話番号を教えてもらい (これで電話番号とパスワードがわかります)、キーの一時ダウンロードへのリンクを含む SMS を送信します。ユーザーごとに新しい鍵を作成し、秘密鍵をサーバーに保持し、この鍵ペアを使用してデバイスとサーバー間のすべてのトランザクションを暗号化 (または少なくとも認証) します。
他の誰かが自分のユーザーになりたい場合は、次の 3 つの方法のいずれかでそのファイルを取得する必要があります。
- 彼らはそれをPDAから直接取り出します(公開鍵はユーザーパスワードで保護する必要があるため、パスワードも必要です)
- ユーザーに新しい SMS リンクを要求してもらい、電話を持たずに何らかの方法でリンクを取得します。
- 彼らは電話番号を変更し、新しい SMS リンクを要求します
いずれにせよ、パスワードだけでなく、関連する電話番号も検証しています。ユーザーが電話番号を変更しにくくすることができます (電話番号の変更を要求したり、電話をかけたりするときに、電子メールに対しても検証します)。
もちろん、他の通信チャネルでも同じことができますが、ユーザーは SMS 認証とダウンロードにますます慣れてきているため、それほど面倒なことではありません。
-アダム