[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-1734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13607931#comment-13607931
 ] 

Venkata Siva Vijayendra Bhamidipati commented on CLOUDSTACK-1734:
-----------------------------------------------------------------

SHA256SALT will be made the default encoding algorithm to encode passwords when 
creating/updating users, since it is more secure compared to MD5 hashing. The 
fix will introduce a new configurable list called UserPasswordEncoders to allow 
admins to separately configure the order of preference for encoding and 
authentication schemes. Also, since passwords are now sent by clients as clear 
text, we'll also fix the Plain text authenticator to check against the plain 
text password passed in to it, using a simple string compare, rather than its 
md5 digest.

To change the order of the schemes, the admin can modify the following list 
properties in client/tomcatconf/nonossComponentContext.xml.in or 
client/tomcatconf/componentContext.xml.in as applicable, to the desired order:

    <property name="UserAuthenticators">
         <list>
            <ref bean="SHA256SaltedUserAuthenticator"/>
            <ref bean="MD5UserAuthenticator"/>
            <ref bean="LDAPUserAuthenticator"/>
            <ref bean="PlainTextUserAuthenticator"/>
        </list>
    </property>

    <property name="UserPasswordEncoders">
        <list>
            <ref bean="SHA256SaltedUserAuthenticator"/>
             <ref bean="MD5UserAuthenticator"/>
             <ref bean="LDAPUserAuthenticator"/>
            <ref bean="PlainTextUserAuthenticator"/>
         </list>


Thus, when a user is created, the encoding of the password will be attempted in 
the order determined by UserPasswordEncoders, and the first to succeed will be 
used. In the above default ordering, SHA256Salt is tried first. If the module 
is found and encoding returns a valid value, the encoded password will be 
stored in the user table's password column. If it fails for any reason, the 
MD5UserAuthenticator will be tried next, and so on.

When a user needs to be authenticated, the order in which the authenticators 
are invoked is determined by UserAuthenticators. In the above default ordering, 
SHA256Salt authentication is tried first. If it succeeds, the user is logged 
into the mgmt server. If it fails, MD5 is tried next, and so on until any of 
them succeeds and the user logs in or all of them fail and the user is returned 
an invalid username/password message.


                
> Make SHA1 default password encoding mechanism
> ---------------------------------------------
>
>                 Key: CLOUDSTACK-1734
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1734
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: Management Server
>    Affects Versions: 4.1.0
>         Environment: Cloudstack generic
>            Reporter: Venkata Siva Vijayendra Bhamidipati
>            Assignee: Venkata Siva Vijayendra Bhamidipati
>             Fix For: 4.1.0
>
>
> Currently MD5 is the default password encoding mechanism during user creation 
> and updation. Make SHA1 the default, using the recently added 
> SHA256SALTUserAuthenticator.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to