Skip to content

An elliptic curve implementation of the Secure Remote Protocol (SRP) written in Python

License

Notifications You must be signed in to change notification settings

MarginResearch/EC-SRP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EC-SRP

An elliptic curve implementation of Secure Remote Protocol (SRP) written in Python.

Description

This repo contains a server and client implementation of the Elliptic Curve Secure Remote Protocol (EC-SRP) key sharing and authentication protocol. Inspired by this IEEE submission draft.

Related Work

This implementation is similar to, but not exactly the same as, MikroTik's EC-SRP5 implementation used for its Winbox and MAC Telnet services. For more on those services, please review our blog post "MikroTik Authentication Revealed" which highlights the overall protocol and our MikroTik Authentication Repo which implements both clients and server services.

Technical Details

The EC-SRP algorithm can be distilled into the following client and server calculations:

ecsrp_calcs

This repo primarily uses Jacobian points in projective space as oppose to the affine Weierstrass form.

Usage

The client and server can connect to each other over a host's loopback address using the following commands:

server: python3 ecsrp_server.py -a 127.0.0.1 -u admin -p pass
client: python3 ecsrp_client.py -a 127.0.0.1 -u admin -p pass

Dependencies

These tools require the following dependencies:

pip3 install ecdsa
pip3 install rich

About

An elliptic curve implementation of the Secure Remote Protocol (SRP) written in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages