Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
GoTEE — Go Trusted Execution Environment (TEE) | Kitploit
Tools/GitHubGitHub/usbarmory/gotee
Embedded-System-SicherheitSicherheitsvirtualisierungHardware-Sicherheit
GitHubusbarmory/gotee

GoTEE

Go Trusted Execution Environment (TEE)

Repository anzeigen
1521323vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Einführung

Das GoTEE-Framework ermöglicht die gleichzeitige Instanziierung von auf TamaGo basierenden Unikerneln im privilegierten und unprivilegierten Modus, die über den Monitor-Modus und benutzerdefinierte Systemaufrufe miteinander interagieren.

Mit diesen Fähigkeiten implementiert GoTEE eine TamaGo basierte Trusted Execution Environment (TEE) und bringt Go-Speichersicherheit, Komfort und Fähigkeiten in die Bare-Metal-Ausführung innerhalb der ARM TrustZone Secure World oder der RISC-V-Supervisor-Execution-Environments.

GoTEE kann freistehende Trusted Applets auf Basis von reinem Go, Rust oder C überwachen, die die GoTEE-API implementieren, sowie jedes Betriebssystem, das in der ARM TrustZone Normal World oder im RISC-V-S-Modus ausgeführt werden kann, wie z. B. Linux.

Funktionen

  • Isolierte Ausführungskontexte für den ARM User Mode, die TrustZone Normal World oder den RISC-V Supervisor Mode

  • Opportunistischer Soft-Lockstep zur Fehlererkennung

  • API für die Trusted-OS-Implementierung (Syscall-, JSON-RPC- und Ausnahme-Handler)

Dokumentation

Go Reference

Die Hauptdokumentation, die ein Tutorial enthält, finden Sie im Projekt-Wiki.

Die API-Dokumentation des Pakets finden Sie auf pkg.go.dev.

Unterstützte Hardware

Die folgende Tabelle fasst die derzeit unterstützten SoCs und Boards zusammen.

SoCBoardSoC-PaketBoard-Paket
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u

Beispielanwendung

In der TEE-Nomenklatur wird der privilegierte Unikernel üblicherweise als Trusted OS bezeichnet, während der unprivilegierte ein Trusted Applet darstellt.

Das GoTEE-Beispiel demonstriert den gleichzeitigen Betrieb von Go-Unikerneln, die als Trusted OS, Trusted Applet und Main OS fungieren.

[!WARNING] Das Main OS kann ein beliebiges „Rich“-OS sein (z. B. Linux); TamaGo wird lediglich für ein in sich geschlossenes Beispiel verwendet. Gleiches gilt für das Trusted Applet, das jede Bare-Metal-Anwendung sein kann, die im User Mode ausgeführt werden kann und die GoTEE-API implementiert, wie z. B. freistehende C- oder Rust-Programme.

Ein Rust-Beispiel kann verwendet werden, indem beim Erstellen trusted_applet_go durch trusted_applet_rust ersetzt wird.

Die Beispiel-Kombination aus Trusted OS und Applet führt grundlegende Tests der gleichzeitigen Ausführung von drei TamaGo Unikerneln auf verschiedenen Privilegstufen durch:

  • Trusted OS (ARM: TZ Secure World System-Modus, RISC-V: M-Modus)
  • Trusted Applet (ARM: TZ Secure World User-Modus, RISC-V: S-Modus)
  • Main OS (ARM: TZ Normal World System-Modus, RISC-V: S-Modus)

Das Main OS gibt mit einem Monitor-Aufruf die Kontrolle zurück.

Das Trusted Applet schläft 5 Sekunden lang, bevor es versucht, auf den Speicher des Trusted OS zuzugreifen. Dadurch wird eine Ausnahme ausgelöst, die vom Supervisor behandelt wird und das Trusted Applet beendet.

Die GoTEE-Syscall-Schnittstelle ist für die Kommunikation zwischen dem Trusted OS und dem Trusted Applet implementiert.

Wird die Anwendung auf der USB armory Mk II gestartet, ist die Beispielanwendung per SSH über Ethernet over USB (ECM-Protokoll, unter Linux- und macOS-Hosts unterstützt) erreichbar:

$ ssh [email protected]
tamago/arm • TEE security monitor (Secure World system/monitor)

allgptr                                          # memory forensics of applet goroutines
csl                                              # show config security levels (CSL)
csl             <periph> <slave> <hex csl>       # set config security level (CSL)
dbg                                              # show ARM debug permissions
exit, quit                                       # close session
gotee                                            # TrustZone example w/ TamaGo unikernels
help                                             # this help
linux           <uSD|eMMC>                       # boot NonSecure USB armory Debian base image
lockstep        <fault %>                        # tandem applet example w/ fault injection
peek            <hex offset> <size>              # memory display (use with caution)
poke            <hex offset> <hex value>         # memory write   (use with caution)
reboot                                           # reset device
sa                                               # show security access (SA)
sa              <id> <secure|nonsecure>          # set security access (SA)
stack                                            # stack trace of current goroutine
stackall                                         # stack trace of all goroutines

>

Das Beispiel kann mit dem Befehl gotee gestartet werden, der das Main OS zweimal erzeugt, um das Verhalten vor und nach dem Inkrafttreten der TrustZone-Beschränkungen mithilfe echter Hardware-Peripherie zu demonstrieren.

Zusätzlich kann der Befehl linux verwendet werden, um das USB-armory-Debian-Basisabbild als nicht-sicheres Main OS zu starten.

[!NOTE] Für den Nicht-Secure-Betrieb werden nur USB-armory-Debian-Basisabbild-Versionen >= 20211129 unterstützt.

Tool herunterladen