Web Application Testing with CryptoPro Sign

CryptoPro, КриптоПро

Docker

Автор этой полезной заметки: @sorokinpf github: https://github.com/sorokinpfarrow-up-right

Заметка если вдруг кому то придется тестить сайт на отечественной крипте.

Можно больше не использовать КриптоПро (у неё лицензия и т.д.). Добрый человек собрал openssl с gost engine, а также с этим делом пересобрал stunnel и запихнул все в докер: https://github.com/gosha20777/openssl-gostarrow-up-right и на dockerhub: https://hub.docker.com/repository/docker/gosha20777/openssl-gostarrow-up-right.

Можно сделать конфигурацию stunnel вот так:

[configname]
client = yes
accept = 0.0.0.0:6666
connect = yourhost_target:443

И Dockerfile:

FROM gosha20777/openssl-gost:dev

COPY ./stunnel.txt /tmp/stunnel.txt
EXPOSE 6666

ENTRYPOINT stunnel /tmp/stunnel.txt && tail -f /dev/null

Далее на 6666 можем заходить по http.

Если есть клиентский серт, то тоже не беда.

Конфиг:

Если закрытый ключ к серту передали в контейнере CryptoPro, то его надо конвертнуть с помощью вот этой хрени: https://github.com/kulikan/privkeyarrow-up-right. Там лежит архивчик с экзешником, который работает, если лень разбираться с компиляцией.

Внутри директории Test1.000 лежит следующее:

Для удобства использования, можно обернуть это Docker-контейнер в nginx: https://z3f1r.gitbook.io/admin/tools/servers/web/nginxarrow-up-right

Так же, если на стороне клиента происходит проверка подписи, то для корректной работы с ней, нужен браузер, собранный с поддрежкой отечественного шифрования — Chrome Gost — https://github.com/deemru/chromium-gost/arrow-up-right.

Proxy Settings

Другой вариант:

Настраиваем виндовую виртуалку, там устанавливаем и настраиваем CryptoPro CSP по инструкции: https://www.cryptopro.ru/products/cades/pluginarrow-up-right

На этой машине устанавливаем любой прокси, который использует WinAPI (Burp и Gost не подходят), например, Fiddler.

На хостовой машине подрубаем Burp и делаем upstream на виндовую машину. Fiddler уже сам обернет трафик над CryptoPro CSP.

Что делать с контейнером ключа Test2021.000 (взято с форумаarrow-up-right разработчика):

Сертификат УЦ надо добавить в корневые доверенные сертификаты

Last updated