• Stars
    star
    179
  • Rank 214,039 (Top 5 %)
  • Language
    C
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Open-Source FIDO U2F implementation on nRF52 SoC

nRF52 FIDO U2F Security Key

An Open-Source FIDO U2F implementation on nRF52 SoC

Description

nRF52-U2F is an open-source FIDO U2F implementation on nRF52 SoC. Taking advantage of Nordic’s powerful SoC nRF52840 and nRF5 SDK, it's quite easy to make a FIDO U2F key with a number of distinguishing features, such as USB HID class modules, comprehensive cryptography library with ARM® TrustZone® Cryptocell-310, reliable Device Firmware Update (DFU), etc.

The FIDO Universal 2nd Factor (U2F) is an open authentication standard that allows online services to augment the security of their existing password infrastructure by adding a strong second factor to user login.

During registration and authentication, the user presents the second factor by simply pressing a button on a FIDO U2F key. The user can use their FIDO U2F key across all online services that support the protocol leveraging built-in support in web browsers.

FIDO U2F has been successfully deployed by large scale online services, including Google, Facebook, Twitter, GitHub, GitLab, and many more.

The FIDO U2F technical specifications are hosted by the open-authentication industry consortium known as the FIDO Alliance. Learn more about U2F on https://fidoalliance.org/.

Features

  • Support Nordic nRF52840 System-on-Chip
    • ARM® Cortex®-M4F processor optimized for ultra-low power operation
    • Combining Bluetooth 5, Bluetooth Mesh, Thread, IEEE 802.15.4, ANT and 2.4GHz
    • On-chip NFC-A tag
    • On-chip USB 2.0 (Full speed) controller
    • ARM TrustZone® Cryptocell-310 security subsystem
    • 1 MB FLASH and 256 KB RAM
  • Standard FIDO U2F Protocol supported
  • Driver-less installation on all major host platforms
  • Multi-application support with concurrent application access without the need for serialization and centralized dispatching.
  • Comprehensive cryptography library with ARM® TrustZone® Cryptocell-310
  • Reliable Device Firmware Update (DFU)

How it works?

The following diagram explains the basic process flow of FIDO U2F:

Developers Wiki

We have provided developers wiki to make it a pleasure to develop with nRF52-U2F. Get what you need here or visit https://wiki.makerdiary.com/nrf52-u2f.

Supported Boards

The following developmet boards are supported well and it's easy to port to other nRF52840 boards. More boards are planned and will show up gradually over time.

Supported Services

There are a list of featured services that use FIDO U2F. More services will deploy U2F and will show up here over time.

MIT License

Copyright (c) 2018 makerdiary

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

python-keyboard

A hand-wired USB & Bluetooth keyboard powered by Python and more
Python
484
star
2

nrf52840-mdk-usb-dongle

An open-source, small and low-cost USB Dongle that supports Bluetooth 5.4, Bluetooth mesh, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary protocols
Python
306
star
3

nrf52832-mdk

An Open Source, Micro Development Kit for IoT Embedded Applications using the nRF52832 SoC
C
206
star
4

nrf52840-mdk

An Open-Source, Micro Development Kit for IoT Applications using the nRF52840 SoC
C
165
star
5

nrf52840-connectkit

Rapid prototyping kit for your next connected projects supporting Bluetooth Low Energy, Bluetooth mesh, NFC, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary stacks
Python
93
star
6

web-device-cli

A Web Command Line Interface via NUS (Nordic UART Service) using Web Bluetooth
JavaScript
79
star
7

pitaya-go

An Open-Source IoT Development Platform with Multiprotocol Wireless Connectivity
Batchfile
67
star
8

terminal-s

A super simple serial terminal
Python
49
star
9

Smart-Plug

An open source ZigBee plug for your own smart home
C
41
star
10

nrf52840-m2-devkit

An open-source developer kit based on a removable nRF52840 M.2 module, designed for IoT prototyping
C
28
star
11

nrf52840-m2

A removable M.2 module that enables multiprotocol connectivity, security and ease-of-use for your next embedded design
C
27
star
12

pitaya-link

An Open-Source CMSIS-DAP Debug Probe based on DAPLink
14
star
13

m60

An Open Source, USB & BLE 5.0, Modular, Hot-Swappable, 60% Mechanical Keyboard
12
star
14

power-profiler

A power profiling utility
Python
7
star
15

ncs-playground

nRF Connect SDK Playground
CMake
5
star
16

uf2utils

An open source Python based tool for packing and unpacking UF2 files.
Python
5
star
17

makerdiary.github.io

Welcom to Makerdiary Wiki
HTML
5
star
18

base-dock

Grove compatible dock for building rapidly IoT applications with nRF52832-MDK or nRF52840-MDK
C
4
star
19

OpenSK-firmware

OpenSK Firmware Releases
4
star
20

grove-mesh-kit

Build Mesh network with nRF52840-MDK and Grove
C
3
star
21

m2-dock

An essential carrier board to quickly prototype your next embedded design with a removable M.2 module
3
star
22

meshlight

Smart Lighting based on FruityMesh
C++
2
star
23

mynewt_nrf52840_mdk

Mynewt packages with board support for nRF52840-MDK.
Assembly
2
star
24

meshlight_server

A node server for MeshLight
JavaScript
1
star
25

WebBluetoothDemos

Demos for Web Bluetooth API
JavaScript
1
star