8 ms·
Krypt.co raises 1.2M to securely store your SSH private key on your phone
- floatboth 9y agoNever thought I'd see "raises 1.2M" and "SSH private key" in one sentence. What would they even do with this money?
- dmitrygr 9y agoVery professional code there .... https://github.com/kryptco/kryptonite-android/blob/master/app/src/main/cpp/native-lib.cpp https://github.com/kryptco/kryptonite-android/blob/master/ap... Cannot wait to trust these guys with my ssh key! /s
- eudoxus 9y agoNot sure why this comment was downvoted. Just highlights the inherit security vulnerability of trusting such sensitive data (Private SSH Keys) with a system that doesn't have a proper security audit. Simply open sourcing your code is not enough, especially with files like this still lying around in the code base. Just shows a level of professionalism that is lacking, that needs to be taken seriously for security products. I am intrigued by the app, but they have some glaring holes I don't think they have addressed.
- paulddraper 9y agoHuh? What's wrong?
- Woofles 9y agoI think that file is just clearly unnecessary and it just shows sloppy project management to leave a file like that in a production (open source) codebase.
- gruez 9y agoIt's 1.2M for an app that doesn't meaningfully increase security. Let's suppose this thing gets somewhat popular. Now malware will detect the presence of this app, wait until a legitimate request gets initiated, and piggy back off that. You approve the request, the malware logs into your servers/repos, does whatever evil thing it needs to do, let the original app do its thing, and you're none the wiser.
- agrinman 9y agoYour attack vector is correct, but Kryptonite is still a step up from existing solutions since you know exactly when your key is used and what host is being logged in to (the app does known host pining as well). 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.
- eeZi 9y agoBut YubiKeys are built on a hardened hardware security module instead of a general purpose phone operating system with full network connectivity and a huge attack surface. Having a UI does not increase security in a meaningful way. The attacker is just going to wait until the victim connects to an interesting target server and then hijack that connection. The ControlMaster feature makes that trivially easy, but it's not hard to do real injection [1]. If the workstation is compromised, it's over. At that point, all you can do is to prevent an attacker from copying the key or using it without user interaction. A YubiKey does both - you can optionally set it to a mode where you have to approve each signature. With a bank transaction, the whole transaction is part of the approval process and can be verified out-of-band. With a SSH login, this is not possible since you're still going to trust the workstation as soon as the session is established. I'm not saying this project is useless - IF your phone is actually more secure than your workstation - which may or may not be the case - AND you've been previously been storing your keys on your workstation, then it's definitely a step up. But really, at that point, just buy a YubiKey (and properly secure your workstation!). Otherwise, you now have TWO single points of failure instead of one. If either your phone or your laptop is compromised, it's over. If you want login approvals that show the server name, do it as a second factor and use something like Duo Security with push approvals. This actually increases your security - instead of having, an attacker would now have to compromise both of your devices. [1]: https://github.com/seastorm/PuttyRider https://github.com/seastorm/PuttyRider
- madamelic 9y agoThis sounds like a neat idea but I have to agree with gruez that this is a disaster waiting to happen. I carry my KeePassX DB on my phone and know it is slightly safer than typical cloud providers because it isn't actively being targeted. That said, I would try this out.
- jopsen 9y agoAn yubikey is certainly better and simpler. Maybe if modern phones have special hardware features where key material can be stored, so that it can't be duplicated.
- arghwhat 9y agoI believe they do.
- iancarroll 9y agoReposting my comment: The iPhone has a secure enclave that does elliptic curve key generation and signing[0] (the key obviously cannot be exported). I'd be surprised if they do not implement that soon; it's not terribly difficult[1]. [0] https://twitter.com/iangcarroll/status/830878517730623492 https://twitter.com/iangcarroll/status/830878517730623492 [1] https://developer.apple.com/documentation/security/1644033-seckeycopykeyexchangeresult?language=objc https://developer.apple.com/documentation/security/1644033-s...
- bhhaskin 9y agoWhy on earth would I want my ssh keys on a device that is almost always connected to the internet if security is a major concern? A Yubikey (hardware based key) is by far the best solution.
- floatboth 9y agoYour desktop is also always connected to the internet (unless you're have very very high security requirements). And your desktop probably runs way more untrusted code with less sandboxing. Of course a hardware key is more secure, but this seems like a meaningful improvement over normal key files.
- PokeAcer 9y agoAny Windows support? YubiKey's advantage (Aswell as the fact that it's designed for keystorage, and malware can now just target Android and can automatically approve it themselves) is that it works crossplatform; I can use a YubiKey (when I can afford one) with PuTTY - there seems to be no way to do this.
- 4kevinking 9y agoWe currently support Bash on Ubuntu on Windows, but PuTTY/Cygwin support is further off. A code execution exploit on your Android phone would result in being able to approve automatically, but without Kryptonite, a trojan in _any_ of the apps on your computer could steal your SSH key and use it unhindered, like what recently happened to Handbrake [https://threatpost.com/handbrake-for-mac-compromised-with-proton-spyware/125518/ https://threatpost.com/handbrake-for-mac-compromised-with-pr...]
- ovao 9y agoI've been using Kryptonite a little bit and generally I'd say it's been a pretty pleasant experience. While I personally haven't spent much time weighing the pros and cons from a security perspective (and I'm not a security expert, so in all likelihood I'm not in a position to give a fair evaluation of it), from an overall user experience perspective these guys have done a really solid job. If I have any gripe it's that, when using with Git, Visual Studio Code's Git autofetch feature winds up causing Kryptonite to issue a push notification to my phone every couple of minutes after first authorizing for three hours, with no way to granularly suppress notifications. That's really kind of the point of Kryptonite, obviously, but it's possible there's a better solution for this on Kryptonite's end that wouldn't require any contortions from users.
- victor9000 9y agoAm I the only one around here who wants to keep their private keys private?
- michaelmior 9y agoNo. Your private keys are still private when using Kryptonite.
- jbb67 9y agoHow does this work if you lose or break your phone? I know several people who use 2FA apps on their phones to log onto services and whose phones broke and they couldn't log on. While there is usually some way to recover your logon I'd argue that for most people and uses the chances of losing/breaking/replacing their phone and having to go through a painful recovery process outweigh the security advantages.
- michaelmior 9y agoFrom their FAQ: > What happens if I lose my phone? > First make sure you remove the old SSH public key from any of your accounts. Once you have Kryptonite installed on your new phone, add the new public key to the accounts you were using SSH with before. So basically you'd need to have an alternative method of authentication to be able to add the new public key (and remove the lost one).
- LinuxBender 9y ago"Securely" and "phone" do not go in the same sentence.
- michaelmior 9y agoWhy do you think your phone is inherently less secure than your desktop/laptop?
- subway 9y agoYour phone has a secondary processor with access to main memory. That secondary processor runs often incredibly jank code, and that code can often be changed at will by your mobile carrier.
- LinuxBender 9y agoYour laptop/desktop are not secure either. That said, cell phones today have everything... every little bit of everyones life embedded on them. The are on all the time. They are not patched as often as desktop OS's. They are juicy delicious targets and great listening / tracking devices. Laptops can be used this way, but nowhere near the same target value.
- LinuxBender 9y agoI forgot to mention, all cellphones come bundled with vendor installed spyware. CarrierIQ is one such example, now owned by AT&T, but there are many of them. They will tell you it is only enabled when your device is in debug mode, but your device dials home all the time and a single http header can enable debug for a period of time.