Timing leaks and multi-threading

Landon | Aug 24, 2021

What if the server that verified MACs took longer to verify a correct mac than an incorrect one? Or, perhaps put differently, what if you could tell the difference between a more correct guess than an obviously wrong one? If you can, you can break MAC authentication schemes, and that’s what the cryptopals authors are […]

SHA1 and MD4 Length Extension Attacks Explained

Landon | Jul 13, 2021

Continuing my series on the cryptopals challenges… In section four, two of the challenges require you to get past a checksum test by spoofing a hash associated with a forged message. The idea is that if you can manage to pass a query string to an application (say a web application) that has been toyed […]

I’m doing cryptopals

Landon | May 21, 2021

Cryptography fascinates me. It’s amazing how critical cryptography is to the internet and the digital economy. Even more amazing to me is how simple it is to crack if it’s insecure. I don’t have a computer science degree; I took some courses on algorithmic design in college, but felt so totally lost and overwhelmed that […]

Spring Batch Testing: Asserting file equality after running a single step

Landon | Jan 20, 2021

For some time at SoFi, we’ve worked with Spring Batch to provide a third-party integration with a service without a robust API, but that loves to work in terms of batch files. There are a number of ways to deal with that, and we’ve taken a few different approaches. One of them is to implement […]

Beware Hibernate’s caching when using database filters

Landon | Apr 30, 2019

The stack I work in every day uses Hibernate and Spring Data JPA for its object/relational mapping framework. My company is hardly alone in using these tools to map data from a database into Java objects. They’re quite commonly used, and also quite powerful. One of the nifty features of Hibernate is Filtering. You can […]

Properties files vs. the JNDI

Landon | Sep 26, 2017

I don’t know if this is a debate at all, but it has been in my workplace. When managing configuration for Java EE / Spring Framework applications in a Wildfly server environment, what is better: managing an application’s configurable values at the server and environment level through the JNDI, or managing them through the use […]