IPSec is employed at the IP level, SSL at the transport level and PGP at the application level. In some lecture not it says:
IPSEC: Most general solution but least flexible SSL: Still very general and some flexibility PGP: Least general but very flexibel.
I guess the general refers to what kind of protocol I can secure. With IPSEC I can secure everything that uses TCP or UDP. PGP is the least general because it just encrypts emails and is therefore very specific. Is that understanding right?
However I have no idea for what the flexibilty refers in this context, anyone an idea? Has this to do with extensibility?
Thanks
Every encryption protocol only works if you have support at both ends.
SSL was the easiest to deploy, because it was built into the browsers and the web servers. For the most part, everybody who wanted to run a web server already had SSL support built-in---they just had to be technically savvy to turn it on (and to purchase a cert or willing to live with a warning to the end user.
One of the nice things about SSL is that it has key-management built in.
IPSEC does provide host-to-host encryption. However the underlying design was so flexible that multiple IPSEC systems couldn't communicate with each other unless they were identically configured. Worse, key management wasn't part of the protocol for many years. Even though there were grand plans for systems that automatically recognized that there were IPSEC-enabled systems on both ends and automatically engaged, this never worked (still doesn't work).
PGP is a static message encryption system. It doesn't encrypt stuff that's interactive. And you shouldn't use PGP, you should use S/MIME, as its already integrated into Apple Mail, Evolution, Outlook Express, Outlook, Thunderbird, etc.
So yes, IPSEC would be a better choice, but it's too hard to use. PGP doesn't do enough. SSL hit the sweet spot, which is why it dominates.