Jump to content
vasyanya

Бета-Тестирование Vipnet Jcrypto Sdk

Recommended Posts

Добро пожаловать в ветку бета-тестирования нового продукта ИнфоТеКС ViPNet JCrypto SDK.

 

Воспользовавшись данной веткой форума вы получите возможность задать технические вопросы разработчикам продукта ViPNet JCrypto SDK и получить быстрый и квалифицированный ответ.

 

Страница продукта на сайте: http://infotecs.ru/product/vipnet-jcrypto-sdk.html

Ссылка на бета-версию: http://infotecs.ru/downloads/beta-versii/vipnet-jcrypto-sdk.html?arrFilter_93=590012806&set_filter=Y

 

Share this post


Link to post
Share on other sites

Добрый день!

Из руководства пользователя по ViPNet JCrypto SDK следует, что в нем есть поддержка JSSE.

Возможна, ли интеграция ViPNet JCrypto SDK в IBM Webpshere Application Server v 8.5 таким образом, чтобы использовать ViPNet в настройках Websphere Admin Console?

При добавлении криптопровайдеров в IBM JRE (в начало списка) появляются типы контейнеров, соответствующие ViPNet, при этом в них не находятся сертификаты и закрытые ключи, которые видны при использовании программы ViPNet CSP.

Интересует конкретно управление сертификатами, закрытыми ключами, конфигурациями SSL.

С уважением, Егор.

Share this post


Link to post
Share on other sites

Доброго времени суток!

У меня возник небольшой вопросик.

На входе я имею контейнер с шестью файлами (header.key, masks.key, masks2.key, name.key, primary.key, primary2.key), после ряда экспериментов меня посетила мысль, что данный формат контейнеров не поддерживается криптопровайдером.

Собственно отсюда родились два следующих вопроса: верно ли мое предположение? И, если на первый вопрос ответ положительный, то существует ли какой-нибудь инструмент, способный трансформировать контейнер из шести озвученных файлов в контейнер VipNet'a?

Share this post


Link to post
Share on other sites

ifkin, Здравствуйте!

Если еще актуально, конечно: это файлы контейнера в формате CryptoPro, соотвественно, с помощью продуктов того производителя можете с ними работать. VipNet CSP с таким форматом у меня не работает.

По всей видимости, Вас интересует конвертация между различными контейнерами, в свое время я тоже интересовался данной темой, нашел вот эту ветку с обсуждением аналогичной проблемы. В качестве решения там предлагалась утилита P12FromGostCSP, можете посмотреть; но о том, как "скормить" криптопровайдеру VipNet PKCS#12 мне неизвестно.

Share this post


Link to post
Share on other sites

Привет!

Подпись созданную в VipNet CSP  не получается проверить в  ViPNet JCrypto:

signature.verify() всегда false.

Однако подпись и проверка подписи работают в каждом из этих провайдеров.

 

Share this post


Link to post
Share on other sites
В 05.06.2016в12:02, Александр Акимов сказал:

Привет!

Подпись созданную в VipNet CSP  не получается проверить в  ViPNet JCrypto:

signature.verify() всегда false.

Однако подпись и проверка подписи работают в каждом из этих провайдеров.

 

Приветствую!

Нужно несколько больше информации для понимая и воспроизводства Вашего кейса...

 

Share this post


Link to post
Share on other sites

Здравствуйте!

Естественно не работают, это полностью новый сайт.

Бета-тест теперь по ссылке http://infotecs.ru/downloads/beta-versii/

Продукт ViPNet JCrypto перешел в стадию сертификации, поэтому пока его не будет в разделе Бета-тест.

 

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites
В 9/29/2016в13:07, Petrenko Sergey сказал:

Приветствую!

Нужно несколько больше информации для понимая и воспроизводства Вашего кейса...

 

Для подписи данных:
1) Имеется контейнер в формате VipNet.
2) В Android приложении получаю закрытый ключ из этого контейнера.
3) В качестве исходных данных массив байт простого текста ("text".getBytes("UTF-8")).
4) Подписываю данные с помощью закрытого ключа, используя алгоритмы GOST3411-94withGOST3410-2001.
5) Получаю подпись - 64 байт. Преобразую эту подпись в строку Base64 (Base64.encodeToString(signResult, Base64.NO_WRAP)).

Для проверки подписи:
6) В коде получаю объект сертификата X509Certificate из строки Base64.(сертификат получил в утилите VipNet CSP из контейнера)
7) С помощью getPublicKey() получаю открытый ключ из этого сертификата.
8) Проверяю подпись, используя алгоритмы GOST3411-94withGOST3410-2001.
9) Проверка подписи проходит успешно - подпись корректна.


Для проверки подписи в консольном приложении C#:

10) Исходные данные передаю в код C#:
    -подпись полученную на шаге 5) - строка Base64 
    -массив байт Encoding.UTF8.GetBytes("text");
    -сертификат в виде строки Base64
    
11) исходные данные преобразую в массивы байт (Convert.FromBase64String())
12) С помощью кода проверяю подпись (https://github.com/Infotecs/CSharpViPNetCSP)

     public static bool VerifyCertificate(byte[] signature, byte[] data, byte[] certificateData)
        {
            using (var container = new KeyContainer())
            {
                container.AcquireContext(null, ProviderName, ProviderType, Constants.CryptVerifycontext);
                using (KeyContext keyContext = container.ImportSertificate(certificateData))
                {
                    using (HashContext hashContext =
                        container.CreateHash(null, Constants.CpcspHashId, 0))
                    {
                        hashContext.AddData(data, 0);
                        return keyContext.VerifySignature(signature, hashContext, 0);
                    }
                }
            }
        }
13) метод возвращает false - подпись не корректна.

Share this post


Link to post
Share on other sites

У каждого языка программирования свой порядок записи байт для длинных чисел.
В
JCrypto SDK используется “родной” для Java BigEndian порядок.

У CSP и Java разный порядок байт для записи больших чисел.

Перед проверкой подписи скорее всего нужно переворачивать 1-ю и 2-ю половину (каждая по 32 байта).

Если автору не сложно, пусть пришлет байтовые последовательности:
- подписи;
- дайджеста сообщения;
- открытого ключа.

Share this post


Link to post
Share on other sites
1 час назад, Petrenko Sergey сказал:

У каждого языка программирования свой порядок записи байт для длинных чисел.
В
JCrypto SDK используется “родной” для Java BigEndian порядок.

У CSP и Java разный порядок байт для записи больших чисел.

 

 

Перед проверкой подписи скорее всего нужно переворачивать 1-ю и 2-ю половину (каждая по 32 байта).

 

 

Если автору не сложно, пусть пришлет байтовые последовательности:
- подписи;
- дайджеста сообщения;
- открытого ключа.

 

 

Благодарю за оперативность! Подпись проверяется успешно! вопрос решен.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.