Bozuk veya riskli kriptografik algoritma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
OWASP kategorisi: MASVS-CRYPTO: Kriptografi
Genel Bakış
Veri gizliliğini ve bütünlüğünü korumak için kriptografinin yaygın olarak kullanılmasına rağmen, geliştiricilerin zayıf veya eski kriptografik algoritmaları yanlışlıkla uygulaması önemli bir risk oluşturur. Bu güvenlik açığı, gerekli hesaplama gücüne veya bilgiye sahip kötü amaçlı kişiler tarafından istismar edilebilecek bu algoritmalardaki doğal zayıflıklardan kaynaklanmaktadır. Bu tür istismarların sonuçları ciddi olabilir ve yetkisiz erişime, veri ihlallerine ve hassas bilgilerin manipülasyonuna yol açabilir.
Etki
Hassas veriler açığa çıkabilir, değiştirilebilir veya sahtesi oluşturulabilir. Bozuk veya riskli şifreleme algoritmaları güvenlik açıklarına yol açabilir ve hassas bilgilerin şifresini çözmek, verileri değiştirmek ya da yasal kuruluşların kimliğine bürünmek için kötüye kullanılabilir. Bu tür güvenlik açıklarının kötüye kullanılmasının etkileri; veri ihlalleri ve finansal kayıplardan itibar kaybına ve kullanıcı güveninin yitirilmesine kadar değişebilir.
Risk: Zayıf veya bozuk şifreli karma işlevleri
Zayıf veya bozuk kriptografik karma işlevlerinin (ör. MD5
veya SHA1
) kullanılması, verilerin güvenliği ve bütünlüğü açısından önemli bir risk oluşturur. Karma işlevleri, giriş verilerinin benzersiz ve sabit uzunluklu parmak izlerini (karma) oluşturmak için tasarlanmıştır. Bu nedenle, veri bütünlüğü doğrulama, şifre depolama ve dijital imzalar gibi çeşitli amaçlar için kullanışlıdır. Ancak zayıf veya güvenliği ihlal edilmiş karma işlevleri kullanıldığında çeşitli güvenlik açıkları ortaya çıkabilir:
- Çakışma saldırıları: Zayıf karma işlevleri, saldırganın aynı karma değerini üreten iki farklı giriş bulduğu çakışma saldırılarına karşı savunmasızdır. Bu durum, kötü amaçlı kişilerin meşru verilerin yerine kötü amaçlı veriler koymasına ve veri bütünlüğünü tehlikeye atmasına olanak tanır.
- Veri İhlalleri: Şifreler zayıf bir algoritmayla karma oluşturulursa sistemin başarılı bir şekilde ihlal edilmesi, kullanıcı kimlik bilgilerinin açığa çıkmasına neden olabilir. Saldırganlar daha sonra şifreleri kırmak için gökkuşağı tablolarını veya başka teknikleri kullanarak hesaplara yetkisiz erişim sağlayabilir.
- Dijital İmzaların Reddi: Dijital imzalarda kullanılan zayıf karma işlevleri, sahte imzalar oluşturmak için kullanılabilir. Bu durum, belgelerin veya mesajların gerçekliğini ve bütünlüğünü belirlemeyi zorlaştırır.
Risk azaltma önlemleri
Bu riskleri azaltmak için SHA-2
veya SHA-3
gibi güçlü ve iyi test edilmiş kriptografik karma işlevlerini kullanmak ve yeni güvenlik açıkları keşfedildikçe bunları güncel tutmak çok önemlidir. Ayrıca, şifrelere tuzlama işlemi uygulama ve bcrypt
veya Argon2
gibi şifreye özel karma oluşturma algoritmaları kullanma gibi güvenlik uygulamalarını benimsemek veri korumasını daha da artırabilir.
Risk: Zayıf veya bozuk şifreleme işlevleri
Zayıf veya bozuk kriptografik şifreleme işlevlerinin (ör. DES
veya RC4
) kullanılması, hassas verilerin gizliliği açısından ciddi riskler oluşturur. Şifreleme, bilgileri okunamaz bir biçime dönüştürerek korumak için tasarlanmıştır. Ancak şifreleme algoritması kusurluysa bu korumalar atlanabilir:
- Veri İhlalleri: Zayıf şifreleme algoritmaları; kaba kuvvet saldırıları, bilinen düz metin saldırıları ve kriptoanaliz teknikleri gibi çeşitli saldırılara karşı savunmasızdır. Bu saldırılar başarılı olursa şifrelenmiş veriler açığa çıkabilir ve kişisel bilgiler, mali kayıtlar veya gizli iş verileri gibi hassas bilgilere yetkisiz erişim sağlanabilir.
- Veri Manipülasyonu ve Kurcalama: Bir saldırgan verilerin şifresini tam olarak çözemese bile şifreleme algoritması zayıfsa verileri fark edilmeden manipüle edebilir. Bu durum, verilerin yetkisiz şekilde değiştirilmesine yol açabilir ve dolandırıcılık, yanlış beyan veya diğer kötü amaçlı faaliyetlere neden olabilir.
Risk azaltma önlemleri
Şifreleme işlevlerinde güçlü kriptografik algoritmalar kullanın.
Bu riskleri azaltmak için güçlü ve iyi test edilmiş şifreleme algoritmaları kullanmak, anahtar yönetimi ve şifreleme uygulamasıyla ilgili en iyi uygulamaları takip etmek çok önemlidir. Şifreleme algoritmalarını düzenli olarak güncellemek ve yeni tehditler hakkında bilgi sahibi olmak da güçlü bir veri güvenliği sağlamak için önemlidir.
Kullanılması önerilen bazı varsayılan algoritmalar:
- Simetrik şifreleme:
GCM
moduyla AES-128
/AES-256
Chacha20
- Asimetrik şifreleme:
OAEP
iç boşluğuyla RSA-2048
/RSA-4096
Sık karşılaşılan hataları azaltmak için bir şifreleme kitaplığındaki güvenli temel öğeleri kullanın.
Uygun bir şifreleme algoritması seçmek çok önemli olsa da güvenlik açıklarını gerçekten en aza indirmek için kolaylaştırılmış bir API sunan ve güvenli varsayılan yapılandırmaları vurgulayan bir kriptografi kitaplığı kullanmayı düşünebilirsiniz. Bu yaklaşım, uygulamalarınızın güvenliğini güçlendirmekle kalmaz, aynı zamanda kodlama hataları nedeniyle güvenlik açığı oluşma olasılığını da önemli ölçüde azaltır. Örneğin Tink, AEAD
ve Hybrid
şifreleme olmak üzere iki farklı seçenek sunarak şifreleme tercihlerini basitleştirir. Böylece geliştiricilerin bilinçli güvenlik kararları vermesi kolaylaşır.
Risk: Zayıf veya bozuk şifreleme imzası işlevleri
Zayıf veya bozuk kriptografik imza işlevlerinin (ör. RSA-PKCS#1 v1.5
ya da zayıf karma işlevlerine dayalı olanlar) kullanılması, verilerin ve iletişimin bütünlüğü açısından ciddi riskler oluşturur. Dijital imzalar, kimlik doğrulama, inkar edilemezlik ve veri bütünlüğü sağlamak için tasarlanmıştır. Böylece bir mesajın veya belgenin belirli bir gönderenden geldiği ve üzerinde değişiklik yapılmadığı doğrulanır. Ancak temel imza algoritması kusurlu olduğunda bu güvenceler tehlikeye girebilir:
- İmza sahteciliği: Zayıf imza algoritmaları, kötü niyetli kişilerin sahte imzalar oluşturmasına olanak tanıyan saldırılara karşı savunmasız olabilir. Bu nedenle, tespit edilmeden yasal kuruluşların kimliğine bürünebilir, dokümanları sahteleyebilir veya iletileri değiştirebilirler.
- İmzaların reddi: Bir imza algoritması bozulursa imzalayan kişi, bir belgeyi imzalamadığını yanlış bir şekilde iddia edebilir. Bu durum, inkar etmeme ilkesini zayıflatır ve yasal ve lojistik zorluklar yaratır.
- Veri manipülasyonu ve kurcalama: İmzaların verilerin bütünlüğünü korumak için kullanıldığı senaryolarda zayıf bir algoritma, saldırganların imzayı geçersiz kılmadan verileri değiştirmesine olanak tanıyabilir. Bu durum, kurcalamanın tespit edilememesine ve önemli bilgilerin güvenliğinin ihlal edilmesine yol açabilir.
Risk azaltma önlemleri
Güçlü kriptografik imza algoritmaları kullanın
Bu riskleri azaltmak için güçlü ve iyi test edilmiş şifreleme imzası algoritmaları kullanmak çok önemlidir:
PSS
iç boşluğuyla RSA-2048
/RSA-4096
- Güvenli eğrilerle Elips Biçimli Eğri Dijital İmza Algoritması (
ECDSA
)
Sık karşılaşılan hataları azaltmak için bir şifreleme kitaplığındaki güvenli temel öğeleri kullanın.
Doğru imza algoritmasını seçmek önemlidir ancak güvenlik açıklarını gerçekten en aza indirmek için varsayılan olarak güçlü güvenlik garantileri sağlayan bir kriptografi kitaplığı kullanmayı düşünebilirsiniz. Örneğin Tink, varsayılan seçenek olarak güvenli eğrilerle ECDSA
sunarak imza seçeneklerini basitleştirir. Tüm bunlar basit ve kapsamlı bir API içinde yapılır. Bu yaklaşım, güvenliği artırmanın yanı sıra karmaşık yapılandırma veya karar verme süreçlerine gerek kalmadığı için geliştirme sürecini de kolaylaştırır.
Kaynaklar
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],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)"]]