Data Security

Encryption, network attacks, memory corruption, injection and access control.

Introduction & Encryption

Encryption algorithms transform data to protect its confidentiality. Data that has not been encrypted is called plaintext ; encrypting the plaintext produces ciphertext ; decrypting the ciphertext recovers the originalโ€ฆ

Security Design Principles

Encryption , Firewalls , and SQL Injection each cover one specific technique or vulnerability. Here we look at the layer above all of them: the design principles a system should be built against in the first place, soโ€ฆ

Port Scanning & Firewalls

The Internet is a network of computers, or hosts , that exchange messages over connections . Those messages are split into small packets of data (often 1โ€“2 KB), which can be interleaved so the network can be sharedโ€ฆ

Buffer Overflows & Fuzzing

A buffer is a block of memory (or other storage) used to hold data temporarily. Three ordinary examples show why buffers are so common, and so easy to get wrong: a calculator program storing a user's typed input untilโ€ฆ

SQL Injection

Let's take a look at what SQL injection is, how attackers exploit it, the impact it can have, and how to prevent it โ€” the A03:2021 "Injection" category of the OWASP Top 10 .

Unix Permissions

Unix-like systems control access to files, directories, devices and other system resources through a permission model whose core principle is simple: every access decision is based on the identity of the requesting userโ€ฆ

Data Protection Law and Ethics

Professional Ethics covers the general frameworks โ€” deontological, virtue-based, utilitarian โ€” for reasoning about a professional dilemma. This page is narrower and more concrete: what UK and EU data protection lawโ€ฆ

Blockchain Fundamentals

A blockchain solves a specific problem: how can a group of mutually distrusting parties agree on a single shared record of events, with no central authority any of them has to trust? Satoshi Nakamoto's original Bitcoinโ€ฆ