Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Placeholder section on transport security #87

Merged
merged 1 commit into from
Jun 22, 2022
Merged

Conversation

mlagally
Copy link
Contributor

@mlagally mlagally commented Jul 15, 2021

Comment on lines +1933 to +1934
Consider mandating HTTPs, at least for things that are used outside of a closed network.
Some other standards, such as Echonet use HTTPS only.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

  • once "HTTPs" while the second time "HTTPS" with capital S letter
  • ECHONET seems to be always capitalized

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Member

@benfrancis benfrancis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would mandating HTTPS mean in practice and what's the definition of a closed network? Is the idea that a conforming WoT consumer would simply have to refuse to communicate with a WoT device which doesn't use TLS? This seems a bit heavy-handed to me given there may be valid use cases where plain HTTP may be unavoidable (e.g. for local domains or constrained devices lacking the processing power for cryptography algorithms).

Perhaps a more balanced approach would be to strongly recommend the use of TLS and encourage user agents to inform users of insecure connections like web browsers do.

@benfrancis
Copy link
Member

Note that one of the changes proposed in #78 is to add a security section to the Core Profile which defines security schemes which conformant Web Things MAY support and conformant Consumers MUST support. That goes beyond just transport security.

@mlagally
Copy link
Contributor Author

mlagally commented Jul 16, 2021

@benfrancis

Note that one of the changes proposed in #78 is to add a security section to the Core Profile which defines security schemes which conformant Web Things MAY support and conformant Consumers MUST support. That goes beyond just transport security.

The text in #78 is basically just a heading and a one liner. You could create a dedicated PR for that.
However we need a more specific security section that defines authentication, transport security etc.
I was counting on @mmccool and the Security TF to help us here.

@mlagally mlagally changed the title section on transport security Placeholder section on transport security Jul 20, 2021
@mmccool
Copy link
Contributor

mmccool commented Jul 29, 2021

See also w3c/wot-security-best-practices#13 which captures some discussions we have been having in the Security TF about local transport security (e.g. https on the local network) which is the hard problem here. Summary: it's hard to mandate use of https in use cases like local networks in the home, unfortunately. (Unless you assume a tunnel through a cloud service or use of externally visible URLs via DyDNS or whatever, both of which are not ideal for other reasons).

Copy link
Contributor

@mmccool mmccool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think mandating HTTPS is feasible in a local environment, unfortunately. The situation is quite complicated, and I would recommend instead that we mandate "best practices" for security and defer to the WoT Security Best Practices document.

Generally: Security is important but does not directly impact interoperability, which should be our focus in profiles.

@mmccool
Copy link
Contributor

mmccool commented Jul 29, 2021

Don't think we can mandate HTTPS, so... I think we should simply defer to the security best practices document (which we are working on actively right now, and want to publish in the fall.) Note however it is informative, so the reference in "profiles" should be an informative recommendation.

Do we have anything around security that affects interop? We do need to specify a specific set of security schemes. We probably do want to review the list and perhaps constrain them a bit. APIkey in particular is quite open-ended. But even OAuth2 has some variations e.g. on where the token is embedded. We should also perhaps disallow certain things like "in": "url" which is generally a bad idea, but is there for compatibility reasons (certain brownfield devices).

@OliverPfaff
Copy link

Re mandating "HTTP-over-TLS - yes/no/maybe?": it should be considered that NETCONF (resp. RESTCONF) probably is a closer "neighbor" of WoT than HTTP with its origins and majority usage in IT ecosystems

NETCONF mandates security in RFC 6241 (see https://datatracker.ietf.org/doc/html/rfc6241#section-2.2). NETCONF applies a security-always-on paradigm while Web applies a security-as-an-option paradigm

From my perspective WoT security should make an explicit decision about the designated security paradigm in e.g. {security-as-an-option (opt-in), security-by-default (opt-out), security-always-on (no opt-out)}

@benfrancis
Copy link
Member

See #124

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants