Trust Modeling for Security Architecture Development
Information technology architects must build applications, systems, and networks that match ordinary peoples' sociological expectations of trust in terms of identity, authentication, service level agreements, and privacy. Yet the inherent insecurity of many business systems is, in fact, the failure of the underlying security architecture upon which those systems are built. In particular, deficient trust models often fail to address every layer of business, technology, people, and process. And the consequence might be an implementation with weaker security than the designer intended or expected. The trust model relies on complete requirements that include business, technical, legal, regulatory, and fiduciary requirements. We recommend that you develop a formalized trust model as part of a security architecture methodology and risk analysis for all business systems to ensure that they are protected according to their stated requirements and identified risk thresholds.
A key principle of effective security design and implementation is that security should be built into every layer of a solution rather than added as an afterthought. This Sun BluePrints_ OnLine article describes the vocabulary of trust relationships and demonstrates the practical importance of using trust modeling to formalize the threshold for risk.
This article shows how to use a trust model to accomplish the following tasks:
Elaborate on and provide context to the other components of a security architecture
Determine and formalize a threshold for risk
Support the risk analysis process utilized during the development of a security architecture
Attenuate discovered risks
As with many seemingly complex concepts, a good starting point is to consider the commonplace, everyday meaning of a word. Trust is an important part of our lives and it has numerous definitions. Consider questions like the following, which we deal with regularly even if we don't formalize a model:
What does it take to establish trust?
How do I determine the degree of trust to assign to an individual or process?
Would I trust a recommendation from an auto mechanic or a child care provider the same way?
According to the ITU-T X.509, Section 3.3.54, trust is defined as follows:
"Generally an entity can be said to 'trust' a second entity when the first entity makes the assumption that the second entity will behave exactly as the first entity expects."
For the sake of defining trust and trust modeling relative to security architecture methodology, the following set of principles or elements are offered:
Trust is a characteristic and quality of a security architecture.
Trust is a balancing of liability and due diligence. For example, you must decide how much effort to expend to reduce liability to an acceptable level for a particular business proposition and stated security policy. You must establish an equilibrium of trust.
Trust is the enabling of confidence that something will or will not occur in a predictable or promised manner. The enabling of confidence is supported by identification, authentication, accountability, authorization, and availability.
Trust is the binding of unique attributes to a unique identity, for example, accountability. This is both a qualitative and a subjective measure of expectations regarding another's behavior and relative to a defined security policy. Essentially, a trust relationship is established when a satisfactory level of confidence in the attributes provided by an entity is achieved.
Trust is defined as a binary relationship, or set of compounded binary relationships, based on individual identity or unique characteristic validation. That is, trust is the establishment of a trust relationship through a validation process and the subsequent use of that relationship in some transactional context.
To establish trust or confidence, there must be a binding of unique attributes to a unique identity, and the binding must be able to be tested satisfactorily by a relying entity. When you achieve a satisfactory level of confidence in the attributes provided by an entity, you establish a trust relationship. This element of trust is commonly called authentication.
Trust involves a binary relationship, or a set of compounded binary relationships based on validation of unique individual identity. Consider the following examples of simple trust models:
A trusts B. (Note that this means A can validate the unique identity of B. It does not mean that B necessarily trusts A.)
A trusts B, and B trusts A.
A trusts B, B trusts C, therefore, A trusts C.
It is also important to note what a trust model is not. A trust model is not the particular security mechanisms utilized within a particular security architecture. Rather, it is the combination of those security mechanisms in conjunction with the security policy when they address all business, technical legal, regulatory, or fiduciary requirements to the satisfaction of a relying entity.
The examples noted here are, in effect, simple trust models. So let's proceed to the characteristics of trust that shape a trust model.
Defining Trust Modeling
A security architecture based on an acceptable trust model provides a framework for delivering security mechanisms. Trust modeling is the process performed by the security architect to define a complementary threat profile and trust model based on a use-case-driven data flow analysis. The result of the exercise integrates information about the threats, vulnerabilities, and risk of a particular information technology architecture. Further, trust modeling identifies the specific mechanisms that are necessary to respond to a specific threat profile. The data flow analysis process is further explained and diagramed in "Example of a Data Flow Analysis" on page 11.
To provide a baseline, we define trust modeling as follows:
A trust model identifies the specific mechanisms that are necessary to respond to a specific threat profile.
A trust model must include implicit or explicit validation of an entity's identity or the characteristics necessary for a particular event or transaction to occur.
Gradients of Trust
The purpose of a trust model is to respond to a specific threat profile. A threat profile is the set of threats and vulnerabilities identified through a use-case-driven data flow analysis that is particular to an organization. Essentially, a threat profile identifies likely attackers and what they want.
The level of trust necessary for one organization or circumstance may be different from the level of trust required by another organization or circumstance. For example, the level of assurance that an organization needs regarding the authentication of a user may be different in particular use cases.
Trust exists on a gradientthere is no one-size-fits-all solution. To illustrate this point, consider the requirements of two institutions: a public library and a financial institution.
The library may implement a minimal trust model for those who simply want to browse the stacks. Perhaps the only check will be upon exit to ensure books are not being stolen. However, the library will probably implement a somewhat more stringent model for those who want to check out books. Commonly, the library will issue a library card with your name on it, and perhaps with your picture, to increase their trust that you are who you say you are.
There may be specialized collections (for example, rare manuscripts) that are accessible only to qualified researchers. Your library card serves to authenticate you, but you need additional privileges beyond what is standard. Granting specific access privileges is the process called authorization. A possible requirement for this authorization would be proof that you are on the staff of a recognized educational institution.
Now, consider a financial institution that is entrusted to maintain a great deal of personal information about clients and that is heavily regulated by various governmental agencies. Clearly, a more robust trust model is in order.
For example, if a customer wants to use a home banking application to review his account, before the bank's application transmits the customer's data, it must validate the customer's identity. Commonly, banks require a login, supplemented by a personal identification number (PIN). But once a customer has been authenticated, the bank must take extra steps to protect the confidentiality of the customer's data, perhaps by establishing an encrypted tunnel between the bank's distributing application and the customer's home banking application.
These examples illustrate three points that are essential to understanding trust and trust models.
Trust requirements must be matched to the specific kinds of threats or vulnerabilities facing an organization and to the degree of risk that the threats will occur.
There must be a starting point in establishing credentials for identity. In our example, the library may have accepted a driver's license as the credential for granting a library card. What credential does the issuing authority of a driver's license require for granting a driver's license?
Trust does not happen spontaneously. It requires a methodical process of credential establishment and consistent validation. Trust is not free, it takes capital and effort.
Threat Profile and Risk Analysis
Threat profiles and risk analyses are intrinsically related. One without the other is of limited value.
Threat profiles identify the specific threats that are most likely to put your environment at risk.
The most common types of threats fall into categories such as:
Actual or attempted unauthorized probing of any system or data
Actual or attempted unauthorized access
Introduction of viruses or malicious code
Unauthorized modification, deletion, or disclosure of data
Denial of service attacks
Looking at the above list, you might initially assume that all threats come from external sources, and that a system not on the Internet is not at risk. However, remember that poorly trained, careless, or malicious employees can represent every one of the threats mentioned.
So, how do you build and evaluate your specific threat profile? The recommended tool is a use-case-driven data flow analysis, the process of methodically tracing the flow of various use cases and their data throughout your system to identify threats and vulnerabilities. (Note that we differentiate between threats that are dependent on the specifics of a system's implementation, and vulnerabilities that are intrinsic to a system.)
Original Entity Authentication and Bootstrapping
Original entity authentication permeates all trust models. This refers to a situation where, before trust can be established, relying entities must be convinced of the identity of all other entities with which they communicate or conduct transactions. The level of satisfaction required to convince the relying entity should be specified in a published security policy.
As the name implies, original entity authentication occurs only once, at the beginning of a trust relationship. Returning to the examples of a library and a financial institution, the library was satisfied with a rather lightweight authentication process (such as quickly checking a driver's license), whereas the financial institution required more rigorous methods. And the more rigorous the original entity authentication process is, the greater the degree of trust.
To be more precise, original entity authentication establishes a credential that can be evaluated, tested, or referenced by an authenticator or relying entity. For the library, a plastic library card may be enough. For the financial institution, there may be some kind of cryptographic key that enables the use of different encryption services.
To ensure a reliable validation or authentication process, tokens or credentials must be unique and bound to a specific entity. Furthermore, there should be an agreed upon and standardized format for credentials, as well as for the protocols used to test those credentials. Such standardization becomes an important attribute when a trust model is implemented in an application or business system.
Let's step through the process of original entity authentication.
Entity A requests a trust relationship with Entity B.
Entity B, in accordance with its stated security policy, requires Entity A to provide proof (or various proofs) of identity.
Entity B validates these proofs of identity.
Entity B returns to Entity A some unique identity credential that Entity B can test to validate Entity A in future interactions.
The last step suggests the remaining requirement: bootstrapping. This means the association of a unique entity (Entity A) with a unique credential (provided by Entity B).
As emphasized earlier, trust depends on the ability to bind unique attributes or credentials to a unique entity or user. This is precisely the bootstrapping process. Central to a trust model is the assurance that this binding is completely reliable.
To put this in context, consider the example of a financial institution. Assume that the bank uses a public key infrastructure (PKI) for its home banking application. First, the bank requires proof(s) of identity from the customer who wants to bank online. Once the bank is satisfied (according to its own policies), it issues a unique identity credential in the form of a public key certificate. That certificate provides a unique binding of the customer's identity to a set of unique cryptographic keys. These keys are subsequently used to enable the reliable implementation of various security services such as:
AuthenticationVerification of identity.
AuthorizationGranting of specific privileges.
ConfidentialityInformation will not be accessed by unauthorized parties.
IntegrityData will not be modified by unauthorized parties.
Non-repudiationLegitimate transactions cannot later be denied by either the customer or the bank.
There must be an agreed upon and standardized format for credentials, as well as for the protocols that are used to test those credentials. This will be an important attribute when an actual trust model is implemented in an application or business system.
No Spontaneous Trust
As already briefly stated, spontaneous trust is a misleading concept. It implies that trust can exist without original entity authentication and bootstrapping. Without reliance on mapping to previously established credentials, there cannot be trust in an entity's identity. It is important to stress this point because too often, there is a misguided reliance on mechanisms that do not, in fact, enable a true trust relationship.
All valid trust models are predicated on the establishment of trust between any two entities. That is, original entity authentication must be performed first. Essentially, trust cannot be established spontaneously. Without performing this original entity authentication, future trust relationships cannot be created, except in a spontaneous fashion. Therefore, spontaneous trust does not, in fact, provide any confidence of an entity's identity because it does not rely on or map to any established knowledge, credentials, or characteristics. Adversaries often look for uses of spontaneous trust and try to exploit them.
Let's take the Secure Socket Layer (SSL) as an example. SSL has the ability to work in various modes, but in this example, we consider server side SSL, the most common use of SSL in the Internet today. In an SSL session between a browser and a server, the browser determines the identity of the server by testing credentials embedded in the browser by means of a PKI. This testing of credentials offers a one-way trust relationship in that the browser has some level of confidence that the server is who it claims to be. However, the server has no information for testing the browser. Essentially the server is forced to trust the browser. In effect, the server is hoping for a spontaneous trust relationship. In fact, this scenario does not provide any trust, whatsoever, for the server.