2017-03-14 5 views
1

私は自分のユーザーのための接続システムをやっています。だから私はユーザーIDとパスワードを保存するためにCookieを使用することにしました(sha1)。しかし、私には1つの質問があります。ランダムなユーザーが両方のクッキーとその名前の値を取得した場合、たとえばjs関数を使用してそれらを作成し、アカウントに入ることができますか?secureフラグとhttps Cookieにsha1パスワードとuserIDを保存すると安全ですか?

+1

クッキーで、ユーザーの資格情報を格納するために絶対に安全ではありません。クッキーは単にローカルマシンに保存されているテキストファイルであり、ハッカーから簡単にアクセスできます。 – Sparrow

+0

@Sparrowただし、パスワードは暗号化されています。私の質問は、人がコンピュータ上で "inspect code"を使って人工的に作成するかどうかです。彼はユーザーアカウントに入ることができますか? –

+1

いくつかのポイント:Cookieのセキュアフラグは、クッキーの「送信」は、プレーンテキストとして起こらないであろうと、それはHTTPSとして転送されることを意味します。したがって、伝送は保護されますが、ローカルストレージは保護されません。パスワードがハッシュされても、まだ弾丸ではありません。ハッシュされた文字列のハッシュされていない文字列を見つけることのできる、ある種の辞書攻撃ツールがあります。彼らが働く方法は、文字列がプレーンテキストとハッシュ文字列のような巨大なテーブルを持っていることです。これらのテーブルには共通のパスワードが含まれています – Sparrow

答えて

2

私は安全なフラグに& httpsのクッキーをSHA1パスワードとユーザIDを格納する場合、それは安全ですか?

私はあなたが理由を知りたいと?まず、「安全」を定義します。どのような脅威を緩和しようとしていますか?

資格情報がハッシュされると、平文を戻す方法はありません。ハッシュされた文字列を平文に戻すことはできないので、サーバで保持されている同じハッシュされた文字列と比較することを意図していると思います。あなたが緩和したい脅威がパスワードとユーザーID を発見した場合、あなたはSHA1の代わりにSHA256のようなものを使用しています。

しかし、緩和したい脅威にリプレイ攻撃やセッションハイジャックが含まれている場合は、他の固定文字列より優れているわけではありません。実際、彼らは悪化しています。ユーザーがHTTPS要求ごとにパスワードを提供する必要がある場合、ユーザーはそれを吸うが、少なくともアプリはログイン試行を抑制し、ブルートフォース攻撃を仕掛ける可能性がある。クレデンシャルがハッシュされ、クッキーで交換されている場合、それらは敵にさらされ、取得された場合はブルートフォースクラッキングを受けるか、またはレインボーテーブルでルックアップすることで、信用状を暗号化またはハッシュ化して送信します。

質問には塩分やセッションキーイングは言及されていません。敵対者は、同じ値が複数のセッションにわたって返されることを見るためにクッキーを調べます。リプレイ攻撃を防ぐには、ハッシュ化する前にナンスを追加して、ハッシュ化された文字列が毎回変わるように塩として機能させる必要があります。しかし、あなた自身のサーバーの制御の外に変換された信任状のペアを送るという問題を解決していない、または同じ目的のために長いランダムな文字列を使用するよりもはるかに悪いです。

さらに、ユーザーがパスワードを変更しない限り、資格情報のハッシュはタイムアウトしません。ユーザーがパスワードを変更したばかりであることを敵対者に伝えます。このパスワードは、パスワード回復を行うITサポート担当者をエンジニアリングします。 "こんにちは、私は自分のパスワードを変更してアカウントをロックしました。リセットすることはできますか?従業員ID?アクセスできたら、私はそれを見直すことができますか?本当に私です。私はちょうどそれを変更しましたか?

サポート担当者は、「ビクターのアプリの設計はちょうど変更されたと私に話したので」、その敵のためにリセットするだけかもしれないと答えたことは決してありません。

  • 攻撃者は、それを元に戻すことはできませんか、それをクラック:セッショントークン、セッションCookieまたはtriparteログインによって生かされている場合でも、そのユーザーのセッションを表す一意の文字列は、これまで議論した脅威のすべてを軽減します彼らがそこにないので、資格を発見する。
  • 各セッションで一意に生成されるため、セッション再生に使用することはできません。
  • 短い時間で有効期限が切れるため、ブラウザのキャッシュや履歴から復活することはできません。

質問に答えるのではなく、「包括的なWebアプリケーションセキュリティのベストプラクティスの信頼できるソースがありますか?」という質問に答えたいと思います。それはに答えるはるかに簡単な質問です。あなたが必要な研究を順守すれば、最初の質問に答えられる可能性があります。

ご覧ください:Open Web Application Security Project (OWASP)

具体的には、Session Management Cheat SheetAuthentication Management Cheat Sheetを参照してください。

OWASPは、定期的にすべての最近の期間のための侵害を報告し、サンプル期間中に最も頻繁に現れた根本的な原因に基づいて、トップ10の脆弱性のリストを公開して分析します。クライアントのために新しいWebサイトをQAすると、ほとんどの場合、OWASPのトップ10リストにいくつかの欠陥があります。開発者やウェブサイトの開発会社として、あなたは群衆の上頭と肩を立って、リピートビジネスの多くを取得したい場合は、あなたがする必要があるすべては、あなたが提供するサイトはOWASPのリスト内の任意の欠陥を持っていないことを確認しています。この質問は、提案されたように構築されたアプリケーションは、OWASPトップ10から少なくとも4つまたは5つの欠陥を有することを示唆しているので、これは今の目標である。高いを目指す。

関連する問題