暗号化とは、特殊なアルゴリズムを使用して元の情報データを変更し、権限のないユーザーが暗号化された情報を取得した場合でも、その情報を知ることができないようにすることを指します。 . 復号化方法ではまだメッセージの内容を理解できません。一般的な暗号化アルゴリズムは、主に対称暗号化、非対称暗号化、一方向暗号化に分類できます。暗号化アルゴリズムはさまざまなシーンで使用されており、計算速度、セキュリティ、鍵管理方法など、暗号アルゴリズムの特性に応じて適切なアルゴリズムを選択しますが、セキュリティは暗号アルゴリズムの品質を測る重要な指標です。解読されやすい暗号化 DES アルゴリズムのように、網羅的な手法を使用して限られた時間内に解読できるアルゴリズムは弱い暗号化アルゴリズムと呼ばれます。この記事では、JAVA 言語のソース コードを例として、暗号化が弱い原因と修復方法を分析します。
攻撃耐性の弱い暗号アルゴリズムは、一度悪用されると個人のプライバシー情報が漏洩し、財産上の損失が発生する可能性があります。 。 2018 年 1 月から 2019 年 4 月までに、CVE に関連する脆弱性情報が合計 2 件ありました。脆弱性情報は次のとおりです。
脆弱性の概要 | |
---|---|
CA Privileged AccessManager 2.x でパスワードを送信するときに弱い暗号化が使用されるため、パスワード クラッキングの複雑さが軽減されます。 |
3. サンプル コード
3.1 欠陥コード
上記のサンプル コード操作は、第 49 章でリクエスト内のコンテンツを読み取り、暗号化することです。 Line は、構成ファイル
benchmarkprops
を読み取るインスタンスを取得します。構成ファイルを 50 行目でロードし、構成ファイルの 52 行目から 53 行目で属性cryptoAlg1
を読み取ります。そのような属性がない場合、デフォルトではDESede/ECB/PKCS5Padding# が使用されます。 ## から
algorithmへの割り当て。行 54 では、暗号化オブジェクト c を構築するための暗号化アルゴリズムとして
algorithm
result
になります。 DES アルゴリズムで生成される鍵は 56 ビットと短く、演算速度が遅い上に、DES アルゴリズムは鍵に完全に依存しているため、網羅的検索攻撃に対して脆弱です。Code Guard を使用して上記のサンプル コードを検出すると、「弱い暗号化」の欠陥が検出でき、表示レベルは中です。図 1 に示すように、この欠陥はコードの 57 行目で報告されます。
3.2 修復コード
#上記の修復コードでは、58 行目で DES アルゴリズムの代わりに AES アルゴリズムが使用されています。AES では、少なくとも 128 ビット以上のキーを生成できます。最大256ビットで、動作速度が速く、メモリ使用量が少なくなります。Code Guard を使用して修復されたコードを検出すると、「弱い暗号化」欠陥がないことがわかります。図 2 に示すように:
以上がC言語で弱い暗号化を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。