From 705468b21dad0e13f6b5cf6344cf09c6ec28952f Mon Sep 17 00:00:00 2001
From: Michael McCool
- Needs to be updated to include points noted in Discovery Issue 254.
- Security and Privacy
Security Considerations
-
Security is a cross-cutting issue that needs to be considered in all WoT building blocks and WoT implementations. This chapter summarizes some general issues and guidelines to help @@ -2162,6 +2164,12 @@
+ This security consideration belongs in the TD specification, + not Discovery, since it is about access to Things + generally, not just TDDs (although it applies to TDDs also, since + they are Things). +
In peer-to-peer scenarios, it may be desired by an "owner" to limit the scope and duration of @@ -2211,6 +2225,67 @@
+ On a LAN, + certificates and browsers may not be able to property set up TLS for + HTTPS because browsers expect + certificates pointing to a publicly-visible URL. + Using HTTP is common practice inside LANs but in combination with + self-description it means that WoT Things + would be essentially be making TDs visible to everyone + with access to the private LAN. Even if security mechanisms + such as HTTP passwords were used, these are not effective (they + can be easily discovered by a traffic analyser) without + transport security. +
++ PSK (pre-shared keys) should be used if possible on LANs, + meaning one of the ciphersuites in [[RFC4279]]. + This does require that Things assigned PSKs in a common security domain, + which is typically done by following an onboarding process. + Unfortunately, specific onboarding processes + are currently out of scope of the WoT specifications. +
++ An alternative is to depend on local network security (i.e. WEP). + This is not the best solution from a security or privacy point of + view but may be acceptable in some contexts. Note however that + all users with access to the network would in turn have access to + all TDs via self-description. If this is undesirable, a separate + network can be set up, i.e. with an alternative SSID, and used only + for IoT devices. +
++ Another alternative is to use a reverse proxy service based in the cloud. + Secure setup can + be accomplished if the IoT device has access to the cloud, since + the proxy server can have a public URL and the initial connection + can use HTTPS, then open a secure websocket. The proxy can in turn + re-expose a secure endpoint, and possible add authentication. + The disadvantages of this approach including depending on an external + cloud service and the need to expose an external access point (which is + itself a security risk). The first disadvantage can be addressed by hosting + the proxy service locally + and exposing a public URL using e.g. dynamic DNS if the + local server is connected through an ISP. +
- See detailed discussion in - Issue 254 and in - Issue 139. - In particular, we may need to allow for plain - HTTP in some circumstances, and provide alternative mitigations to use of PSK. - Also, this particular issue is BOTH a security and privacy issue, so where should we put it? -
-- On a LAN, - certificates and browsers may not be able to property set up TLS for - HTTPS because browsers expect - certificates pointing to a publicly-visible URL. - Using HTTP is common practice inside LANs but in combination with - self-description it means that WoT Things - would be essentially broadcasting TDs, making them visible to everyone - with access to the private LAN, which is not advisable for privacy reasons. -
-- PSK (pre-shared keys) should be used if possible on LANs, - meaning one of the ciphersuites in [[RFC4279]]. - This does require that Things assigned PSKs in a common security domain, - which is typically done by following an onboarding process. - Unfortunately, specific onboarding processes - are currently out of scope of the WoT specifications. -
-- An alternative is to depend on local network security (i.e. WEP). - This is not the best solution from a security or privacy point of - view but may be acceptable in some contexts. Note however that - all users with access to the network would in turn have access to - all TDs via self-description. If this is undesirable, a separate - network can be set up, i.e. with an alternative SSID, and used only - for IoT devices. -
-- Another alternative is to use a reverse proxy service based in the cloud. - Secure setup can - be accomplished if the IoT device has access to the cloud, since - the proxy server can have a public URL and the initial connection - can use HTTPS, then open a secure websocket. The proxy can in turn - re-expose a secure endpoint, and possible add authentication. - The disadvantages of this approach including depending on an external - cloud service and the need to expose an external access point (which is - itself a security risk). The first disadvantage can be addressed by hosting - the proxy service locally - and exposing a public URL using e.g. dynamic DNS if the - local server is connected through an ISP. -