-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LDAP server manager password visible and stored in plain text #4241
Comments
Yes that's true. How do you want to do it differently? |
I was against storing this password manager into the database and I did not implement this change. My approach would be maybe:
|
Neither do I. But any encryption that is done, which password is publicly available on GitHub, is just as worthless in the end, so why not trust Unix file system permissions and write the password to a file where no other user can easily read it, only Tomcat , and even root has to change permissions first, that's a small hurdle, but if root already has permissions to read local LDAP content anyway, that's only a small hurdle. I always agree to include security and hurdles, but where is the reasonable limit for administrator usability? |
That is only true if you don't use a salt and use the default initialization vectors of the encryption. If you store this outside and did not make it public then it is more complicated to get the information. The used algorithm is only one key in the chain of encryption an decryption.
Then the password should be moved back.
Because of security? The LDAP manager password is the most important passwords that you can have and if this password get public in some way then is calling the police only one step in the next couple of hours. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Also related: #3339 |
Is your comment #4241 (comment) serious
or did you just kidding? If this change goes in, I don't know, if we would use this software in future. |
Changing the LDAP integration is not the goal of the issue. Goal is to implement a more secure way to store the manager password. Storing passwords could never be secure for all cases as storing them is the main issue. So my goals for this issue should be:
|
I understood that removing this feature altogether is not an option, so I did hide my comments on that. |
First step: show password in frontend with **** |
Does the same apply to the keyStorePassword? Which algorithm should be implemented here? |
Are your questions to me, @markusweigelt or who should answer your questions? |
It seems superfluous to me.
|
@henning-gerhardt Yeah, sorry I didn't mention you. |
Matthias, you are wrong regarding to the manager password: the LDAP manager account with this password is needed to at least create and maybe needed to modify an existing LDAP entry. While using LDAP the used password (manager and even user passwords) are submitted as hash values to the LDAP server. The content of the LDAP entry (in our case even LDAP + Samba related data) is not relevant for this issue. |
@markusweigelt : I have no favorite synchronize algorithm for storing this password inside the database (I never what nor would implement this). We already had a lot of discussions about what should be stored in which way inside the database or not. As every one does what he/she/it think is the best, this will be implemented as there are no rules and / or suggestions. |
I think we should distinguish between sensitive data that should not be directly visible in the frontend (e.g. passwords of any kind) and data that are so sensitive that they should be stored in encrypted form. For keystore and manager password, I changed the input type from text to password. For the manager password, |
…using secret key and add test prove implementation
That was what I said: Except for the login, the manager password is required for all operations (creating a new user, changing a user's data, checking whether a username is already taken). But what I wanted to show: It is not needed for the login. It is important to emphasize that. I don't want to rule out that it will be sent around with the login, but I know from experience that the login works without this password. What I wanted to say: For the most secure operation possible, LDAP should be operated in read-only mode, and the password is not stored here at all. To create or change users, establish a course of business, for example, the user goes to the registration desk in the reception hall. There, a secured application has write access to LDAP, nobody else has. Only after the user has entered the LDAP officially, create a user account in Kitodo and point the LDAP group to the existing user. And, secondly, what I wanted to say is, that this is the standard way when you use Microsoft Active Directory for authentication, because you cannot write Samba schema fields in Microsoft Active Directory, so you cannot write there from Production even with a password, because Microsoft Active Directory will reject the record from Production because of these Samba fields. It is not really relevant to this issue, but for security, it is relevant and a consideration whether or not one should not prefer this route anyway. I just wanted to show that this option exists and is used when high security is required. It has disadvantages, for example you cannot change user details or password from Production, and not automatically set up a network drive (unless otherwise implemented). |
…and migration and decrypt of manager passwords
…using secret key and add test prove implementation
…and migration and decrypt of manager passwords
…using secret key and add test prove implementation
…and migration and decrypt of manager passwords
Setting up a LDAP server the server manager password is stored in plain text in the database and is visible as plain text if you open this entry!
The text was updated successfully, but these errors were encountered: