Skip to content

Commit fbd80ae

Browse files
authored
Merge pull request #827 from mmccool/fix-issue-824
Revise Security and Privacy assertions
2 parents 07554fb + b065183 commit fbd80ae

File tree

1 file changed

+38
-38
lines changed

1 file changed

+38
-38
lines changed

index.html

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3418,11 +3418,11 @@ <h2>WoT Runtime</h2>
34183418
defines such an application-facing interface that follows the <a>Thing</a> abstraction
34193419
and enables the deployment of behavior implementations during runtime through application scripts.
34203420
See <a href="#native-impl"></a> for alternative APIs, which can also only be available during compile time.
3421-
In general, application logic should be executed in isolated execution environments
3422-
to prevent unauthorized access to the management aspects of the <a>WoT Runtime</a>,
3421+
In general, application logic should be executed in sandboxed execution environments
3422+
that prevent unauthorized access to the management aspects of the <a>WoT Runtime</a> from the application code,
34233423
in particular the <a>Private Security Data</a>.
3424-
In multi-tenant <a>Servients</a>, additional execution environment isolation is required for the different
3425-
tenants.
3424+
In multi-tenant <a>Servients</a>, different tenants should also be prevented from accessing each other's data
3425+
without authorization.
34263426
</p>
34273427
<p>
34283428
A <a>WoT Runtime</a> needs to provide certain operations to manage the lifecycle of <a>Things</a>,
@@ -4104,10 +4104,6 @@ <h5>Thing Description Private Security Data Risk</h5>
41044104
<span class="rfc2119-assertion" id="arch-security-consideration-separate-security-data">
41054105
There SHOULD be a strict separation of
41064106
<a>Public Security Metadata</a> and <a>Private Security Data</a>.</span>
4107-
<span class="rfc2119-assertion" id="arch-security-consideration-public-metadata-only">
4108-
<a>Producers</a> of TDs and extensions meant to be used in TDs
4109-
MUST ensure that only <a>Public Security Metadata</a>
4110-
is ever stored in TDs.</span>
41114107
<span class="rfc2119-assertion" id="arch-security-consideration-auth-private-data">
41124108
Authentication and authorization
41134109
SHOULD be established based on separately managed <a>Private Security Data</a>.</span>
@@ -4162,20 +4158,19 @@ <h2>WoT Scripting API Risks</h2>
41624158
mitigations.
41634159
</p>
41644160
<p>
4165-
<span class="rfc2119-assertion" id="arch-security-consideration-other-programming-mechanisms">
41664161
In general,
41674162
these risks and mitigations should also be applied to any system
41684163
that supports programmable behavior for WoT systems,
4169-
not just the <a>WoT Scripting API</a>.</span>
4164+
not just the <a>WoT Scripting API</a>.
41704165
</p>
41714166
<section id="sec-security-consideration-cross-script">
41724167
<h5>Cross-Script Security Risk</h5>
41734168
<p>
41744169
In basic WoT setups, all scripts running inside the
41754170
<a>WoT Runtime</a> are considered trusted,
41764171
distributed by the manufacturer, and therefore there
4177-
is no strong need to perform strict isolation
4178-
between each running script instance. However,
4172+
is no strong need to isolate
4173+
script instances from each other. However,
41794174
depending on device capabilities, deployment use
41804175
case scenarios, and risk level it might be desirable
41814176
to do so. For example, if one script handles
@@ -4187,27 +4182,26 @@ <h5>Cross-Script Security Risk</h5>
41874182
example is mutual co-existence of different tenants
41884183
on a single WoT device. In this case each WoT
41894184
runtime instance will be hosting a different tenant,
4190-
and isolation between them is required.
4185+
and preventing tenants from accessing each other's data
4186+
without authorization will generally be needed.
41914187
</p>
41924188
<dl>
41934189
<dt>Mitigation:</dt>
41944190
<dd>
41954191
<span class="rfc2119-assertion" id="arch-security-consideration-isolation-sensitive">
41964192
The <a>WoT Runtime</a> SHOULD perform isolation of
4197-
script instances and their data in cases when
4193+
script instances and their data from each other in cases when
41984194
scripts handle sensitive data.</span>
41994195
<span class="rfc2119-assertion" id="arch-security-consideration-isolation-tenants">
42004196
Similarly, the <a>WoT Runtime</a>
42014197
implementation SHOULD perform isolation of <a>WoT
4202-
Runtime</a> instances and their data if a WoT
4198+
Runtime</a> instances and their data from each other if a WoT
42034199
device has more than one tenant.</span>
4204-
Such isolation
4205-
can be performed within the <a>WoT Runtime</a>
4206-
using platform security mechanisms available on
4207-
the device. For more information see Sections
4208-
"WoT Servient Single-Tenant" and "WoT Servient
4209-
Multi-Tenant" of the <em>WoT Security and Privacy
4210-
Guidelines</em> specification [[WOT-SECURITY]].
4200+
In practice, isolation of scripts and runtime instances from each other
4201+
can be accomplished by running all instances
4202+
in a "sandboxed" environment that controls its access to the rest of the environment.
4203+
For more information see Sections "WoT Servient Single-Tenant" and "WoT Servient
4204+
Multi-Tenant" of the <em>WoT Security and Privacy Guidelines</em> specification [[?WOT-SECURITY]].
42114205
</dd>
42124206
</dl>
42134207
</section>
@@ -4299,14 +4293,15 @@ <h5>Security Credentials Storage Risk</h5>
42994293
In case
43004294
there are more than one tenant on a single
43014295
WoT-enabled device, a <a>WoT Runtime</a>
4302-
implementation should guarantee isolation of
4303-
each tenant's provisioned security credentials.</span>
4296+
implementation SHOULD isolate
4297+
each tenant's provisioned security credentials
4298+
from other tenants.</span>
43044299
<span class="rfc2119-assertion" id="arch-security-consideration-no-expose-cred">
4305-
Additionally, in order to minimize a risk that
4300+
In order to minimize a risk that
43064301
provisioned security credentials get
43074302
compromised, the <a>WoT Runtime</a>
43084303
implementation SHOULD NOT expose any API for
4309-
scripts to query the provisioned security
4304+
scripts to query provisioned security
43104305
credentials.</span>
43114306
<span class="rfc2119-assertion" id="arch-security-consideration-limit-cred-access">
43124307
Such credentials (or even better,
@@ -4571,12 +4566,13 @@ <h5>Thing Description Personally Identifiable
45714566
<span class="rfc2119-assertion" id="arch-privacy-consideration-dist-td-auth">
45724567
Distribution mechanisms for TDs SHOULD ensure they are
45734568
only provided to authorized Consumers.</span>
4574-
Note that the <a>WoT Discovery</a> mechanism is designed to address this
4575-
specific issue, as long as it is used with authentication and access
4569+
Note that the <a>WoT Discovery</a> mechanism is designed to address these
4570+
specific issues, as long as it is used with authentication and access
45764571
controls on exploration services.
4577-
<span class="rfc2119-assertion" id="arch-privacy-consideration-no-unness-info-td">
4578-
Unnecessary information
4579-
SHOULD NOT be exposed in TDs whenever possible.</span>
4572+
<!--span class="rfc2119-assertion" id="arch-privacy-consideration-no-unness-info-td" -->
4573+
As a general matter of policy,
4574+
unnecessary information
4575+
should not be exposed in TDs whenever possible.<!-- </span> -->
45804576
For example, explicit type and instance identifying information in TDs should
45814577
only be included if it is needed by the use case.
45824578
Even if required by the use case,
@@ -4605,25 +4601,29 @@ <h2>Access to Personally Identifiable Information</h2>
46054601
<dt>Mitigation:</dt>
46064602
<dd>
46074603
<span class="rfc2119-assertion" id="arch-privacy-consideration-access-control-mandatory-person">
4608-
Things returning data or metadata (such as TDs) associated with a person MUST use some form of access control.</span>
4604+
Things returning data or metadata (such as TDs) associated with a person SHOULD use some form of access control.</span>
46094605
A special case of this is a <a>Thing Description Directory</a>,
46104606
as described in [[WOT-DISCOVERY]], which is a Thing that returns
46114607
Thing Descriptions as data. Such directory services are included
46124608
in the above statement and
4613-
required to use access control if the TDs describe Things associated with
4609+
should use access control if the TDs describe Things associated with
46144610
identifiable people. In the case of services
46154611
returning Thing Descriptions, the following also applies:
46164612
<span class="rfc2119-assertion" id="arch-privacy-consideration-id-access-control-mandatory-immutable">
4617-
Services returning Thing Descriptions with immutable IDs MUST use some form of access control.</span>
4613+
Services returning Thing Descriptions with immutable IDs SHOULD use some form of access control.</span>
46184614
Specifically, in both of these situations, the <code>nosec</code> security
4619-
scheme described in [[WOT-THING-DESCRIPTION]] cannot be used,
4615+
scheme described in [[WOT-THING-DESCRIPTION]] should not be used,
46204616
as it provides no access control.
46214617
Following the principle that Thing Descriptions describing
46224618
Things associated with specific persons should be treated as
46234619
PII, even if they do not explictly contain it, this implies
4624-
that directories providing such TDs cannot use <code>nosec</code>.
4625-
Again it should be noted that access controls are generally only
4626-
effective when secure transport is also available;
4620+
that directories providing such TDs should use access control.
4621+
Generally speaking,
4622+
the only exceptions should be cases where access is controlled
4623+
by another mechanism not described in the TD itself, such as a
4624+
segmented network.
4625+
Again it should also be noted that access controls are generally only
4626+
effective when secure transport is also used;
46274627
see <a href="#sec-security-consideration-secure-transport"></a>.
46284628
Use of access controls without secure transport, at best,
46294629
only discourages casual access by unauthorized parties.

0 commit comments

Comments
 (0)