Аттестация специалистов в области сохранения объектов культурного наследия

Аттестация специалистов в области сохранения объектов культурного наследия Сертификаты

На что влияет оценка по независимым измерениям?

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

Измерения проводятся и оцениваются отдельно от дисциплин, нацеленных на развитие данных компетенций.

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

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

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

Аттестация специалистов в области сохранения объектов культурного наследия

В соответствии со статьей 45 Федерального закона от 25.06.2002 № 73-ФЗ «Об объектах культурного наследия (памятниках истории и культуры) народов Российской Федерации» и статьей 5 Федерального закона от 26.05.1996 № 54-ФЗ «О Музейном фонде Российской Федерации и музеях в Российской Федерации» Министерство культуры Российской Федерации осуществляет полномочие по аттестации специалистов в области сохранения объектов культурного наследия (за исключением спасательных археологических полевых работ), в области реставрации иных культурных ценностей. 

ПОРЯДОК АТТЕСТАЦИИ СПЕЦИАЛИСТОВ В ОБЛАСТИ СОХРАНЕНИЯ ОБЪЕКТОВ КУЛЬТУРНОГО НАСЛЕДИЯ (ЗА ИСКЛЮЧЕНИЕМ СПАСАТЕЛЬНЫХ АРХЕОЛОГИЧЕСКИХ ПОЛЕВЫХ РАБОТ), В ОБЛАСТИ РЕСТАВРАЦИИ ИНЫХ КУЛЬТУРНЫХ ЦЕННОСТЕЙ (далее – Порядок) утвержден приказом Минкультуры России от 05.05.2021 № 474.

С февраля 2020 года аттестация проходит, в том числе в режиме ВИДЕОКОНФЕРЕНЦСВЯЗИ, в формате СОБЕСЕДОВАНИЯ. 

Аттестация проходит по категориям: ВЫСШАЯ, ПЕРВАЯ, ВТОРАЯ, ТРЕТЬЯ (обязательно указывать предполагаемую категорию в заявлении на аттестацию). 

Секции Аттестационной комиссии по аттестации специалистов в области сохранения объектов культурного наследия (за исключением спасательных археологических полевых работ), в области реставрации иных культурных ценностей: 

– СЕКЦИЯ ПРОИЗВОДСТВЕННЫХ СПЕЦИАЛЬНОСТЕЙ 

– СЕКЦИЯ АРХИТЕКТОРОВ И ИНЖЕНЕРОВ 

– СЕКЦИЯ СТАНКОВОЙ ТЕМПЕРНОЙ ЖИВОПИСИ 

– СЕКЦИЯ СТАНКОВОЙ МАСЛЯНОЙ ЖИВОПИСИ 

– СЕКЦИЯ МОНУМЕНТАЛЬНОЙ ЖИВОПИСИ 

– СЕКЦИЯ ДЕКОРАТИВНО-ПРИКЛАДНОГО ИСКУССТВА 

– СЕКЦИЯ ТКАНЕЙ 

– СЕКЦИЯ АРХИВНЫХ, БИБЛИОТЕЧНЫХ МАТЕРИАЛОВ И ПРОИЗВЕДЕНИЙ ГРАФИКИ 

СПЕЦИАЛЬНОСТИ, на которые в настоящее время проходит аттестация, размещены В ПРОФИЛЬНЫХ СЕКЦИЯХ! 

Для прохождения аттестации специалистов необходимо направить в адрес Минкультуры России в соответствии с Порядком соответствующий КОМПЛЕКТ ДОКУМЕНТОВ. 

ЗАЯВЛЕНИЕ НА АТТЕСТАЦИЮ

ЗАЯВЛЕНИЕ НА ОБРАБОТКУ ПЕРСОНАЛЬНЫХ ДАННЫХ

– КОПИЮ ПАСПОРТА; 

– ЗАВЕРЕННЫЕ В УСТАНОВЛЕННОМ ПОРЯДКЕ ДОКУМЕНТЫ ОБ ОБРАЗОВАНИИ; 

– ЗАВЕРЕННЫЕ В УСТАНОВЛЕННОМ ПОРЯДКЕ ТРУДОВУЮ КНИЖКУ/ТРУДОВЫЕ ДОГОВОРЫ (для высшей, первой, второй категорий); 

– МАТЕРИАЛЫ О ВЫПОЛНЕННЫХ РАБОТАХ (информация по представлению материалов в разделах профильных Секций). 

Категории получателей аттестации: ФИЗИЧЕСКИЕ ЛИЦА. 

Варианты направления документов для прохождения аттестации: 

ПОЧТОЙ: 125993, ГСП-3, Москва, Малый Гнездниковский пер., д. 7/6, стр. 1, 2. 

ЛИЧНО по адресу: Москва, Малый Гнездниковский пер. д. 7/6 стр. 1, 2 (почтовый ящик для корреспонденции). 

ВНИМАНИЕ КАНДИДАТАМ! При подаче документов на получение аттестации просим руководствоваться таблицей соответствия специальностей и направлений подготовки в соответствии с федеральными государственными образовательными стандартами.

Таблица соответствия направлений аттестации специалистов в области сохранения объектов культурного наследия (за исключением спасательных археологических полевых работ), подготовленная в соответствии с Федеральными государственными образовательными стандартами по состоянию на май 2021г.

По результатам аттестации в случае положительного решения аттестованному специалисту выдается СВИДЕТЕЛЬСТВО ОБ АТТЕСТАЦИИ И ПРИСВОЕНИИ СООТВЕТСТВУЮЩЕЙ КВАЛИФИКАЦИОННОЙ КАТЕГОРИИ. (Свидетельство направляется почтовым отправлением и дублируется в электронном виде). 

Данные о свидетельствах, подготовленных для выдачи аттестованным специалистам в 2021-2021 гг., будут обновляться по ссылке ниже. 

Свидетельства 2021-2020 гг. будут выдаваться в заявительном порядке, учитываю большое количество вернувшихся свидетельств. Для получения свидетельства необходимо написать на адрес электронной почты заявление в свободной форме, прикрепить копию паспорта, указать актуальный адрес для направления свидетельства. В таком же порядке будут выдавать вернувшиеся обратно в адрес Минкультуры России свидетельства текущего года.

СВИДЕТЕЛЬСТВА СПЕЦИАЛИСТОВ, АТТЕСТОВАННЫХ В 2021-2021 ГГ., ПОДГОТОВЛЕННЫЕ ДЛЯ ВЫДАЧИ.  

Минкультуры России ведет РЕЕСТР АТТЕСТОВАННЫХ СПЕЦИАЛИСТОВ

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

Образовательные учреждения высшего и среднего профессионального образования в сфере сохранения объектов культурного наследия:

Высшие учебные заведения

Среднее профессиональные учебные заведения

Письмо Заместителя министра С.Г.Обрывалина от 11.07.2021г. № 277-01.1-39-СО 

Библиографическая ссылка

Баранова Т.А., Кобичева А.М., Токарева Е.Ю. ВЛИЯНИЕ МЕЖДУНАРОДНОГО ОНЛАЙН-ПРОЕКТА X-CULTURE НА РАЗВИТИЕ ЭМОЦИОНАЛЬНОГО ИНТЕЛЛЕКТА СТУДЕНТОВ // Современные наукоемкие технологии. – 2021. – № 1.
– С. 69-76;

Как и когда вышка проверяет цифровые навыки студентов?

Для студентов набора 2021/2022 года введено независимое измерение ключевого образовательного результата по освоению цифровых навыков. Все студенты, поступающие в 2021 году и позже, во время обучения должны будут подтвердить, что освоили три сквозные цифровые компетенции на требуемый уровень.

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

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

Какие цифровые компетенции обязательно осваивают студенты?

Вышка выделяет три сквозных компетенции, которые считает необходимыми для освоения каждым высококвалифицированным специалистом:

  1. Цифровая грамотность: для использования цифровых технологий и инструментов работы с информацией с целью удовлетворения личных, образовательных и профессиональных потребностей, коллективной работы в цифровой среде, учитывая основы безопасности, этические и правовые нормы.
  2. Алгоритмическое мышление и программирование (Программирование): от формализованной постановки задач и разработки алгоритма решения до использования современных инструментов программирования на том или ином уровне.
  3. Анализ данных и методы искусственного интеллекта (Анализ данных): от использования математических методов и моделей для извлечения знаний до решения профессиональных задач и разработки новых подходов.

Для компетенций по программированию и анализу данных выделены три основных уровня*: начальный/базовый/продвинутый.

По цифровой грамотности уровень единый: навыки цифровой грамотности должны быть сформированы у всех студентов.

Про сертификаты:  Приказ Минюста РФ от 03.08.2009 N 244 "Об утверждении формы свидетельства о государственной регистрации некоммерческой организации" | ГАРАНТ

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

Книга rizzoli sneakers x culture: collab 9780847865789

Розничный магазин

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

Гарантийный срок на товары составляет 60 дней. Претензии по качеству товара предъявляются в магазине по месту покупки.

Интернет-магазин

Возврат товара, приобретенного в интернет-магазине курьерской доставкой по Москве, осуществляется только по адресу: Москва, Петровский бульвар, дом 21, на кассе магазина.

Не подошедший товар необходимо отправить нам обратно через Почту России или EMS по адресу
Куда: 125124, Москва, ул. Расковой, дом 14
кому: ООО “БШ Стор”

К возврату принимаются изделия в товарном виде: без следов эксплуатации, с заводскими бирками и в оригинальной упаковке.

Подробнее информация в разделе Возврат.

Номенклатура сертификатов

Давайте рассмотрим, какие сертификаты X.509 встречаются в природе, если рассматривать их по расположению в

пищевой

цепочке доверия.

По степени

крутизны

дороговизны и надежности сертификаты делятся на 3 вида:

DVOVEV

Откуда берутся сертификаты?

Еще совсем недавно было всего 2 способа заполучить X.509 сертификат, но времена меняются и с недавнего времени есть и третий путь.

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

    not trusted

  2. Приобрести сертификат в УЦ. Это будет стоить денег в зависимости от различных его характеристик и возможностей, указанных выше.
  3. Получить бесплатный сертификат LetsEncrypt, доступны только самые простые DV сертификаты.

Для первого сценария достаточно пары команд и чтобы 2 раза не вставать создадим сертификат с алгоритмом эллиптических кривых. Первым шагом нужно создать закрытый ключ. Считается, что шифрование с алгоритмом эллиптических кривых дает больший выхлоп, если измерять в тактах CPU, либо байтах длины ключа. Поддержка ECC не определена однозначно в TLS < 1.2.

openssl ecparam -name secp521r1 -genkey -param_enc explicit -out private-key.pem

Далее, создает CSR — запрос на подписание сертификата.

openssl req -new -sha256 -key private.key -out server.csr -days 730

И подписываем.

openssl x509 -req -sha256 -days 365 -in server.csr -signkey private.key -out public.crt

Результат можно посмотреть командой:

openssl x509 -text -noout -in public.crt

Openssl имеет огромное количество опций и команд. Man страница не очень полезна, справочник удобнее использовать так:

openssl -help
openssl x509 -help
openssl s_client -help

Ровно то же самое можно сделать с помощью java утилиты keytool.

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Следует серия вопросов, чтобы было чем запомнить поля owner и issuer

What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU correct?

Конвертируем связку ключей из проприетарного формата в PKCS12.

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12

Смотрим на результат:

keytool -list -v -alias selfsigned -storepass password -keystore keystore.jks
Alias name: selfsigned
Creation date: 20.01.2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Issuer: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Serial number: 1f170cb9
Valid from: Sat Jan 20 18:33:42 MSK 2021 until: Tue Jan 15 18:33:42 MSK 2021
Certificate fingerprints:
     MD5:  B3:E9:92:87:13:71:2D:36:60:AD:B5:1F:24:16:51:05
     SHA1: 26:08:39:19:31:53:C5:43:1E:ED:2E:78:36:43:54:9B:EA:D4:EF:9A
     SHA256: FD:42:C9:6D:F6:2A:F1:A3:BC:24:EA:34:DC:12:02:69:86:39:F1:FC:1B:64:07:FD:E1:02:57:64:D1:55:02:3D

Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 30 95 58 E3 9E 76 1D FB   92 44 9D 95 47 94 E4 97  0.X..v...D..G...
0010: C8 1E F1 92                                        ....
]
]

Значению ObjectId: 2.5.29.14 соответствует определение ASN.1, согласно RFC 3280 оно всегда non-critical. Точно так же можно узнать смысл и возможные значения других ObjectId, которые присутствуют в сертификате X.509.

subjectKeyIdentifier EXTENSION ::= {
    SYNTAX SubjectKeyIdentifier
    IDENTIFIED BY id-ce-subjectKeyIdentifier
}

SubjectKeyIdentifier ::= KeyIdentifier

Словарный запас

Определение X.509 сертификатов есть в архиве ITU-T

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signatureValue       BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  EXPLICIT Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3

Для того, чтобы досконально понять обозначения и синтаксис, придется читать спеки X.680 редакции 2008 г., где есть полное описание ASN.1. В понятиях ASN.1SEQUENCE обозначает примерно то же самое, что и struct в Си. Это может сбить с толку, ведь по семантике оно должно было соответствовать скорее массиву. И тем не менее.

Стандарт X.690 определяет следующие правила кодирования структур данных, созданных в соответствии с ASN.1: BER (Basic Encoding Rules), CER (Canonical Encoding Rules), DER (Distinguished Encoding Rules). Есть даже XER (XML Encoding Rules), который на практике мне никогда не встречался.

Да, но для чего нужны сертификаты X.509, которые доставляют столько головной боли? Первая и основная функция сертификатов X.509 — служить хранилищем открытого или публичного ключа PKI (public key infrastructure). К этой функции нареканий нет, а вот со второй не все так однозначно.

Вторая функция сертификатов X.509 заключается в том, чтобы предъявитель сего был принят человеком, либо программой в качестве истинного владельца некоего цифрового актива: доменного имени, веб сайта и пр. Это получается по-разному, далеко не все сертификаты имеют высокую ликвидность, если пользоваться финансовой терминологией.

Сценарий №1 — найти следующего в связке

Связка сертификатов — Объединение нескольких X.509 сертификатов в один файл, чаще всего в формате PEM. Связка передается по сети в момент протокола рукопожатия SSL/TLS.

Самый сок начинается, когда имеете дело со связкой сертификатов, a. k. a certificate chain. Часто просматривая лапшу в связке ключей jks непросто понять как найти родительский сертификат, когда там россыпь новых и старых сертификатов на несколько доменных имен.

Часть 1. самоподписанный сертификат

Для начала рассмотрим вариант самоподписанного сертификата корневого уровня.

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


Сделать это можно с помощью библиотеки Bouncy Castle, следующим образом:

private void button1_Click(object sender, EventArgs e)
        {            

            var KeyGenerate = new RsaKeyPairGenerator();

            KeyGenerate.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));

            AsymmetricCipherKeyPair kp = KeyGenerate.GenerateKeyPair();

            var gen = new X509V3CertificateGenerator();

            var certName = new X509Name("CN=CA");
            var serialNo = new BigInteger("1",10);            

            gen.SetSerialNumber(serialNo);
            gen.SetSubjectDN(certName);            
            gen.SetIssuerDN(certName);
            gen.SetNotAfter(DateTime.Now.AddYears(100));
            gen.SetNotBefore(DateTime.Now);
            gen.SetSignatureAlgorithm("SHA1WITHRSA");            
            gen.SetPublicKey(kp.Public);     
            var myCert = gen.Generate(kp.Private);
            byte[] result = DotNetUtilities.ToX509Certificate(myCert).Export(X509ContentType.Cert);

            FileStream fs = new FileStream("D:\test1.crt", FileMode.CreateNew);
            fs.Write(result, 0, result.Length);
            fs.Flush();
            fs.Close();
        }

В результате выполнения данной процедуры будет создан стандартный x.509 сертификат, который, будучи открытым с помощью hex-редактора, выглядит вот таким чудесным образом:

30 82 01 8F 30 81 F9 A0  03 02 01 02 02 01 01 30
0D 06 09 2A 86 48 86 F7  0D 01 01 05 05 00 30 0D
31 0B 30 09 06 03 55 04  03 0C 02 43 41 30 20 17
0D 31 33 30 39 31 35 31  35 33 35 30 32 5A 18 0F
32 31 31 33 30 39 32 32  31 35 33 35 30 32 5A 30
0D 31 0B 30 09 06 03 55  04 03 0C 02 43 41 30 81
9F 30 0D 06 09 2A 86 48  86 F7 0D 01 01 01 05 00
03 81 8D 00 30 81 89 02  81 81 00 8D 80 B5 8E 80
8E 94 D1 04 03 6A 45 1A  54 5E 7E EE 6D 0C CB 0B
82 03 F1 7D C9 6F ED 52  02 B2 08 C3 48 D1 24 70
C3 50 C2 1C 40 BC B5 9D  F8 E8 A8 41 16 7B 0B 34
1F 27 8D 32 2D 38 BA 18  A5 31 A9 E3 15 20 3D E4
0A DC D8 CD 42 B0 E3 66  53 85 21 7C 90 13 E9 F9
C9 26 5A F3 FF 8C A8 92  25 CD 23 08 69 F4 A2 F8
7B BF CD 45 E8 19 33 F1  AA E0 2B 92 31 22 34 60
27 2E D7 56 04 8B 1B 59  64 77 5F 02 03 01 00 01
30 0D 06 09 2A 86 48 86  F7 0D 01 01 05 05 00 03
81 81 00 0A 1C ED 77 F4  79 D5 EC 73 51 32 25 09
61 F7 00 C4 64 74 29 86  5B 67 F2 3D A9 39 34 6B
3C A9 92 B8 BF 07 13 0B  A0 9B DF 41 E2 8A F6 D3
17 53 E1 BA 7F C0 D0 BC  10 B7 9B 63 4F 06 D0 7B
AC C6 FB CE 95 F7 8A 72  AA 10 EA B0 D1 6D 74 69
5E 20 68 5D 1A 66 28 C5  59 33 43 DB EE DA 00 80
99 5E DD 17 AC 43 36 1E  D0 5B 06 0F 8C 6C 82 D3
BB 3E 2B A5 F1 94 FB 53  7B B0 54 22 6F F6 4C 18
1B 72 1C

Тот же самый сертификат, но уже открытый с помощью стандартных средств windows:

Имя сертификата	CA
Издатель	CA
Версия сертификата	3
Серийный номер	0x1
Недействителен до...	15.09.2021 15:35:00 GMT
Недействителен после...	22.09.2113 15:35:00 GMT
Цифровая подпись (SHA-1)	F9 AD 58 B5 50 3D F6 36 5E B8 89 D4 DC C8 5F CC 25 4B 93 A2
Цифровая подпись (SHA-256)	42 02 24 20 4E 8F 3A 3E 31 38 88 E5 C5 E7 C3 03 14 3A A6 52 EA 78 B9 77 42 5B 99 EB 4B BA 23 82
Открытый ключ(1024 битный)		Алгоритм открытого ключа	rsaEncryption
Модуль	
00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
10: EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
20: C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
30: 41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
40: E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
50: 7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
60: 08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
70: 92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
Экспонента	01 00 01                                       

Подпись		Алгоритм подписи	sha1WithRSAEncryption
Подпись	
00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
10: C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
20: B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
30: BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
40: CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
50: 5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
60: 17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
70: A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C


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

Про сертификаты:  Профессиональная переподготовка - Обучение по проектированию зданий: архитектурная переподготовка

Прежде всего, нужно отметить, что файл *.crt хранит информацию о сертификате в закодированном виде. Для кодирования применяется особый язык, называемый ASN.1.

ASN.1 — стандарт записи, описывающий структуры данных для представления, кодирования, передачи и декодирования данных. Wikipedia

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

Однако ASN.1 разрабатывался в те светлые времена, когда «640 КБ должно было хватать каждому» и тратить место на такую громоздкую запись не было никакой возможности. Поэтому, в целях экономии места, а также более удобной обработки хранимой в ASN.1-форме информации, был разработан специальный метод кодирования — DER.

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

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

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

Зная как кодируется каждый из этих типов, мы можем попытаться распарсить наш *.crt файл.

3082 01 8F3081 F9A0030201 02 0201 01 30
0D0609 2A 86 48 86 F7 0D 01 01 05 0500300D
310B30090603 55 04 03 0C02 43 41 302017
0D 31 33 30 39 31 35 31 35 33 35 30 32 5A 180F
32 31 31 33 30 39 32 32 31 35 33 35 30 32 5A 30
0D310B30090603 55 04 03 0C02 43 41 3081
9F 300D0609 2A 86 48 86 F7 0D 01 01 01 0500
0381 8D 00 3081 890281 81 00 8D 80 B5 8E 80
8E 94 D1 04 03 6A 45 1A 54 5E 7E EE 6D 0C CB 0B
82 03 F1 7D C9 6F ED 52 02 B2 08 C3 48 D1 24 70
C3 50 C2 1C 40 BC B5 9D F8 E8 A8 41 16 7B 0B 34
1F 27 8D 32 2D 38 BA 18 A5 31 A9 E3 15 20 3D E4
0A DC D8 CD 42 B0 E3 66 53 85 21 7C 90 13 E9 F9
C9 26 5A F3 FF 8C A8 92 25 CD 23 08 69 F4 A2 F8
7B BF CD 45 E8 19 33 F1 AA E0 2B 92 31 22 34 60
27 2E D7 56 04 8B 1B 59 64 77 5F 0203 01 00 01
300D0609 2A 86 48 86 F7 0D 01 01 05 050003
81 81 00 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09
61 F7 00 C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B
3C A9 92 B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3
17 53 E1 BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B
AC C6 FB CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69
5E 20 68 5D 1A 66 28 C5 59 33 43 DB EE DA 00 80
99 5E DD 17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3
BB 3E 2B A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18
1B 72 1C

Про сертификаты:  Часть 1: Подлежит ли лицензированию "скупка" автомобильных катализаторов?

Преобразуя байты-идентификаторы типов и убирая байты описывающие длину блоков получим следующую структуру:

SEQUENCE(3 elem)
	SEQUENCE(7 elem)
		[0](1 elem)
			INTEGER 2
		INTEGER 1
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			UTCTime 13-09-15 15:35:02 UTC
			GeneralizedTime 2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER 1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER 00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
						        EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
						        C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
						        41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
						        E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
						        7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
						        08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
						        92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
					INTEGER 65537
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
	BIT STRING 00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
		           C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
		           B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
		           BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
		           CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
		           5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
		           17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
		           A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C


Это уже более похоже на то, что мы видим при открытии сертификатов в браузере или Windows. Пробежимся по каждому элементу:

Важным моментом, о котором стоит особенно упомянуть являются данные, для которых вычисляется подпись. Интуитивно может показаться, что подписываются все данные идущие до последнего поля BIT STRING, содержащего подпись. Но на самом деле это не так. В стандарте x.

	SEQUENCE(7 elem)
		[0](1 elem)
			INTEGER 2
		INTEGER 1
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			UTCTime 13-09-15 15:35:02 UTC
			GeneralizedTime 2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER 1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER 00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
						        EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
						        C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
						        41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
						        E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
						        7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
						        08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
						        92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
					INTEGER 65537

Т.о. если перед вами будет стоять задача проверить ЭЦП x.509 сертификата, то для этого сперва необходимо извлечь TBS-сертификат.

Еще одно замечание относится к отпечатку сертификата. Как видите сам сертификат не содержит никаких сведений об отпечатке. Это объясняется тем, что отпечаток представляет собой обычное хеш-значение SHA-1 от всего файла сертификата, со всеми его полями, включая подпись издателя. Поэтому хранить отпечаток не обязательно, можно просто вычислять хеш при каждом просмотре сертификата.

Часть 2. сертификат 2-го уровня


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

Заключение

Тех усидчивых людей, которые продрались сквозь все эти ASN.1 выражения и шестнадцатеричные наборы данных, я хотел бы поблагодарить за прочтение. Надеюсь вам было хоть немного интересно. И стало чуточку понятнее, что же такое на самом деле X.509 сертификат.

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

  1. RFC5280 — спецификация x.509 сертификата и списка отзывов сертификатов.
  2. Руководство по выживанию — SSL/TLS и сертификаты X.509
  3. ASN.1 простыми словами, вариант статьи для хабра
  4. on-line утилита для декодирования DER-файлов
  5. Первичный стандарт ITU-T X.509 ( русский перевод). Спасибо ystr за ссылку.
Оцените статью
Мой сертификат
Добавить комментарий