Towards Adaptive Secure Group CommunicationSebastian Gutierrez-Nolasco , Nalini Venkatasubramanian , Mark-Oliver Stehr and Carolyn TalcottThis work is supported by: the ONR MURI Project CONTESSA . |
Abstract:
Traditionally, adaptability in communication frameworks has been restricted to predefined choices without taking into consideration tradeoffs between them and the application requirements. Furthermore, different applications with an entire spectrum of requirements will have to adapt to these predefined choices instead of tailoring the communication framework to fit their needs. We extend an executable specification of a state-of-the-art secure group communication subsystem to explore several dimensions of adaptability (synchrony, security, mobility, reliability, timeliness) and propose various generic optimizations, while preserving essential security guarantees.
The general methodology we employ for system design and analysis is
based on an executable specification language called Maude (see Maude web page ). Its
theoretical foundation is rewriting logic, a logic with
an operational as well as a model-theoretic semantics. Formal
prototyping is a key ingredient of our methodology, which allows us to
experiment with a abstract mathematical but executable specification of
the system early in the design phase. Our experience indicates that the
combination of mathematical rigor with execution and analysis tools
such as Maude leads
to better understanding of the system and often pinpoints potential
problems.
To employ this methodology in the exploration of adaptive secure group
communication, we build upon abstract executable specifications of all
relevant components of Secure Spread (see Towards a
Formal Specification of the Spread Group Communication System web page
).
Relevant References:
Presentations:
The current state of our specification is available below, but
please note that it is a snapshot of ongoing work and still incomplete
regarding various aspects.
The Formal Specification in Maude 2.0 (available here ) can be found here .
This package contains the following files:
- README : instructions on how to run the examples
- Common data types and operations
natutil.maude
natural numbers and operations
proc.maude
processes (server daemons)
agent.maude
agents (potential clients)
group.maude
logical groups
state.maude
distributed system state
mode.maude
message delivery modes
- Configuration layer
conf.maude
configurations (instances of process membership in connected components)
cmessage.maude
configuration layer messages
constraints.maude
delivery contraints
capi.maude
configuration level API
ccommon.maude
common for the following two modes
coperational.maude
normal operational mode
cchange.maude
transitional mode
cspread.maude
combined configuration layer specification
- Group layer
view.maude
views (instances of agent membership)
gmessage.maude
group layer messages
gapi.maude
group layer API
spread.maude
combined group layer specification
- Flush layer
fmessage.maude
flush layer messages
fapi.maude
flush layer API
flushspread.maude
combined flush layer specification
- Secure layer
cliques.maude
Cliques toolkit specification
smessage.maude
secure layer message
sapi.maude
secure layer API
groupvar.maude
group specific variables
assockey.maude
history of keys indexed by keyid
assocmembset.maude
history of keys indexed by membership
securespread.maude
combined secure layer specification
- Load all layers
all.maude
Load all layers
- Controller
controller.maude
a simple controller language
test.maude
prelude for configuration layer testing
gtest.maude
prelude for group layer testing
ftest.maude
prelude for flush layer testing
stest.maude
prelude for secure layer testing
- Examples: