Что означает подписание файлов сертификатом

Обновлено: 03.07.2024

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

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

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

Подпись на основе сертификата в формате PDF

Подпись на основе сертификата в формате PDF

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

Параметры сертификации обеспечивают более высокий уровень контроля над документами, чем функция "Подписать с сертификатом". Для документов, требующих сертификации, вы должны заверить документы, прежде чем другие подпишут их. Если документ уже подписан, параметры Certify отключены. Когда вы заверяете документ, вы можете контролировать типы изменений, которые могут вносить другие люди. Вы можете сертифицировать с отображением подписи или без нее.

Подписать сертификатом

Когда вы подписываете сертификатом, подпись считается подписью утверждения.

Подписи, сделанные с помощью параметров "Сертифицировать" или "Подписать с сертификатом", соответствуют стандартам защиты данных, установленным Европейским институтом стандартов в области телекоммуникаций (ETSI). Кроме того, оба типа подписи соответствуют стандарту расширенной электронной подписи PDF (PAdES). Acrobat и Reader позволяют изменить формат подписи по умолчанию на формат CAdES. Этот параметр соответствует части 3 стандарта PAdES. Возможность отметок времени и встроенная поддержка долгосрочной проверки подписей (представленная в Acrobat 9.1) соответствуют части 4 стандарта PAdES. Формат подписи по умолчанию при соответствующей настройке соответствует части 2 стандарта PAdES. Вы можете изменить метод или формат подписи по умолчанию на панели «Подписи» диалогового окна «Настройки». В разделе "Создание и внешний вид" нажмите "Еще".

Вы можете ускорить процесс подписания и оптимизировать свои результаты, предварительно выполнив следующие приготовления.

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

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

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

Подробнее обо всех параметрах настройки корпоративных параметров см. в Руководстве по цифровым подписям.

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

Настройка параметров подписи

Настройка рабочих процессов подписи с использованием начальных значений

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

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

Форматы подписи в Acrobat

Форматы подписи

А. Текстовая подпись Б. Графическая подпись

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

Нажмите правой кнопкой мыши на поле подписи и выберите "Подписать документ" или "Сертифицировать видимой подписью".

Вы также можете создать внешний вид, используя настройки подписи: «Правка» > «Установки» > «Подписи» (Windows) или Acrobat > «Установки» > «Подписи» (Mac OS).

В меню "Внешний вид" диалогового окна "Подпись" выберите "Создать новый внешний вид".

В диалоговом окне «Настройка внешнего вида подписи» введите имя создаваемой подписи. Когда вы подписываете, вы выбираете подпись по этому имени. Поэтому используйте короткий описательный заголовок.

Отображает только значок по умолчанию и другую информацию, указанную в разделе "Настроить текст".

Отображает изображение с вашей подписью на основе сертификата. Выберите этот параметр, чтобы включить изображение вашей рукописной подписи. Чтобы импортировать файл изображения, нажмите «Файл», нажмите «Обзор» и выберите файл изображения.

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

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

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

(Необязательно) Если в диалоговом окне есть раздел «Дополнительная информация о подписи», укажите причину подписания документа, место и вашу контактную информацию. Эти параметры доступны только в том случае, если вы установили их в качестве своих предпочтений в диалоговом окне «Настройки создания и внешнего вида» («Правка» > «Установки» > «Подписи» > «Создание и внешний вид» > «Дополнительно»).

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

Сертификат подписи кода — это цифровой сертификат, который содержит информацию, полностью идентифицирующую объект, и выдается центром сертификации, таким как GlobalSign. Цифровой сертификат связывает личность организации с открытым ключом, который математически связан с парой закрытых ключей. Использование систем с закрытыми и открытыми ключами называется инфраструктурой открытых ключей (PKI). Разработчик подписывает код своим закрытым ключом, а конечный пользователь использует открытый ключ разработчика для проверки личности разработчика.

Подписание кода с помощью сертификата подписи кода

Цифровой сертификат помечен для конкретного использования кода с цифровой подписью, в PKI это называется использованием ключа. Ниже приведен пример цифрового сертификата GlobalSign, помеченного для подписи кода.

При применении цифровой подписи также записывается отметка времени. Эта функция метки времени гарантирует, что подписанный код остается действительным даже после истечения срока действия цифрового сертификата. Если вы не добавляете дополнительный код или не вносите изменения в код, новую подпись применять не нужно (даже если срок действия цифрового сертификата, использованного для первоначальной подписи кода, истек).

Подпись кода помогает доказать

Источник контента:
Подпись кода определяет, что программное обеспечение или приложение исходит из определенного источника (разработчика или подписавшего). Когда программное обеспечение загружается из Интернета, браузеры отображают предупреждающее сообщение о возможных опасностях загрузки данных или отображают предупреждение «неизвестный издатель». Подписание кода удаляет предупреждения системы безопасности «Неизвестный издатель» и определяет имя издателя (например, название организации).

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

Я немного новичок в вопросах безопасности и пытаюсь правильно понять принципы.

Мне интересно, что именно означает "подписание" файла (сертификата, apk-файла или чего-то еще)?

  1. Подписываем ли мы весь файл, чтобы он стал как бы зашифрованным?
  2. Есть ли фрагмент простого текста, который мы подписываем и передаем, например, через почтовый индекс, и позволяем принимающей стороне проверить этот фрагмент на основе определенного протокола, прежде чем двигаться дальше?
  3. Или что-то еще?

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

Мы будем очень признательны за любые идеи.


"подписание ключей" не является полезным для вашего понимания. «Цифровая подпись» — это то, о чем вы спрашиваете.

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

"Но я также видел/слышал несколько примеров, когда вы подписываете только часть текста, а не весь текст." Есть ли у вас какие-либо ссылки или ссылки на такие вещи? Это кажется ужасно странным.

@DavidSchwartz В API принято подписывать ключевые части запроса, а также метку времени и одноразовый номер, потому что: а) это снижает риск того, что кодировка передачи сделает подпись недействительной; и б) он удаляет ловушку-22, когда вам нужно разместить подпись внутри запроса, но вам нужно сгенерировать полный запрос, прежде чем вы сможете его подписать.

5 ответов 5

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

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

Кроме того, не совершайте ошибку, делая из RSA вывод о том, что любую схему шифрования можно адаптировать как алгоритм цифровой подписи. Такая адаптация работает для RSA и El Gamal, но не в целом.

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

Я буду использовать RSA в качестве примера алгоритма. Сначала немного о том, как работает RSA. Шифрование RSA включает в себя получение сообщения, представленного в виде целого числа, и возведение его в степень известного значения (чаще всего это значение равно 3 или 65537). Затем это значение делится на общедоступное значение, уникальное для каждого открытого ключа. Остальное — зашифрованное сообщение. Это называется операцией по модулю. Подписание с помощью RSA немного отличается. Сообщение сначала хэшируется, хеш-дайджест возводится в степень секретного числа и, наконец, делится на такое же уникальное общедоступное значение в открытом ключе. Остальное - подпись. Это отличается от шифрования тем, что число возводится не в степень известного общедоступного значения, а в степень секретного значения, которое известно только подписывающему.

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

Используя учебник RSA в качестве примера асимметричной криптографии, шифрование сообщения m в зашифрованный текст c выполняется путем вычисления c ≡ me (mod N)< /em>, где e — общедоступное значение (обычно простое число Ферма из соображений эффективности), а N — несекретное произведение двух секретных простых чисел. Подписание хэша m, с другой стороны, включает в себя вычисление s ≡ md (mod N), где d — модульная инверсия e, являющееся секретным значением, полученным из секретных простых чисел. Это гораздо ближе к расшифровке, чем к шифрованию, хотя вызов расшифровки подписи все же не совсем правильный. Обратите внимание, что другие асимметричные алгоритмы могут использовать совершенно другие методы. RSA — это просто достаточно распространенный алгоритм, который можно использовать в качестве примера.

Безопасность подписи обусловлена ​​тем, что d трудно получить, не зная секретных простых чисел. На самом деле, единственный известный способ получить d (или значение, эквивалентное d) из N — это разложить N на множители. em> на составляющие его простые числа, p и q, и вычислить d = e-1 mod (p-1)(q-1) . Считается, что факторизация очень больших целых чисел является неразрешимой проблемой для классических компьютеров. Это позволяет легко проверить подпись, поскольку для этого нужно определить, s e ≡ m (mod N). Однако для создания подписи требуется знание закрытого ключа.

Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Access для Microsoft 365 Visio Plan 2 Excel 2021 Word 2021 PowerPoint 2021 Access 2021 Visio Professional 2021 Visio Standard 2021 Excel 2019 Word 2019 PowerPoint 2019 Access 2019 Visio Professional 2019 Visio Standard 2019 Excel 2016 Word 2016 PowerPoint 2016 Access 2016 Visio Professional 2016 Visio Standard 2016 Excel 2013 Word 2013 PowerPoint 2013 Access 2013 Visio Professional 2013 Visio 2013 Excel 2010 Word 2010 PowerPoint 2010 Access 2010 Visio Starter 2010 Visio Standard 10 Visio Standard 2010 Office 2 0.20 Начальный 10 Visio Standard 2010 Office 20.20 Меньше

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

Что вы хотите сделать?

Что такое цифровая подпись?

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

Ниже приведен пример строки подписи.


Сертификат подписи и центр сертификации

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

Примечание. В этой статье вы можете узнать больше об открытых и закрытых ключах.

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

Гарантии цифровой подписи

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

Подлинность Подписавшаяся сторона подтверждается как подписывающая сторона.

Целостность Контент не был изменен или подделан с момента его цифровой подписи.

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

Нотариальное удостоверение Подписи в файлах Microsoft Word, Microsoft Excel или Microsoft PowerPoint, которые имеют отметку времени с помощью защищенного сервера отметок времени, при определенных обстоятельствах имеют силу нотариального заверения.

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

Цифровая подпись действительна.

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

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

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

Сертификат, связанный с цифровой подписью, выдается подписывающему издателю авторитетным центром сертификации (ЦС).

Вот все, что вы хотели (и не хотели) знать о сертификатах подписи кода

Сертификат SSL, сертификат подписи кода, сертификат безопасности электронной почты, сертификат подписи документа... мир интернет-безопасности полон всевозможных сертификатов, и совершенно очевидно, что вы можете запутаться в огромном количестве из них. Но не беспокойтесь, так как мы прикрыли это для вас. К концу этой статьи у вас будет ответ на вопрос «что такое сертификат подписи?» вопрос. И самое приятное то, что вам не нужно быть очень опытным, чтобы понять это. Итак, приступим!

Давайте вернемся в прошлое…

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

Но это время давно прошло. Сегодня мы проводим значительную часть нашей жизни в Интернете и покупаем программное обеспечение в Интернете. Теперь в этом есть свои плюсы и минусы. Это большое преимущество, что нам не нужно ходить в магазин каждый раз, когда мы хотим купить программное обеспечение. Однако покупка программного обеспечения в Интернете сопряжена со значительным риском для безопасности. Мошенник может заставить вас загрузить копию нелегального программного обеспечения. И не только это, они могут нарушить безопасность вашего компьютера/системы, если установлено фиктивное программное обеспечение.

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

Сэкономьте 58 % на сертификатах для подписи кода Comodo

Хотите подписать свое программное обеспечение, чтобы убедить пользователей и упростить установку? Мы продаем все сертификаты для подписи кода Comodo со скидкой до 58 %.
Просмотреть сертификаты для подписи кода

Зачем вообще используется сертификат подписи кода?

Когда вы хотите установить программное обеспечение или приложение, с точки зрения безопасности очень важными становятся две вещи. Эти две вещи — легитимность и честность. Легитимность означает, что программное обеспечение создано надежным разработчиком/издателем. А целостность означает, что код программного обеспечения/приложения не был изменен с момента его разработки или публикации. Эти две проблемы являются основными в отношении программного обеспечения/приложений, и сертификат подписи кода решает обе эти проблемы.

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

  • Предотвращает несанкционированные попытки изменения данных кода/программного обеспечения.
  • Это помогает пользователю идентифицировать программное обеспечение/приложение.

Сертификаты подписи кода помогают идентифицировать ваше программное обеспечение по вашей подписи, названию вашей компании и отметке времени (если она есть).

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

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

Как работает сертификат подписи кода?

Сертификат для подписи кода выполняет те же функции, что и сертификат SSL/TLS. Он работает на технологии, известной как «криптография с открытым ключом» или «асимметричное шифрование». В этом методе используются два криптографических ключа, которые работают в паре. Эти ключи известны как «открытый ключ» и «закрытый ключ». Оба эти ключа разные, но математически они связаны.

Когда вы отправляете запрос на сертификат подписи кода, генерируются эти два ключа. Закрытый ключ, как следует из названия, должен храниться в секрете. Он хранится на компьютере заявителя и не передается в центр сертификации. С другой стороны, открытый ключ отправляется в центр сертификации, после чего выдается ваш сертификат.

Принцип работы этих двух ключей для сертификата подписи кода аналогичен сертификату SSL/TLS.Как и в SSL, закрытый ключ используется для применения цифровой подписи к программному обеспечению, а открытый ключ используется для проверки подлинности лица, подписавшего сертификат SSL.

Как выполнить подпись кода: пошаговый процесс

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

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

Типы сертификатов подписи кода

Возможно, вы были удивлены, увидев заголовок, но существует два типа сертификатов подписи кода. Первый — самый простой — называется «Стандартный сертификат подписи кода», а второй — «Сертификат подписи кода EV».

Если вы используете стандартный сертификат подписи кода, Microsoft SmartScreen будет продолжать показывать предупреждения вашим пользователям до тех пор, пока вы не получите определенное количество загрузок и не сведете к минимуму отчеты об ошибках. Напротив, вы не получите этих ошибок, если подпишете свой код с помощью сертификата подписи кода EV (расширенной проверки).

Хотя вы можете выбрать тот, который вам нужен, в зависимости от ваших требований и бюджета, нет никаких сомнений в том, стоит ли вам его приобретать. Если вы разрабатываете программное обеспечение/приложение, вам нужен сертификат подписи кода. Это так просто!

Читайте также: