خوارزمية التشفير معطَّلة أو خطيرة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
فئة OWASP: MASVS-CRYPTO: التشفير
نظرة عامة
على الرغم من الاستخدام الواسع النطاق للتشفير لحماية سرية البيانات وسلامتها، يظهر خطر كبير عندما ينفّذ المطوّرون عن غير قصد خوارزميات تشفير ضعيفة أو قديمة. وتنشأ هذه الثغرة الأمنية من نقاط الضعف المتأصلة في هذه الخوارزميات، والتي يمكن أن تستغلها الجهات المسيئة التي لديها القدرة الحسابية أو المعرفة اللازمة. ويمكن أن تكون عواقب هذا الاستغلال وخيمة، إذ قد تؤدي إلى الوصول غير المصرَّح به إلى البيانات، واختراقها، والتلاعب بالمعلومات الحسّاسة.
التأثير
قد يتم الكشف عن البيانات الحسّاسة أو تعديلها أو تزويرها. قد تؤدي خوارزميات التشفير المعطّلة أو الخطيرة إلى حدوث ثغرات أمنية، ويمكن إساءة استخدامها لفك تشفير المعلومات الحساسة أو التلاعب بالبيانات أو انتحال هوية الجهات الشرعية. ويمكن أن يتراوح تأثير استغلال هذه الثغرات الأمنية بين اختراق البيانات والخسائر المالية إلى الإضرار بالسمعة وفقدان ثقة المستخدمين.
المخاطرة: وظائف تجزئة التشفير ضعيفة أو معطّلة
إنّ استخدام دوال تجزئة تشفيرية ضعيفة أو معطّلة (مثل MD5
أو SHA1
) يشكّل خطرًا كبيرًا على أمان البيانات وسلامتها. تم تصميم دوال التجزئة لإنشاء بصمات فريدة وثابتة الطول (تجزئات) لبيانات الإدخال، ما يجعلها مفيدة لأغراض مختلفة، بما في ذلك التحقّق من سلامة البيانات وتخزين كلمات المرور والتوقيعات الرقمية. ومع ذلك، عند استخدام دوال تجزئة ضعيفة أو مخترَقة، يمكن أن تنشأ عدة ثغرات أمنية:
- هجمات التضارب: تكون دوال التجزئة الضعيفة عرضة لهجمات التضارب، حيث يعثر المهاجم على مدخلَين مختلفَين ينتجان قيمة التجزئة نفسها. ويمكن أن يسمح ذلك للمهاجمين باستبدال البيانات الضارة بالبيانات المشروعة بدون أن يتم رصدهم، ما يؤدي إلى تعريض سلامة البيانات للخطر.
- عمليات اختراق البيانات: إذا تم تجزئة كلمات المرور باستخدام خوارزمية ضعيفة، قد يؤدي اختراق النظام إلى الكشف عن بيانات اعتماد المستخدم. وبعد ذلك، يمكن للمهاجمين استخدام جداول قوس قزح أو تقنيات أخرى لفك تشفير كلمات المرور، ما يتيح لهم الوصول إلى الحسابات بدون إذن.
- إنكار التوقيعات الرقمية: يمكن استغلال وظائف التجزئة الضعيفة المستخدمة في التوقيعات الرقمية لإنشاء توقيعات مزوّرة، ما يصعّب تحديد أصالة المستندات أو الرسائل وسلامتها.
إجراءات التخفيف
للتخفيف من هذه المخاطر، من الضروري استخدام دوال تجزئة تشفيرية قوية وموثوقة، مثل SHA-2
أو SHA-3
،
والحرص على تحديثها عند اكتشاف ثغرات أمنية جديدة. بالإضافة إلى ذلك، يمكن تعزيز حماية البيانات من خلال اتّباع ممارسات الأمان، مثل إضافة قيمة عشوائية إلى كلمات المرور واستخدام خوارزميات تجزئة خاصة بكلمات المرور، مثل bcrypt
أو Argon2
.
المخاطرة: وظائف تشفير ضعيفة أو معطّلة
يشكّل استخدام وظائف التشفير الضعيفة أو المعطّلة (مثل DES
أو RC4
) مخاطر جسيمة على سرية البيانات الحساسة. تم تصميم التشفير لحماية المعلومات من خلال تحويلها إلى تنسيق غير قابل للقراءة، ولكن إذا كانت خوارزمية التشفير معيبة، يمكن تجاوز هذه الحمايات:
- اختراقات البيانات: خوارزميات التشفير الضعيفة معرَّضة لهجمات مختلفة، بما في ذلك هجمات القوة العمياء وهجمات النص العادي المعروف وتقنيات تحليل التشفير. وفي حال نجاحها، يمكن أن تكشف هذه الهجمات البيانات المشفّرة، ما يسمح بالوصول غير المصرّح به إلى المعلومات الحساسة، مثل التفاصيل الشخصية أو السجلات المالية أو بيانات النشاط التجاري السرية.
- التلاعب بالبيانات وتزويرها: حتى إذا لم يتمكّن المهاجم من فك تشفير البيانات بالكامل، قد يظل بإمكانه التلاعب بها بدون أن يتم اكتشاف ذلك إذا كانت خوارزمية التشفير ضعيفة. ويمكن أن يؤدي ذلك إلى تعديلات غير مصرَّح بها على البيانات، ما قد يؤدي إلى عمليات احتيال أو تحريف أو أنشطة ضارة أخرى.
إجراءات التخفيف
استخدام خوارزميات تشفير قوية في وظائف التشفير
وللحدّ من هذه المخاطر، من الضروري استخدام خوارزميات تشفير قوية وموثوقة واتّباع أفضل الممارسات لإدارة المفاتيح وتنفيذ التشفير. من الضروري أيضًا تحديث خوارزميات التشفير بانتظام والبقاء على اطّلاع على التهديدات الجديدة للحفاظ على أمان البيانات بشكل فعّال.
في ما يلي بعض الخوارزميات التلقائية المقترَحة التي يمكنك استخدامها:
- التشفير المتماثل:
-
AES-128
/AES-256
مع وضع GCM
Chacha20
- التشفير غير المتماثل:
-
RSA-2048
/RSA-4096
مع مساحة متروكة OAEP
استخدام عناصر أساسية آمنة من مكتبة تشفير للحدّ من المشاكل الشائعة
مع أنّ اختيار خوارزمية تشفير مناسبة أمر بالغ الأهمية، إلا أنّه للحدّ من ثغرات الأمان، ننصحك باستخدام مكتبة تشفير توفّر واجهة برمجة تطبيقات مبسطة وتؤكّد على إعدادات تلقائية آمنة. لا يؤدي هذا النهج إلى تعزيز أمان تطبيقاتك فحسب، بل يقلّل أيضًا بشكل كبير من احتمالية حدوث ثغرات أمنية بسبب أخطاء في الترميز. على سبيل المثال، يسهّل Tink خيارات التشفير من خلال توفير خيارَين مختلفَين: تشفير AEAD
وHybrid
، ما يسهّل على المطوّرين اتّخاذ قرارات مدروسة بشأن الأمان.
المخاطرة: وظائف توقيع تشفير ضعيفة أو معطّلة
إنّ استخدام وظائف التوقيعات المشفرة الضعيفة أو المعطّلة (مثل
RSA-PKCS#1 v1.5
أو تلك المستندة إلى وظائف التجزئة الضعيفة)
يشكّل مخاطر جسيمة على سلامة البيانات والاتصالات. تم تصميم التوقيعات الرقمية لتوفير المصادقة وعدم الإنكار وتكامل البيانات، ما يضمن أنّ الرسالة أو المستند صادران عن مرسل معيّن ولم يتم التلاعب بهما. ومع ذلك، يمكن أن تتأثر هذه الضمانات إذا كان خوارزمية التوقيع الأساسية معيبة:
- تزوير التوقيعات: يمكن أن تكون خوارزميات التوقيع الضعيفة عرضة للهجمات التي تتيح للجهات المسيئة إنشاء توقيعات مزوّرة. وهذا يعني أنّه يمكنهم انتحال هوية جهات شرعية أو تزوير مستندات أو التلاعب بالرسائل بدون أن يتم رصدهم.
- إنكار التوقيعات: في حال اختراق خوارزمية التوقيع، قد يتمكّن الموقّع من الادعاء زورًا بأنّه لم يوقّع مستندًا، ما يؤدي إلى تقويض مبدأ عدم الإنكار وإحداث تحديات قانونية ولوجستية.
- التلاعب بالبيانات وتزويرها: في الحالات التي تُستخدم فيها التواقيع لحماية سلامة البيانات، يمكن أن تسمح الخوارزمية الضعيفة للمهاجمين بتعديل البيانات بدون إبطال التوقيع، ما يؤدي إلى تزوير غير مكتشَف واختراق محتمل للمعلومات المهمة.
إجراءات التخفيف
استخدام خوارزميات توقيع تشفير قوية
للتخفيف من هذه المخاطر، من الضروري استخدام خوارزميات توقيع تشفير قوية وموثوقة، مثل:
-
RSA-2048
/RSA-4096
مع مساحة متروكة PSS
- خوارزمية التوقيع الرقمي على المنحنى الإهليلجي (
ECDSA
) مع
منحنيات آمنة
استخدام عناصر أساسية آمنة من مكتبة تشفير للحدّ من المشاكل الشائعة
يُعدّ اختيار خوارزمية التوقيع المناسبة أمرًا ضروريًا، ولكن لتقليل الثغرات الأمنية إلى أدنى حد، ننصحك باستخدام مكتبة تشفير توفّر ضمانات أمان قوية تلقائيًا. على سبيل المثال، تسهّل Tink عملية اختيار التوقيعات من خلال توفير ECDSA
مع منحنيات آمنة كخيار تلقائي، وكل ذلك ضمن واجهة برمجة تطبيقات مباشرة وشاملة. لا يعزّز هذا النهج الأمان فحسب، بل يسهّل أيضًا عملية التطوير من خلال إلغاء الحاجة إلى إعدادات معقّدة أو اتخاذ قرارات.
المراجع
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Broken or risky cryptographic algorithm\n\n\u003cbr /\u003e\n\n**OWASP category:** [MASVS-CRYPTO: Cryptography](https://mas.owasp.org/MASVS/06-MASVS-CRYPTO)\n\nOverview\n--------\n\nDespite the widespread use of cryptography to protect data confidentiality and\nintegrity, a significant risk arises when developers inadvertently implement\nweak or outdated cryptographic algorithms. This vulnerability stems from the\ninherent weaknesses in these algorithms, which can be exploited by malicious\nactors possessing the necessary computational power or knowledge. The\nconsequences of such exploitation can be severe, potentially leading to\nunauthorized access, data breaches, and manipulation of sensitive information.\n\nImpact\n------\n\nSensitive data can be exposed, modified, or forged. Broken or risky\ncryptographic algorithms might lead to vulnerabilities and can be abused to\ndecrypt sensitive information, tamper with data, or impersonate legitimate\nentities. The impact of exploiting such vulnerabilities can range from data\nbreaches and financial losses to reputational damage and loss of user trust.\n\nRisk: Weak or broken cryptographic hash functions\n-------------------------------------------------\n\nThe use of weak or broken cryptographic hash functions (such as `MD5` or `SHA1`)\nposes a significant risk to the security and integrity of data. Hash functions\nare designed to create unique, fixed-length fingerprints (hashes) of input data,\nmaking them useful for various purposes, including data integrity verification,\npassword storage, and digital signatures. However, when weak or compromised hash\nfunctions are employed, several vulnerabilities can arise:\n\n- **Collision Attacks**: Weak hash functions are susceptible to collision attacks, where an attacker finds two different inputs that produce the same hash value. This can allow them to substitute malicious data for legitimate data without detection, compromising data integrity.\n- **Data Breaches**: If passwords are hashed with a weak algorithm, a successful breach of a system could lead to the exposure of user credentials. Attackers could then use rainbow tables or other techniques to crack the passwords, gaining unauthorized access to accounts.\n- **Repudiation of Digital Signatures**: Weak hash functions used in digital signatures can be exploited to create forged signatures, making it difficult to determine the authenticity and integrity of documents or messages.\n\n### Mitigations\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nhash functions like [`SHA-2`](https://en.wikipedia.org/wiki/SHA-2) or [`SHA-3`](https://en.wikipedia.org/wiki/SHA-3), and\nto keep them updated as new vulnerabilities are discovered. Additionally,\nadopting security practices such as salting passwords and using\npassword-specific hashing algorithms like [`bcrypt`](https://en.wikipedia.org/wiki/Bcrypt) or\n[`Argon2`](https://en.wikipedia.org/wiki/Argon2) can further enhance data protection.\n\n*** ** * ** ***\n\nRisk: Weak or broken cryptographic encryption functions\n-------------------------------------------------------\n\nThe use of weak or broken cryptographic encryption functions (such as `DES` or\n`RC4`) poses severe risks to the confidentiality of sensitive data. Encryption\nis designed to protect information by transforming it into an unreadable format,\nbut if the encryption algorithm is flawed, these protections can be bypassed:\n\n- **Data Breaches:** Weak encryption algorithms are susceptible to various attacks, including brute-force attacks, known-plaintext attacks, and cryptanalysis techniques. If successful, these attacks can expose encrypted data, allowing unauthorized access to sensitive information such as personal details, financial records, or confidential business data.\n- **Data Manipulation and Tampering:** Even if an attacker cannot fully decrypt the data, they may still be able to manipulate it without detection if the encryption algorithm is weak. This can lead to unauthorized modifications of data, potentially resulting in fraud, misrepresentation, or other malicious activities.\n\n### Mitigations\n\n#### Use strong cryptographic algorithms in encryption functions\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nalgorithms and follow best practices for key management and encryption\nimplementation. Regularly updating encryption algorithms and staying informed\nabout emerging threats is also essential to maintain robust data security.\n\nSome recommended default algorithms to use:\n\n- Symmetric encryption:\n - `AES-128`/`AES-256` with [`GCM`](https://en.wikipedia.org/wiki/Galois/Counter_Mode) mode\n - `Chacha20`\n- Asymmetric encryption:\n - `RSA-2048`/`RSA-4096` with [`OAEP`](https://datatracker.ietf.org/doc/html/rfc8017) padding\n\n#### Use secure primitives from a cryptography library to reduce common pitfalls\n\nWhile selecting an appropriate encryption algorithm is crucial, to truly\nminimize security vulnerabilities, consider using a cryptography library that\noffers a streamlined API and emphasizes secure default configurations. This\napproach not only strengthens the security of your applications but also\nsignificantly reduces the likelihood of introducing vulnerabilities through\ncoding errors. For example, [Tink](https://developers.google.com/tink) simplifies encryption choices by offering\ntwo distinct options: [`AEAD`](https://developers.google.com/tink/streaming-aead) and [`Hybrid`](https://developers.google.com/tink/hybrid) encryption, making it easier\nfor developers to make informed security decisions.\n\n*** ** * ** ***\n\nRisk: Weak or broken cryptographic signature functions\n------------------------------------------------------\n\nThe use of weak or broken cryptographic signature functions (such as\n[`RSA-PKCS#1 v1.5`](https://www.rfc-editor.org/rfc/rfc2313), or the ones based on weak hash functions)\nposes severe risks to the integrity of data and communication. Digital\nsignatures are designed to provide authentication, non-repudiation, and data\nintegrity, ensuring that a message or document originates from a specific sender\nand has not been tampered with. However, when the underlying signature algorithm\nis flawed, these assurances can be compromised:\n\n- **Forging signatures**: Weak signature algorithms can be vulnerable to attacks that allow malicious actors to create forged signatures. This means they can impersonate legitimate entities, fabricate documents, or tamper with messages without detection.\n- **Repudiation of signatures**: If a signature algorithm is broken, a signer may be able to falsely claim that they did not sign a document, undermining the principle of non-repudiation and creating legal and logistical challenges.\n- **Data manipulation and tampering**: In scenarios where signatures are used to protect the integrity of data, a weak algorithm could allow attackers to modify the data without invalidating the signature, leading to undetected tampering and potential compromise of critical information.\n\n### Mitigations\n\n#### Use strong cryptographic signature algorithms\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nsignature algorithms:\n\n- `RSA-2048`/`RSA-4096` with [`PSS`](https://datatracker.ietf.org/doc/html/rfc8017) padding\n- Elliptic Curve Digital Signature Algorithm ([`ECDSA`](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)) with secure curves\n\n#### Use secure primitives from a cryptography library to reduce common pitfalls\n\nChoosing the right signature algorithm is essential, but to truly minimize\nsecurity vulnerabilities, consider a cryptography library that provides robust\nsecurity assurances by default. [Tink](https://developers.google.com/tink), for example, simplifies signature\nchoices by offering `ECDSA` with secure curves as its default option, all within\na straightforward and comprehensive API. This approach not only enhances\nsecurity but also streamlines development by eliminating the need for complex\nconfiguration or decision-making.\n\n*** ** * ** ***\n\nResources\n---------\n\n- [Tink cryptography library](https://developers.google.com/tink/what-is)\n- [Android App quality: Cryptography](/privacy-and-security/cryptography)\n- [Digital Signature with Tink](https://developers.google.com/tink/digital-signature)\n- [Hybrid Encryption with Tink](https://developers.google.com/tink/hybrid)\n- [Authenticated Encryption with Tink](https://developers.google.com/tink/streaming-aead)\n- [Weak or broken cryptographic hash and encryption functions Android security lint](https://github.com/google/android-security-lints/blob/main/checks/src/main/java/com/example/lint/checks/BadCryptographyUsageDetector.kt)\n- [CWE-327: Use of a Broken or Risky Cryptographic Algorithm](https://cwe.mitre.org/data/definitions/327.html)\n- [CWE-328: Use of Weak Hash](https://cwe.mitre.org/data/definitions/328.html)\n- [CWE-780: Use of RSA Algorithm without OAEP](https://cwe.mitre.org/data/definitions/780.html)\n- [NIST page about Approved Hash Functions](https://csrc.nist.gov/projects/hash-functions)\n- [Advanced Encryption Standard (Wikipedia)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)\n- [Secure Hash Algorithm 2 (Wikipedia)](https://en.wikipedia.org/wiki/SHA-2)\n- [Secure Hash Algorithm 3 (Wikipedia)](https://en.wikipedia.org/wiki/SHA-3)\n- [RSA cryptosystem (Wikipedia)](https://en.wikipedia.org/wiki/RSA_(cryptosystem))\n- [Elliptic Curve Digital Signature Algorithm (Wikipedia)](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)\n- [Stream cipher ChaCha (Wikipedia)](https://en.wikipedia.org/wiki/Salsa20#ChaCha_variant)\n- [Salting password (Wikipedia)](https://en.wikipedia.org/wiki/Salt_(cryptography))\n- [Hybrid cryptosystem (Wikipedia)](https://en.wikipedia.org/wiki/Hybrid_cryptosystem)\n- [Authenticated encryption](https://en.wikipedia.org/wiki/Authenticated_encryption)"]]