cp .env.example .env
# edit .env
docker pull enclaive/php-sgx
# or
docker compose up
Warning: This quick setup is only intended for development environments. You are encouraged to change the insecure default credentials and check out the available configuration options in the build section for a more secure deployment.
PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group
Intel Security Guard Extension (SGX) delivers advanced hardware and RAM security encryption features, so called enclaves, in order to isolate code and data that are specific to each application. When data and application code run in an enclave additional security, privacy and trust guarantees are given, making the container an ideal choice for (untrusted) cloud environments.
Application code executing within an Intel SGX enclave:
Following benefits come for free with PHP-SGX :
The following cloud infrastractures are SGX-ready out of the box
Confidential compute is a fast growing space. Cloud providers continiously add confidential compute capabilities to their portfolio. Please contact us if the infrastracture provider of your preferred choice is missing.
Check for Intel Security Guard Extension (SGX) presence by running the following
grep sgx /proc/cpuinfo
Alternatively have a thorough look at Intel's processor list. (We remark that macbooks with CPUs transitioned to Intel are unlikely supported. If you find a configuration, please contact us.)
Note that in addition to SGX the hardware module must support FSGSBASE. FSGSBASE is an architecture extension that allows applications to directly write to the FS and GS segment registers. This allows fast switching to different threads in user applications, as well as providing an additional address register for application use. If your kernel version is 5.9 or higher, then the FSGSBASE feature is already supported and you can skip this step.
There are several options to proceed
If: No SGX-ready hardware
Azure Confidential Compute cloud offers VMs with SGX support. Prices are fair and have been recently reduced to support the developer community. First-time users get $200 USD free credit. Other cloud provider like OVH or Alibaba cloud have similar offerings.
Elif: Virtualization
Ubuntu 21.04 (Kernel 5.11) provides the driver off-the-shelf. Read the release. Go to download page.
Elif: Kernel 5.9 or higher
Install the DCAP drivers from the Intel SGX repo
sudo apt update
sudo apt -y install dkms
wget https://download.01.org/intel-sgx/sgx-linux/2.13.3/linux/distro/ubuntu20.04-server/sgx_linux_x64_driver_1.41.bin -O sgx_linux_x64_driver.bin
chmod +x sgx_linux_x64_driver.bin
sudo ./sgx_linux_x64_driver.bin
sudo apt -y install clang-10 libssl-dev gdb libsgx-enclave-common libsgx-quote-ex libprotobuf17 libsgx-dcap-ql libsgx-dcap-ql-dev az-dcap-client open-enclave
Else: Kernel older than version 5.9
Upgrade to Kernel 5.11 or higher. Follow the instructions here.
The recommended way to get the enclaive PHP-SGX Open Source Docker Image is to pull the prebuilt image from the Docker Hub Registry.
docker pull enclaive/php-sgx:latest
To use a specific version, you can pull a versioned tag. You can view the list of available versions in the Docker Hub Registry.
docker pull enclaive/php-sgx:[TAG]
If you wish, you can also build the image yourself.
docker build -t enclaive/php-sgx:latest 'https://github.com/enclaive/enclaive-docker-php-sgx.git#master'
Important: PHP-SGX runs in an enclave turning the application into an in-memory, fully encrypted process. Persistance is thus not guaranteed. Any changes made through the PHP admin interface are lost when the enclave is stopped. For production usage, we strongly advise taking additional measures to keep track of changes, be it through a CI/CD pipeline or be it through the in-build Akeeba backup plugin.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Don't forget to give the project a star! Spread the word on social media! Thanks again!
Distributed under the Apache License 2.0 License. See LICENSE for more information.
enclaive.io - @enclaive_io - [email protected] - https://enclaive.io
This project greatly celebrates all contributions from the open source community. Special shout out to Dmitrii Kuvaiskii from Intel/gramine project and the EdgelessDB team for their support.
This software listing is packaged by enclaive.io. The respective trademarks mentioned in the offering are owned by the respective companies, and use of them does not imply any affiliation or endorsement.
Content type
Image
Digest
sha256:470f06d40…
Size
124.8 MB
Last updated
about 4 years ago
docker pull enclaive/php-sgx