The Internet of Broken Protocols: Showcase #2

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

Administrative note: showcase #1 is not easy, and so far I got only two emails. The following protocol is a bit easier. In case you wonder whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r I made up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se protocols, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer is no. I actually found 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ý bet365 Internet of Things :).

Updated: solution posted ;-)

--

Alice buys a new smart TV and wants to connect it to, of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet. She downloads an app from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV's manufacturer. The app allows her to securely send her WiFi password to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV.

The app and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following protocol. Your task is to analyze this protocol and find all weaknesses. You might email me at thaidn@gmail.com if you want some privacy. I'll update this post with my solution in 48 hours.

1/ The TV in setup mode acts as an open WiFi hotpot. The SSID is a random string that starts with "SmartTV".

2/ The app automatically finds and connects to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first open WiFi network whose SSID starts with "SmartTV".

3/ The app sends cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 string "Hello".

4/ The TV sends its certificate. All TV certificates are signed by a CA trusted by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app. Each TV has a unique key pair that is provisioned at manufacturing time. The private key is stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV's flash storage.

5/ The app verifies that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 certificate is signed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted CA. It extracts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA public key PK and sends E(PK, password) || SSID, where E is PKCSv1.5 RSA encryption.

6/ The TV uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key to decrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password. It shutdowns its open WiFi hotpot and uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password and SSID to connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 local WiFi network and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet.

---

Aside from two comments below I also got emails from Andrew L., Alex B., Carl M., Văn D., and Thắng N. Most identified cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 common issues, but surprisingly none actually found all issues!

Alex B. found two problems:

"1. An attacker with access to one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se TVs (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own) can extract cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key. Presumably when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app initially connects to one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se smart TVs, it chooses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SSID that is lexicographically first (so an attacker's fake WiFi with SSID "SmartTVAAAA..." will be chosen by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app. With cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 valid cert and private key in hand, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker can trivially recover cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password (all while performing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual TV)."

This demonstrates a fundamental difference between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet of Things and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WWW. On WWW we aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate servers using public key infrastructure, but this method doesn't work on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet of Things because devices don't have easy to remember identifiers like domain names. David Wong also raised a good point about cert pinning in his comment below.

"2. The SSID sent in #5 is not cryptographically bound. So an attacker can replace that SSID with one cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y control and when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV attempts to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will presumably be able to see what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password is."

The attacker can set up a rogue router that pretends to speak cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WEP protocol, when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV attempts to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can mount one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 known attacks against WEP to obtain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password.

Andrew L. found a unique issue missed by most readers:

Problem 2: There's no forward secrecy.  Even if you reset your TV, anyone who gets it later gets cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key can decrypt past exchanges.

Thắng N. and David Wong raised cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possibility of mounting a Bleichenbacher attack against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA encryption. Thắng N. also found a unique attack that wasn't spotted by ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r readers:

"Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r attack is in step 5, attacker replaces pair (password, SSID) by her own wifi parameters
(password_att, SSID_att). The app decrypts it, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n connect to attacker's wifi."

This problem demonstrates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that, contrary to popular belief, public key encryption doesn't actually provide aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication because anyone can take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 public key and do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encryption cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves.

Comments

it4rb said…
- ở bước 2, do ko có xác thực gì nên attacker có thể MITM bằng cách setup 1 wifi với ssid là SmartTV (hay là SmartTV1 gì đó để lên top khi sort)
- ở bước 5, SSID để trần trụi nên attacker đứng giữa có thể replace SSID gốc bằng SSID của 1 cái wifi fake setup sẵn trước đó rồi forward lại cho TV
- khi TV connect vào cái wifi fake này thì attacker lấy dc password? (Khúc này em không chắc vì không biết wifi handshake thế nào)
Unknown said…
1/ The SSID shoul be private and not public, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 random string should be privately communicated to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 person (by looking behind cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 box maybe?)

4/ looks like you can reverse one TV and obtain a cert that will work for any app. Now unless you can recover cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key associated with that cert, you won't go furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.

5/ Is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re cert pinning? Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app might also trust a bunch of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r certificates (default phone's trust store?), and so you might be able to impersonate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV with any CA-signed certificate and get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 home wifi password.

6/ There will be a HUGE bleichenbacher attack, greatly facilitated by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TV will send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password to any SSID we send him (in 5/ cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SSID doesn't look aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticated)