Main content

Around the world with TLS 1.0 (Part 2)

Neil Craig

Lead Technical Architect, D&E

Following a which was initiated by , asking about experiences with disabling TLS1.0 and 1.1, I committed to writing an update on my late 2018 blog post, This is that update.

I’ll keep this post brief and aim to keep the comparisons pretty direct. If you haven’t already, I’d recommend reading for context and methodology. Let’s dive in…

Global view

First of all, I looked at our “global view” of TLS usage. This covers TLS usage on www.bbc.co.uk and from every country we served:

November 2018 (original) data

TLS Version

Number of requests

Percentage

TLSv1.2

2,002,516,373

97.96%

TLSv1.1

4,529,764

0.22%

TLSv1.0

37,160,210

1.82%

 

February 2020 data

Context: We have two traffic edges currently (one of which replaced the traffic edge in the 2018 data), one for UK and mainland Europe (which supports TLS1.3), another for “rest of world” (which does not yet support TLS1.3)

UK, mainland Europe & “rest of world”:

TLS Version

Number of requests

Percentage

TLSv1.3

1,163,496,361

48.45%

TLSv1.2

1,218,683,970

50.75%

TLSv1.1

901,942

0.04%

TLSv1.0

18,164,567

0.76%

This shows a ~68% reduction in TLS1.0 usage globally over the 15 months or so between the two datasets. That’s pretty significant and is more than I had expected.

Incidentally, if we look exclusively at our UK/mainland Europe traffic edge (where TLS1.3 is enabled) we see ~69% TLS1.3 — so the adoption rate is strong:

TLS Version

Number of requests

Percentage

TLSv1.3

1,163,496,361

69.07%

TLSv1.2

506,655,701

30.08%

TLSv1.1

500,971

0.03%

TLSv1.0

13,879,940

0.82%

Per-Country view

Let’s examine how TLS1.0 usage has changed on a country-by-country basis. Again, we’ll find the percentage of HTTPS requests which used TLS1.0 for countries which made ≥ 10,000 HTTPS requests over 3 days. I’ll represent this as a comparison view for simplicity:

Country

Num requests (Nov. 2018)

% TLS 1.0 (Nov. 2018)

Num requests (Feb 2020)

% TLS 1.0 (Feb 2020)

% reduction

Bosnia and Herzegovina

35,031

100.00%

418,582

0.90%

99.10%

China

2,261,506

86.93%

2,549,943

19.79%

77.24%

Montenegro

28,712

48.74%

193,059

0.61%

98.76%

Croatia

113,948

43.75%

1,210,262

7.79%

82.19%

Uganda

150,225

34.48%

1,619,262

6.22%

81.95%

Honduras

97,644

29.55%

916,586

6.77%

77.10%

Ethiopia

180,473

26.04%

2,186,672

6.67%

74.38%

Democratic Republic of the Congo

12,775

25.67%

138,347

3.80%

85.20%

Nigeria

1,224,923

25.13%

9,621,049

8.08%

67.84%

Cote d'Ivoire

14,717

23.68%

170,716

8.11%

65.74%

Myanmar

164,751

21.25%

2,333,043

1.53%

92.80%

Hungary

175,327

20.20%

4,042,959

0.15%

99.24%

Cameroon

11,618

15.02%

217,951

6.87%

54.29%

Tanzania

76,469

14.93%

4,874,370

7.17%

51.95%

Somalia

189,509

12.98%

1,236,812

2.58%

80.12%

Sudan

16,273

12.93%

517,011

6.73%

47.92%

Mozambique

10,348

12.39%

228,480

3.31%

73.28%

Taiwan

195,132

11.01%

5,991,350

3.68%

66.55%

Zambia

29,070

10.41%

902,829

2.36%

77.31%

Morocco

32,932

10.04%

1,998,655

2.81%

72.03%

Uzbekistan

17,135

9.38%

1,270,560

2.46%

73.74%

Japan

489,215

9.15%

14,841,878

1.33%

85.44%

Hong Kong

426,542

8.97%

368,286

2.43%

72.91%

Algeria

24,760

8.97%

78,643

5.59%

37.65%

Romania

62,019

8.79%

52,821

1.78%

79.75%

Zimbabwe

19,253

8.15%

12,272

1.90%

76.69%

Egypt

52,061

7.60%

189,551

2.72%

64.21%

Turkey

234,372

7.32%

185,453

1.56%

78.69%

Philippines

94,536

6.95%

81,734

2.09%

69.93%

Ghana

44,913

6.71%

24,535

1.09%

83.76%

Belarus

28,211

6.68%

9,250

0.73%

89.07%

Kenya

73,939

6.39%

48,674

1.31%

79.50%

Nepal

38,569

6.00%

9,477

0.36%

94.00%

Bulgaria

27,659

5.96%

5,952

0.36%

93.96%

Malawi

15,501

5.85%

8,170

2.03%

65.30%

Jordan

13,419

5.73%

9,279

0.74%

87.09%

Indonesia

119,720

5.40%

63,831

0.98%

81.85%

Ukraine

86,505

5.35%

66,016

0.62%

88.41%

Republic of Korea

83,370

5.33%

42,123

0.98%

81.61%

Saudi Arabia

79,834

5.21%

108,438

1.54%

70.44%

       

Mean reduction

76.97%

 

This shows some even more significant reductions in TLS1.0 usage for some countries, the mean reduction being ~77%.

Some interesting observations from these data:

  • Hungary has both the largest reduction (99.24%) and the lowest percentage (0.15%) usage of TLS1.0
  • Algeria saw the smallest reduction in TLS1.0 usage, at 37.65%
  • China has the highest percentage usage of TLS1.0 at 19.79%

Let’s update our view for the UK and USA against the 2018 data:

Country

Num requests (Nov. 2018)

% TLS 1.0 (Nov. 2018)

Num requests (Feb. 2020)

% TLS 1.0 (Feb. 2020)

% reduction

Great Britain

23,778,043

1.43%

9,288,530

0.71%

51%

USA

2,373,620

1.47%

1,557,219

0.40%

72%

This is interesting in its own right, both the UK and USA have smaller (albeit it only a little smaller for the USA) reductions than the mean from the “2018 worst offenders” list, above. This is perhaps because the UK and USA have a smaller base of real users on TLS1.0, with more usage being “is the internet working” checks running on old platforms, corporate proxies etc. (we seem to be used for lots of these sorts of tests, which is hopefully a compliment!).

It’s worth updating the countries which have the largest percentage usage of TLS1.0 — the list above was the “worst of” 2018. Here’s the top 10 countries with the highest percentage of TLS1.0 usage in Feb. 2020:

Country

Number of requests

Percentage of TLS 1.0 usage

United States Minor Outlying Islands

389,725,509.

100.00%

Antarctica

4,979,351

100.00%

Kosovo

276,524

100.00%

Niue

12,758,637

100.00%

American Samoa

5,063,507

100.00%

Christmas Island

1,633,591

100.00%

Mayotte

8,590,803

100.00%

Svalbard and Jan Mayen

998,549

99.99%

Pitcairn Islands

425,550

99.98%

Tuvalu

5,770,681

99.98%

Yikes, lots of countries with 100% (rounded to 2 DP) TLS1.0 usage. It seems that most of these countries are relatively small (in comparison to the “worst offenders” in 2018) so maybe the above is the result of one or a few legacy systems in each country/territory.

Clients

As in 2018, it’s useful to know what is making all these TLS1.0 requests. The table below is slightly improved over the 2018 data (please see the original post for info). These data are global and show the top 10 by “Operating system” and “User Agent” fields which are parsed from the User Agent request header as a normalisation stage:

Operating system

User Agent

Percentage of TLS 1.0 usage

Unknown

Unknown

38.02%

Android 4.2.2

Android Browser 4

2.54%

Windows 7

IE 7

2.30%

Android 4.4.4

Unknown

2.03%

Windows 7

IE 9

2.02%

Android 4.4.2

Android Browser 4

1.97%

Android 2.3.6

Android Browser 4

1.93%

Mac OS 10.11.6

Chrome 53

1.85%

Windows 8

Firefox 16

1.80%

Unknown

WebKit 533

1.77%

“Unknown” means that the parser library doesn’t know what the Operating System / User Agent is — either because it’s uncommon or ancient! What we see here are very outdated Operating Systems and User Agents — essentially these seem to be combinations of:

  • Old Operating Systems with old TLS stacks and User Agents which use the Operating System TLS stack
  • Old User Agents with old TLS stacks which don’t use the (sometimes more modern) Operating System TLS stack

The top 10 User Agents whose Operating system and User Agent are both unknown are:

  • Nokia6280/2.0 (03.60) Profile/MIDP-2.0 Configuration/CLDC-1.1
  • CITRIXRECEIVER
  • <empty>
  • Mozilla/5.0 (compatible; Genieo/1.0 http://www.genieo.com/webfilter.html)
  • SGOS/6.7.3.9 (S400–30; Proxy Edition)
  • Mozilla/5.0 (compatible; PRTG Network Monitor (www.paessler.com); Windows)
  • Dorado WAP-Browser/1.0.0
  • Mozilla/4.0 (ISA Server Connectivity Check)
  • ProxySG Appliance
  • WinampMPEG/2.00

So yep, as expected, generally ancient User Agents and the usual suspects. Most notably, it appears we have essentially fewer “real” (as in “used by people”) User Agents which negotiate TLS1.0, leaving a higher proportion of TLS1.0 usage from what appear to be automated systems. This makes sense if you consider the changes in Operating systems over the 15 month span between my two datasets — Windows 10, for instance, has gone from around 38% to 57% (desktop) market share (largely replacing Windows 7) and brings with it a much more modern TLS stack. Similarly, many users will have upgraded mobile phones, tablets and other devices.

Conclusion

TLS1.0 has seen a significant reduction in usage of around 77% for our audiences over the 15 months since I wrote the original blog post but usage of TLS1.0 in some geographies remains stubbornly high. The trend is clear though, TLS1.0 usage is absolutely on the wane and whilst the long tail of this usage will undoubtedly drag last for years, usage patterns are moving in the right direction (at least in our audience).

We operate with a single edge configuration (in terms of TLS) around the world so we need to take a decision on when the right time to remove TLS1.0 (and 1.1) support is — balancing the security risks against the hard cut-off for users. Something we have put some thought into is a mechanism for warning our audience of such breaking changes — we’re not there yet with it but it’s definitely something I’d like to have as a deprecation process which aims to inform the end user and ideally, show them a workable upgrade path so they can continue to use our services, if they so choose.

Let me know if you have questions or would like more detail on an element shown here and I’ll do my best to get you the information. Please either leave a comment below or .

More Posts

Previous

The Remote Generation