logo Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline pooopsss  
#1 Оставлено : 5 марта 2020 г. 17:17:02(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Здравствуйте.
Подписываю данные своим ключем(+private). Отправляю на equifax
Они присылают ответ зашифрованный.
Как раскодировать этот ответ и получить данные.

Заранее спасибо!
Offline Андрей *  
#2 Оставлено : 5 марта 2020 г. 17:32:53(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Здравствуйте.

Опишите более подробно.
Какой язык программирования, чтобы Вам помогли примерами (если их нет в CPDN).

Раскодирование <> расшифрование.

Если там base64 - раскодировать.
Если там зашифровано - расшифровать.
Если там закодированные в base64 зашифрованные данные - то указать это (CADESCOM_BASE64_TO_BINARY) и вызвать метод расшифровки.

Приложите пример ответа, если необходима помощь в решении.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
pooopsss оставлено 05.03.2020(UTC)
Offline pooopsss  
#3 Оставлено : 5 марта 2020 г. 17:47:19(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Автор: Андрей * Перейти к цитате
Здравствуйте.

Опишите более подробно.
Какой язык программирования, чтобы Вам помогли примерами (если их нет в CPDN).

Раскодирование <> расшифрование.

Если там base64 - раскодировать.
Если там зашифровано - расшифровать.
Если там закодированные в base64 зашифрованные данные - то указать это (CADESCOM_BASE64_TO_BINARY) и вызвать метод расшифровки.

Приложите пример ответа, если необходима помощь в решении.

PHP, Linux.
1. Шифрую сертификатом "A" c privateKey
$sd = new CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode($xml));
$resultSend = $sd->SignCades($signer,0xffff, false, 0);
Вообще тут мне надо CMS/PKCS#7 в DER кодировке. Если поможете тот отлично будет.
И сразу еще вопрос: Там Pin нужно вводить можно как-то его где-то запомнить или в php прописать где нужно?

2. Отправляю данные и получаю:

3080 0609 2a86 4886 f70d 0107 02a0 8030
8201 d602 0101 310e 300c 0608 2a85 0307
0101 0202 0500 3080 0609 2a86 4886 f70d
0107 01a0 8004 81cd 3c3f 786d 6c20 7665
7273 696f 6e3d 2231 2e30 2220 656e 636f
6469 6e67 3d22 7769 6e64 6f77 732d 3132
3531 223f 3e0a 3c62 6b69 5f72 6573 706f
6e73 6520 7665 7273 696f 6e3d 2233 2e30
2220 6461 7465 7469 6d65 3d22 3035 2e30
332e 3230 3230 2031 353a 3231 3a33 3422
3e0a 3c72 6573 706f 6e73 6563 6f64 653e
3139 3c2f 7265 7370 6f6e 7365 636f 6465
3e0a 3c72 6573 706f 6e73 6573 7472 696e
673e c7e0 eff0 eef1 20ed e520 efee e4ef
e8f1 e0ed 3c2f 7265 7370 6f6e 7365 7374
7269 6e67 3e0a 3c2f 626b 695f 7265 7370
6f6e 7365 3e00 0000 0031 81dd 3081 da02
0101 3077 3069 310b 3009 0603 5504 0613
0252 5531 0f30 0d06 0355 0407 0c06 4d6f
7363 6f77 3124 3022 0603 5504 0a0c 1b45
7175 6966 6178 2043 7265 6469 7420 5365
7276 6963 6573 204c 4c43 3123 3021 0603
5504 030c 1a45 7175 6966 6178 2043 7265
6469 7420 5365 7276 6963 6573 2043 4102
0a01 a802 93d1 013f 0203 af30 0c06 082a
8503 0701 0102 0205 0030 0c06 082a 8503
0701 0101 0105 0004 4046 5c4c 0792 db47
1743 0699 58e6 0680 03db 37e5 ec3a e98b
69db 61e3 09e4 be46 a36f 4f16 2118 7c94
57e0 9455 5929 fc4f 6054 4dfb 5d07 fbc2
3fd5 b5ef bc81 7c83 e300 0000 00


Получаю я так понимаю от них подписанные данные их сертификатом "B", где есть у меня publickey

3. Как расшифровать столь дивное чудо
Offline Андрей *  
#4 Оставлено : 5 марта 2020 г. 17:53:38(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Цитата:
1. Шифрую сертификатом "A" c privateKey
...
$resultSend = $sd->SignCades($signer,0xffff, false, 0);


Здесь нет шифрование.
Это подписание.

Цитата:

2. Отправляю данные и получаю:
3080 0609 2a86...


Мне предлагается hex перевести в файл?

Приложите файлом ответ.


Цитата:

3. Как расшифровать столь дивное чудо


Смотреть спецификацию сервиса - если там зашифрованные данные, то вызвать метод расшифровки $EnvelopedObj->Decrypt($EnvelopedMessage).

Интерфейс ICPEnvelopedData

https://docs.microsoft.c...to/envelopeddata-decrypt
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
pooopsss оставлено 05.03.2020(UTC)
Offline Андрей *  
#5 Оставлено : 5 марта 2020 г. 17:56:40(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
первые байты: 30 80

- SEQUENCE {
OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)


Т.е. это зашифрованные данные.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
pooopsss оставлено 05.03.2020(UTC)
Offline pooopsss  
#6 Оставлено : 5 марта 2020 г. 17:58:53(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Автор: Андрей * Перейти к цитате
Цитата:
1. Шифрую сертификатом "A" c privateKey
...
$resultSend = $sd->SignCades($signer,0xffff, false, 0);


Здесь нет шифрование.
Это подписание.

Цитата:

2. Отправляю данные и получаю:
3080 0609 2a86...


Мне предлагается hex перевести в файл?

Приложите файлом ответ.


Цитата:

3. Как расшифровать столь дивное чудо


Смотреть спецификацию сервиса - если там зашифрованные данные, то вызвать метод расшифровки $EnvelopedObj->Decrypt($EnvelopedMessage).

Интерфейс ICPEnvelopedData

https://docs.microsoft.c...to/envelopeddata-decrypt


Да оно. Как получить EnvelopedObj в php?

Offline Андрей *  
#7 Оставлено : 5 марта 2020 г. 18:02:19(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Нет... Snimok ehkrana ot 2020-03-05 19-02-19.png (18kb) загружен 4 раз(а).

<?xml version="1.0" encoding="windows-1251"?>
<bki_response version="3.0" datetime="05.03.2020 15:21:34">
<responsecode>19</responsecode>
<responsestring>Запрос не подписан</responsestring>
</bki_response>

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
pooopsss оставлено 05.03.2020(UTC)
Offline Андрей *  
#8 Оставлено : 5 марта 2020 г. 18:03:54(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
MS CryptoAPI выдаёт: [2148086029] :Неверное правило шифрования ASN1

КриптоАРМ: Неверный формат данных (0x80070057)

Это если из hex перевести в файл...
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#9 Оставлено : 5 марта 2020 г. 18:06:25(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
$resultSend - они ожидают в каком варианте?
base64 или der?

При отправке (POST) - base64_decode($resultSend) ... ?
Техническую поддержку оказываем тут
Наша база знаний
Offline pooopsss  
#10 Оставлено : 5 марта 2020 г. 18:20:19(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Автор: Андрей * Перейти к цитате
MS CryptoAPI выдаёт: [2148086029] :Неверное правило шифрования ASN1

КриптоАРМ: Неверный формат данных (0x80070057)

Это если из hex перевести в файл...

Тут непонятно..вижу что xml то грязный вид надо дешифровать его...
Вопрос по EnvelopeData?
Offline Андрей *  
#11 Оставлено : 5 марта 2020 г. 18:34:44(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Автор: pooopsss Перейти к цитате
Автор: Андрей * Перейти к цитате
MS CryptoAPI выдаёт: [2148086029] :Неверное правило шифрования ASN1

КриптоАРМ: Неверный формат данных (0x80070057)

Это если из hex перевести в файл...

Тут непонятно..вижу что xml то грязный вид надо дешифровать его...
Вопрос по EnvelopeData?


Нет, это signed data, но какой то повреждённый. Нужен в файле, а не в hex
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#12 Оставлено : 5 марта 2020 г. 18:36:05(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
В зашифрованном ответе не будет ничего из xml, а здесь всё видно и в конце похоже на сертификат сервиса.
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#13 Оставлено : 6 марта 2020 г. 6:20:00(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 975
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 62 раз
Поблагодарили: 219 раз в 206 постах
Автор: Андрей * Перейти к цитате
первые байты: 30 80
- SEQUENCE {
OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
Т.е. это зашифрованные данные.
Цитата:
3080 0609 2a86 4886 f70d 0107 02
я вижу в hex записи оида цифру два, то есть 1.2.840.113549.1.7.2 - signedData.

Декодировал, 1.txt.p7s (1kb) загружен 2 раз(а).. КриптоАрм может извлечь подписанные данные, но говорит что сертификата нет, проверка подписи невозможна. Поэтому то что "похоже на сертификат" скорее всего информация о подписавшем для поиска сертификата, а самого сертификата у меня фактически нет в хранилище.

Отредактировано пользователем 6 марта 2020 г. 6:40:41(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
pooopsss оставлено 06.03.2020(UTC)
Offline pooopsss  
#14 Оставлено : 6 марта 2020 г. 10:25:19(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Автор: Андрей * Перейти к цитате
$resultSend - они ожидают в каком варианте?
base64 или der?

При отправке (POST) - base64_decode($resultSend) ... ?


DER

Offline pooopsss  
#15 Оставлено : 6 марта 2020 г. 10:26:48(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Автор: two_oceans Перейти к цитате
Автор: Андрей * Перейти к цитате
первые байты: 30 80
- SEQUENCE {
OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
Т.е. это зашифрованные данные.
Цитата:
3080 0609 2a86 4886 f70d 0107 02
я вижу в hex записи оида цифру два, то есть 1.2.840.113549.1.7.2 - signedData.

Декодировал, 1.txt.p7s (1kb) загружен 2 раз(а).. КриптоАрм может извлечь подписанные данные, но говорит что сертификата нет, проверка подписи невозможна. Поэтому то что "похоже на сертификат" скорее всего информация о подписавшем для поиска сертификата, а самого сертификата у меня фактически нет в хранилище.


Как получить envelopedData на php. У меня есть сертификат
Offline Андрей *  
#16 Оставлено : 6 марта 2020 г. 10:32:40(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Автор: pooopsss Перейти к цитате
Автор: two_oceans Перейти к цитате
Автор: Андрей * Перейти к цитате
первые байты: 30 80
- SEQUENCE {
OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
Т.е. это зашифрованные данные.
Цитата:
3080 0609 2a86 4886 f70d 0107 02
я вижу в hex записи оида цифру два, то есть 1.2.840.113549.1.7.2 - signedData.

Декодировал, 1.txt.p7s (1kb) загружен 2 раз(а).. КриптоАрм может извлечь подписанные данные, но говорит что сертификата нет, проверка подписи невозможна. Поэтому то что "похоже на сертификат" скорее всего информация о подписавшем для поиска сертификата, а самого сертификата у меня фактически нет в хранилище.


Как получить envelopedData на php. У меня есть сертификат


Никак. Это не зашифрованные данные.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#17 Оставлено : 6 марта 2020 г. 10:34:54(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Автор: two_oceans Перейти к цитате
Автор: Андрей * Перейти к цитате
первые байты: 30 80
- SEQUENCE {
OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
Т.е. это зашифрованные данные.
Цитата:
3080 0609 2a86 4886 f70d 0107 02
я вижу в hex записи оида цифру два, то есть 1.2.840.113549.1.7.2 - signedData.


Анализировал на ходу, по первым байтам - мне нужно было понять ASN1 это или другой формат.
Ниже написал, что подписанные данные:
Цитата:

Нет, это signed data,

Так что смысл писать замечание?
Техническую поддержку оказываем тут
Наша база знаний
Offline pooopsss  
#18 Оставлено : 6 марта 2020 г. 11:26:22(UTC)
pooopsss

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

Группы: Участники
Зарегистрирован: 17.02.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 12 раз
Ребят я не про это все спрашивал. Больше вопрос про декодирования а не структуру данных.
Задача то такая - приходит данные подписанные - вытащить данные на php
Offline Андрей *  
#19 Оставлено : 6 марта 2020 г. 11:31:26(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Автор: pooopsss Перейти к цитате
Ребят я не про это все спрашивал. Больше вопрос про декодирования а не структуру данных.
Задача то такая - приходит данные подписанные - вытащить данные на php




Код:

$sgn = присоединенная подпись, base64

 $SignedData = new \CPSignedData();
 $SignedData->set_ContentEncoding(BASE64_TO_BINARY);  
 $check = $SignedData->VerifyCades($sgn, 0x01,0);  
         
 $SignedContent = $SignedData->get_Content();
 $SignedContentDecoded = base64_decode($SignedContent);



try catch расставить и проверки...
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
pooopsss оставлено 06.03.2020(UTC)
Offline Андрей *  
#20 Оставлено : 6 марта 2020 г. 11:32:19(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,054
Мужчина
Российская Федерация

Сказал «Спасибо»: 333 раз
Поблагодарили: 1302 раз в 1017 постах
Автор: pooopsss Перейти к цитате

Задача то такая - приходит данные подписанные - вытащить данные на php

то зашифрованные, то подписанные... ответ каждый раз разный, как и методы получения результата.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.