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.
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
- ở 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)
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)