HTTPプロトコルの下でパスワードがより堅牢ための方法ではありませんことを保証するために、

より転載:https://www.cnblogs.com/intsmaze/p/6009648.html、コメントも非常に興味深いです、あなたが見ることができます

安全性の問題を確実にするためにどのようにHTTPプロトコルのユーザーのログインパスワードで講演:
    白い月最初のアイデアは、暗号化されたパスワードなど、ユーザが入力したパスワードのフロントページが暗号化され、ユーザーがログインし、ログインページでパスワードを入力することですネットワークパラメータを介してサーバにHTTPリクエスト。
    これは少しプログラミングの知識を知っている小さな人々は、あなたが送信するHTTP要求を介してパスワードを知ることができるので、ホワイトは言った、私のパスワードは暗号化されて、取得することも、暗号化され、ユーザーのアカウントのセキュリティを保証することはできません行われますパスワードの後に、それは私の元のパスワードは、ログインページからログインすることはできませんであるかを知りません。

オリジナルと著者は一緒に議論します。http://www.cnblogs.com/intsmaze/p/6009648.html
    が、白いああ、あなたは私が、時々私はちょうどあなたが暗号化された暗号文十分後に知っている、について考えていません自分のhttpリクエストを偽造することができ、暗号文は、内部のリクエストパラメータに加えて、彼らはシステムにログインすることができます。
    今回は白白言いたい、私はパスワードを塩することができます。さて、私たちは、塩は、単にユーザーのパスワードを強化するために戻って、追加の複雑さの元乱数にユーザーが設定したパスワードをプログラムされ、その後、組み合わせたパスワードが保存のために暗号化されて、毎回ログインすると、塩が何であるかを見て先端は、塩を見つけるために、ユーザーを取得するためにリアへの送信を暗号化されたユーザパスワード、およびデータベースへのユーザーアカウントの後端部を入力し、データベースとの平文の組み合わせを来ているかどうかを判断するために暗号化されたパスワードと比較しますこれは、ユーザーに沿ったものです。しかし、ああ、白、あなたが取得した後、人々はまだあなたの闊歩が動作するシステムにログインして使用し、あなたはhttp要求により暗号文を取得し、参照を行うと、他の人を制御することはできません。
    まあ、私は塩の白本当の意味をご紹介しましょう:原因元のパスワードに、侵略され、塩の重要性は、ネットワークを介して送信されたパスワードのセキュリティを保証するものではなく、データベースを防ぐためには、アウトアナリスト、あまりにも簡単ですしたがって、パスワードを知っています。パスワードのMD5後例えば、欠陥を発見することは可能直接処理し、復号化は確かに非常に困難であり、逆、しかし:MD5で暗号化され保存されたパスワードと同じパスワードを2人以上の人が、同じ結果を得ます。ブレークパスワードを破ることができます。彼は自分自身の結果を観察することができるように、ユーザは、データベースを表示することができますし、他の人のパスワードは暗号化された場合はパスワードが他の人と、その後、同じであり、あなたは、ログインする誰か他の人のIDを使用できるように、彼は、パスワードです。だから、私たちの前の暗号化方法、そのような行動は、それが失敗した場合は?ライブ防ぐことができますどのような実際には、ほんの少し混乱し、そしてこれは、暗号化の用語では「塩」として知られています。具体的には、元の材料(ユーザ定義のパスワード)は、システムの複雑さを増加させるために、他の成分(通常、ユーザ自身と単因子)を添加します。場合要約プロセスによって、次に塩及びユーザパスワード、およびこの組み合わせは、より多くの隠れダイジェスト値を得ることができます。
    黒は言った:あなたは、私はすべてのことを知っていると言う、私はあなたにそれを最終的なプログラムを教えてあげる:ユーザーがアカウントの入力が終了した後に、Ajaxはサーバのユーザアカウントに返送され、サーバーのためのこの時間口座は、乱数コードを生成し、フロントエンドのログインページに対応して。
    ユーザーがパスワードを入力すると、ユーザが入力したパスワードのフロントページには、暗号文を暗号化し、その後、再び一緒に暗号化されている暗号化された認証コードを取得するには、サーバーによって返されます。次いで、アカウントセッション認証コードを記憶されたサーバにメッセージを送信し、サーバはユーザのパスワードを取得してフロントエンドと組み合わせて、データベースからの認証コードは、再暗号化された平文比較決意来ます。
さて、その後、検証コードを使用すると、この要求のネットワーク層を取得した後、コードは適切ではないので、リプレイ攻撃していない、1回限りです,,だからので、のはなぜセキュリティを分析してみましょう。そして、あなたが取得するとき新しいコードが、あなたはそれが何であるか、以前の組み合わせ[MD5(MD5(パスワード)+ユーザーのQQ番号)]の内容を知らないので、あなたは0.32ビットのMD5 + 4ビットを着陸の再達成目的にこの要求を送信することはできません。それをクラックする36の合計の認証コード列、あなた。あなたがハングアップして、あなたが抜け出すません。検証サーバのために、限り、MD5値が記録されている(代わりに暗号文の記録)の推定、同じ演算結果を再利用することができず、コンテンツの確認コードは、サーバによって送信される。すなわち、正しいパスワードなどアップ著者を用いて得られた、使い捨てなので、クライアントは偽造することはできない。
以下は、QQの前にソース・コード・セグメント・ページであります:
。ページQの着陸モジュール(フルHTTP / GETリクエスト)
着陸でQQ、ユーザ入力パスワード暗号化されたコードのJS:

function getEncryption(password, uin, vcode, isMd5) {
        var str1 = hexchar2bin(isMd5 ? password : md5(password));
        var str2 = md5(str1 + uin);
        var str3 = md5(str2 + vcode.toUpperCase());
        return str3
    }

方言は次のとおりです。MD5(MD5(MD5(パスワード)+ユーザーのQQ番号)+認証コード)
今、あなたにはHTTPプロトコルでは、パスワードのセキュリティを確保する方法を知っていること。

 

そして、私たちは、セッション中にユーザーのパスワードを保存する場合、ユーザーは、ログオン後について話しています。

元同僚は、コードの一部を変更するためにパスワードを書き、そこにユーザーセッションのログインパスワードで見つけ、その後、セッション時に裁判官、元のパスワードから直接読み込まれます。

安全なパスワードの存在下でのセッション?やる
の情報をサーバに格納されているため、比較的安全を維持するために、セッションの方法を 
利用者情報の開示のために、そしてため、サーバーが制御可能ではない道のクッキー常に危険であるが、そこにあります多くの使用クッキーストアのユーザー情報、暗号化された方法は、通常の処理のために使用します。
私たちは、多くの場合、道はクッキーを使用することで、ユーザー名とパスワードを覚えておく設定多くのサイトを参照してください 

、私はそれをお勧めしません、の実現可能性について。パスワードは、一過、プライベート過渡文字列のパスワードを管理するために使用されている場合でも太陽が会社に設定され、パスワードが出てシリアライズしたくない、  私たちは、セッションを容易にするために便宜的に保存されたパスワードで来ることができません。 

 

最後に、我々は、暗号化の本質について話:それは表面からの結果の目的を達成するためのコストの逆推力を向上させることを目的に、元のコンテンツを混同し、実際にあります。
ページの提出、安全性を確保するには、いくつかの次元がありますが、この質問にパスワードを(実際には、すべての通信は、この問題を持っています)

 

まず最初期からBase64でMD5やSHAに、自分自身を保護するためのパスワードを提出するのは初めてでこれを行うことができますため、セキュリティの側面ですが、パスワードそのものの保護が弱いためにBase64では、可逆的であり、カザフスタンギリシャのアルゴリズムが異なる長さの均一な長さに大きな数にデータを変換し、この問題を解決するために、しかし、この数字は理論的には無限の数の解を対応するが、パスワード入力に制限が制限されて、実際には、その第一の混乱のMD5から、可逆的です三回はSHAを混同しますが、現代のコンピュータ技術の進歩に伴い、難易度を高めるために、より大きな数字を使用するように強制人々の逆のコストを下げるために続けますが、コストを侵害し、開発するためになり、人々は統一を使用していましたCS時代のアルゴリズムアルゴリズムの両側の相対的な使用は秘密が保たれるようにクラックするのは難しい、CSの両端に侵入することは困難であるためには、特に自体明示アルゴリズムJS、理由は開放性を確保するために、BS比較的大きく、実際にはこれだけ抗紳士の悪役は言うかもしれないので、セキュリティ制御の唯一の目的があるだろう、コントロールは非表示にするバイナリコードであります 秘密のアルゴリズムは、アルゴリズムを知らない、暗号文を解読することは困難です。
 

暗号化されたパスワードの単なる事実は、この問題を解決することはできませんので、結果として、パスワードの暗号化は、ログインしているユーザーでも可能になった後、次にプレーンテキストを使用せずに、あなたが行動をシミュレートするために、データの暗号化を使用することができ、同じになる場合は、2番目の次元は、時間であり、常に人々が法律を見つけるが、それはまだ安全ではないのでコストは、高いポイントがあるのだろう、salt値を持つので、同じデータが異なる状況で、まだ矛盾した結果であるが、塩の値が合意を必要とするような問題は、これが提起します通信のセキュリティ。だから、HTTPS通信が使用不能にのぞきになるように、データパスを確保するために、非対称暗号化が使用。しかし、トロイの木馬と呼ばれるもの、人々は混乱入力などの入力の問題を作り続けるので、キーボードがソフトで、良好な制御は、メモリに明示的に存在しない、それは、以前のVB非常に重要であるがあり、Dephiパスワードコントロールがちょうど探しています一般的に、今入力コントロールを使用して最も安全なBS保護システムは、通信を保護するためにHTTPSを使用して、そのハッシュアルゴリズムを隠すように、プレーンテキストであり、実際のメモリよりも少ない、ウイルスやトロイの木馬を使用して簡単です。


 

塩の導入についての詳細はこちらの記事を参照することができます:http://blog.jobbole.com/61872/

おすすめ

転載: blog.csdn.net/Hollake/article/details/90642593