[
https://issues.apache.org/jira/browse/LOG4J2-1896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16131541#comment-16131541
]
Remko Popma commented on LOG4J2-1896:
-------------------------------------
So, essentially, the reconnect use case prevents us from zeroing out the char[]
array immediately after use...
What if we never take in a {{char[]}} in the first place? Instead we have some
object (an {{IPasswordProvider}} or something) that is responsible for giving
us the char[] on demand when we need it. Instead of storing the password we
keep a reference to this password provider. That way we can zero out the char[]
array immediately after login: there is no need to store the password char[] in
a field because we can alway ask the password provider again later.
Users currently need to specify a password in the configuration. If users could
specify a password provider instead that would also be better.
That does not completely solve the problem (still need a provider
implementation :-) ) but it centralizes it into one single place.
> Update classes in org.apache.logging.log4j.core.net.ssl in APIs from String
> to char[] for passwords
> ---------------------------------------------------------------------------------------------------
>
> Key: LOG4J2-1896
> URL: https://issues.apache.org/jira/browse/LOG4J2-1896
> Project: Log4j 2
> Issue Type: Improvement
> Components: Configurators
> Reporter: Gary Gregory
> Assignee: Gary Gregory
> Fix For: 2.9
>
>
> Update {{org.apache.logging.log4j.core.net.ssl.StoreConfiguration}} from a
> {{String}} to {{char[]}} to represent its password.
> The goal is to reduce the security risk of using a String for a password. See
> https://stackoverflow.com/questions/8881291/why-is-char-preferred-over-string-for-passwords
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)