Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
GoTEE — Go विश्वसनीय निष्पादन वातावरण (TEE) | Kitploit
उपकरण/GitHubGitHub/usbarmory/gotee
एम्बेडेड सिस्टम सुरक्षासुरक्षा वर्चुअलाइजेशनहार्डवेयर सुरक्षा
GitHubusbarmory/gotee

GoTEE

Go विश्वसनीय निष्पादन वातावरण (TEE)

रिपॉजिटरी देखें
1521353 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

परिचय

GoTEE फ्रेमवर्क विशेषाधिकार प्राप्त और गैर-विशेषाधिकार प्राप्त मोड में TamaGo-आधारित यूनिकर्नेल के समवर्ती इंस्टेंशिएशन को लागू करता है, जो मॉनिटर मोड और कस्टम सिस्टम कॉल के माध्यम से एक दूसरे के साथ इंटरैक्ट करते हैं।

इन क्षमताओं के साथ GoTEE एक TamaGo-आधारित ट्रस्टेड एक्ज़ीक्यूशन एनवायरनमेंट (TEE) लागू करता है, जो ARM TrustZone Secure World या RISC-V Supervisor Execution Environments के भीतर बेयर मेटल एक्ज़ीक्यूशन में Go मेमोरी सुरक्षा, सुविधा और क्षमताएँ लाता है।

GoTEE शुद्ध Go, Rust या C-आधारित फ्रीस्टैंडिंग ट्रस्टेड एप्लेट्स का पर्यवेक्षण कर सकता है, जो GoTEE API लागू करते हैं, साथ ही ARM TrustZone Normal World या RISC-V S-mode में चलने में सक्षम कोई भी ऑपरेटिंग सिस्टम जैसे Linux।

विशेषताएँ

  • पृथक एक्ज़ीक्यूशन संदर्भ ARM यूज़र मोड, TrustZone Normal World या RISC-V Supervisor Mode के लिए

  • फॉल्ट डिटेक्शन के लिए अवसरवादी सॉफ्ट लॉकस्टेप

  • ट्रस्टेड OS कार्यान्वयन के लिए API (Syscall, JSON-RPC और एक्सेप्शन हैंडलर)

दस्तावेज़ीकरण

Go Reference

मुख्य दस्तावेज़ीकरण, जिसमें एक ट्यूटोरियल शामिल है, प्रोजेक्ट विकि पर पाया जा सकता है।

पैकेज API दस्तावेज़ीकरण pkg.go.dev पर पाया जा सकता है।

समर्थित हार्डवेयर

निम्न तालिका वर्तमान में समर्थित SoC और बोर्डों का सारांश प्रस्तुत करती है।

उदाहरण एप्लिकेशन

TEE नामावली में, विशेषाधिकार प्राप्त यूनिकर्नेल को सामान्यतः ट्रस्टेड OS के रूप में संदर्भित किया जाता है, जबकि गैर-विशेषाधिकार प्राप्त यूनिकर्नेल एक ट्रस्टेड एप्लेट का प्रतिनिधित्व करता है।

GoTEE उदाहरण ट्रस्टेड OS, ट्रस्टेड एप्लेट और मुख्य OS के रूप में कार्य करने वाले Go यूनिकर्नेल के समवर्ती संचालन को प्रदर्शित करता है।

[!WARNING] मुख्य OS कोई भी "रिच" OS (जैसे Linux) हो सकता है, TamaGo केवल एक स्व-निहित उदाहरण के लिए उपयोग किया जाता है। यही बात ट्रस्टेड एप्लेट पर भी लागू होती है, जो यूज़र मोड में चलने और GoTEE API लागू करने में सक्षम कोई भी बेयर मेटल एप्लिकेशन हो सकता है, जैसे फ्रीस्टैंडिंग C या Rust प्रोग्राम।

बिल्ड करते समय trusted_applet_go को trusted_applet_rust से बदलकर एक Rust उदाहरण का उपयोग किया जा सकता है।

उदाहरण ट्रस्टेड OS/एप्लेट संयोजन विभिन्न विशेषाधिकार स्तरों पर तीन TamaGo यूनिकर्नेल के समवर्ती निष्पादन का बुनियादी परीक्षण करता है:

  • ट्रस्टेड OS (ARM: TZ Secure World सिस्टम मोड, RISC-V: M-mode)
  • ट्रस्टेड एप्लेट (ARM: TZ Secure World यूज़र मोड, RISC-V: S-mode)
  • मुख्य OS (ARM: TZ Normal World सिस्टम मोड, RISC-V: S-mode)

मुख्य OS मॉनिटर कॉल के साथ वापस यील्ड करता है।

ट्रस्टेड एप्लेट ट्रस्टेड OS मेमोरी पढ़ने का प्रयास करने से पहले 5 सेकंड के लिए सोता है, जो सुपरवाइज़र द्वारा संभाले गए एक एक्सेप्शन को ट्रिगर करता है जो ट्रस्टेड एप्लेट को समाप्त कर देता है।

ट्रस्टेड OS और ट्रस्टेड एप्लेट के बीच संचार के लिए GoTEE syscall इंटरफ़ेस लागू किया गया है।

USB armory Mk II पर लॉन्च होने पर, उदाहरण एप्लिकेशन Ethernet over USB (ECM प्रोटोकॉल, Linux और macOS होस्ट पर समर्थित) के माध्यम से SSH द्वारा पहुँचा जा सकता है:

root@kitploit:~
$ 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

>

उदाहरण को gotee कमांड के साथ लॉन्च किया जा सकता है, जो वास्तविक हार्डवेयर पेरिफेरल्स का उपयोग करके TrustZone प्रतिबंध प्रभावी होने से पहले और बाद के व्यवहार को प्रदर्शित करने के लिए मुख्य OS को दो बार स्पॉन करता है।

इसके अतिरिक्त, linux कमांड का उपयोग USB armory Debian बेस इमेज को नॉन-सिक्योर मुख्य OS के रूप में स्पॉन करने के लिए किया जा सकता है।

[!NOTE] नॉन-सिक्योर संचालन के लिए केवल USB armory Debian बेस इमेज रिलीज़ >= 20211129 समर्थित हैं।

gotee

उदाहरण को QEMU इम्यूलेशन के अंतर्गत भी निष्पादित किया जा सकता है।

[!NOTE] इम्यूलेटेड रन QEMU द्वारा पूर्ण TrustZone/PMP समर्थन की कमी के कारण आंशिक परीक्षण करते हैं।

root@kitploit:~
make qemu
...
> gotee
00:00:00 tamago/arm • TEE security monitor (Secure World system/monitor)
00:00:00 SM loaded applet addr:0x9c000000 entry:0x9c072740 size:4940275
00:00:00 SM loaded kernel addr:0x80000000 entry:0x8007100c size:4577643
00:00:00 SM waiting for applet and kernel
00:00:00 SM starting mode:USR sp:0x9e000000 pc:0x9c072740 ns:false
00:00:00 SM starting mode:SYS sp:0x00000000 pc:0x8007100c ns:true
00:00:00 tamago/arm (go1.19.1) • TEE user applet
00:00:00 tamago/arm (go1.19.1) • system/supervisor (Non-secure)
00:00:00 supervisor is about to yield back
00:00:00 SM stopped mode:SYS sp:0x8146bf54 lr:0x801937a4 pc:0x80193884 ns:true err:exit
00:00:00 applet obtained 16 random bytes from monitor: b4cc4764dd30291a52545b182313003c
00:00:00 applet requests echo via RPC: hello
00:00:00 applet received echo via RPC: hello
00:00:00 applet will sleep for 5 seconds
00:00:01 applet says 1 mississippi
...
00:00:05 applet says 5 mississippi
00:00:05 applet is about to read secure memory at 0x98010000
00:00:05    r0:98010000  r1:9c8240c0  r2:98010000  r3:00000000
00:00:05    r4:00000000  r5:00000000  r6:00000000  r7:9c86bec8
00:00:05    r8:00000007  r9:0000003d r10:9c8020f0 r11:9c342f41 cpsr:600001d7 (ABT)
00:00:05   r12:00000061  sp:9c86bf08  lr:9c1b1be8  pc:9c011330 spsr:600001d0 (USR)
00:00:05 SM stopped mode:USR sp:0x9c86bf08 lr:0x9c1b1be8 pc:0x9c011330 ns:false err:ABT

कंपाइलर बनाना

TamaGo कंपाइलर बनाएँ (या नवीनतम बाइनरी रिलीज़ का उपयोग करें):

root@kitploit:~
wget https://github.com/usbarmory/tamago-go/archive/refs/tags/latest.zip
unzip latest.zip
cd tamago-go-latest/src && ./all.bash
cd ../bin && export TAMAGO=`pwd`/go

ARM टारगेट पर बनाना और निष्पादित करना

उदाहरण ट्रस्टेड एप्लेट और कर्नेल एक्ज़ीक्यूटेबल्स को इस प्रकार बनाएँ:

root@kitploit:~
git clone https://github.com/usbarmory/GoTEE-example
cd GoTEE-example && export TARGET=usbarmory && make nonsecure_os_go && make trusted_applet_go && make trusted_os

[!NOTE] Rust TA उदाहरण के लिए trusted_applet_go को trusted_applet_rust से बदलें, इसके लिए Rust nightly और armv7a-none-eabi टूलचेन की आवश्यकता होती है।

अंतिम एक्ज़ीक्यूटेबल्स bin उपनिर्देशिका में बनाए जाते हैं, नेटिव निष्पादन के लिए trusted_os_usbarmory.imx का उपयोग किया जाना चाहिए।

निम्नलिखित टारगेट उपलब्ध हैं:

TARGETबोर्डनिष्पादन और डीबगिंग
usbarmoryUSB armory Mk IIusbarmory

टारगेट नेटिव (ऊपर दी गई तालिका में प्रासंगिक दस्तावेज़ीकरण लिंक देखें) के साथ-साथ इम्यूलेटेड निष्पादन (जैसे make qemu) का समर्थन करते हैं।

RISC-V टारगेट पर बनाना और निष्पादित करना

उदाहरण ट्रस्टेड एप्लेट और कर्नेल एक्ज़ीक्यूटेबल्स को इस प्रकार बनाएँ:

root@kitploit:~
git clone https://github.com/usbarmory/GoTEE-example
cd GoTEE-example && export TARGET=sifive_u && make nonsecure_os_go && make trusted_applet_go && make trusted_os

[!NOTE] Rust TA उदाहरण के लिए trusted_applet_go को trusted_applet_rust से बदलें, इसके लिए Rust nightly और riscv64gc-unknown-none-elf टूलचेन की आवश्यकता होती है।

अंतिम एक्ज़ीक्यूटेबल्स bin उपनिर्देशिका में बनाए जाते हैं।

उपलब्ध टारगेट:

TARGETबोर्डनिष्पादन और डीबगिंग
sifive_uQEMU sifive_usifive_u

टारगेट का परीक्षण केवल इम्यूलेटेड निष्पादन के साथ किया गया है (जैसे make qemu)

GoTEE का उपयोग करने वाले एप्लिकेशन

  • ArmoredWitness - क्रॉस-इकोसिस्टम विटनेस नेटवर्क

लेखक

Andrea Barisani
[email protected]

Andrej Rosano
[email protected]

लाइसेंस

GoTEE | https://github.com/usbarmory/GoTEE
कॉपीराइट (c) GoTEE लेखक। सर्वाधिकार सुरक्षित।

ये स्रोत फ़ाइलें LICENSE फ़ाइल में मौजूद BSD-शैली लाइसेंस के तहत वितरित की जाती हैं।

टूल डाउनलोड करें
SoCबोर्डSoC पैकेजबोर्ड पैकेज
NXP i.MX6ULZUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULLMCIMX6ULL-EVKimx6ulmx6ullevk
SiFive FU540QEMU sifive_ufu540qemu/sifive_u