[midPoint] Storing passwords in Midpoint

Radovan Semancik radovan.semancik at evolveum.com
Fri Apr 1 20:21:34 CEST 2016


Hi,

That's right. We store all passwords in encrypted form. However the key 
is NOT stored in the database. The key is in the keystore (which can be 
switched to HMS if necessary). So the password exposure is somehow limited.

We need cleartext password to be able create new accounts. And we need 
permanent access to the cleartext because accounts may be created for a 
user any time (e.g. new role is requested and approved). As far as I 
know there are only three more-or-less practical ways how to solve this:

1: cleartext (or reversible encrypted) password storage. This is what we 
do now. Very convenient and very practical. But there is security risk.

2: Do not store passwords at all. When a new account is created notify 
user that there is a new account and it needs to be activated by setting 
a password. Then the user authenticates by his existing credentials 
(e.g. AD or LDAP) and sets the password for that new account. Forget the 
password right after it is set. This is more secure but not very 
user-friendly approach.

3: Store passwords hashed by all the hashing algorithms that all the 
connected resources need, regardless whether the user has an account or 
not. The use the hashed value when setting up new account, not a 
cleartext. This is theoretical option. It may be feasible for some 
resources. But it will not work for all cases because too many 
application interfaces require a cleartext password when creating new 
account. A variation is to always create accounts on all the resources 
for everybody, just disable the accounts. However, the question here is 
how to connect a new resource. That would require to force change of all 
the passwords for all the users.

The options two and three have also additional drawbacks. E.g. they 
cannot be used to implement a policy which requires to use different 
passwords for different applications (e.g. different security levels). 
In that case theoretically midPoint can check that the password are 
different, but it cannot check if the difference is just one letter or 
there is fact substantial difference. So, all the options have 
advantages and disadvantages.

Currently we support only option 1. This seems to be the common 
trade-off and the most popular method in IDM field. So we have started 
with that. I would love to implement option 2 as soon as possible if we 
can secure a funding for that. Option 3 may be also interesting, but I'm 
not sure how practical it can be.

-- 
Radovan Semancik
Software Architect
evolveum.com



On 04/01/2016 07:53 PM, Camilo Viecco1 wrote:
> So why not use a temporary mechanism push the cleartext password 
> between components (memory/pipe/TLS channel).  Keeping the ALL 
> passwords in cleartext is an unnecessary risk, any plans to move away 
> from this?
>
> Camilo
>
> From: midPoint <midpoint-bounces at lists.evolveum.com 
> <mailto:midpoint-bounces at lists.evolveum.com>> on behalf of Devin 
> Rosenbauer <devin at identityworksllc.com 
> <mailto:devin at identityworksllc.com>>
> Reply-To: midPoint General Discussion <midpoint at lists.evolveum.com 
> <mailto:midpoint at lists.evolveum.com>>
> Date: Friday, April 1, 2016 at 9:51 AM
> To: midPoint General Discussion <midpoint at lists.evolveum.com 
> <mailto:midpoint at lists.evolveum.com>>
> Subject: Re: [midPoint] Storing passwords in Midpoint
>
> Typically an identity manager needs access to the user's password in 
> cleartext so that it can be set on other systems, e.g. setting the 
> user's initial password on a new account, etc.
>
> On Fri, Apr 1, 2016 at 12:45 PM, Florin. Stingaciu 
> <fstingaciu at mirantis.com <mailto:fstingaciu at mirantis.com>> wrote:
>
>     Hello,
>
>     From my understanding passwords in Midpoint are encrypted using an
>     256-bit AES key and then stored in the Midpoint DB. I was
>     wondering if there is any sort of hash applied to password before
>     it's encrypted. If not, is there a purpose for having access to
>     the clear text password?
>
>     Thanks,
>     -F
>
>     _______________________________________________
>     midPoint mailing list
>     midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>     http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
>
> -- 
> Devin Rosenbauer
> Principal Consultant
> Identity Works LLC
> +1 585 210 3201
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160401/11715055/attachment.htm>


More information about the midPoint mailing list