A year-in-review blog post about our projects at Paragon Initiative Enterprises.
Or: How I learned to stop worrying and love software exploitation.
There are three forms of dishonesty: Lies, damned lies, and security trade-offs.
If you're wondering which cryptography library you should use in your project, this should help make the decision easier.
Preventing side-channel attacks (i.e. timing attacks on MAC validation) and dangerous compiler optimizations with a blinded comparison.
The theory and practice of securing file upload form handlers. Our examples are in PHP, but many of the filesystem security concepts here are language agnostic.
In version 4.4 and on, WordPress's random number generator function (wp_rand) will now be cryptographically secure.
Don't just fix security vulnerabilities, prevent the habits that cause them in the first place.
If you ever wondered the best way to encrypt a username or row ID for an obfuscated URL in PHP, this is the article for you.
No matter what language you're developing in, there's really only one cryptography library that shines above the rest.
With PHP 7 nearing its official release, let's reflect on the state of cryptography in PHP applications.
We aren't satisfied with the industry's current attempts to teach the basic concepts of application security to software developers; instead, we propose a gentler model.
A human-readable overview of commonly misused cryptography terms and fundamental concepts.
Some useful things that can be built with a CSPRNG.
A lesson on cryptographically secure pseudorandom number generators in PHP, and how to generate random integers and strings from a high quality entropy source like /dev/urandom to generate secure random passwords in PHP.
What is the potential impact of a given vulnerability? This isn't easy to answer.
Although Cross-Site Scripting is one of the most common vulnerabilities on the Internet, it remains an unsolved problem (unlike SQL Injection).
There are a lot of ways having an online presence can be used against you, and the most basic security decisions are not technical.
The first in a two-part series. We establish a mathematical definition for popularity within a given dataset and build some abuse resistance into the algorithm design.
It's 2015; there's no excuse for writing code vulnerable to SQL Injection any more
Alternative title: "Libmcrypt considered harmful." You should use libsodium if you can, or OpenSSL if you can't.
We're maintaining a curated appsec reading list on Github -- check it out.
A developer's short guide to encryption, authentication, and authenticated encryption with examples in PHP
Login forms with a remember me checkbox are a common requirement. We explore the security of login forms and a robust model for remember me checkboxes.
How to configure and use PHP's build-in session management system for maximum security.
The official release of the PHAR auditing utility by Paragon Initiative.
Secure code delivery is a hard problem; one which we aspire to solve.
Will tomorrow bring costly and embarrassing data breaches? Or will it bring growth, success, and peace of mind?
Our team of technology consultants have extensive knowledge and experience with application security and web/application development.
We specialize in cryptography and secure PHP development.
Want the latest from Paragon Initiative Enterprises delivered straight to your inbox? We have two newsletters to choose from.
The first mails quarterly and often showcases our behind-the-scenes projects.
The other is unscheduled and gives you a direct feed into the findings of our open source security research initiatives.