Slashdot Mirror


Ask Slashdot: Open Hardware/Software-Based Security Token?

Qbertino (265505) writes I've been musing about a security setup to allow my coworkers/users access to files from the outside. I want security to be a little safer than pure key- or password-based SSH access, and some super-expensive RSA Token setup is out of question. I've been wondering whether there are any feasible and working FOSS and open hardware-based security token generator projects out there. It'd be best with ready-made server-side scripts/daemons. Perhaps something Arduino or Raspberry Pi based? Has anybody tried something like this? What are your experiences? What do you use? How would you attempt an open hardware FOSS solution to this problem?

16 of 113 comments (clear)

  1. yubikey by Anonymous Coward · · Score: 3, Informative

    www.yubico.com ... not quite FOSS but its your ticket....

  2. use SMS by rMortyH · · Score: 3, Informative

    You can set up 2nd factor using SMS pretty easily, and have it text you a second password that's good for five minutes.
    Definitely the cheapest option.

    If you make your own token with an arduino and an LCD and a real time clock and a battery you've already paid for the RSA tokens.

    =Rich

    1. Re:use SMS by FuegoFuerte · · Score: 2

      The point of 2-factor auth is someone (like a criminal) can have one factor in their possession without it being any good. So with the SMS just being a form of "what you have" (it goes to your cell phone, and in theory only yours, and is time-limited to prevent re-use), an outside attacker would still have to gain the "what you know" or "what you are" factor (either your password/passcode or biometrics of some sort).

      True, I wouldn't use SMS for highly classified document protection, but for most things SMS is just fine as a second factor.

  3. Yubikey is the way to go... by bubulubugoth · · Score: 5, Informative

    Yubikey is a USB OTP generator, it can be integrated quite easily and it has ssh and a little fast dig up I found this link about yubikey and openvpn..

    http://www.yubico.com/applicat...
    http://forum.yubico.com/viewto...

    --
    Â_Â
  4. OATH by Roadmaster · · Score: 4, Informative

    My organization uses 2FA with a standard that's compatible with Google Authenticator and a Yubikey (OATH: http://en.wikipedia.org/wiki/I... and http://www.nongnu.org/oath-too...). People with smartphones could use Google Authenticator to obtain auth tokens; an inexpensive ($25 per person) yubikey provides a very easy way to enter tokens without much hassle; and the open-source oathtool can generate tokens for other uses (i.e. add a "paper" authentication device with a long list of sequential tokens).

    1. Re:OATH by mlts · · Score: 2

      I'm using OATH/TKIP as well for my remote access as a backup if I can't SSH in via my private RSA key:

      1: It is brain-deadly easy to implement. I use CentOS, so I can fetch the Google Authenticator code from EPEL.

      2: Many different OTP apps out there. There is Google's. Amazon has one for AWS. There are a number of third party ones. All are interchangeable. At a desktop computer, I just plug the Yubikey in a USB slot, mash the button when the password is asked. Done.

      3: The protocol is decently secure. Good enough for 2FA for Amazon AWS and Google's offerings.

      Since the protocol is open, the hardware is inexpensive, and it is easy to implement, I'd go with this. Only exception is if someone needs it to work with AD... I'd probably say that SecurID is easier to get running... but a lot more expensive to buy seeds or physical authentication devices.

  5. Google Authenticator for software tokens by heypete · · Score: 4, Informative

    For software tokens, Google Authenticator has apps for Android, iOS, and BlackBerry. They implement the TOTP standard, so any compatible code-generating software (such as the J2ME app I have on my non-smartphone) will work with it.

    They also have a PAM module that works with SSH (or anything else that uses PAM). I've used it before, and it works great.

    For reference, neither the apps nor the PAM module depend in any way on Google services, they don't send any data to Google, and will work perfectly happily in a totally offline environment (assuming all the servers and client apps have synchronized clocks).

  6. Smart cards work by dremspider · · Score: 2

    I have had a smart card setup for a little while. I use it for both OpenVPN and SSH access. I created the card by making my own CA and then using OpenSC to write to the card itself. There are some other cool things you can do like us it for PGP signing. I got a whole kit for about $100 bucks that came with a reader/writer, 2 cards and one USB thing. https://www.opensc-project.org...

  7. Re:You can create a token but keep it off nets by TheCarp · · Score: 3, Insightful

    > For fans of software scheme: you must tell how your soft tokens resist attack by malware.

    A solution doesn't have to be a panacea for all attacks. A soft token could be on your phone, assuming you do not also use the phone to directly access the service, that is pretty decent protection. I would consider needing to also find and gain access to your phone, in addition to whatever access they may otherwise be able to get, as a pretty decent addition to the resistence.

    > Remember that to get pay-tv signals, folks were willing and able to design special ICs.

    Remember that people were willing to pay for those ICs to decode signals they already otherwise had access to, meaning there was a rather large potential market for those ICs before they were produced, especially since it is decently hard to justify how you are doing anything wrong by simply recieving and manipulating a signal...you aren't even stealing a service, you are just, not using their descrabling service, just providing your own instead; for a signal you could already recieve.....

    --
    "I opened my eyes, and everything went dark again"
  8. Re:Me too by heypete · · Score: 2

    I'd like something like this for a mixed Windows/Mac/Linux network but the costs are just prohibitive.

    Yubikeys are $25 each for the hardware, and $45 PER USER. That's just ridiculous when you scale up, and there's an awful lot of manually faffing about to get to the point that it works.

    Wait, what? Where do you get the $45 per user cost? I don't see that anywhere on their website.

    The "YubiCloud" (where Yubico hosts the authenticator servers) has two modes: free and premium. The free service is open to everyone, even commercial users. The premium service offers an SLA and monthly usage statistics, and costs $3/YubiKey/year (1000-unit minimum).

    You can also host your own local YubiKey authentication servers and keep things entirely in-house. Yubico has reference implementations for free on their site.

  9. OPIE may be what you want. by jcochran · · Score: 2

    It's not a two factor authentication, it's actually a means of generating one time passwords. In a nutshell, you can have a local device calculate the password based upon a challenge sent from the system you wish to log onto, or you can preprint a list of passwords that you can use to log onto the system.
    See http://en.wikipedia.org/wiki/O... for a general description of the method. You ought to be able to find out more using that page as a starting point.

  10. Re:You can create a token but keep it off nets by Miamicanes · · Score: 2

    Strictly speaking, a USB (or bluetooth, or whaver) device has the potential to be MORE secure... IF it meets the following criteria:

    * Negotiates directly with the remote service requesting authentication credentials, and has robust logic to detect MITM situations. For the purposes of this example, the local operating system is merely a bucket-brigade dumb transport layer that facilitates the delivery of packets between the token and remote login service.

    * Has its own onboard hardkeys under the exclusive control of the token, with some degree of logic to verify that the user is deliberately consenting to the login attempt... preferably, enough to implement some kind of secondary authentication. I'm totally not a fan of biometrics, but if there's anyplace where a fingerprint sensor might be appropriate as the equivalent of a residential keyed non-deadbolt lock that says 'no' to casual attackers, without even pretending it could survive a full-on attack from someone willing to do something drastic (like break the door down), it's probably HERE.

    * Has its own display, under the exclusive control of the token, and logic to display an appropriate level of concern to alert the user to unusual situations. For example, being asked to authenticate to ${some-specific-server} for ${limited-purpose} might merit full-on warnings the first time you authenticate, but require little more than a finger swipe or button press for subsequent uses that don't exceed some user-defined threshold.

    Unfortunately, I've never even SEEN a hardware token available to non-enterprise customers even REMOTELY in the same ballpark as the feature set I've listed. Manufacturers just can't resist the temptation to eliminate the cost of an expensive dedicated display, or multiple hardkeys, or some comparable dedicated input and output hardware that's sealed, self-contained, and has no dependencies upon the security of anything beyond the token itself. It also assumes at least minimally-savvy users who'll take the time to at least read the first-time/threshold-exceeded warnings, and won't just blindly swat them away without independently contemplating their possible implications.

    Ideally, the token would also have some additional security layer that causes it to be disabled permanently if the person with whom it's associated ceases to be alive (to ensure that a robber couldn't force you to tell him your access code at gunpoint, then shoot you anyway. If he knows that his free fountain of money shuts down the moment you die, he'll have more incentive to employ heroic means to keep you alive even if he's the reason you're in danger of death to begin with.

    Finally, you'll want to have the token itself be a delegate of some master token, with a reissue procedure for replacing it with a new token that has multiple layers of identity-authorization, since there's always a very real risk of loss. It's little comfort knowing a thief can't get at your money if, from your perspective, it's as gone as if it were in a concrete vault at some unknown spot on the floor of the Pacific Ocean.

  11. S/Key by userw014 · · Score: 2

    RSA did implement their scheme as an iPhone app. If you're willing to consider something that might work as a smart-phone app, think about S/Key. It's supported as a PAM module for the *nixes. (Of course, that assumes you're willing to trust the smart-phone apps.)

    I recall using S/key ages ago (1990s) back in the days of Telnet (before ssh.) Back then, if you didn't have an S/key calculator, you could also use a paper list of one-time passwords. Ever so often, we had to re-seed our s/key (because we limited the number of passwords per. seeding.) S/key can be a bit annoying, but it ought to be cheap to implement.

    If you want to go with a hand-held device, I'm sure you could implement an S/Key end-user calculator on an Arduino or Raspberry Pi - but how much can you afford to spend? I wouldn't be surprised if a Arduino-like solution cost more than RSA tokens.

    S/Key is focused on a single server. If you require your users to connect through a bastion host, it might be workable - but the model breaks down if you want multiple servers, unless they share a filesystem.

  12. Re:You can create a token but keep it off nets by TheCarp · · Score: 4, Interesting

    All true and yet, I don't see how any of that matters. The point of using the phone is it is something you have, and its not tied to the device you are connecting with. Yes, you may lose the phone more often, BUT...that just means you replace the phone and reload the software with a new key....BFD.

    Stealing your phone doesn't reveal what systems you would connect to. Getting access to your laptop, doesn't provide the authentication token. Its about using two factors that are not tied to eachother in a way that a remote attacker can discern that improves the security of such a system.

    which is why I strongly disagree that an app on the laptop is better.... because an app on the laptop is on the laptop, one device which connects to it all. Or another way to think of it...where is the safest place for the key to your safe.... in an unmarked envelope in your house....or in an unmarked envelope at your friend's house?

    Even if your friend's house is less secure than your own, its still the better place because.... there is no way for the attacker to make the association needed to find it....even if it is your friend's house that he robs, even if he finds the key there!

    Sure its not protection from specific kinds of attackers, but, if your security measures need to stand up to NSA levels of scrutiny, I have no problem declaring your requirements out of scope for this level of discussion, and far beyond most people who could benefit from simple tokens.

    --
    "I opened my eyes, and everything went dark again"
  13. Multiple options by dissy · · Score: 2

    TOTP (time-based one time keys), HOTP (hmac? one time keys), and RFC6238 are todays friendly search terms.

    TOTP is what the traditional RSA tokens use, in which the time is a component of the encryption used so the code generated from the private key changes (usually every 30 or 60 seconds)

    HOTP is the latest in one time pads, where each code generated is good until used but only once.
    It differs from true OTPs in that the data is procedurally generated from a private key instead of all the keys/data being generated in bulk ahead of time. One hopes the private key is smaller than a crap-ton of bulk keys or binary data needed for a true OTP.

    Google Authenticator is one pre-made generic solution, and you don't need to use Google to utilize it.
    The encryption it uses is open and has an RFC, and their own software lets you input the private key via QR code for the user if you wish, and utilize multiple profiles/keys.

    Google released an open source PAM module for all your Linux authentication needs, including SSH.
    I use this myself for access to my home network (ssh + port forwards)

    There are also tons of programs that run the identical encryption methods, lots being open source.
    I've seen them available for every OS commonly used (and then some) plus every smartphone out there.

    I've also recently purchased a Yubico key, which is a hardware version of the RSA token.
    The basic model runs $25 each if you buy single keys, and they can be loaded with up to two profiles using various encryption methods and keys.

    Instead of an LCD display with a rolling code, they are USB devices that show up as USB keyboard HIDs. You plug it in and once the OS has it powered and ready, there is a touch-sensitive "button" you touch and the dongle types in the code valid for that 30 second period.
    It also takes into account how long it needs to type the codes (sha256 with serial can be 158 characters and takes ~3-4 seconds to type in at the default key rate)
    It will always type the key that will be valid at the time its about to hit enter.

    Yubico is RFC6238 compatible, and also can utilize OpenRADIUS which then makes it compatible with pretty much everything.

    A third option, though more for Windows login / Active Directory, and definitely not open source, is EIDVirtual.
    It basically lets you reformat a USB flash drive to contain a 4k private key and special header so along with its smartcard driver extension, the keys show up as smart cards and USB flash (technically you can still store data on the drive if you want)

    The software is very cheap (7 euro if I recall), works flawlessly in AD setups (tested on XP, 7, and 8), and uses any old flash drive with 1mb of storage.
    The downside of course is you don't get any of the fancy (or even required) hardware protection of the private key. I believe it uses the USB drives serial and model/make as part of its formula so blind copying isn't trivial, but the hardware exists to easily fake that info for anyone intent on doing so.
    Not nearly as secure as the other options, but it is at least priced accordingly, and doesn't try to add 2-3 zeros to the pricetag for the "enterprise" label.