The Internet of Broken Protocols: Showcase #5

(complete list of protocols: https://www.hyundaihatinh3s.com/search/label/The%20Internet%20of%20Broken%20Protocols)

Administrative note: I've posted solutions to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first 4 challenges. Some readers again found attacks that I wasn't aware of, but I'm not surprised anymore :=).

I'm interested in making my puppy protocols less broken, so please share with me your "patches". I'm also open to challenge submissions, please drop me a line if you have something cool to share.

---

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past few years I've found many use cases in which doing crypto in Javascript makes a lot of sense. This challenge is one of those cases. Although cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crypto is trivial cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole protocol is complex, involves many players and requires a basic knowledge of web security. Your task is to identify any weaknesses and propose a fix. You can leave your findings in a comment or email me at thaidn@gmail.com. I'll update cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post with my solution in a few days.

This protocol makes web ads load faster by reducing round trips needed to fetch cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ads. It has 4 participants:

* The advertiser (e.g., Coca Cola, Nike, etc.) creates ads and uploads cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad serving system. An ad is a piece of HTML and Javascript and could be malicious.

* The ad serving system (e.g., DoubleClick, Facebook, etc.) verifies ads, rejects malicious, and serves supposedly good ads from https://www.important.com.

* The publisher (e.g., New York Times, etc.) gets ads from eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 advertiser or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad serving system and displays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir website at https://www.publisher.com. Since ads could be malicious, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will be served via an iframe sourced to https://www.important.com (so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can't interfere with anything running on https://www.publisher.com, thanks to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same-origin policy).

* The end user visits https://www.publisher.com with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir browser and sees ads.

As cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name implies https://www.important.com is an important origin because it serves all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ads and it also runs some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r sensitive services. How cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad serving system validates ads is outside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scope of this challenge, but let's assume that it catches all malicious ads. Having said that, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's some weakness in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol that you can exploit to serve an arbitrary ad off https://www.important.com.

The protocol consists of two steps: provisioning and rendering.

# Provisioning

1. The advertiser uploads an ad to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad serving system.

2. The ad serving system verifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad. If it is good, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad serving system encrypts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ad with a random key, and wraps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 random key with a long-term key, returns this piece of HTML

Comments