Commit f8a52df9 authored by Adam Langley's avatar Adam Langley Committed by Commit Bot

webauthn: caBLEv2 registrations don't convey attestation.

BUG=1002262

Change-Id: Ief209ab2904ade456afa3dcdfd11d001aeb8330e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2538158
Commit-Queue: Adam Langley <agl@chromium.org>
Reviewed-by: default avatarMartin Kreichgauer <martinkr@google.com>
Cr-Commit-Position: refs/heads/master@{#828371}
parent cfd4edea
...@@ -1386,13 +1386,18 @@ void AuthenticatorCommon::OnRegisterResponse( ...@@ -1386,13 +1386,18 @@ void AuthenticatorCommon::OnRegisterResponse(
DCHECK(response_data.has_value()); DCHECK(response_data.has_value());
DCHECK(authenticator); DCHECK(authenticator);
auto transport_used = authenticator->AuthenticatorTransport(); const base::Optional<device::FidoTransportProtocol> transport_used =
authenticator->AuthenticatorTransport();
bool is_transport_used_internal = false;
bool is_transport_used_cable = false;
if (transport_used) { if (transport_used) {
request_delegate_->UpdateLastTransportUsed(*transport_used); request_delegate_->UpdateLastTransportUsed(*transport_used);
is_transport_used_internal =
(*transport_used == device::FidoTransportProtocol::kInternal);
is_transport_used_cable =
(*transport_used ==
device::FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy);
} }
bool is_transport_used_internal =
transport_used &&
*transport_used == device::FidoTransportProtocol::kInternal;
const auto attestation = const auto attestation =
ctap_make_credential_request_->attestation_preference; ctap_make_credential_request_->attestation_preference;
...@@ -1432,6 +1437,11 @@ void AuthenticatorCommon::OnRegisterResponse( ...@@ -1432,6 +1437,11 @@ void AuthenticatorCommon::OnRegisterResponse(
// not approved by the authenticator, then any attestation is stripped. // not approved by the authenticator, then any attestation is stripped.
attestation_erasure = attestation_erasure =
AttestationErasureOption::kEraseAttestationAndAaguid; AttestationErasureOption::kEraseAttestationAndAaguid;
} else if (is_transport_used_cable) {
// Attestation is not returned when caBLEv2 is used, but the AAGUID is
// maintained.
attestation_erasure =
AttestationErasureOption::kEraseAttestationButIncludeAaguid;
} else if (attestation != } else if (attestation !=
device::AttestationConveyancePreference::kNone) { device::AttestationConveyancePreference::kNone) {
UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult", UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment