Monday 29 July 2019

security - Why does my browser think that https://1.1.1.1 is secure?


When I visit https://1.1.1.1, any web browser I use considers the URL to be secure.


This is what Google Chrome shows:


Google Chrome 65.0.3325.181 address bar showing https://1.1.1.1


Normally, when I try to visit an HTTPS site via its IP address, I get a security warning like this:


Google Chrome 65.0.3325.181 address bar showing https://192.168.0.2


From my understanding, the site certificate needs to match the domain, but the Google Chrome Certificate Viewer does not show 1.1.1.1:


Certificate Viewer: *.cloudflare-dns.com


GoDaddy's knowledgebase article "Can I request a certificate for an intranet name or IP address?" says:



No - we no longer accept certificate requests for either intranet names or IP addresses. This is an industry-wide standard, not one specific to GoDaddy.



(emphasis mine)


And also:



As a result, effective October 1, 2016, Certification Authorities (CAs) must revoke SSL certificates that use intranet names or IP addresses.



(emphasis mine)


And:



Instead of securing IP addresses and intranet names, you should reconfigure servers to use Fully Qualified Domain Names (FQDNs), such as www.coolexample.com.



(emphasis mine)


It's well after the mandatory revocation date 01 October 2016, yet the certificate for 1.1.1.1 was issued on 29 March 2018 (shown in the screenshot above).




How is it possible that all the major browsers think that https://1.1.1.1 is a trusted HTTPS website?



Answer



English is ambiguous. You were parsing it like this:


(intranet names) or (IP addresses)

i.e. ban the use of numeric IP addresses entirely. The meaning that matches what you're seeing is:


intranet (names or IP addresses)

i.e. ban certificates for the private IP ranges like 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16, as well as for private names that aren't visible on the public DNS.


Certificates for publicly routable IP addresses are still allowed, just not generally recommended for most people, especially those who don't also own a static IP.




This statement is advice, not a claim that you can't secure a (public) IP address.



Instead of securing IP addresses and intranet names, you should reconfigure servers to use Fully Qualified Domain Names (FQDNs), such as www.coolexample.com



Maybe someone at GoDaddy was misinterpreting the wording, but more likely they wanted to keep their advice simple, and wanted to recommend using public DNS names in certificates.


Most people don't use a stable static IP for their service. Providing DNS services is the one case where it's truly necessary to have a stable well-known IP instead of just a name. For anyone else, putting your current IP in your SSL cert would constrain your future options, because you couldn't let someone else start using that IP. They could impersonate your site.


Cloudflare.com has control of the 1.1.1.1 IP address themselves, and isn't planning to do anything different with it in the foreseeable future, so it makes sense for them to put their IP in their cert. Especially as a DNS provider, it's more likely that HTTPS clients would visit their URL by number than for any other site.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...