The Secure Delete Object Store
The Secure Delete Object Store (SDOS) implements a key management mechanism that enables cryptographic deletion of objects. SDOS is implemented as an API proxy for the Swift object store from the OpenStack project. SDOS can be used with any unmodified Swift client and server.
You can find a lot of details about the concepts, as well as about the implementation, in my Dissertation: http://dx.doi.org/10.18419/opus-9571
deployment automation for the whole system can be found at:
https://github.com/sdos/deploy-sdos
- client and server support for Swift REST protocol
- transparent proxy operation between any swift client/server
- content encryption and secure deletion configurable per container
- pseudo-object API allows SDOS related special requests within the Swift protocol
- different cascade geometries per container
- different master-key security per container
- master key wrapped by static testing key
- master key wrapped by user defined pass phrase
- master key wrapped by Trusted Platform Module (TPM)
- multithreaded operation of key cascade
- caching for nodes and object mapping
- extensive logging/debugging
Always run the setenv.sh
script first to set the pythonpath and virtual environment.
Then you can either manually run one of the test/experimental classes:
. setenv.sh
python mcm/sdos/tester/PerfTest.py
python mcm/sdos/tester/GeomTest.py
...
or start a service that offers the Swift API proxy to which your Swift clients can connect:
. setenv.sh
python runService_Development.py
is currently done by setting parameters in
mcm/sdos/configuration.py
make sure to specify a python 3 or higher interpreter for your virtualenv (SDOS doesn't support python 2) in the main directory
virtualenv venvSDOS
. setenv.sh
(included in setenv) source venvSDOS/bin/activate
pip install -r requirements.txt
to leave venv
deactivate
just install the existing reqs
pip install -r requirements.txt
install new packages
pip install <package>
save new packages to requirements:
pip freeze --local > requirements.txt
update existing packages
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U
pip freeze --local > requirements.txt