Шифрование файлов с использованием ECIES
В настоящее время я пытаюсь создать проект (самообучающийся), который по сути представляет собой веб-сайт для обмена файлами (между двумя пользователями). Я хочу зашифровать файл (pdf) с помощью ECIES (основная цель), а затем отправить его другому пользователю. Мои вопросы:
- Как зашифровать файл на стороне клиента?
- Как отправить зашифрованный файл на сервер (какой язык / библиотека / технология)
Судя по моим вопросам, я новичок в веб-разработке.
1 ответ
Как вы, вероятно, уже знаете, от такого веб-сайта вы не получите много пользы, поскольку действительно сложно доказать, что вы не выполняете атаку MITM. Тем не менее, с точки зрения криптографии вам следует использовать / исследовать следующие технологии:
эфемерный: эфемерная эллиптическая кривая Диффи-Хеллмана, использующая сильную кривую с быстрым скалярным умножением с постоянным временем, например
curve25519
/x25519
, получение общего секрета, который можно использовать (путем хешированияx
координировать с сильной хеш-функцией, такой какSHA-256
,SHA-3
илиBlake2b
).используя ключ, согласованный на первом этапе, зашифруйте с помощью надежного симметричного шифра с проверкой подлинности, такого как
ChaCha20-Poly1305
.Существуют тонны и тонны вариантов, возможно, если вы хотите попробовать быть децентрализованным, веб-сайт может помочь перенаправить пользователей к открытым ключам друг друга в IPFS.