I propose the following high level approach for V1:
We have defined two levels of AA: "Session layer" between NSAs, and
"Request layer" at the primitive/connection context.
I pose we define a "security attributes" element that consists of:
a) Security Type := Identifies the security mechanism this element
provides.
b) Secutity Credentials := Contains a string of security
information to be interpreted by the mechanism specified in the Type field.
When initializing the NSA to NSA session, this element will authenticate
each NSA to the other, and then each NSA will decide whether the other
[remote] NSA is authorized to communicate with the local NSA.
For any service request, the request must be authorized. The Service
Definition will specify the set of recognized and allowable AA
mechanisms for each network. The user request must specify one
allowable mechanism in the service request.
Initially, the NSI CS spec will require NSAs to recognize and support
two levels of security:
a) "simple security" consisting of a string passed to the
authorizing agent for lookup in a flat text file,
b) "better security" a more sophisticated AA scheme such as X509
or the like (details TBD by someone who understands these issues in
greater detail.)
I will code this into the XSD for the Service Defs. Any comments or
additional necessary detail, please let me know.
Jerry