AMQP Security – Encryption/Signature proposal

advertisement
AMQP Security SIG
Subbu Srinivasan
Cisco Systems
Introduction
This write up explains the initial proposal for supporting encryption/digital signature
operations as part of the basic AMQP protocol, this particular proposal addresses the
infrastructure for the base protocol to offer security on the wire. It DOES not deal with
the support required for additional application level semantics like partial content
encryption and non-repudiation.
The security sig believes that we should focus on proposing message level crypto
semantics and not on the transport level semantics since the transport level semantics are
well defined and understood. Additionally it is the committee’s belief that we should
push strongly for message level semantics to be part of the specification for several well
documented reasons, we also refrain from making any implementation specific
guidelines in this document.
Frames are units of physical transmission between two AMQP entities and hence any
crypto related semantics need to be introduced at a higher level.
General Description
The current specification lays out the following kinds of segments.
1. Type = 0, Network control
2. Type = 1, Session control
3. Type = 2, Execution control
4. Type = 17, Method
5. Type = 18, Content header
6. Type = 19, Content body
7. Type = 24, Heartbeat
8. Type = 28, Trace
9. Type= XX Security Context - New
10. Type= YY Signature Context - New
Security is an orthogonal component that spans across all the boundaries; hence we
introduce the notion of a sec-context and a signature segment. Security context segment
will be used to attach a security context object that can be used by peers for several
security related aspects. Signature context is a special segment that gets added at the end
of the segment that contains the computed signature of the content segments.
One sample segment trace on the wire will look like this.
[method][sec-context] [header] [body] [body] [signature
context]
The signed value will be computed by processing the various body
frames and appending a frame or multiple frames at the end. This
follows a logical step in how signature calculation/verification is
done.
AMQP spec defines notion of field tables that are table value pairs. We can use this
mechanism to carry the security context object in the segments to the other peer.
Field Table Definitions
The security context and the signature segment can carry table value pairs similar to the
header segment. We introduce the following types of table value pairs.
Field table values for security context frame
Name
E
Type
Zero length field
C
Variable length field
D
Zero length field
S
Zero length field
Comment
Indicates that the content
segment is encrypted, all
the content frames in this
segment are encrypted
This contains the actual
security context created as
part of this session
field indicates that content
has been signed
field indicates that header
has been signed
Field table values for signature context frame
Name
D
Type
Variable length field
A
Fixed length field
Comment
Indicates that this value pair
contains the signed value of
the content segments
Denotes the algorithm used
for computing the signature
Field table values for header frame
Name
S
Type
Variable length
A
Fixed length
Comment
Indicates that this value pair
contains the signed value of
the header
Denotes the algorithm used
for computing the signature
Download