[JIRA] (JENKINS-61406) Allow for use of password-based encryption of confidential store

3 views
Skip to first unread message

msicker@cloudbees.com (JIRA)

unread,
Mar 9, 2020, 4:06:03 PM3/9/20
to jenkinsc...@googlegroups.com
Matt Sicker created an issue
 
Jenkins / Improvement JENKINS-61406
Allow for use of password-based encryption of confidential store
Issue Type: Improvement Improvement
Assignee: Unassigned
Components: core
Created: 2020-03-09 20:05
Priority: Minor Minor
Reporter: Matt Sicker

Related to JENKINS-58743, the confidential store could potentially be hardened by requiring a password to unlock it such as via PBEWithHmacSHA256AndAES_256 or potentially PBKDF2WithHmacSHA256 (not sure on the latter). Use of some form of authenticated encryption is preferred over plain encryption, and in this case, we can use EtM as mentioned in the OWASP guide.

In order for the password to be entered initially to unlock Jenkins, based on some exploratory testing, I've found that there is very little Jenkins functionality that can be relied upon at this point in the initialization process, so I have two initial suggested implementation ideas:

  • Create a separate servlet and filter to prevent Jenkins from loading until the initial unlock password is submitted. This form could also potentially be used for implementing JENKINS-58743.
  • Use System.console() to read a password. This is fairly low tech and doesn't require much more than a lock to initialize on demand. I'm still working on a PoC for this and will link in the comments.
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

msicker@cloudbees.com (JIRA)

unread,
Mar 10, 2020, 10:27:02 AM3/10/20
to jenkinsc...@googlegroups.com
Matt Sicker commented on Improvement JENKINS-61406
 
Re: Allow for use of password-based encryption of confidential store

I'll note that based on some info I read on Wikipedia, PBKDF2 and PBEwithFooAndBar schemes seem to be somewhat weak due to ASIC attacks and such. Seems like the recommended alternative is some non-described combination of Argon2 (current recommended password hashing algorithm) as the input of an AES key.

Alternatively, if using PBKDF2, make sure to use a large number of iterations and a salt of like at least 128 bits.

msicker@cloudbees.com (JIRA)

unread,
Mar 10, 2020, 2:35:04 PM3/10/20
to jenkinsc...@googlegroups.com

Added link to incomplete proof of concept code.

msicker@cloudbees.com (JIRA)

unread,
Mar 10, 2020, 8:29:03 PM3/10/20
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages