Java: PKCS11 SafeNet eToken 5110: Медленно; и Как закодировать механизм подписи EBICS A006?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java: PKCS11 SafeNet eToken 5110: Медленно; и Как закодировать механизм подписи EBICS A006?

Сообщение Anonymous »

Информация:
  • Для EBICS существует два механизма подписи, A005 и A006. Спецификация EBICS > 2017-03-29-EBICS V 3.0-FinalVersion.pdf
  • Для EBICS A005 мы использовали алгоритм подписи SHA256withRSA. Он работает.
  • SafeNet eToken 5110 используется для подписи файлов данных. Он основан на стандарте PKCS11. Его драйвер/программное обеспечение называется «Клиент аутентификации SafeNet».
Проблемы и вопросы:
  • SafeNet eToken 5110 работает очень медленно с алгоритмом SHA256withRSA в коде Signer.update( данные);. Нет проблем, если мы изменим алгоритм на SHA512withRSA. Нет проблем с другой версией eToken «Базовый токен 3SKey (eToken PRO)». Знаете ли вы, сталкивались ли другие люди с такой же проблемой? или только мы? Каково решение?
  • Поскольку в данный момент мы не можем найти решение, мы рассматриваем EBICS A006, надеясь, что он будет быстрее. Однако не нашел способа разработать для него Java-код. Не знаю, какое имя алгоритма использовать. Я попробовал IAIK, но ему не удалось подключиться к собственной библиотеке libeTPkcs11.so или eTPKCS11.dll. BouncyCastle не работает с PKCS11. У вас есть какие-нибудь советы? Спасибо.
Код с SunPKCS11 (работает, но медленно в .update(...))

String pkcs11config;
pkcs11config = ....
ByteArrayInputStream confStream = new ByteArrayInputStream(pkcs11config.getBytes());
SunPKCS11 provider = new SunPKCS11(confStream);
Security.addProvider(provider);
char[] password = "....".toCharArray();
String alias = "...";
PrivateKey privateKey = (PrivateKey) keystore.getKey(alias, password);
Signature signer = Signature.getInstance("SHA256withRSA", keystore.getProvider());
signer.initSign(privateKey);
String data = "Hello world......";
signer.update(data.getBytes()); // SLOW HERE! THE BIGGER THE DATA, THE SLOWER IT IS.
byte[] signedData = signer.sign();


Код проверен с помощью IAIK:

String pwd = System.getProperty("user.dir");
String dllFile = pwd + "/libeTPkcs11.so";
Module m = Module.getInstance(dllFile);

=> error : Exception in thread "main" java.lang.UnsatisfiedLinkError: no pkcs11wrapper in java.library.path


Подробнее здесь: https://stackoverflow.com/questions/482 ... gnature-me
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»