Проблема не во внешних онлайн сервисах, а исключительно локально на машине пользователя. Все что вы даете пользователю может быть проанализировано и взломано. Вопрос только в цене. Обычно стоимость затрат на защиту сравнима с затратами на взлом, но бывают выбросы, например можно долго и нудно обфусцировать код, скрывать логику работы программы, отсчитывать секунды работы (например если хотите выдать бесплатный пробный период, не привязывая ко времени), а пользователь простым телодвижением запустит программу в виртуалке в момент выдачи лицензии снимет снапшот памяти и будет запускать программу с него.
p.s. не нужно городить шифрование, особенно там где это не важно.
Ваша задача - обфускация логики проверки лицензии, ее должно быть сложно скопировать.
За привязку лицензии к машине лучше обратиться к готовым инструментам, встроенным в ОС (а там и железные фичи типа защищенное хранилище получится использовать).. настоятельно советую погуглить и побеседовать с ИИ на этот вопрос в разрезе вашей задачи. Это не надежное решение, это возможность не пилить бесполезный велосипед, ваша задача сэкономить свои деньги и время на создание защиты.
Ключевые слова: DPAPI (инструменты шифрования без TPM), CNG Key Storage Provider (KSP) + TPM, Credential Manager...
p.p.s. если у пользователя используется онлайн аккаунт майкрософт, а приложение распространяется через microsoft store, то там какие то инструменты для этого встроены, и контроль за лицензиями, и онлайн инфраструктура для покупок, но я никогда этим не интересовался, потому что все что я знаю про майкрософт - они жадные у***и, в лучшем случае придется с ними делиться, в худшем, разденут до нитки, не хуже пиратов, от которых защищаешься. Не говоря про то что в россии с ними уже не поработаешь как следует.
--------------
Лучшая защита - это держать всю или часть критичной логики на своем сервере, а локально приложение у пользователя в нужный момент обращается на сервер для ее выполнения. В совокупности с обфускации локального кода и данных для коммуникации с сервером, может создать очень мощную защиту, на анализ которой у взломщика будет уходить больше денег чем на ее создание, а главное после того как анализ будет завершен, еще потребуется подменить оффлайн серверную логику... на этом этапе срежутся большинство взломщиков.
Онлайн исполнение кода привязывать к логину/паролю/ключу авторизации, за безопасностть хранения которых пусть отвечает пользователь, вы даете доступ по ключу, ограничив например временем или одновременным запуском (в довесок можно в коммуникацию встроить что-нибудь из информации о компьютере, что бы не получилось часто менять железо)... совет, если будете реализовывать онлайн контроль, предоставьте лицензионную возможность запускать на нескольких машинах но не одновременную (можно еще ограничений добавить), иногда это может являться желанием взломать, что бы не покупать несколько лицензий для разных рабочих мест.