Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.java.security > #313
| From | Beloumi <beloumi@riseup.net> |
|---|---|
| Newsgroups | comp.lang.java.security |
| Subject | Re: Zeroization and compiler optimization |
| Date | 2015-06-12 09:34 +0200 |
| Organization | news.netcologne.de |
| Message-ID | <mle214$4ca$1@newsreader4.netcologne.de> (permalink) |
| References | <m8br50$a9j$1@newsreader4.netcologne.de> <4knliqvbk6hc$.dlg@kimmeringer.de> <m8gifi$l9e$1@newsreader4.netcologne.de> |
Am 06.01.2015 um 12:55 schrieb Beloumi: > Am 05.01.2015 um 13:36 schrieb Lothar Kimmeringer: >> Beloumi wrote: >> >>> Sensitive data like keys and passwords should be zeroized immediately >>> which is usually done by Arrays.fill(...). >>> A compiler may treat this as dead code and it may be eliminated by an >>> optimization. >>> Does anybody knows if this is the case for common Java compilers like >>> javac, ejc... ? >> >> You can try it out by giving the created byte-code to a decompiler. >> I don't expect that to happen but would be a bit concerned about >> the Hotspot during runtime. This might throw out that particular >> part of the code since it's analyzed to be dead. >> >> >> Regards, Lothar >> > Thanks for the hint. You're right. The bytecode compiler might not be > the most problematic point for zeroization. The optimization in Hotspot > might be “better” than others, but as I know all JIT-compilers can do > dead code elimination. Is there also a way to figure out if they do? > Beloumi > For those who are interested... a late update: I checked javac and eclipse jar compiler by decompiling the code. They do not eliminate Arrays.fill(). I then checked Hotspot by comparing the time with and without filling large Arrays. The execution time without these fillings is significantly shorter, so Hotspot also does not eliminate this code. I also checked a code which was optimized by ProGuard (Obfuscator) with this method and the arrays are still filled. So, false alarm... As I can see redundant code like zeroization is not eliminated in normal use cases. Beloumi
Back to comp.lang.java.security | Previous | Next — Previous in thread | Next in thread | Find similar
Zeroization and compiler optimization Beloumi <beloumi@riseup.net> - 2015-01-04 17:52 +0100
Re: Zeroization and compiler optimization Lothar Kimmeringer <news200709@kimmeringer.de> - 2015-01-05 13:36 +0100
Re: Zeroization and compiler optimization Beloumi <beloumi@riseup.net> - 2015-01-06 12:55 +0100
Re: Zeroization and compiler optimization Beloumi <beloumi@riseup.net> - 2015-06-12 09:34 +0200
Re: Zeroization and compiler optimization Mike Amling <mamling@chaff.us> - 2015-07-06 10:06 -0500
Re: Zeroization and compiler optimization Beloumi <beloumi@riseup.net> - 2015-07-06 23:24 +0200
csiph-web