Skip to content
This repository has been archived by the owner on Dec 27, 2023. It is now read-only.

Security

irdan edited this page May 27, 2014 · 4 revisions

Security

These security documents are under development and have not been reviewed.

Threat Models

Threat models are required for each injectable application, and can be broken into categories of increasing security and system complexity. Injectable applications generally have separate threat models between the reading and posting process.

Attacks will be judged according to the DREAD model:

  • Damage: How big would the damage be if the attack succeeded?
  • Reproducibility: How easy is it to reproduce an attack?
  • Exploitability: How much time, effort, and expertise is needed to exploit the threat?
  • Affected Users: If a threat were exploited, what percentage of users would be affected?
  • Discoverability: How easy is it for an attacker to discover this threat?

Each category has a minimum score of 0 and a maximum score of 10. The final DREAD score is the average of the category scores: (D + R + E + A + D) / 5


No Content-Level Cryptography

These threat models are stripped down to the core concern of separating content presentation from content storage. The primary use case is to use third-party web applications while controlling the private content delivered through the application.

Plain Posts:

  • [Posting Threat Model](Plain Posts Posting Threat Model) - Currently under development
  • [Reading Threat Model](Plain Posts Reading Threat Model) - Currently under development

JavaScript Cryptography

Adding Javascript cryptography on top of the core system adds guarantees to the [Plain Post Threat Model](Plain Posts Posting Threat Model). This class of injectable application does not reuse keys between different content URLs, which mitigates the concerns of JavaScript cryptography.

ZeroBin:

PGP:


Compiled Library Cryptography

The compiled encryption library adds the ability to process content with reusable keys by placing a secure computing environment outside JavaScript. The compiled encryption library will be packaged into the extensions when we have a finished injectable application making use of its cryptographic primitives.

[Group Encryption](Group Encryption):