GithubHelp home page GithubHelp logo

Comments (11)

Sjord avatar Sjord commented on July 21, 2024

If this would become a requirement, the requirement should probably be "only allow access to a key vault with consent of at least two persons", instead of "use Shamir's Secret Sharing Algorithm".

I think this could be a useful security measure in some cases, which certain companies should consider, but I would not require it.

from asvs.

elarlang avatar elarlang commented on July 21, 2024

Ping for @jmanico and @tghosth

from asvs.

tghosth avatar tghosth commented on July 21, 2024

This feels too specific to be covered for ASVS. It might be relevant for something like a secret vault cheat sheet but I think it is too detailed for ASVS.

from asvs.

elarlang avatar elarlang commented on July 21, 2024

@ImanSharaf - any arguments why it should be as separate requirement or some alternative solutions to mention/spotlight in other requirements?

from asvs.

ImanSharaf avatar ImanSharaf commented on July 21, 2024

@tghosth I believe Shamir's Secret Sharing can be too specific and we can have a more general thing such as "avoid the risk associated with a single individual having access to the key vault".

@elarlang I believe that works too.

from asvs.

tghosth avatar tghosth commented on July 21, 2024

@ImanSharaf do you have a specific requirement that you think should be modified for this?

from asvs.

ImanSharaf avatar ImanSharaf commented on July 21, 2024

I want to say that we can modify 6.4.1 and add "avoid the risk associated with a single individual having access to the key vault" but it makes it an L3 requirement. Can we have a separate requirement for this?

from asvs.

jmanico avatar jmanico commented on July 21, 2024

I want to say that we can modify 6.4.1 and add "avoid the risk associated with a single individual having access to the key vault" but it makes it an L3 requirement. Can we have a separate requirement for this?

Key management is really challenging. May I suggest that we focus on what to do, instead of what not to do? "Shamir's Secret Sharing" is just one method and there are many other ways to do really good scalable key management like https://code.cash.app/app-layer-encryption and similar.

There is also Blakley's secret sharing and many other sharing algorithms that are solid.

Also, Secret Sharing (SSS) Is not always needed. If you are in a scenario where you need to distribute trust among multiple parties and can't afford to have a single point of failure or a single trusted entity, SSS might be the better choice.

Sometimes, envelope encryption is just fine. If you are looking to manage encryption keys for data at rest and want the convenience of using cloud provider services with built-in auditing and compliance features, envelope encryption would be more suitable.

Also: Beyond SSS and envelope encryption, there are other key management strategies to consider, like hardware security modules (HSMs), cloud HSM, or multi-cloud key management systems, which provide hardware-backed key storage and cryptographic operations.

from asvs.

tghosth avatar tghosth commented on July 21, 2024

Are we sure that there is a specific risk here?

As I see it, the risk which we are trying to prevent is that a single person with enough access to get to the secret vault directly steals a key.

Firstly, I don't think it should be possible to extract the keys from the vault anyway.

Secondly, generally the multi person operation is a one-time thing as the application needs to be able to access the secret vault on an ongoing basis. Someone with this level of internal access would probably be able to access the vault via the application anyway rendering the control less valuable.

As such, I am concerned that we are mandating a very specific requirement but I'm not sure that there is a specific risk we are addressing. It feels to me like the secret sharing mechanism would be useful in certain use cases but not as something that is universally mandated

from asvs.

tghosth avatar tghosth commented on July 21, 2024

@ImanSharaf @jmanico what are your thoughts on my previous comment? Reproduced below:

Are we sure that there is a specific risk here?

As I see it, the risk which we are trying to prevent is that a single person with enough access to get to the secret vault directly steals a key.

Firstly, I don't think it should be possible to extract the keys from the vault anyway.

Secondly, generally the multi person operation is a one-time thing as the application needs to be able to access the secret vault on an ongoing basis. Someone with this level of internal access would probably be able to access the vault via the application anyway rendering the control less valuable.

As such, I am concerned that we are mandating a very specific requirement but I'm not sure that there is a specific risk we are addressing. It feels to me like the secret sharing mechanism would be useful in certain use cases but not as something that is universally mandated

from asvs.

ImanSharaf avatar ImanSharaf commented on July 21, 2024

We can close this.

from asvs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.