База знаний
Формирование архива для IDES
Опубликовано Дмитрий Байбулатов on 21 September 2016 14:50:07

1. Подготовить сертификат в нужном формате.

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile CACert.crt

 

 

2. Вставить  содержимое Вашего ftc:FATCA_OECD XML файла в шаблон предоставления (Payload.xml):

<?xml version="1.0" encoding="utf-8"?>

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

  <SignedInfo>

    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>

    <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>

    <Reference URI="#FATCA">

      <Transforms>

        <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>

      </Transforms>

      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>

      <DigestValue></DigestValue>

    </Reference>

  </SignedInfo>

  <SignatureValue></SignatureValue>

  <KeyInfo>

    <X509Data>

      <X509SubjectName></X509SubjectName>

      <X509Certificate></X509Certificate>

    </X509Data>

  </KeyInfo>

  <Object Id="FATCA">

   <ftc:FATCA_OECD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns="urn:oecd:ties:fatca:v1" xmlns:ftc="urn:oecd:ties:fatca:v1"

      xmlns:iso="urn:oecd:ties:isofatcatypes:v1"

      xmlns:sfa="urn:oecd:ties:stffatcatypes:v1" version="1.1">

      [... Содержимое XML файла ... - находится у клиента]

    </ftc:FATCA_OECD>

  </Object>

</Signature>

 

3. Сгенерировать XML подпись документа с помощью xmlsec1:

xmlsec1 --sign --output ВАШGIIN_Payload.xml --pkcs12 server.p12 --pwd password Playload.xml

где certificate.p12 – файл хранилища сертификата, содержащий сертификат, промежуточный и корневой сертификаты, а также приватный ключ. На хранилище должен быть установлен пароль password

 

4. Сжать подписанный XML payload файл в zip архив.

zip ВАШGIIN_Payload.zip ВАШGIIN_Payload.xml

 

5. Сгенерировать одноразовый 32 байтный ключ

dd if=/dev/random of=mySingleUsageAesKey bs=8 count=4

 

6. Извлечь шестнадцатеричную последовательность из одноразового 32 байтного ключа (64 символа)

xxd -c 32 -p mySingleUsageAesKey

 

7. Зашифровать Ваш архив Payload.zip с использованием алгоритма AES-256 и шестнадцатеричной последовательности

openssl aes-256-ecb -nosalt -K HexaSequenceForMySingleUsageAesKey -in ВАШGIIN_Payload.zip -out ВАШGIIN_Payload

 

8. Зашифровать AES ключ с помощью публичного ключа IRS RSA

openssl rsautl -encrypt -certin -inkey IRSpublickey.cer -in mySingleUsageAesKey -out 000000.00000.TA.840_Key

*IRSpublickey.cer - доступен тут - https://www.ides-support.com/Downloads/encryption-service_services_irs_gov.crt

 

9. Сгенерировать текущую дату в нужном формате.

date "+%Y%m%d%H%M%S%2NZ"

 

10. Создать  metadata файл metadata используя полученную в шаге 9 дату - ВАШGIIN_Metadata.xml

Или скачать файл из кабинета на сайте https://ides-support.com

Инструкция:

https://ides.desk.com/customer/portal/articles/1791168-creating-a-metadata-file

 

11. Упаковать Ваш metadata файл, зашифрованный  payload архив и зашифрованный AES ключ в архив для передачи.

zip TIMESTAMP_ВАШGIIN.zip ВАШGIIN_Metadata.xml ВАШGIIN_Payload 000000.00000.TA.840_Key

 

Для автоматизации процесса Вы можете воспользоваться bash-сценарием прикрепленным к статье. 

Данная инструкция адаптирована для ОС Linux.



Вложения 
 
 ides.tgz (1.50 КБ)
(1 голос(а))
Эта статья помогла
Эта статья не помогла