All Projects → github → Softu2f

github / Softu2f

Licence: mit
Software U2F authenticator for macOS

Programming Languages

swift
15916 projects
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
objective c
16641 projects - #2 most used programming language
shell
77523 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Softu2f

Lol
Λ ⚬ λ: Functional Lattice Cryptography
Stars: ✭ 169 (-92.21%)
Mutual labels:  cryptography
Stegcloak
Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐
Stars: ✭ 2,379 (+9.63%)
Mutual labels:  cryptography
Javasecurity
Java web and command line applications demonstrating various security topics
Stars: ✭ 182 (-91.61%)
Mutual labels:  cryptography
Kcptun
A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。KCPプロトコルに基づく安全なトンネル。KCP 프로토콜을 기반으로 하는 보안 터널입니다。
Stars: ✭ 12,714 (+485.9%)
Mutual labels:  cryptography
Magicpad
MagicPad is an encryption suite for beginners. It is designed to be run standalone via the browser or executable (Electron).
Stars: ✭ 174 (-91.98%)
Mutual labels:  cryptography
X25519 Dalek
X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.
Stars: ✭ 179 (-91.75%)
Mutual labels:  cryptography
Bitcoinecdsa.php
PHP library to generate BTC addresses and signatures from private keys.
Stars: ✭ 169 (-92.21%)
Mutual labels:  cryptography
Auditor
Hardware-based attestation / intrusion detection app for Android devices. It provides both local verification with another Android device via QR codes and optional scheduled server-based verification with support for alert emails. It uses hardware-backed keys and attestation support as the foundation and chains trust to the app for software checks.
Stars: ✭ 185 (-91.47%)
Mutual labels:  cryptography
Lopp.net
Personal web site of Jameson Lopp
Stars: ✭ 174 (-91.98%)
Mutual labels:  cryptography
Seal
Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.
Stars: ✭ 2,424 (+11.71%)
Mutual labels:  cryptography
Piv Go
Keys and certificates for YubiKeys, written in Go
Stars: ✭ 172 (-92.07%)
Mutual labels:  cryptography
Jssha
A JavaScript/TypeScript implementation of the complete Secure Hash Standard (SHA) family (SHA-1, SHA-224/256/384/512, SHA3-224/256/384/512, SHAKE128/256, cSHAKE128/256, and KMAC128/256) with HMAC.
Stars: ✭ 2,089 (-3.73%)
Mutual labels:  cryptography
Sss
Library for the Shamir secret sharing scheme
Stars: ✭ 179 (-91.75%)
Mutual labels:  cryptography
Pkcs11interop
Managed .NET wrapper for unmanaged PKCS#11 libraries
Stars: ✭ 170 (-92.17%)
Mutual labels:  cryptography
Pqclean
Clean, portable, tested implementations of post-quantum cryptography
Stars: ✭ 181 (-91.66%)
Mutual labels:  cryptography
Solcrypto
Solidity crypto libraries, ring signatures, proof of knowledge, packed signatures etc. with matching Python implementations for secp256k1 and (alt)BN-256
Stars: ✭ 170 (-92.17%)
Mutual labels:  cryptography
Cryptag
Encrypted, taggable, searchable cloud storage
Stars: ✭ 178 (-91.8%)
Mutual labels:  cryptography
Crypto Password
Library for securely hashing passwords
Stars: ✭ 185 (-91.47%)
Mutual labels:  cryptography
Rsactftool
RSA attack tool (mainly for ctf) - retreive private key from weak public key and/or uncipher data
Stars: ✭ 3,163 (+45.76%)
Mutual labels:  cryptography
Sboot stm32
Secure USB DFU1.1 bootloader for STM32
Stars: ✭ 181 (-91.66%)
Mutual labels:  cryptography

SoftU2F is no longer supported

The SoftU2F project is deprecated and no longer supported. SoftU2F was created to support Touch ID for U2F when browsers did not support it, but the functionality is now available on macOS using Touch ID in:

  • Safari (macOS 11.0 Big Sur)
  • Google Chrome

SoftU2F has several compatibility issues that will not be fixed, so we recommend switching to one of these alternatives.

Thanks to everyone who used SoftU2F over the years, and special thanks to Ben Toews for writing and maintaining the original implementation!













Soft U2F is a software U2F authenticator for macOS. It emulates a hardware U2F HID device and performs cryptographic operations using the macOS Keychain. This tool works with Google Chrome/Chromium, Safari, Firefox and Opera's built-in U2F implementations.

We take the security of this project seriously. Report any security vulnerabilities to the GitHub Bug Bounty Program.

Installing

You can download the installer here.

Usage

The app runs in the background. When a site loaded in a U2F-compatible browser attempts to register or authenticate with the software token, you'll see a notification asking you to accept or reject the request. You can experiment on Yubico's U2F demo site.

Registration

register

Authentication

authenticate

Uninstalling

Unload the launchd agent

$ launchctl unload ~/Library/LaunchAgents/com.github.SoftU2F.plist

Delete the launch agent plist

$ rm ~/Library/LaunchAgents/com.github.SoftU2F.plist

Delete the .app

$ sudo rm -rf /Applications/SoftU2F.app/

Unload the kernel extension (this may fail if a browser is still talking to the driver. Deleting the .kext and restarting the system will fix this)

$ sudo kextunload /Library/Extensions/softu2f.kext

Delete the kernel extension

$ sudo rm -rf /Library/Extensions/softu2f.kext

Tell macOS to forget about the installation

$ sudo pkgutil --forget com.GitHub.SoftU2F

Done

Security considerations

A USB authenticator stores key material in hardware, whereas Soft U2F stores its keys in the macOS Keychain. There is an argument to be made that it is more secure to store keys in hardware since malware running on your computer can access the contents of your Keychain but cannot export the contents of a hardware authenticator. On the other hand, malware can also access your browser's cookies and has full access to all authenticated website sessions, regardless of where U2F keys are stored.

In the case of malware installed on your computer, one meaningful difference between hardware and software key storage for U2F is the duration of the compromise. With hardware key storage, you are only compromised while the malware is running on your computer. With software key storage, you could continue to be compromised, even after the malware has been removed.

Some people may decide the attack scenario above is worth the usability tradeoff of hardware key storage. But, for many, the security of software-based U2F is sufficient and helps to mitigate against many common attacks such as password dumps, brute force attacks, and phishing related exploits.

Hacking

Building

You must have Xcode Command Line Tools installed to build this project.

# Install Commaned Line Tools
xcode-select --install

# Build softu2f.kext and SoftU2F.app.
script/build

Running

There are two parts to Soft U2F: the driver and the app. To use a modified version of the driver, you must disable System Integrity Protection. The app can be modified and run via Xcode normally.

Known app-IDs/facets

Every website using U2F has an app-ID. For example, the app-ID of Yubico's U2F demo page is https://demo.yubico.com. When the low-level U2F authenticator receives a request to register/authenticate a website, it doesn't receive the friendly app-ID string. Instead, it receives a SHA256 digest of the app-ID. To be able to show a helpful alert message when a website is trying to register/authenticate, a list of app-ID digests is maintained in this repository. You can find the list here. If your company's app-ID is missing from this list, open a pull request to add it.

License

This project is MIT licensed, except for the files in /inc, which are included with their own licenses.

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].