محیط اجرای مورد اعتماد در اندروید
Trusty is a secure Operating System (OS) that provides a Trusted Execution Environment (TEE) for Android. The Trusty OS runs on the same processor as the Android OS, but Trusty is isolated from the rest of the system by both hardware and software. Trusty and Android run parallel to each other. Trusty has access to the full power of a device’s main processor and memory but is completely isolated. Trusty’s isolation protects it from malicious apps installed by the user and potential vulnerabilities that may be discovered in Android.
Trusty is compatible with ARM and Intel processors. On ARM systems, Trusty uses ARM’s Trustzone™ to virtualize the main processor and create a secure trusted execution environment. Similar support is also available on Intel x86 platforms using Intel’s Virtualization Technology
این متن از خود کمپانی گوگل درمورد سیستم عامل اندروید هست که توسط مجموعه ما برای شما ترجمه میشود
Trusty یک سیستم عامل (OS) ایمن شده می باشد که یک محیط اجرای مورد اعتماد (TEE) را برای اندروید فراهم می کند. (مترجم : اینجا منظور این است که یک برنامه که نوعی بارکننده و تست کننده است که اونقدر مدیریت را امن کرده که به عنوان سیستم عامل یاد شده)
مترجم : در سیستم عمال های اندروید ورژن های پایین این اعمال وجود نداشت یعنی هر برنامه ای میتوانست به صورت مستقیم با کامپایلر جاوا ارتباط داشته باشد و اعمال مخرب انجام دهد ولی سیستم عامل open source اندروید با پیشرفتی چشمگیر توانست این تکنولوژی را در خود بگنجاند
Trusty OS بر روی همان پردازنده سیستم عامل اندروید اجرا می شود، اما Trusty از بقیه سیستم ها توسط سخت افزار و نرم افزار جدا شده است. Trusty و Android به موازات یکدیگر اجرا می شوند. مترجم : تراستی یا Trusty یک برنامه هست که آن را زیر این آموزش تگ میکنم تا دانلود کنید و سپس با make و cmake کامپایل میشود.
Trusty به تمام قدرت پردازنده و حافظه اصلی دستگاه دسترسی دارد اما کاملاً ایزوله است. جداسازی Trusty از آن در برابر برنامه های مخرب نصب شده توسط کاربر و آسیب پذیری های احتمالی که ممکن است در Android کشف شود محافظت می کند.
مترجم : این به این مفهوم میباشد که یک حاله ای روی گوشی اندرویدی اجرا میشود که از خود اندروید حفاظت میکند این یک امر بسیار انتزاعی میباشد
Trusty با پردازنده های ARM و Intel سازگار است. در سیستمهای آرم ARM، تراستی Trusty از Trustzone برای مجازیسازی پردازنده اصلی و ایجاد یک محیط اجرای مطمئن مطمئن استفاده میکند. پشتیبانی مشابهی نیز بر روی پلتفرم های Intel x86 با استفاده از فناوری مجازی سازی اینتل در دسترس است
? Why Trusty
Other TEE operating systems are traditionally supplied as binary blobs by third-party vendors or developed internally. Developing internal TEE systems or licensing a TEE from a third-party can be costly to System-on-Chip (SoC) vendors and OEMs. The monetary cost combined with unreliable third-party systems creates an unstable ecosystem for Android. Trusty is being provided to its partners as a reliable and free open source alternative for their Trusted Execution Environment. Trusty offers a level of transparency that is just not possible with closed source systems.
Android supports various TEE implementations so you are not restricted to using Trusty. Each TEE OS has its own unique way of deploying trusted applications. This fragmentation can be a problem for trusted application developers trying to ensure their apps work on every Android device. Using Trusty as a standard helps application developers to easily create and deploy applications without accounting for the fragmentation of multiple TEE systems. Trusty TEE provides developers and partners with transparency, collaboration, inspectability of code, and ease of debugging. Trusted application developers can converge around common tools and APIs to reduce the risk of introducing security vulnerabilities. These developers will have the confidence that they can develop an application and have it reused across multiple devices without further development.
چرا تراستی یا Trusty ؟
سایر سیستمعاملهای TEE بهطور سنتی بهعنوان حبابهای باینری توسط تیم های توسعه سیستم عامل های سامسونگ شیائومی و.. شخص ثالث عرضه میشوند یا به صورت داخلی توسعه مییابند که متن باز نیستند. توسعه سیستم های TEE داخلی یا صدور مجوز TEE از شخص ثالث می تواند برای تیم های توسعه سیستم عامل، سیستم روی تراشه (SoC) و OEM ها گران تمام شود. هزینه پولی همراه با سیستم های غیر قابل اعتماد شخص ثالث، اکوسیستمی ناپایدار برای اندروید ایجاد می کند. که برای پیشگیری از این امر پروژه اندروید اقدام به توسعه یکپارچه محیط امن و ایزوله برای کنترول وندور ها Vendors ایجاد کرد
Trusty به عنوان یک جایگزین منبع باز قابل اعتماد و رایگان برای محیط اجرای مورد اعتماد آنها در اختیار شرکای خود قرار می گیرد. Trusty سطحی از شفافیت را ارائه می دهد که با سیستم های منبع بسته امکان پذیر نیست.
اندروید از پیاده سازی های مختلف TEE پشتیبانی می کند، بنابراین شما محدود به استفاده از Trusty نیستید. هر سیستم عامل TEE روش منحصر به فرد خود را برای استقرار برنامه های کاربردی قابل اعتماد دارد. مثل سیستم عامل های شیائومی که حجم آن هم افزایش داده اند که این خیلی خوشآیند نیست
این تقسیمبندی میتواند برای توسعهدهندگان برنامههای مورد اعتماد که تلاش میکنند از کارکرد برنامههایشان در هر دستگاه اندرویدی مطمئن شوند، مشکلساز باشد. استفاده از Trusty به عنوان یک استاندارد به توسعه دهندگان برنامه کمک می کند تا به راحتی برنامه ها را بدون در نظر گرفتن تکه تکه شدن چندین سیستم TEE ایجاد و استقرار دهند. Trusty TEE به توسعه دهندگان و شرکا شفافیت، همکاری، قابلیت بازرسی کد و سهولت اشکال زدایی را ارائه می دهد. توسعه دهندگان برنامه های قابل اعتماد می توانند حول ابزارها و API های رایج همگرا شوند تا خطر معرفی آسیب پذیری های امنیتی را کاهش دهند. این توسعه دهندگان این اطمینان را خواهند داشت که می توانند یک برنامه کاربردی را توسعه دهند و بدون توسعه بیشتر از آن در چندین دستگاه استفاده کنند.
Applications and services
A Trusty application is defined as a collection of binary files (executables and resource files), a binary manifest, and a cryptographic signature. At runtime, Trusty applications run as isolated processes in unprivileged mode under the Trusty kernel. Each process runs in its own virtual memory sandbox utilizing the memory management unit capabilities of the TEE processor. The build of the hardware changes the exact process that Trusty follows, but for example, the kernel schedules these processes using a priority-based, round-robin scheduler driven by a secure timer tick. All Trusty applications share the same priority.
برنامه ها و خدمات
برنامه Trusty به عنوان مجموعه ای از فایل های باینری (قابل اجرا و فایل های منبع)، یک مانیفست باینری و یک امضای رمزنگاری تعریف می شود. در زمان اجرا، برنامههای Trusty بهعنوان فرآیندهای مجزا در حالت غیرمجاز تحت هسته Trusty اجرا میشوند. هر فرآیند با استفاده از قابلیت های واحد مدیریت حافظه پردازنده TEE در جعبه ماسه ای(یک محیط آزمایشی در یک سیستم کامپیوتری که در آن نرم افزارهای جدید یا تست نشده می توانند به طور ایمن اجرا شوند) حافظه مجازی خود اجرا می شود. ساخت سختافزار، فرآیند دقیقی را که Trusty دنبال میکند تغییر میدهد، اما برای مثال، هسته این فرآیندها را با استفاده از یک زمانبندی مبتنی بر اولویت و دور را بین که توسط یک تیک تایمر ایمن هدایت میشود، زمانبندی میکند. همه برنامه های Trusty اولویت یکسانی دارند.
Third-party Trusty applications
Currently all Trusty applications are developed by a single party and packaged with the Trusty kernel image. The entire image is signed and verified by the bootloader during boot. Third-party application development is not supported in Trusty at this time. Although Trusty enables the development of new applications, doing so must be exercised with extreme care; each new application increases the area of the trusted computing base (TCB) of the system. Trusted applications can access device secrets and can perform computations or data transformations using them. The ability to develop new applications that run in the TEE opens up many possibilities for innovation. However, due to the very definition of a TEE, these applications cannot be distributed without some form of trust attached. Typically this comes in the form of a digital signature by an entity trusted by the user of the product on which the application runs.
بعد تکنولوژی Trusty برنامه ها چه وضعی دارند؟
در حال حاضر تمام برنامه های Trusty توسط یک طرف توسعه یافته و با img (فایل باینری) هسته Trusty بسته بندی می شوند. کل img در هنگام بوت توسط بوت لودر امضا و تایید می شود. توسعه برنامه شخص ثالث در حال حاضر در Trusty پشتیبانی نمی شود. اگرچه Trusty توسعه برنامه های کاربردی جدید را امکان پذیر می کند، انجام این کار باید با دقت بسیار انجام شود. هر برنامه جدید مساحت پایگاه محاسباتی قابل اعتماد (TCB) سیستم را افزایش می دهد. برنامه های مورد اعتماد می توانند به اسرار دستگاه دسترسی داشته باشند و می توانند محاسبات یا تبدیل داده ها را با استفاده از آنها انجام دهند. توانایی توسعه برنامه های کاربردی جدید که در TEE اجرا می شوند، فرصت های زیادی را برای نوآوری باز می کند. با این حال، به دلیل تعریف TEE، این برنامهها را نمیتوان بدون داشتن نوعی اعتماد توزیع کرد. معمولاً این به شکل یک امضای دیجیتال توسط یک نهاد مورد اعتماد کاربر محصولی که برنامه روی آن اجرا میشود ارائه میشود. یک برنامه نویس باشید میتوانید امضای APK را بعد توسعه فرض کنید
Uses and examples
Trusted execution environments are fast becoming a standard in mobile devices. Users are relying more and more on their mobile devices for their everyday lives and the need for security is always growing. Mobile devices with a TEE are more secure than devices without a TEE.
On devices with a TEE implementation, the main processor is often referred to as “untrusted”, meaning it cannot access certain areas of RAM, hardware registers, and write-once fuses where secret data (such as, device-specific cryptographic keys) are stored by the manufacturer. Software running on the main processor delegates any operations that require use of secret data to the TEE processor.
The most widely known example of this in the Android ecosystem is the DRM framework for protected content. Software running on the TEE processor can access device-specific keys required to decrypt protected content. The main processor sees only the encrypted content, providing a high level of security and protection against software-based attacks.
There are many other uses for a TEE such as mobile payments, secure banking, multi-factor authentication, device reset protection, replay-protected persistent storage, secure PIN and fingerprint processing, and even malware detection.
موارد استفاده و مثال
محیط های اجرایی قابل اعتماد به سرعت در حال تبدیل شدن به یک استاندارد در دستگاه های تلفن همراه هستند. کاربران برای زندگی روزمره خود بیشتر و بیشتر به دستگاه های تلفن همراه خود متکی هستند و نیاز به امنیت همیشه در حال افزایش است. دستگاه های تلفن همراه دارای TEE از دستگاه های بدون TEE ایمن تر هستند.
در دستگاههایی با پیادهسازی TEE، پردازنده اصلی اغلب به عنوان «غیر قابل اعتماد» شناخته میشود، به این معنی که نمیتواند به مناطق خاصی از RAM، رجیسترهای سختافزار، و فیوزهای یکبار نوشتن که در آن دادههای مخفی (مانند کلیدهای رمزنگاری خاص دستگاه) وجود دارد، دسترسی پیدا کند. توسط سازنده ذخیره می شود. نرم افزار در حال اجرا بر روی پردازنده اصلی هر عملیاتی را که نیاز به استفاده از داده های مخفی داشته باشد به پردازنده TEE واگذار می کند.
شناختهشدهترین نمونه آن در اکوسیستم اندروید، چارچوب DRM برای محتوای محافظتشده است. نرم افزاری که روی پردازنده TEE اجرا می شود می تواند به کلیدهای مخصوص دستگاه مورد نیاز برای رمزگشایی محتوای محافظت شده دسترسی داشته باشد. پردازنده اصلی فقط محتوای رمزگذاری شده را می بیند و سطح بالایی از امنیت و محافظت در برابر حملات مبتنی بر نرم افزار را فراهم می کند.
بسیاری از کاربردهای TEE مانند پرداختهای تلفن همراه، بانکداری ایمن، احراز هویت چند عاملی، حفاظت از تنظیم مجدد دستگاه، ذخیرهسازی دائمی محافظت شده در برابر پخش مجدد، پردازش پین ایمن و اثر انگشت و حتی تشخیص بدافزار وجود دارد.
برسی اجمالی و نتیجه گیری
Trusty OS یک هایپروایزر هست که مستقیم روی سخت افزار اجرا میشود و آندروید را دربر میگیرد این یک امر بسیار انتزاعی میباشد برای اطلاعات بیستر به کتاب های سیستم های عامل پیشرفته مراجعه کنید اینترنت تا این حد میتواند توضیح دهد.
یک دیدگاه برای “Trusty-Trusted Execution Environment (TEE)”
عالی وبسیار کاربردی