Secure Transport Protocol Certificate (STPC) - Cryptographic certificate system with modern algorithms support
Project description
Secure Transport Protocol Certificate (STPC) 🛡️
STPC — это высокопроизводительная криптографическая система для работы с сертификатами, поддерживающая современные алгоритмы подписи, CRL и OCSP. Проект реализован на Python с использованием Rust-библиотек для криптографических операций.
🔥 Ключевые особенности
-
Поддержка современных алгоритмов:
- Ed25519 (рекомендуется)
- Falcon512/Falcon1024 (постквантовые)
- RSA (устаревший, не рекомендуется)
-
Полный цикл управления сертификатами:
- Генерация корневых и пользовательских сертификатов
- Парсинг и валидация
- PEM-сериализация
-
Система отзыва сертификатов:
- CRL (Certificate Revocation Lists)
- OCSP (Online Certificate Status Protocol) сервер и клиент
-
Временная синхронизация:
- Автоматическая синхронизация с NTP-серверами
- Защита от атак с подменой времени
🚀 Быстрый старт
Установка
pip install -r requirements.txt
maturin develop # Сборка Rust-библиотеки
Примеры использования
1. Генерация корневого сертификата
from stpc.main import RootCertificates
from stpc import stpc
private_key, public_key = stpc.Ed25519.generate_keypair()
root_cert = RootCertificates.generate_cert(
0x02, # Ed25519
b"STP_Root_CA",
b"John",
b"Doe",
b"Security",
b"Example Corp",
b"New York",
b"US",
public_key,
3600 * 24 * 365 * 10, # 10 лет
private_key
)
2. Проверка сертификата через OCSP
from stpc.main import OCSP
# Запуск сервера
ocsp_server = OCSP.server()
ocsp_server.start(crl_list, root_private_key, root_public_key, 8080, 0x02)
# Клиентский запрос
ocsp_client = OCSP.client("localhost", 8080, root_public_key, 0x02)
status = ocsp_client.check_certificate("1234567890abcdef")
print(status) # {'status': 'good', 'revoked': False, ...}
🛠 Технические детали
Алгоритмы подписи
| ID | Алгоритм | Безопасность | Скорость |
|---|---|---|---|
| 0x01 | RSA | ❌ Уязвим к атакам | ⚡⚡ |
| 0x02 | Ed25519 | ✅ Высокая | ⚡⚡⚡ |
| 0x03 | Falcon512 | ✅ Постквантовый | ⚡ |
| 0x04 | Falcon1024 | ✅ Постквантовый | 🐢 |
Производительность (benchmarks)
Ed25519 keypair generation: 0.000412 sec (~2427 ops/sec)
Server cert generation: 0.001203 sec (~831 certs/sec)
CRL check: 0.000038 sec (~26315 checks/sec)
OCSP check: 0.001200 sec (~833 req/sec)
🛡 Безопасность
- Защита от replay-атак (проверка временных меток)
- Валидация всех полей сертификатов
- Автоматическая проверка CRL при валидации
- Поддержка OCSP для онлайн-проверки статуса
📜 Лицензия
MIT License. См. файл LICENSE для подробностей.
Note: Проект в активной разработке. Не рекомендуется использование в production!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stpc-0.1.0a3.tar.gz.
File metadata
- Download URL: stpc-0.1.0a3.tar.gz
- Upload date:
- Size: 13.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a57d8fdec741d17b1b59894f6ffcb6f2688c7439d2dff774f9e5aebbf54e3f
|
|
| MD5 |
0f4dd618d9d4e7281e5625d9f5c5bd41
|
|
| BLAKE2b-256 |
531b3aed3fb5e85a072db71d82d4a7d622d7087137f180db0d05ee802ecf3cfc
|
File details
Details for the file stpc-0.1.0a3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: stpc-0.1.0a3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 349.3 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef8a5221e2b2ed852388f1aae93dbe18755e0821e34f0f5f6b4a618f63fa1254
|
|
| MD5 |
0882be66737a55bdc156d8e1b2125b7f
|
|
| BLAKE2b-256 |
8a12a73424ea12ae3622f390b310880a566f3aba69c68091a16313d51f1da905
|