私は自分のユーザーのための接続システムをやっています。だから私はユーザーIDとパスワードを保存するためにCookieを使用することにしました(sha1)。しかし、私には1つの質問があります。ランダムなユーザーが両方のクッキーとその名前の値を取得した場合、たとえばjs関数を使用してそれらを作成し、アカウントに入ることができますか?secureフラグとhttps Cookieにsha1パスワードとuserIDを保存すると安全ですか?
答えて
私は安全なフラグに& httpsのクッキーをSHA1パスワードとユーザIDを格納する場合、それは安全ですか?
号
私はあなたが理由を知りたいと?まず、「安全」を定義します。どのような脅威を緩和しようとしていますか?
資格情報がハッシュされると、平文を戻す方法はありません。ハッシュされた文字列を平文に戻すことはできないので、サーバで保持されている同じハッシュされた文字列と比較することを意図していると思います。あなたが緩和したい脅威がパスワードとユーザーID とを発見した場合、あなたはSHA1
の代わりにSHA256
のようなものを使用しています。
しかし、緩和したい脅威にリプレイ攻撃やセッションハイジャックが含まれている場合は、他の固定文字列より優れているわけではありません。実際、彼らは悪化しています。ユーザーがHTTPS要求ごとにパスワードを提供する必要がある場合、ユーザーはそれを吸うが、少なくともアプリはログイン試行を抑制し、ブルートフォース攻撃を仕掛ける可能性がある。クレデンシャルがハッシュされ、クッキーで交換されている場合、それらは敵にさらされ、取得された場合はブルートフォースクラッキングを受けるか、またはレインボーテーブルでルックアップすることで、信用状を暗号化またはハッシュ化して送信します。
質問には塩分やセッションキーイングは言及されていません。敵対者は、同じ値が複数のセッションにわたって返されることを見るためにクッキーを調べます。リプレイ攻撃を防ぐには、ハッシュ化する前にナンスを追加して、ハッシュ化された文字列が毎回変わるように塩として機能させる必要があります。しかし、あなた自身のサーバーの制御の外に変換された信任状のペアを送るという問題を解決していない、または同じ目的のために長いランダムな文字列を使用するよりもはるかに悪いです。
さらに、ユーザーがパスワードを変更しない限り、資格情報のハッシュはタイムアウトしません。ユーザーがパスワードを変更したばかりであることを敵対者に伝えます。このパスワードは、パスワード回復を行うITサポート担当者をエンジニアリングします。 "こんにちは、私は自分のパスワードを変更してアカウントをロックしました。リセットすることはできますか?従業員ID?アクセスできたら、私はそれを見直すことができますか?本当に私です。私はちょうどそれを変更しましたか?
サポート担当者は、「ビクターのアプリの設計はちょうど変更されたと私に話したので」、その敵のためにリセットするだけかもしれないと答えたことは決してありません。
- 攻撃者は、それを元に戻すことはできませんか、それをクラック:セッショントークン、セッションCookieまたはtriparteログインによって生かされている場合でも、そのユーザーのセッションを表す一意の文字列は、これまで議論した脅威のすべてを軽減します彼らがそこにないので、資格を発見する。
- 各セッションで一意に生成されるため、セッション再生に使用することはできません。
- 短い時間で有効期限が切れるため、ブラウザのキャッシュや履歴から復活することはできません。
質問に答えるのではなく、「包括的なWebアプリケーションセキュリティのベストプラクティスの信頼できるソースがありますか?」という質問に答えたいと思います。それはとに答えるはるかに簡単な質問です。あなたが必要な研究を順守すれば、最初の質問に答えられる可能性があります。
ご覧ください:Open Web Application Security Project (OWASP)
具体的には、Session Management Cheat SheetとAuthentication Management Cheat Sheetを参照してください。
OWASPは、定期的にすべての最近の期間のための侵害を報告し、サンプル期間中に最も頻繁に現れた根本的な原因に基づいて、トップ10の脆弱性のリストを公開して分析します。クライアントのために新しいWebサイトをQAすると、ほとんどの場合、OWASPのトップ10リストにいくつかの欠陥があります。開発者やウェブサイトの開発会社として、あなたは群衆の上頭と肩を立って、リピートビジネスの多くを取得したい場合は、あなたがする必要があるすべては、あなたが提供するサイトはOWASPのリスト内の任意の欠陥を持っていないことを確認しています。この質問は、提案されたように構築されたアプリケーションは、OWASPトップ10から少なくとも4つまたは5つの欠陥を有することを示唆しているので、これは今の目標である。高いを目指す。
- 1. フラッシュ共有オブジェクト(Cookie) - 安全にパスワードを保存できますか?
- 2. tomcat 6で安全な(httpsのみ)セッションcookieをフラグする方法
- 3. 安全なCookieと安全でないCookieの違い
- 4. ログインとパスワードのハッシュをセッションに安全に保存していますか?
- 5. symfonyでsha1()としてのパスワード入力をdbに保存
- 6. サーバーにパスワードを保存するのには安全です
- 7. Paypal Proのパスワードを安全に保存する方法は何ですか? (PHP)
- 8. secure(https)から安全でないコンテンツ(http)にリダイレクト
- 9. greasemonkeyで安全にパスワードを保存するには?
- 10. 他のデータと同じデータベースにハッシュされたパスワードを保存することは安全ですか
- 11. IE11(クライアント側)でCookieの安全なフラグを設定する
- 12. PHPコードの中にパスワードを安全に保存するには?
- 13. 安全にローカルにパスワードを保存する
- 14. 安全にanglejsにパスワードを保存する方法
- 15. Webアプリケーションのメールサーバーにパスワードを安全に保存する方法
- 16. ハッシュのないパスワードを安全に保存するには?
- 17. PSExecと安全なパスワード
- 18. 安全にAndroid KeyStoreのパスワードを保存する方法
- 19. ユーザー名/パスワード(ローカル)を安全に保存する方法は?
- 20. HeidiSQLのパスワードを安全に保存する方法
- 21. ASP.NETで「S_pers」と「s_sess」のCookieを安全にマークする方法
- 22. ウェブアプリケーションのソースコードにパスワードを保存するのは安全ですか?
- 23. 秘密のmysqlデータベースに個人用の平文パスワードを保存することは安全ですか?
- 24. javaアプリケーションサーブレット3のhttponlyと安全なフラグ
- 25. 安全なGoogleトラッキングCookie
- 26. クラスインスタンシエーションをシリアル化してfile_put_contentsに保存することは安全ですか?
- 27. app.configファイルはパスワードを保存するための安全な場所ですか?
- 28. angular2-cookieを安全に暗号化する
- 29. ApplicationDataは、onPauseでデータを保存する場所として安全ですか?
- 30. Node.jsとMongoDBでパスワードを保存する
クッキーで、ユーザーの資格情報を格納するために絶対に安全ではありません。クッキーは単にローカルマシンに保存されているテキストファイルであり、ハッカーから簡単にアクセスできます。 – Sparrow
@Sparrowただし、パスワードは暗号化されています。私の質問は、人がコンピュータ上で "inspect code"を使って人工的に作成するかどうかです。彼はユーザーアカウントに入ることができますか? –
いくつかのポイント:Cookieのセキュアフラグは、クッキーの「送信」は、プレーンテキストとして起こらないであろうと、それはHTTPSとして転送されることを意味します。したがって、伝送は保護されますが、ローカルストレージは保護されません。パスワードがハッシュされても、まだ弾丸ではありません。ハッシュされた文字列のハッシュされていない文字列を見つけることのできる、ある種の辞書攻撃ツールがあります。彼らが働く方法は、文字列がプレーンテキストとハッシュ文字列のような巨大なテーブルを持っていることです。これらのテーブルには共通のパスワードが含まれています – Sparrow