
Здравствуйте, люди Хабр! Настало время для очередного руководства по кибербезопасности.
Обычно в своей вводной части, я приводил несколько слов про криптографию, цифровизацию, информационную безопасность, общие тенденции и веяния, о том, как это важно, полезно и удобно для людей.
Мое мнение относительно того, что прогресс в этом направлении безусловно необходим и ценен, не изменилось. Но, оборачиваясь на несколько прошедших лет, хотелось бы донести одну мысль.
Всем, кто связал свою жизнь с профессией в ИТ, кибербезопасностью или собирается это сделать, следует помнить, что информационные технологии, окажись они в недобрых руках, могут быть инструментом позволяющим ограничивать права людей, лишать приватности и свободы воли, посягать на собственность и загонять в жесткие нечеловеческие рамки.
И напротив, с добрыми помыслами, информационные технологии будут стоять на службе у человечества, приносить ему пользу, комфорт и великое благо.
А на какой стороне вы, на светлой или на темной? Пишите в комментариях. Давайте, пора всем выйти из сумрака!
В новой публикации я покажу, как разработчику информационных систем со встроенными СКЗИ настроить интеграцию с программно-аппаратным криптографическим модулем КриптоПро HSM. Научимся использовать HSM, как самостоятельный криптографический провайдер с выполнением всей математики на борту или только в качестве надежного хранилища ключевого материала.
И в завершении затронем важные вопросы ответственности и этики, которые неизбежно возникают при работе с данными технологиями и инструментами.
Пошаговая инструкция
1. Базовая инструкция от КриптоПро:
Настройка КриптоПро HSM Client на Astra Linux 1.5/1.6
2. Для удобства проведения настроек c привилегированным sudo пользователем корректируем подключение WinSCP:


3. Для преодоление разрыва удаленного соединения с HSM при длительном отсутствии действий и искусственного поддержания активности соединения
в файл /etc/sysctl.conf добавляем настройку:net.ipv4.tcp_keepalive_time = 300
Если этого не сделать, то прикладное ПО будет терять соединение с HSM, контекст криптографического провайдера и ключей электронной подписи и шифрования.
После длительного простоя при попытке выполнить криптографическую операцию возникнут ошибки вида:IOException error! EofException: Closed Caused by:
java.io
.IOException: Broken
ru.CryptoPro.JCSP.MSCAPI.MSException: MSCAPI ERROR: 0x26at
Настройка через файл позволит сохранить заданную конфигурацию в случае перезагрузки сервера.
Для временного задания настройки можно использовать команду:
sudo sysctl -w net.ipv4.tcp_keepalive_time=300
Для проверки текущего параметра:
cat /proc/sys/net/ipv4/tcp_keepalive_time
4. КриптоПро CSP 5 уже должен быть установлен
Проверим командой:
/opt/cprocsp/bin/amd64/csptest -keyset -fqcn -verifyc
Ответ:
CSP (Type:80) v5.0.10008 KC2 Release Ver:5.0.12000 OS:Linux CPU:AMD64 FastCode:READY:SSSE3. DISABLED:RSA;
AcquireContext: OK. HCRYPTPROV: 21676163
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.020 sec
[ErrorCode: 0x00000000]
Далее согласно инструкции КриптоПро нужно установить пакеты:
cprocsp-stunnel,
cprocsp-rdr-pcsc,
cprocsp-rdr-rutoken,
ifd-rutokens.

zypper search cprocsp
5. Найдём на сервере место, где был распакован ранее архив с пакетами КриптоПро CSP или скопируем эту папку на сервер
Перейдем в папку с CSP и выполним установку нужных пакетов начиная с cprocsp-rdr-pcsc, так как у cprocsp-rdr-rutoken есть зависимости на него.
sudo zypper install cprocsp-rdr-pcsc-64-5.0.12000-6.x86_64.rpm

Далее устанавливаем:sudo zypper install cprocsp-rdr-rutoken-64-5.0.12000-6.x86_64.rpm
sudo zypper install ifd-rutokens_1.0.4_1.x86_64.rpm
sudo zypper install cprocsp-stunnel-64-5.0.12000-6.x86_64.rpm
или для RHEL и ROSA:
yum install cprocsp-rdr-pcsc-64-5.0.12999-7.x86_64.rpm
yum install cprocsp-rdr-rutoken-64-5.0.12999-7.x86_64.rpm
yum install ifd-rutokens_1.0.4_1.x86_64.rpm
yum install cprocsp-stunnel-64-5.0.12999-7.x86_64.rpm
Для CSP 5R3:
yum install cprocsp-rdr-pcsc-64-5.0.13000-7.x86_64.rpm
yum install cprocsp-rdr-rutoken-64-5.0.13000-7.x86_64.rpm
yum install ifd-rutokens_1.0.4_1.x86_64.rpm
yum install cprocsp-stunnel-64-5.0.13000-7.x86_64.rpm

zypper search cprocsp
6. Делаем резервную копию и выполняем настройки CSP в файле /etc/opt/cprocsp/config64.ini
Нужно добавить в конфигурационный файл /etc/opt/cprocsp/config64.ini секции криптографических провайдеров КриптоПро HSM в соответствующем разделе.
[Defaults\Provider]
[Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 HSM CSP"]
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so
"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 80
Channel = ".clientk2"
[Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 Strong HSM CSP"]
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so
"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 81
Channel = ".clientk2"
Добавляем только два провайдера ГОСТ 2012 HSM с размерностью ключей 256 и 512 бит, так как RSA криптография и ГОСТ 2001 не требуются.

После раздела [PKCS11] добавляем:[PKCS11\slot0]
ProvGOST = "Crypto-Pro GOST R 34.10-2012 HSM CSP"
reader = "HSM"
#reader = "HDIMAGE"

Сохраняем файл /etc/opt/cprocsp/config64.ini.
7. Копируем ключи аутентификации перед HSM в формате HDIMAGE в каталог /var/opt/cprocsp/keys/root
Сертификат для аутентификации перед HSM выдает администратор HSM.
Для информационных систем сертификат в HSM надо выпускать с типом Компьютер.
Проверяем, что контейнер доступен и получаем его полное имя командой:
sudo /opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc
Ответ:
CSP (Type:80) v5.0.10013 KC2 Release Ver:5.0.12999 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2.
AcquireContext: OK. HCRYPTPROV: 13794195
1c8fc564f-46b4-1ff3-5b77-07218948576
OK.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.020 sec
[ErrorCode: 0x00000000]
Для HSM ключи расположены в контейнере с именем:
1c8fc564f-46b4-1ff3-5b77-07218948576
8. Экспортируем в файл корневой сертификат аутентификации КриптоПро HSM из ключевого контейнера:
sudo /opt/cprocsp/bin/amd64/csptest -keys -cont 1c8fc564f-46b4-1ff3-5b77-07218948576 -saveext /root/test_hsmroot.p7b
CSP (Type:80) v5.0.10008 KC2 Release Ver:5.0.12000 OS:Linux CPU:AMD64 FastCode:READY:SSSE3. DISABLED:RSA;
AcquireContext: OK. HCRYPTPROV: 19237139
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Container name: "test1006"
Signature key is not available.
Exchange key is available. HCRYPTKEY: 0x1258983
Symmetric key is not available.
UEC key is not available.
Saving extensions...
Extensions:
OID: 1.2.643.2.2.37.3.10 does not refer to the certificate
OID: 1.2.643.2.2.37.3.3
Keys in container:
exchange key
Extensions:
OID: 1.2.643.2.2.37.3.10
PrivKey: Not specified - 27.12.2024 14:38:09 (UTC)
OID: 1.2.643.2.2.37.3.3
Certificates: 1:
DName: CN=HSM33-000229
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.010 sec
[ErrorCode: 0x00000000]
9. Устанавливаем корневой сертификат КриптоПро HSM в доверенные:
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /root/prom_hsmroot.p7b
WARNING: Legacy parameter: "-store root"
Certmgr Ver:5.0.12999 OS:Linux CPU:AMD64 (c) "Crypto-Pro", 2007-2024.
Program for managing certificates, CRLs and stores.
Installing:
=============================================================================
1-------
Issuer : CN=HSM33-000134
Subject : CN=HSM33-000134
Serial : 0x22A47A327948582D251F
SHA1 Thumbprint : 2d2dd22a947c1686950bf1b71469378b8152e1b7
SubjectKeyID : 9b615f9545480890bdac4af37c2e984ecf1139bf
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 05/06/2023 11:23:37 UTC
Not valid after : 05/06/2038 11:23:37 UTC
PrivateKey Link : No
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
1.3.6.1.4.1.311.20.2.2 Вход со смарт-картой
1.3.6.1.5.5.7.3.1 Проверка подлинности сервера
1.2.643.2.2.34.21
1.2.643.2.2.34.22
1.2.643.2.2.34.28
1.2.643.2.2.34.27
=============================================================================
CPCSP: Warning: installing a root certificate with an unconfirmed thumbprint is a security risk. Do you want to install this certificate?
Subject: HSM33-000134
Thumbprint (sha1): 2D2DD22A947C1686950BF1B71469378B8152E1B7
(o)OK, (c)Cancel
o
[ErrorCode: 0x00000000]
10. Устанавливаем сертификат ключа доступа с привязкой к ключевому контейнеру:
sudo /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
Match: HDIMAGE\1c8fc564.000\A975
OK.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.010 sec
[ErrorCode: 0x00000000]
11. Экспортируем сертификат ключа доступа в файл:
Если контейнеров с ключами несколько, потребуется выбрать нужный.
sudo /opt/cprocsp/bin/amd64/certmgr -export -dest /root/test1006.cer
Certmgr Ver:5.0.12999 OS:Linux CPU:AMD64 (c) "Crypto-Pro", 2007-2024.
Program for managing certificates, CRLs and stores.
Exporting:
=============================================================================
1-------
Issuer : CN=HSM33-000134
Subject : CN=1057.1057
Serial : 0x190DA4D07948582D2582
SHA1 Thumbprint : 84b952dd62bf20db797f40e1c6ae172f31d7d972
SubjectKeyID : 6eff99dd0db4b34666dd1c42d74d535472358b7b
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 20/11/2023 14:42:06 UTC
Not valid after : 20/02/2025 14:42:06 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\1c8fc564.000\A975
Provider Name : Crypto-Pro GOST R 34.10-2012 KC2 CSP
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
1.3.6.1.4.1.311.20.2.2 Вход со смарт-картой
1.2.643.2.2.34.22
=============================================================================
Exporting complete
[ErrorCode: 0x00000000
]
12. Результат работы пунктов 8 и 11 это цепочка и сертификат в каталоге /root/

13. Создаем файл /etc/opt/cprocsp/stunnel/stunnel.conf со следующим содержимым:
Файл в папке /etc/opt/cprocsp/stunnel.conf переименовываем в /etc/opt/cprocsp/DEFAULT_stunnel.conf. В новый файл /etc/opt/cprocsp/stunnel.conf записываем:
pid = /var/opt/cprocsp/tmp/
stunnel-k2.pid
output = /var/log/stunnel-k2.log
socket = r:TCP_NODELAY=1
socket = r:SO_KEEPALIVE=1
debug = 0
for_hsm = yes
verify = 0
[clientk2]
client = yes
connect = 192.168.1.33:1501
accept = /var/opt/cprocsp/tmp/.clientk2
cert = /root/test1006.cer
pincode = ******* - пароль к контейнеру с ключами доступа к HSM
ВАЖНО! Для информационных систем параметр TIMEOUTidle не включаем в свой конфиг, что бы HSM клиент сам не закрывал соединение.
Параметр socket = r:SO_KEEPALIVE=1 служит для тех же целей, что и произведенная в пункте 3 данной инструкции настройка net.ipv4.tcp_keepalive_time = 300 — для исключения разрыва удаленного соединения службы stunnel с HSM при длительном бездействии.
14. Перезапускаем службы смарт карт/токенов и криптографического провайдера
Проверяем статус службы:
sudo service pcscd status
Для новых версий Linux:
sudo systemctl status pcscd
Останавливаем службу:
sudo service pcscd stop
* pcscd.service - PC/SC Smart Card Daemon Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled) Active: failed (Result: exit-code) since Fri 2023-10-20 18:47:25 +05; 10s ago Process: 15276 ExecStart=/usr/sbin/pcscd --foreground --auto-exit $PCSCD_OPTIONS (code=exited, status=1/FAILURE) Main PID: 15276 (code=exited, status=1/FAILURE)
Проверяем статус службы:
sudo /etc/init.d/cprocsp status
Останавливаем службу:
sudo /etc/init.d/cprocsp stop
cryptsrv is stoppedБ≈▐ cprocsp.service - LSB: Start and stop CSP servers Loaded: loaded (/etc/init.d/cprocsp; bad; vendor preset: disabled) Active: inactive (dead) since Fri 2023-10-20 18:48:41 +05; 4s ago Docs: man:systemd-sysv-generator(8) Process: 4656 ExecStop=/etc/init.d/cprocsp stop (code=exited, status=0/SUCCESS) Process: 1437 ExecStart=/etc/init.d/cprocsp start (code=exited, status=0/SUCCESS)
Запускаем службы (после запуска, смотрим их статус):
sudo service pcscd start
* pcscd.service - PC/SC Smart Card Daemon
Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
Active: active (running) since Fri 2023-10-20 18:49:40 +05; 4s ago
Main PID: 4809 (pcscd)
Tasks: 1 (limit: 20000)
CGroup: /system.slice/pcscd.service
`-4809 /usr/sbin/pcscd --foreground --auto-exit
Oct 20 18:49:40 s06-trust systemd[1]: Started PC/SC Smart Card Daemon
sudo /etc/init.d/cprocsp start
cryptsrv is running (pid 5150)
Б?¦ cprocsp.service - LSB: Start and stop CSP servers
Loaded: loaded (/etc/init.d/cprocsp; bad; vendor preset: disabled)
Active: active (running) since Fri 2023-10-20 18:51:57 +05; 4s ago
Docs: man:systemd-sysv-generator(8)
Process: 4656 ExecStop=/etc/init.d/cprocsp stop (code=exited, status=0/SUCCESS)
Process: 4856 ExecStart=/etc/init.d/cprocsp start (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 20000)
CGroup: /system.slice/cprocsp.service
Б¦¦Б¦-5150 /opt/cprocsp/sbin/amd64/cryptsrv
15. Запускаем процесс stunnel_fork:
sudo /opt/cprocsp/sbin/amd64/stunnel_fork
для остановки процесса команда:
sudo killall stunnel_fork
16. Проверяем доступность и работу криптографических провайдеров HSM командами:
/opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 HSM CSP" -provtype 80 -info
CSP (Type:80) v5.0.10010 KB2 Release Ver:5.0.10010 OS:Linux CPU:AMD64 FastCode:READY:AVX. DISABLED:RSA;
CryptAcquireContext succeeded.HCRYPTPROV: 8971715
GetProvParam(...PP_ENUMALGS...) until it returns false
Algid Bits Type NameLen AlgName
0000661eh 256 Encrypt 14 GOST 28147-89
00008021h 256 Hash 18 GR 34.11-2012 256
00002e49h 512 Signature 18 GR 34.10-2012 256
0000aa46h 512 Exchange 18 DH 34.10-2012 256
0000aa47h 512 Exchange 18 DH 34.10-2012 256
0000801fh 32 Hash 18 GOST 28147-89 MAC
00006630h 256 Encrypt 14 GR 34.12-15 M
00006631h 256 Encrypt 14 GR 34.12-15 K
0000803ch 64 Hash 18 GR 34.13-15 M MAC
0000803dh 128 Hash 18 GR 34.13-15 K MAC
00008034h 256 Hash 20 GR34.11-12 256 HMAC
Cycle exit when getting data. 11 items found. Level completed without problems.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 1.470 sec
[ErrorCode: 0x00000000]
/opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 Strong HSM CSP" -provtype 81 -info
CSP (Type:81) v5.0.10010 KB2 Release Ver:5.0.10010 OS:Linux CPU:AMD64 FastCode:READY:AVX. DISABLED:RSA;
CryptAcquireContext succeeded.HCRYPTPROV: 15522611
GetProvParam(...PP_ENUMALGS...) until it returns false
Algid Bits Type NameLen AlgName
0000661eh 256 Encrypt 14 GOST 28147-89
00008022h 512 Hash 18 GR 34.11-2012 512
00002e3dh 1024 Signature 18 GR 34.10-2012 512
0000aa42h 1024 Exchange 18 DH 34.10-2012 512
0000aa43h 1024 Exchange 18 DH 34.10-2012 512
0000801fh 32 Hash 18 GOST 28147-89 MAC
00006630h 256 Encrypt 14 GR 34.12-15 M
00006631h 256 Encrypt 14 GR 34.12-15 K
0000803ch 64 Hash 18 GR 34.13-15 M MAC
0000803dh 128 Hash 18 GR 34.13-15 K MAC
00008035h 512 Hash 20 GR34.11-12 512 HMAC
Cycle exit when getting data. 11 items found. Level completed without problems.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 1.460 sec
[ErrorCode: 0x00000000]
17. Для настройки автозапуска процесса stunnel_fork
в SLES необходимо добавить в файл /etc/init.d/boot.local строку:
/opt/cprocsp/sbin/amd64/stunnel_fork
для RHEL/ROSA:
зайти с супер пользователем root в /etc/rc.d
там лежит файл rc.local
в нем нужно добавить команду запуска stunnel_fork
выполнить команду chmod +x stunnel_fork
18. Запускаем контрольную панель КриптоПро JavaCSP.
Требуется наличие программы Xming — порт сервера X Window System для операционной системы, обеспечивающей шифрованную передачу сессии X11 с Unix для безопасной работы с графическими приложениями удаленного компьютера.
Для Java 1.8 выполняем команду
/.../jdk1.8.0_xxx/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane
Убеждаемся, что рядом с HDIMAGE появилось хранилище HSMDB и ключи в нем, при условии их наличия открываются

19. Настройка работы криптографических провайдеров.
На вкладке JCSP Setting можно увидеть, что основным провайдером для ГОСТ 2012 стал HSM

Именно в такой конфигурации все криптографические функции будут выполняться непосредственно на борту HSM, что приводит к увеличению времени ожидания выполнения операций и к высокой утилизации его вычислительных ресурсов.
Чтобы перенести криптографические вычислительные процедуры в локальный контекст, разгрузить HSM и задействовать мощности нашего Linux сервера, необходимо заменить HSM обратно на CSP.
В этом случае можно использовать ключи электронной подписи и шифрования/дешифрования, хранящиеся в HSMDB, а ресурсоемкие операции будут выполняться на сервере, что позволит получить идеальный баланс безопасности хранения ключей и максимальной производительности.
Чтобы эти параметры изменить, нужно запустить MainControlPane под root. Просто sudo работать не будет. Нужно настроить X11 forwarding for sudo users специфическим образом.
Причина в том, что X аутентификация базируется на cookies и их нужно определить для пользователя, который инициирует подключение. Требуется выполнить следующие команды.
Отобразить список cookies:
xauth list $DISPLAY
s06-trust/unix:10 MIT-MAGIC-COOKIE-1 66f485ed32ceefc6a767984fb0c20a65
Переключиться на root пользователя используя sudo:
sudo su - root
Добавить для root данную cookie:
xauth add s06-trust/unix:10 MIT-MAGIC-COOKIE-1 66f485ed32ceefc6a767984fb0c20a65
Экспортировать дисплей:
export DISPLAY=localhost:10.0
Теперь можно запустить контрольную панель под root:
/.../jdk1.8.0_xxx/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane
Настроить и применить CSP провайдер:

Зайдя под пользователем, под которым работает прикладное ПО, убеждаемся, что провайдер выставлен верно — CSP:

20. Рекомендация от КриптоПро: отключить проверку handle_check на HSM через Web Admin панель (выполняет администратор HSM)
Внимание: После настройки нужен рестарт HSM.
Выставляем handle_check = 0
для настройки оптимальной работы HSM в режиме, когда криптографические вычиcлительные процедуры производятся в локальном контексте на сервере прикладного ПО.
Для отключения нужно войти в веб-интерфейс HSM, вписать в адресную строку браузера следующее:https://<ip HSM>/registry/putlong/config/parameters?handle_check=0
Затем перезагрузить HSM (перевести в Inactive, а потом в Full active).
Проверить, что значение изменилось можно также через браузер:https://<ip HSM>/registry/getlong/config/parameters?handle_check


21. Добавление JVM опции для процесса прикладного ПО
В sh скрипт запуска прикладного ПО для JVM необходимо добавить опцию:
" -Duse_local_hash_context=true"\
Это вариант более общий и предполагает использование контекста локального провайдера во всех создаваемых объектах класса Signature.
Эквивалент точечного программного подхода в коде:
Signature signature = Signature.getInstance(algorithm, "JCSP");
signature.initSign(privateKey);
signature.setParameter(new LocalContextSpec()); // сообщаем, что требуется вычислять хэш в контексте локального провайдера
...
byte[] sign = signature.sign();
...
В этом случае для вычисления хэша в signature с LocalContextSpec будет использоваться контекст локального провайдера.
22. Перенос симметричного секретного ключа дешифрования в локальный контекст для оптимизации производительности.
Для своего прикладного ПО можно добавить настройку, например:is.digest.local.context=true
Далее ее использовать в коде в нужных методах подписи и дешифрования для задействования контекста локального провайдера.
Аналогично действует настройка опции для всего процесса в JVM —Duse_local_hash_context=true — более общий вариант и предполагает использование контекста локального провайдера во всех Signature.
Собственную настройку можно применить, например, в методах дешифрования для импорта сессионного ключа в локальный контекст и тем самым значительно ускорить криптографическую процедуру:
private static final String LOCAL_CONTEXT = "LOCAL_CONTEXT";
...
// Выработка ключа согласования получателем и
// расшифрование симметричного ключа.
SecretKey symmetricKey = unwrap(wrapKey, privateKey);
SecretKey localSymmetricKey;
if ((isDigestLocalContext) && (isKeyInHSM)) {
SecretKeyFactory factory = SecretKeyFactory.getInstance(LOCAL_CONTEXT, cryptoProviderName);
localSymmetricKey = factory.translateKey(symmetricKey); // делаем копию в локальном провайдере
symmetricKey.destroy();
} else {
localSymmetricKey = symmetricKey;
}
...
Cipher cipher = Cipher.getInstance(CIPHER_MODE_3412_OMAC_CTR, encryptProviderName);
cipher.init(Cipher.DECRYPT_MODE, localSymmetricKey, spec, null);
23. Версия сборки КриптоПро JavaCSP и прошивки HSM
Важно! Тонкие настройки производительности с выполнением криптографических вычислений в контексте локального провайдера, описание которых приведено в пунктах 19-22 будут работать со сборкой КриптоПро JavaCSP начиная с версии java-csp-5.0.44463 и выше:

На данный момент максимальную производительность и стабильность работы показывала прошивка HSM:
Версия сборки ПАКМ: 12901
Build Date: Jul 3 2024 14:33:17
SVN Revision: 2024-07-01 13:21:10 +0300
24. Ошибки, которые позволяет обойти данное руководство

Заключение
Криптографии и ПАКМ КриптоПро HSM, в частности, отводится одна из ключевых ролей в текущих глобальных ИТ процессах и проектах на государственном уровне. Данные инструменты внедряются повсеместно для защиты электронного документооборота между людьми, организациями и госорганами.
Отдельно можно выделить такие масштабные проекты — Портал государственных услуг, где в Единой системе идентификации и аутентификации ЕСИА, осуществляется сбор, обработка и хранение биометрических персональных данных и Цифровой рубль.
В заключении хотелось бы еще раз заострить внимание на гуманной и морально-нравственной стороне вопроса. Я полностью разделяю мнение и согласен с точкой зрения Натальи Касперской, например, в одном из своих выступлений на РИА Новости она сказала:
«То есть любое принятие решений системой искусственного интеллекта в отношении человека должно быть просто прямо запрещено, потому что в противном случае мы придем к тому, что у нас система искусственного интеллекта будет управлять людьми — такой, значит, концлагерь электронный»
Это не значит, что мы не должны развивать и внедрять новые технологии.
Просто у человека всегда должна быть альтернатива, должен оставаться выбор:
пользоваться ими или нет;
получить бумажную справку или электронную;
отдать свои персональные данные, в том числе биометрические и медицинские, на хранение и обработку в информационную систему или не отдавать;
пользоваться цифровым рублем или предпочесть другие варианты расчетов;
общаться с роботом (ИИ) или доверить свою ситуацию другому живому человеку.
Принцип свободной воли не может быть нарушен.
Каким будет мир, зависит от каждого из нас.
И пусть ИТ приносят только благо. Всем добра!

Подписывайтесь на Телеграм-канал Alfa Digital — там мы постим новости, опросы, видео с митапов, краткие выжимки из статей, иногда шутим.