Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cerberus-ccs22/TAPC
https://github.com/cerberus-ccs22/TAPC
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/cerberus-ccs22/TAPC
- Owner: cerberus-ccs22
- Created: 2021-12-03T02:53:25.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-09T23:48:01.000Z (about 2 years ago)
- Last Synced: 2024-08-03T01:25:43.030Z (4 months ago)
- Language: C
- Size: 3.56 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-SGX-Open-Source - https://github.com/cerberus-ccs22/TAPC
README
# Cerberus: A Formal Approach to Secure and Efficient Enclave Memory Sharing
This is the artifacts of the paper ^
## Directory Structure
* `AbstractPlatform`: A formal model for Cerberus extended from TAP
* `Common`: Some common definitions for the formal model
* `Apps`: Implemented/Modified applications
* `KeystoneImplementation`: Cerberus implementation on top of Keystone (diff.txt includes the diff from the latest master branch)## How to Read the Code
All implementatios are incremental to the latest [Keystone](https://github.com/keystone-enclave/keystone).
Git logs have been removed to anonymize the submission.
Thus, see diff.txt in each of the components to see the difference between the latest master and our implementation## How to Test
* Follow [docs](https://docs.keystone-enclave.org) to setup initial Keystone repo.
* Replace each of the components (sdk, sm/src, keystone-driver, keystone-runtime) with the ones that are provided in this repokeystone-runtime is pulled from git repo, so we changed the URL in the [macro](https://github.com/anonymous1721/TAPC/tree/main/KeystoneImplementation/sdk/macros.cmake). This will download the correct version of Eyrie runtime.
Make sure to remove `build/examples` directory entirely before re-compiling the apps with the modified runtime.### Sqlite
For sqlite, all source code / CMakeLists.txt are included in the directory.
Thus, simply copy the sqlite directory to `sdk/examples`, and add `add_subdirectory(sqlite)` to `sdk/examples/CMakelists.txt`.Run the following command in `build` directory (of the Keystone repo)
```
make examples; cp examples/sqlite/sqlite-test.ke overlay/root; make image
```This will make the `sqlite-test.ke` package available when you boot the machine
### Darkhttpd
Darkhttpd directory does not include a host program. Instead, it can use the modified host in `sdk/exmamples/hello`.
Statically compile darkhttpd by running
```
make
```inside the `darkhttpd` directory, and then copy the `darkhttpd-static` into `build/overlay/root` directory.
And runt `make image`.Do the following to copy host program of `hello`:
```
make examples
cp examples/hello/hello-runner overlay/root
cp examples/hello/eyrie-rt overlay/root
make image
```Finally, boot the machine and run the following command
```
./hello-runner darkhttpd-static eyrie-rt
```This will start a static web server with Cerberus.