Architecture

How the Mesh Works

An Architecture in the engineering meaning of the term is a set of rules which guide the design of components in a system.

If we are building a component such as a brake system for a car, it does not matter much to the functioning of that component if a bolts is metric or imperial. If however we are going to build a car arround that component, that choice matters a very great deal. Maintaining a car that uses a single standard for bolt sizes is a lot easier than maintaining a car that uses two (one of my cars uses three).

Some architecture rules are codified as standards. A standard being a set of design choices that in most circumstances do not matter enough to do something differently.

The design principles applied in the design of the Mesh include:

  • Cloud services should be trusted to the least extent possible.
  • All Mesh data is represented as a signed data object called a Profile.
  • Encoding and syntax should be kept as uniform as possible across systems.

Personal autonomy

Like many other cryptographic infrastructures, the Mesh is based on a set of principles that strongly emphasize personal autonomy and choice. But unlike previous proposals, the Mesh recognizes that even though most people do not have the time, the skills or the inclination to become a technical expert, they still have the right to personal digital autonomy.

  • A user may delegate that decision making power to a third party of their choice. This choice MUST be independent of choices such as which application programs to use.
  • Users may access the CryptoMesh through a Mesh portal of their choice and change their choice at any time.

Profiles

The use of Mesh Profiles is similar to that of X.509 Certificates or SAML assertions. Like certificates and assertions, a Profile is a signed data object that may be validated with respect to an issuer. The validation rules for profiles are very different for those of certificates however and thus a different name is used to avoid confusion.

Like certificates and assertions, a mesh profile is a first class object with a unique identifier and a lifecycle. Profiles are mutable, since the objects that they represent change over time. A personal profile changes each time the user adds or removes a device. A master profile changes each time a user adds or removes an administration device.

The cloud is not trustworthy.

Wherever possible, a Mesh service is trusted to the least extent possible. It is assumed that the operator of a cloud service may be the adversary. This approach is possible in part because of the advanced cryptography used in the Mesh.

While this approach offers clear benefits to the user, the advantages to the service provider are even greater. By far the largest and most serious losses arising out of cloud service security breaches are the losses to the service providers themselves. In some cases merely the possibility of a breach may lead to the service provider incurring contract penalties.

Encoding and syntax

The Mesh attempts to simplify deployment by limiting the range of encodings and formats applications and devices are required to understand.

  • Collections of data object are encoded in JSON Container Format, a format that combines features of the established ZIP file format with those of a cryptographic container format.
  • All roots of trust are identified using Strong Internet Names using UDF Fingerprints.
  • All services make use of the JSON Web Binding approach to service discovery and presentation protocol binding.