RSA Public-Key Encryption and Signature

RSA (Rivest–Shamir–Adleman) is widely used for secure communication. The RSA algorithm works by generating two large random prime numbers and using them to generate a public and private key pair. This public and private key pair can then be used to encrypt data, decrypt data, generate digital signatures to sign data, and verify the digital signatures used to sign data. There are a lot of libraries that support the RSA algorithm making it easy to implement.
Read More

Public Key Infrastructure

Public key infrastructure is a system of cryptographic keys, digital certificates, and certificate authorities that is used to verify the authenticity of digital information and ensure secure communication over networks. A PKI system uses a public key and a private key. While the public key is freely available and used to encrypt data or verify digital signatures, the private key is kept secret and used for decryption or creating digital signatures.
Read More

Format String Attack

A format string is a string that contains special format specifiers that act as placeholders for data. These format specifiers define how data should be displayed when it is substituted into the string.In the C programming language, functions such as `printf()`, `sprintf()`, `fprintf()`, and `scanf()` can be used with format strings. Exploiting a format string vulnerability can lead to various consequences, such as leaking sensitive information, altering the program state, crashing the program, or even executing arbitrary code. The impact of the attack depends on the specific vulnerability and the attacker's objectives.
Read More

Worm Attack: Morris Worm

Robert Tappan Morris created the Morris worm in 1988. He claimed that the worm was not intended to cause harm but rather to gauge the size of the internet. The worm ended up causing widespread damage and disruption as it quickly got out of control due to its ability to replicate and spread rapidly. The worm started to congest network traffic as it continued to replicate, leading to system crashes and slowdowns.
Read More

Return to libc

Return to libc is used to bypass stack protection mechanisms by using existing code fragments from the program's libc library. The libc library contains various functions that are commonly used by many programs, such as system calls like execve or system. By overriding the return address of a function with the address of these libc functions and providing suitable arguments on the stack, the attacker can redirect the program's execution to call these functions with their desired actions.
Read More

Buffer Overflow

Buffer overflow is a security vulnerability that occurs when a computer program tries to store more data in a memory buffer than it can actually hold. As a result, the extra data spills over into adjacent memory locations, potentially overwriting important data or even allowing malicious code to be executed. This can lead to crashes, unintended behavior, or even unauthorized access to the system.
Read More