• Products
  • Solutions
    • Confidentiality in the cloud
    • Encrypted storage API
    • Local backups and possession
    • Preventing unauthorized use
  • Education
    • Articles
    • Latest security news
  • About Us
    • Vision & mission
    • Company news
    • Guiding principles
    • Press
    • R&D partners
    • Legal information
    • Our team
    • Job opportunities
  • Contact us
  • Home >
  • Encrypted storage API

Encrypted Storage API

Developing secure cloud-enabled applications using the ScramFS cryptographic filesystem for encrypted data storage

With the rapid increase in hacking and data leaks, there's never been a stronger need for application developers to encrypt sensitive data stored in the cloud.

However, without specialist knowledge in cryptography, it’s incredibly difficult for developers to develop secure applications that properly and securely implement encrypted data storage.

The design and implementation of new encryption systems is fraught with potential hidden pitfalls and trapdoors. It requires expertise only possessed by the top cryptographers and security researchers in the world. As Professor Dan Boneh of Stanford University said:

Be careful when using crypto:
a tremendous tool, but if incorrectly implemented:
products will work, but may be easily attacked.

Make sure to have other review your designs and code.

Don’t invent your own ciphers or modes.

Professor Dan Boneh, Stanford University

Common problems that software developers face when implementing secure encrypted data persistence include:

Problem
  • Difficulties in choosing a crypto library

  • Incorrect choice of cryptographic primitives

  • Poor usage of cryptographic primitives

  • Insufficient design and analysis leads to security holes.

  • Worldwide shortage of suitably qualified cryptographers

  • Financially costly and time consuming to develop and maintain systems that properly implement cryptography.

Risks
  • Libraries built into the user's OS may be old and contain vulnerabilities. Software updates can introduce bugs and new vulnerabilities.

    Libraries on different platforms (including mobiles) implement primitives differently, making consistency in security difficult.

  • Using primitives that are no longer considered secure. Generally no notice is provided in the documentation of crypto libraries.

    Using primitives that are not future-proof, such as those vulnerable to attack by quantum computers.

  • Incorrect usage of secure primitives will result in insecure systems. Numerous examples exist, including:

    - Failing to securely derive encryption keys from passwords.

    - Encrypting too much data with a single key.

    - Encrypting data without using MACs on untrusted storage media.

    - Failing to salt hashes, seed random number generators, etc.

  • Implementing encryption without proper consideration as to the requirements for confidentiality and integrity can lead to information leakage, security holes and exploits that compromise the effectiveness of the system.

  • Due to the limited availability of experts, many crypto systems are implemented by developers who lack the required specialist crypto expertise, leading to vulnerabilities that are exceptionally difficult to detect and expensive to fix.

  • Insufficient budget is given to cryptography. Encryption is most often a non-revenue generating requirement of a software project, not core functionality for customers. Thus, it is often allocated little budget, resulting in poor implementation that is easily attacked.

    Conversely, if cryptography were allocated the appropriate amount of budget for proper implementation, it would cost so much it would compromise the profitability of software development projects.

Scram’s recommended solutions
  • Compile a modern, trusted and well reviewed crypto library into your application to ensure the same crypto library is used on all deployments.

    This is the approach taken in the development of ScramFS.

  • Use modern primitives such as those chosen in ScramFS. Ensure only the primitives offering the highest security are used. Use only primitives that are resistant to attack from quantum computers.

    This is the approach taken in the development of ScramFS.

  • Using the right primitives in the wrong way will result in a system that is easily compromised.

    Design your encryption system using the right primitives in the right way, and with careful consideration as to the overall design. This requires world class expertise in the field.

    Ensure that cryptographic designs are peer reviewed by other world experts.

    These are the approaches taken in the development of ScramFS.

  • Perform careful security analysis of the system design and attack model to ensure the design is resilient to all attacks in the chosen application.

    Peer review the design and security analysis.

    These are the approaches taken in the development of ScramFS.

  • Find an existing reliable and complete cryptographic data storage system such as ScramFS to enable non-crypto developers to implement secure encrypted storage without writing crypto code.

  • Avoid developing your own encryption and data security systems.

    Instead, license an existing system like ScramFS.

    Scram has already invested hundreds of thousands of dollars and years of time in developing solutions like ScramFS.

    Scram also provides ongoing support, maintenance and development of ScramFS, saving developers time and money now and in the future.

Problem
  • Difficulties in choosing a crypto library

Risks
  • Libraries built into the user's OS may be old and contain vulnerabilities. Software updates can introduce bugs and new vulnerabilities.

    Libraries on different platforms (including mobiles) implement primitives differently, making consistency in security difficult.

Scram’s recommended solutions
  • Compile a modern, trusted and well reviewed crypto library into your application to ensure the same crypto library is used on all deployments.

    This is the approach taken in the development of ScramFS.

Problem
  • Incorrect choice of cryptographic primitives

Risks
  • Using primitives that are no longer considered secure. Generally no notice is provided in the documentation of crypto libraries.

    Using primitives that are not future-proof, such as those vulnerable to attack by quantum computers.

Scram’s recommended solutions
  • Use modern primitives such as those chosen in ScramFS. Ensure only the primitives offering the highest security are used. Use only primitives that are resistant to attack from quantum computers.

    This is the approach taken in the development of ScramFS.

Problem
  • Poor usage of cryptographic primitives

Risks
  • Incorrect usage of secure primitives will result in insecure systems. Numerous examples exist, including:

    - Failing to securely derive encryption keys from passwords.

    - Encrypting too much data with a single key.

    - Encrypting data without using MACs on untrusted storage media.

    - Failing to salt hashes, seed random number generators, etc.

Scram’s recommended solutions
  • Using the right primitives in the wrong way will result in a system that is easily compromised.

    Design your encryption system using the right primitives in the right way, and with careful consideration as to the overall design. This requires world class expertise in the field.

    Ensure that cryptographic designs are peer reviewed by other world experts.

    These are the approaches taken in the development of ScramFS.

Problem
  • Insufficient design and analysis leads to security holes.

Risks
  • Implementing encryption without proper consideration as to the requirements for confidentiality and integrity can lead to information leakage, security holes and exploits that compromise the effectiveness of the system.

Scram’s recommended solutions
  • Perform careful security analysis of the system design and attack model to ensure the design is resilient to all attacks in the chosen application.

    Peer review the design and security analysis.

    These are the approaches taken in the development of ScramFS.

Problem
  • Worldwide shortage of suitably qualified cryptographers

Risks
  • Due to the limited availability of experts, many crypto systems are implemented by developers who lack the required specialist crypto expertise, leading to vulnerabilities that are exceptionally difficult to detect and expensive to fix.

Scram’s recommended solutions
  • Find an existing reliable and complete cryptographic data storage system such as ScramFS to enable non-crypto developers to implement secure encrypted storage without writing crypto code.

Problem
  • Financially costly and time consuming to develop and maintain systems that properly implement cryptography.

Risks
  • Insufficient budget is given to cryptography. Encryption is most often a non-revenue generating requirement of a software project, not core functionality for customers. Thus, it is often allocated little budget, resulting in poor implementation that is easily attacked.

    Conversely, if cryptography were allocated the appropriate amount of budget for proper implementation, it would cost so much it would compromise the profitability of software development projects.

Scram’s recommended solutions
  • Avoid developing your own encryption and data security systems.

    Instead, license an existing system like ScramFS.

    Scram has already invested hundreds of thousands of dollars and years of time in developing solutions like ScramFS.

    Scram also provides ongoing support, maintenance and development of ScramFS, saving developers time and money now and in the future.

ScramFS cryptographic filesystem and encrypted file system api
ScramFS fully symmetric cryptographic file system

Featured products

ScramFS

ScramFS is the world’s first cloud-friendly, cross-platform, high performance encrypted filesystem with a programmable API.

The ScramFS API makes it easy for any developer to create applications that implement encrypted persistent data storage. It supports many back-end storage media, from cloud storage (WebDAV, OneDrive, Google Drive, and so on) to local storage (hard drive, USB drive, DVD/BluRay discs).

ScramFS also features a demo User Interface similar to Windows Explorer, which allows users to copy files to and from a mounted ScramFS.

ScramFS is the result of a close R&D partnership with Monash University, Australia’s largest university.

Product launching soon

Further reading

  • Cryptography I — free Coursera course taught by Dan Boneh, Stanford University
  • Cryptography II — free Coursera course taught by Dan Boneh, Stanford University
  • Schneier on Security, and his books Cryptography Engineering, Practical Cryptography, Applied Cryptography
  • Introduction to Cryptography by Christof Paar — Professor Christof Paar's 24 lecture series on YouTube.

Copyright © Scram Software Pty Ltd. All rights reserved.

Site Map