Re: secure storage of sensitive data in J2EE
Nick Seward <[email protected]> Wed, 09 Feb 2005 21:17:47 +0000
| Newsgroups | gmane.comp.security.web-applications,gmane.comp.security.programming |
|---|---|
| Message-ID | <[email protected]> |
Randy wrote: > I've always wondered what the point of a System.gc() was... what > applications would calling System.gc() be useful if the JVM has the > right to choose wether or not it gets called? > > Does anyone know of an actual useful implementation of System.gc()? > > --Randy > > On Wed, 9 Feb 2005, Nick Seward wrote: > >> Ashish Popli wrote: >> >>> Cant we simply force garbage collection when you are done using the >>> object? >>> Here is a link. >>> http://java.sun.com/docs/books/tutorial/essential/system/garbage.html >>> >>> Kevin Conaway wrote: >>> >>>> A followup question: >>>> >>>> Once the data (be it a password or a key) has been read into memory, >>>> what is an effective and secure way of minimizing the window that the >>>> plaintext key or password is in memory? >>>> >>>> If the data is read into a char [] and then overwritten with junk >>>> data, would that work? >>>> >>>> Kevin >>>> >>>> On Tue, 25 Jan 2005 09:18:15 +0000, chaim moshe >>>> <[email protected]> wrote: >>>> >>>>> Hello list, >>>>> >>>>> where can I store sensitive data like encryption keys, passwords, >>>>> etc. in >>>>> J2EE? >>>>> surely, you can save it in the keystore, but the catch is where do >>>>> you store >>>>> the keystore password to protect it from external access? >>>>> storing the keystore password in code or in config files is not >>>>> secured >>>>> enough. >>>>> >>>>> In the .NET environment you have DPAPI that was designed exactly >>>>> for this >>>>> kind of problem, the sensitive data is encrypted at the OS level >>>>> with the >>>>> user/machine password and is decrypted at runtime. >>>>> What is the solution in the J2EE environment ? >>>>> >>>>> Thanks! >>>>> >>>>> _________________________________________________________________ >>>>> Express yourself instantly with MSN Messenger! Download today it's >>>>> FREE! >>>>> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ >>>>> >>>>> >>>> >>>> >>> >>> >>> >> Forcing garbage collection through System.gc() does not gaurantee >> garbage collection will occur. >> The API for Java 1.5.0 says this about System.gc() : " Calling the >> |gc| method suggests that the Java Virtual Machine expend effort >> toward recycling unused objects......." >> Notice it uses the word suggest. The JVM will try to run garbage >> collecting but it may not. >> The same goes with the System.Runfinalization(). You are just >> requesting it does this. The JVM may not actually do it. >> >> Nick >> > > > I am not sure of a useful implementation of System.gc(). This might be better answered by studying the garbage collector in the JVM. This is not a trivial subject and something I have no knowledge of. Maybe there is some documentation online or some one on this list that knows. All I know is that the garbage collector does it's very best to keep things "clean". Nick