Earlier quoted context omitted.
The "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…
It seems this is literally written in the horrible Arduino "everything in one huge file" style: https://github.com/trustcrypto/OnlyKey-Firmware/blob/master/... The funny thing is they have a "Source code reviewed by Codacy" badge on the readme claiming the code is grade A... but if you actually click through, of course Codacy didn't pick up the .ino file at all, so in fact nothing of substance is being reviewed. That…
OnlyKey: Open-Source Alternative to YubiKey
131–140 of 215 posts
Re: OnlyKey: Open-Source Alternative to YubiKey
#132this doesn't send a good message
Re: OnlyKey: Open-Source Alternative to YubiKey
#133Earlier quoted context omitted.
OnlyKey has been in use for about 4 years. It has thousands of active users and is in use in over 40 countries world wide. This is not a new product, and it has a great user community which is not afraid to test, hack, and prove the security of devices.
>OnlyKey has been in use for about 4 years. It has thousands of active users and is in use in over 40 countries world wide. This is not a new product, and it has a great user community which is not afraid to test, hack, and prove the security of devices. Like literally the first issue was already linked above. Using the psuedo RNG with some analog pin seed isn't really acceptable. It should have a true rng IC that ca…
RNG.stir((uint8_t )analog1, sizeof(analog1), sizeof(analog1) 4);
touchread1 = touchRead(TOUCHPIN1);
RNG.stir((uint8_t )touchread1, sizeof(touchread1), sizeof(touchread1));
delay((analog1 % 3) + ((touchread1 + touchread2 + touchread3) % 3)); //delay 0 - 6 ms integrityctr1++;
touchread2 = touchRead(TOUCHPIN2); RNG.stir((uint8_t )touchread2, sizeof(touchread2), sizeof(touchread2));
touchread3 = touchRead(TOUCHPIN3);
RNG.stir((uint8_t )touchread3, sizeof(touchread3), sizeof(touchread3));
touchread4 = touchRead(TOUCHPIN4);
RNG.stir((uint8_t )touchread4, sizeof(touchread4), sizeof(touchread4));
touchread5 = touchRead(TOUCHPIN5);
RNG.stir((uint8_t )touchread5, sizeof(touchread5), sizeof(touchread5)); touchread6 = touchRead(TOUCHPIN6);
RNG.stir((uint8_t )touchread6, sizeof(touchread6), sizeof(touchread6));
unsigned int analog2 = analogRead(ANALOGPIN2);
RNG.stir((uint8_t )analog2, sizeof(analog2), sizeof(analog2) 4);
// Perform regular housekeeping on the random number generator.
RNG.loop();
delay((analog2 % 3) + ((touchread6 + touchread5 + touchread4) % 3)); //delay 0 - 6 ms
integrityctr2++;
if (integrityctr1 != integrityctr2) { //Integrity Check unlocked = false; CPU_RESTART(); return; }
https://github.com/trustcrypto/libraries/blob/5bd1f8eb15eb04...
Re: OnlyKey: Open-Source Alternative to YubiKey
#134https://inversepath.com/usbarmory.html
The hardware is open, the software is mentioned without much detail; I suppose it's not shipping yet.
Re: OnlyKey: Open-Source Alternative to YubiKey
#135Earlier quoted context omitted.
For #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 unassemb…
That all sounds to me like security theater. It would not increase my confidence in the device, its firmware, or its design.
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.
Re: OnlyKey: Open-Source Alternative to YubiKey
#136Earlier quoted context omitted.
It seems this is literally written in the horrible Arduino "everything in one huge file" style: https://github.com/trustcrypto/OnlyKey-Firmware/blob/master/... The funny thing is they have a "Source code reviewed by Codacy" badge on the readme claiming the code is grade A... but if you actually click through, of course Codacy didn't pick up the .ino file at all, so in fact nothing of substance is being reviewed. That…
I understand the Arduino model is different than other projects but we proudly use Arduino as it's open source and has lots of great features. As we use the Arduino model you can find that our source consists of the .ino you mentioned here https://github.com/trustcrypto/OnlyKey-Firmware as well as libraries here https://github.com/trustcrypto/libraries . Our code is reviewed by Codacy and yes, it does receive a grade…
Re: OnlyKey: Open-Source Alternative to YubiKey
#137Earlier quoted context omitted.
>OnlyKey has been in use for about 4 years. It has thousands of active users and is in use in over 40 countries world wide. This is not a new product, and it has a great user community which is not afraid to test, hack, and prove the security of devices. Like literally the first issue was already linked above. Using the psuedo RNG with some analog pin seed isn't really acceptable. It should have a true rng IC that ca…
Like literally the first post issue is completely incorrect, thats one of the issues in reading a post like this in an online thread, literally that user copied part of but not all of the function that is used for RNG. The part they copied uses analog input as one of the sources of entropy, they failed to also include the 6 capacitive touch inputs that are also inputs to the RNG. Those touch inputs literally change e…
You seem to have zero runtime sanity checks too, so if for whatever reason they are not providing entropy for someone, they will be none the wiser.
Sorry, but this is a terrible RNG.
Re: OnlyKey: Open-Source Alternative to YubiKey
#138The only true open hardware and open source key is the Nitrokey Start, running Gnuk firmware. Other nitrokeys are open hardware but run a smartcard (hsm or pgpcard) and those firmwares are not fully open. Yubikey is closed source and this posts bugger is closed as well. Go for a Nitrokey if you value true openness.
I've had a great experience with my NitroKey Starts. I'm just bummed that opensc doesn't yet support ed25519 since it seems gnuk does.
Re: OnlyKey: Open-Source Alternative to YubiKey
#139Earlier quoted context omitted.
It seems this is literally written in the horrible Arduino "everything in one huge file" style: https://github.com/trustcrypto/OnlyKey-Firmware/blob/master/... The funny thing is they have a "Source code reviewed by Codacy" badge on the readme claiming the code is grade A... but if you actually click through, of course Codacy didn't pick up the .ino file at all, so in fact nothing of substance is being reviewed. That…
The 7000 lines don't bother me as much as the complete lack of refactoring, heavy use of magic numbers repeated throughout, and logical expressions that duplicate logic over and over again. Some examples... Compare these two blocks of assignments and memcpy calls: https://github.com/trustcrypto/libraries/blob/5bd1f8eb15eb04... https://github.com/trustcrypto/libraries/blob/5bd1f8eb15eb04... Yes, they are as identical…
It's a shame this code isn't so good out of the box, but for all we know there are proprietary devices purporting to do the same job which also have poor code. The difference between the devices is we can review, edit/improve, share, and run the improved code for this device. The software freedom is a feature unto itself. So one is still better off with this device (or another device that runs on entirely FLOSS) over any proprietary device that purports to do the same job.
Re: OnlyKey: Open-Source Alternative to YubiKey
#140Setting aside problems with this particular device, the whole "trust the open-source hardware" model is inherently flawed. Every useful security hardware will be commoditized, then faked and/or trojaned. We can't take the open-source software approach and rely on many volunteer eyes catching vulnerabilities and backdoors. First, there just aren't enough skilled professionals capable of proper hardware review. And sec…
To do something about this requires supply chain security that you won't find outside governments that are able to realize economies of scale.