more docs on http interface

This commit is contained in:
Trammell Hudson
2022-02-03 19:30:42 +01:00
parent 986a200717
commit 8af4750439
2 changed files with 20 additions and 3 deletions

View File

@@ -10,16 +10,27 @@ interface to subscribe to events.
*WARNING: This is not ready for prime time!* *WARNING: This is not ready for prime time!*
The dishwasher has a local HTTPS port open (and the dryer The dishwasher has a local HTTPS port open. Attempting to connect to
seems to have unencrypted HTTP). Attempting to connect to
the HTTPS port with `curl` results in a cryptic protocol error the HTTPS port with `curl` results in a cryptic protocol error
due to the non-standard cipher selection, `ECDHE-PSK-CHACHA20-POLY1305`. due to the non-standard cipher selection, `ECDHE-PSK-CHACHA20-POLY1305`.
PSK also requires that both sides agree on a symetric key, PSK also requires that both sides agree on a symetric key,
so it is necessary to figure out what that key is before any so it is necessary to figure out what that key is before any
further progress can be made. further progress can be made.
The clothes washer has a local HTTP port that also responds to websocket
traffic, although the contents of the frames are AES-CBC encrypted with a key
derived from the PSK and authenticated with SHA256-HMAC using another
key derived from the PSK. It is also necessary to find the IV for the AES
encryption to communicate with the washer.
## Finding the PSK Despite the usual reputation for bad IoT security, Bosch-Siemens seem to
have done a decent job of designing their system, especially since they
considered a no-cloud local control configuration. The protocols seem
sound and should prevent most any random attacker on your network from
being able to take over your appliances to mine cryptocurrency.
## Finding the PSK (and IV)
![application setup screen](images/network-setup.jpg) ![application setup screen](images/network-setup.jpg)
@@ -72,10 +83,16 @@ PSK can also be found in the last section of the config as base64url encoded.
echo 'Dsgf2MZJ-ti85_00M1QT1HP5LgH82CaASYlMGdcuzcs"' | tr '_\-"' '/+=' | base64 -d | xxd -g1 echo 'Dsgf2MZJ-ti85_00M1QT1HP5LgH82CaASYlMGdcuzcs"' | tr '_\-"' '/+=' | base64 -d | xxd -g1
``` ```
The IV is also there for devices that use it. This needs better documentation.
TODO: document the other frida scripts that do `sendmsg()` and `Encrypt()` / `Decrypt()` tracing
## hcpy ## hcpy
![laptop in a dishwasher](images/laptop.jpg)
The `hcpy` tool can contact your device, and if the PSK is correct, it will The `hcpy` tool can contact your device, and if the PSK is correct, it will
register for notification of events. register for notification of events.

BIN
images/laptop.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB