ルート権限なしで Trusted Platform Module (TPM) にアクセスする

ルート権限なしで Trusted Platform Module (TPM) にアクセスする

Trusted Platform Module (TPM) チップ (TPM12 と TPM20 の両方) に取り組んでいます。現在、TPM 所有権の取得、TPM のクリア、TPM 内でのキーの生成など、TPM でいくつかの操作を行っています。ただし、これらすべての操作には、Linux ラップトップでの sudo 権限が必要です。

では、ルート権限なしで通常のユーザーとして上記のすべての操作を実行できますか? 実行できる場合、ルート権限なしで TPM にアクセスするにはどうすればよいでしょうか?

答え1

この回答は TPM2 に適用されます (TPM1.2 でも原則は同様です)。まず、TPM には次の文字デバイスを介してアクセスできます。

  • /dev/tpm0: TPMドライバーへの直接アクセス
  • /dev/tpmrm0: カーネル内のTPMリソースマネージャを介してTPMドライバにアクセスする(推奨)

もちろん、これらのファイルの読み取り/書き込み権限を一時的に変更することもできます。しかし、実際にやりたいのはルールを作成することですudev。これは基本的に のファイルです/etc/udev/rules.d/。参考までに、TSSが提供するudevルール:

# tpm devices can only be accessed by the tss user but the tss
# group members can access tpmrm devices
KERNEL=="tpm[0-9]*", MODE="0660", OWNER="tss"
KERNEL=="tpmrm[0-9]*", MODE="0660", OWNER="tss", GROUP="tss"

ご覧のとおり、ユーザー にはルールがありますtss。このユーザーは、ユーザー空間リソースマネージャーこのリソース マネージャーを使用すると、自分でファイルにアクセスする必要がなくなり、ユーザー空間リソース マネージャーが代わりにアクセスします。したがって、root 権限は不要になります。ユーザー空間リソース マネージャーはサービスとして実行されます (または、ユーザーとして手動で起動されますtss)。

関連情報