Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiНовости

Все ли ваши приложения для Windows похожи на компьютерный вирус?

virus_hacker

Итак, вы написали что-то гениальное, «Следующее большое дело». Вы придерживаетесь современного подхода. Вы читали или смотрели нашу серию статей о Fluent UI и, возможно, даже применили несколько визуальных вещей, таких как неоскевоморфизм, о которых мы узнали на конференции Desktop First . Возможно, вы применили некоторые темы VCL к своему приложению и интегрировали возможность обнаружения темного / светлого режима Windows 10 в свое приложение Delphi? Все идет хорошо … пока пользователи не попытаются использовать ваши приложения.

inkedannotation-2019-09-19-114909_li-3090339-2
Это сообщение, которое вы получаете, когда запускаете очень популярный проект с открытым исходным кодом, который имеет более 100 000 загрузок.

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

keep-617x225-9952930-2

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

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

Что такое подписывание кода?

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

annotation-2019-09-19-132057-2885035-2
Правильно подписанное приложение (изображение старое — в сертификате будет указана текущая дата истечения срока действия)

Доставка приложений через веб-ссылку в значительной степени требует подписи кода

Подпись кода не только помогает идентифицировать исходного разработчика, но и играет роль, когда ваши программы загружаются с веб-сайта или аналогичного механизма онлайн-доставки. Большинство браузеров (возможно, все) будут предупреждать вас о загрузке exes с веб-сайта, особенно того, который не использует HTTPS. Microsoft Edge и Windows вместе идут немного дальше и будут активно кричать на вас, если исполняемый файл не имеет цифровой подписи (другой способ сказать, что он не подписан кодом).

pexels-anete-lusina-5240544-9328827-2

Неподписанные приложения выглядят как компьютерные вирусы

Если вашим пользователям, наконец, удастся перепрыгнуть через все различные обручи и фактически получить exe для загрузки на свой компьютер, некоторые из них могут обнаружить, что загруженный файл волшебным образом исчез. Это связано с тем, что в корпоративных сетях довольно часто применяется правило, согласно которому пользователи могут запускать только определенные доверенные приложения. Отсутствие подписи кода обычно означает, что вашему приложению не доверяют. Некоторые идут еще дальше, хотя это встречается реже и настаивают на том, что все пользовательские приложения должны быть 64-битными, особенно серверные приложения и службы Windows. Администраторы корпоративной сети и сотрудники ITSec могут быть немного перегружены, когда дело доходит до применения политик и принуждения кучки пользователей к поведению себя, не позволяя им делать очевидные вещи, такие как потоковая передача торрентов,открытие сомнительных вложений и случайный запуск вредоносного ПО.

Ваше приложение без кодовой подписи? Для них это выглядит как наихудший способ кражи паролей с криптоблокировкой — и нет, они не хотят отказываться от своего тощего миндального латте-макачули с дополнительной спиреллой, чтобы запустить его, чтобы «проверить это», большое спасибо.

Подпись кода предназначена только для голубых фишек?

Подписание кода ОБЯЗАТЕЛЬНО, если вы хотите получать доход от своего кода. Но даже если у вас есть проект с открытым исходным кодом или бесплатное ПО, подписывание кода помогает вашим пользователям помочь себе самим.

Безмятежные дни простого создания exe-файла, его архивирования и размещения на веб-сервере в значительной степени прошли. Если вы доставляете свое программное обеспечение таким образом, я ненавижу быть источником плохих новостей: вы устарели, и пора модернизироваться. Скоро появится целый ряд изменений в способах работы Windows, и многие улучшения безопасности, такие как UAC, HTTPS и принудительная защита каталогов, будут реализованы в одностороннем порядке и, в большинстве случаев, уже были.

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

Дополнительные ресурсы по подписи кода

Чтобы узнать больше о плюсах и минусах подписи кода, попробуйте следующие ресурсы:


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


What's New for RAD Studio 11

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Похожие сообщения
DelphiDeveloper InterviewsInterviewНовости

Каково быть разработчиком Джо К. Хехт?

CodeRAD StudioНовости

Почему вам определенно стоит писать меньше кода в этом году

DelphiDeveloper InterviewsInterviewНовости

Каково быть разработчиком Сунил Кумар Арора?

C++DelphiRAD StudioНовости

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

Leave a Reply

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES