In my last security post I discussed the fact that good secure passwords and proper storage and use are every web user’s responsibility. This is even more important for those of us working as web developers.
Providing a username and password to a website or application does primarily only one thing, and that is to prove that you are who you say you are. You really need to be trusted by the service you are using. However, the flip side to that is that you want there to be NO OTHER PEOPLE that can impersonate you. You, and you alone have the legitimate right to your information. It is a matter of proving identity.
Once you login, then the service you are talking to needs to prove to you that they are who they claim to be. This pairing of proven identities sets up a trust relationship. You and your web browser need a two way trust with the service on the other end of the network connection. However, from its inception the internet was a trusting place so the connections did not need built-in security. Originally, it was university researchers sharing information with other researchers. There was an inherent trust in that community. But, then many people and companies started using the internet for many different reasons, most legitimate, but unfortunately many are malicious. Secure Socket Layer (SSL) is a technology for creating a secure tunnel from the inside of your computer to the inside of a trusted service you are connected to.
How SSL works is very complicated and fortunately you don’t need to understand it all. Here is an excellent and relatively short explanation of how SSL certificates work: https://www.cloudflare.com/learning/ssl/how-does-ssl-work/ Please take a few minutes to at least browse through it to understand the basics.
Now that you have that basic understanding, we need to consider the two basic concepts that have to be carefully considered to be safe(r) on the internet:
Identity of you and your browser, and the web server and its owner. And a secure communication channel between the two programs. Certificates do both of those things.
When you enter a URL or click on a link, the URL starts with a protocol string which is either HTTP:// or HTTPS://. The S stands for Secure. You can freely communicate over HTTP protocol, but it is NOT secure. If you want it secure then it needs to be HTTPS.
Insecure connection
As an example of an insecure website, try this (no really, it’s OK): http://digitalparadox.org/ Notice the ‘http://’ and when you get there the address bar of your browser should say ‘Insecure‘. If you forget the ‘S’ on a site that is secure, it has the ability (not guarantee) to forward your request to httpS:// to ensure it is secure. Try it and notice if it makes the switch.
Secure connection
When your browser connects to a web server, AND you are using HTTPS protocol, then your browser and the web server exchange certificate files that are used to establish the secure channel. Both programs can determine for certain whether the other computer sent a properly secure certificate. When that is done, your web browser should clearly indicate the connection is secure. This is often done by displaying a lock icon to the left of the address as in these examples. Notice that these examples are all this training site: MichaelKentBurns.com which has a proven certificate.


Unfortunately Chrome browsers sometimes use an icon that is not clear to my mind. It is meant to indicate a two way secure connection. Here it is:

Secure connection to Uncertain site.
So far we have been primarily interested in the secure connection, but we have not addressed the identity of the website. Built into a properly formed certificate is the identity of the service and the identity of several independent but trusted certificate authorities that know about this claim of identity. Basically, your browser can decode that certificate and contact those independent authorities to check out the claims. If all that checks out, you can be quite certain that all is well.
However, a less secure type of certificate can’t be proven by your browser. In this case then your browser will make it plain to you. One example that I am certain of is our demo site: https://demo.MichaelKentBurns.com . We have a certificate but it’s not proven yet. The first time your browser encounters such a site it will make it very plain by showing you a severe warning instead of the website you were hoping for.

Not wanting to assume that you understand the subtleties it simply says ‘Your connection is not private‘. The connection is secure, but you can’t be sure of the destination. HOWEVER, don’t be too quick to barge on past the warning! This is where:
I give HIGH COMMENDATION to Samuel.
When he encountered this he said:
“… the problem that i have found it concern the security of this page, my software of protection had to notify me that, …”
Samuel, an astute student!
Always stop at this warning and evaluate. Double check your instructions. Make sure the site you are going to is a low risk. Your important accounts and high risk sites should NEVER cause this warning. In this case, it was our demo site that was still under construction. This warning is what prompted us to enter Issue #24. It is that issue that I have been working on that brought all of this to my attention. This is an important issue that should never be trivialized.
But, once you read the warning, you are provided with an ‘Advanced’ button. If you click that, you get a little more information:

Notice, at the very bottom line in fine print, there is a link that lets you proceed to the site. If you click that, you get your site but there is a still a stern warning in the address line of your browser:

Checking the details of a site certificate.
In some browsers there is a link or a button that will show you the details of the certificate.

That’s not usually very easy to do with some browsers. There is an easier way:
https://www.sslchecker.com/sslchecker
You can enter the domain address of any site and it will give you the details. For example:

Now, you try it yourself: https://www.sslchecker.com
Put in a site that you really depend on like Upwork.com. A really impressive one to try is google.com, give it a look.
Your responsibility as a web browser and developer.
So, what is the bottom line?
- Look for the lock!
- Beware the warning!
- If in doubt, check it out with https://www.sslchecker.com or the features built into your browser.
- Make sure the sites you are responsible for have a good certificate.
Now, dear students, it’s time to take action. Leave a comment below.
What did you know about this before reading this page?
What did you learn?
Better yet, what are you going to change?
Whose responsibility is it to check certificates?