Функции C # и TPM

#c# #security #tpm

#c# #Безопасность #tpm

Вопрос:

Я бесконечно искал в Интернете ответ на этот вопрос, но, к сожалению, нигде не могу его найти.

Я пытаюсь запустить эквивалент этой команды PowerShell на C #, но без необходимости импортировать библиотеки PowerShell в свой код:

Get-TpmEndorsementKeyInfo -алгоритм хэширования sha256

По сути, все, к чему я пытаюсь добраться, — это представление SHA256 моего EK TPM. Если возможно, я также хотел бы получить отпечаток того же самого, который выдает команда PowerShell при ее запуске.

Я пробовал работать с Limpet (https://github.com/ms-iot/security/tree/master/Limpet/Limpet.NET ) но безрезультатно.

Зачем мне это нужно? Я пытаюсь использовать TPM в качестве механизма для доказательства уникальности ПК, затем я мог бы использовать этот хэш, который является уникальным для устройства TPM этого компьютера, для выполнения других функций, включая, возможно, лицензирование. В любом случае, я пытаюсь сделать это на C #.

В идеале я также нахожу способ подписывать сообщения с помощью C # и TPM, но я буду продолжать искать это.

Какие-нибудь подсказки?

Комментарии:

1. Вы также не хотите просто вызывать Powershell как отдельный процесс и считывать выходные данные (через C #)?

2. @CamiloTerevinto Спасибо за это предложение! Проблема в том, что, к сожалению, как только я начинаю вызывать PowerShell либо через автономный процесс, либо путем импорта библиотеки PowerShell, мой AV каждый раз выдает ложное срабатывание. Я хочу избежать этого, если это возможно, но вы абсолютно правы, это вариант.

Ответ №1:

Я знаю, что класс определен в сборке, которая находится в Azure SDK, но вы могли бы взглянуть на класс SecurityProviderTpmHsm, который определен в Microsoft.Azure.Устройства.Подготовка.Безопасность.Пакет Tpm.

Комментарии:

1. Это. Спасибо! Спас мой день 🙂