問題タブ [trust-zone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
902 参照

arm - セキュリティ ブート シーケンスは armv7 と armv8 で異なりますか?

arm trustzone テクノロジーを使用したセキュアなシステムを構築します。しかし、armv7 と armv8 ではセキュア ブート シーケンスが異なると言われています。私は違いが何であるか知りたいですか?また、セキュア ブートのみが異なるか、armv7 と armv8 のブート シーケンスが異なりますか?

どんな種類の助けも大歓迎です。

0 投票する
1 に答える
453 参照

linux-kernel - 通常の世界で Linux を起動する

i.MX53クイック スターティング ボードでTrustZone (ARM セキュリティ拡張機能) を調べています。セキュアワールドイメージとノーマルワールドイメージのベアメタルシステムの作成に成功しました。u-bootを使用して 2 つのイメージを RAM にロードし、セキュア ワールドを起動します。セキュア ワールドは、モニター システムを初期化し、通常のワールド イメージに手を差し伸べます。

同じ制度を利用したい。しかし、今回は通常の世界の基本イメージを使用する代わりに、 Linux Kernel Imageを使用したいと思います。安全な世界にいるときに、i.MX53 リファレンス マニュアルと i.MX53 セキュリティ リファレンス マニュアルで見つけたいくつかの構成を行いました。構成は次のとおりです。

  • CSU を設定します。CSL0-31 to 0x00FF_00FF

  • TZIC (割り込み)TZIC_INTSEC0-3 to 0xFFFF_FFFFを構成しTZIC_PRIORITY0-31 to 0x1F1F_1F1FTZIC_INTCTRL to 0x8001_0001

  • セキュア構成レジスタの構成:NS=0 IRQ=0 FIQ=0 EA=0 FW=1 AW=1 => 0x30

Linux カーネルに手を差し伸べると、ブート プロセスが開始されます。出力の一部を以下に示します。

レギュレーター: コア バージョン 0.5

NET: 登録済みプロトコル ファミリ 16

i.MX IRAM プール: 128 KB@0xec840000

IRAM パーティションの解放に失敗しました

CPU は i.MX0 リビジョン 0.0

未処理の障害: 0xec82c00c での非ラインフェッチ (0x1008) での外部アボート

内部エラー: : 1008 [#1] PREEMPT

最後の sysfs ファイル:

リンクされているモジュール:

CPU: 0 汚染されていません (2.6.35.3 #1)

PC は mxc_cpu_lp_set+0x1c/0x16c にあります

LR は arch_idle+0x60/0x294 にあります

pc : [<8003a958>] lr : [<8003ab08>] psr: 60000093

sp: 80835f78 IP: 00000003 fp: 8088fb68

....

出力でわかるように、 IRAMに問題があり(通常は IRAM READY と表示されるため)、データの中断があります。これらのエラーに関連する画面が表示された後、Linux カーネルのブート プロセスが停止します。

それを解決する方法のアイデアはありますか? 構成が不足していますか? ありがとうございました

0 投票する
1 に答える
597 参照

linux-kernel - ARM Trustzone のユースケースを知りたい

私は現在、ARM trustzone テクノロジを理解しています。Zynq ボードでのプロトタイプ開発のためのトラスト ゾーンの基本的なユース ケースを提案してください。

0 投票する
2 に答える
2609 参照

security - ARM TrustZone を使用して、非セキュア ワールドからメモリ領域へのアクセスを防止する

環境

通常の世界では機能豊富なGNU/Linux OS を実行し、セキュアな世界ではモニターが統合された小さな OS を実行したいと考えています。

要件

セキュア ワールドのメモリ領域にアクセスするには、ノーマル ワールドを絶対に避けなければなりません。

質問

この要件を満たすために、 TrustZone のどの機能を使用/アクティブ化する必要がありますか? 必要な機能だけを使用して、必要な作業を最小限に抑えたい。

詳細

私はかなり多くのARM TrustZoneドキュメントを読みました。セキュリティ拡張機能を備えたTZPCTZASC、MMU については知っていますが、次の脅威を回避する方法がわかりません。

カーネル空間へのアクセス権を取得したハッカーが MMU を非アクティブ化し、セキュア ワールドの物理メモリ領域に直接アクセスするのを止めるにはどうすればよいでしょうか?

たぶん、これは想像もできないし、実行可能ではないでしょうか? しかし、もしそうなら、これを防ぐためにTZPCが義務付けられていると思いますよね? それとも、2 つのTrustZoneワールドを「単に」使用するだけで十分ですか?

0 投票する
1 に答える
601 参照

linux - TrustZone メモリのパーティショニング

このリンクで ARM Trustzone について読んでいます。TrustZone を使用すると、メモリをセキュアな領域と非セキュアな領域に分割できることを理解しています。ベンダーは、これを使用して安全な OS を実行できます。

私が興味を持っているのは、このパーティションの粒度サポートは何ですか? 「セキュア」とマークされたメモリブロックが存在する可能性があり、OSごとにそのようなメモリブロックが1つしか存在できないというだけですか? TrustZone には、個々のプロセス用にメモリを分割する容量がありますか?

Linux アプリケーション用の .so ファイル (架空の例) があるとします。プロセス A の同じコードが仮想アドレス 0x1000 から 0x2000 でセキュアとマークされ、プロセス B で仮想アドレス 0x5000 から 0x6000 でセキュアとマークされる可能性はありますか?