[
https://issues.apache.org/jira/browse/ACCUMULO-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14981098#comment-14981098
]
Josh Elser commented on ACCUMULO-4045:
--------------------------------------
Cool, thanks for the explanation.
> Proposal to improve the security of Accumulo's password-based logons
> --------------------------------------------------------------------
>
> Key: ACCUMULO-4045
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4045
> Project: Accumulo
> Issue Type: Improvement
> Reporter: Christopher Tubbs
>
> There are some things we can do to improve the password-based authentication
> to Accumulo without adding much overhead or introducing new APIs or RPCs.
> Of course, strong authentication using SASL or TLS is preferred, but those
> may not be feasible for all users, and as long as we continue to support
> using Accumulo without requiring these protocols, we should also consider
> ways to improve the simple password authentication mechanism.
> So, with that in mind, I suggest:
> # Add a logon or "createSession" RPC method to effectively authenticate using
> a password and create a session identifier for future use.
> # A flag on Connector to use a session, could be added, and Connector could
> be made AutoCloseable, or another API could be added to clean up sessions.
> Sessions could also be made expirable.
> # When a session is created, the session information is stored in ZooKeeper,
> and used to authenticate a user in lieu of a password on future RPC requests.
> The RPC data will be able to distinguish whether it is of the session type or
> regular password type, for compatibility. But, mostly session data would work
> just like passwords do today, with a simple compare/check.
> # To create a session, the server (any server which can currently do
> authentication) receives a logon/createSession request, and responds with the
> user's salt, hash method, and a nonce. The client hashes the password using
> the salt and hash method, to reproduce the hashed version which the server
> already has. It then hashes again with the nonce and sends the result back to
> the server. The server then compares this result with the result of its own
> hashing of its stored value with the same nonce it sent to the client. If it
> matches, a session is created, stored in ZooKeeper and returned.
> Now, this is certainly not a perfect solution, but it could be a way we can
> provide some significant additional protection for password-based
> authentication without any of the additional security/authentication
> mechanisms enabled for Accumulo, and with low overhead.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)