Weedpacker, the only thing the 3rd source adds is that they supply an authentication that can be trusted by a party that is unknown with the second party.
A client logs on to an unknown server (a new webshop), gets a certificate that is given out by a company like verisign and thus knows that the trusted company verisign has legal agreements with the unknown server making sure you can trust this webshop aswell.
It adds an added assurence there that I do not need. But it has little to do with the encryption scheme used, it is only an implementation of that encryption scheme to ensure the source is a trusted source.
Just look at VPN software that also uses the same encryption methods and is just as secure, but just uses internally created public key/private key combinations + an internally created certificate for security. The only game here is that a party in the middle can not decypher the data stream going from client to server. Which is the only thing I am trying to attempt.
Your example of a 3rd party going inbetween to do identity theft on the server side is nearly unstoppable. Client side identity theft can be stopped because in every secured page load you send along data that the hacker has never got access to. That data was generated by the client and added to the password information when logging on, it becomes the identity keyword for that session. Only if the hacker has access to the memory on the client he can do identity theft.
Server side is a whole different story. After I have logged on and then a hacker catches my datastream and tries to emulate the server he has a problem. He does not know the private key of my server and can thus not decypher the data I am sending and thus never give a proper usefull responce. The only point the hacker can give the client a problem is if he/she emulates the logon page. The client thinks he/she is accessing the logon page of the right server but instead is accessing a page build by the hacker. Types in username and password, and voila, the hacker has username and password. But NOTHING is going to stop that from happening. 99% of the users out there will be fooled by this easilly, SSL or not. If the page looks the same as the real page, a user will not notice the little SSL key in the bottom missing. It wont be easy, it depends a bit on how good the original website is and the trickery needed for the user not realising http is used and not https. As a hacker you want to avoid the message "you are going from a secured page to an unsecured page" sorta thing, which usually is easy because most logins are originally on a unsecure page. You go to http://www.paypal.com and only when you press the login thing you go https. So if I was to redirect www.paypal.com and mimic the front end and never go https, I can fool most of their userbase (I actually got a warning from paypal some months ago that people were sending out emails in their name that would send the user to a paypal copy page to do just that). Most users of websites are computer illiterate and will not realize they are on the wrong page and happely give up their user name and password.
Bottom line, I will never say the system I suggest is as good as SSL. SSL is MUCH better when you need tight security where identity of the server is proven by a 3rd party. I am only saying my idea can be usefull in those situations where people do not currently use SSL now but just some normal unsecure login schemes. Also it is just nice to experiment and learn, if there will never be a practical use, so be it🙂
Also, your example of 12kb, I was expecting it to be a bit larger but so be it. Possibly SSL does do some compression before encryption. With the idea I am proposing it could be brought down to something like 6kb, maybe even less. Text is unbelievably compressable. Also the algorith for public key encryption is more processor intensive then the algorith for normal key encryption, although that gain may be compromised by the loss of the compression routine.