20 января, среда 12:06
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Формирование и отправка отчетности по FATCA через IDES

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • #31
    нашел оригинальный файл фатки. оказывается в тестовом наборе используется отформатированная копия оригинала, для наглядности. оригинальный подписанный файл в другом зипе, там же описание и пояснения.

    SampleEnvelopingSignature.zip
    TestPacket.zip
    Последний раз редактировалось ost; 08.03.2015, 01:46.

    Комментарий


    • #32
      Сообщение от ost Посмотреть сообщение
      задница какая-то, я думал у нас с вами совпадёт.
      давайте сверим файлы, которые подписываем.
      нужно посчитать хэш куска хмл, который обрамлен тэгами Object
      предлагаю сделать только этот кусок, потому что именно он подписывается. но можно и целиком файл проверить.

      я сейчас уже не могу выложить, если кто ещё может, положите в зип файл, кусок обжект, и хэши к этим файлам.
      хэш надо сха256
      Добрый день.

      Работаем с этим файлом. В zip-файле файл и HASH этого файла.
      Вложения

      Комментарий


      • #33
        Добрый день, коллеги.

        Мы попытались сами наваять на C# код для Step 1a - Sign the XML File.
        (Хотя американцы могли бы предоставить утилиту или пример кода. Но пока самим приходиться выкручиваться.)

        Многое похоже получается как в тестовом примере, но не можем добиться чтобы DigestValue и подпись в подписанном файле были как в тестовом примере.

        Посмотреть, что американцы подписывают невозможно, хеширование – однонаправленная функция.

        Код добывали гуглив просторы Интернета и по книжкам. Сами прежде глубоко в криптографию Microsoft .NET не вникали.

        Может посмотрите сами или дадите Вашим крутым программистам посмотреть, чтобы понять почему DigestValue и не воспроизводится.
        Может вместе сможем добиться полной идентичности с тестовым примером.

        Код нужно вставить в приложение типа Windows Forms, на форме одна кнопка, и по клику на кнопке исполняется код.
        Файл “000000.00000.TA.124.xml” и тестовый сертификат “sender.p12” надо подложить в директорию где компилируется на выходе и запускается EXE-файл. Программисты уверен быстро поймут что к чему.

        Использовали:
        Microsoft .NET версии 4.5 (если правильно поняли то именно в этой версии Microsoft любезно добавила нужные классы для "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256")

        MS Visual Studio Express 2012

        OS: Windows 2008 R2 SP1 ( или OS где встанет Microsoft .NET версии 4.5 например: Wi
        Откомпилил код - получил exe-шник, запустил = файл подписался как проверить что все ок?

        Комментарий


        • #34
          Сообщение от Ardnas Посмотреть сообщение
          Работаем с этим файлом. В zip-файле файл и HASH этого файла.
          Файл такой же.
          Но! обратите внимание, что подписывается другое содержимое, подписывается то, что заключено в тэги Object. Причем имеет значение наличие/отсутствие перевода строки после закрывающего тэга. Смотрите
          - как собран файл для подписи TA.124_Payload.xml
          - как составлен шаблон envelop.00.TA.124_Payload.xml
          - и ещё, xmlsec вывел debug, посмотрите debug.txt
          Подписанный файл там же.

          У меня в результате сошлось.


          set_of_files.zip

          Комментарий


          • #35
            Neumann,

            Можно сделать шаги дальше, а затем отправить то что получится в FATCA через тестовый IDES ( https://wwwtest.idesgateway.com ). Тестирование до 12.03.2015.

            Комментарий


            • #36
              Сообщение от Ardnas Посмотреть сообщение
              в FATCA через тестовый IDES ( https://wwwtest.idesgateway.com ).
              А оно работает?
              У меня страница не открывается.

              Комментарий


              • #37
                ost,

                Тестовый IDES ( https://wwwtest.idesgateway.com ) сто процентов работает. Уже два раза пытался отправить правда оба раза с отрицательным результатом. В ответах пишет FATCA, что не может распаковать файл ( decompressing ). Завтра продолжу тестировать.

                Комментарий


                • #38
                  Всем привет.
                  Задали вопросы по поводу того, как мы подписывали файл - не гарантирую, что у нас правильно, но других вариантов я не вижу.
                  В xml-файл вставляем шаблон для подписи, вставляю между предпоследней() и последней() строками.
                  Шаблон следующий:




















                  После этого, копирую xml файл в папку с xmlsec библиотекой, и запускаю следующий батник:
                  xmlsec --sign --privkey-pem privkey.pem,cert.pem --output file_signed.xml file.xml
                  pause

                  где cert.pem наш SSL сертификат(который мы еще загружаем в IDES), а privkey.pem - соответствующий закрытый ключ.

                  После этого, в конечном xml файле file_signed.xm прописываются все значения в соответствующие поля.

                  По поводу шифрования AES - наткнулся тут на совет использовать http://aes.online-domain-tools.com/, это реально работает.
                  С помощью него и расшифровал ответы IRS, и зашифровал наши тестовые файлы. Единственный нюанс, ключ для шифрования ввожу в 16ричном виде.

                  НО!
                  Все равно пришел ответ со следующей ошибкой:
                  NTD
                  The IRS detected one or more potential security threats within the decrypted version of the referenced file following download from IDES. Such threats include but are not limited to hyperlinks, Javascript, and executable files. Please do not submit a request to correct, amend or void any of the records in this file until you receive a notification that this file has been received as valid. For more information on this notification, please see: http://www.irs.gov/Businesses/Corporations/FATCA-Error-Notifications

                  На сайте с перечисление ответов http://www.irs.gov/Businesses/Corpor...tions-FAQs#NSC наша ошибка идет после проверки сигнатуры, я так понимаю они там идут последовательно (сначала ошибка скачивания, затем расшифрования, затем проверка подписи, и т.д), поэтому надеюсь это значит что подписали сам xml файл мы верно.

                  Кто-нибудь сталкивался с такой проблемой?

                  Комментарий


                  • #39
                    Chaxliy,

                    Скажите пожалуйста а какой утилитой Вы сжимаете *_Payload.xml. Мы пробовали 7z v 9.2, встроенный zip Windows (отправить сжатая zip-папка).
                    В ответе из FATCA постоянно приходит:

                    FATCANotificationCd: NDP

                    NotificationContentTxtThe: IRS could not decompress the referenced file following download from IDES. Please do not submit a request to correct, amend or void any of the records in this file until you receive a notification that this file has been received as valid. For more information on this notification, please see: http://www.irs.gov/Businesses/Corpor...-Notifications

                    Комментарий


                    • #40
                      Сообщение от Ardnas Посмотреть сообщение
                      В ответе из FATCA постоянно приходит:

                      FATCANotificationCd: NDP
                      Похоже, что у вас проблема, таки, с шифрованием. Вернее, с расшифровыванием на той стороне. Не получается у них ZIP после расшифровки.

                      Может зашифровано не так, может ключ не тот отправляете...

                      Комментарий


                      • #41
                        Сообщение от Chaxliy Посмотреть сообщение
                        Все равно пришел ответ со следующей ошибкой:
                        NTD
                        Может в XML запрещённые символы влезли? Там на сайте перечислено...

                        Комментарий


                        • #42
                          Здравствуйте. В документации по порядку действий шаг 2 указано

                          Step 2 - Encrypt AES key file
                          Process Description
                          Resulting Filename
                          1. Encrypt AES key with public key of each recipient
                          Padding: PKCS#1 v1.5
                          Key size: 2048 bits
                          FATCAEntitySenderId_Payload
                          2. Encrypt AES key with public key of an approving HCTA Model 1, Option 2 (only)
                          FATCAEntityReceiverId_Key
                          HCTAFATCAEntityId_Key

                          Подскажите пожалуйста:
                          - какое имя ключа
                          - как определить точно FATCAEntityReceiverId в примере p5124 FATCA Schema Version 1.1 указано образец 000000.00000.TA.840

                          Комментарий


                          • #43
                            Сообщение от dmitryinfo Посмотреть сообщение
                            Подскажите пожалуйста:
                            - какое имя ключа
                            - как определить точно FATCAEntityReceiverId в примере p5124 FATCA Schema Version 1.1 указано образец 000000.00000.TA.840
                            - в смысле "какое имя"? никакого имени не надо, генерите случайное число в 32 байта, кладете его в файл, потом файл шифруете RSA на публичном ключе из сертификата IRS, а результат записываете в 000000.00000.TA.840_Key

                            Только у вас он должен называться как-то типа ABCDEF.00005.XX.643_Key

                            Комментарий


                            • #44
                              Коллеги, подскажите, плиз.

                              Сам я в тестировании не участвую, тестировщики получили алёрт

                              Код:
                              RETURNCODE       RC001
                              RETURNMESSAGE    SA
                              COMMENTACK       Successfully received transfer with metadata.
                              FILESIZE         4
                              IDESTRANSID      643Fk4vFSqRM9WkuqHZzOrDt3bYVDiQX
                              FATCASENDERID    XXXXXX.NNNNN.XX.643
                              FATCARECEIVERID  000000.00000.TA.840
                              MSGTYPE          RPT
                              SENDERFILEID     XXXXXX.NNNNN.XX.643_Payload
                              SENDERFILETS     2015-03-11T04:42:55Z
                              ALERTTS          2015-03-11T10:06:04Z
                              говорят, что типа всё нормально, тест успешно завершен.

                              Это правда?

                              И ещё, поскольку меня в тестирование не пускают, segregation of the duties блин, расскажите вкратце, как оно происходит:
                              - файло отправили и всё, ничего дополнительно делать не надо?
                              - а результаты где смотреть? куда-то лезть надо или само по мылу приползёт?
                              Последний раз редактировалось ost; 12.03.2015, 11:34.

                              Комментарий


                              • #45
                                ost, это сообщение полученное на e-mail означает что файл принят в обработку и что наименования файлов указаны правильно. Зашифрованный ответ нужно смотреть в шлюзе https://wwwtest.idesgateway.com в паке Inbox\840

                                Комментарий


                                • #46
                                  Сообщение от Bkmz Посмотреть сообщение
                                  Зашифрованный ответ нужно смотреть в шлюзе https://wwwtest.idesgateway.com в паке Inbox\840
                                  Спасибо.
                                  Пойду морды бить.

                                  Комментарий


                                  • #47
                                    Такой вопрос смог ли кто расшифровать всё из тестового архива? если да то как расшифровывали ключ? после команды:
                                    rsautl -decrypt -inkey key.pem -in key -out newkey
                                    вроде как файл всё расшифровывается, но внутри довольно странный набор букв(хотя при команде rand -out key 32 там формат по сути такой же).
                                    ещё вопрос открытый ключ (тот который *.pem) я так понимаю тем же openssl вытаскивать? что-то вроде pkcs12 -in irs.cer -out key.pem -nocert -nodes?
                                    А то у меня при попытки расшифрованным ключом расшифровать полученный архив с xml выдаёт ошибку bed decrypt((
                                    А сайт который http://aes.online-domain-tools.com/ у меня просто тупо ключ расшифрованный не воспринимает мол символы не те((

                                    Комментарий


                                    • #48
                                      Сообщение от Rastr Посмотреть сообщение
                                      rsautl -decrypt -inkey key.pem -in key -out newkey
                                      Не катит этот вариант. Почему -- расписано на первой странице.


                                      Сообщение от Rastr Посмотреть сообщение
                                      А сайт который http://aes.online-domain-tools.com/ у меня просто тупо ключ расшифрованный не воспринимает мол символы не те((
                                      Надо сделать шестнадцатеричный дамп ключа и вводить ключ как набор шестнадцатеричных цифр. Цифры подряд без пробелов, двоеточий и т.д.

                                      Комментарий


                                      • #49
                                        Сообщение от ost Посмотреть сообщение
                                        Не катит этот вариант. Почему -- расписано на первой странице.




                                        Надо сделать шестнадцатеричный дамп ключа и вводить ключ как набор шестнадцатеричных цифр. Цифры подряд без пробелов, двоеточий и т.д.
                                        Перечитал ещё раз всю тему до конца так и не понял каким тогда образом расшифровывать ключ который пересылается (ну или пример как расшифровать ключ из тестового примера)
                                        И заранее извиняюсь за глупый вопрос, но как получить дамп ключа?

                                        Комментарий


                                        • #50
                                          Rastr, добавьте к вашей команде ключ -hexdump в расшифрованном файле ключа копируйте 2 последовательности шестнадцатеричных символов и убирайте пробелы между ними.
                                          Т.е. у вас получиться примерно такой дамп: 0000 - f1 c7 a4 58 51 31 c3 ab-2a 25 ca 40 18 bb c7 74 ..KXQ1..*%.@...t
                                          0010 - 28 ab b8 d3 47 46 8c 1c-56 30 87 68 b5 34 b5 a7 (...GF..~0.h....
                                          соединяете 2 последовательности в 1 строку:
                                          f1c7a4585131c3ab-2a25ca4018bbc77428abb8d347468c1c-56308768b534b5a7
                                          и вставляете в поле для ключа.
                                          Скачиваете бинарный файл, переименовываете в name.zip и открываете архиватором.

                                          Комментарий


                                          • #51
                                            Всем привет.

                                            Спасибо за наводку про http://aes.online-domain-tools.com/
                                            Сперва с ним смогли расшифровать, потом получилось и через openssl
                                            Вот инструкция для тестового пакета:

                                            исходные файлы:
                                            000000.00000.TA.124_Payload
                                            000000.00000.TA.840_Key
                                            receiver.p12

                                            'переводим из p.12 в pem
                                            openssl pkcs12 -in receiver.p12 -out receiver.pem -nodes
                                            (пароль - password)

                                            достаем hex сессионного ключа
                                            openssl rsautl -decrypt -in 000000.00000.TA.840_Key -out hexkey -inkey receiver.pem -hexdump
                                            получается файл следующего содержания
                                            0000 - 15 4c 28 a9 d5 40 53 7e-93 19 d8 8e 3c a8 be 9e .L(..@S~....<...
                                            0010 - 5f 1a c8 ef b3 94 df 2f-71 15 db 18 bc b2 3c f1 _....../q.....<.
                                            из него забираем только сам hex в виде
                                            154c28a9d540537e9319d88e3ca8be9e5f1ac8efb394df2f7115db18bcb23cf1

                                            и расшифровываем с помощью полученного hex
                                            openssl enc -d -aes-256-ecb -nosalt -in 000000.00000.TA.124_Payload -out 000000.00000.TA.124_Payload.zip -K 154c28a9d540537e9319d88e3ca8be9e5f1ac8efb394df2f7115db18bcb23cf1

                                            Видимо, шифровать нужно аналогично (тоже на hex-ключе) только наоборот действия. В данный момент пробуем.

                                            Комментарий


                                            • #52
                                              ost,

                                              Вы правы. Большое спасибо за наводку. Проблемы с расшифровыванием наших файлов у американцев были. Мы по началу пытались через OpenSSL шифровать.
                                              Получилось через http://aes.online-domain-tools.com/.

                                              Ваша технология подписи через xmlsec реально рабочая, а наша через MS Framework 4.5 нет, допиливать ее надо.

                                              Комментарий


                                              • #53
                                                Пришлите, пожалуйста, ссылку на вашу сборку xmlsec

                                                Комментарий


                                                • #54
                                                  Bkmz,

                                                  Для Windows все брали с этого сайта http://www.zlatkovic.com/libxml.en.html. Надо скачивать все библиотеки (libxml2;libxslt;xmlsec;xsldbg;OpenSSL;iconv;zlib) и установить методом xcopy все в одну директорию, после в переменную PATH добавить путь к директории bin.

                                                  Комментарий


                                                  • #55
                                                    Сообщение от Ardnas Посмотреть сообщение
                                                    Chaxliy,

                                                    Скажите пожалуйста а какой утилитой Вы сжимаете *_Payload.xml. Мы пробовали 7z v 9.2, встроенный zip Windows (отправить сжатая zip-папка).
                                                    В ответе из FATCA постоянно приходит:

                                                    FATCANotificationCd: NDP

                                                    NotificationContentTxtThe: IRS could not decompress the referenced file following download from IDES. Please do not submit a request to correct, amend or void any of the records in this file until you receive a notification that this file has been received as valid. For more information on this notification, please see: http://www.irs.gov/Businesses/Corpor...-Notifications
                                                    А у вас в итоге получилось справится с этой ошибкой? У нас такая же возникает при попытке отправить.

                                                    Комментарий


                                                    • #56
                                                      Rastr,

                                                      Стали шифровать файл *_Payload.zip через http://aes.online-domain-tools.com/ и это сработало.

                                                      До этого пытались зашифровать через OpenSSL и через рукописную утилиту.

                                                      Комментарий


                                                      • #57
                                                        Сообщение от Ardnas Посмотреть сообщение
                                                        Bkmz,

                                                        Для Windows все брали с этого сайта http://www.zlatkovic.com/libxml.en.html. Надо скачивать все библиотеки (libxml2;libxslt;xmlsec;xsldbg;OpenSSL;iconv;zlib) и установить методом xcopy все в одну директорию, после в переменную PATH добавить путь к директории bin.
                                                        Собрал, установил, запускаю батник:
                                                        xmlsec --sign --privkey-pem sender.key,sender.pem --output file_signed.xml 000000.xml

                                                        я ожидаю что информация о подписи запишется в файл file_signed.xml (содержит в себе шаблокн), а исходный файл находится в файле 000000.xml

                                                        Но после запуска в файл file_signed.xml подпись не прописывается.
                                                        Где копать?

                                                        Комментарий


                                                        • #58
                                                          Сообщение от Масловский Борис Посмотреть сообщение
                                                          и расшифровываем с помощью полученного hex
                                                          openssl enc -d -aes-256-ecb -nosalt
                                                          Да, это проходит, потому что для ECB не нужен initialization vector (IV)

                                                          Для шифрования соответственно: openssl enc -e -aes-256-ecb -nosalt ...

                                                          ключ в шестнадцатеричном виде через -K

                                                          Комментарий


                                                          • #59
                                                            Сообщение от Ardnas Посмотреть сообщение
                                                            Rastr,

                                                            Стали шифровать файл *_Payload.zip через http://aes.online-domain-tools.com/ и это сработало.

                                                            До этого пытались зашифровать через OpenSSL и через рукописную утилиту.
                                                            А ключ пересылали как? То что сгенерировалось зашифровали через openssl или шифровали дам от ключа? И если ен секрет чем?

                                                            Комментарий


                                                            • #60
                                                              Сообщение от Bkmz Посмотреть сообщение
                                                              Но после запуска в файл file_signed.xml подпись не прописывается.
                                                              Где копать?
                                                              Пароль к ключу указали?

                                                              А xmlsec что говорит?
                                                              добавьте ему ключи
                                                              --print-debug
                                                              print debug information to stdout
                                                              --store-references
                                                              store and print the result of element processing
                                                              just before calculating digest
                                                              --store-signatures
                                                              store and print the result of processing
                                                              just before calculating signature

                                                              Комментарий

                                                              Обработка...
                                                              X