<commit_before>---
layout: post
title:  'Security vs. the Internet: 2017 in Review'
categories: 
  - blog
tags:
  - security
favorite: true
published: true
---

<i class="fa fa-quote-left fa-4x fa-pull-left fa-border" aria-hidden="true"></i> ***Disclaimer:** <font style="font-size:medium" color="#000066">Though I intend to cover all the major security breaches of 2017, it is nearly impossible to  make an exhaustive list of all of them. Even if it is possible, it won't be suitable for a compressed blog post like this. It is very much possible that I might have missed a "must-have" breach because of the 'Internet filter bubble' that we all live in. Please consider bringing it to my notice!</font>*

<i class="fa fa-clock-o" aria-hidden="true"></i> **A brief recap of 2016**: On the offensive side, attacks like [HEIST][heist], [DROWN][drown], [Sweet32][sweet32] and [Dirty C0W][dirtyc0w] got media attention that they deserved. On the defensive side, Transport Layer Security (TLS) 1.3 [design][tls13_spec] was finalized, which includs the standardization of elliptic curves - Curve25519 and Curve448 ([RFC 7748][rfc7748]) to ensure a high level of practical security. 

However, 2017 is almost over now, and yet TLS 1.3 is not in browsers. There is no doubt about the difficulties of upgrading a security protocol in the Internet; it requires both the servers and clients (browsers in this case) to adopt this changes parallely. While many server vendors have taken the first step to upgrade to TLS 1.3, the browser vendors are still [lagging behind][tls13_due] to enabled it by default. Even though the browser evndors blame the <span data-balloon-length="large" data-balloon="A middlebox or network appliance is a computer networking device that transforms, inspects, filters, or otherwise manipulates traffic for purposes other than packet forwarding. Common examples of middleboxes include firewalls." data-balloon-pos="up">middleboxes<sup><i class="fa fa-wikipedia-w" aria-hidden="true"></i></sup></span>, the real reason is *"<font color="#000066">the original design of TLS 1.3 was incompatible with the way the Internet has evolved over time</font>"* - says <NAME>, the Head of Cryptography - ‎Cloudflare, Inc. 

<i class="fa fa-book" aria-hidden="true"></i> [2016 in review][eff2016], [Nick's blog post][tls13_due] and <span data-balloon="It helps check if your network is compatible with TLS 1.3." data-balloon-pos="up">[middlebox test tool][tls13_test]</span>.

---

# Fast-forward to 2017

Security breaches are one of the most recurring columns of most of the news media, because they happen every year, every now and then.  The year 2017 is no exception to that!

While some of them could expose previously unknown vulnerabilities or intorduce a new bug, many of the rest are just reusing well-known vulnerabilities on a different attack surfaces. Reasons could range from inefficient threat models and anlysis to incorrect implementions while bringing theoretical security to practice. Irrespective of the reasoning, public disclosures of the security breaches help us learn from the mistakes and build more secure systems.

## Research: Vulnerabilities 

**1. [SHAttered][SHAttered] - (Practical) collision of SHA-1:** <span data-balloon="a mathematical one-way function which converts (represents) any arbitary size of data into a fixed-size bit string" data-balloon-pos="up">Cryptographic hashes</span> form one of the backbones of modern information security, because many authentication (e.g. digital signatures or message authentication codes) rely on it. These hashes must ensure <span data-balloon="deterministic, fast one-way only (while finding the hash), infeasiable to reverse" data-balloon-pos="up">several properties</span>, out of which **collision-resistance** is one of the most fragile points.
In theory, the only way to find a collision is by <span data-balloon="exhaustively list every possible message space (data), followed by finding a matching hash" data-balloon-pos="up">brute-force</span>, however, thishas been tampered every time the computer architecture gets improvised, or when a clever way of reducing the complexity is discovered. Ever since, the theoretical collisions were found for SHA-1 ([2005][2005_shattered], [2011][2011_shattered]), it has been depricated. However, being one of the major hashing algorithms, it is still used in many legacy systems including up to [10% of credit card payment systems][SHA1_creditcard]. 

In Feb 2017, researcher from Google and CWI Amsterdam together found the **first ever practical collision** (based on the previous [theoretical work][2011_shattered]) using highly efficient GPUs. Given the fact that the cost of such collision (75-150K USD), it is out of reach for individual hackers, unless they are part of nation-state hacking regimes. However, this breakthrough attack has affected real word applications such as code repositories (e.g. [webkit][sha1_webkit], [svn][SHA1_svn]) and [payment systems][sha1_payment].
<commit_msg>SHAttered added<commit_after>---
layout: post
title:  'Security vs. the Internet: 2017 in Review'
categories: 
  - blog
tags:
  - security
favorite: true
published: false
---

<i class="fa fa-quote-left fa-4x fa-pull-left fa-border" aria-hidden="true"></i> ***Disclaimer:** <font style="font-size:medium" color="#000066">Though I intend to cover all the major security breaches of 2017, it is nearly impossible to  make an exhaustive list of all of them. Even if it is possible, it won't be suitable for a compressed blog post like this. It is very much possible that I might have missed a "must-have" breach because of the 'Internet filter bubble' that we all live in. Please consider bringing it to my notice!</font>*

<i class="fa fa-clock-o" aria-hidden="true"></i> **A brief recap of 2016**: On the offensive side, attacks like [HEIST][heist], [DROWN][drown], [Sweet32][sweet32] and [Dirty C0W][dirtyc0w] got media attention that they deserved. On the defensive side, Transport Layer Security (TLS) 1.3 [design][tls13_spec] was finalized, which includs the standardization of elliptic curves - Curve25519 and Curve448 ([RFC 7748][rfc7748]) to ensure a high level of practical security. 

However, 2017 is almost over now, and yet TLS 1.3 is not in browsers. There is no doubt about the difficulties of upgrading a security protocol in the Internet; it requires both the servers and clients (browsers in this case) to adopt this changes parallely. While many server vendors have taken the first step to upgrade to TLS 1.3, the browser vendors are still [lagging behind][tls13_due] to enabled it by default. Even though the browser evndors blame the <span data-balloon-length="large" data-balloon="A middlebox or network appliance is a computer networking device that transforms, inspects, filters, or otherwise manipulates traffic for purposes other than packet forwarding. Common examples of middleboxes include firewalls." data-balloon-pos="up">middleboxes<sup><i class="fa fa-wikipedia-w" aria-hidden="true"></i></sup></span>, the real reason is *"<font color="#000066">the original design of TLS 1.3 was incompatible with the way the Internet has evolved over time</font>"* - says <NAME>, the Head of Cryptography - ‎Cloudflare, Inc. 

<i class="fa fa-book" aria-hidden="true"></i> [2016 in review][eff2016], [Nick's blog post][tls13_due] and <span data-balloon="It helps check if your network is compatible with TLS 1.3." data-balloon-pos="up">[middlebox test tool][tls13_test]</span>.

---

# Fast-forward to 2017

Security breaches are one of the most recurring columns of most of the news media, because they happen every year, every now and then.  The year 2017 is no exception to that!

While some of them could expose previously unknown vulnerabilities or intorduce a new bug, many of the rest are just reusing well-known vulnerabilities on a different attack surfaces. Reasons could range from inefficient threat models and anlysis to incorrect implementions while bringing theoretical security to practice. Irrespective of the reasoning, public disclosures of the security breaches help us learn from the mistakes and build more secure systems.

## Research: Vulnerabilities 

**1. [SHAttered][SHAttered] - (Practical) collision of SHA-1:** <span data-balloon="a mathematical one-way function which converts (represents) any arbitary size of data into a fixed-size bit string" data-balloon-pos="up">Cryptographic hashes</span> form one of the backbones of modern information security, because many authentication (e.g. digital signatures or message authentication codes) rely on it. These hashes must ensure <span data-balloon="deterministic, fast one-way only (while finding the hash), infeasiable to reverse" data-balloon-pos="up">several properties</span>, out of which **collision-resistance** is one of the most fragile points.
In theory, the only way to find a collision is by <span data-balloon="exhaustively list every possible message space (data), followed by finding a matching hash" data-balloon-pos="up">brute-force</span>, however, thishas been tampered every time the computer architecture gets improvised, or when a clever way of reducing the complexity is discovered. Ever since, the theoretical collisions were found for SHA-1 ([2005][2005_shattered], [2011][2011_shattered]), it has been depricated. However, being one of the major hashing algorithms, it is still used in many legacy systems including up to [10% of credit card payment systems][SHA1_creditcard]. 

In Feb 2017, researcher from Google and CWI Amsterdam together found the **first ever practical collision** (based on the previous [theoretical work][2011_shattered]) using highly efficient GPUs. Given the fact that the cost of such collision (75-150K USD), it is out of reach for individual hackers, unless they are part of nation-state hacking regimes. However, this breakthrough attack has affected real word applications such as code repositories (e.g. [webkit][sha1_webkit], [svn][SHA1_svn]) and [payment systems][sha1_payment].

{'fraction_non_alphanumeric': 0.08324227674580312, 'fraction_numerical': 0.02443627694447204, 'mean_word_length': 5.191881918819188, 'pattern_counts': {'":': 0, '<': 53, '<?xml version=': 0, '>': 53, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4926518', 'n_tokens_mistral': 2834, 'n_tokens_neox': 2531, 'n_words': 1343}