Intel SGX Extensions, Tutorial. Foreword and full course content
Over the past few months, Intel’s blog published a Russian translation of a series of tutorials from the Intel Developer Zone dedicated to the use of Intel Software Guard Extensions in programming - the Intel SGX Tutorial . The publication stretched out over time, so for those who decided to systematically study this issue, we made a general index of articles in both the original language and Russian. After the release of new posts (and the author promises to continue) and their translation, they will also be added here.
Under the cut you will also find the requirements for software and hardware to study the course.
Brief Preface
Throughout the series of posts, we will develop a password manager. The result, of course, will not be a commercial product, but it will have all the necessary functionality. In short, the application will be simple to fit in with a textbook, but not primitive to be useful to learn.
Having studied all the posts in the series, you will learn how to:
- Identify application secret information
- apply the principles of creating an enclave,
- use trusted features in the enclave,
- create an additional code branch to support platforms that cannot work with Intel SGX,
- use Intel SGX debugger,
- Create an Intel SGX application installation package.
This series of articles will cover all stages of the Intel SGX application development cycle, from design to development, testing, packaging, and deployment.
Getting started
When starting a course, make sure that you have everything you need from a hardware and software point of view.
Component | Sure | A comment |
---|---|---|
Hardware requirements | ||
Intel Processor with Intel Secure Key Technology | Yes | Our password manager will actively use the random number generator provided by Intel Secure Key technology. A list of processors with its support can be found on the ARK website . |
6th Generation Intel Core processor and BIOS supporting Intel SGX | Not | For most of the tutorial, a processor with Intel SGX support is necessary, but development can be done on a computer without it, and Intel SGX applications can run on the emulator included in the SDK. |
Software requirements | ||
Intel Software Guard Extensions (Intel SGX) SDK v1.6 | Yes | Required for Intel SGX Application Development. |
Microsoft Visual Studio 2013 Professional Edition | Yes | Required for SDK. Each SDK release is tied to a specific version of Visual Studio to ensure the wizards, development tools, and integration are functional. |
Intel Parallel Studio XE 2013 Professional Edition for Windows | Not | Recommended, but not required for development. |
Original series of articles in English
- Part 1, Intel SGX Foundation
- Part 2, Application Design
- Part 3, Designing for Intel SGX
- Part 4, Enclave Design
- Part 5, Enclave Development
- Part 6, Dual Code Paths
- Part 7, Refining the Enclave
Series of articles in Russian
- Part 1, Intel SGX basics - technology overview, the basis for the rest of the series.
- Part 2, application design — A description of the high-level specification for a specific application: a password manager.
- Part 3, Design for Intel SGX - Discussing application design with Intel SGX in mind.
- Part 4, enclave design - the beginning of enclave design.
- Part 5, enclave development - completion of the first version of the enclave.
- Part 6, two branches of code - adapting our application to platforms that support and do not support Intel SGX.
- Part 7, refinement of the enclave - improving the enclave and its interface, minor updates for simplicity and performance.
At the end of each article in the series, you will find a link to this index. Creative success!