GOPHERSPACE.DE - P H O X Y
gophering on hngopher.com
HN Gopher Feed (2017-12-05) - page 1 of 10
 
___________________________________________________________________
Show HN: SeKey: An SSH Agent for OS X, Using Secure Enclave and
TouchID, in Rust
101 points by ntrippar
https://github.com/ntrippar/sekey
___________________________________________________________________
 
galadran - 4 hours ago
I'm amazed there's a market for this kind of thing. Since the 1990s
its been known how to implement an undetectable backdoor in
hardware based crypto which leaks your keys to an attacker.E.g.
http://paper.ijcsns.org/07_book/201006/20100623.pdf details how to
do it for Elliptic Curves. But its been studied since
https://link.springer.com/content/pdf/10.1007%2F3-540-69053-...The
tl;dr is that any device in which you can't check the
implementation or get the private key out (i.e. Secure Enclave, TPM
etc), can leak your key to a passive attacker in a way that you
provably can't detect.
 
  jmileham - 4 hours ago
  Because this research exists, there can't possibly be a market
  for a security product whose threat model might not include a
  malicious hardware manufacturer?
 
    galadran - 4 hours ago
    Admittedly its less of a risk with your SSH keys than with  say
    your bitcoin wallet. (There's a clear economic incentive there
    and most bitcoin hardware wallets have pretty low levels of
    assurance).But nonetheless, the number of people who are
    security conscious enough to lock their keys into their
    hardware, but not worried about malicious hardware seems quite
    limited.
 
      hateduser2 - 3 hours ago
      >But nonetheless, the number of people who are security
      conscious enough to lock their keys into their hardware, but
      not worried about malicious hardware seems quite
      limited.Maybe I'm wrong but it seems like you're
      misinterpreting these people. TouchID is an ease of use
      feature that you feel good about because you also get to
      improve your security (save for malignant hardware
      manufacturing). Its very easy and it improves your security.
      You don't have to be excessively security conscious to be
      interested in that. I like TouchID but I'm not a security
      obsessed person (although I'm not quite on the same level as
      your average joe), and im pretty sure its easy to sell this
      and any TouchID people to anyone regardless of how security
      conscious they are on the basis that using TouchID is even
      safer.I just don't like your view that people who like
      TouchID must be obsessive about security and understand it
      inside and out. Most people do things regardless of how much
      they understand.. you won't be an expert in everything.
 
  falcolas - 4 hours ago
  On the flip side, you can also demonstrably prove that private
  keys stored on disk can be exposed with a minimal intrusion of
  your user account, also with no indication they were
  leaked.Another layer of security is never bad.
 
  geofft - 1 hours ago
  My threat model excludes hardware compromise because it's dead
  easy for an attacker in the position of sticking malicious
  hardware into my laptop to e.g. run a malicious BIOS that notices
  when I'm doing crypto operations and wakes up and steals secrets
  off the CPU. If I worried about that I wouldn't use my computer
  at all.I think the market for people whose threat model includes
  hardware compromise is extremely tiny. It should include
  purchasers of external Bitcoin hardware wallets, as you suggest,
  but it probably doesn't include the average SSH user deciding
  whether to trust hardware built into their laptop.Also, in the
  specific case of macOS, your hardware manufacturer can more
  easily just ship you a malicious ssh binary or ssh-agent....
 
  pvg - 4 hours ago
  That market exists because the market for perfectly secure but
  completely impractical products is much smaller, roughly zero.
 
floatboth - 3 hours ago
For TPMs on non-Apple computers: https://github.com/ThomasHabets
/simple-tpm-pk11But with TPM there's no external unlock mechanism
like Touch ID, the TPM unlock happens from the operating system.
 
abhv - 55 minutes ago
This is a really cool project. I just tried to compile it myself,
and code-signed it with my mac dev key.  I changed the
assets/sekey.entitlements file by replacing 5E8NNEEMLP with my own
hex id for my developer key.However, when i run
./bundle/Sekey.App/.../sekey, i keep getting a "Killed 9"
message.When i run the unsigned version, the binary at least runs
(shows the -h messages).  Any hints on how to fix?
 
  ntrippar - 49 minutes ago
  thats because the code signing its invalid. you are signing the
  whole app? or only the binary. could be many reasons, one is the
  lack of the provisioning profile on your computer (for your key).
 
nyolfen - 3 hours ago
see also the really excellent kyptonite, which i found linked here
a few months ago and i've been positively delighted
with:https://krypt.co/i'm not a security expert, and i have a lot
more trust in my iphone for managing secrets than my personally
configured linux pc's.
 
  srcmap - 2 hours ago
  I have a slightly different point of view:In Linux, I can easily
  monitor how much data, what kind of data are transferred to the
  remote IP and disable them on per apps base anytime I want.In
  IOS, I can't do any of that.  At most, I can only disable an app
  from using cell data.  If anyone else know how to do
  monitor/block network connection on per APP base in IOS,  I would
  love to hear about it.For me, it is a different between "trust"
  and "trust and verify".I use IOS and have some level of trust on
  Apple/IOS.   But I don't trust majorities of the IOS APPs for
  security/privacy.
 
    staplers - 1 hours ago
      If anyone else know how to do monitor/block network
    connection on per APP base in IOS, I would love to hear about
    it.  I've been seeking a Little Snitch type connection
    monitor/firewall for iOS for some time.  I believe Apple
    purposely makes this difficult/impossible on iPhones due to the
    constant metrics/analytics sent to Apple servers.Look at what
    they have done with turning off bluetooth and wifi from the
    Control Center..  It's really eye-opening to see how often
    Apple products ping home.
 
    samat - 1 hours ago
    FYI, IOS is operating system for routers by Cisco.iOS is
    operating system for mobile devices by Apple.
 
epistasis - 1 hours ago
I would love to see this usable as a U2F device too.
 
falcolas - 4 hours ago
Very cool project. I?ve done similar things with yubikeys before,
having it built into the hardware is great.Can it also support a
pin to go with the biometric auth?
 
  ntrippar - 4 hours ago
  as far i read in the documentation no. i will do more research on
  the implementation. also you device has to be unlocked for the
  enclave to work.https://developer.apple.com/documentation/securit
  y/ksecattra...
 
viraptor - 2 hours ago
> Can?t import preexisting keyThat makes me sad :( Does anyone know
if that's a SE limitation, or the app's?
 
  ntrippar - 2 hours ago
  it's SE limitation :(. also makes me sad, will be awesome if you
  can import a key generated by yourself. so if you reinstall you
  can import again to the enclave
 
    tedchs - 2 hours ago
    It's common for hardware security tokens like this to limit
    themselves to self-generated private keys.  The intent is the
    device needs to provide a guarantee that the private key is not
    otherwise accessible, whereas it would be if the user generated
    it, perhaps wrote it to disk, provided it to the SE, and
    perhaps SEs on other devices.
 
      0culus - 1 hours ago
      YubiKeys allow you to load your own private key, which turned
      out to be a great feature. [0][0]:
      https://www.yubico.com/support/security-
      advisories/ysa-2017-...
 
    viraptor - 1 hours ago
    I was thinking more in terms of: I trust openssl to generate a
    non-broken key. (Yeah, even with all its faults...) But if SE
    turns out to use generate bad keys, like the recent popular
    issue, I can't use a better one instead.
 
    raphaeljlps - 1 hours ago
    I may be talking shit, but for what I understand of SE, it
    wouldn't make sense to loose the data if you reinstall macOS.I
    tried to look up the info, but the only thing I found was this:
    "But because its backing storage is physically part of the
    Secure Enclave, you can never inspect the key?s data."https://d
    eveloper.apple.com/documentation/security/certifica...That
    means that it get stored in SE instead of your computer's hard
    drive.  Also, Apple have instructions to clean Secure Enclave
    if you're going to sell your macbook pro with touchid.
 
    DennisP - 1 hours ago
    Is there a way to back up your keys? If not it could be a
    problem to lose your laptop.
 
      viraptor - 1 hours ago
      This shouldn't be a problem. Backing up a securely stored key
      is not a great solution. Instead you can generate a backup
      key that you provision everywhere as well, (the public part)
      but store completely offline.Basically treat this the same as
      you would a physical 2fa token.
 
        DennisP - 1 hours ago
        I'm thinking more about whether this could be used to store
        cryptocurrency keys, in place of a hardware wallet. It's a
        different elliptic curve (according to another HN commenter
        recently) but that's not necessarily a deal killer
        forever.Without an export it could maybe be one key in a
        multisig.
 
  timdorr - 1 hours ago
  It's a design detail. You can't have a "secure enclave" if it
  accepts external private keys.That's also why it only generates
  one kind of key. It's a black box that spits out public keys.
 
    viraptor - 1 hours ago
    Secure enclave is just Apple's name for a secure
    cryptoprocessor implementation. Some other implementations are
    happy to accept your private key generated outside of the
    system.