Skip to content

mlogic/horus

Repository files navigation

This is Horus, the scalable encryption-based security system for
large-scale storage. The latest project information can be found at
http://www.ssrc.ucsc.edu/horus.html , where you can find our FAST'13
paper that describes the Horus algorithm and system in detail.

MAINTAINER
  This project is being maintained by Yan Li <yanli@ascar.io>

SYSTEM REQUIREMENTS
  Horus has been developed and tested on Fedora 14 x86-64. It doesn't
  require any Fedora-specific features and should work on any modern
  Linux distributions, perhaps with some little tweaks.

  Required packages: gcc, check-devel, openssl

QUICK START
  1. Build the package:
  % ./configure
  % make
  % make install

USAGE
  Using file setting tools:
      % ~/bin/horus-file FILENAME master-key 'horus master key'

      % ~/bin/horus-file FILENAME kht-block-sizes 1G 256M 64M 16M 4M 1M 256K 64K 16K 4K

      % ~/bin/horus-file FILENAME client add 172.16.0.0/12 64M 128M
      prefix = 172.16.0.0/12 start = 67108864 end = 134217728

      % ~/bin/horus-file FILENAME show
      * the unit is 4096-bytes block.
      file: FILENAME
        master key:            horus master key
        kht block sizes:       262144 65536 16384 4096 1024 256 64 16 4 1
        client range:         
          client[0]: 172.16.0.0/12: 16384 - 32768

      % ~/bin/horus-file FILENAME delete

  Using the key calculation tools:

      % python etc/python.py <offset> <masterkey>

      % ~/bin/horus-key FILENAME <offset>

      % ~/bin/horus-key FILENAME -x 3 -y 3

  Starting the Key Distribution Server (KDS):
      % ~/sbin/kds_server

  Using the library:
    The Horus library is controlled by the following environment variables:
      DISABLE_CONFIGPRINT
      DISABLE_WRITEBACK
      ENABLE_AES
      ENABLE_AGGREGATE
      ENABLE_HORUS
      ENABLE_SPINWAIT
      HORUS_DEBUG
      HORUS_KDS_SERVER
      HORUS_VERBOSE
      REQUEST_LEVEL
      HORUS_FILENAME

SETUP THE SYSLOG
  Horus can log to syslog if needed:

  1. add syslog.conf a line about local7 facility.
     local7.*                       /var/log/local7.log

  2. touch /var/log/local7.log
     % sudo touch /var/log/local7.log

  3. (optional) add configuration in newsyslog.conf.
     % sudo cp $(srcdir)/misc/horus-newsyslog.conf /etc/newsyslog.d/