42 ms·
Security keys are the heart of security and we desperately need open-source solutions on this. Kudos for doing it. Now, I must point out a few things: 1. Plea
by klhugo 7y ago
Security keys are the heart of security and we desperately need open-source solutions on this. Kudos for doing it.
Now, I must point out a few things:
1. Please don't call your solution "Open-source", when you do not have not even the schematics uploaded to github.
2. (this item is an open problem without a solution yet) how do I make sure the source code and the (still missing) hardware information actually corresponds to the hardware I'm buying?
If we do take item 2 seriously, one may say that buying Yubico is actually "safer" than your open-source solution, mainly due to company reputation and credibility.
Again, sorry the harsh words, but I take my keys seriously.
- klhugo 7y agoAlso, you guys should definitely do some research about side-channel attacks. I quickly inspect the source code and did not find any counter-measure.
- cr7pt0 7y agoCountermeasures listed here - https://docs.crp.to/security.html#technical-specifications https://docs.crp.to/security.html#technical-specifications
- dang 7y agoSorry that your account was being rate-limited. HN's software filters that do that, based on past activity by trolls. Unfortunately it also sometimes prevents project creators from showing up to discuss their work. I hate that! We've marked your account legit so this won't happen again.
- eyegor 7y agoI'm having a rough time even finding the "open source" embedded software running on the onlykey. This site definitely needs an "open source" section linking to the relevant github/gitlab repos, or at least cross links/references to source within their documentation. I see tons of claims, but no way to validate them.
- cr7pt0 7y agoIt is open source, not to be confused with open hardware which it is not. The hardware is transparent, literally, it has a clear protective coating on the hardware which allows visually verifying everything. For security things check out https://docs.crp.to/security.html https://docs.crp.to/security.html - TL;DR Before you enter the PIN its not doing any crypto which means lots of side-channel attacks don't apply, you would have to know the PIN to even attempt many types of side-channel attacks.
- random3 7y agoWhen you say open-source it's rather general. I.e. not open-source software or hardware, so it does imply it's open-source both (e.g. https://en.wikipedia.org/wiki/Open-source_hardware https://en.wikipedia.org/wiki/Open-source_hardware not "open hardware")
- delfinom 7y ago> The hardware is transparent, literally, it has a clear protective coating on the hardware which allows visually verifying everything Right and that's bullshit. How do I know you aren't embedding a advanced joule thiefing silicon die disguised as a pull-up resistor to manipulate usb communication or even interface with the micro in a backdoor?
- stinos 7y agoHow do I know Fair question. But it makes me wonder: what would be the accepted way to provide schematics/PCBs and prove the provided ones are also what gets used to create the actually sold hardware? Same question for the source code actually.
- thinkloop 7y agoI don't think humanity has been able to solve that problem. There's isn't an md5 checksum for hardware yet.
- Tharre 7y agoThe "security" of this device is a joke, just look at how randomness is derived: unsigned int analog1 = analogRead(ANALOGPIN1); RNG.stir((uint8_t *)analog1, sizeof(analog1), sizeof(analog1)*2); unsigned int analog2 = analogRead(ANALOGPIN2); RNG.stir((uint8_t *)analog2, sizeof(analog2), sizeof(analog2)*2); (See [0] for a comprehensive summary of why this is a terrible thing to do) And yeah, analogRead() is a function from the Arduino library because .. well, apparently there's an Arduino compatible chip inside that does all the cryptographic operations. Meaning that there is no hardware security whatsoever and it's trivial to extract all your keys from the device if you ever lose it. Whoops. [0] https://arxiv.org/pdf/1212.3777.pdf https://arxiv.org/pdf/1212.3777.pdf
- tinus_hn 7y agoDid I misunderstand the article or is it just wrong? Although a certain entropy source might not be completely random, it can still be a part of of a complete solution, right? Network packet timings aren’t random either and might be attacker controlled as well.
- g_p 7y agoDoing a quick look through the library repository, I spotted another more scary function. It doesn't appear (at a quick glance) to be used anywhere, but still... https://github.com/trustcrypto/libraries/blob/master/randombytes/randombytes.c https://github.com/trustcrypto/libraries/blob/master/randomb... For anyone wanting to try this out (it will compile with plain GCC if you add): #include <stdlib.h> #include <stdio.h> to the start of the file, and declare a main function: void main() { unsigned char* buffer; buffer = malloc(32 * sizeof(char)); randombytes(buffer, 32); for (int i=0; i < 32; i++) { printf("%02x", buffer[i]); } printf("\n"); free(buffer); } And you'll (of course) get some rather deterministic output. As I say though, doesn't look to be used (that I could see), but strange to have something like this there. RE the RNG implementation, looks to be at https://github.com/trustcrypto/libraries/blob/master/Crypto/RNG.cpp https://github.com/trustcrypto/libraries/blob/master/Crypto/..., and looks to have some support for hardware RNGs on certain boards, but not others. Does sound like there's no hardware protection involved.
- hanniabu 7y agoFor #2, it'd be nice if there were kits sold to create your own physical keys. You can flash code from github to it yourself, and then assembly the casing together. Optionally for first line of defense, the assembly could be fastened with some less common like a torx or square screw head and it could come with a pack of small holographic security stickers to place over the screw. Edit: You'd want it to be an unassembled kit so that you can provide your own hardware if you wanted instead of relying on what is provided for you if you wanted to be super cautious.
- michaelt 7y agoThere’s the U2F Zero https://github.com/conorpp/u2f-zero/wiki/Building-a-U2F-Token https://github.com/conorpp/u2f-zero/wiki/Building-a-U2F-Toke... but of course there’s always a reflections-on-trusting-trust issue: you’ve got to get your CPU, CPU design, compiler, firmware and chip programmer somewhere! Of course, an accidental software bug is probably more likely than intentionally backdoored hardware targeting you personally...
- ncmncm 7y agoThat all sounds to me like security theater. It would not increase my confidence in the device, its firmware, or its design.
- nine_k 7y agoWhy? Backdooring a shipment of security tokens could open interesting possibilities at a relatively low cost. Or the government may force you if you happen to be in Australia. Flashing your own firmware which you have checked (or at least checked its signature) may make sense.
- cr7pt0 7y agoThanks for the Kudos! We are going to continue to strive to make the best security keys out there, I understand taking security keys seriously and thats exactly why we started OnlyKey. If you are looking for reputation, the members of our small team have internationally recognized security credentials - https://crp.to/t/ https://crp.to/t/. We recently won 2nd in the Virtru Privacy competition https://crp.to/2019/12/onlykey-webcrypt-2-0-feature-highlight-wins-2nd-in-virtru-privacy-challenge/ https://crp.to/2019/12/onlykey-webcrypt-2-0-feature-highligh... and we will continue to make OnlyKey better with each release. One advantage to consider with OnlyKey is you buy a key once, and your key is upgradeable. As technology changes or as required secure upgrades are provided directly in the OnlyKey app to add new features to your key.