-2

ここがこの質問をするのに適切な場所かどうかわかりません。

ハードコードされた番号が埋め込まれたソフトウェアをユーザーに提供することにより、認証を実装したいと思います。ユーザーが知らないソフトウェアに埋め込まれているのは x です。ソフトウェアにはボタンがあり、ユーザーがそれを押すと、x に基づいて a、b、c、d、e f.... などの乱数 * s * をランダムに生成できます。

ユーザーが私の Web サイトにアクセスするとき、x がハードコードされたソフトウェアを使用して、乱数を生成する必要があります、とcは言います。私のWebサイトにユーザー名を入力し、パスワードとしてcを入力すると(ソフトウェアを使用してオンザフライで生成されたパスワード)、私のWebサイトは、cが実際にx(修飾された)によって生成されたことを認識します。これは、ソフトウェアに実装してユーザーに配布する秘密のコードです。したがって、ユーザーがログインできるようにします。ユーザーが入力している乱数が x に基づいて生成されていない場合、私はすぐにそれを知り、ユーザーがログインできないようにします。この実装の背後にある理由は、パスワードの修正を防ぐためです。

結論、与えられたxのアルゴリズムはありますか

f(x) = randomnumbers
g(x, randomnumbers) = true/false

ありがとう

4

2 に答える 2

1

HMACSHA1クラスを確認する必要があります。

秘密鍵があれば、ユーザー名の安全なダイジェストを生成できます。

そうは言っても、アプリに「強化された」セキュリティを実装する場合は、細心の注意を払う必要があります。私が見る主な問題は、キーの有効期限が切れておらず、それを取り消す方法がないことです。

ノッチを上げたい場合は、クライアント証明書またはソフトトークンを調べたほうがよい場合があります。

于 2013-08-30T03:30:41.053 に答える
0

より簡単な解決策はx、データベースを生成してソフトウェアに挿入するときに、独自のデータベースに保存することです。次に、ソフトウェアが接続したいときに送信xし、サイトはデータベースに対してその存在をチェックします。xこれは、シリアル (値) をパターンに対してチェックする代わりに、実際に生成されたキーに対してチェックすることを除いて、ほとんど単なるシリアルです。keygen は、生成されたキーをデータベースに入れることはできません。

x傍受される心配はありませんか?必ず HTTPS を使用してください。MITM なし、ハッシュの受け渡しなし、ユーザーの関与なし (透過的)。

于 2013-08-30T03:24:45.280 に答える