Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: генерация и использование ключей для SSH с помощью модуля TPM  (Прочитано 58898 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Здравствуйте форумчане!
 Задался я идеей безопасности нового уровня. Приобрел отдельный дискретный модуль TPM.
Установил его на материнку. вооружился вот этой статейкой.
 И вроде как первые шаги с некоторыми поправками прошли успешно.

sudo apt install libtpm2-pkcs11-tools libtpm2-pkcs11-1 tpm2-tools

sudo usermod -a -G tss $(whoami)

tpm2_ptool init - после получал соответствующий ответ

tpm2_ptool addtoken --pid=1 --label=firstkey --userpin=1234 --sopin=12345

tpm2_ptool addkey --label=firstkey --userpin=1234 --algorithm=rsa2048
А вот следующий шаг неудачный:
ssh-keygen -D /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1
WARNING:esys:src/tss2-esys/api/Esys_TestParms.c:272:Esys_TestParms_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_TestParms.c:96:Esys_TestParms() Esys Finish ErrorCode (0x000001ca)
ERROR: mech_init failed: 0x5
ERROR: Could not initialize tpm mdetails: 0x5
ERROR: Getting tokens from esysdb backend failed.
C_Initialize for provider /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1 failed: 5
cannot read public key from pkcs11

говорит не может прочитать ключ от pkcs11

почитал про tpm2_ptool что она якобы создает некий слот а в ней как бы смарт-карта, когда добавляешь туда ключ.
но это все происходит в tpm - модуле. Как потом ssh-keygen определяет из какого слота запрашивается ключ не знаю...
 в общем не работает как надо эта система.
Может знает кто , как запустить этот процесс?


Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1749
    • Просмотр профиля
ssh-keygen -D /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1

ssh-keygen -D /usr/lib64/pkcs11/libtpm2_pkcs11.so -e | tee ~/.ssh/tpm_rsa.pub

подробности

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
какие подробности вам нужны? если вы о точном написании строки, так у меня как и у одного из коментов статьи (я именно по этой статье и делал) написано, что в дебиан немного по другому. ну так у меня so шник такой именно и лежит где я написал, проверенно. более того он и отвечает что не может достучаться до ключа...
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 02 Февраля 2023, 22:47:15 от Schneider »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6738
  • 20% Cooler
    • Просмотр профиля
c того же сайта:
Цитировать
Тип поддерживаемых ключей зависит исключительно от реализации TPM-чипа.
Установленная в моём ноутбуке модель поддерживает лишь NIST P-256 и RSA, причём длиной не более 2048 бит.
Ваш чип поддерживает RSA2048?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
хороший вопрос, я не задумался потому, что после команд
tpm2_ptool init
tpm2_ptool addtoken
tpm2_ptool addkey
были адекватные ответы.
Но сейчас посмотрел на чип установленный datasheet
вроде пишут что может!

я пока искал ответы задумался почему это при наборе

sudo p11-kit list-modules или без sudo выходит следующее:
WARNING:esys:src/tss2-esys/api/Esys_TestParms.c:272:Esys_TestParms_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_TestParms.c:96:Esys_TestParms() Esys Finish ErrorCode (0x000001ca)
ERROR: mech_init failed: 0x5
ERROR: Could not initialize tpm mdetails: 0x5
ERROR: Getting tokens from esysdb backend failed.
p11-kit-trust: p11-kit-trust.so
    library-description: PKCS#11 Kit Trust Module
    library-manufacturer: PKCS#11 Kit
    library-version: 0.24
    token: System Trust
        manufacturer: PKCS#11 Kit
        model: p11-kit-trust
        serial-number: 1
        hardware-version: 0.24
        flags:
               write-protected
               token-initialized
и в начале похожие ошибки как и при ssh-keygen -D, может у меня пользователь не может достучатся до самого модуля?

« Последнее редактирование: 05 Февраля 2023, 16:13:36 от ALiEN175 »

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Есть у кого нибудь идеи что может быть не так?

----кто нибудь проверьте у себя пожалуйста----

TPM модуль это не обязательно отдельный модуль который на материнку ставится.
В процессоре Ryzen есть встроенный. и у меня в системе (под windows в диспетчере устройств) он тоже виден(еще один кроме отдельного)

PS. здесь почитал и проверил у себя.
lsmod | grep tpm ничего не выдает. значит ли это что у меня не загружена какая то часть ядра, работающая с модулем TPM, если да, то как ее включить? :-[
« Последнее редактирование: 04 Февраля 2023, 14:04:25 от Schneider »

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
tpm2_clear выдает ошибку типа TPM 2.0 hardware error DA lockout mode
 типа заблокирован,

в windows вот что говорит:

 PS C:\Users\User> get-tpm


TpmPresent                : True
TpmReady                  : True
TpmEnabled                : True
TpmActivated              : True
TpmOwned                  : True
RestartPending            : True
ManufacturerId            : 1333333916
ManufacturerIdTxt         : IFX
ManufacturerVersion       : 5.0.1089.2
ManufacturerVersionFull20 : 5.0.4.16642

ManagedAuthLevel          : Full
OwnerAuth                 : biZBYxpQoCfCVv8hJT6GqB13aE0=
OwnerClearDisabled        : False
AutoProvisioning          : Enabled
LockedOut                 : False
LockoutHealTime           : 2 hours
LockoutCount              : 0
LockoutMax                : 32
SelfTest                  : {}

может не к тому модулю tpm2_clear обращается... в общем я плаваю. и внятного гайда не могу найти...


up: tpm2_clear теперь ошибку не выдает!!! че то где то стирает, но что так до сих пор и не понятно.
вообще я так понял, об этом написано в мануале tpm2_ptool создает что то вроде виртуального хоста для чтения смарт-карт, и создает виртуальные карты, которые "вставляются" в этот виртуальный хост - кард-ридер типа.
Все данные хранятся в /home/user/.tpm2_pkcs11 в виде sql файлов базы данных, вроде.
Какое отношение он имеет к генерации ключей в реальном дискретном модуле TPM для меня загадка.

библиотека /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1 как будто бы не срабатывает
« Последнее редактирование: 05 Февраля 2023, 20:51:14 от Schneider »

Онлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2605
    • Просмотр профиля
А система то вообще в UEFI режиме установлена?
Secure boot включен?
А чего это вы тут делаете, а?

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
да, в биосе включил. в винде проверял как то, показывает что секьюрно. в ubuntu где смотреть не знаю, но Ubuntu я ставил после того как в биосе включил загрузку только UEFI, дискретный TPM модуль включил. Ubuntu по мере установки ничего не говорила, секьюрно она ставится или нет. В общем, я не совсем понимаю, какое это имеет отношение к генерации ключей с помощью модуля для собственных нужд.
Я вообще в теории этого процесса знаю только в общих чертах. А информация в интернете полно, но тоже в общих чертах. я неделю потратил на вникание в процесс, но не постиг.
Я было хотел экспериментировать сам, народным методом "тыка". Но че то не рискнул в биосе удалить ключи всякие PK и иже с ним. поскольку если система (Windows / Ubuntu) слетит, вообще не понятно что потом делать. вот и жду тех кто подскажет что да как.
« Последнее редактирование: 11 Февраля 2023, 14:25:01 от Schneider »

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1749
    • Просмотр профиля
lsmod | grep tpm
ничего не выдает

доавить в /etc/initramfs-tools/modules:
rng_core
tpm
tpm_tis_core
tpm_tis

обновить:
sudo update-initramfs -u
перезагрузка

 

Страница сгенерирована за 0.08 секунд. Запросов: 25.