Unlock Magic: Blending Juicebox with your app
Whether you’re an experienced developer or just beginning your journey in cryptography, our SDK makes it easy to get started with the Juicebox protocol. High security, user-friendly encryption key recovery has never been more accessible.
By the time you’re finished reading this post, you should have a fully functional local environment ready to experiment with and build secure applications using Juicebox’s magical key recovery features. In this guide, I’ll specifically walk you through the process of integrating the Juicebox SDK into your application, running a Juicebox realm locally on your development machine, and testing the integration from end-to-end.
Running a Juicebox hardware realm
As we previously mentioned, the Juicebox protocol allows for two types of realms – hardware realms backed by secure hardware (HSMs), and software realms that can run on commodity hardware. This blog post aims to provide a deeper look into the process of running the former.
If you’ve been looking at the source code we published, you may have noticed the architecture of our hardware realm is more complex than our software realm. This is by design, as it requires multiple HSMs, physical servers to host them, and cloud resources to provide its significantly higher level of security. Additionally, these realms require a lengthy initialization and deployment process that software realms avoid.
Key to Simplicity: Squeezing the hassle out of encryption key recovery
Cryptography transforms the impossible task of safeguarding extensive data transmitted and stored across numerous systems and networks into the simpler task of securing a small singular key in one location. It is a magical thing. However, as services increasingly adopt end-to-end encryption for privacy features, this single small key has emerged as something with challenges and problems of its own.
One of the most notable challenges is ensuring that someone (but only that someone!) has continued access to the encryption keys protecting their data, regardless of whether they reinstall an app, lose their phone, or encounter any of the other myriad pitfalls of life.
Unfortunately, the default approach to these problems is often to place the burden directly onto the user by requiring them to manage a backup of their secret key. These keys are too long to memorize and are challenging for users to store securely. This complexity becomes especially evident when users need to input their key material on a new device, leading some to opt for less secure alternatives instead of navigating the secure platform.