Skip to content

Commit cce018d

Browse files
committed
reviewed with editor; updated prior to plan to go to CR
1 parent 82f82e1 commit cce018d

File tree

1 file changed

+40
-44
lines changed

1 file changed

+40
-44
lines changed

security-privacy-questionnaire.md

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -14,61 +14,60 @@ authenticate the user for fraud protection; SPC allows them to fulfill the
1414
requirement to validate the authentication while enabling the merchant to
1515
manage the user experience.
1616

17+
Thus, following a browser prompt and user consent, the information
18+
that is exposed to the Web site is the Web Authentication assertion
19+
that includes signed transaction data.
20+
1721
## 2. Do features in your specification expose the minimum amount of information necessary to enable their intended uses?
1822

1923
Yes.
2024

2125
## 3. How do the features in your specification deal with personal information, personally-identifiable information (PII), or information derived from them?
2226

23-
The features does not collect or expose any such information.
27+
Any information displayed through this feature is provided by the
28+
caller (e.g., the merchant). The Web Authentication credentialID in
29+
the assertion that is generated after a browser prompt and user
30+
consent is considered public information (not PII).
2431

2532
## 4. How does this specification deal with sensitive information?
2633

27-
The only sensitive information this feature handles relates to the (WebAuthn)
28-
credential ID of the created credential. This credential ID is saved in the
29-
user agent along side the Relying Party ID when the issuing bank creates an
30-
SPC-enabled `PublicKeyCredential`. Later, an origin that has access to this
31-
credential ID, presumably via a trusted server integration with the issuing
32-
bank, can provide it to the user agent via [Payment Request API] to exercise
33-
the corresponding `PublicKeyCredential`.
34+
Although the credentialID that results from Web Authentication is not considered
35+
PII, it may be considered sensitive. credentialIDs are provided as input
36+
to the API. The API reveals that the user has an associated authenticator only
37+
after a browser prompt and user consent.
3438

3539
## 5. Do the features in your specification introduce new state for an origin that persists across browsing sessions?
3640

37-
No.
41+
Secure Payment Confirmation relies on Web Authentication, which introduces state. Secure Payment Confirmation
42+
does not introduce additional state.
3843

39-
## 6. Do the features in your specification expose information about the underlying platform to origins?
44+
## 6. Do the features in your specification expose information about the underlying platform to origins?
4045

41-
No. As with WebAuthn we take care not to expose e.g. credential existence (or
42-
lack thereof) to any caller.
46+
Secure Payment Confirmation relies on Web Authentication, which
47+
exposes some underlying information. Secure Payment Confirmation,
48+
like Web Authentication, takes care not to expose e.g. credential
49+
existence (or lack thereof) to any caller.
4350

4451
## 7. Does this specification allow an origin to send data to the underlying platform?
4552

46-
(TO COMPLETE)
53+
Secure Payment Confirmation relies on Web Authentication, which supports interactions with the
54+
underlying platform (that is, authenticators). Secure Payment Confirmation sends transaction
55+
data to authenticators to be included in the resulting assertion using a standard Web
56+
Authentication mechanism (clientData).
4757

4858
## 8. Do features in this specification enable access to device sensors?
4959

50-
This feature allows an origin to access the user's authenticator to create or
51-
exercise a public key credential.
52-
53-
## 8. What data does this specification expose to an origin? Please also document what data is identical to data exposed by other features, in the same or different contexts.
54-
55-
This feature exposes the same data as [Web Authentication] with one exception:
56-
it allows any origin to exercise a credential via Payment Request API, provided
57-
that the user consents on a user agent's native UI that clearly indicates that
58-
the calling origin is requesting payment using a specific payment instrument.
59-
When the user consents and provides an authentication gesture, the calling
60-
origin gains access to a [PublicKeyCredential] that contains an
61-
[AuthenticatorAssertionResponse]. This data structure contains a credential ID,
62-
which is information the caller already has, and a crytographic signature, which
63-
is not useful unless the caller has access to the relevant public key.
60+
Secure Payment Confirmation relies on Web Authentication, which supports interactions with the
61+
underlying platform (that is, authenticators).
6462

6563
## 9. Do features in this specification enable new script execution/loading mechanisms?
6664

6765
No.
6866

6967
## 10. Do features in this specification allow an origin to access other devices?
7068

71-
No.
69+
Secure Payment Confirmation relies on Web Authentication; discussions about multidevice
70+
credentials in Web Authentication are ongoing.
7271

7372
## 11. Do features in this specification allow an origin some measure of control over a user agent’s native UI?
7473

@@ -86,45 +85,42 @@ when validating the assertion and reject the transaction.
8685

8786
## 12. What temporary identifiers do the features in this specification create or expose to the web?
8887

89-
This specification does not create any temporary identifier beyond what is
90-
created by [Web Authentication].
88+
None.
9189

9290
## 13. How does this specification distinguish between behavior in first-party and third-party contexts?
9391

9492
This feature mostly inherits the behavior from [Web Authentication], with the
9593
following exceptions:
9694

97-
- When a Relying Party is embedded in a cross-origin iframe that has [delegated
98-
permission], that Relying Party is able to register an SPC-enabled
99-
`PublicKeyCredential` for itself.
95+
- Web Authentication Level 2 does not allow credential creation in a cross-origin iframe; Secure Payment Confirmation does (with delegated permission and user activation). Discussions about whether Web Authentication Level 3 should allow credential creation in a cross-origin iframe are ongoing.
10096
- A SPC-enabled `PublicKeyCredential` can be exercised in any context where
10197
Payment Request API is allowed, i.e. a first-party secure context, or a
10298
third-party secure context with [delegated permission] from the top-level
103-
context.
99+
context and user activation.
104100

105101
[delegated permission]: https://w3c.github.io/payment-request/#permissions-policy
106102

107-
## 14. How do the features in this specification work in the context of a browser’s Private Browsing or Incognito mode?
103+
## 14. How do the features in this specification work in the context of a browser’s Private Browsing or Incognito mode?
108104

109-
This feature behaves identically regardless of Private Browsing or "incognito"
110-
mode. This is identical to [Web Authentication].
105+
Secure Payment Confirmation relies on [Web Authentication], which
106+
behaves identically regardless of Private Browsing or "incognito"
107+
mode.
111108

112109
## 15. Does this specification have both "Security Considerations" and "Privacy Considerations" sections?
113110

114111
Yes.
115112

116113
## 16. Do features in your specification enable origins to downgrade default security protections?
117114

118-
This feature downgrades the Relying Party restriction of [Web Authentication]
119-
when a credential is exercised inside a payment context. The original
120-
restriction was meant to prevent phishing. We believe this feature does not
121-
increase phishing risk because the user agent shows a native UI to clearly
122-
inform the user the parties involved in a payment transaction who are seeking to
123-
authenticate the user.
115+
Secure Payment Confirmation differs (currently) from Web Authentication in two ways related to default security protections:
116+
117+
* Web Authentication Level 2 does not allow credential creation in a cross-origin iframe; Secure Payment Confirmation does (with delegated permission and user activation).
118+
* Web Authentication Level 2 credentials may only be used at authentication time by the Relying Party that created them. If a Relying Party approves (at credential creation time), Secure Payment Confirmation allows other parties to use credentials, with an associated user agent prompt and user consent.
124119

125120
## 17. How does your feature handle non-"fully active" documents?
126121

127-
(TO COMPLETE)
122+
Secure Payment Confirmation inherits behavior from Payment Request API related
123+
to non-"fully active" documents (see sections on show(), retry(), and complete()).
128124

129125
## 18. What should this questionnaire have asked?
130126

0 commit comments

Comments
 (0)