608 karma · joined July 7, 2016
Re: customization, we're quickly adding more customizations like colors/images, etc. Currently you can add a logo for your company, and customize all the text on the approval (approve text/reject text/title/body/etc). You can also specify redirect on {approve, reject} links to take the user somewhere after they answer the prompt.
I also want to mention that we do support volume pricing, so if you want to send lots of approvals per month we can work together on a price that makes sense for your use case -- just reach out to us at support@approveapi.com.
You could make validation part of the workflow (before you can even "say yes", you need to scan a QR code for example). You might say this is also not good UX and I wouldn't disagree. Cryptography + good UX is a hard problem.
Your server can then impersonate a "new device", generate an ephemeral key pair, send the public key to all the user's authenticated device and perhaps trick the user into encrypting their private key to it. One way to prevent this is to show some sort of fingerprint on both the new device and the authenticated device proving that the public key is the correct one.
On iOS it works for Google logins, see the blog post here: https://krypt.co/blog/posts/use-google-advanced-protection-w....
Hopefully other sites support iOS based callbacks soon.
However -- this does illustrate a clear reason why it sometimes makes sense to PGP-sign your releases/commits.
There isn't a good division between personal and work use yet -- this is something that's coming (i.e. multiple teams/keys support).
Krypton for Teams builds on Core to make DevOps key management easy and secure by default. We designed Teams to be cryptographically end-to-end verified using signed hash chains. Even if our infrastructure is attacked your team data cannot be altered.
Looking forward to your feedback!
One of the reasons we built PGP signing capabilities into Krypton [0] is to make it easy for anyone to sign their Git commits/tags. Almost nobody uses this awesome feature of Git. We even ended up implementing parts of the OpenPGP spec in Swift [1].
ZKP[2] is real branch of cryptography and they do not use it AFAIK.
[1] https://spideroak.com/articles/why-we-will-no-longer-use-the...
YubiKeys don't have a UI to show you what you're approving plus suffer the same problem you described. Most developers store keys as files on their machine which can be easily stolen (even if they're encrypted on disk) and used to authenticate to as many servers as the adversary likes without you even knowing.
The private key never leaves your phone. Pair your phone with your computer to create a secure channel (channel is encrypted + signed with session keys only known to your computer and phone). Every time you SSH, the computer calls out to your phone over this channel and asks you to approve a signature.
SSH logins with simple push notification approvals. Code is public: https://github.com/kryptco.
This is why we move it off the computer and onto a phone. The security is comparable to using a Yubikey. I'm not sure why you say your phone is less secure than your laptop. On the phone, apps are sandboxed and the private key never leaves the Kryptonite sandbox.