How to save settings that are encrypted?

We have used encryption for settings in some of our applications.

The day will come when we miss the content of these settings. What is a good way to store them? They should be available to some members of our team.

There is one way that I don’t like: our administrators use wikis for this. This wiki is available or not. There is no easy way to find out which team members have information about which logins.

I can imagine 2 possibilities:

  • Encrypt them and save in Subversion. Only team members who work on a project have a key to deciphering them.

  • Use an application designed to solve this problem.

What is a good way to save secrets and make them accessible to certain members?

EDIT 1

Here is an example of a problem we might encounter:

We have a web application that runs on a web server. The configuration has some critical security settings, such as payment providers. If the system crashes and we need to transfer the application to the new server, we cannot use the encrypted configuration. We must have one text and encrypt it on the new server.

Unable to restore configuration. We really need to keep parts of it in clear text in a convenient place.

+4
source share
3 answers

You can write a program that stores a list of authorized users, and only allows you to view certain encrypted files through the program. Authorized users can communicate with the program through a digital signature with a public key - this way the administrator can know which users are still allowed, but they still have to authenticate to access the protected data.

But with the example you provide in your editing, I'm a little confused. It sounds a little different. You should never store protected data that is not encrypted, although - that defeats purpose and security through obscurity is not an acceptable solution! Why not just save the key to decrypt the settings file, so that if he needs to move it to another server, you can decrypt it and (if necessary) encrypt it with a new key?

+1
source

One way to do this is to encrypt it with a key, and then give each user 1/2 a key on a USB drive or some such. Thus, they cannot abuse it and steal information directly, but they need cooperation with someone else who has another part of the key. And if the usb drive / file is ever stolen, the whole account is not compromised. Plus there is redundancy, so if someone is lost or stolen, you can still access and re-encrypt the data.

+2
source

First of all, passwords MUST NOT be encrypted, since this vulnerability is identified by KVO-257 . Do not forget about the “insider threat” after you have to kill someone. Also, users often use passwords quite often. In this case, I implement the sudo function, where you can take control of the account. Or perhaps the simple "forgotten password" that most applications have.

If it is mutual secrets. For example, randomly generated root passwords that need to be split, then encryption is a good solution . Keep in mind that if you shoot someone, then this secret is compromised, and you will have to regenerate the secrets.

0
source

Source: https://habr.com/ru/post/1342020/


All Articles