All Projects → nuclearcat → Cedarkey

nuclearcat / Cedarkey

Licence: agpl-3.0
$2 hardware SSH keys storage

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Cedarkey

Bastillion
Bastillion is a web-based SSH console that centrally manages administrative access to systems. Web-based administration is combined with management and distribution of user's public SSH keys.
Stars: ✭ 2,730 (+1744.59%)
Mutual labels:  ssh, ssh-key
Ssh Permit A38
Central management and deployment for SSH keys
Stars: ✭ 451 (+204.73%)
Mutual labels:  ssh, ssh-key
wsl-agent-bridge
WSL compatibility bridge for ssh-agent on Windows
Stars: ✭ 17 (-88.51%)
Mutual labels:  ssh, ssh-key
Ssh Vault
🌰 encrypt/decrypt using ssh keys
Stars: ✭ 277 (+87.16%)
Mutual labels:  ssh, ssh-key
Ssh Agent Helper
Use SSH keys from CMD, PowerShell, etc. on Windows
Stars: ✭ 31 (-79.05%)
Mutual labels:  ssh, ssh-key
Putty Cac
Windows Secure Shell Client With Support For Smart Cards & Certificates
Stars: ✭ 192 (+29.73%)
Mutual labels:  ssh, rsa
Geofront
Simple SSH key management service
Stars: ✭ 337 (+127.7%)
Mutual labels:  ssh, ssh-key
Ssh Ldap Pubkey
Utility to manage SSH public keys stored in LDAP.
Stars: ✭ 185 (+25%)
Mutual labels:  ssh, ssh-key
Geofront Cli
It provides a CLI client for Geofront, a simple SSH key management server.
Stars: ✭ 30 (-79.73%)
Mutual labels:  ssh, ssh-key
Cashier
A self-service CA for OpenSSH
Stars: ✭ 590 (+298.65%)
Mutual labels:  ssh, ssh-key
Phpseclib
PHP Secure Communications Library
Stars: ✭ 4,627 (+3026.35%)
Mutual labels:  ssh, rsa
Lastpass Ssh
SSH key management with LastPass
Stars: ✭ 105 (-29.05%)
Mutual labels:  ssh, ssh-key
Sshremotekeys
Managing SSH keys remotely to control access to hosts
Stars: ✭ 70 (-52.7%)
Mutual labels:  ssh, ssh-key
Awesome Ssh
💻 A curated list of SSH resources.
Stars: ✭ 1,742 (+1077.03%)
Mutual labels:  ssh, ssh-key
Sshtunnel
🚇 Ultra simple SSH tunnelling for Go programs.
Stars: ✭ 135 (-8.78%)
Mutual labels:  ssh
Gossh
gossh is an extremely concise ssh tool which developed by go language. It has only a binary program without any dependencies and is really ready to use out of the box. gossh is used Used to manage of linux (like unix) machines: including remote execution of commands and push and pull files, and support stand-alone and batch modes.
Stars: ✭ 142 (-4.05%)
Mutual labels:  ssh
Generate Ssh Configs
Automatically generate ssh config files for your cloud servers
Stars: ✭ 136 (-8.11%)
Mutual labels:  ssh
Adams
UNIX system administration in Common Lisp
Stars: ✭ 135 (-8.78%)
Mutual labels:  ssh
Usbdevice
Highly flexible Composite USB Device Library
Stars: ✭ 144 (-2.7%)
Mutual labels:  stm32
Ssm Sh
Experiment to use SSM RunCommand instead of SSH
Stars: ✭ 140 (-5.41%)
Mutual labels:  ssh

CedarKey Security Kit

Secure SSH Key Storage

This project is mostly intended to protect from "software" (trojans, etc.) extraction of ssh key and to provide more reliable method of storing keys than just keeping them on disk storage. It might not be as protected as smartcard against all physical attacks, however in some cases, it is more protected as it's transparent and wont have hidden backdoors like smartcards (e.g., CVE-2017-15361) and uses very simple protocol to reduce probability of software exploits using "corner cases" of protocol, such as, for example ASN.1 prone to have overflows and leaks (MITKRB5-SA-2009-002, MS04-007, CAN-2003-0545 and much more), due implementation complexity.

The most important feature is the smallest possible size of the firmware.
This will allow you to have a hardware dongle that can keep 3+ RSA4096(DER encoding) on 64k flash, or whopping 30 keys in 128k flash.
As alternative you can take a look to gnuk, but it generates 110592 bytes firmware (current git snapshot), while Blue Pill have only 64k flash (officially).

Q&A

  • Q: What is Blinker feature?
  • A: On key sign you will be asked for password, you should count blinks on dongle and enter number from 1 to 6. If answer is incorrect - dongle will lock down(ignore any further commands), keep blinking each second until you physically unplug it, and plug back. This is semi-replacement of "touch confirmation" as Blue Pill don't have hardware buttons.
  • Q: What is difference with gnuk?
  • A:
    • Cons: Not standards compliant in matters of communication with host, we use own protocol instead of smartcard/pgp
    • Pros: You can use our key on guest PC without asking admin to install smartcard libraries and support, it just have to detect ACM device. Also we support from RSA-1024 to RSA-4096(gnuk is RSA-2048) and keys are encrypted by AES256, instead of AES128 At the moment private keys protection at gnuk is weak, as they are limited with simple KDF and if you don't have very long password, it might be feasible to crack it by bruteforcing. We are using double-KDF (host based + IC based).

Quickstart (under development)

Required Hardware:

  1. STM32F103 board with SWD header (for example Blue Pill)
  2. ST-Link V2 programmer (you can use j-link or others, but they are not covered in quickstart)
  3. 3x female-female wires

Software:

  1. https://github.com/texane/stlink
  2. cross-compiler for arm arm-none-eabi (for example Ubuntu - gcc-arm-none-eabi package)

Preparing hardware

Connect your stm32f103 board to st-link

  • GND to GND
  • DCLK to DCLK
  • DIO to DIO

Small visual guide exist in wiki: https://github.com/nuclearcat/cedarkey/wiki

Compiling firmware

  • git submodule update --init
  • cd firmware/libopencm3
  • make
  • cd ../../libscrypt
  • make
  • cd ../firmware/src
  • make cedarkey.bin

Flashing firmware (if everything compiled fine)

  • st-flash erase
  • make cedarkey.stlink-flash
  • Unplug device from USB port and plug back. It should be detected as ttyACM device in dmesg

Compiling userspace

  • cd ../../userspace
  • make
  • (optional) sudo make install

Initial configuration

  • ./cedaragent -s /dev/ttyACM0 -n It is not very critical to have complex/long pin, as it doesn't serve as protection layer against decrypting. It's purpose is just to allow/deny access to device.

Adding keys

  • ./cedaragent -s /dev/ttyACM0 -p (your pin) -w (path to key) -v -D
    • IMPORTANT! Please choose strong password for your keys. I suggest at least 12 characters, alphanumeric in different case, and special characters (except character ~). This password is used to encrypt your keys, and in case if device firmware extracted, it will buy you time, until hackers decrypt your keys. Or if it is enough long, it will make decryption infeasible.
    • Note: At the moment it is better to have same password for all keys, if you want them to work automatically. If password is different, you need to launch agent for each one, specifying key id with flag -k. This will be fixed in future releases.

Running it!

  • ./cedaragent -s /dev/ttyACM0 -p <> -b ssh-askpass -a ssh-askpass
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].