|
security
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Triple DES keys distributionHi
I'm developing an application that encrypts some data using the TripleDESCryptoServiceProvider, I'm new in this topic and I don't know what is the best and secure way to distribute the keys used by this algorithm since If I left it hardcoded anyone can decompile the assemblies and obtain it. Any sugestion? Thanks On May 7, 5:39 pm, mauricio.cad***@gmail.com wrote:
> Hi Hi,> I'm developing an application that encrypts some data using the > TripleDESCryptoServiceProvider, I'm new in this topic and I don't know > what is the best and secure way to distribute the keys used by this > algorithm since If I left it hardcoded anyone can decompile the > assemblies and obtain it. Any sugestion? > Thanks The problem of keys distrubution is not kind of problem that could be implemented or even understood by newbies. This is btw the main reason for PKI, X509, Kerberos, SSL and you name it... any secure communicataion channel/key distribution protocols. But at the end of the day it always boils down to one simple thing: you always need some secret key for decrypting other keys that supposed to be securely distributed to you. And hardcoding this secret key is totally wrong aproach! Not only because of decompilers ;). There are much easier ways of finding any secret key that you have in your program for an adversary that has sufficient local access: for example - simply dump process memory and try any sequential memory block of the size of the key. If you program is about 100 MB - this aproach will always find your key in a matter of seconds (with the smaller programs it will be even faster). And the key finder program is a trivial automatic thing that doesn't even require any special programming skills ;) -Valery. On May 10, 11:07 am, Valery Pryamikov <val***@harper.no> wrote:
Show quoteHide quote > On May 7, 5:39 pm, mauricio.cad***@gmail.com wrote: Btw. If you recall recent break of HDDVD and Blue Ray keys, it was> > > Hi > > I'm developing an application that encrypts some data using the > > TripleDESCryptoServiceProvider, I'm new in this topic and I don't know > > what is the best and secure way to distribute the keys used by this > > algorithm since If I left it hardcoded anyone can decompile the > > assemblies and obtain it. Any sugestion? > > Thanks > > Hi, > The problem of keys distrubution is not kind of problem that could be > implemented or even understood by newbies. This is btw the main reason > for PKI, X509, Kerberos, SSL and you name it... any secure > communicataion channel/key distribution protocols. But at the end of > the day it always boils down to one simple thing: you always need some > secret key for decrypting other keys that supposed to be securely > distributed to you. And hardcoding this secret key is totally wrong > aproach! Not only because of decompilers ;). There are much easier > ways of finding any secret key that you have in your program for an > adversary that has sufficient local access: for example - simply dump > process memory and try any sequential memory block of the size of the > key. If you program is about 100 MB - this aproach will always find > your key in a matter of seconds (with the smaller programs it will be > even faster). And the key finder program is a trivial automatic thing > that doesn't even require any special programming skills ;) > > -Valery. done by a bit more complicated, but very similar aproach (dumping process memory at the right time ;) -Valery. On May 10, 5:15 am, Valery Pryamikov <val***@harper.no> wrote:
Show quoteHide quote > On May 10, 11:07 am, Valery Pryamikov <val***@harper.no> wrote: Thanks for you answer Valery> > > > > > > On May 7, 5:39 pm, mauricio.cad***@gmail.com wrote: > > > > Hi > > > I'm developing an application that encrypts some data using the > > > TripleDESCryptoServiceProvider, I'm new in this topic and I don't know > > > what is the best and secure way to distribute the keys used by this > > > algorithm since If I left it hardcoded anyone can decompile the > > > assemblies and obtain it. Any sugestion? > > > Thanks > > > Hi, > > The problem of keys distrubution is not kind of problem that could be > > implemented or even understood by newbies. This is btw the main reason > > for PKI, X509, Kerberos, SSL and you name it... any secure > > communicataion channel/key distribution protocols. But at the end of > > the day it always boils down to one simple thing: you always need some > > secret key for decrypting other keys that supposed to be securely > > distributed to you. And hardcoding this secret key is totally wrong > > aproach! Not only because of decompilers ;). There are much easier > > ways of finding any secret key that you have in your program for an > > adversary that has sufficient local access: for example - simply dump > > process memory and try any sequential memory block of the size of the > > key. If you program is about 100 MB - this aproach will always find > > your key in a matter of seconds (with the smaller programs it will be > > even faster). And the key finder program is a trivial automatic thing > > that doesn't even require any special programming skills ;) > > > -Valery. > > Btw. If you recall recent break of HDDVD and Blue Ray keys, it was > done by a bit more complicated, but very similar aproach (dumping > process memory at the right time ;) > > -Valery.- Hide quoted text - > > - Show quoted text - The last days I learned a lot about encryption solutions, and how important are the key distribution/storage and management, and while more secure is a solution more complicated its implementation. I'm still a newbie but taking into account the time, resources, how sensitive is the info my app will manage I think I found an appropriate soultion combining symetric/asymetric encryption, key management tools, and memory protection tricks. Thanks again Mau
LDAP Binding
FullTrust Assemblies Open Ports 21,22,23,80 Running a console application in Windows Scheduler - .NET Runtime Error EventID: 5000 declarative vs. dynamic security demand..why aren't these two snippets equivalent? Checking if User is in Role Acced Adctive Directory in separate domain PermissionSetAttribute XmlSerialization Cannot encrypt web.config appSettings on virtual directory Form1? |
|||||||||||||||||||||||