I have a question with regards to having full control on the cryptography which you will be using for your own application vs relying on external entities such as certification authorities?
What are the pros and cons for each options?
I have a question with regards to having full control on the cryptography which you will be using for your own application vs relying on external entities such as certification authorities?
What are the pros and cons for each options?
Relying on a certification agency does not take you any control over cryptography (apart from some dubios agencies generating the keys for you).
For getting a certification from an agency, you locally create your own keys, create a certification request (CSR) for the public key and send the public key together with the CSR to the agency.
The agency has no access to nor influence at all on your cryptography (encrypting and signing data). Choosing (or not choosing) a certification agency might be a debate on trust though (trust of others in your identity, which is certified by the agency).
A certification agency only provides trust, not encryption.
Regardless of whether you use a certificate signed by a CA or a self signed certificate, the encryption/hashing implementation is entirely down to you.
Trust is important. How can I be certain that anything I download on your website is actually coming from you and not someone else? This is what a CA does. They claim that they have done an amount of investigation and they certify that you are who you say you are.
If I trust the CA to have done some amount of investigation, then I can trust that you are who you say you are.
On the other hand, a self signed cert is almost useless for trust purposes, as you're essentially certifying your own identity.
In asking this question, you're actually asking the pros of cons of using a private chain trust or one that is already available on the client.
Use a public CA - PROs
Use a public CA - CONs
Use a private CA - PROs
Use a private CA - CONs
Note that many of these properties are very dependent on the way you set things up and use your certificate: if you're using certificate pinning, for instance, you're more or less ignoring all of these issues except the trust anchor distribution one.