Posted February 06, 2013
urknighterrant: Actually the "god awful" system makes sense. If there was a single generic authentication it could be easilly cracked and emulated. By tying it to the CD key and limiting installs they effectively eliminated the possibility of cracking it.
There is still a single authentication, they are just (in this hypothetical) encrypting the decryption key a second time. This in no way shape or form eliminate the possibility of cracking it because everyone KNOWS their own CDKey so decrypting that is absolutely trivial.
I am saying its god awful because its ineffective DRM. There is DRM advantage of using the cdkey to encryption on the fly the regular key for each person when you could just use some generic security instead.
The generic security is harder to crack because the key it uses to encrypt the key is not known to the user (users know their own CDKey) and it also takes a fraction of the computation resources (meaning leaner and cheaper servers)
Using public-private encryption to encryption the transmission of the module decryption key rather then a partial CDkey to full CDkey lookup table eliminates both those issues and is thus far far more effective.
Look it another way.
Client is transmitting fragment of cdkey
Server is looking up full cdkey using fragment (searches through entire list!)
Server encodes using full cdkey, sends to client
Client decodes using full cdkey
This process means that a man in the middle who DOES NOT know the FULL cdkey does not get to snoop it since the cdkey is never transmitted in full. It assumes the private-public encryption is broken (or uses it as well so its triple encrypted) and someone is listening and trying to intercept the key. However, there is no such man in the middle, any cracker ALREADY KNOWS his own full CDKEY and the government isn't going to try to steal your NWN cdkey.
Also, its not as secure as you might think because having part of the key vastly reduces the number of guesses you would have to make when using brute force cracking. This makes the effective length of the key as if it was full length - length of partial (even less if the full length and partial length are fixed numbers or fixed location... aka its always the first 20 of 25 digits... then you don't need to bother with 1-4 and 6+... only look for a 5 digit code and treat the rest as KNOWN salt)
Post edited February 06, 2013 by taltamir