The purpose of the project is to build a modular, scalable, standards compliant, Open Source framework for integrated security facilities management. As there is a strong need of components interchangeability, heavy accent will be put on developing abstract representation of objects, policies and inheritance between them. Important strength of the project (as compared to other existing solutions) is a possibility to take advantage of some new software technologies, intensively improved and developed recently. Good examples are XML and Web Services. It is also important, that the components should be modular and conform to well known standards, because of the possibility to exchange them freely, according to special needs. I also personally believe, that making it Open Source could eventually speed up development greatly at some point in the future. Finally it speeds up development right now thanks to the possibility of using lots of already present, excellent, well tested and trusted software.
In any case this project will not concentrate on developing software directly related to security. At first the development environment (mostly Java) is in my opinion not well suited to low level, close to OS and hardware progamming. Then, such a software has usually much longer development cycle (before achieving production/stable state). Finally there is a lot of very high quality software available right now.
I do believe, that the only thing Open Source security software still lacks a bit is an integrated management.
The diagram below shows main components:
This is the information centre of the whole system. Always appears as a single instance (at least unless some High Availability comes into play). Consists of:
Generally speaking OSA::HQ has no knowledge of particular implementation of security device it keeps the policy for. It is fundamental feature of the model used. The only thing OSA::HQ knows is so called device class (and possibly subclasses). This information is stored in the object representing device, created automatically during trust relationship initialization (more on trust relationships later).
Classes of security services could be the following:
Classes and subclasses will be implemented as a boolean capabilities of devices.
Enforcement point interface serves policy encoded in XML specific for and only for the class of the device.
Multiple clients are possible in various environments, under various circumstances (a GUI client, commandline client and web client come to mind). There is a need to develop one universal set of beans communicating with a server side and reusing them in every client application.
Client interface of OSA::HQ should be constructed in such way, that clients can be relatively thin, therefore making implementation of many kinds of clients easier.
This is a translator. Indeed it consists of three parts:
This is the most isolated part of a system. During analysis phase there was a model taken into account, in which all the communications was secured by native XML Security mechanisms. Unfortunately the implementations of the above are still very immature. Therefore (at least for now), communication is always made point to point and secured by SSL. On the other hend, from the CA's point of view it does not matter if it deals with SSL or XML Sec connections.
The idea is simple: every other part of the system must have own certificate signed by OSA::CA. Initialization is done semiautomatically during components installation. Namely:
These certificates may have nothing in common with the certificates used for VPN authentication.