Библиотека позволит вам в приложениях на Питоне реализовать аутентификацию на основе протокола SRP.
Данный протокол, являясь представителем семейства PAKE (password-authenticated key agreement), позволяет одной стороне получить представление о том, обладает ли сторона противоположная знанием пароля (при этом сам пароль не пересылается). Такой способ аутентификации обладает достаточно высокой надёжностью, если сообщение производится с использованием TLS.

    from srptools import SRPContext, SRPServerSession, SRPClientSession

# На основе логина и пароля
# формируем набор (логин, сверка_пароля, соль).
# Этого набора достаточно серверу для получения
# представления о том, знает ли клиент пароль.
context = SRPContext('alice', 'password123')
username, password_verifier, salt = context.get_user_data_triplet()

# Сервер получает от клиента имя пользователя
# и, обладая сверкой_пароля, вычисляет публичный ключ.
server_session = SRPServerSession(SRPContext(username), password_verifier)
server_public = server_session.public

# Клиент получает от сервера публичный ключ и соль,
# осуществляет их обработку,
client_session = SRPClientSession(SRPContext('alice', 'password123')
client_session.process(server_public, salt)
# генерирует свой публичный ключ и ключ сессии.
client_public = client_session.public
client_session_key = client_session.key

# Сервер получает публичный ключ клиента,
# обрабатывает его
server_session.process(client_public, salt)
# и осуществляет сверку ключей сессий.
assert server_session.key == client_session_key

Приложение обладает большой гибкостью программного интерфейса, и включает в поставку консольную утилиту, позволяющую производить базовые действия из командной строки.

Читайте также:
* srptools — аутентификация при помощи SRP

Категории

Область

На заметку
Зарегистрированные пользователи могут получать еженедельный дайджест обновлений на сайте.