blob: 383e929d86e6b979fa9471d0a0b00d2ce4eec4df [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Security Events used for recording security related events.
// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.
syntax = "proto2";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
package sync_pb;
// User reused their GAIA password on another website.
message GaiaPasswordReuse {
// Logged when we detect a password re-use event on a non-GAIA site.
// If the user hasn’t enabled SafeBrowsing, this will be the last event.
message PasswordReuseDetected {
message SafeBrowsingStatus {
// Is SafeBrowsing enabled?
optional bool enabled = 1;
// If SafeBrowsing is enabled, is the user opted-in to extended
// reporting or Scout?
enum ReportingPopulation {
REPORTING_POPULATION_UNSPECIFIED = 0;
NONE = 1;
EXTENDED_REPORTING = 2;
SCOUT = 3;
}
optional ReportingPopulation safe_browsing_reporting_population = 2;
}
optional SafeBrowsingStatus status = 1;
}
optional PasswordReuseDetected reuse_detected = 1;
message PasswordReuseLookup {
enum LookupResult {
UNSPECIFIED = 0;
// URL did match the password reuse whitelist.
// No further action required related to this re-use event.
WHITELIST_HIT = 1;
// The URL exists in the client’s cache.
// No further action required related to this re-use event.
// This event also logs the ReputationVerdict.
CACHE_HIT = 2;
// A valid response received from the SafeBrowsing service.
// This event also logs the ReputationVerdict.
REQUEST_SUCCESS = 3;
// Unable to get a valid response from the SafeBrowsing service.
REQUEST_FAILURE = 4;
// We won't be able to compute reputation for the URL e.g. local IP
// address, localhost, not-yet-assigned by ICANN gTLD, etc.
URL_UNSUPPORTED = 5;
// URL did match enterprise whitelist.
// No further action required related to this re-use event.
ENTERPRISE_WHITELIST_HIT = 6;
// Password reuse lookup is turned off by enterprise policy.
// No further action required related to this re-use event.
TURNED_OFF_BY_POLICY = 7;
}
optional LookupResult lookup_result = 1;
// The following two are only present for CACHE_HIT and REQUEST_SUCCESS.
// The verdict received from the Reputation service. This is set only
// if the user has SafeBrowsing enabled and we fetch the verdict from the
// cache or by sending a verdict request.
enum ReputationVerdict {
VERDICT_UNSPECIFIED = 0;
SAFE = 1;
LOW_REPUTATION = 2;
PHISHING = 3;
}
optional ReputationVerdict verdict = 2;
// PhishGuard token that identifies the verdict on the server.
optional bytes verdict_token = 3;
}
// Logged when we try to detect whether the password was reused on a
// Phishing or a Low-reputation site.
optional PasswordReuseLookup reuse_lookup = 2;
// Logged when the user interacts with the warning UI shown to encourage
// password change if the site is Phishing or Low-reputation.
message PasswordReuseDialogInteraction {
enum InteractionResult {
UNSPECIFIED = 0;
// The user took the action suggested by the warning prompt.
WARNING_ACTION_TAKEN = 1;
// The user clicked ignore in the warning prompt.
WARNING_ACTION_IGNORED = 2;
// The warning UI was ignored, i.e. not interacted with by the user.
// This could happen if the user navigates away from the page.
WARNING_UI_IGNORED = 3;
// The user clicked "Change Password" on chrome://settings page.
WARNING_ACTION_TAKEN_ON_SETTINGS = 4;
}
optional InteractionResult interaction_result = 1;
}
optional PasswordReuseDialogInteraction dialog_interaction = 3;
// TODO(markusheintz): Remove
// DEPRECATED: DO NOT USE!
// Logged when the user logs into Google, and at least once per 28d.
message PasswordCaptured {
enum EventTrigger {
UNSPECIFIED = 0;
// Event added because user logged in.
USER_LOGGED_IN = 1;
// Event added because 28d timer fired.
EXPIRED_28D_TIMER = 2;
}
optional EventTrigger event_trigger = 1;
}
optional PasswordCaptured password_captured = 4;
}