Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Ensiferum  
#1 Оставлено : 15 января 2014 г. 14:44:14(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Здравствуйте. По работе столкнулся с задачей написания утилиты для подписи/шифрования по ГОСТовским алгоритмам. Решил попробовать реализовать в JAVA с криптопро JCP. От имени администратора запускаю скрипт установки, в конце вижу надпись

---- Install finished
---- Script SUCCEEDED

После чего запускаю утилиту тестирования "java -cp samples.jar ComLine.CheckConfFull", которая выдает
Цитата:
C:\>java -cp samples.jar ComLine.CheckConfFull
 эт 15, 2014 4:40:31 PM ComLine.CheckConfFull checkProvs
INFO: Provider JCP not installed.
 эт 15, 2014 4:40:31 PM ComLine.CheckConfFull checkProvs
INFO: Provider Crypto not installed.
 эт 15, 2014 4:40:31 PM ComLine.CheckConfFull checkProvs
INFO: Provider JTLS not installed.


В java.security присутствуют записи
Цитата:
security.provider.11=ru.CryptoPro.JCP.JCP
security.provider.12=ru.CryptoPro.Crypto.CryptoProvider
security.provider.13=ru.CryptoPro.reprov.RevCheck


В чем может быть проблема?
Offline cross  
#2 Оставлено : 15 января 2014 г. 16:58:33(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
java которая вызывается при запуске тестов точно именно из той jre куда поставили JCP?
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Ensiferum  
#3 Оставлено : 15 января 2014 г. 18:12:21(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
да, она одна у меня

jcp 2.0.37027
jre 1.7.0_25

Отредактировано пользователем 15 января 2014 г. 18:13:16(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 15 января 2014 г. 18:52:31(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
В команде "java -cp samples.jar ComLine.CheckConfFull" укажите полный путь к java: <JRE>\bin\java -cp samples.jar ComLine.CheckConfFull
Offline Ensiferum  
#5 Оставлено : 16 января 2014 г. 9:20:06(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Да, так помогло

Цитата:
c:\Program Files (x86)\Java\jre7\bin>java -cp samples.jar ComLine.CheckConfFull
 эт 15, 2014 9:57:46 PM ComLine.CheckConfFull checkProvs
INFO: Provider JTLS not installed.
 эт 15, 2014 9:57:46 PM ComLine.CheckConfFull checkProvs
INFO: Provider JCSP not installed.
 эт 15, 2014 9:57:46 PM ComLine.CheckConfFull checkSignature
INFO: ### Check singing and verifying by using JCP ###
 эт 15, 2014 9:57:46 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP key pair generation and writing to store
 эт 15, 2014 9:57:46 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410 (JCP).
 эт 15, 2014 9:57:46 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 37027
 эт 15, 2014 9:57:46 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
 эт 15, 2014 9:57:50 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410, JCP)
 эт 15, 2014 9:57:50 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestsignkey" to HDImageStore is compl
eted (JCP).
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP key pair generation and writing to store - OK
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP signature generation|verification
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: Sign data and verify signature by using key jcptestsignkey (JCP).
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: Loading of a private key is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: Loading of a text is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: Generation of the signature is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: Loading of a public key is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull signVer
INFO: The signature is true
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkSignature
INFO: *** JCP signature generation|verification - OK
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestsignkey (JCP).
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestsignkey is completed
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull logResult
INFO:
JCP - OK

 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkEncDec
INFO: ### Check encryption and decryption by using Crypto ###
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkEncDec
INFO: *** Check Crypto key pair generation and writing to store
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull checkEncDec
INFO: *** Prepare keys
 эт 15, 2014 9:57:51 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410DH (Crypto).
 эт 15, 2014 9:57:52 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410DH, Crypto)
 эт 15, 2014 9:57:52 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
 эт 15, 2014 9:57:52 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestalisacryptokey" to HDImageStore i
s completed (JCP).
 эт 15, 2014 9:57:52 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410DH (Crypto).
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410DH, Crypto)
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestbobcryptokey" to HDImageStore is
completed (JCP).
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull encryptDecrypt
INFO: Encrypt and decrypt data by using of GOST28147/CNT/NoPadding (Crypto).
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull encryptDecrypt
INFO: Loading of Alisa's private key and certificate is completed.
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull encryptDecrypt
INFO: Loading of Bob's private key and certificate is completed.
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull encryptDecrypt
INFO: Random sequence is generated.
 эт 15, 2014 9:57:53 PM ComLine.CheckConfFull encryptDecrypt
INFO: Alisa's agreement key is completed.
java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(CipherSpi.java:926)
at javax.crypto.Cipher.passCryptoPermCheck(Cipher.java:1052)
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1023)
at javax.crypto.Cipher.init(Cipher.java:1345)
at ComLine.CheckConfFull.encryptDecrypt(CheckConfFull.java:879)
at ComLine.CheckConfFull.checkEncDec(CheckConfFull.java:372)
at ComLine.CheckConfFull.main(CheckConfFull.java:132)
 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestalisacryptokey (JCP).
 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestalisacryptokey is completed
 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestbobcryptokey (JCP).
 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestbobcryptokey is completed
 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull logResult
WARNING:
Crypto - OK

 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull main
INFO:
*******************************

 эт 15, 2014 9:57:54 PM ComLine.CheckConfFull main
INFO:
JCP - OK
Crypto - FAIL


Однако первая же строка кода

Цитата:
public static void main(String[] args) throws Exception {
KeyPairGenerator kg = KeyPairGenerator.getInstance("GOST3410", "JCP");
}


Выдает

Цитата:
Exception in thread "main" java.security.NoSuchProviderException: no such provider: JCP
at sun.security.jca.GetInstance.getService(GetInstance.java:83)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
at java.security.KeyPairGenerator.getInstance(KeyPairGenerator.java:268)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:48)
Java Result: 1
Offline Евгений Афанасьев  
#6 Оставлено : 16 января 2014 г. 9:40:54(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Проверьте, в какой jre запускается пример.
Offline Ensiferum  
#7 Оставлено : 17 января 2014 г. 8:18:29(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Проблема оказалась в настройках среды разработки. В консоли приложения запускаются. Спасибо!

Offline Ensiferum  
#8 Оставлено : 17 января 2014 г. 8:26:45(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Чтобы не плодить темы, хочу следующий вопрос задать тут же. Мне необходимо зашифровать текст по ГОСТ 28147-89, сформировать агри-ключ по ГОСТ 34.10-2001, затем зашифровать им симметричный ключ.

Закрытых и открытых ключей для обмена у меня нет, поэтому экспериментирую на самоподписанных сертификатах. В первую очередь созал ключевую пару и сертификат (на основе примера certificates.java)

Цитата:
KeyPairGenerator kg = KeyPairGenerator.getInstance("GOST3410DH");
KeyPair keypair = kg.genKeyPair();

Отличие лишь в том, что поставил алгоритм Диффи-Хелмана, так как мне нужен обмен, а не подпись.

Далее я пытаюсь загрузить ключ из хранилища для создания вектора и шифра (на основе примера SessionEncrypt.java)

Цитата:
final KeyStore keyStore = KeyStore.getInstance("HDImageStore");
final File file = new File(STORE_PATH);
keyStore.load(new FileInputStream(file), STORE_PASS);

final Certificate cert = keyStore.getCertificate(ALIAS);
PrivateKey key = (PrivateKey) keyStore.getKey(ALIAS, STORE_PASS);

// Генерирование начальной синхропосылки для выработки ключа согласования
final byte[] sv = new byte[RND_LENGTH];
final SecureRandom random = SecureRandom.getInstance("CPRandom");
random.nextBytes(sv);

final IvParameterSpec ivspec = new IvParameterSpec(sv);

// Выработка ключа согласования алисы c SV
final KeyAgreement aKeyAgree = KeyAgreement.getInstance("GOST3410DH");
aKeyAgree.init(key, ivspec, null);
aKeyAgree.doPhase(cert.getPublicKey(), true);


Константы одни и те же, тоесть алиас, хранилище и пароль одинаковые. Однако я получаю эксепшн

Цитата:
Exception in thread "main" java.security.InvalidKeyException: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
at ru.CryptoPro.Crypto.Key.KeyAgreement.engineInit(Unknown Source)
at javax.crypto.KeyAgreement.implInit(KeyAgreement.java:342)
at javax.crypto.KeyAgreement.chooseProvider(KeyAgreement.java:372)
at javax.crypto.KeyAgreement.init(KeyAgreement.java:524)
at sign.Sign.encrypt(Sign.java:117)
at sign.Sign.main(Sign.java:95)


117 строка - это aKeyAgree.init(key, ivspec, null);

Где я ошибаюсь? Прошу учесть, что в понятиях шифрования, кобчах и сертификатах я новичок
Offline Ensiferum  
#9 Оставлено : 17 января 2014 г. 8:36:01(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Стоило написать, как понял ошибку: Я забыл записать в хранилище сам ключ
keyStore.setKeyEntry(ALIAS, keypair.getPrivate(), STORE_PASS, certs);
Offline Ensiferum  
#10 Оставлено : 17 января 2014 г. 8:41:39(UTC)
Ensiferum

Статус: Участник

Группы: Участники
Зарегистрирован: 23.08.2012(UTC)
Сообщений: 20
Откуда: Кумертау

Сказал(а) «Спасибо»: 3 раз
Новая проблема.
Цитата:
// Генерирование симметричного ключа с параметрами шифрования из контрольной панели
final KeyGenerator keyGen = KeyGenerator.getInstance("GOST28147");
final SecretKey simm = keyGen.generateKey();

// Зашифрование текста на симметричном ключе
Cipher cipher = Cipher.getInstance("GOST28147/CFB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, simm);


выдает

Цитата:
Exception in thread "main" java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(CipherSpi.java:926)
at javax.crypto.Cipher.passCryptoPermCheck(Cipher.java:1052)
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1010)
at javax.crypto.Cipher.implInit(Cipher.java:786)
at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
at javax.crypto.Cipher.init(Cipher.java:1213)
at javax.crypto.Cipher.init(Cipher.java:1153)
at sign.Sign.encrypt(Sign.java:130)
at sign.Sign.main(Sign.java:97)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.