Those of you following us know that CipherDB performs key management, key access controls, data encryption and decryption functionality on a per cell basis. In addition, the keys themselves are encrypted and kept separately away from the database server. When the CipherDB agent that lives in in your C# application needs to secure data flowing between the application and the database, it fetches the appropriate key from Crypteron’s datacenter. It’s vital to note that all key transports take place over two layers of encryption, so even if an SSL/TLS weakness exists, the underlying key is never compromised.
Given how much CipherDB does behind the scenes, we’ve had some questions about its performance and felt a blog post was in order.
Benchmarks
We used two machines for our benchmarks, one to represent a modern server and one to represent a legacy server. Of course, one can always use 16+ core CPUs or multiple servers to scale up as needed. Both machines performed reads and writes for 2000 table entries, each with 10 columns.
Every entry was routed into CipherDB’s security pipeline. Since CipherDB is designed to be API compatible with .NET ORMs such as Microsoft Entity Framework or NHibernate to simplify development, we’re comparing standard .NET Entity Framework 6.x performance against CipherDB. NHibernate numbers are similar.
So, what does it look like?
Modern hardware scenario
Specs: 4th Gen Core i7 @ 2.5Ghz (hardware AES support), 16GB RAM, Solid state drives, Windows 8.1 x64 (VM)
Mode | Reads (ms) | Writes (ms) |
CipherDB | 0.76 | 6.88 |
No CipherDB | 0.36 | 6.76 |
Difference | 0.41 | 0.12 |
Legacy hardware
Specs: Core2Duo @ 2.66Ghz (no hardware AES support), 8GB RAM, Solid state drives, Windows 7 x64 (bare metal)
Mode | Reads (ms) | Writes (ms) |
CipherDB | 1.17 | 3.33 |
No CipherDB | 0.40 | 2.84 |
Difference | 0.77 | 0.49 |
As you can see, the performance differential of the entire security processing pipeline is less than a single millisecond on average. How do we accomplish this kind of performance?
- We perform intelligent caching to minimize network chatter with the key management servers
- We leverage hardware accelerated AES when the underlying CPU supports it (most modern CPUs now do)
- We heavily optimize our CipherDB agent to extract as much performance as possible.
What a sub-millisecond impact means is that your page or API responsiveness is going be remain virtually unchanged since network latencies and other effect dominate at that timescale.
The upside is strong data protection which can protect against data breaches even when your SQL Server is misconfigured or vulnerable.
If you have any questions, just reach out to us. We’re here to help!