BankAPI — защищённая децентрализованная система передачи сообщений/файлов между банками и другими финансовыми учреждениями.
На Github опубликована эталонная реализация протокола с использованием OpenPGP (RFC 4880), SHA512 и HTTPS. Уже в таком виде протокол достаточно надёжен и готов к использованию в реальных банковских системах. Как вариант, его можно адаптировать под собственные нужды и законодательство своей страны.
BankAPI выполняет исключительно транспортную функцию и не имеет отношения к содержимому передаваемых сообщений.
Система накладывает ряд ограничений на минимальный размер ключей, требует обязательной поддержки ключей большого размера и т.д. Принятие BankAPI несёт определённые гарантии того, что криптографическая схема в компании реализована правильно. Это особенно важно для финансовых учреждений.
Технически, протокол BankAPI работает поверх Linux / PostgreSQL / Apache, используя криптографический модуль pgcrypto. Для шифрования и подписи сообщений применяются ключи RSA. Каждый банк-участник системы генерирует пару из открытого и секретного ключей.
Зачем вообще нужен этот проект? Автор объясняет, что все банки сейчас обмениваются информацией по SWIFT. Это централизованная система. Фактически, один гигантский почтовый сервер, в котором у каждого банка — свой «почтовый» адрес (код БИК). Система очень хорошо защищена, но за её использование банки должны платить. Эти издержки потом перекладываются на нас, обычных пользователей, в виде различных комиссионных сборов.
Кроме экономии средств, децентрализованная система по своей архитектуре более надёжна, чем централизованная.