You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/05/11 19:01:00 UTC

[jira] [Commented] (KNOX-2579) Make token passcode secure in DB token state backend

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

ASF subversion and git services commented on KNOX-2579:
-------------------------------------------------------

Commit 53849ac45757a8b915dec3ff912a5e7e7665f18a in knox's branch refs/heads/master from Sandor Molnar
[ https://gitbox.apache.org/repos/asf?p=knox.git;h=53849ac ]

KNOX-2579 - Saving token passcode securely in the DB as additional token metadata (#437)



> Make token passcode secure in DB token state backend
> ----------------------------------------------------
>
>                 Key: KNOX-2579
>                 URL: https://issues.apache.org/jira/browse/KNOX-2579
>             Project: Apache Knox
>          Issue Type: New Feature
>          Components: Server
>    Affects Versions: 1.6.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Major
>             Fix For: 1.6.0
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> With KNOX-2554, we now have the ability to store passcode tokens in relational databases. However, it indicates poor security practice if sensitive data is stored in plain text format. Since the {{token_id}} JWT claim can be used as a passcode, we need to make sure it's saved in a hashed format. To be able to do this, the following is going to be implemented:
>  * add a new column called {{id}} which will serve as the primary key of the {{KNOX_TOKENS}} table (this is also going to be a UUID)
>  * keep the current {{token_id}} column as is, and store the {{token.id}} claim in a hashed form in this column
> By default, {{HS256}} is going to be used as a hash algorithm, but end-users can configure it via the {{gateway.database.hash.alg}} gateway level configuration. A new pre-defined alias name is to be introduced too: {{gateway_database_hash_key}}. End-users must save the desired key using this alias if they use the new {{JDBCTokenStateService}} as the token management backend. Please note that key size it's very important for hash-based algorithms so using the {{master secret}} is not an option here.
> The token verification logic has to be changed too (need to hash {{token.id}} before getting expiration from the database).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)