From 79c5df5f97317a5712ebc8e9cbc72f7d49ee7d19 Mon Sep 17 00:00:00 2001 From: Instrumental Date: Fri, 25 May 2018 20:54:35 -0500 Subject: [PATCH] Create Security Overview Issue-ID: AAF-331 Change-Id: If588c053710e35554aa31d7dd41d9191be155840 Signed-off-by: Instrumental --- docs/index.rst | 2 +- docs/sections/architecture/aaf-object-model.jpg | Bin 189989 -> 0 bytes docs/sections/architecture/aaf_architecture.rst | 4 +- .../architecture/images/SecurityArchAAF.svg | 55 +++++ .../architecture/images/SecurityArchAAFOrg.svg | 128 +++++++++++ .../architecture/images/SecurityArchBasic_1.svg | 48 ++++ .../architecture/images/SecurityArchBasic_TLS.svg | 62 +++++ .../architecture/images/SecurityArchCADI.svg | 64 ++++++ .../architecture/images/SecurityArchFull.svg | 255 +++++++++++++++++++++ docs/sections/architecture/{ => images}/aaf-cm.png | Bin .../architecture}/images/aaf-object-model.jpg | Bin docs/sections/architecture/security.rst | 130 ++++++++++- 12 files changed, 738 insertions(+), 10 deletions(-) delete mode 100644 docs/sections/architecture/aaf-object-model.jpg create mode 100644 docs/sections/architecture/images/SecurityArchAAF.svg create mode 100644 docs/sections/architecture/images/SecurityArchAAFOrg.svg create mode 100644 docs/sections/architecture/images/SecurityArchBasic_1.svg create mode 100644 docs/sections/architecture/images/SecurityArchBasic_TLS.svg create mode 100644 docs/sections/architecture/images/SecurityArchCADI.svg create mode 100644 docs/sections/architecture/images/SecurityArchFull.svg rename docs/sections/architecture/{ => images}/aaf-cm.png (100%) rename docs/{ => sections/architecture}/images/aaf-object-model.jpg (100%) diff --git a/docs/index.rst b/docs/index.rst index dacc9d06..3b903c24 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -32,7 +32,7 @@ AAF contains some elements of Role Based Authorization, but includes Attribute B |image0| -.. |image0| image:: images/aaf-object-model.jpg +.. |image0| image:: sections/architecture/images/aaf-object-model.jpg :height: 600px :width: 800px diff --git a/docs/sections/architecture/aaf-object-model.jpg b/docs/sections/architecture/aaf-object-model.jpg deleted file mode 100644 index 30caa7d58630c1389c00f68956017784b7153f9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189989 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ν5$_qo9kMY)Ysp<^mVljb0*Oc}`s;x% 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 + + + + + + + Service + + + + + + Cert Man + + + + + + OAuth + + + + + AAF + + (Application Authorization Framework) + + + + + Authn + + + + + + Authz + + + + + + Locator + + + + + + GUI + (Management) + + + + diff --git a/docs/sections/architecture/images/SecurityArchAAFOrg.svg b/docs/sections/architecture/images/SecurityArchAAFOrg.svg new file mode 100644 index 00000000..f003b810 --- /dev/null +++ b/docs/sections/architecture/images/SecurityArchAAFOrg.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + Sign + CSRs + + + Delegate + by Domain + + + + + + + + + + + Service + + + + + + Cert Man + + + + + + OAuth + + + + + AAF + + (Application Authorization Framework) + + + + + Authn + + + + + + Authz + + + + + + Locator + + + + + + GUI + (Management) + + + + + + + + Certificate + Authority + + + + + + DNS + (Externally + Visible) + + + + + + + + Formal + Organization + + + + + + Notification + System + + + + + + Identity/ + Hierarchy + + + + + + Company + Authn(s) + + + + + Organizationally Defined + + + diff --git a/docs/sections/architecture/images/SecurityArchBasic_1.svg b/docs/sections/architecture/images/SecurityArchBasic_1.svg new file mode 100644 index 00000000..1066f2c3 --- /dev/null +++ b/docs/sections/architecture/images/SecurityArchBasic_1.svg @@ -0,0 +1,48 @@ + + + + + + + Application + Two + + + + + + User One + (Person) + + + + + + + + + + + + Application + One + + + + Application + Two + + + + + + User One + (Person) + + + + Application + One + + + diff --git a/docs/sections/architecture/images/SecurityArchBasic_TLS.svg b/docs/sections/architecture/images/SecurityArchBasic_TLS.svg new file mode 100644 index 00000000..664593bd --- /dev/null +++ b/docs/sections/architecture/images/SecurityArchBasic_TLS.svg @@ -0,0 +1,62 @@ + + + + + + TLS 1.2+ + + + TLS 1.2+ + + + HTTP/S + + + HTTP/S + + + + + + Application + Two + + + + + + User One + (Person) + + + + + + + + + + + + Application + One + + + + Application + Two + + + + + + User One + (Person) + + + + Application + One + + + diff --git a/docs/sections/architecture/images/SecurityArchCADI.svg b/docs/sections/architecture/images/SecurityArchCADI.svg new file mode 100644 index 00000000..b05a7f90 --- /dev/null +++ b/docs/sections/architecture/images/SecurityArchCADI.svg @@ -0,0 +1,64 @@ + + + + + + X509 Client + + + X509 Client + + + or BasicAuth + + + + + + + + CADI Filter + + + + + + + + + CADI Filter + + + + + Application + Two + + + + + + User One + (Person) + + + + HTTP/S + + + + + + + + + + + Application + One + + + HTTP/S + + + diff --git a/docs/sections/architecture/images/SecurityArchFull.svg b/docs/sections/architecture/images/SecurityArchFull.svg new file mode 100644 index 00000000..0093eaa1 --- /dev/null +++ b/docs/sections/architecture/images/SecurityArchFull.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + 1) User/Password + validation (if Basic Auth) + + + 2) Obtain + AAF Permissions + + + + + + + Batch + Maintenance + + + + + + + + Expiring + Events + + + + + + + + + + + + + + + Cassandra + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sign + CSRs + + + Delegate + by Domain + + + + + + + + + + + Service + + + + + + Cert Man + + + + + + OAuth + + + + + AAF + + (Application Authorization Framework) + + + + + Authn + + + + + + Authz + + + + + + Locator + + + + + + GUI + (Management) + + + + + + + + Certificate + Authority + + + + + + DNS + (Externally + Visible) + + + + + + + + Formal + Organization + + + + + + Notification + System + + + + + + Identity/ + Hierarchy + + + + + + Company + Authn(s) + + + + + Organizationally Defined + + + + + X509 Client + + + X509 Client + + + or BasicAuth + + + + + + + + CADI Filter + + + + + + + + + CADI Filter + + + + + Application + Two + + + + + + User One + (Person) + + + + HTTP/S + + + + + + + + + + + Application + One + + + HTTP/S + + + diff --git a/docs/sections/architecture/aaf-cm.png b/docs/sections/architecture/images/aaf-cm.png similarity index 100% rename from docs/sections/architecture/aaf-cm.png rename to docs/sections/architecture/images/aaf-cm.png diff --git a/docs/images/aaf-object-model.jpg b/docs/sections/architecture/images/aaf-object-model.jpg similarity index 100% rename from docs/images/aaf-object-model.jpg rename to docs/sections/architecture/images/aaf-object-model.jpg diff --git a/docs/sections/architecture/security.rst b/docs/sections/architecture/security.rst index fd10dc98..7c4ef85d 100644 --- a/docs/sections/architecture/security.rst +++ b/docs/sections/architecture/security.rst @@ -9,21 +9,137 @@ Communicating When one compute process needs to communicate to another, it does so with networking. The service side is always compute process, but the client can be of two types: - - People (via browser, or perhaps command line tool) - - Compute process talking to another computer process. + * People (via browser, or perhaps command line tool) + * Compute process talking to another computer process. -Thus, the essential building blocks of any networked system is made up of +In larger systems, it is atypical to have just one connection, but will the call initiated by the initial actor will cause additional calls after it. Thus, we demonstrate both a client call, and a subsequent call in the following: +Thus, the essential building blocks of any networked system is made up of a caller and any subsquent calls. + +.. image:: images/SecurityArchBasic_1.svg + :width: 70% + :align: center -In larger systems, it is atypical Communicating *Securely* ------------------------ Whenever two processing entities exist that need to communicate securely, it is *essential* that - - The communications between the two are encrypted - - The identities of the caller and callee are established (authentication) - - The caller must be allowed to do what it is asking to do (authorization) + * The communications between the two are encrypted + * The identities of the caller and callee are established (authentication) + * The caller must be allowed to do what it is asking to do (authorization) + + +**Encryption** + +Encryption is provided by HTTP/S with the TLS 1.2+ protocol. Lesser protocols can also be added, but it is highly recommended that the protocol go no lower than TLS 1.1 + +.. image:: images/SecurityArchBasic_TLS.svg + :width: 70% + :align: center + +**Establishing Identity** + +*Client Side* + +In order to be secure of the Server Identity, the client will: + * Carefully select the Endpoint for the server (URL) + * The Service side Certificate chain obtained by TLS must ultimately be signed by a Certificate Authority that is trusted. + +*Server Side* + +The server side is a little harder to accomplish, because, while a client can choose carefully whom he contacts, the server, ultimately, might be contacted by literally anyone. + +To solve this difficult problem, the CADI Framework Filter is attached to the incoming transaction before any code by Application 1 or Application 2 is invoked. The CADI Framework does the following: + A) Establishes the claimed Identity (this differs by Protocol) + + i) The Identity needs to be a Fully Qualified Identity (FQI), meaning it has + + #) An ID approved by Organization (such as bob) + #) A Domain establishing where the Credential is defined (ex: @bobs.garage.com) + #) FQI Example: bob@bobs.garage.com + + B) Validates the credential of the FQI ( *Authentication* ) + + i) Basic Auth (User/Password) is validated against the system supporting the domain + ii) AAF Certman can create a fine-grained X509 certificate, which can derive FQI + iii) If the FQI fails the Credential test in any way, the transaction is terminated + + C) Obtain *Authorization* information + + i) This might include a call to AAF which will return all the Permissions of the User per Application Context + ii) This might involve pulling these from Cache + iii) This also might be pulled from Token + +.. image:: images/SecurityArchCADI.svg + :width: 70% + :align: center + +Enabling the Client to Send Securely +------------------------------------ + +Once a secure scenario is in place, the client must provide more information, or he will be rejected by the secured server. + + * FQI (Fully Qualified Identity) + * Credential + * If User/Password, then the client must send via "BasicAuth" Protocol + * If two-way X509 identity, then the client must load the Cert and Private Key into the Client Software outside of the calling process. + * If Token based Identity, such as OAuth2, the token must be placed on the call in just the right way. + * Upstream Identity + * Application Two might well want to process Authorizations based on the *end-user*, not the current caller. In this scenario, Application One must provide the End User FQI in addition to its own before Application Two will accept. + +In order to do this efficiently, ONAP services will use the CADI Client, which includes + * Connection Information by Configuration + * Encryption of any sensitive information in Configuration, such as Password, so that Configuration files will have no clear-text secrets. + * Highly scalable Endpoint information (at the very least, of AAF components) + * The ability to propogate the Identity of originating Caller (User One) + +Obtaining Security Information +------------------------------ + +In order for the client and server to perform securely, the need information they can trust, including + * TLS needs X509 Certificate for the Server and any Client wishing to authenticate using Certificates + * Any User/Password Credentials need to be validated real time + * The server needs comprehensible Authorization information, preferably at the Application Scope + * The client needs to find a server, even if the server must be massively geo-scaled + +The AAF Suite provides the following elements: + * AAF Service + This service provides fine-grained Authorization information, and can, if required, also provide specialized Passwords for Applications (that allow for configuration migrations without a maintainance window) + * OAuth + AAF provides Token and Introspection service, but can also delegate to Organizatinally defined OAuth Services as well. + * Locator + Provides machine and port information by geo-location for massively scalable services. This is optional for ONAP services, but required for AAF as part of its reliability and scalability solution. + * GUI + AAF provides a GUI for managing Namespaces (for Applications), Roles, Permissions and Credentials. + * Certificate Manager + Since AAF has fine-grained information about Identities, it can provide Certificates with FQIs embedded. CADI Framework understands when and how to trust these FQIs. When used, these Certificates provide enhanced speed and additional resiliency to the system, as they do not require network connections to validate. + +.. image:: images/SecurityArchAAF.svg + :width: 30% + :align: center + +The Organization +---------------- + +AAF is only a tool to reflect the Organization it is setup for. AAF does not, for instance, know what IDs are acceptable to a particular company. Every Organization (or Company) will also likely have its own Certificate Authority and DNS. Most importantly, each Organzation will have a hierarchy of who is responsible for any give person or application. + + * AAF's Certman connects to the Organization's CA via SCEP protocol (Others can be created as well) + * AAF ties into the Organizational hierarchy. Currently, this is through a feed of IDs and relationships. + * AAF can process some Passwords, but delegate off others based on domain. + +.. image:: images/SecurityArchAAFOrg.svg + :width: 70% + :align: center + +The Whole Picture +----------------- + +CADI is a framework that enforces validations of Identities, and uses those Identities to obtain Authorization information for the Server. The CADI client ensures that the right information is passed during secure connections. +AAF provides essential information based on the Organization to services in order to enable secure transactions between components. It also provides sustaining processing capabilities to ensure that Credentials and Authorization relationships are maintained. +.. image:: images/SecurityArchFull.svg + :width: 90% + :align: center -- 2.16.6