Heh, I do admit when I've realized things I was ignorant on previously...and then I post 'em. Always figure maybe the thought process will teach others how to think about things. I've certainly learned a lot from the open discussions on here.
Ooops...OK !!! It seems u are hurt at my reply. But I did not mean to do that. I just tried to give a logical conclusion to our discussion so that the next person can take up the actual issue, i.e. whether the github repo of blockchain.info can be used to clone a wallet.
Please dont mind about reply and let us know if u can enlighten something on this issue. Your point was correct that blockchain.info does not store our passwords. That is why their service is reliable and cloning may have a value because it can still be run without trusting the operator.
Oh lol no worries
As a technology consultant in IT (and back as an engineer/econ major in school), I'm used to having to take a guess at how things work first and then rely on the more hard-technology-apt cohort to break things down for me...then I translate how systems/networks/databases can be used for business applications. I've done some coding in my day, but like my Spanish (6 years in school), I read much better than I write (i.e. architect) when it comes to code.
That being said, I'll go read up on the repo again and see if I can't figure out how DBs are incorporated. You're right - the simple authentication process (no 2FA) would have to go something like:
1 - user sends identifier+password to blockchain server through SSL channel to log in
2i - server hashes password, which if matched to hashed value, decrypts wallet.dat stored on server, granting access to the private key on client side
-or-
2ii - server sends wallet.dat file to user browser, where it is then decrypted
I think 2ii is the way it works - this is what I meant when I originally thought that the server didn't directly store the private keys. The identifier must be another hash of the public address corresponding to the individual user's wallet.dat file. So now that I think about it, the wallet must be the only thing stored on the server (illustrating why it's essential to back up your wallet if you use blockchain). I'll keep reading through the code and maybe get a buddy to break it down for me further - I'll post back with any revelations.