Web防御のパスワードセキュリティ


目次
  • パスワードセキュリティ
  • パスワード漏洩ルート
  • セキュリティ防御手段
  • を格納伝送する.
  • 暗号学
  • 対称暗号化
  • 非対称暗号化
  • ハッシュ
  • パスワードのセキュリティを向上させる方法
  • フロントエンド暗号化
  • バックエンド暗号化塩|ランダム塩ハッシュ
  • パスワードなし

  • パスワードのセキュリティ


    パスワードセキュリティには、一般的にパスワードの格納と転送クラスセキュリティがあります.
    漏洩ルート
  • データベース盗難
  • サーバが
  • に侵入する
  • 通信盗聴
  • 内部人員流出
  • 他サイト(衝突庫)
  • ストレージ防御
  • 明文ストレージ
  • は厳禁
  • 一方向変換
  • 変換複雑度
  • を増加
  • パスワードの複雑度を増加
  • 塩(分解防止)
  • トランスミッション防御
  • https伝送
  • 周波数制限
  • 暗号学


    暗号学における暗号化とハッシュはよく用いられるが,符号化と混同はここで先に関与する.
    暗号化には対称暗号化と非対称暗号化の2つの方法がある.
    たいしょう暗号化
    共有鍵、暗号化、復号化は共有鍵です.一般的な対称暗号化アルゴリズムはDES,3 DES,AES,RC 5,RC 6である
    使用シーン:ファイルシステム暗号化、Wi-Fi保護アクセス(WPA)、データベース暗号化
    対称暗号化の大きな欠点は、鍵の管理と割り当てです.言い換えれば、メッセージを復号する必要がある人に鍵をどのように送信するかが問題です.鍵を送信する過程で、鍵はハッカーたちにブロックされるリスクが高い.現実的には、対称暗号化された鍵を非対称暗号化し、それを必要とする人に送信するのが一般的である.DES
    非対称暗号化
  • 公開鍵暗号化、秘密鍵復号
  • 秘密鍵が解けない説明公開鍵が無効である-アンチエイリアス
  • 計算の複雑さは性能に影響を及ぼす
  • 一般的な公開鍵暗号化アルゴリズムにはRSAがあり、使用シーン:TSL、SSH、VPN
    RSAの原理http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
    ハッシュアルゴリズム
    暗号化しかできず、復号できない暗号学アルゴリズムであり、任意の長さの情報を固定長の文字列に変換することができる.
  • 明文-密文-一対一対応
  • 雪崩効果-明文小幅変化密文激しい変化
  • 密文-明文は
  • を反転できません.
  • 密文固定長md 5 sha 1 sha 256
  • シーンを使用:
  • ファイル内容hashにより、ファイルの新旧を識別し、オンラインキャッシュ問題
  • を効果的にクリアする.
  • ダウンロードリソース
  • ログイン中のパスワードのハッシュ
  • パスワードのセキュリティを向上させる方法


    パスワードのセキュリティは、主にパスワードの保存と転送に関連します.
    パスワードの通信伝送中の安全を保証し、HTTPSでよい.
    ここでは主にパスワードのストレージセキュリティについて話します.暗号明文格納は非常に危険であり,データベースが盗難に遭い,サーバが攻撃されたり,開発管理者が漏洩したりする上で容易に取得できるため,バックエンドで暗号を暗号化して入庫するほか,フロントエンドでも暗号化する必要がある.
  • フロントエンドhash暗号化
  • バックエンド暗号化後のパスワードに対してhash+salt入庫
  • を再度行う.
  • ランダム塩ハッシュ
  • パスワードなし
  • hashアルゴリズムは不可逆的なアルゴリズムであり,暗号化された暗号文から明文を推定することはできない.しかし、私たちがよく使うhashアルゴリズムのMD 5は安全ではありません.例えば、md 5が反転したレインボーテーブル(https://www.cmd5.com/)、単純で規則的なパスワードは直接反転することができます.暗号化の過程で
  • パスワードの複雑さを向上させる
  • 暗号化変換の複雑さを高める
  • ハッシュアルゴリズムでは、sha 256のようなSHA 2シリーズが好ましい.MD 5は使いすぎ、レインボーメーターが氾濫しているため、推奨されていません.
    crypto-jsライブラリを使用できます
    //                 
    sha256(
      sha265(sha265(password)) + sha265(username)
    )
    //     
    sha256(
      sha256(username + sha256(password + salt)) + salt + sha256(username + salt)
    )
    //                ,          ,         
    
    sha256(
      sha256(username + sha256(password + salt)) + salt + sha256(username + salt)+ '[email protected]#[email protected]%#$7'
    )
    

    塩と文字列のほかに、ランダムに塩ハッシュを加える方法もあります.前の方法では塩が固定され、塩を加えた位置も固定されています.パスワードを保存するときに塩がランダムに生成され、元のパスワードのランダムな位置に挿入されると、データベースにパスワードごとに記録される塩と塩の位置が異なり、ハッカー攻撃のコストが増加します.
    最も良い方法:パスワードがありません
    最も安全なパスワードの保存方法は、ユーザーパスワードを完全に保存しないことです.現在、各ソーシャルサイトはアカウントアクセスが非常に発達しており、ユーザーが微博、微信、QQ、豆弁、淘宝、人人、Google、Yahoo、Twitter、Facebookなどのさまざまな第三者アカウントであなたのシステムにログインすることができ、ユーザーにランダムメールの暗号コードでログインさせることもできます.パスワードを保存していないと、パスワードが失われません.
    とにかく、道高一尺、魔高一丈.パスワードのセキュリティを高めるのは主にハッカー攻撃のコストを高めることであり、攻撃コストが利益そのものをはるかに上回っている場合、私たちのパスワードは相対的に安全になります.
    参考資料:
  • Webに隠されている暗号学
  • を理解する
  • SSL(https)における対称暗号化と非対称暗号化
  • を理解する.
  • 安全なユーザー名パスワード登録システム
  • を構築
  • ユーザーのパスワードを安全に保存する方法