Файл формата P7S: программы для чтения и открытия текстового документа .p7s

Файл формата P7S: программы для чтения и открытия текстового документа .p7s Электронная цифровая подпись

Asn.1

Что же такое Cryptographic Message Syntax? Это

, описывающий структуру сообщений, полученных с использованием криптографии.


В стандарте описывается шесть типов данных: data, signedData, envelopedData, signedAndEnvelopedData, digestedData, and encryptedData. В данном топике я расскажу о типе signedData (данные с электронной подписью).

Прежде всего следует сказать, что стандартный p7s файл имеет ASN.1 структуру.ASN.1 — формат записи, с помощью которого можно описывать сложные структуры данных, состоящие из различных типов. Приведу краткую выдержку из своего старого топика про x.509 сертификаты:

ASN.1-кодировка описывается следующим правилом. Сперва записываются байты, характеризующий тип данных, затем последовательность байтов хранящих сведения о длине данных и лишь после этого следуют сами данные.

К примеру, для кодировки целого числа INTEGER 65537 используется следующая форма: 0203 01 00 01.
Здесь первый байт 02, определяет тип INTEGER (полную таблицу типов вы можете найти например тут), второй байт 03 показывает длину блока. А следующие за этим байты 01 00 01, являются шестнадцатеричной записью нашего числа 65537.

В нашем случае, для описание простейшего самоподписанного сертификата, достаточно 9 типов данных. Приведем таблицу кодирования для этих типов:

Наименование типаКраткое описаниеПредставление типа в DER-кодировке
SEQUENCEИспользуется для описания структуры данных, состоящей из различных типов.30
INTEGERЦелое число.02
OBJECT IDENTIFIERПоследовательность целых чисел.06
UTCTimeВременной тип, содержит 2 цифры для определения года17
GeneralizedTimeРасширенный временной тип, содержит 4 цифры для обозначения года.18
SETОписывает структуру данных разных типов.31
UTF8StringОписывает строковые данные.0C
NULLСобственно NULL05
BIT STRINGТип для хранения последовательности бит.03

Подробное описание ASN.1 дано в статье

. Я же просто расскажу какие сведения можно извлечь из самого обыкновенного p7s файла.

Взлом

Теоретически любой шифровальный алгоритм с использованием ключа может быть вскрыт
методом перебора всех значений ключа. Если ключ подбирается, требуемая мощность
компьютера растет экспоненциально с увеличением длины ключа. Ключ длиной в 32
бит требует 232 (около 109) шагов.

Такая задача под силу любому дилетанту и
решается на домашнем компьютере. Системы с 40-битным ключом (например, экспортный
американский вариант алгоритма RC4) требуют 240 шагов — такие компьютерные мощности
имеются в большинстве небольших компаний.

Системы с 56-битными ключами (DES)
требуют для вскрытия заметных усилий, однако они могут быть легко вскрыты с
помощью специальной аппаратуры. Стоимость такой аппаратуры значительна, но доступна
для мафии, крупных компаний и правительств.

Ключи длиной 64 бит в настоящий
момент, возможно, могут быть вскрыты крупными государствами, а уже в ближайшие
несколько лет будут доступны для вскрытия преступным организациям, крупным компаниям
и небольшим государствам. Ключи длиной 80 бит могут стать уязвимыми в будущем.

Однако длина ключа — это еще не все. Многие шифры можно вскрыть, не перебирая
всех возможных комбинаций, а применяя специальный алгоритм (например, с полиномиальной
сложностью). Вообще, очень трудно придумать шифр, который нельзя было бы вскрыть
при помощи другого способа, более эффективного, чем перебор.

Обратите внимание, что степень надежности криптографической системы определяется
ее слабейшим звеном. Нельзя упускать из виду ни одного аспекта разработки системы
— от выбора алгоритма до политики использования и распространения ключей.

Как открыть sig на сайте росреестра

Файл росреестра способы скачиванияНепосредственно каждый пользователь, зайдя на сайт Росреестра, может ознакомиться со специальным сервисом для открытия файлов в формате *xml и *xml. sig в читаемом привычном для пользователя виде. Этот сервис имеет название «Проверка электронного документа».

В открывшееся окошко сервиса загружается необходимый файл и нажимается кнопка «открыть в человекочитаемом формате».

На сайте росреестра можно ознакомится с подробной инструкцией, помогающей провести открытие файлов с расширением *xml и *xml.sig.

Для того чтобы сделать проверку непосредственно документа, прибегая к помощи сайта росреестра, целесообразно использовать следующие широко используемые интернетные браузеры:

  1. Интернет Эксплорер (Internet Explorer) 9 или 10 версии, имеющий регистры совместимости (разрешено использовать сервис и одиннадцатой версии). Необходимо воспользоваться опцией -Включения всего содержимого. При этом в момент открытия файла в самой нижней части окошка появится панель с кнопочкой, или же можно с помощью настроек активировать сайт Росреестра для того, чтобы просмотреть в режиме совместимости.
  2. Мозилла Файерфокс (Mozilla Firefox) используя настройку — отключения защиты на странице. Обозначение сформировано в виде щита, расположенного в левом углу окошка открываемого файла, более расширенную информацию можно изучить онлайн на сайтах;
  3. Гугл Хром (Google Chrome). При настраивании — загрузки небезопасного скрипта, выскакивает эмблема в виде щита в верхней части правого уголка окошка при открывании файла. Для получения более подробной информации можно обратиться онлайн на сайт;
  4. Сафари (Safary), используется при отсутствии использования настройки безопасности вспомогательного вида;
  5. Опера (Opera) без присутствия вспомогательных опций, которые отвечают за безопасность. Кроме того, есть возможность увидеть информацию (кроме графических схем), когда произведется открывание данного хml-файла.

Как открыть xml файл выписки егрн с росреестра и сделать ее в читабельном виде

Статья обновлена: 8 мая 2021 г.

На сайте Росреестра есть специальный сервис для открытия выписок (ссылка ниже). На примере выписки на квартиру я расписала подробную инструкцию, поэтому повторяйте за мной. Также в конце статьи есть небольшая дополнительная инструкция, если графический план в выписке не отображается.

  1. Все файлы из архива с выпиской поместите в отдельную папку, чтобы они все были в одном месте. Файлы переименовывать не нужно, т.е. какими файлы были в архиве, такими пусть и останутся. Из архива в отдельную папку я перенесла выписку на квартиру в формате .xml, уникальную цифровую подпись в формате .sig и папку (1), в которой был графический план квартиры на этаже. Обычно графический план находится внутри самой выписки, но у меня он пришел с выпиской отдельно (на картинке это видно). Открыв файл с графическим планом, можете посмотреть его. Шаг №1 - папка с файлами xml и sig выписки ЕГРН
  2. Перейдите по ссылке — https://rosreestr.gov.ru/wps/portal/cc_vizualisation. Эта страница создана Росреестром, чтобы открывать xml файлы выписок.
  3. На странице кликните на кнопку «Выберите файл» в поле «Электронный документ (xml-файл):». Шаг №3 - кнопка «Выберите файл» в поле «Электронный документ (xml-файл):»
  4. Зайдите в созданную папку и дважды кликните по файлу в формате .xml (это и есть наша выписка). Шаг №4 - загрузка xml файла выписки
  5. Нажмите на «Выберите файл» в поле «Цифровая подпись (sig-файл):» и дважды кликните по файлу в .sig формате, который находится рядом с выпиской. Шаг №5 - загрузка sig файла выписки
  6. Нажмите на «Проверить».
  7. Должно появится сообщение, что XML файл (сама выписка) заверен электронной цифровой подписью. Жмите по «Показать в человеческом формате». Шаг №7 - кнопка «Показать в человеческом формате»
  8. В новом окне браузера появится электронная выписка, в которой теперь видна вся информация о недвижимости. Файл с выпиской был создан в формате .html, который открывает любой браузер.
  9. Чтобы сохранить выписку в .html формате и в дальнейшем спокойно ее открывать на любом браузере, нажмите на кнопку «Сохранить». Чтобы распечатать выписку нажмите на «Напечатать». Бывает, что эти кнопки отсутствуют, поэтому, чтобы сохранить выписку на клавиатуре нажмите CTRL S, чтобы распечатать — CTRL P. Шаг №9 - кнопки «Сохранить» и «Напечатать»
Читайте также:  Где создать почту: сервисы для регистрации почтового ящика (найди красивый и короткий E-mail)

Бывает, что вместо плана квартиры появляется сообщение «Файл с планом помещения отсутствует». Как на примере ниже.

Сообщение «Файл с планом помещения отсутствует»

Чтобы план нормально появился:

  1. Выполните пункты с 1 по 8 в инструкции выше, если еще этого не сделали.
  2. После того как открыли выписку, в левом верхнем углу жмите на кнопку «Сохранить». Нажать на кнопку Сохранить
  3. Сохраните выписку только в ту папку, которую изначально создавали — пункт 1 в самом начале этой статьи. Посмотрите ниже на картинку для примера. Важно, чтобы выписка в формате .html и папка с графическим планом были в одном месте. Папку с графическим планом переименовывать нельзя ни в коем случае. У меня пришла под цифрой 1, так и осталась. Перенос файла .html и папки с графическим планом
  4. Снова откройте выписку в .html, и в ней графический план теперь должен корректно отобразится. Как на картинке ниже.Графический план квартиры на этаже

Как преобразовать sig файл в pdf файл

На этой странице объясняется, как Вы можете с легкостью конвертировать a .sig файл в PDF файл с помощью бесплатного и простого в использовании PDF24 Creator. Описанный способ конвертации является бесплатным и простым. PDF24 Creator устанавливает PDF принтер, и Вы можете распечатать Ваш .sig файл на данном принтере, чтобы конвертировать файл в PDF.

Файлы типа SIG или файлы с расширением .sig можно легко конвертировать в PDF с помощью PDF принтера.

PDF принтер представляет собой виртуальный принтер, который можно использовать так же, как любой другой принтер. Отличием от обычного принтера является то, что PDF принтер создает PDF файлы. Вы не печатаете на физическом листе бумаги. Принтер PDF печатает содержимое исходного файла в PDF файл.

Таким образом, Вы можете создать PDF версию любого файла, который можно распечатать. Просто откройте файл с помощью ридера, нажмите кнопку печати, выберите виртуальный PDF принтер и нажмите кнопку «Печать». Если у Вас есть устройство для чтения файла SIG и если ридер может распечатать файл, то Вы можете преобразовать файл в формат PDF.

Бесплатный и простой в использовании PDF принтер от PDF24 можно загрузить с этой страницы. Просто нажмите на кнопку загрузки справа от этой статьи, чтобы загрузить PDF24 Creator. Установите это программное обеспечение.

После установки Вы будете иметь новое печатающее устройство, зарегистрированное в Windows, которое можно использовать для создания PDF файлов из Вашего .

sig файла или конвертации любого другого файла с возможностью печати в формат PDF.

Вот как это работает:

  • Установите PDF24 Creator
  • Откройте .sig файл с помощью ридера, который может открыть файл.
  • Распечатайте файл на виртуальном PDF24 PDF принтере.
  • Помощник PDF24 открывает окно, в котором Вы можете сохранять новый файл как PDF, отправлять по его email, факсу или редактировать.
  • Подробнее о PDF24 Creator

    Общие сведения о типах электронных подписей

    Условно выделяются три вариации электронных подписей (в плане того, как они закрепляются за подписываемым файлом):

    1. Присоединенная. Сертификат подписи при этом включен в сам подписанный файл и находится в отдельном, защищенном контейнере. При редактировании того самого файла сертификат удаляется.
    2. Отсоединенная. Сертификат подписи располагается в отдельном файле с расширением .sig. Однако в нем содержатся мета-данные, ссылающиеся на подписанный файл.
    3. Интегрированная. Сертификат является нераздельной частью подписанного файла, отредактировать такой документ не получится. Подобная схема часто используется в текстовых документах, создаваемых при помощи офисного пакета Microsoft Office или Adobe Acrobat. Открыть подписанный файл получится только через эти приложения при наличии установленного в системе сертификата удостоверяющего центра.

    Соответственно, открепленная и прикрепленная электронная подпись отличаются только тем, включены ли они в подписанный документ или нет. Но информация в них содержится идентичная – этот тот же ключ с указанием данных того, кто подписал документ, и специальный набор мета-данных, подтверждающий факт подписи при помощи легитимного ЭЦП.

    С юридической точки зрения никакой разницы между открепленной и присоединенной подписью нет. Отличаются они только удобством использования.

    Например, файл, подписанный отсоединенной подписью, доступен для просмотра даже без средств криптошифрования (установленная КриптоПРО CSP не понадобится).

    Открыть же документ с присоединенной подписью без них не получится (то же самое касается и интегрированных электронных подписей).

    Способ 1: блокнот

    Наиболее простым, хотя и недостаточно действенным способом, является использование стандартного Блокнота ОС Windows. Также можно воспользоваться и другими текстовыми редакторами.

    1. На клавиатуре нажмите сочетание клавиш «Win R», вставьте в текстовое поле представленный нами запрос и нажмите кнопку «ОК».

      notepad

    2. Открытие блокнота через Выполнить в ОС Виндовс

    3. С помощью верхней панели управления перейдите к разделу «Файл» и выберите пункт «Открыть».
    4. Переход к открытию файла в блокноте в ОС Виндовс

    5. Перейдите к месту расположения файла SIG Росреестра, выделите его и щелкните по кнопке «Открыть». Чтобы сделать файлы видимыми, в строке «Имя файла» надо изменить значение «Текстовые документы» на «Все файлы».
    6. Процесс открытия файла SIG в ОС Виндовс

    7. Теперь документ будет открыт, но в большинстве случаев информация находится в нечитабельном виде.

    Этот метод позволяет не только открывать файлы, но и редактировать содержимое. Однако после этого документ не будет распознаваться специальными программами.

    Читайте также:  Как настроить ЭЦП для госзакупок 2019

    Способ 1: криптоарм

    Популярная программа для просмотра как файлов подписей в формате SIG, так и подписанных ею документов. Является одним из лучших решений для работы с такого рода файлами.

    Загрузить пробную версию КриптоАРМ с официального сайта

    1. Откройте программу и используйте пункт меню «Файл», в котором выберите вариант «Просмотреть документ».
    2. Приступить к открытию файла SIG в КриптоАРМ

    3. Запустится «Мастер просмотра документов», нажмите в нём «Далее».
    4. Начать открытие файла SIG в КриптоАРМ через мастер просмотра

    5. Нажмите на кнопку «Добавить файл».
      Начать процесс загрузки файла SIG в КриптоАРМ через мастер просмотра
      Откроется окошко «Проводника», в котором проследуйте к папке с SIG-файлом, выберите его и нажмите «Открыть».
    6. Выбрать файл SIG для открытия в КриптоАРМ через мастер просмотра

    7. Вернувшись к окну «Мастера просмотра…», нажмите «Далее» для продолжения работы.
    8. Открыть файл SIG в КриптоАРМ через мастер просмотра

    9. В следующем окошке нажмите «Готово».
      Запустить просмотр файла SIG в КриптоАРМ через мастер просмотра
    10. Если программа обнаружила данные, которые соотносятся с SIG-подписью, откроется приложение, , установленное по умолчанию для просмотра подписанного файла (текстовый редактор, просмотрщик PDF, веб-браузер и прочее). Но если файл не найден, получите вот такое сообщение:

    Недостатком КриптоАРМ можно назвать коммерческую форму распространения с ограниченным сроком действия пробной версии.

    Способ 2: онлайн-сервис

    Изучить содержимое SIG-документа Росреестра вы можете с помощью специального онлайн-сервиса. Чтобы использовать сервис вам потребуется не только SIG-файл, но и документ с расширением XML.

    Перейти к сервису проверки

    1. Откройте страницу сервиса по представленной нами ссылке.
    2. Переход к онлайн-сервису росреестра

    3. В строке «Электронный документ» укажите файл с расширением XML на вашем компьютере.
    4. Процесс выбора документа xml росреестра на компьютере

    5. Те же действия повторите в блоке «Цифровая подпись», выбрав документ в форме SIG.
    6. Процесс выбора документа sig росреестра на компьютере

    7. Воспользуйтесь кнопкой «Проверить», чтобы запустить средство диагностики.

      Переход к просмотру файла с цифровой подписью росреестра

      После успешного завершения проверки вы получите соответствующее уведомление.

    8. Успешно проверенный файл росреестра

    9. Теперь кликните по ссылке «Показать в человекочитаемом формате» в рамках блока «Электронный документ».
    10. Информацию из открывшейся таблицы вы сможете распечатать или сохранить на компьютер. Менять как-либо представленные данные невозможно.

    В случае если при работе с данным онлайн-сервисом у вас возникают трудности, обратитесь за помощью в техподдержку ресурса.

    Способ 3: криптоарм

    Данное ПО является основным средством открытия и создания файлов SIG. При этом для просмотра файлов Росреестра вам потребуется приобрести специальную лицензию в магазине на официальном сайте. В целом процесс использования программы практически идентичен для любых файлов SIG.

    Перейти к официальному сайту КриптоАРМ

    Подготовка

    1. На странице скачивания ПО КриптоАРМ найдите блок «Дистрибутивы» и выберите наиболее приемлемый для вас вариант. Последняя актуальная версия позволяет использовать весь функционал программы бесплатно в течение 14 дней.
    2. Процесс скачивания программы на сайте КриптоАРМ

    3. Откройте загруженный файл и выполните установку. Если вы незнакомы с данной программой, лучше всего устанавливать ее в автоматическом режиме.
    4. Процесс установки программы КриптоАРМ

    5. Проверьте правильность установки путем запуска программы. В случае необходимости ее также следует настроить перед последующей работой.
    6. Процесс запуска программы КриптоАРМ

    Открытие

    1. На компьютере перейдите в папку c нужным вам SIG-файлом.
    2. Переход к папке с файлом SIG на компьютере

    3. Откройте его с помощью двойного нажатия левой кнопки мыши или контекстного меню.
    4. Процесс открытия файла SIG с помощью КриптоАРМ

    5. В процессе обработки не нужно ничего менять.
    6. Процесс обработки файла SIG в КриптоАРМ

    7. Для повышения уровня безопасности вы можете указать каталог, куда будут временно помещены файлы электронной подписи.
    8. Выбор каталога временного хранения в КриптоАРМ

    9. Если вы все сделали правильно, откроется окно «Управление подписанными данными».
    10. Успешно открытый файл SIG в КриптоАРМ

    11. В блоке «Дерево подписей» дважды кликните по нужной вам строке, чтобы открыть окно с более полной информацией.
    12. Просмотр информации о подписи в КриптоАРМ

    При использовании данного софта вы можете только просматривать файлы.

    Структура p7s файла

    приводится описание структуры файла содержащего сведения об ЭЦП.

       SignedData ::= SEQUENCE {
            version CMSVersion,
            digestAlgorithms DigestAlgorithmIdentifiers,
            encapContentInfo EncapsulatedContentInfo,
            certificates [0] IMPLICIT CertificateSet OPTIONAL,
            crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
            signerInfos SignerInfos }
    


    Согласно стандарту, файл с цифровой подписью в CSM формате должен содержать следующие поля:

    • CMSVersion — целое число, обозначающее версию используемого синтаксиса.
    • DigestAlgorithmIdentifiers — идентификатор одной или нескольких хеш-функций которые используются при вычислении подписей.
    • EncapsulatedContentInfo — собственно данные, которые были подписаны.
    • CertificateSet — набор всех необходимых сертификатов, необходимых для проверки подписей.
    • RevocationInfoChoices — набор списков отзыва сертификатов.
    • SignerInfos — структура данных содержащая информацию о подписанте.

    Для того чтобы понять как это выглядит на практике подпишем произвольный набор байт тестовым сертификатом и сгенерируем p7s файл с типом SignedData.

    Получившийся файл будет иметь ASN.1 структуру:

    Используя

    можно легко разобрать что скрывается за шестнадцатеричным кодом.

    SEQUENCE {
       OBJECTIDENTIFIER 1.2.840.113549.1.7.2 (signedData)
       [0] {
          SEQUENCE {
             INTEGER 0x01 (1 decimal)
             SET {
                SEQUENCE {
                   OBJECTIDENTIFIER 1.3.14.3.2.26 (id_sha1)
                   NULL 
                }
             }
             SEQUENCE {
                OBJECTIDENTIFIER 1.2.840.113549.1.7.1 (data)
                [0] {
                   OCTETSTRING 540065007300740020006D00650073007300610067006500
                }
             }
             [0] {
                SEQUENCE {
                   SEQUENCE {
                      [0] {
                         INTEGER 0x02 (2 decimal)
                      }
                      INTEGER 0x00D901B8B82F74CA0E8D84485A2265E1C3
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.1.5 (sha1WithRSAEncryption)
                         NULL 
                      }
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String 'Test CA'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                      }
                      SEQUENCE {
                         UTCTime '150429123320Z'
                         UTCTime '150506123320Z'
                      }
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.12 (title)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.11 (organizationalUnitName)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String '[TEST] Test'
                            }
                         }
                      }
                      SEQUENCE {
                         SEQUENCE {
                            OBJECTIDENTIFIER 1.2.840.113549.1.1.1 (rsaEncryption)
                            NULL 
                         }
                         BITSTRING 0x308189028181009298ED87B0E9DB66AB06D18E7B1B1740109881D306F3B5CAA7FCD4FFCBA22D9848F9
                         1E10250FC61C455DB7A6765760E7BFBFDB66E0D7FC1F0BA1991BEEC00DAA76EE9AB8C6855DD5C8FAAFF8FD1267D
                         E6F2DBE5C3EB1881F49B290AADDB285A646BA9314658CC5205AAC59625951F17FBC1E7AD79FF88B3B482A432B7E20
                         444B0203010001 : 0 unused bit(s)
                      }
                      [3] {
                         SEQUENCE {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.15 (keyUsage)
                               OCTETSTRING 030204F0
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.37 (extKeyUsage)
                               BOOLEAN TRUE
                               OCTETSTRING 302006082B0601050507030406082B06010505070302060A2B0601040182370A030C
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.14 (subjectKeyIdentifier)
                               OCTETSTRING 0414C7058A12A4B5B73EF4E5876C34B9BB32155E9691
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.35 (authorityKeyIdentifier)
                               OCTETSTRING 301680146AE7AB14AAE8B4C0A89E189D8168B1199FFB25B0
                            }
                         }
                      }
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.2.840.113549.1.1.5 (sha1WithRSAEncryption)
                      NULL 
                   }
                   BITSTRING 0x2007EFBF72C4EDB88FB4036AB8F90E1684897FB5C50E3117CF809DB1FBC1C68BCF3F9C34517621552930E9F
                   3B739F54CE081C1047067C50CAE0780B244CB183F0E6867BCEBAA95758F7C18465BAD963070CA630999548687270AD6DE3
                   6266A856453B5032259727F3E464360C2AAEC709EF70F13F5D66649ECFE7A5219D12740 : 0 unused bit(s)
                }
             }
             SET {
                SEQUENCE {
                   INTEGER 0x01 (1 decimal)
                   SEQUENCE {
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String 'Test CA'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                      }
                      INTEGER 0x00D901B8B82F74CA0E8D84485A2265E1C3
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.3.14.3.2.26 (id_sha1)
                      NULL 
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.2.840.113549.1.1.1 (rsaEncryption)
                      NULL 
                   }
                   OCTETSTRING 571404A32C015B61B957F002950A33E09475CA66DED090938AE21AFE6E0B39C9023850DE7C38482736E97
                   BFF6CB4DBB0605CCD787854525499A9C42B28D7BAAD19B26D0D43B6231B5EDCB23E70FFB4681D1C3B6FD5A40D508F55
                   457E047D2CC5C3803A2327D2E2B41A052ED13E3A1E9788D912AEB35649E93497EF4770E1669E
                }
             }
          }
       }
    }
    

    Начнем по порядку. Как видно из примера, p7s файл представляет собой одну большую структуру данных с типом SEQUENCE, включающую в себя все описанные в стандарте поля.Открывает блок тип данных OBJECTIDENTIFIER со значением 1.2.840.113549.1.7.2 (SignedData), который однозначно дает понять с какого рода объектом мы имеем дело.После чего один за другим следуют блоки:

    Помимо приведенных выше обязательных полей в объекте с типом SignedData могут использоваться опциональные поля, такие как signedAttributes, добавляемые в блок SignerInfo. SignedAttributes добавляются при вычислении хеш-значения от подписываемых данных, поэтому изменение этих полей делает подпись недействительной.Если блок SignedAttributes используется, то он должен содержать минимум два поля:

    • Поле описывающее тип данных, содержащихся в блоке contentInfo
    • Поле хранящее хеш-значение блока contentInfo

    Рассмотрим еще один пример p7s файла, созданного с использованием SignedAttributes.

    SEQUENCE {
       OBJECTIDENTIFIER 1.2.840.113549.1.7.2 (signedData)
       [0] {
          SEQUENCE {
             INTEGER 0x01 (1 decimal)
             SET {
                SEQUENCE {
                   OBJECTIDENTIFIER 1.3.14.3.2.26 (id_sha1)
                   NULL 
                }
             }
             SEQUENCE {
                OBJECTIDENTIFIER 1.2.840.113549.1.7.1 (data)
                [0] {
                   OCTETSTRING 540065007300740020006D00650073007300610067006500
                }
             }
             [0] {
                SEQUENCE {
                   SEQUENCE {
                      [0] {
                         INTEGER 0x02 (2 decimal)
                      }
                      INTEGER 0x00D901B8B82F74CA0E8D84485A2265E1C3
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.1.5 (sha1WithRSAEncryption)
                         NULL 
                      }
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String 'Test CA'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                      }
                      SEQUENCE {
                         UTCTime '150429123320Z'
                         UTCTime '150506123320Z'
                      }
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.12 (title)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.11 (organizationalUnitName)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String '[TEST] Test'
                            }
                         }
                      }
                      SEQUENCE {
                         SEQUENCE {
                            OBJECTIDENTIFIER 1.2.840.113549.1.1.1 (rsaEncryption)
                            NULL 
                         }
                         BITSTRING 0x308189028181009298ED87B0E9DB66AB06D18E7B1B1740109881D306F3B5CAA7FCD4FFCBA22D9848F91E102
                         50FC61C455DB7A6765760E7BFBFDB66E0D7FC1F0BA1991BEEC00DAA76EE9AB8C6855DD5C8FAAFF8FD1267DE6F2DBE5C
                         3EB1881F49B290AADDB285A646BA9314658CC5205AAC59625951F17FBC1E7AD79FF88B3B482A432B7E20444B0203010001 : 0 unused bit(s)
                      }
                      [3] {
                         SEQUENCE {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.15 (keyUsage)
                               OCTETSTRING 030204F0
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.37 (extKeyUsage)
                               BOOLEAN TRUE
                               OCTETSTRING 302006082B0601050507030406082B06010505070302060A2B0601040182370A030C
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.14 (subjectKeyIdentifier)
                               OCTETSTRING 0414C7058A12A4B5B73EF4E5876C34B9BB32155E9691
                            }
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.29.35 (authorityKeyIdentifier)
                               OCTETSTRING 301680146AE7AB14AAE8B4C0A89E189D8168B1199FFB25B0
                            }
                         }
                      }
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.2.840.113549.1.1.5 (sha1WithRSAEncryption)
                      NULL 
                   }
                   BITSTRING 0x2007EFBF72C4EDB88FB4036AB8F90E1684897FB5C50E3117CF809DB1FBC1C68BCF3F9C34517621552930E9F
                   3B739F54CE081C1047067C50CAE0780B244CB183F0E6867BCEBAA95758F7C18465BAD963070CA630999548687270AD6DE3
                   6266A856453B5032259727F3E464360C2AAEC709EF70F13F5D66649ECFE7A5219D12740 : 0 unused bit(s)
                }
             }
             SET {
                SEQUENCE {
                   INTEGER 0x01 (1 decimal)
                   SEQUENCE {
                      SEQUENCE {
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.3 (commonName)
                               UTF8String 'Test CA'
                            }
                         }
                         SET {
                            SEQUENCE {
                               OBJECTIDENTIFIER 2.5.4.10 (organizationName)
                               UTF8String 'Test'
                            }
                         }
                      }
                      INTEGER 0x00D901B8B82F74CA0E8D84485A2265E1C3
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.3.14.3.2.26 (id_sha1)
                      NULL 
                   }
                   [0] {
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.3 (contentType)
                         SET {
                            OBJECTIDENTIFIER 1.2.840.113549.1.7.1 (data)
                         }
                      }
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.5 (signingTime)
                         SET {
                            UTCTime '150429124539Z'
                         }
                      }
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.4 (messageDigest)
                         SET {
                            OCTETSTRING F21FA6C3A1A5756D74B11C65B7D38F7EB9F458B5
                         }
                      }
                   }
                   SEQUENCE {
                      OBJECTIDENTIFIER 1.2.840.113549.1.1.1 (rsaEncryption)
                      NULL 
                   }
                   OCTETSTRING 21D1762506C25894B98E6BD3BB11566719AEBF642B7A4541494C45F181880D936ABC28774BA575C53CC
                   1CB9551ABA21359FD3FA9013DE4242802674A1C304B2601183EA8015840EEF0D0D0312E361088725A255A869EEC394C
                   826712F684E0BA22806BD14404EA1DD80601A8C1E6598F1CCF907EE2891FB58683EEEF121D2312
                }
             }
          }
       }
    }
    

    Этот пример отличается от предыдущего наличием дополнительного блока:

    [0] {
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.3 (contentType)
                         SET {
                            OBJECTIDENTIFIER 1.2.840.113549.1.7.1 (data)
                         }
                      }
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.5 (signingTime)
                         SET {
                            UTCTime '150429124539Z'
                         }
                      }
                      SEQUENCE {
                         OBJECTIDENTIFIER 1.2.840.113549.1.9.4 (messageDigest)
                         SET {
                            OCTETSTRING F21FA6C3A1A5756D74B11C65B7D38F7EB9F458B5
                         }
                      }
                   }
    


    Именно в нем содержатся SignedAttributes. Помимо двух обязательных атрибутов при подписи был использован атрибут signedTime, который хранит время подписи.

    Читайте также:  Как приложить файл эцп

    Тэг <signature> — подпись xml

    Рекомендация «XML — Signature Syntax and Processing» определяет, что подпись
    и информация о ней должны содержаться в тэге <Signature>, который имеет
    следующие части (в основном они нужны для верификации подписи):

    • метод канонизации (CanonicalizationMethod) определяет конкретный набор
      правил для упрощения и структурирования экземпляра XML до подписания. Эти
      сведения обеспечивают надлежащий вид подписываемых данных, чтобы алгоритм
      проверки дал положительный результат, если содержательные данные не были изменены;
    • метод подписи (SignatureMethod) определяет алгоритм подписи дайджеста
      сообщения. Дайджест сообщения — это уникальная символьная строка фиксированного
      размера, она является результатом обработки данных с помощью односторонней
      хэш-функции, задаваемой методом дайджеста;
    • метод дайджеста (DigestMethod) — алгоритм составления дайджеста сообщения,
      подписываемого с помощью заданного метода подписи. Задание определенного метода
      дайджеста гарантирует обработку данных одним и тем же способом;
    • значение дайджеста (DigestValue) — собственно дайджест сообщения, то есть
      строка фиксированной длины, выдаваемая в результате обработки данных с помощью
      алгоритма дайджеста. Такая строка является уникальной и необратимой: ее практически
      невозможно получить из другого содержимого, как и невозможно воссоздать по
      ней исходные данные. Это как бы отпечаток пальцев для подписываемых данных;
      положительный результат сравнения значений дайджеста гарантирует целостность
      содержимого;
    • непосредственно подпись (SignatureValue) — это данные, получаемые после
      обработки методом подписи;
    • информация о открытом ключе (KeyInfo) — ключ для верификации ЭЦП. Точнее,
      не ключ, а сертификат, потому что в нем, кроме самого ключа, могут быть указаны
      имя владельца и алгоритм ЭЦП.

    Естественно, что это не исчерпывающая информация о том, что может содержаться
    в тэге <Signature>. Вот простейший пример такой подписи (листинг
    1).

    Формирование ЭЦП XML

    Следует отметить некоторые отличия процесса подписания XML от классического.
    Дело в том, что процесс подписания экземпляра XML начинается с канонизации,
    то есть с упрощения структуры данных. Как уже было сказано, эта процедура необходима
    для того, чтобы для одного и того же XML-документа, представленного по-разному,
    можно было корректно верифицировать ЭЦП.

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

    Чем открыть файл sig на компьютере – возможные варианты

    Чем открыть файл sig на компьютере – возможные вариантыПодобные документы в некоторых источниках носят название SignatureFile. Существует два варианта решения:

    • онлайн – с помощью одного из облачных сервисов;
    • имеющимися на девайсе программами/приложениями.

    Второй вариант достаточно прост. Чтобы открыть файл, имеющий расширение sig достаточно воспользоваться обычным Блокнотом. Он есть на всех операционных системах Виндоус. Очередность действий:

    1. Открыть на ПК текстовый файл (клик правой клавишей мыши на пустой части экрана, создать/текстовый документ).
    2. Он откроется в Блокноте. Выбрать вкладку Файл.
    3. Из выпавшего меню выбрать вариант «Открыть» (если предпочитаете работать с клавиатурой – воспользуйтесь сочетанием клавиш CTRL O).
    4. В открывшемся окне нужно найти файл, имеющий данное расширение и нажать кнопку «Открыть». Можно просто указать его путь.

    Вот самый простой ответ на вопрос о том, чем открыть файл sig на компьютере.

    Кроме того, можно воспользоваться менеджером компании Майкрософт, он же — MicrosoftOutlook. Она присутствует также в любом офисном пакете фирмы. Чаще всего пользователи предпочитают не углубляться в ее изучение, т.к. для электронной переписки в основном используют другие возможности программ ноутбуков или компьютеров.

    Внимание! Кроме электронной подписи, SignatureFile могут представлять собой файл для хранения изображения (растрового). В таком случае ни Блокнот, ни традиционное пакетное приложение не смогут его открыть. Для таких ситуаций существует также несколько вариантов (смотрите последние 2 пункта в следующем перечне).

    Для того чтобы открыть файл sig онлайн применяются следующие приложения:

    1. QUALCOMM Eudora (в операционных системах типа МАС).
    2. Crypto Pro.
    3. Крипто АРМ – помогает не только прочесть электронную подпись, но и зашифровать информацию. Программа платная, но ест тестовый период в 30 дней.
    4. Print Master.
    5. The Print Shop.
    6. The PrintView.

    Что может входить в Signature File:

    • имя отправителя;
    • специальный ключ (закодированный);
    • электронную подпись отправителя;
    • адрес электронного ящика отправителя;
    • электронную почту получателя;
    • контактный номер телефона для связи;
    • название компании;
    • должность в компании.

    Эти данные вносятся непосредственно в момент, когда создается то или иное письмо.

    Оцените статью
    ЭЦП Эксперт
    Добавить комментарий