Top 5 Cryptographic Security Vulnerabilities of Android Mobile Apps [Updated 2023]
Cryptography is the tool to secure the sensitive data of users in the IT system. Sensitive data may be user-id, passwords, social security numbers, personal documents, images, etc. Cryptography act as a sole tool of confidentiality, integrity, and authentication by encrypting data. In a mobile environment, sensitive data is on mobile devices. If your mobile device is stolen, the risk of leaking sensitive information increases 100 folds more. If a cryptographic mechanism in the mobile is implemented correctly, assurance of security is more. In this article, we will see the Top 5 Cryptographic Security Vulnerabilities in Android Mobile Apps.
(1) Usage of weak cryptographic algorithms such as DES, 3DES, RC2, RC4, MD5, SHA, BLOWFISH, MD4 etc.
Prevent the usage of weak cryptographic algorithms in your code. While using cryptographic algorithms, ensure algorithms are up to date and follow international standards. Always use recommended algorithms by NIST as mentioned below:
- AES-GCM-256 or ChaCha20-Poly1305
- SHA-256, SHA-384, SHA-512, Blake2, the SHA-3 family
- RSA (3072 bits and more), DH (3072 bits or more), ECDH with NIST P-384
(2) Usage of Weak Random Number Generators (RNG)
Never use cryptographically insecure RNGs to generate random numbers that do not pass statistical randomness tests and are not resilient against prediction attacks. Also, never use insecure
java.util.Random the class that gives predicted values on a given seed value. Always ensure random values are generated using a sufficiently secure pseudo-random number generator provided by mobile SDKs.
(3) Usage of Password-based encryption ciphers without initialization vector (IV)
Never use password-based encryption ciphers without initialization vector (IV) or starting variable (SV) while implementing cryptographic mechanisms. IVs are required for CBC, OFB, CFB, PCBC mode as an initial input. Follow documentation from NIST for a recommendation for IV.
(4) Usage of deprecated Security Provider in implementation of mobile apps
Never use deprecated security providers. It is recommended to use a patched security provider. Currently, both Crypto and SHA1PRNG are not recommended.
(5) Usage of the same cryptographic key at many instances
Not use same cryptographic key for multiple purposes and instances. Ensure proper guidelines must be followed while using a secret key.
If you are a developer, keep an eye on recent development in the field of cryptography. Sophisticated attacks may develop by attackers to attack such algorithms that are considered secure.
Subscribe us to receive more such articles updates in your email.
If you have any questions, feel free to ask in the comments section below. Nothing gives me greater joy than helping my readers!
Disclaimer: This tutorial is for educational purpose only. Individual is solely responsible for any illegal act.