Skip to content

GitMirar/u2f

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

U2F Server Implementation

This repository implements a register and authenticate endpoint and provides frontend (JavaScript) code that demonstrates a simplified registration and authentication workflow.

The portion of U2F auth that is implemented here is reduced to the absolute minimum and does not include device attestation or any other advanced features.

Frontend

You can find a simple register and auth demo application at index.html that utilizes u2f-api-1.1.js to interface with U2F keys.

Backend

The following API endpoints are implemented:

  • /auth/register/begin Initiate registration of a new U2F key, retrieve requested key handle from server.
  • /auth/register/complete Complete the registration of a new U2F key by providing the backend with an ecdsa key that is signed with the device certificate for the requested key handle.
  • /auth/authenticate/begin Initiate user authentication via U2F, provide user credentials, retrieve challenge from server.
  • /auth/authenticate/complete Complete the authentication by submitting the ecdsa signed challenge back to the server.

Use u2f.NewU2FApi with a http.HTTPServer to integrate the authentication endpoints into your web application. The HTTP server must serve content via HTTPS for U2F to work.

You must also provide a database that stores key handles and public keys associated with key identifiers. See db_interface.go.

For a complete demo server application have a look at u2f-demo-server.

Cookies

The /auth/authenticate/begin API sets a cookie named U2FTID that stores the key identifier for the duration of the authentication process.

Further Resources

You may want to read at least FIDO-U2F-CHEAT-SHEET.pdf before using this code.

License

This code may be used under the BSD-3-Clause License

About

Golang U2F Server Implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published