**ETSI EN 304-617 V0.0.6 (2025-11)**
![~~CAPTION~~](media/etsi-coverpage-logo.png) HARMONISED EUROPEAN STANDARD CYBER; CRA;
Essential cybersecurity requirements for Browsers
Reference
<Workitem>
Keywords
<keywords>
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE
Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
Siret N° 348 623 562 00017 - APE 7112B
Association à but non lucratif enregistrée à la
Sous-préfecture de Grasse (06) N° w061004871
**_Important notice_** The present document may be made available in electronic versions and/or in print. The content of any electronic and/or print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI deliverable is the one made publicly available in PDF format on [ETSI deliver](ETSI deliver) repository. Users should be aware that the present document may be revised or have its status changed, this information is available in the [Milestones listing](Milestones listing). If you find errors in the present document, please send your comments to the relevant service listed under [Committee Support Staff](Committee Support Staff). If you find a security vulnerability in the present document, please report it through our [Coordinated Vulnerability Disclosure (CVD)](Coordinated Vulnerability Disclosure (CVD)) program. **_Notice of disclaimer & limitation of liability_** The information provided in the present deliverable is directed solely to professionals who have the appropriate degree of experience to understand and interpret its content in accordance with generally accepted engineering or other professional standard and applicable regulations. No recommendation as to products and services or vendors is made or should be implied. No representation or warranty is made that this deliverable is technically accurate or sufficient or conforms to any law and/or governmental rule and/or regulation and further, no representation or warranty is made of merchantability or fitness for any particular purpose or against infringement of intellectual property rights. In no event shall ETSI be held liable for loss of profits or any other incidental or consequential damages. Any software contained in this deliverable is provided "AS IS" with no warranties, express or implied, including but not limited to, the warranties of merchantability, fitness for a particular purpose and non-infringement of intellectual property rights and ETSI shall not be held liable in any event for any damages whatsoever (including, without limitation, damages for loss of profits, business interruption, loss of information, or any other pecuniary loss) arising out of or related to the use of or inability to use the software.
**_Copyright Notification_** No part may be reproduced or utilised in any form or by any means, electronic or mechanical, including photocopying and microfilm except as authorised by written permission of ETSI. The content of the PDF version shall not be modified without the written authorization of ETSI. The copyright and the foregoing restriction extend to reproduction in all media. © ETSI 2025. All rights reserved.
# Contents ## Table of Contents - [Intellectual Property Rights](#intellectual-property-rights) - [Foreword](#foreword) - [Modal verbs terminology](#modal-verbs-terminology) - [Executive summary](#executive-summary) - [Introduction](#introduction) - [1 Scope](#1-scope) - [1.1 Browser ](#11browser-) - [1.1.1 Standalone](#111standalone) - [1.1.2 Embedded](#112-embedded) - [1.1.3 Progressive Web Apps (PWA)](#113-progressive-web-apps-pwa) - [1.1.4 Browser Extensions](#114-browser-extensions) - [1.2 Derivative Browsers and Manufacturer Obligations](#12-derivative-browsers-and-manufacturer-obligations) - [1.2.1 Open Source Browser Engines and Derivative Products](#121-open-source-browser-engines-and-derivative-products) - [1.2.2 Spectrum of Derivative Modifications](#122-spectrum-of-derivative-modifications) - [1.2.3 Manufacturer Responsibilities for Derivative Products](#123-manufacturer-responsibilities-for-derivative-products) - [1.2.4 Trust in Upstream Security Implementations](#124-trust-in-upstream-security-implementations) - [1.2.5 Application of This Standard to Derivative Browsers](#125-application-of-this-standard-to-derivative-browsers) - [1.2.6 State of the Art: Industry Testing and Security Practices](#126-state-of-the-art-industry-testing-and-security-practices) - [2 References](#2-references) - [2.1 Normative references](#21-normative-references) - [2.2 Informative references](#22-informative-references) - [3 Definition of terms, symbols and abbreviations](#3-definition-of-terms-symbols-and-abbreviations) - [3.1 Terms](#31-terms) - [3.2 Symbols](#32-symbols) - [4 Product Context](#4-product-context) - [4.1 General](#41-general) - [4.2 Out of scope use/environments](#42-out-of-scope-useenvironments) - [4.3 In-Scope Components](#43-in-scope-components) - [4.3.1 In-Scope components standalone browser](#431-in-scope-components-standalone-browser) - [4.3.2 In-Scope components embedded browser](#432-in-scope-components-embedded-browser) - [4.4 Use Cases](#44-use-cases) - [4.4.1 Application to Conformity Assessment](#441-application-to-conformity-assessment) - [4.4.2 Use Cases for Browsers](#442-use-cases-for-browsers) - [4.5 Product overview and architecture](#45-product-overview-and-architecture) - [4.5.1 Product Definition](#451-product-definition) - [4.5.2 Architectural Overview](#452-architectural-overview) - [4.5.2.1 Core Architecture Components](#4521-core-architecture-components) - [4.5.2.2 Security Architecture](#4522-security-architecture) - [4.5.2.3 Extension Architecture](#4523-extension-architecture) - [4.5.3 Trust Boundaries and Threat Model](#453-trust-boundaries-and-threat-model) - [4.5.3.1 Trust Zones](#4531-trust-zones) - [4.5.3.2 Attack Surface](#4532-attack-surface) - [4.5.4 Deployment Contexts](#454-deployment-contexts) - [4.5.4.1 Consumer Environment](#4541-consumer-environment) - [4.5.4.2 Enterprise Environment](#4542-enterprise-environment) - [4.5.4.3 Specialized Environments](#4543-specialized-environments) - [4.5.5 Security-Relevant Characteristics](#455-security-relevant-characteristics) - [4.5.5.1 Dynamic Threat Landscape](#4551-dynamic-threat-landscape) - [4.5.5.2 Compatibility Requirements](#4552-compatibility-requirements) - [4.5.5.3 Performance Constraints](#4553-performance-constraints) - [4.5.5.4 User Agency and Autonomy](#4554-user-agency-and-autonomy) - [4.6 Essential functions](#46-essential-functions) - [4.6.1 Core Essential Functions](#461-core-essential-functions) - [4.6.2 Security-Related Essential Functions](#462-security-related-essential-functions) - [4.6.3 Embedded Browser-Specific Security Functions](#463-embedded-browser-specific-security-functions) - [4.6.4 Functions NOT Considered Essential](#464-functions-not-considered-essential) - [4.7 Operational Environment](#47-operational-environment) - [4.7.1 Technical Environment](#471-technical-environment) - [4.7.2 Physical Environment](#472-physical-environment) - [4.7.3 Organizational Environment](#473-organizational-environment) - [4.7.4 Threat Environment](#474-threat-environment) - [4.7.5 Lifecycle Environment](#475-lifecycle-environment) - [4.8 Users](#48-users) - [4.8.1 User Categories](#481-user-categories) - [4.8.2 User Behavior Patterns](#482-user-behavior-patterns) - [4.8.3 User Needs and Expectations](#483-user-needs-and-expectations) - [4.8.4 User Assistance and Responsibilities](#484-user-assistance-and-responsibilities) - [4.8.5 Accessibility Considerations](#485-accessibility-considerations) - [5 Browser-Specific Risk Factors](#5-browser-specific-risk-factors) - [5.1 Isolation Mechanisms](#51-isolation-mechanisms) - [5.2 Extension System Security](#52-extension-system-security) - [5.3 Encryption Implementation](#53-encryption-implementation) - [5.4 Diagnostic and Monitoring Systems](#54-diagnostic-and-monitoring-systems) - [5.5 Update Delivery Mechanisms](#55-update-delivery-mechanisms) - [5.6 Protocol Handler Security](#56-protocol-handler-security) - [5.7 Core Component Security](#57-core-component-security) - [5.8 Embedded Browser Security](#58-embedded-browser-security) - [5.8.1 Overview](#581-overview) - [5.8.2 Host Application Boundary Security](#582-host-application-boundary-security) - [5.8.3 Content Source Trust Management](#583-content-source-trust-management) - [5.9 Remote Data Processing Systems](#59-remote-data-processing-systems) - [6 Technical Security Assessments](#6-technical-security-assessments) - [6.1 Domain and Origin Isolation Assessments](#61-domain-and-origin-isolation-assessments) - [Assessment: DOM-REQ-1 (Process-per-site isolation)](#assessment-dom-req-1-process-per-site-isolation) - [Assessment: DOM-REQ-2 (Cross-origin read blocking)](#assessment-dom-req-2-cross-origin-read-blocking) - [Assessment: DOM-REQ-3 (Strict origin policy enforcement)](#assessment-dom-req-3-strict-origin-policy-enforcement) - [Assessment: DOM-REQ-4 (CORS preflight enforcement)](#assessment-dom-req-4-cors-preflight-enforcement) - [Assessment: DOM-REQ-5 (Cookie SameSite attribute enforcement)](#assessment-dom-req-5-cookie-samesite-attribute-enforcement) - [Assessment: DOM-REQ-6 (Origin-bound storage isolation)](#assessment-dom-req-6-origin-bound-storage-isolation) - [Assessment: DOM-REQ-7 (Frame sandboxing support)](#assessment-dom-req-7-frame-sandboxing-support) - [Assessment: DOM-REQ-8 (Opaque origin handling)](#assessment-dom-req-8-opaque-origin-handling) - [Assessment: DOM-REQ-9 (CORP for cross-origin isolation)](#assessment-dom-req-9-corp-for-cross-origin-isolation) - [Assessment: DOM-REQ-10 (COOP enforcement)](#assessment-dom-req-10-coop-enforcement) - [Assessment: DOM-REQ-11 (COEP enforcement)](#assessment-dom-req-11-coep-enforcement) - [Assessment: DOM-REQ-12 (Document.domain deprecation)](#assessment-dom-req-12-documentdomain-deprecation) - [Assessment: DOM-REQ-13 (Enterprise origin isolation policy configuration)](#assessment-dom-req-13-enterprise-origin-isolation-policy-configuration) - [Assessment: DOM-REQ-14 (Logging of policy-based isolation exceptions)](#assessment-dom-req-14-logging-of-policy-based-isolation-exceptions) - [Assessment: DOM-REQ-15 (Compatibility mode isolation integrity)](#assessment-dom-req-15-compatibility-mode-isolation-integrity) - [Assessment: DOM-REQ-16 (Third-party integration isolation)](#assessment-dom-req-16-third-party-integration-isolation) - [Assessment: DOM-REQ-17 (Documentation and logging of compatibility exceptions)](#assessment-dom-req-17-documentation-and-logging-of-compatibility-exceptions) - [Assessment: DOM-REQ-18 (Embedded component storage isolation)](#assessment-dom-req-18-embedded-component-storage-isolation) - [6.2 Extension System Security Assessments](#62-extension-system-security-assessments) - [Assessment: EXT-REQ-1 (Permission model for extensions)](#assessment-ext-req-1-permission-model-for-extensions) - [Assessment: EXT-REQ-2 (Content script isolation)](#assessment-ext-req-2-content-script-isolation) - [Assessment: EXT-REQ-3 (Extension API access control)](#assessment-ext-req-3-extension-api-access-control) - [Assessment: EXT-REQ-4 (Manifest validation)](#assessment-ext-req-4-manifest-validation) - [Assessment: EXT-REQ-5 (Extension sandboxing)](#assessment-ext-req-5-extension-sandboxing) - [Assessment: EXT-REQ-6 (Cross-extension isolation)](#assessment-ext-req-6-cross-extension-isolation) - [Assessment: EXT-REQ-7 (Host permissions validation)](#assessment-ext-req-7-host-permissions-validation) - [Assessment: EXT-REQ-8 (CSP for extensions)](#assessment-ext-req-8-csp-for-extensions) - [Assessment: EXT-REQ-9 (WebRequest API security)](#assessment-ext-req-9-webrequest-api-security) - [Assessment: EXT-REQ-10 (Extension update verification)](#assessment-ext-req-10-extension-update-verification) - [Assessment: EXT-REQ-11 (Extension storage isolation)](#assessment-ext-req-11-extension-storage-isolation) - [Assessment: EXT-REQ-12 (Background script restrictions)](#assessment-ext-req-12-background-script-restrictions) - [Assessment: EXT-REQ-13 (Manifest V3 compliance)](#assessment-ext-req-13-manifest-v3-compliance) - [Assessment: EXT-REQ-14 (Native messaging security)](#assessment-ext-req-14-native-messaging-security) - [Assessment: EXT-REQ-15 (Extension-controlled web content)](#assessment-ext-req-15-extension-controlled-web-content) - [Assessment: EXT-REQ-16 (Extension telemetry privacy)](#assessment-ext-req-16-extension-telemetry-privacy) - [Assessment: EXT-REQ-17 (Extension signature validation)](#assessment-ext-req-17-extension-signature-validation) - [Assessment: EXT-REQ-18 (Extension permissions UI transparency)](#assessment-ext-req-18-extension-permissions-ui-transparency) - [Assessment: EXT-REQ-19 (No extension support enforcement)](#assessment-ext-req-19-no-extension-support-enforcement) - [Assessment: EXT-REQ-20 (Extension code loading prevention)](#assessment-ext-req-20-extension-code-loading-prevention) - [Assessment: EXT-REQ-21 (Extension subsystem removal)](#assessment-ext-req-21-extension-subsystem-removal) - [Assessment: EXT-REQ-22 (Official extension store restriction)](#assessment-ext-req-22-official-extension-store-restriction) - [Assessment: EXT-REQ-23 (Extension security review requirement)](#assessment-ext-req-23-extension-security-review-requirement) - [Assessment: EXT-REQ-24 (Developer mode activation security)](#assessment-ext-req-24-developer-mode-activation-security) - [Assessment: EXT-REQ-25 (Developer mode visual indicators)](#assessment-ext-req-25-developer-mode-visual-indicators) - [Assessment: EXT-REQ-26 (Developer mode update disablement)](#assessment-ext-req-26-developer-mode-update-disablement) - [Assessment: EXT-REQ-27 (Developer mode activity logging)](#assessment-ext-req-27-developer-mode-activity-logging) - [Assessment: EXT-REQ-28 (Enterprise developer mode control)](#assessment-ext-req-28-enterprise-developer-mode-control) - [Assessment: EXT-REQ-29 (Sideloaded extension warnings)](#assessment-ext-req-29-sideloaded-extension-warnings) - [Assessment: EXT-REQ-30 (User extension permission controls)](#assessment-ext-req-30-user-extension-permission-controls) - [Assessment: EXT-REQ-31 (Sideloaded extension malware scanning)](#assessment-ext-req-31-sideloaded-extension-malware-scanning) - [Assessment: EXT-REQ-32 (Extension security event logging)](#assessment-ext-req-32-extension-security-event-logging) - [6.3 Cryptographic Security Assessments](#63-cryptographic-security-assessments) - [Assessment: ENC-REQ-1 (TLS 1.3+ support)](#assessment-enc-req-1-tls-13-support) - [Assessment: ENC-REQ-2 (Certificate validation)](#assessment-enc-req-2-certificate-validation) - [Assessment: ENC-REQ-3 (Certificate pinning support)](#assessment-enc-req-3-certificate-pinning-support) - [Assessment: ENC-REQ-4 (HSTS enforcement)](#assessment-enc-req-4-hsts-enforcement) - [Assessment: ENC-REQ-5 (Mixed content blocking)](#assessment-enc-req-5-mixed-content-blocking) - [Assessment: ENC-REQ-6 (Certificate Transparency)](#assessment-enc-req-6-certificate-transparency) - [Assessment: ENC-REQ-7 (OCSP stapling)](#assessment-enc-req-7-ocsp-stapling) - [Assessment: ENC-REQ-8 (Cipher suite restrictions)](#assessment-enc-req-8-cipher-suite-restrictions) - [Assessment: ENC-REQ-9 (Perfect forward secrecy)](#assessment-enc-req-9-perfect-forward-secrecy) - [Assessment: ENC-REQ-10 (Revocation checking)](#assessment-enc-req-10-revocation-checking) - [Assessment: ENC-REQ-11 (Web Crypto API compliance)](#assessment-enc-req-11-web-crypto-api-compliance) - [Assessment: ENC-REQ-12 (Secure random number generation)](#assessment-enc-req-12-secure-random-number-generation) - [Assessment: ENC-REQ-13 (SubResource Integrity)](#assessment-enc-req-13-subresource-integrity) - [Assessment: ENC-REQ-14 (Encrypted SNI)](#assessment-enc-req-14-encrypted-sni) - [Assessment: ENC-REQ-15 (Certificate error UI)](#assessment-enc-req-15-certificate-error-ui) - [Assessment: ENC-REQ-16 (HTTPS-first mode)](#assessment-enc-req-16-https-first-mode) - [Assessment: ENC-REQ-17 (Certificate pinning bypass detection)](#assessment-enc-req-17-certificate-pinning-bypass-detection) - [Assessment: ENC-REQ-18 (TLS downgrade protection)](#assessment-enc-req-18-tls-downgrade-protection) - [Assessment: ENC-REQ-19 (Legacy crypto deprecation)](#assessment-enc-req-19-legacy-crypto-deprecation) - [Assessment: ENC-REQ-20 (Cryptographic key isolation)](#assessment-enc-req-20-cryptographic-key-isolation) - [Assessment: ENC-REQ-21 (Certificate store security)](#assessment-enc-req-21-certificate-store-security) - [Assessment: ENC-REQ-22 (Certificate pinning override prohibition)](#assessment-enc-req-22-certificate-pinning-override-prohibition) - [Assessment: ENC-REQ-23 (Hardware-backed cryptographic operations)](#assessment-enc-req-23-hardware-backed-cryptographic-operations) - [Assessment: ENC-REQ-24 (Encryption strictness configuration)](#assessment-enc-req-24-encryption-strictness-configuration) - [Assessment: ENC-REQ-25 (Connection security visual indicators)](#assessment-enc-req-25-connection-security-visual-indicators) - [Assessment: ENC-REQ-26 (User encryption settings control)](#assessment-enc-req-26-user-encryption-settings-control) - [Assessment: ENC-REQ-27 (Encryption status UI indicators)](#assessment-enc-req-27-encryption-status-ui-indicators) - [Assessment: ENC-REQ-28 (Legacy protocol compatibility mode)](#assessment-enc-req-28-legacy-protocol-compatibility-mode) - [Assessment: ENC-REQ-29 (Complete encryption policy control)](#assessment-enc-req-29-complete-encryption-policy-control) - [Assessment: ENC-REQ-30 (User-enabled legacy protocol support)](#assessment-enc-req-30-user-enabled-legacy-protocol-support) - [6.4 Security Event Logging Assessments](#64-security-event-logging-assessments) - [Assessment: LOG-REQ-1 (Security event logging)](#assessment-log-req-1-security-event-logging) - [Assessment: LOG-REQ-2 (Certificate error logging)](#assessment-log-req-2-certificate-error-logging) - [Assessment: LOG-REQ-3 (Extension security events)](#assessment-log-req-3-extension-security-events) - [Assessment: LOG-REQ-4 (CSP violation reporting)](#assessment-log-req-4-csp-violation-reporting) - [Assessment: LOG-REQ-5 (Network Error Logging - NEL)](#assessment-log-req-5-network-error-logging---nel) - [Assessment: LOG-REQ-6 (Crash reporting)](#assessment-log-req-6-crash-reporting) - [Assessment: LOG-REQ-7 (Log data minimization)](#assessment-log-req-7-log-data-minimization) - [Assessment: LOG-REQ-8 (Log anonymization)](#assessment-log-req-8-log-anonymization) - [Assessment: LOG-REQ-9 (User consent for telemetry)](#assessment-log-req-9-user-consent-for-telemetry) - [Assessment: LOG-REQ-10 (Secure log transmission)](#assessment-log-req-10-secure-log-transmission) - [Assessment: LOG-REQ-11 (Log integrity protection)](#assessment-log-req-11-log-integrity-protection) - [Assessment: LOG-REQ-12 (Log retention policies)](#assessment-log-req-12-log-retention-policies) - [Assessment: LOG-REQ-13 (Security dashboard)](#assessment-log-req-13-security-dashboard) - [Assessment: LOG-REQ-14 (Incident detection)](#assessment-log-req-14-incident-detection) - [Assessment: LOG-REQ-15 (Audit trail completeness)](#assessment-log-req-15-audit-trail-completeness) - [Assessment: LOG-REQ-16 (Real-time security alerts)](#assessment-log-req-16-real-time-security-alerts) - [Assessment: LOG-REQ-17 (Forensic log export)](#assessment-log-req-17-forensic-log-export) - [Assessment: LOG-REQ-18 (Privacy-preserving analytics)](#assessment-log-req-18-privacy-preserving-analytics) - [Assessment: LOG-REQ-19 (Compliance logging)](#assessment-log-req-19-compliance-logging) - [Assessment: LOG-REQ-20 (Log access controls)](#assessment-log-req-20-log-access-controls) - [Assessment: LOG-REQ-21 (No remote telemetry transmission)](#assessment-log-req-21-no-remote-telemetry-transmission) - [Assessment: LOG-REQ-22 (Opt-in local logging)](#assessment-log-req-22-opt-in-local-logging) - [Assessment: LOG-REQ-23 (User log management)](#assessment-log-req-23-user-log-management) - [Assessment: LOG-REQ-24 (Telemetry opt-in requirement)](#assessment-log-req-24-telemetry-opt-in-requirement) - [Assessment: LOG-REQ-25 (Granular telemetry control)](#assessment-log-req-25-granular-telemetry-control) - [Assessment: LOG-REQ-26 (Telemetry data documentation)](#assessment-log-req-26-telemetry-data-documentation) - [Assessment: LOG-REQ-27 (Telemetry disable capability)](#assessment-log-req-27-telemetry-disable-capability) - [Assessment: LOG-REQ-28 (Telemetry status display)](#assessment-log-req-28-telemetry-status-display) - [Assessment: LOG-REQ-29 (Enterprise logging enforcement)](#assessment-log-req-29-enterprise-logging-enforcement) - [Assessment: LOG-REQ-30 (Enterprise monitoring integration)](#assessment-log-req-30-enterprise-monitoring-integration) - [Assessment: LOG-REQ-31 (Tamper-evident logging)](#assessment-log-req-31-tamper-evident-logging) - [6.5 Update Mechanism Security Assessments](#65-update-mechanism-security-assessments) - [Assessment: UPD-REQ-1 (Automatic update mechanism)](#assessment-upd-req-1-automatic-update-mechanism) - [Assessment: UPD-REQ-2 (Update signature verification)](#assessment-upd-req-2-update-signature-verification) - [Assessment: UPD-REQ-3 (HTTPS-only update delivery)](#assessment-upd-req-3-https-only-update-delivery) - [Assessment: UPD-REQ-4 (Update manifest integrity)](#assessment-upd-req-4-update-manifest-integrity) - [Assessment: UPD-REQ-5 (Rollback protection)](#assessment-upd-req-5-rollback-protection) - [Assessment: UPD-REQ-6 (Update channel isolation)](#assessment-upd-req-6-update-channel-isolation) - [Assessment: UPD-REQ-7 (Component update support)](#assessment-upd-req-7-component-update-support) - [Assessment: UPD-REQ-8 (Emergency update capability)](#assessment-upd-req-8-emergency-update-capability) - [Assessment: UPD-REQ-9 (Update verification before installation)](#assessment-upd-req-9-update-verification-before-installation) - [Assessment: UPD-REQ-10 (Update failure recovery)](#assessment-upd-req-10-update-failure-recovery) - [Assessment: UPD-REQ-11 (Update transparency logging)](#assessment-upd-req-11-update-transparency-logging) - [Assessment: UPD-REQ-12 (Delta update security)](#assessment-upd-req-12-delta-update-security) - [Assessment: UPD-REQ-13 (Update server authentication)](#assessment-upd-req-13-update-server-authentication) - [Assessment: UPD-REQ-14 (Update timing jitter)](#assessment-upd-req-14-update-timing-jitter) - [Assessment: UPD-REQ-15 (Background update enforcement)](#assessment-upd-req-15-background-update-enforcement) - [Assessment: UPD-REQ-16 (Update notification UI)](#assessment-upd-req-16-update-notification-ui) - [Assessment: UPD-REQ-17 (Forced update for critical vulnerabilities)](#assessment-upd-req-17-forced-update-for-critical-vulnerabilities) - [Assessment: UPD-REQ-18 (Update verification chain)](#assessment-upd-req-18-update-verification-chain) - [Assessment: UPD-REQ-19 (Update source pinning)](#assessment-upd-req-19-update-source-pinning) - [Assessment: UPD-REQ-20 (Update integrity verification)](#assessment-upd-req-20-update-integrity-verification) - [Assessment: UPD-REQ-21 (Staged rollout support)](#assessment-upd-req-21-staged-rollout-support) - [Assessment: UPD-REQ-22 (Update domain validation)](#assessment-upd-req-22-update-domain-validation) - [Assessment: UPD-REQ-23 (Update binary reproducibility)](#assessment-upd-req-23-update-binary-reproducibility) - [Assessment: UPD-REQ-24 (Automatic update application without user intervention)](#assessment-upd-req-24-automatic-update-application-without-user-intervention) - [Assessment: UPD-REQ-25 (Automatic browser restart after critical updates)](#assessment-upd-req-25-automatic-browser-restart-after-critical-updates) - [Assessment: UPD-REQ-26 (Update postponement with time limits)](#assessment-upd-req-26-update-postponement-with-time-limits) - [Assessment: UPD-REQ-27 (Critical update postponement restrictions)](#assessment-upd-req-27-critical-update-postponement-restrictions) - [Assessment: UPD-REQ-28 (Update severity indication)](#assessment-upd-req-28-update-severity-indication) - [Assessment: UPD-REQ-29 (Automatic updates disabled by default)](#assessment-upd-req-29-automatic-updates-disabled-by-default) - [Assessment: UPD-REQ-30 (Automatic update recommendations)](#assessment-upd-req-30-automatic-update-recommendations) - [Assessment: UPD-REQ-31 (Security warnings for available updates)](#assessment-upd-req-31-security-warnings-for-available-updates) - [Assessment: UPD-REQ-32 (Easy update check and install mechanism)](#assessment-upd-req-32-easy-update-check-and-install-mechanism) - [Assessment: UPD-REQ-33 (Full user control over update timing)](#assessment-upd-req-33-full-user-control-over-update-timing) - [Assessment: UPD-REQ-34 (Manual update check mechanism)](#assessment-upd-req-34-manual-update-check-mechanism) - [Assessment: UPD-REQ-35 (Outdated version security warnings)](#assessment-upd-req-35-outdated-version-security-warnings) - [Assessment: UPD-REQ-36 (Clear indication of available security updates)](#assessment-upd-req-36-clear-indication-of-available-security-updates) - [Assessment: UPD-REQ-37 (Explicit user initiation for all updates)](#assessment-upd-req-37-explicit-user-initiation-for-all-updates) - [Assessment: UPD-REQ-38 (Update changelog and security impact display)](#assessment-upd-req-38-update-changelog-and-security-impact-display) - [6.6 Protocol Handler Security Assessments](#66-protocol-handler-security-assessments) - [Assessment: PRO-REQ-1 (Protocol handler registration validation)](#assessment-pro-req-1-protocol-handler-registration-validation) - [Assessment: PRO-REQ-2 (User consent for custom protocols)](#assessment-pro-req-2-user-consent-for-custom-protocols) - [Assessment: PRO-REQ-3 (Protocol allowlist enforcement)](#assessment-pro-req-3-protocol-allowlist-enforcement) - [Assessment: PRO-REQ-4 (Scheme hijacking prevention)](#assessment-pro-req-4-scheme-hijacking-prevention) - [Assessment: PRO-REQ-5 (Protocol parameter sanitization)](#assessment-pro-req-5-protocol-parameter-sanitization) - [Assessment: PRO-REQ-6 (External protocol handler security)](#assessment-pro-req-6-external-protocol-handler-security) - [Assessment: PRO-REQ-7 (Protocol handler UI transparency)](#assessment-pro-req-7-protocol-handler-ui-transparency) - [Assessment: PRO-REQ-8 (Protocol downgrade protection)](#assessment-pro-req-8-protocol-downgrade-protection) - [Assessment: PRO-REQ-9 (Protocol handler logging)](#assessment-pro-req-9-protocol-handler-logging) - [Assessment: PRO-REQ-10 (Web+custom scheme support)](#assessment-pro-req-10-webcustom-scheme-support) - [Assessment: PRO-REQ-11 (Protocol handler persistence)](#assessment-pro-req-11-protocol-handler-persistence) - [Assessment: PRO-REQ-12 (Protocol confusion mitigation)](#assessment-pro-req-12-protocol-confusion-mitigation) - [Assessment: PRO-REQ-13 (Handler capability restrictions)](#assessment-pro-req-13-handler-capability-restrictions) - [Assessment: PRO-REQ-14 (Protocol handler revocation)](#assessment-pro-req-14-protocol-handler-revocation) - [Assessment: PRO-REQ-15 (Cross-origin protocol restrictions)](#assessment-pro-req-15-cross-origin-protocol-restrictions) - [Assessment: PRO-REQ-16 (Protocol handler manifest validation)](#assessment-pro-req-16-protocol-handler-manifest-validation) - [Assessment: PRO-REQ-17 (Intent URL security - mobile)](#assessment-pro-req-17-intent-url-security---mobile) - [Assessment: PRO-REQ-18 (Universal Links security - iOS)](#assessment-pro-req-18-universal-links-security---ios) - [Assessment: PRO-REQ-19 (Deep linking validation)](#assessment-pro-req-19-deep-linking-validation) - [Assessment: PRO-REQ-20 (Protocol handler CSP integration)](#assessment-pro-req-20-protocol-handler-csp-integration) - [Assessment: PRO-REQ-21 (Handler registration audit trail)](#assessment-pro-req-21-handler-registration-audit-trail) - [Assessment: PRO-REQ-22 (Protocol handler update security)](#assessment-pro-req-22-protocol-handler-update-security) - [Assessment: PRO-REQ-23 (Handler isolation enforcement)](#assessment-pro-req-23-handler-isolation-enforcement) - [Assessment: PRO-REQ-24 (HTTP/HTTPS-only protocol restriction)](#assessment-pro-req-24-httphttps-only-protocol-restriction) - [Assessment: PRO-REQ-25 (Custom protocol handler registration rejection)](#assessment-pro-req-25-custom-protocol-handler-registration-rejection) - [Assessment: PRO-REQ-26 (Non-standard URL scheme blocking)](#assessment-pro-req-26-non-standard-url-scheme-blocking) - [Assessment: PRO-REQ-27 (Protocol handler API removal)](#assessment-pro-req-27-protocol-handler-api-removal) - [Assessment: PRO-REQ-28 (Non-HTTP/HTTPS navigation rejection)](#assessment-pro-req-28-non-httphttps-navigation-rejection) - [Assessment: PRO-REQ-29 (Enterprise protocol handler policy controls)](#assessment-pro-req-29-enterprise-protocol-handler-policy-controls) - [Assessment: PRO-REQ-30 (Custom scheme registration without web+ prefix)](#assessment-pro-req-30-custom-scheme-registration-without-web-prefix) - [Assessment: PRO-REQ-31 (Non-standard protocol handler security warnings)](#assessment-pro-req-31-non-standard-protocol-handler-security-warnings) - [Assessment: PRO-REQ-32 (Protocol handler review interface)](#assessment-pro-req-32-protocol-handler-review-interface) - [Assessment: PRO-REQ-33 (Custom handler vulnerability scanning)](#assessment-pro-req-33-custom-handler-vulnerability-scanning) - [Assessment: PRO-REQ-34 (Protocol handler security audit logging)](#assessment-pro-req-34-protocol-handler-security-audit-logging) - [6.7 System Resource Access Security Assessments](#67-system-resource-access-security-assessments) - [Assessment: SYS-REQ-1 (Process sandbox enforcement)](#assessment-sys-req-1-process-sandbox-enforcement) - [Assessment: SYS-REQ-2 (Renderer process isolation)](#assessment-sys-req-2-renderer-process-isolation) - [Assessment: SYS-REQ-3 (GPU process isolation)](#assessment-sys-req-3-gpu-process-isolation) - [Assessment: SYS-REQ-4 (Network service isolation)](#assessment-sys-req-4-network-service-isolation) - [Assessment: SYS-REQ-5 (Filesystem access control)](#assessment-sys-req-5-filesystem-access-control) - [Assessment: SYS-REQ-6 (Device API permissions)](#assessment-sys-req-6-device-api-permissions) - [Assessment: SYS-REQ-7 (PWA permission management)](#assessment-sys-req-7-pwa-permission-management) - [Assessment: SYS-REQ-8 (Geolocation permission enforcement)](#assessment-sys-req-8-geolocation-permission-enforcement) - [Assessment: SYS-REQ-9 (Camera/microphone access control)](#assessment-sys-req-9-cameramicrophone-access-control) - [Assessment: SYS-REQ-10 (Clipboard access restrictions)](#assessment-sys-req-10-clipboard-access-restrictions) - [Assessment: SYS-REQ-11 (Notification permission management)](#assessment-sys-req-11-notification-permission-management) - [Assessment: SYS-REQ-12 (USB device access security)](#assessment-sys-req-12-usb-device-access-security) - [Assessment: SYS-REQ-13 (Bluetooth permission enforcement)](#assessment-sys-req-13-bluetooth-permission-enforcement) - [Assessment: SYS-REQ-14 (File System Access API security)](#assessment-sys-req-14-file-system-access-api-security) - [Assessment: SYS-REQ-15 (WebUSB security controls)](#assessment-sys-req-15-webusb-security-controls) - [Assessment: SYS-REQ-16 (WebBluetooth security)](#assessment-sys-req-16-webbluetooth-security) - [Assessment: SYS-REQ-17 (WebNFC permission management)](#assessment-sys-req-17-webnfc-permission-management) - [Assessment: SYS-REQ-18 (Sensor API permissions)](#assessment-sys-req-18-sensor-api-permissions) - [Assessment: SYS-REQ-19 (Battery Status API restrictions)](#assessment-sys-req-19-battery-status-api-restrictions) - [Assessment: SYS-REQ-20 (Hardware resource limits)](#assessment-sys-req-20-hardware-resource-limits) - [Assessment: SYS-REQ-21 (Memory isolation enforcement)](#assessment-sys-req-21-memory-isolation-enforcement) - [Assessment: SYS-REQ-22 (CPU resource quotas)](#assessment-sys-req-22-cpu-resource-quotas) - [Assessment: SYS-REQ-23 (Network bandwidth limits)](#assessment-sys-req-23-network-bandwidth-limits) - [Assessment: SYS-REQ-24 (Storage quota enforcement)](#assessment-sys-req-24-storage-quota-enforcement) - [Assessment: SYS-REQ-25 (Process priority management)](#assessment-sys-req-25-process-priority-management) - [Assessment: SYS-REQ-26 (Sandbox escape prevention)](#assessment-sys-req-26-sandbox-escape-prevention) - [Assessment: SYS-REQ-27 (Speculative execution mitigations)](#assessment-sys-req-27-speculative-execution-mitigations) - [Assessment: SYS-REQ-28 (Side-channel attack mitigations)](#assessment-sys-req-28-side-channel-attack-mitigations) - [Assessment: SYS-REQ-29 (Hardware token security)](#assessment-sys-req-29-hardware-token-security) - [Assessment: SYS-REQ-30 (Accessibility API security)](#assessment-sys-req-30-accessibility-api-security) - [Assessment: SYS-REQ-31 (Native messaging restrictions)](#assessment-sys-req-31-native-messaging-restrictions) - [Assessment: SYS-REQ-32 (Host OS integration security)](#assessment-sys-req-32-host-os-integration-security) - [Assessment: SYS-REQ-33 (Block all device API access at SYS-0)](#assessment-sys-req-33-block-all-device-api-access-at-sys-0) - [Assessment: SYS-REQ-34 (Block native messaging interfaces at SYS-0)](#assessment-sys-req-34-block-native-messaging-interfaces-at-sys-0) - [Assessment: SYS-REQ-35 (Block host OS integration at SYS-0)](#assessment-sys-req-35-block-host-os-integration-at-sys-0) - [Assessment: SYS-REQ-36 (PWA permission scope restrictions)](#assessment-sys-req-36-pwa-permission-scope-restrictions) - [Assessment: SYS-REQ-37 (PWA installation permission restrictions)](#assessment-sys-req-37-pwa-installation-permission-restrictions) - [Assessment: SYS-REQ-38 (PWA uninstallation permission revocation)](#assessment-sys-req-38-pwa-uninstallation-permission-revocation) - [Assessment: SYS-REQ-39 (PWA permission audit logging)](#assessment-sys-req-39-pwa-permission-audit-logging) - [Assessment: SYS-REQ-40 (Enterprise PWA permission policy controls)](#assessment-sys-req-40-enterprise-pwa-permission-policy-controls) - [Assessment: SYS-REQ-41 (Native-equivalent API access controls at SYS-3)](#assessment-sys-req-41-native-equivalent-api-access-controls-at-sys-3) - [Assessment: SYS-REQ-42 (Transparent UI for native integration at SYS-3)](#assessment-sys-req-42-transparent-ui-for-native-integration-at-sys-3) - [Assessment: SYS-REQ-43 (Security warnings for privileged API access at SYS-3)](#assessment-sys-req-43-security-warnings-for-privileged-api-access-at-sys-3) - [Assessment: SYS-REQ-44 (Extended system access audit logging at SYS-3)](#assessment-sys-req-44-extended-system-access-audit-logging-at-sys-3) - [Assessment: SYS-REQ-45 (User permission review and revocation at SYS-3)](#assessment-sys-req-45-user-permission-review-and-revocation-at-sys-3) - [Assessment: SYS-REQ-46 (Enterprise restriction of native-equivalent features at SYS-3)](#assessment-sys-req-46-enterprise-restriction-of-native-equivalent-features-at-sys-3) - [Assessment: SYS-REQ-47 (Native integration audit documentation at SYS-3)](#assessment-sys-req-47-native-integration-audit-documentation-at-sys-3) - [6.8 Embedded Browser Security Assessments](#68-embedded-browser-security-assessments) - [Assessment: EMB-REQ-1 (JavaScript bridge API allowlists)](#assessment-emb-req-1-javascript-bridge-api-allowlists) - [Assessment: EMB-REQ-2 (JavaScript bridge input validation)](#assessment-emb-req-2-javascript-bridge-input-validation) - [Assessment: EMB-REQ-3 (JavaScript bridge logging)](#assessment-emb-req-3-javascript-bridge-logging) - [Assessment: EMB-REQ-4 (Context isolation)](#assessment-emb-req-4-context-isolation) - [Assessment: EMB-REQ-5 (User consent for sensitive APIs)](#assessment-emb-req-5-user-consent-for-sensitive-apis) - [Assessment: EMB-REQ-6 (No system-level API exposure without controls)](#assessment-emb-req-6-no-system-level-api-exposure-without-controls) - [Assessment: EMB-REQ-7 (Immutable bridge configuration)](#assessment-emb-req-7-immutable-bridge-configuration) - [Assessment: EMB-REQ-8 (Host credential protection)](#assessment-emb-req-8-host-credential-protection) - [Assessment: EMB-REQ-9 (JavaScript bridge security review)](#assessment-emb-req-9-javascript-bridge-security-review) - [Assessment: EMB-REQ-10 (Bridge API rate limiting)](#assessment-emb-req-10-bridge-api-rate-limiting) - [Assessment: EMB-REQ-11 (Granular capability-based permissions)](#assessment-emb-req-11-granular-capability-based-permissions) - [Assessment: EMB-REQ-12 (Storage isolation from host)](#assessment-emb-req-12-storage-isolation-from-host) - [Assessment: EMB-REQ-13 (CSP enforcement for embedded content)](#assessment-emb-req-13-csp-enforcement-for-embedded-content) - [Assessment: EMB-REQ-14 (Encrypted cross-process bridge)](#assessment-emb-req-14-encrypted-cross-process-bridge) - [Assessment: EMB-REQ-15 (Native UI overlay prevention)](#assessment-emb-req-15-native-ui-overlay-prevention) - [Assessment: EMB-REQ-16 (API surface allowlisting over denylisting)](#assessment-emb-req-16-api-surface-allowlisting-over-denylisting) - [Assessment: EMB-REQ-17 (Certificate validation for remote content)](#assessment-emb-req-17-certificate-validation-for-remote-content) - [Assessment: EMB-REQ-18 (Trusted origin allowlisting)](#assessment-emb-req-18-trusted-origin-allowlisting) - [Assessment: EMB-REQ-19 (Subresource Integrity for external scripts)](#assessment-emb-req-19-subresource-integrity-for-external-scripts) - [Assessment: EMB-REQ-20 (Certificate pinning with backup pins)](#assessment-emb-req-20-certificate-pinning-with-backup-pins) - [Assessment: EMB-REQ-21 (Mixed content prevention)](#assessment-emb-req-21-mixed-content-prevention) - [Assessment: EMB-REQ-22 (Trust decision logging)](#assessment-emb-req-22-trust-decision-logging) - [Assessment: EMB-REQ-23 (Cryptographic signature verification for local content)](#assessment-emb-req-23-cryptographic-signature-verification-for-local-content) - [Assessment: EMB-REQ-24 (Redirect chain trust enforcement)](#assessment-emb-req-24-redirect-chain-trust-enforcement) - [Assessment: EMB-REQ-25 (HSTS enforcement for trusted origins)](#assessment-emb-req-25-hsts-enforcement-for-trusted-origins) - [Assessment: EMB-REQ-26 (Certificate validation failure notification)](#assessment-emb-req-26-certificate-validation-failure-notification) - [Assessment: EMB-REQ-27 (Network security configuration)](#assessment-emb-req-27-network-security-configuration) - [Assessment: EMB-REQ-28 (CSP enforcement for third-party content)](#assessment-emb-req-28-csp-enforcement-for-third-party-content) - [Assessment: EMB-REQ-29 (Per-instance trust policies)](#assessment-emb-req-29-per-instance-trust-policies) - [Assessment: EMB-REQ-30 (Certificate Transparency verification)](#assessment-emb-req-30-certificate-transparency-verification) - [Assessment: EMB-REQ-31 (DNS rebinding attack prevention)](#assessment-emb-req-31-dns-rebinding-attack-prevention) - [Assessment: EMB-REQ-32 (Trust boundary violation security events)](#assessment-emb-req-32-trust-boundary-violation-security-events) - [Assessment: EMB-REQ-33 (Block web content access to host application objects at EMB-0)](#assessment-emb-req-33-block-web-content-access-to-host-application-objects-at-emb-0) - [Assessment: EMB-REQ-34 (No JavaScript bridge exposure at EMB-0)](#assessment-emb-req-34-no-javascript-bridge-exposure-at-emb-0) - [Assessment: EMB-REQ-35 (Treat all content as untrusted at EMB-0)](#assessment-emb-req-35-treat-all-content-as-untrusted-at-emb-0) - [Assessment: EMB-REQ-36 (Allowlist-only bridge API access at EMB-1)](#assessment-emb-req-36-allowlist-only-bridge-api-access-at-emb-1) - [Assessment: EMB-REQ-37 (Minimal and documented bridge API allowlist at EMB-1)](#assessment-emb-req-37-minimal-and-documented-bridge-api-allowlist-at-emb-1) - [Assessment: EMB-REQ-38 (Bidirectional bridge security controls at EMB-2)](#assessment-emb-req-38-bidirectional-bridge-security-controls-at-emb-2) - [Assessment: EMB-REQ-39 (Web content callback handler validation at EMB-2)](#assessment-emb-req-39-web-content-callback-handler-validation-at-emb-2) - [Assessment: EMB-REQ-40 (Bridge message queuing with integrity protection at EMB-2)](#assessment-emb-req-40-bridge-message-queuing-with-integrity-protection-at-emb-2) - [Assessment: EMB-REQ-41 (Bridge traffic anomaly monitoring at EMB-2)](#assessment-emb-req-41-bridge-traffic-anomaly-monitoring-at-emb-2) - [Assessment: EMB-REQ-42 (Enterprise bridge API policy configuration at EMB-2)](#assessment-emb-req-42-enterprise-bridge-api-policy-configuration-at-emb-2) - [Assessment: EMB-REQ-43 (Core security boundaries preserved at EMB-3)](#assessment-emb-req-43-core-security-boundaries-preserved-at-emb-3) - [Assessment: EMB-REQ-44 (User awareness of native capabilities at EMB-3)](#assessment-emb-req-44-user-awareness-of-native-capabilities-at-emb-3) - [Assessment: EMB-REQ-45 (User permission review and revocation at EMB-3)](#assessment-emb-req-45-user-permission-review-and-revocation-at-emb-3) - [Assessment: EMB-REQ-46 (Native integration audit documentation at EMB-3)](#assessment-emb-req-46-native-integration-audit-documentation-at-emb-3) - [Assessment: EMB-REQ-47 (Enterprise native integration restrictions at EMB-3)](#assessment-emb-req-47-enterprise-native-integration-restrictions-at-emb-3) - [Assessment: EMB-REQ-48 (No privileged content origin access)](#assessment-emb-req-48-no-privileged-content-origin-access) - [Assessment: EMB-REQ-49 (Strict CSP enforcement without exceptions)](#assessment-emb-req-49-strict-csp-enforcement-without-exceptions) - [Assessment: EMB-REQ-50 (Trust allowlist immutability)](#assessment-emb-req-50-trust-allowlist-immutability) - [Assessment: EMB-REQ-51 (All EMB-1 requirements implemented)](#assessment-emb-req-51-all-emb-1-requirements-implemented) - [Assessment: EMB-REQ-52 (Pin configuration immutability)](#assessment-emb-req-52-pin-configuration-immutability) - [Assessment: EMB-REQ-53 (Pinning violation blocking)](#assessment-emb-req-53-pinning-violation-blocking) - [Assessment: EMB-REQ-54 (Pin rotation documentation and testing)](#assessment-emb-req-54-pin-rotation-documentation-and-testing) - [Assessment: EMB-REQ-55 (EMB-1 certificate validation baseline for remote content)](#assessment-emb-req-55-emb-1-certificate-validation-baseline-for-remote-content) - [Assessment: EMB-REQ-56 (Secure local content signature algorithms)](#assessment-emb-req-56-secure-local-content-signature-algorithms) - [Assessment: EMB-REQ-57 (Modified local content rejection)](#assessment-emb-req-57-modified-local-content-rejection) - [Assessment: EMB-REQ-58 (Signing key protection from extraction)](#assessment-emb-req-58-signing-key-protection-from-extraction) - [Assessment: EMB-REQ-59 (Hybrid deployment strictest controls)](#assessment-emb-req-59-hybrid-deployment-strictest-controls) - [6.9 Remote Data Processing Systems Security Assessments](#69-remote-data-processing-systems-security-assessments) - [Assessment: RDPS-REQ-1 (Offline functionality documentation)](#assessment-rdps-req-1-offline-functionality-documentation) - [Assessment: RDPS-REQ-2 (Data classification and inventory)](#assessment-rdps-req-2-data-classification-and-inventory) - [Assessment: RDPS-REQ-3 (Data criticality classification)](#assessment-rdps-req-3-data-criticality-classification) - [Assessment: RDPS-REQ-4 (TLS 1.3 encryption for data transmission)](#assessment-rdps-req-4-tls-13-encryption-for-data-transmission) - [Assessment: RDPS-REQ-5 (RDPS endpoint certificate validation)](#assessment-rdps-req-5-rdps-endpoint-certificate-validation) - [Assessment: RDPS-REQ-6 (Retry mechanisms with exponential backoff)](#assessment-rdps-req-6-retry-mechanisms-with-exponential-backoff) - [Assessment: RDPS-REQ-7 (Local data caching for offline operation)](#assessment-rdps-req-7-local-data-caching-for-offline-operation) - [Assessment: RDPS-REQ-8 (Secure authentication for RDPS access)](#assessment-rdps-req-8-secure-authentication-for-rdps-access) - [Assessment: RDPS-REQ-9 (Certificate pinning for RDPS)](#assessment-rdps-req-9-certificate-pinning-for-rdps) - [Assessment: RDPS-REQ-10 (RDPS connection timeout controls)](#assessment-rdps-req-10-rdps-connection-timeout-controls) - [Assessment: RDPS-REQ-11 (RDPS connectivity failure logging)](#assessment-rdps-req-11-rdps-connectivity-failure-logging) - [Assessment: RDPS-REQ-12 (Graceful functionality degradation when RDPS unavailable)](#assessment-rdps-req-12-graceful-functionality-degradation-when-rdps-unavailable) - [Assessment: RDPS-REQ-13 (Credentials protection from RDPS exposure)](#assessment-rdps-req-13-credentials-protection-from-rdps-exposure) - [Assessment: RDPS-REQ-14 (RDPS request rate limiting)](#assessment-rdps-req-14-rdps-request-rate-limiting) - [Assessment: RDPS-REQ-15 (RDPS data validation before processing)](#assessment-rdps-req-15-rdps-data-validation-before-processing) - [Assessment: RDPS-REQ-16 (Data at rest encryption in RDPS storage)](#assessment-rdps-req-16-data-at-rest-encryption-in-rdps-storage) - [Assessment: RDPS-REQ-17 (Mutual TLS authentication for RDPS)](#assessment-rdps-req-17-mutual-tls-authentication-for-rdps) - [Assessment: RDPS-REQ-18 (Redundant data copies for recovery)](#assessment-rdps-req-18-redundant-data-copies-for-recovery) - [Assessment: RDPS-REQ-19 (Data recovery from backups with integrity verification)](#assessment-rdps-req-19-data-recovery-from-backups-with-integrity-verification) - [Assessment: RDPS-REQ-20 (Data retention policies with secure deletion)](#assessment-rdps-req-20-data-retention-policies-with-secure-deletion) - [Assessment: RDPS-REQ-21 (Per-user per-origin access controls)](#assessment-rdps-req-21-per-user-per-origin-access-controls) - [Assessment: RDPS-REQ-22 (RDPS access and modification auditing)](#assessment-rdps-req-22-rdps-access-and-modification-auditing) - [Assessment: RDPS-REQ-23 (Data integrity verification using cryptographic hashes)](#assessment-rdps-req-23-data-integrity-verification-using-cryptographic-hashes) - [Assessment: RDPS-REQ-24 (RDPS endpoint substitution attack protection)](#assessment-rdps-req-24-rdps-endpoint-substitution-attack-protection) - [Assessment: RDPS-REQ-25 (Replay attack defense for RDPS communications)](#assessment-rdps-req-25-replay-attack-defense-for-rdps-communications) - [Assessment: RDPS-REQ-26 (Data minimization principles for RDPS transmissions)](#assessment-rdps-req-26-data-minimization-principles-for-rdps-transmissions) - [Assessment: RDPS-REQ-27 (User controls for RDPS data synchronization)](#assessment-rdps-req-27-user-controls-for-rdps-data-synchronization) - [Assessment: RDPS-REQ-28 (Secure data export from RDPS for data portability)](#assessment-rdps-req-28-secure-data-export-from-rdps-for-data-portability) - [Assessment: RDPS-REQ-29 (User-configurable RDPS endpoint security settings)](#assessment-rdps-req-29-user-configurable-rdps-endpoint-security-settings) - [Assessment: RDPS-REQ-30 (RDPS service availability verification before critical operations)](#assessment-rdps-req-30-rdps-service-availability-verification-before-critical-operations) - [Assessment: RDPS-REQ-31 (Connection pooling with security controls for RDPS)](#assessment-rdps-req-31-connection-pooling-with-security-controls-for-rdps) - [Assessment: RDPS-REQ-32 (RDPS authentication token protection from extraction and theft)](#assessment-rdps-req-32-rdps-authentication-token-protection-from-extraction-and-theft) - [Assessment: RDPS-REQ-33 (End-to-end encryption for all critical data in RDPS)](#assessment-rdps-req-33-end-to-end-encryption-for-all-critical-data-in-rdps) - [Assessment: RDPS-REQ-34 (Hardware-backed key storage for RDPS encryption keys)](#assessment-rdps-req-34-hardware-backed-key-storage-for-rdps-encryption-keys) - [Assessment: RDPS-REQ-35 (High-availability RDPS architecture with failover)](#assessment-rdps-req-35-high-availability-rdps-architecture-with-failover) - [Assessment: RDPS-REQ-36 (RDPS disaster recovery procedures documentation and testing)](#assessment-rdps-req-36-rdps-disaster-recovery-procedures-documentation-and-testing) - [Assessment: RDPS-REQ-37 (Real-time RDPS integrity monitoring)](#assessment-rdps-req-37-real-time-rdps-integrity-monitoring) - [Assessment: RDPS-REQ-38 (RDPS security event logging with SIEM integration)](#assessment-rdps-req-38-rdps-security-event-logging-with-siem-integration) - [Assessment: RDPS-REQ-39 (Geographic data residency requirements enforcement)](#assessment-rdps-req-39-geographic-data-residency-requirements-enforcement) - [Assessment: RDPS-REQ-40 (Zero-trust architecture for RDPS access)](#assessment-rdps-req-40-zero-trust-architecture-for-rdps-access) - [Assessment: RDPS-REQ-41 (Regulatory compliance logging for RDPS operations)](#assessment-rdps-req-41-regulatory-compliance-logging-for-rdps-operations) - [Assessment: RDPS-REQ-42 (Automated RDPS security scanning and vulnerability detection)](#assessment-rdps-req-42-automated-rdps-security-scanning-and-vulnerability-detection) - [Assessment: RDPS-REQ-43 (Cryptographic proof of RDPS data integrity)](#assessment-rdps-req-43-cryptographic-proof-of-rdps-data-integrity) - [Assessment: RDPS-REQ-44 (Secure multi-tenancy with data isolation in RDPS)](#assessment-rdps-req-44-secure-multi-tenancy-with-data-isolation-in-rdps) - [Assessment: RDPS-REQ-45 (RDPS security incident response procedures)](#assessment-rdps-req-45-rdps-security-incident-response-procedures) - [Assessment: RDPS-REQ-46 (RDPS access revocation mechanisms)](#assessment-rdps-req-46-rdps-access-revocation-mechanisms) - [Assessment: RDPS-REQ-47 (RDPS transparency reporting for data access)](#assessment-rdps-req-47-rdps-transparency-reporting-for-data-access) - [Assessment: RDPS-REQ-48 (Forward secrecy for RDPS communications)](#assessment-rdps-req-48-forward-secrecy-for-rdps-communications) - [Assessment: RDPS-REQ-49 (User notification of RDPS security events)](#assessment-rdps-req-49-user-notification-of-rdps-security-events) - [Assessment: RDPS-REQ-50 (Service discontinuation and data migration documentation)](#assessment-rdps-req-50-service-discontinuation-and-data-migration-documentation) - [Assessment: RDPS-REQ-51 (Enterprise administrator RDPS security policy configuration)](#assessment-rdps-req-51-enterprise-administrator-rdps-security-policy-configuration) - [Assessment: RDPS-REQ-52 (Fully offline browser operation without remote connectivity)](#assessment-rdps-req-52-fully-offline-browser-operation-without-remote-connectivity) - [Assessment: RDPS-REQ-53 (All user data stored locally without remote synchronization)](#assessment-rdps-req-53-all-user-data-stored-locally-without-remote-synchronization) - [Assessment: RDPS-REQ-54 (No telemetry, diagnostics, or usage data transmission)](#assessment-rdps-req-54-no-telemetry-diagnostics-or-usage-data-transmission) - [Assessment: RDPS-REQ-55 (No degradation when network connectivity unavailable)](#assessment-rdps-req-55-no-degradation-when-network-connectivity-unavailable) - [Assessment: RDPS-REQ-56 (No remote authentication or authorization services required)](#assessment-rdps-req-56-no-remote-authentication-or-authorization-services-required) - [Assessment: RDPS-REQ-57 (Local-only operation capabilities and limitations documentation)](#assessment-rdps-req-57-local-only-operation-capabilities-and-limitations-documentation) - [Assessment: RDPS-REQ-58 (User notification that no data leaves local system)](#assessment-rdps-req-58-user-notification-that-no-data-leaves-local-system) - [Assessment: RDPS-REQ-59 (All RDPS-1 requirements implemented for RDPS-2)](#assessment-rdps-req-59-all-rdps-1-requirements-implemented-for-rdps-2) - [Assessment: RDPS-REQ-60 (All RDPS-2 requirements implemented for RDPS-3)](#assessment-rdps-req-60-all-rdps-2-requirements-implemented-for-rdps-3) - [Annex A (informative): Mapping between the present document and CRA requirements](#annex-a-informative-mapping-between-the-present-document-and-cra-requirements) - [Annex B (informative): Mapping of Use Cases to Capabilities and Requirements](#annex-b-informative-mapping-of-use-cases-to-capabilities-and-requirements) - [B.1 Use Case Mapping Methodology](#b1-use-case-mapping-methodology) - [B.2 Use Case to Capability Mappings](#b2-use-case-to-capability-mappings) - [UC-B1: General Purpose Web Browsing (Risk Level: Standard)](#uc-b1-general-purpose-web-browsing-risk-level-standard) - [UC-B2: Development and Testing Environments (Risk Level: High)](#uc-b2-development-and-testing-environments-risk-level-high) - [UC-B3: Kiosks and Shared Terminals (Risk Level: High)](#uc-b3-kiosks-and-shared-terminals-risk-level-high) - [UC-B4: Financial Services Access (Risk Level: High)](#uc-b4-financial-services-access-risk-level-high) - [UC-B5: Healthcare and Medical Systems (Risk Level: High)](#uc-b5-healthcare-and-medical-systems-risk-level-high) - [UC-B6: E-Government Services Access (Risk Level: High)](#uc-b6-e-government-services-access-risk-level-high) - [UC-B7: Enterprise Applications (Risk Level: High)](#uc-b7-enterprise-applications-risk-level-high) - [UC-B8: Critical Infrastructure (Risk Level: CRITICAL)](#uc-b8-critical-infrastructure-risk-level-critical) - [UC-B9: Security Research (Risk Level: CRITICAL)](#uc-b9-security-research-risk-level-critical) - [UC-B10: Adapted Browser with Modified Features (Risk Level: Standard to High)](#uc-b10-adapted-browser-with-modified-features-risk-level-standard-to-high) - [UC-B11: Desktop Applications with Embedded Browser Navigation (Risk Level: High)](#uc-b11-desktop-applications-with-embedded-browser-navigation-risk-level-high) - [UC-B12: Super-App Platforms (Risk Level: High)](#uc-b12-super-app-platforms-risk-level-high) - [B.3 Capability Condition Level Selection Guide](#b3-capability-condition-level-selection-guide) - [B.4 Cross-Reference to Assessments](#b4-cross-reference-to-assessments) - [B.5 Remote Data Processing Systems (RDPS) Mapping](#b5-remote-data-processing-systems-rdps-mapping) - [RDPS-0: No Remote Data Processing (Fully Local Operation)](#rdps-0-no-remote-data-processing-fully-local-operation) - [RDPS-1: Limited Remote Processing (Non-Sensitive Data)](#rdps-1-limited-remote-processing-non-sensitive-data) - [RDPS-2: Extended Remote Processing (Sensitive Data)](#rdps-2-extended-remote-processing-sensitive-data) - [RDPS-3: Full Remote Processing (Critical Data - Maximum Security)](#rdps-3-full-remote-processing-critical-data---maximum-security) - [RDPS Capability Selection Matrix by Use Case](#rdps-capability-selection-matrix-by-use-case) - [Annex C (informative): Relationship between the present document and related standards](#annex-c-informative-relationship-between-the-present-document-and-related-standards) - [C.1 European Standards and Regulations](#c1-european-standards-and-regulations) - [C.1.1 Cyber Resilience Act (EU) 2024/...](#c11-cyber-resilience-act-eu-2024) - [C.1.2 General Data Protection Regulation (GDPR) - Regulation (EU) 2016/679](#c12-general-data-protection-regulation-gdpr---regulation-eu-2016679) - [C.1.3 eIDAS Regulation - Regulation (EU) No 910/2014](#c13-eidas-regulation---regulation-eu-no-9102014) - [C.1.4 NIS2 Directive - Directive (EU) 2022/2555](#c14-nis2-directive---directive-eu-20222555) - [C.2 ISO/IEC International Standards](#c2-isoiec-international-standards) - [C.2.1 ISO/IEC 27001 - Information Security Management Systems](#c21-isoiec-27001---information-security-management-systems) - [C.2.2 ISO/IEC 27017 - Cloud Services Information Security](#c22-isoiec-27017---cloud-services-information-security) - [C.2.3 ISO/IEC 27018 - Protection of PII in Public Clouds](#c23-isoiec-27018---protection-of-pii-in-public-clouds) - [C.2.4 ISO/IEC 27035 - Information Security Incident Management](#c24-isoiec-27035---information-security-incident-management) - [C.2.5 ISO/IEC 29147 - Vulnerability Disclosure](#c25-isoiec-29147---vulnerability-disclosure) - [C.2.6 ISO 22301 - Business Continuity Management](#c26-iso-22301---business-continuity-management) - [C.2.7 ISO 8601 - Date and Time Format](#c27-iso-8601---date-and-time-format) - [C.3 Related ETSI Standards](#c3-related-etsi-standards) - [C.4 Relationship to Other Standards Bodies](#c4-relationship-to-other-standards-bodies) - [C.4.1 W3C Web Standards](#c41-w3c-web-standards) - [C.4.2 WHATWG Standards](#c42-whatwg-standards) - [C.4.3 IETF Standards](#c43-ietf-standards) - [C.5 Industry Security Frameworks](#c5-industry-security-frameworks) - [C.5.1 CIS Benchmarks](#c51-cis-benchmarks) - [C.5.2 NIST Cybersecurity Framework](#c52-nist-cybersecurity-framework) - [Annex D (informative): Risk identification and assessment methodology](#annex-d-informative-risk-identification-and-assessment-methodology) - [D.1 Assets](#d1-assets) - [D.1.1 Data](#d11-data) - [D.1.2 Product functions](#d12-product-functions) - [D.2 Threats](#d2-threats) - [D.3 Assumptions](#d3-assumptions) - [D.4 Risk assessments of threats](#d4-risk-assessments-of-threats) - [Annex E (informative): Risk evaluation guidance](#annex-e-informative-risk-evaluation-guidance) - [E.1 Mapping of risks to requirements](#e1-mapping-of-risks-to-requirements) - [E.2 Risks not treated by the requirements](#e2-risks-not-treated-by-the-requirements) - [E.3 Risk acceptance criteria](#e3-risk-acceptance-criteria) - [E.4 Residual risks](#e4-residual-risks) - [Annex K](#annex-k) - [Annex L (informative): Relationship between the present document and the requirements of EU Regulation 2024/2847](#annex-l-informative-relationship-between-the-present-document-and-the-requirements-of-eu-regulation-20242847) - [Annex : Change history](#annex--change-history) - [History](#history)
# Intellectual Property Rights Essential patents IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The declarations pertaining to these essential IPRs, if any, are publicly available for **ETSI members and non-members** , and can be found in ETSI SR 000 314: _"Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in respect of ETSI standards"_ , which is available from the ETSI Secretariat. Latest updates are available on the [ETSI IPR online database](https://ipr.etsi.org/). Pursuant to the ETSI Directives including the ETSI IPR Policy, no investigation regarding the essentiality of IPRs, including IPR searches, has been carried out by ETSI. No guarantee can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web server) which are, or may be, or may become, essential to the present document. Trademarks The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners. ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks. **DECT™**, **PLUGTESTS™**, **UMTS™** and the ETSI logo are trademarks of ETSI registered for the benefit of its Members. **3GPP™**, **LTE™** and **5G™** logo are trademarks of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners. **oneM2M™** logo is a trademark of ETSI registered for the benefit of its Members and of the oneM2M Partners. **GSM®** and the GSM logo are trademarks registered and owned by the GSM Association. # Foreword > DRAFT FOREWORD - DO NOT CONSIDER THE CONTENT This draft Harmonised European Standard (EN) has been produced by ETSI Technical Committee Cyber Working Group for EUSR (CYBER-EUSR), and is now submitted for the combined Public Enquiry and Vote phase of the ETSI Standardisation Request deliverable Approval Procedure (SRdAP). ``` The present document has been prepared under the Commission's standardisation request C(2025) 618 final to provide one voluntary means of conforming to the requirements of Regulation (EU) No 2024/2847 of the European Parliament and of the Council of 23 October 2024 on horizontal cybersecurity requirements for products with digital elements and amending Regulations (EU) No 168/2013 and (EU) No 2019/1020 and Directive (EU) 2020/1828 (Cyber Resilience Act). ``` Once the present document is cited in the Official Journal of the European Union under that Regulation, compliance with the normative clauses of the present document given in table A.1 confers, within the limits of the scope of the present document, a presumption of conformity with the corresponding requirements of that Regulation and associated EFTA regulations. Transposition table The Harmonised Standard shall have appropriate transposition periods specified. A Harmonised Standard confers presumption of conformity when it has been published in the Official Journal of the European Union (OJEU) and transposed by a member state. The Technical Body may propose different dates to the default ones (3, 6, 18). Technical Bodies who wish to propose different dates are advised to indicate this clearly in the approved committee draft. | Proposed national transposition dates | | |----------------------------------------------------------------|---------------------------------| | Date of latest announcement of this EN (doa): | 3 months after ETSI publication | | Date of latest publication of new National Standard | | | or endorsement of this EN (dop/e): | 6 months after doa | | Date of withdrawal of any conflicting National Standard (dow): | 18 months after doa | The Technical Body should advise the ETSI Secretariat if the above default national transposition dates are inappropriate for the particular standard. # Modal verbs terminology In the present document "**should** ", "**should not** ", "**may** ", "**need not** ", "**will** ", "**will not** ", "**can** " and "**cannot** " are to be interpreted as described in clause 3.2 of the [ETSI Drafting Rules](https://portal.etsi.org/Services/editHelp/How-to-start/ETSI-Drafting-Rules) (Verbal forms for the expression of provisions). "**must** " and "**must not** " are **NOT** allowed in ETSI deliverables except when used in direct citation. # Executive summary Browsers represent one of the most complex and security-critical software products in modern computing, serving as the primary gateway between users and internet resources while processing untrusted content from millions of sources daily. The browser's architecture encompasses multiple interconnected subsystems - including rendering engines, JavaScript/WebAssembly execution environments, network stacks, and extension frameworks, each presenting distinct attack surfaces that shall be defended while maintaining performance, compatibility with legacy web content, and user autonomy. Unlike traditional security products that can enforce restrictive controls, browsers shall balance protection against an evolving threat landscape with respect for user choice, creating unique challenges where users may deliberately choose to visit malicious sites, install risky extensions, or disable security features. The browser's multi-layered trust model, spanning from the highly privileged browser core through semi-trusted extensions to completely untrusted web content, requires sophisticated isolation mechanisms, granular permission systems, and careful mediation of system resource access. Given browsers' ubiquitous deployment across consumer, enterprise, and specialized environments, their role as platforms for Progressive Web Applications, and their position as primary targets for nation-state and criminal actors, establishing proportionate security requirements under the Cyber Resilience Act demands careful consideration of the inherent tensions between security, functionality, performance, and user agency that define the modern web browsing experience. # Introduction This European harmonised standard defines cybersecurity requirements applicable to browsers. This document will provide security requirements and assessment criteria covering all elements defined in CRA Annex I Part 1 and Part 2 for stand alone browsers, as mentioned in CRA Annex III Class I important products. This work item intends to produce an EN as candidate for harmonisation, under the standardisation request in support of the implementation of the CRA (M/606).
# 1 Scope This standard focuses on browsers, both standalone and embedded. Browsers are software products with digital elements that enable end users to access and interact with web content hosted on servers that are connected to local and remote networks. Within the context of an operating system, browsers are user-applications with a primary function and probable daily use. They are often leveraged as means of accessing remote authentication (single-sign-on) or even as a bridge (deep-link) to another application that has already been installed. In both cases, all systems have the notion of a “default browser” that can then be instrumented by other applications to navigate to a website or perform such an activity. The activity of browsing can be defined in the following steps: 1. A machine accesses remote resources and source code, such as HTML, JavaScript/WebAssembly, and CSS. 2. This source is represented visually, acoustically, or in some other form. 3. The user interacts with the rendered representation through input and output interfaces, including visual observation, text entry, pointer interaction, or other supported input modalities. ## 1.1 Browser ### 1.1.1 Standalone Standalone browsers are applications that fulfil the functions of browsing. Web browsers are software applications that access, retrieve, and interact with information and resources addressed by URLs. A standalone browser may be used for everyday tasks such as reading email, managing a calendar, or consuming the news. Such programs commonly have interfaces for managing multiple websites, browsing history, bookmarks, user identities, passwords, and other settings. They can commonly be extended with browser extensions, which are products with digital elements that have the ability to read, store, and modify the websites that users interact with. ### 1.1.2 Embedded Embedded browsers are browsing services that are integrated into another system or application. As such, they are programs using the same baseline technology of browsing but are commonly used for “single purpose” browsing. This means that instead of opening the user’s preferred standalone browser, the hosting application will open an embedded browser to keep the user’s attention. It is not common for a user to be able to change the configuration of an embedded browser. ### 1.1.3 Progressive Web Apps (PWA) Progressive Web Apps are web applications that can be installed to a user's device from a standalone browser and subsequently operate in a dedicated application-like context. PWAs leverage browser capabilities including service workers, application manifests, and isolated storage to provide offline functionality, push notifications, and integration with operating system features such as the application launcher and task switcher. When installed, they execute within the browser's process architecture but present themselves to the user as distinct applications with their own windows, icons, and settings. Unlike traditional web pages, installed PWAs maintain separate configuration contexts from the main browser, including distinct storage partitions, permission grants, and display modes. They may register custom protocol handlers, manage their own cache strategies through service workers, and receive operating system events such as share targets or file handlers. Despite this application-like presentation, PWAs remain fundamentally web applications subject to the same security boundaries and web platform APIs as content rendered in standard browser tabs. ### 1.1.4 Browser Extensions Browser extensions are third-party software components that integrate with and extend the functionality of standalone browsers. Extensions operate with elevated privileges compared to standard web content, enabling them to intercept and modify network requests, inject scripts into web pages, access cross-origin resources, interact with browser APIs, and persist data across browsing sessions. They are distributed through vendor-operated extension stores or side-loaded through developer modes, and are subject to varying degrees of review, validation, and ongoing monitoring depending on the browser vendor's policies. Unlike web applications that execute within the constraints of the same-origin policy, extensions declare their required permissions through manifest files and, once granted, operate with capabilities that span multiple origins and browser contexts. They may consist of background scripts or service workers for persistent logic, content scripts that execute within web page contexts, popup interfaces, options pages, and other components. The security model of extensions creates a unique trust boundary where extensions act as intermediaries between the browser core and web content, requiring careful permission management, isolation mechanisms, and code signing to prevent abuse while enabling legitimate functionality enhancements. ## 1.2 Derivative Browsers and Manufacturer Obligations A significant proportion of browsers placed on the market are derivative products based on open source browser engines or substantially complete browser implementations. Understanding the manufacturer's obligations for such derivative products is essential to the proportionate application of this standard. ### 1.2.1 Open Source Browser Engines and Derivative Products Open source browser projects such as Chromium, Gecko (Firefox), and WebKit provide complete or near-complete browser implementations that serve as the foundation for derivative products. These upstream projects are stewarded by organizations that maintain the core rendering engines, JavaScript execution environments, network stacks, and security architectures, but the projects themselves do not constitute products placed on the EU market with CE marking. When an economic operator takes such an open source project, applies modifications (whether substantial or minor), and places the resulting browser on the market under their own brand or distribution channel, that operator becomes a manufacturer under the Cyber Resilience Act [i.1]. This classification applies regardless of the extent of modification - from minor branding and default configuration changes to substantial feature additions, custom user interfaces, or integration of proprietary services. ### 1.2.2 Spectrum of Derivative Modifications Derivative browsers exist along a spectrum of modification, each with implications for conformity assessment: **Minor Modifications**: Browsers that modify only branding elements, default search providers, homepage settings, bundled bookmarks, or visual themes while maintaining the upstream codebase's security architecture, update mechanisms, and core functionality. Examples include rebranded releases for specific markets or partnerships. **Configuration-Level Modifications**: Browsers that alter default privacy settings, tracking protection levels, extension policies, or feature flags to differentiate the product while preserving the underlying implementation. Such modifications may strengthen or weaken security postures relative to the upstream project. **Feature Additions**: Browsers that integrate additional capabilities such as built-in VPN services, cryptocurrency wallets, AI assistants, proprietary synchronization services, or vertical-specific toolbars. These additions create new attack surfaces and data processing considerations beyond those present in the upstream project. **Architectural Modifications**: Browsers that modify process architecture, sandbox implementations, network request routing, certificate validation logic, or other security-critical components. Such changes may fundamentally alter the security properties inherited from the upstream project. ### 1.2.3 Manufacturer Responsibilities for Derivative Products Economic operators placing derivative browsers on the market bear full manufacturer obligations under the CRA, regardless of their reliance on upstream security implementations. These obligations include: **Security Requirement Compliance**: Demonstrating that the derivative product, in its modified form, satisfies the essential cybersecurity requirements of Annex I of the CRA. While manufacturers may rely on the security properties of unmodified upstream components, any modifications should be assessed for their impact on those security properties. **Vulnerability Management**: Establishing processes to monitor both upstream security advisories and vulnerabilities specific to the manufacturer's modifications. Timely integration of upstream security patches is a critical manufacturer responsibility, as delays in patch integration extend the exposure window for known vulnerabilities affecting end users. **Conformity Assessment**: Conducting or commissioning technical assessments that address both the inherited security properties from the upstream project and the security implications of the manufacturer's specific modifications. The assessment should consider whether modifications have weakened, maintained, or strengthened the security posture. **Technical Documentation**: Maintaining documentation that clearly delineates which components are inherited from the upstream project versus manufacturer modifications, security reviews conducted on modifications, processes for integrating upstream updates, and any divergences from upstream security defaults. **Update Delivery**: Ensuring that security updates reach end users in a timely manner. For derivative browsers, this includes both the integration of upstream security patches into the manufacturer's codebase and the delivery of updated builds to end users through the manufacturer's distribution and update infrastructure. ### 1.2.4 Trust in Upstream Security Implementations Manufacturers of derivative browsers commonly rely on the security implementations provided by upstream projects for foundational requirements such as TLS protocol implementation, cryptographic library usage, certificate validation, same-origin policy enforcement, and sandbox architecture. This reliance is reasonable provided that: **Upstream Security Processes are Verifiable**: The upstream project demonstrates transparent security practices including public vulnerability disclosure, security-focused development processes, regular security audits, and timely patch releases. **Modifications Do Not Undermine Upstream Security**: The manufacturer's changes do not bypass, weaken, or interfere with the security mechanisms inherited from the upstream project. For example, modifications that disable certificate validation, weaken content security policies, or reduce sandbox restrictions would constitute substantial security regressions requiring additional justification and compensating controls. **Integration Timeliness is Maintained**: The manufacturer maintains a process to integrate upstream security patches within a reasonable timeframe. Extended delays between upstream patch availability and manufacturer distribution create unnecessary risk exposure for end users. **Deviation Points are Documented and Assessed**: Where the manufacturer intentionally diverges from upstream security defaults (e.g., enabling features disabled upstream for security reasons, or modifying cryptographic configurations), these deviations are documented with security rationale and risk assessment. ### 1.2.5 Application of This Standard to Derivative Browsers When applying the requirements of this standard to derivative browsers, manufacturers and assessors should consider: **Inherited vs. Modified Components**: Requirements addressing components that remain unmodified from the upstream project may be satisfied by demonstrating that the upstream implementation meets the requirement, provided the manufacturer's integration does not interfere with that implementation. **Modification-Specific Assessment**: Requirements addressing areas where the manufacturer has made modifications require direct assessment of those modifications. This includes manufacturer-added features, modified defaults, integrated services, and any changes to security-critical code paths. **Update Mechanism Obligations**: Even where a manufacturer relies on the upstream project's update mechanism architecture, the manufacturer remains responsible for ensuring that updates reach end users. This includes operating update servers, signing update packages, managing update channels, and ensuring update delivery reliability. **Use Case Alignment**: Derivative browsers should be assessed against the use cases (Chapter 4.4) that align with their intended deployment contexts. A derivative browser marketed for general consumer use would align with UC-B1, while one marketed for enterprise deployment with proprietary features would align with UC-B7, regardless of their shared upstream heritage. Derivative browsers represent a practical and economically significant category of products within the browser market. This standard recognizes that reliance on well-maintained upstream security implementations is a valid engineering approach, while maintaining that manufacturers placing derivative products on the market retain full responsibility for the security properties of the products they distribute. ### 1.2.6 State of the Art: Industry Testing and Security Practices The state of the art for browser development and security validation encompasses organizational practices, industry standards, and comprehensive testing regimes that manufacturers should demonstrate to establish the quality and security of their browser implementations, whether original or derivative. **Organizational Practices and Resources**: Reputable browser manufacturers, both upstream projects and derivative product vendors, demonstrate their commitment to security through: - **Adequate staffing**: Employment of sufficient numbers of developers and security personnel with expertise in browser architecture, web standards, cryptography, and vulnerability research - **Security-focused development**: Dedicated security teams, secure development lifecycle practices, code review processes, and security architecture oversight - **Transparency and communication**: Public disclosure of security policies, vulnerability handling procedures, and regular security bulletins - **User commitment**: Published statements of commitment to user security and privacy, including privacy policies, data handling practices, and user control mechanisms - **Update cadence**: Regular release schedules for security updates and patches, with clear timelines for critical vulnerability remediation **Industry Standards Compliance**: Browsers are expected to comply with applicable industry standards including but not limited to: - **Web standards**: W3C specifications (HTML, CSS, JavaScript/ECMAScript, DOM, Fetch, etc.), WHATWG living standards - **Security standards**: IETF RFCs for TLS, HTTP, WebAuthn, and related protocols; CA/Browser Forum Baseline Requirements - **Accessibility standards**: WCAG (Web Content Accessibility Guidelines), ARIA (Accessible Rich Internet Applications) - **Privacy standards**: Do Not Track, Global Privacy Control, tracking protection standards **Industry-Recognized Testing Frameworks**: Browsers should undergo testing using recognized industry test suites and frameworks: **Standards Conformance Tests**: - **Web Platform Tests (WPT)**: Comprehensive cross-browser test suite maintained by W3C and browser vendors, with public dashboard available at https://wpt.fyi/ showing conformance across implementations - **Test262**: Official ECMAScript conformance test suite maintained by Ecma TC39, verifying JavaScript/ECMAScript specification compliance - **W3C Test Suites**: Individual test suites for specific W3C specifications (CSS Working Group tests, HTML5 tests, etc.) - **Acid Tests**: Historical but influential browser standards compliance tests (Acid1, Acid2, Acid3) developed by the Web Standards Project **Functional and Compatibility Testing**: - **Selenium**: Open-source testing framework for browser automation, widely used for functional testing and regression testing across browsers - **BrowserStack**: Cloud-based cross-browser testing platform enabling compatibility verification across browser versions, operating systems, and devices - **Playwright/Puppeteer**: Modern browser automation and testing frameworks providing programmatic control for automated testing **Security-Specific Testing and Validation**: - **CA/Browser Forum participation**: Engagement with the CA/Browser Forum (https://cabforum.org/working-groups/server/charter/) which establishes baseline requirements for certificate authorities and browser trust store policies - **TLS/Certificate validation testing**: Testing against standard certificate validation scenarios, revocation checking, and TLS protocol compliance - **Vulnerability disclosure programs**: Participation in responsible disclosure programs, bug bounty programs, and coordinated vulnerability disclosure processes - **Penetration testing**: Regular security assessments by internal security teams or external security researchers **Standards Body Participation**: Active participation in standards bodies demonstrates commitment to interoperability and security best practices: - **W3C (World Wide Web Consortium)**: Participation in working groups defining web standards - **WHATWG (Web Hypertext Application Technology Working Group)**: Collaboration on living standards for HTML, DOM, and related specifications - **IETF (Internet Engineering Task Force)**: Engagement in protocol standardization (TLS, HTTP, WebRTC, etc.) - **Ecma International**: Participation in ECMAScript (JavaScript) standardization through TC39 - **CA/Browser Forum**: Involvement in establishing requirements for certificate authorities and browser root programs - **FIDO Alliance**: Participation in authentication standards development (WebAuthn, FIDO2) **Implications for Derivative Browsers**: Derivative browser manufacturers should demonstrate: 1. **Upstream testing inheritance**: Evidence that the upstream project undergoes comprehensive testing via WPT, Test262, and other industry-standard test suites, with results publicly available 2. **Modification testing**: Testing of manufacturer-specific modifications using appropriate test frameworks to ensure modifications do not introduce regressions or security vulnerabilities 3. **Integration testing**: Validation that the integration of upstream components with manufacturer additions maintains standards compliance and security properties 4. **Security review process**: Documentation of security review procedures for modifications, including code review, security testing, and vulnerability assessment 5. **Update testing**: Verification that upstream updates are tested before distribution to ensure compatibility with manufacturer modifications Manufacturers may demonstrate compliance with industry testing practices by referencing: - Publicly available test results on wpt.fyi or similar dashboards - Participation in open-source testing efforts - Documentation of testing methodologies and results - Third-party security assessments or certifications - Membership in relevant standards bodies and working groups The state of the art represents a comprehensive approach to browser quality and security, combining organizational commitment, standards compliance, extensive automated testing, security-focused practices, and community engagement. Derivative browser manufacturers should demonstrate that their products meet or exceed these industry norms, either through inheritance from well-maintained upstream projects or through their own testing and validation processes. # 2 References ## 2.1 Normative references _**In Harmonised Standards these references shall be specific** (identified by date of publication and/or edition number or version number) **publicly available and in English, except in exceptional circumstances making sure that impacts have been evaluated and explanations have been given on how any negative implications should be avoided** . See clauses 2.10.1 and 8.4 of the [EDRs](EDRs) and the communiqué on "[References in ETSI Deliverables](https://portal.etsi.org/Portals/0/TBpages/edithelp/Docs/News_from_editHelp/References_in_ETSI_deliverables.pdf)"._ _Guidance for selecting normative references in harmonised standards is given in clause 2.8.3 of the Vademecum on European standardisation. Please **systematically consult with your Technical Officer** for the latest guidance on normative references other than to ENs, ISO/IEC standards, notably to prevent the risk of non-acceptance._ _**Legal acts can never be used as normative references.**_ _It is recommended that the number of references be limited to the minimum needed for the implementation/application of the ETSI Deliverables. References not directly concerned with the implementation/application/understanding of the ETSI Deliverable shall be listed in the Bibliography annex._ _References are either specific (identified by date of publication and/or edition number or version number) or non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the referenced document (including any amendments) applies._ _Referenced documents which are not found to be publicly available in the expected location might be found in the [ETSI docbox](https://docbox.etsi.org/Reference/)._ > NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee their long-term validity. The following referenced documents are necessary for the application of the present document. - [1] <Standard Organization acronym> <document number> (<version number>): "<Title>". ## 2.2 Informative references References are either specific (identified by date of publication and/or edition number or version number) or nonspecific. For specific references, only the cited version applies. For non-specific references, the latest version of the referenced document (including any amendments) applies. > NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee their long-term validity. The following referenced documents may be useful in implementing an ETSI deliverable or add to the reader's understanding but are not required for conformance to the present document. - [i.1] Regulation (EU) 2024/2847 of the European Parliament and of the Council of 23 October 2024 on horizontal cybersecurity requirements for products with digital elements and amending Regulations (EU) No 168/2013 and (EU) 2019/1020 and Directive (EU) 2020/1828 (Cyber Resilience Act). - [i.2] NIST SP 800-128 (2011) Guide for Security-Focused Configuration Management of Information Systems - [i.x] <Standard Organization acronym> <document number> (<version number>): "<Title>". # 3 Definition of terms, symbols and abbreviations ## 3.1 Terms The terms below are important for understanding the purpose and usage of browsers. For the purposes of the present document, the following terms apply: | Term | Definition | |------|------------| | **Access** | The capability to retrieve, load, and display web content from servers through network protocols, including establishing connections, downloading resources, and rendering content for user consumption. | | **Accessing Web Content** | The complete process by which browsers retrieve, process, and present web resources to end users, encompassing network communication, content parsing, rendering, and user interface presentation. | | **Browser Extensions** | Software modules that augment browser functionality by adding features, modifying behavior, or enhancing user experience beyond the browser's core capabilities, typically installed and managed through the browser's extension system. | | **Browsers** | Software products with digital elements that enable end users to access and interact with web content hosted on servers that are connected to local and remote networks.

*Note: Expert group definition - In the context of this category of products, browsers are software products with digital elements that enable end users to access and interact with web content hosted on servers that are connected to networks such as the Internet.* | | **Certificate** | A digital document issued by a Certificate Authority that validates the identity of a website and enables encrypted HTTPS connections, verified by browsers through cryptographic signature validation and certificate chain trust evaluation to prevent man-in-the-middle attacks. | | **Content Security Policy (CSP)** | A browser security mechanism that allows web applications to declare approved sources for executable scripts, styles, and other resources through HTTP headers or meta tags, mitigating cross-site scripting attacks by preventing execution of unauthorized code. | | **Cross-Site Scripting (XSS)** | A security vulnerability that allows attackers to inject malicious scripts into trusted websites viewed by other users, potentially stealing credentials, session tokens, or sensitive data by executing attacker-controlled code in the victim's browser context. | | **Custom Protocol** | Non-standard or application-specific communication protocols that browsers may support for specialized content access or functionality, extending beyond traditional web protocols like HTTP/HTTPS. | | **Embedded Browsers** | Browsers that are intended for integration into another system or application. | | **End Users** | Natural persons who utilize browsers to access web content for personal, professional, or other purposes, including but not limited to browsing, reading, viewing multimedia content, and interacting with web applications. | | **Exploit** | A technique, code, or sequence of actions that takes advantage of a vulnerability to achieve unauthorized behavior, such as arbitrary code execution, privilege escalation, sandbox escape, or information disclosure. | | **Extension API** | Programming interfaces exposed by browsers that enable extensions to access browser functionality, modify web content, intercept network requests, or integrate with browser features, subject to declared permissions and security policies. | | **Interact** | The critical activity that defines browsing, encompassing user actions such as clicking hyperlinks, submitting forms, executing scripts, manipulating page elements, and engaging with dynamic web content through input devices. | | **Man-in-the-Middle (MITM) Attack** | An attack where an adversary intercepts and potentially modifies network communication between a browser and server, often exploiting weak encryption, invalid certificates, or unencrypted HTTP connections to eavesdrop on or manipulate data transmission. | | **Networks** | Communication infrastructures that enable data transmission between browsers and servers, encompassing local area networks (LANs), wide area networks (WANs), and the global Internet. | | **Origin** | A fundamental security boundary defined by the combination of scheme (protocol), host (domain), and port of a URL, forming the basis for Same-Origin Policy enforcement and determining which web content can access shared resources, storage, and APIs. | | **Permission** | A user-granted authorization that allows web content to access sensitive browser capabilities or device hardware (camera, microphone, location, notifications, etc.), managed through explicit user consent prompts and revocable through browser settings. | | **Process Isolation** | The architectural pattern of separating browser components and web content into distinct operating system processes with independent memory spaces and restricted inter-process communication, containing the impact of security vulnerabilities and preventing cross-context data leakage. | | **Progressive Web Applications** | Web-based applications that operate within the browser environment, leveraging advanced browser APIs and capabilities to provide enhanced functionality including offline operation, background synchronization, push notifications, and device hardware access, while remaining fundamentally dependent on the browser's runtime and security model for execution and user interaction. | | **Raw Content** | Unprocessed source code and data formats delivered by servers, including but not limited to XML, JSON, JavaScript, HTML, CSS, and other markup or programming languages before browser interpretation. | | **Renderer Process** | A sandboxed browser process responsible for parsing, executing, and displaying web content including HTML, CSS, and JavaScript, isolated from other content and the browser core to contain potential exploits within a restricted security boundary. | | **Same-Origin Policy** | The core browser security model that restricts how documents and scripts from one origin can interact with resources from another origin, preventing malicious websites from reading sensitive data or performing unauthorized actions on behalf of users across different web applications. | | **Sandbox** | An operating system-level security mechanism that restricts the capabilities and system access of browser processes, limiting damage from compromised web content by preventing unauthorized filesystem access, system call execution, or privilege escalation beyond defined boundaries. | | **Servers** | Computer systems or software applications that store, process, and deliver web content to browsers via network protocols, responding to browser requests with appropriate resources and data. | | **Standalone Browsers** | Standalone applications that fulfil the functions of browsers. | | **Telemetry** | Automated collection and transmission of browser usage data, performance metrics, crash reports, and diagnostic information to browser manufacturers for product improvement, typically requiring user consent and subject to privacy controls and data minimization principles. | | **Vulnerability** | A weakness or flaw in browser implementation that can be exploited by malicious actors to bypass security controls, execute arbitrary code, access unauthorized data, or compromise system integrity, typically addressed through security updates and patches. | | **Web Content** | The displayed and rendered representation of raw content, transformed by browsers into human-perceivable formats including text, images, videos, interactive elements, and structured layouts as intended by content creators. | | **WebView** | A platform-specific embedded browser component that enables applications to display web content within their user interface, providing a subset of full browser functionality while operating under the security context and lifecycle of the host application. Common implementations include Android WebView, iOS WKWebView, Windows WebView2, and cross-platform frameworks such as Electron, Tauri, and Chromium Embedded Framework (CEF). | ## 3.2 Symbols For the purposes of the present document, the [following] symbols [given in ... and the following] apply: [to be added] # 4 Product Context ## 4.1 General ## 4.2 Out of scope use/environments _List uses/environments covered by other legislation or standards (critical, industrial, medical, etc.). Hoping to have a reusable generic list of these soon._ The types of product with digital elements listed in the section do not fall within the scope of the Cyber Resilience Act [i.1], and are not covered by this standard: 1. Services, except for the remote data processing solutions for a covered product as defined in CRA recitals 11-12; article 3, 2 [i.1]; 2. Products specifically designed or procured for national security and defence purpose as defined in CRA recitals 14 and 26; article 2, 7-8 [i.1]; 3. Products developed for or used exclusively for internal use by public administration as defined in CRA recital 16; article 5, 2 [i.1]; 4. Non-commercial free and open source software as defined in CRA recitals 17-21; article 13, 5 [i.1]; 5. Medical Devices and Software as defined in CRA recital 25; article 2, 2 [a-b] [i.1]; 6. Vehicles, including aviation and marine equipment as defined in CRA recital 27; article 2, 2.c "vehicles"; recital 27; article 2, 3 "aviation"; article 2, 4 "marine equipment" [i.1]; 7. Spare and used parts as defined in CRA recital 29; article 2, 6 [i.1]; 8. Refurbished, repaired, and upgraded products that have not been substantially modifiedas defined in recitals 39 - 42 [i.1]; The following types of products have reduced or varied requirements under the Cyber Resilience Act [i.1] and can only be partially covered by this standard. 1. High Risk AI as defined in CRA recital 51; article 12 [i.1]; 2. Testing and unfinished versions as defined in recital 37; Article 4, 2-3 [i.1]; 3. Products Placed on the Market Prior to December 11, 2027 as defined in CRA article 69 [i.1]. ## 4.3 In-Scope Components ### 4.3.1 In-Scope components standalone browser For the purposes of this standard, a standalone browser consists of the following in-scope security-relevant components: **Core Browser Components**: 1. **Rendering Engine**: HTML parser, CSS engine, layout system, and DOM implementation responsible for processing and displaying web content. 2. **JavaScript Engine**: JavaScript runtime, JIT compiler, garbage collector, and execution context management providing the environment for web application code execution. 3. **Network Stack**: HTTP/HTTPS client implementation, certificate validation, connection management, caching subsystem, and protocol handlers (WebSocket, WebRTC, etc.). 4. **Process Architecture**: Multi-process isolation model including browser process, renderer processes, GPU process, network process, and inter-process communication (IPC) mechanisms. 5. **Storage Subsystem**: Cookie management, localStorage, sessionStorage, IndexedDB, Cache API, origin-partitioned storage, and persistent storage quota management. 6. **Permission System**: Runtime permission prompts, permission state management, permission policy enforcement, and user consent UI for sensitive capabilities (camera, microphone, location, notifications, etc.). 7. **Sandbox Implementation**: Operating system-level process sandboxing, seccomp/AppContainer restrictions, filesystem access controls, and system call filtering. 8. **Security Policy Engines**: Same-Origin Policy enforcement, Cross-Origin Resource Sharing (CORS) validation, Content Security Policy (CSP) parser and enforcer, and Mixed Content blocking. **Extension System Components** (if present): 9. **Extension Runtime**: Extension process management, manifest validation, permission enforcement for extension APIs, and content script injection mechanism. 10. **Extension API Layer**: Browser APIs exposed to extensions (webRequest, tabs, storage, etc.), permission-based access controls, and extension-to-browser IPC. **Update and Maintenance Components**: 11. **Update System**: Automatic update mechanism, update signature verification, update rollback capability, and background update process. 12. **Diagnostic and Telemetry**: Crash reporting, error logging, usage metrics collection (where implemented with user consent), and debug logging infrastructure. **User Interface Components**: 13. **Security Indicators**: HTTPS lock icon, certificate viewer, permission indicators, malicious site warnings, and phishing/malware protection UI. 14. **User Consent UI**: Permission prompts, download confirmations, external protocol handler registration prompts, and security warnings. **Certificate and Trust Components**: 15. **Certificate Management**: Root certificate store, certificate validation logic, OCSP/CRL checking, Certificate Transparency verification, and certificate pinning. 16. **Trust Decisions**: Safe Browsing integration, malicious site detection, phishing protection, download scanning integration, and security warnings. **Out-of-Scope Components**: The following components are explicitly excluded from the security requirements of this standard: - Third-party websites and web applications accessed through the browser - Server-side infrastructure operated by the browser manufacturer (sync services, account systems) except where they deliver security-critical updates - Operating system components and system libraries not distributed as part of the browser package - Third-party extensions and plugins developed outside the browser manufacturer's control - User-generated bookmarks, preferences, and configuration data - Remote attestation or DRM modules that operate under separate security models - Mini-apps executed within super-app platforms (as defined in W3C Mini-App White Paper): Individual mini-apps are separate products with digital elements that inherit their browser security properties from the super-app platform. The security of the super-app platform itself is in scope (UC-B12), but the individual mini-apps hosted within such platforms are out of scope for this standard as their security is derivative of the hosting platform's capabilities. ### 4.3.2 In-Scope components embedded browser For the purposes of this standard, an embedded browser (WebView component or integrated browser engine) consists of the following in-scope security-relevant components in addition to or as variations of the standalone browser components listed in [4.3.1](#431-in-scope-components-standalone-browser): **Embedded Browser Core Components**: 1. **WebView Engine**: The embedded rendering engine (e.g., Android WebView, iOS WKWebView, Electron, CEF, WebView2) including HTML/CSS/JavaScript processing capabilities adapted for host application integration. 2. **Host Application Boundary**: Security boundary enforcement between web content running in the WebView and the native host application code, including context isolation and privilege separation. 3. **JavaScript Bridge**: Native-to-web and web-to-native communication interface allowing controlled interaction between JavaScript running in web content and native application APIs, including message passing and function exposure mechanisms. 4. **Custom URL Scheme Handlers**: Registration and handling of application-specific URL schemes (e.g., app://, custom-protocol://) that trigger native code execution or data retrieval from web content. 5. **WebView Configuration API**: Host application APIs for configuring WebView security properties (JavaScript enablement, file access permissions, content security settings, network access controls). **Embedded-Specific Security Components**: 6. **Content Source Policy**: Allowlisting and trust management for content sources loaded into the WebView (local files, remote URLs, bundled assets), including validation of content origin and integrity. 7. **Storage Isolation**: Separation of WebView storage (cookies, localStorage, IndexedDB) from both the host application's native storage and from other WebView instances or standalone browsers on the same device. 8. **Permission Delegation**: Mechanism for handling web API permission requests (camera, microphone, location, etc.) where the WebView delegates permission decisions to the host application. 9. **Navigation Controls**: Host application controls over WebView navigation including URL allowlisting, navigation interception, redirect validation, and prevention of unintended navigation to external sites. 10. **Script Injection Controls**: Security mechanisms governing the injection of JavaScript into web content by the host application, including timing, isolation, and privilege level of injected scripts. **Host Integration Components**: 11. **Native API Exposure Management**: Controlled exposure of native device capabilities (filesystem, camera, sensors, biometrics, secure storage) to web content through the JavaScript bridge with appropriate authorization and validation. 12. **Data Sharing Controls**: Mechanisms for secure data transfer between web content and native application context, including input validation, output encoding, and data sanitization at the boundary. 13. **Event Handling**: WebView event system for navigation events, load events, error events, and security-relevant events (certificate errors, SSL warnings, mixed content detection) with propagation to host application. 14. **Native UI Integration**: Security considerations for WebView rendering within native UI containers, including overlay protection, screenshot prevention for sensitive content, and secure display of trust indicators. **Update and Maintenance Components** (Embedded-Specific): 15. **WebView Update Mechanism**: System for updating the embedded browser engine independently of the host application (platform-provided WebView updates) or bundled with application updates (Electron, CEF). 16. **Compatibility Validation**: Testing and validation that WebView security properties are maintained across engine updates and remain compatible with host application security requirements. **Additional Embedded Browser Considerations**: 17. **Process Architecture**: Whether the WebView runs in-process with the host application or in a separate process, and the IPC mechanisms used for communication if separated. 18. **TLS/Certificate Management**: Handling of TLS connections including whether the WebView uses system certificate stores or custom certificate validation, and integration with certificate pinning. 19. **Debugging Interfaces**: Security controls around WebView debugging capabilities (browser developer tools, web inspector interfaces) to prevent unauthorized debugging of production applications. **Differences from Standalone Browsers**: Unlike standalone browsers where all web content is considered untrusted, embedded browsers shall: - Establish selective trust relationships with certain content sources (bundled HTML, local files, specific remote origins) while maintaining security boundaries - Mediate permissions through the host application rather than direct user prompts - Share or isolate storage and state management with the host application - Navigate the security boundary between web content privileges and native application privileges - Consider the combined attack surface of both the WebView engine and the host application **Out-of-Scope Components for Embedded Browsers**: The following components are explicitly excluded from the security requirements for embedded browsers: - Host application code outside the WebView integration points - Server-side infrastructure serving content to the WebView (unless operated by the WebView engine provider for security updates) - Third-party web content loaded into the WebView beyond the control of the host application developer - Platform WebView implementations provided by the operating system (Android System WebView, iOS WKWebView) where the host application developer has no control over the engine implementation - Native dependencies and libraries used by the host application but not related to WebView functionality ## 4.4 Use Cases This clause defines representative use cases that illustrate the diverse operational contexts in which browsers and embedded browser components are deployed. These use cases serve multiple purposes within the conformity assessment framework: 1. **Risk Contextualization**: Each use case is associated with a risk level (Standard, High, or Critical) that reflects the potential impact of security failures in that deployment context, derived from the risk assessment methodology detailed in Annex A. 2. **Requirement Selection Guidance**: The use cases inform the selection of appropriate security capability levels from Chapter 5, helping manufacturers determine which condition levels are suitable for their intended deployment contexts. 3. **Proportionality Principle**: In accordance with the CRA's proportionality principle, these use cases demonstrate how security requirements scale with risk, ensuring that security controls are commensurate with the threats and impacts relevant to each deployment scenario. 4. **Shared Understanding**: The use cases provide a common vocabulary for manufacturers, assessors, and regulators to discuss browser security requirements in relation to real-world deployment contexts. **Scope and Applicability**: The use cases defined in this clause encompass both standalone browsers and embedded browser components (WebViews). While the fundamental security capabilities defined in Chapter 5 apply to both categories, the specific threats, deployment environments, and risk profiles differ: - **Standalone browsers** (UC-B1 through UC-B8) operate as independent applications with direct user interaction and comprehensive security controls managed by the browser itself. - **Embedded browsers** are represented in UC-B10 and in aspects of other use cases where browser engines are integrated into host applications, requiring consideration of host-web security boundaries and trust relationships. - **Progressive Web Applications (PWAs)**, while representing an important deployment model, inherit their security properties from the underlying browser (standalone or embedded) in which they execute, and thus are covered by the applicable use case for that browser deployment. **Use Case Structure**: Each use case provides: - **Description**: The primary purpose and scope of the deployment - **Typical workflows**: Common user interactions and usage patterns - **Typical environments**: Physical and network contexts in which the browser operates - **Security considerations**: Key threats, vulnerabilities, and security controls relevant to the use case - **Risk level**: Overall risk classification (Standard, High, or Critical) - **Rationale**: Justification for the assigned risk level based on threat landscape and potential impact **Risk Levels Explained**: - **Standard Risk**: General-purpose deployments where security failures primarily affect individual users, with limited financial or societal impact. Standard security capabilities are appropriate. - **High Risk**: Deployments involving sensitive personal data, financial transactions, health information, organizational data, or authenticated access to critical services. Enhanced security capabilities and stricter condition levels are recommended. - **Critical Risk**: Deployments where security failures could result in significant physical harm, disruption of essential services, compromise of critical infrastructure, or large-scale societal impact. Maximum security capabilities with the strictest condition levels are required. ## 4.4.1 Application to Conformity Assessment Manufacturers shall use these use cases as follows: 1. **Identify Applicable Use Cases**: Determine which use case(s) best represent the intended purpose and deployment context of the browser or embedded browser component. 2. **Assess Risk Level**: Evaluate whether the assigned risk level (Standard, High, Critical) aligns with the manufacturer's risk assessment for their specific deployment. Where multiple use cases apply, the highest applicable risk level should be considered. 3. **Select Security Capabilities**: Use Annex B to identify the recommended security capability condition levels for the applicable use case(s). These recommendations represent typical configurations; manufacturers may select stricter conditions based on their risk assessment or specific deployment requirements. 4. **Document Rationale**: In conformity assessment documentation, manufacturers should clearly identify which use case(s) apply to their product and provide justification for any deviations from recommended capability levels. 5. **Consider Use Case Combinations**: Many deployments will span multiple use cases (e.g., a browser used for both general web browsing and enterprise applications). In such cases, manufacturers should satisfy requirements for all applicable use cases or implement use-case-specific profiles. **Note**: These use cases are representative and not exhaustive. Manufacturers deploying browsers in contexts not explicitly covered by these use cases should conduct a detailed risk assessment per Annex A and select security capability levels appropriate to the identified risks. ## 4.4.2 Use Cases for Browsers UC-B1: General Purpose Web Browsing - Description: Browsing of public websites for news, social media, entertainment, shopping, streaming, and general information. Excludes authenticated access to sensitive personal or organizational systems. - Typical workflows: High tab count with frequent context switching; passive consumption (reading/watching); form fills; long idle sessions. - Typical environments: Personal devices used in homes, cafes, transit, or public spaces. No physical security controls; high exposure to shoulder surfing, untrusted networks, or device theft. - Security considerations: Tracking protection; HTTPS-only mode; blocking of malicious sites; access to camera/microphone/location; exposure to browser extensions; integrated password management; profile separation. - Risk level: Standard - Rationale: Primary threats originate from web content (malware, trackers, phishing) rather than targeted compromise. UC-B2: Development and Testing Environments - Description: Browser usage by developers, QA, and testers for building, debugging, and validating web applications, including compatibility testing with pre-release (canary/nightly/beta) browser builds. - Typical workflows: Frequent navigation to localhost/internal IPs; manual and automated interaction with untrusted or malformed code; usage of developer tools; HAR/network capture; testing auth flows. - Typical environments: Developer workstations in office or home offices; may be BYOD or corporate-managed; moderate physical security. - Security considerations: Isolation using ephemeral profiles or web browser private mode, allowlists for extensions, supply chain auditing, curation and anonymization of test data. - Risk level: High - Rationale: Exposure to untrusted code, experimental browser features, and misconfiguration increases likelihood of exploit execution or leakage of credentials. UC-B3: Kiosks and Shared Terminals - Description: Multi-user public or semi-public devices for check-in, customer service, library access, clinic intake, or retail assistance. - Typical workflows: Short, single-purpose sessions (check-in, lookup, form submission); no authentication or credential entry. - Typical environments: Fixed-location terminals in lobbies, libraries, clinics, classrooms or stores. - Security considerations: Strict domain allowlist; no access to camera/mic/location/notifications; block credential saving and autofill; remote wipe and health monitoring; encryption of cached assets. - Risk level: High - Rationale: High turnover of untrusted users combined with potential for physical tampering. UC-B4: Financial Services Access - Description: Access to online banking, brokerage, payments, crypto exchanges, wallets, and insurance portals involving monetary transactions or sensitive financial data. - Typical workflows: Daily logins; balance checks; initiating transfers/payments; uploading documents. - Typical environments: Primarily personal devices in uncontrolled locations; corporate devices in secure facilities - Security considerations: HTTPS-only mode; credential monitoring for breaches. - Risk level: High - Rationale: Exposure to financial fraud and account takeover; session hijacking; MITM; UC-B5: Healthcare and Medical Systems - Description: Browser access to EHRs, telemedicine platforms, patient portals, prescription systems or health insurance. - Typical workflows: Patient record access/modification; remote consultations; e-prescribing; uploading/downloading diagnostic files. - Typical environments: #TODO: Similar to home + hospital workstations? - Security considerations: Session re-auth for sensitive actions, auto-timeout after inactivity, data encryption at rest/in transit. - Risk level: High - Rationale: Regulatory penalties, reputational damage, and potential patient safety risks. UC-B6: E-Government Services Access - Description: Access to citizen-facing or administrative government portals for taxes, benefits, licenses, identity verification, legal filings, or voting systems. - Typical workflows: Infrequent but critical sessions, form filling, document uploads, digital signature application. - Typical environments: #TODO: Personal devices or public terminals. - Security considerations: Strong authentication; digital signature validation; certificate management. - Risk level: High - Rationale: Compromise can lead to identity theft, benefit fraud, election interference, or erosion of civic trust. UC-B7: Enterprise Applications - Description: Internal browser-based tools for CRM, ERP, HRMS, document collaboration, project management and BI, - Typical workflows: Daily CRUD operations of records, document management, - Typical environments: Corporate laptops, desktops, or BYOD devices used remotely or on-premise. - Security considerations: SSO, DLP (control copy/paste/print/download actions), allowlist for extensions, integration with SIEM, containerization of BYOD. - Risk level: High - Rationale: Exposure of intellectual property, customer data, or internal operations to exfiltration or insider threat. UC-B8: Critical Infrastructure - Description: Web interfaces for SCADA, energy grid, water treatment, transportation control, or emergency dispatch. - Typical workflows: Administered access, scoped to individual user accounts. - Typical environments: Secure control rooms, data centers, or field stations - physically access-controlled, often air-gapped or operating within segmented network. - Security considerations: Certificate management; zero trust architecture; mTLS; RBAC; supply chain controls; immutable logging. - Risk level: Critical - Rationale: Successful attack could disrupt essential services, cause physical damage, or endanger human life. UC-B9: Security Research #TODO: Perhaps this one is too much - Description: Intentional browsing to analyze phishing pages, malware or malicious extensions. - Typical workflows: Automated or manual navigation to malicious URLs; downloading/executing payloads in sandbox; DOM inspection; screenshot/HAR capture; behavioral logging. - Typical environments: Dedicated lab machines or air-gapped workstations, often behind shielded network zones. - Security considerations: Isolation using disposable VMs, capture of all artifacts and network traffic; - Risk level: Critical - Rationale: Deliberate exposure to live threats; failure can lead to host compromise, lateral movement, or data exfiltration. UC-B10: Adapted Browser with Modified Features - Description: A manufacturer creates a product based on an existing open-source browser (e.g., Chromium, Firefox) by adding custom features, modifying default configurations, integrating proprietary services, or tailoring the browser for specific market segments, enterprise deployments, or regional requirements. - Typical workflows: Standard web browsing workflows similar to general-purpose browsers, but with manufacturer-specific features such as custom home pages, integrated search providers, proprietary sync services, enhanced privacy controls, vertical-specific toolbars, or pre-configured extension bundles. - Typical environments: All environments applicable to the underlying browser engine (personal devices, corporate workstations, mobile devices, kiosks), but with manufacturer-controlled default configurations and update channels. - Security considerations: Inheritance of upstream browser vulnerabilities; security review of added features and modifications; validation that customizations do not weaken existing security controls; secure management of manufacturer-operated services (sync, accounts, analytics); timely integration of upstream security patches; transparency regarding data collection by added features; supply chain security for bundled extensions or services; verification that modifications maintain sandboxing and isolation properties; compliance with baseline browser security requirements while accounting for manufacturer additions. - Risk level: Standard to High (depends on extent of modifications and deployment context) - Rationale: The security posture depends on both the upstream browser's security and the manufacturer's implementation quality. Added features introduce additional attack surface and potential vulnerabilities. Delayed or incomplete integration of upstream patches can extend exposure to known vulnerabilities. Manufacturer-operated services create additional trust dependencies and data processing considerations. However, when properly implemented, adapted browsers can maintain equivalent security to their upstream base while providing differentiated user value. The risk level increases when modifications are extensive, when manufacturer services handle sensitive data, or when the browser is deployed in high-risk contexts (UC-B4 through UC-B8). UC-B11: Desktop Applications with Embedded Browser Navigation - Description: Software applications built with frameworks like Electron, Tauri, or similar technologies that provide browser-like navigation capabilities, allowing users to navigate to user-defined URLs while maintaining an application-like experience. These applications typically combine web technologies with native capabilities and may provide custom UI chrome, integrated features, and controlled navigation within a defined scope. - Typical workflows: User-initiated navigation to URLs (bookmarked, typed, or linked); form filling and authentication; downloading files; viewing multimedia content; interaction with web APIs (camera, location, notifications) as permitted by the application; switching between multiple views or tabs managed by the application. - Typical environments: Desktop workstations (Windows, macOS, Linux) in home offices, corporate environments, or educational settings; installed as native applications with filesystem access; may integrate with system services and native APIs. - Security considerations: Host-web boundary enforcement; JavaScript bridge security; custom protocol handler validation; URL allowlisting/blocklisting; content security policy enforcement; prevention of navigation to untrusted domains; isolation between web content and native functionality; secure handling of file:// URLs and local resources; protection against XSS and injection attacks targeting the native bridge; update mechanism security for both native and web components. - Risk level: High - Rationale: These applications combine the attack surface of both web browsers and native applications. Navigation to user-defined URLs introduces exposure to arbitrary web content while the native integration creates additional vectors for privilege escalation. The JavaScript bridge between web and native contexts is particularly sensitive as it can expose native APIs to potentially malicious web content. Vulnerabilities can lead to local file access, credential theft, or system compromise. The risk is elevated compared to standard web browsing due to the trusted native context and potential for broader system access. UC-B12: Super-App Platforms - Description: A super-app is a software platform that hosts and supports other applications (mini-apps), enabling their execution by using the platform's resources. Super-apps function as the hosting environment where multiple mini-apps execute, providing unified discovery (app stores, QR codes, search), shared authentication, resource management, and content curation. Examples include platforms like Alipay, Baidu, WeChat, and similar multi-service aggregation platforms. - Typical workflows: Mini-app discovery and launch via in-app stores, QR codes, or search; shared authentication across hosted mini-apps; payment processing and financial transactions; access to platform-provided APIs (camera, location, contacts, payment systems); switching between multiple active mini-apps; integration with platform-level services (messaging, social features, notifications). - Typical environments: Mobile devices (iOS, Android) and desktop applications; multi-user context with shared platform identity; high-frequency daily usage; integration with financial services, social networks, and e-commerce systems; operation in diverse network conditions including public WiFi and cellular networks. - Security considerations: Mini-app isolation and sandboxing; validation and review of mini-apps before hosting; platform API access control and permissions; shared authentication security across mini-apps; payment and financial transaction security; data sharing boundaries between mini-apps and platform; prevention of malicious mini-apps compromising the platform or other mini-apps; supply chain security for third-party mini-apps; session management across multiple mini-apps; protection of platform-level credentials and tokens; monitoring and logging of mini-app behavior; enforcement of content security policies per mini-app; secure communication channels between mini-apps and platform services. - Risk level: High - Rationale: Super-apps aggregate significant user trust and typically handle sensitive operations including financial transactions, personal data access, and authentication credentials used across multiple services. The multi-tenant nature creates complex isolation requirements where compromise of one mini-app should not affect others or the platform itself. The platform's API surface exposed to mini-apps creates potential for privilege escalation or unauthorized data access. Financial integration, combined with the broad scope of functionality and third-party mini-app ecosystem, creates elevated risk for fraud, data breach, and platform-wide compromise. The aggregation of multiple services increases the potential impact of security failures. ## 4.5 Product overview and architecture ## 4.5.1 Product Definition A standalone browser is a software application that enables users to access, retrieve, and interact with content on the World Wide Web and other network resources. Unlike embedded browsers or WebView components integrated into other applications, standalone browsers operate as independent applications with direct user interfaces, comprehensive feature sets, and autonomous update mechanisms. ## 4.5.2 Architectural Overview ### 4.5.2.1 Core Architecture Components The browser architecture consists of several interconnected subsystems: **Rendering Engine**: Processes HTML, CSS, and JavaScript to display web content. This includes the DOM parser, CSS engine, and layout system that transforms web resources into visual representations. **JavaScript Engine**: Executes JavaScript code in isolated contexts, providing the runtime environment for dynamic web applications while maintaining security boundaries between different execution contexts. **Network Stack**: Manages all network communications including HTTP/HTTPS requests, WebSocket connections, and other protocols. Implements connection pooling, caching, and security features such as certificate validation. **Process Architecture**: Modern browsers employ multi-process architectures where the main browser process is separated from renderer processes, plugin processes, and GPU processes. This isolation prevents compromise of one process from affecting others. **Storage Subsystem**: Manages various forms of local data storage including cookies, localStorage, IndexedDB, and cache storage, each with distinct security properties and access controls. ### 4.5.2.2 Security Architecture **Sandbox Model**: Web content executes within restricted sandboxes that limit access to system resources. The sandbox is enforced at multiple levels - process isolation at the OS level, and API restrictions at the browser level. **Permission System**: Browsers mediate access to sensitive capabilities (camera, microphone, location, notifications) through a permission system that requires explicit user consent and provides ongoing usage indicators. **Content Security Boundaries**: The Same-Origin Policy (SOP) forms the fundamental security boundary, ensuring that content from one origin cannot access resources from another origin without explicit permission. **Certificate and Trust Management**: Browsers maintain root certificate stores and implement certificate validation, including mechanisms for certificate pinning, HSTS (HTTP Strict Transport Security), and Certificate Transparency. ### 4.5.2.3 Extension Architecture Browser extensions operate in a unique position within the security model: - **Privileged Execution Context**: Extensions run with elevated privileges compared to web content, able to intercept and modify network requests, access cross-origin resources, and interact with browser APIs. - **Manifest-Based Permissions**: Extensions declare required permissions in manifests, which are presented to users during installation. However, the granularity and understandability of these permissions remain challenges. - **Content Script Injection**: Extensions can inject scripts into web pages, creating a three-way trust relationship between the browser, the extension, and the web content. ## 4.5.3 Trust Boundaries and Threat Model ### 4.5.3.1 Trust Zones 1. **Browser Core** (Highest Trust): The browser executable and core libraries, typically signed and verified by the operating system. 2. **Browser Extensions** (Elevated Trust): Third-party code with significant privileges, operating between web content and browser core. 3. **Web Applications** (Limited Trust): JavaScript applications running within the browser sandbox with restricted capabilities. 4. **Web Content** (Untrusted): General web content including advertisements, user-generated content, and third-party resources. 5. **Network** (Untrusted): All network communications are considered potentially hostile, requiring encryption and validation. ### 4.5.3.2 Attack Surface The browser presents multiple attack surfaces: - **Network Interface**: Exposed to malicious servers, man-in-the-middle attacks, and protocol-level exploits - **Rendering Engine**: Subject to parsing vulnerabilities, memory corruption, and logic bugs - **JavaScript Engine**: Target for JIT compiler bugs, type confusion, and sandbox escapes - **Extension APIs**: Abused by malicious extensions or compromised legitimate extensions - **User Interface**: Social engineering through spoofing, phishing, and permission fatigue - **Local Storage**: Cross-site tracking, data exfiltration, and persistence mechanisms ## 4.5.4 Deployment Contexts ### 4.5.4.1 Consumer Environment Individual users installing browsers on personal devices, typically with: - Direct internet connectivity - Mixed personal and professional usage - User-managed security decisions - Varied technical expertise levels ### 4.5.4.2 Enterprise Environment Organizational deployments requiring: - Centralized policy management - Compliance with regulatory requirements - Integration with security infrastructure (proxies, SIEM systems) - Controlled update cycles - Restriction of certain features or extensions ### 4.5.4.3 Specialized Environments - **Kiosk Mode**: Public-facing browsers with locked-down configurations - **Development Mode**: Browsers with relaxed security for testing - **Privacy-Focused**: Configurations emphasizing anonymity and tracking prevention - **Isolated Browsing**: Air-gapped or heavily restricted network access ## 4.5.5 Security-Relevant Characteristics ### 4.5.5.1 Dynamic Threat Landscape Browsers face constantly evolving threats as new web standards introduce new capabilities, zero-day vulnerabilities are discovered, and attack techniques advance. The browser serves as the primary interface between users and potentially hostile internet content. ### 4.5.5.2 Compatibility Requirements Browsers shall maintain backward compatibility with legacy web content while implementing new security features, creating tension between security and functionality. This includes supporting older TLS versions, maintaining compatibility with enterprise applications, and handling non-standard web content. Should the usage of legacy web content impact the security of the browser, then the content shall be ignored. ### 4.5.5.3 Performance Constraints Security measures shall be balanced against performance requirements. Users expect instantaneous page loads and smooth interactions, limiting the computational overhead available for security checks. This affects decisions around sandboxing granularity, encryption methods, and validation procedures. ### 4.5.5.4 User Agency and Autonomy Unlike many security products, browsers shall respect user choice while protecting against threats. Users may choose to: - Visit dangerous websites despite warnings - Install risky extensions - Disable security features for compatibility - Share sensitive information voluntarily This requirement for user agency fundamentally shapes the browser security model, requiring informed consent mechanisms rather than purely restrictive controls. ## 4.6 Essential functions The essential functions of a browser, as defined for the purposes of this standard, are those capabilities that shall remain operational to fulfill the browser's primary purpose of enabling secure access to web content and services. These functions form the baseline against which security requirements are assessed. This section addresses both **standalone browsers** (independent applications with direct user interfaces) and **embedded browsers** (browser engines integrated into host applications, commonly referred to as WebViews, browser components, or embedded web rendering engines). ### 4.6.1 Core Essential Functions **Content Retrieval and Rendering**: The browser shall retrieve web resources via network protocols (primarily HTTP/HTTPS) and render them into a visual and interactive presentation for the user. This includes: - HTML parsing and DOM construction - CSS styling and layout computation - JavaScript and WebAssembly execution within secure sandboxes - Rendering of images, media, and other embedded content *For embedded browsers*: The host application may provide additional constraints on content sources, implement content filtering, or restrict certain rendering features. However, the fundamental capability to securely parse and render web content remains essential. See reference: [WebView Security Best Practices](https://owasp.org/www-community/controls/Securing_WebView). **Navigation and Session Management**: The browser shall enable navigation between web resources and maintain session state including navigation history and form data. *For standalone browsers*: This includes managing multiple concurrent browsing contexts (tabs, windows) with independent session states. *For embedded browsers*: Navigation may be constrained by the host application to approved domains or URL patterns. The host application is responsible for implementing navigation controls and may delegate or restrict back/forward navigation. Session management may be simplified or controlled by the host application. See reference: [Android WebView Security](https://developer.android.com/develop/ui/views/layout/webapps/webview#safe-browsing). **Cryptographic Communication**: The browser shall establish encrypted connections to web servers using TLS/SSL protocols (TLS 1.2 minimum, TLS 1.3 recommended), validate server certificates, and provide indicators of connection security status. *For standalone browsers*: Visual security indicators (padlock icons, address bar coloring) shall be prominently displayed in the user interface. *For embedded browsers*: Security indicators may be delegated to the host application's UI. The host application shall be responsible for surfacing certificate validation status to end users when handling sensitive data. Certificate pinning may be implemented at the host application level. See references: [Certificate Pinning](https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning), [TLS Best Practices](https://wiki.mozilla.org/Security/Server_Side_TLS). **Data Storage**: The browser shall provide controlled mechanisms for web applications to store data locally, including cookies, localStorage, IndexedDB, and cache storage, subject to security policies and user controls. *For embedded browsers*: Storage isolation from the host application is critical. The embedded browser shall maintain separate storage contexts that are not directly accessible to host application code without explicit bridging. Storage may be partitioned per embedded browser instance to prevent data leakage between different uses within the same application. See reference: [WebView Data Isolation](https://source.android.com/docs/security/features/webview). **User Input and Interaction**: The browser shall accept and process user inputs (keyboard, mouse, touch) and deliver them securely to web content, while protecting against input injection attacks and unauthorized access to input devices. *For embedded browsers*: Input handling shall prevent the host application from injecting synthetic events that could bypass user consent (e.g., programmatically triggering clicks on permission prompts). The boundary between host-provided input and user-generated input shall be clearly maintained. See reference: [Input Validation in WebViews](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html). ### 4.6.2 Security-Related Essential Functions **Isolation and Sandboxing**: The browser shall maintain security boundaries between different origins, processes, and execution contexts to prevent unauthorized access and limit the impact of compromised content. *For embedded browsers*: A critical additional boundary exists between the embedded browser content and the host application. This boundary shall prevent: - Web content from accessing host application memory, files, or system resources without explicit bridging - Web content from executing arbitrary code in the host application context - Host application code from arbitrarily accessing or manipulating web content internal state The host application shall implement a secure bridge or message-passing interface for controlled communication between web content and native code. See references: [WebView Isolation](https://source.chromium.org/chromium/chromium/src/+/main:docs/webview_isolation.md), [iOS WKWebView Security](https://developer.apple.com/documentation/webkit/wkwebview). **Permission Management**: The browser shall mediate access to sensitive capabilities (camera, microphone, location, notifications, clipboard) through a permission system that requires user consent and provides ongoing visibility. *For embedded browsers*: Permission requests may be delegated to the host application, which is then responsible for obtaining appropriate user consent and respecting platform-level permission grants. The host application shall not automatically grant permissions to embedded web content without user awareness. Permissions granted to the host application shall not automatically extend to all web content loaded in embedded browsers. See reference: [WebView Permissions Model](https://developer.android.com/reference/android/webkit/WebChromeClient#onPermissionRequest(android.webkit.PermissionRequest)). **Update Mechanism**: The browser shall maintain the capability to receive, verify, and apply security updates to address vulnerabilities and maintain security effectiveness over the product lifecycle. *For standalone browsers*: Direct update mechanisms with user notification and control. *For embedded browsers*: Updates are typically delivered as part of operating system updates (for system WebViews) or application updates (for bundled browser engines). The host application developer is responsible for: - Using up-to-date versions of embedded browser components - Monitoring security advisories for the embedded browser engine - Deploying application updates that include patched browser components - Not pinning to outdated versions of browser engines with known vulnerabilities See references: [Android System WebView Updates](https://developer.android.com/about/versions/nougat/android-7.0#webview), [Electron Security Updates](https://www.electronjs.org/docs/latest/tutorial/security). **Certificate Validation**: The browser shall validate server certificates against trusted root certificate authorities and enforce certificate transparency requirements to detect mis-issued certificates. *For embedded browsers*: Certificate validation shall use the platform's trusted certificate store unless explicit certificate pinning is implemented by the host application. The host application shall not disable certificate validation except in clearly documented development/testing scenarios that are disabled in production builds. See reference: [Certificate Validation Best Practices](https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html). ### 4.6.3 Embedded Browser-Specific Security Functions **JavaScript Bridge Security**: For embedded browsers that expose native functionality to web content through JavaScript bridges (e.g., `addJavascriptInterface` in Android WebView, `WKScriptMessageHandler` in iOS), the following are essential: - **Input Validation**: All data passed from web content to native code shall be validated and sanitized to prevent injection attacks - **Output Encoding**: Data passed from native code to web content shall be properly encoded to prevent XSS - **Minimal Exposed Surface**: Only necessary functionality shall be exposed; avoid exposing powerful or sensitive APIs - **Authentication**: Bridge calls that perform sensitive operations shall verify origin and intent - **Intent Validation**: For URL schemes and intent handlers, validate and sanitize all parameters See references: [Android WebView JavaScript Interface Security](https://developer.android.com/develop/ui/views/layout/webapps/webview#addjavascriptinterface), [iOS JavaScript Bridge Security](https://developer.apple.com/documentation/webkit/wkscriptmessagehandler). **Content Source Validation**: Embedded browsers shall validate and restrict content sources: - **Allowlist Enforcement**: Maintain allowlists of approved domains/URLs when loading sensitive functionality - **Local Content Handling**: When loading local HTML/JS resources, ensure they cannot be overwritten or manipulated by untrusted code - **Deep Link Validation**: Validate and sanitize deep links that cause content to load in embedded browsers See reference: [Mobile Application Security Testing Guide - WebViews](https://mas.owasp.org/MASTG/tests/). **Host Application Data Exposure Prevention**: The embedded browser shall prevent web content from accessing host application data through: - **File System Isolation**: Preventing JavaScript file:// access to arbitrary application files - **Database Isolation**: Preventing web content from accessing native application databases - **Shared Preferences/User Defaults Isolation**: Protecting native application settings from web access - **Intent/URL Scheme Filtering**: Validating and restricting URL scheme invocations that could manipulate the host application See reference: [OWASP Mobile Security Testing Guide](https://owasp.org/www-project-mobile-security-testing-guide/). ### 4.6.4 Functions NOT Considered Essential The following functions, while commonly present in browsers, are not considered essential for the core purpose and may be disabled or restricted in high-security configurations without fundamentally impairing browser functionality: **For standalone browsers**: - Extension/add-on support - Synchronization of browsing data across devices - Built-in password management - Autofill of forms - Access to hardware devices beyond display and basic input - Developer tools and debugging interfaces (except in designated development builds) - Support for legacy protocols or deprecated web standards - Integration with external applications or services beyond standard web APIs **For embedded browsers** (in addition to the above): - Multiple tab/window management (may be simplified to single content view) - Browser history UI (may be delegated to host application) - Download management UI (host application typically handles downloads) - Print functionality (host application may provide) - Find-in-page functionality (host application may provide) - Reader mode or content simplification features ## 4.7 Operational Environment The operational environment encompasses the technical, physical, and organizational contexts in which browsers are deployed and operated. Understanding these environments is essential for appropriate security configuration and risk assessment. ### 4.7.1 Technical Environment **Platform Diversity**: Browsers operate across heterogeneous platforms including: - Desktop operating systems (Windows, macOS, Linux) - Mobile operating systems (iOS, Android) - Embedded systems and IoT devices - Virtualized and containerized environments Each platform provides different security primitives (process isolation, memory protection, file system controls) that browsers leverage for security enforcement. **Network Conditions**: Browsers shall operate across varying network environments: - Trusted corporate networks with security controls and monitoring - Home networks with varying security configurations - Public Wi-Fi networks with potential adversarial presence - Mobile networks with carrier-level controls - Air-gapped or isolated networks in high-security environments Network conditions directly impact threat exposure, with untrusted networks requiring enhanced protection against network-level attacks (MITM, eavesdropping, traffic manipulation). **Hardware Capabilities**: The operational environment includes diverse hardware with varying security features: - Devices with Trusted Platform Modules (TPM) or secure enclaves - Systems with hardware-enforced memory protection (DEP, ASLR) - Devices with biometric authentication capabilities - Systems with varying performance characteristics affecting security feature feasibility ### 4.7.2 Physical Environment **Physical Security Controls**: Browser deployment contexts vary significantly in physical security: - **Controlled Environments**: Corporate offices, data centers, and secure facilities with physical access controls, surveillance, and authorized personnel only - **Semi-Controlled Environments**: Home offices, shared workspaces with moderate physical security - **Uncontrolled Environments**: Public spaces, cafes, transit where device theft, shoulder surfing, and physical tampering are realistic threats - **Hostile Environments**: Border crossings, adversarial jurisdictions where targeted physical attacks or device seizure may occur **Device Ownership and Control**: - **Corporate-Owned Devices**: Centrally managed with enforced policies, monitoring, and remote management capabilities - **Bring Your Own Device (BYOD)**: Personal devices used for work purposes with limited organizational control - **Shared Devices**: Multi-user systems (kiosks, family computers) where isolation between users is required - **Personal Devices**: Individually owned and managed with user-determined security configurations ### 4.7.3 Organizational Environment **Governance and Compliance**: Organizations deploying browsers may be subject to: - Regulatory requirements (GDPR, EU Data Act, sector-specific regulations) - Industry standards and certification requirements - Internal security policies and acceptable use policies - Contractual obligations to customers or partners **Security Maturity**: Organizations vary in security capabilities: - **Advanced**: Dedicated security teams, SIEM integration, threat intelligence, security orchestration - **Intermediate**: Basic security tools, patch management, logging and monitoring - **Basic**: Default configurations, reactive security posture, limited security resources **User Training and Awareness**: The effectiveness of browser security controls depends on user security awareness: - Ability to recognize phishing attempts and malicious websites - Understanding of permission prompts and security indicators - Adherence to security policies and best practices - Reporting of security incidents ### 4.7.4 Threat Environment The operational environment includes varying threat actor capabilities and motivations: **Opportunistic Threats**: Automated attacks, commodity malware, and broad-spectrum phishing affecting general internet users **Targeted Threats**: Attacks directed at specific organizations, industries, or individuals including: - Corporate espionage and intellectual property theft - Financial fraud and account takeover - Nation-state surveillance and intelligence gathering - Ransomware and extortion campaigns **Insider Threats**: Risks from authorized users with legitimate access who may act maliciously or negligently **Supply Chain Threats**: Compromise of browser components, extensions, or integrated services during development, distribution, or update processes ### 4.7.5 Lifecycle Environment **Development and Testing**: Browsers used in development environments encounter untrusted code, pre-release features, and non-standard configurations that increase risk exposure. **Production Deployment**: Operational browsers serving end-users with expected availability, performance, and security requirements. **Decommissioning**: End-of-life browsers that may still contain sensitive data requiring secure disposal or migration processes. **Update and Maintenance**: Browsers require ongoing updates that shall be delivered securely, tested for stability, and deployed without service interruption. ## 4.8 Users Browser users encompass a diverse population with varying technical expertise, security awareness, and usage patterns. Understanding user characteristics is essential for designing effective security controls that users can understand and properly utilize. ### 4.8.1 User Categories **General Consumers**: The largest user population, including: - Minimal to moderate technical expertise - Primary activities: web browsing, social media, shopping, entertainment, personal email - Security awareness varies widely; may not recognize threats - Expect seamless user experience; security friction reduces adoption - Limited ability to troubleshoot security issues independently **Professional Users**: Individuals using browsers for work-related activities: - Moderate technical expertise with domain-specific knowledge - Activities: SaaS applications, web-based productivity tools, professional research - Subject to organizational security policies - Generally higher security awareness due to training - Balance productivity needs with security requirements **Developers and Technical Users**: Advanced users with deep technical knowledge: - High technical expertise; understand browser internals and web standards - Activities: web development, testing, debugging, performance analysis - Require access to developer tools and advanced features - Higher tolerance for security friction; may disable controls intentionally - Capable of understanding and responding to complex security warnings **Enterprise Administrators**: IT personnel managing browser deployments: - High technical expertise in systems administration - Responsible for configuring, deploying, and managing browsers at scale - Implement group policies and security configurations - Monitor browser usage and security events - Balance security requirements with user productivity **Children and Protected Users**: Vulnerable populations requiring enhanced protection: - Limited technical expertise and security awareness - Susceptible to social engineering and inappropriate content - Require parental controls and content filtering - May not understand consequences of security decisions - Need simplified security interfaces with reduced decision-making burden ### 4.8.2 User Behavior Patterns **Security Decision-Making**: Users exhibit common patterns in security decisions: - **Alert Fatigue**: Repeated security prompts lead to automatic dismissal without reading - **Optimism Bias**: Underestimation of personal risk ("it won't happen to me") - **Immediate Gratification**: Preference for immediate access over security delay - **Trust Misplacement**: Difficulty distinguishing legitimate from malicious content - **Habituation**: Security behaviors become routine without conscious evaluation **Permission Granting**: When presented with permission requests, users typically: - Grant permissions to accomplish immediate tasks without evaluating necessity - Lack understanding of implications of granted permissions - Rarely review or revoke previously granted permissions - May not notice when permissions are being actively used **Update Behavior**: User approaches to browser updates vary: - Some users apply updates immediately when prompted - Others defer updates indefinitely to avoid interruption - Many users unaware of update status or importance - Corporate environments often enforce centralized update management ### 4.8.3 User Needs and Expectations **Usability**: Users expect browsers to be: - Intuitive and easy to use without extensive training - Responsive and fast, with minimal performance impact from security features - Compatible with their required websites and applications - Consistent across sessions and devices **Privacy**: Users increasingly expect: - Control over personal data collection and usage - Protection from tracking by advertisers and third parties - Transparency about data practices - Compliance with privacy regulations **Security**: While security awareness varies, users generally expect: - Protection from malware and phishing without constant manual intervention - Clear warnings when accessing dangerous sites - Secure handling of passwords and payment information - Prevention of unauthorized access to sensitive data **Transparency**: Users need: - Understandable explanations of security features and warnings - Visibility into what data is being collected and shared - Clear indication of security status (encrypted connections, permissions in use) - Accessible security settings and controls ### 4.8.4 User Assistance and Responsibilities **User Responsibilities**: Effective browser security requires users to: - Keep browsers updated to address vulnerabilities - Exercise caution with extension installation - Recognize and avoid phishing attempts - Use strong, unique passwords for web accounts - Respond appropriately to security warnings - Report security incidents when encountered **Browser Responsibilities to Users**: Browsers shall support users by: - Providing clear, actionable security warnings - Using understandable language avoiding technical jargon - Offering contextual help and explanations - Defaulting to secure configurations - Making security controls discoverable and accessible - Minimizing security decision burden through sound defaults ### 4.8.5 Accessibility Considerations Security features shall be accessible to users with disabilities: - **Visual Impairments**: Security indicators shall be perceivable by screen readers; warnings shall not rely solely on color - **Cognitive Disabilities**: Security messages shall be simple and clear; complex security decisions should be minimized - **Motor Impairments**: Security controls shall be operable with alternative input methods - **Hearing Impairments**: Audio-based security notifications shall have visual alternatives Accessibility requirements shall not compromise security effectiveness, but security features should not exclude users with disabilities from safe browser usage. # 5 Browser-Specific Risk Factors ### 5.1 Isolation Mechanisms #### 5.1.1 Domain and Origin Isolation **[DOM]** The manufacturer shall ensure that execution contexts belonging to different origins are securely isolated to prevent unauthorized data access, code execution, or state manipulation across boundaries. Isolation shall include process separation, independent storage and cache spaces, and validation of all cross-origin communication through standardized, browser-mediated mechanisms such as Cross-Origin Resource Sharing (CORS), which allows controlled sharing of resources between origins through validated HTTP headers, and postMessage, which provides a secure message-passing interface between isolated contexts (e.g. frames or windows). Any relaxation of isolation shall be explicitly authorized, documented, and monitored to prevent data leakage or privilege escalation. **Capability**: Browser enforces isolation between domains and origins (defined by scheme, host, and port) to protect integrity and confidentiality of data and execution. **Conditions**: * DOM-0: Full isolation: Each origin is strictly separated. No mechanism exists for cross-origin access or relaxation. * DOM-1: Controlled isolation: Isolation is enforced by default but may be selectively relaxed through standardized, browser-mediated mechanisms (e.g. CORS or postMessage) with explicit validation. * DOM-2: Configurable isolation: Isolation is enforced by default, but users or administrators can define exceptions via explicit configuration or policy. * DOM-3: Integrated isolation: Isolation remains in place, but third-party integrations, compatibility modes, or embedded components may introduce controlled exceptions under defined policies. **Threats**: - Cross-site scripting (XSS) attacks - Cross-site request forgery (CSRF) - Data exfiltration between origins - Session hijacking - Clickjacking **Risk**: HIGH - Failure of isolation mechanisms enables immediate compromise of user data across multiple web applications **Requirements**: #### DOM-0 Requirements (Full isolation) - **DOM-0-REQ-1**: Browser shall implement process-per-site isolation for all origins → Assessment: DOM-REQ-1 - **DOM-0-REQ-2**: Browser shall enforce Cross-Origin Read Blocking (CORB) for all cross-origin resource loads → Assessment: DOM-REQ-2 - **DOM-0-REQ-3**: Browser shall prevent all cross-origin DOM access without exception → Assessment: DOM-REQ-3 - **DOM-0-REQ-4**: Browser shall isolate localStorage and IndexedDB per origin with no sharing mechanism → Assessment: DOM-REQ-6 - **DOM-0-REQ-5**: Browser shall treat all sandboxed and data: origins as opaque with no relaxation → Assessment: DOM-REQ-8 - **DOM-0-REQ-6**: Browser shall enforce document.domain restrictions without any override mechanism → Assessment: DOM-REQ-12 #### DOM-1 Requirements (Controlled isolation) - **DOM-1-REQ-1**: Browser shall implement process-per-site isolation → Assessment: DOM-REQ-1 - **DOM-1-REQ-2**: Browser shall enforce CORB with exceptions only for properly configured CORS headers → Assessment: DOM-REQ-2 - **DOM-1-REQ-3**: Browser shall prevent cross-origin DOM access except via postMessage → Assessment: DOM-REQ-3 - **DOM-1-REQ-4**: Browser shall enforce CORS preflight for all non-simple cross-origin requests → Assessment: DOM-REQ-4 - **DOM-1-REQ-5**: Browser shall enforce SameSite cookie attribute with Lax as default → Assessment: DOM-REQ-5 - **DOM-1-REQ-6**: Browser shall isolate storage per origin → Assessment: DOM-REQ-6 - **DOM-1-REQ-7**: Browser shall support iframe sandbox attribute with granular tokens → Assessment: DOM-REQ-7 - **DOM-1-REQ-8**: Browser shall treat sandboxed and data: origins as opaque → Assessment: DOM-REQ-8 - **DOM-1-REQ-9**: Browser shall restrict document.domain setter by default (require Origin-Agent-Cluster opt-out) → Assessment: DOM-REQ-12 #### DOM-2 Requirements (Configurable isolation) - **DOM-2-REQ-1**: Browser shall implement process-per-site isolation → Assessment: DOM-REQ-1 - **DOM-2-REQ-2**: Browser shall enforce CORB → Assessment: DOM-REQ-2 - **DOM-2-REQ-3**: Browser shall prevent cross-origin DOM access except via CORS and postMessage → Assessment: DOM-REQ-3 - **DOM-2-REQ-4**: Browser shall enforce CORS preflight → Assessment: DOM-REQ-4 - **DOM-2-REQ-5**: Browser shall enforce SameSite cookie policies → Assessment: DOM-REQ-5 - **DOM-2-REQ-6**: Browser shall isolate storage per origin → Assessment: DOM-REQ-6 - **DOM-2-REQ-7**: Browser shall support iframe sandboxing → Assessment: DOM-REQ-7 - **DOM-2-REQ-8**: Browser shall support Cross-Origin-Resource-Policy (CORP) header → Assessment: DOM-REQ-9 - **DOM-2-REQ-9**: Browser shall enforce Cross-Origin-Opener-Policy (COOP) → Assessment: DOM-REQ-10 - **DOM-2-REQ-10**: Browser shall enforce Cross-Origin-Embedder-Policy (COEP) → Assessment: DOM-REQ-11 - **DOM-2-REQ-11**: Administrators shall be able to configure origin isolation policies via enterprise policy → Assessment: DOM-REQ-13 - **DOM-2-REQ-12**: Browser shall log all policy-based isolation exceptions → Assessment: DOM-REQ-14 #### DOM-3 Requirements (Integrated isolation) - **DOM-3-REQ-1**: Browser shall implement baseline process-per-site isolation → Assessment: DOM-REQ-1 - **DOM-3-REQ-2**: Browser shall enforce CORB with documented exceptions for compatibility → Assessment: DOM-REQ-2 - **DOM-3-REQ-3**: Browser shall enforce CORS policies → Assessment: DOM-REQ-4 - **DOM-3-REQ-4**: Browser shall enforce SameSite cookie policies → Assessment: DOM-REQ-5 - **DOM-3-REQ-5**: Browser shall isolate storage per origin → Assessment: DOM-REQ-6 - **DOM-3-REQ-6**: Browser shall support CORP, COOP, and COEP headers → Assessments: DOM-REQ-9, DOM-REQ-10, DOM-REQ-11 - **DOM-3-REQ-7**: Compatibility modes shall not weaken core isolation boundaries → Assessment: DOM-REQ-15 - **DOM-3-REQ-8**: Third-party integrations shall be subject to same origin isolation policies → Assessment: DOM-REQ-16 - **DOM-3-REQ-9**: All isolation exceptions for compatibility shall be documented and logged → Assessment: DOM-REQ-17 - **DOM-3-REQ-10**: Embedded components shall maintain storage isolation from embedding context → Assessment: DOM-REQ-18 ### 5.2 Extension System Security #### 5.2.1 Third-Party Code Execution **[EXT]** The manufacturer shall implement controls for third-party extensions that can modify browser behavior, considering that certified extensions may still exhibit malicious behavior. **Capability**: Browser extension system with APIs for third-party code augmentation **Conditions**: - EXT-0: No extension support - EXT-1: Curated extension store only - EXT-2: Curated store with developer mode - EXT-3: Unrestricted extension installation **Threats**: - Malicious extensions harvesting user data - Extension-based cryptomining - Browser fingerprinting - Privilege escalation through extension APIs - Supply chain attacks on popular extensions **Risk**: HIGH - Extensions operate as semi-trusted code with significant access to browser functionality and user data **Requirements**: #### EXT-0 Requirements (No extension support) - **EXT-0-REQ-1**: Browser shall not provide any extension installation or execution capability → Assessment: EXT-REQ-19 - **EXT-0-REQ-2**: Browser shall block all attempts to load extension code → Assessment: EXT-REQ-20 - **EXT-0-REQ-3**: Browser build shall not include extension subsystem components → Assessment: EXT-REQ-21 #### EXT-1 Requirements (Curated extension store only) - **EXT-1-REQ-1**: Browser shall implement granular permission model for extensions → Assessment: EXT-REQ-1 - **EXT-1-REQ-2**: Browser shall isolate extension content scripts from page scripts → Assessment: EXT-REQ-2 - **EXT-1-REQ-3**: Browser shall enforce extension API access control based on declared permissions → Assessment: EXT-REQ-3 - **EXT-1-REQ-4**: Browser shall validate extension manifests before installation → Assessment: EXT-REQ-4 - **EXT-1-REQ-5**: Browser shall sandbox extension execution environments → Assessment: EXT-REQ-5 - **EXT-1-REQ-6**: Browser shall isolate extensions from each other → Assessment: EXT-REQ-6 - **EXT-1-REQ-7**: Browser shall validate host permissions against declared patterns → Assessment: EXT-REQ-7 - **EXT-1-REQ-8**: Browser shall enforce Content Security Policy for extensions → Assessment: EXT-REQ-8 - **EXT-1-REQ-9**: Browser shall verify extension update signatures from official store → Assessment: EXT-REQ-10 - **EXT-1-REQ-10**: Browser shall enforce Manifest V3 compliance for new extensions → Assessment: EXT-REQ-13 - **EXT-1-REQ-11**: Browser shall validate extension signatures before installation → Assessment: EXT-REQ-17 - **EXT-1-REQ-12**: Browser shall provide transparent permissions UI during installation → Assessment: EXT-REQ-18 - **EXT-1-REQ-13**: Browser shall only allow installation from official curated store → Assessment: EXT-REQ-22 - **EXT-1-REQ-14**: Extensions shall undergo security review before store publication → Assessment: EXT-REQ-23 #### EXT-2 Requirements (Curated store with developer mode) - **EXT-2-REQ-1**: Browser shall implement all EXT-1 requirements for store-installed extensions - **EXT-2-REQ-2**: Browser shall isolate extension storage per extension → Assessment: EXT-REQ-11 - **EXT-2-REQ-3**: Browser shall restrict background script capabilities → Assessment: EXT-REQ-12 - **EXT-2-REQ-4**: Browser shall enforce WebRequest API security controls → Assessment: EXT-REQ-9 - **EXT-2-REQ-5**: Browser shall monitor extension-controlled web content → Assessment: EXT-REQ-15 - **EXT-2-REQ-6**: Developer mode shall require explicit user activation with security warnings → Assessment: EXT-REQ-24 - **EXT-2-REQ-7**: Developer mode extensions shall display persistent visual indicators → Assessment: EXT-REQ-25 - **EXT-2-REQ-8**: Developer mode shall disable automatic extension updates → Assessment: EXT-REQ-26 - **EXT-2-REQ-9**: Browser shall log all developer mode extension activities → Assessment: EXT-REQ-27 - **EXT-2-REQ-10**: Enterprise policies shall be able to disable developer mode → Assessment: EXT-REQ-28 #### EXT-3 Requirements (Unrestricted extension installation) - **EXT-3-REQ-1**: Browser shall implement baseline extension permission model → Assessment: EXT-REQ-1 - **EXT-3-REQ-2**: Browser shall enforce content script isolation → Assessment: EXT-REQ-2 - **EXT-3-REQ-3**: Browser shall control extension API access → Assessment: EXT-REQ-3 - **EXT-3-REQ-4**: Browser shall validate extension manifests → Assessment: EXT-REQ-4 - **EXT-3-REQ-5**: Browser shall sandbox extensions → Assessment: EXT-REQ-5 - **EXT-3-REQ-6**: Browser shall isolate extensions from each other → Assessment: EXT-REQ-6 - **EXT-3-REQ-7**: Browser shall enforce native messaging security controls → Assessment: EXT-REQ-14 - **EXT-3-REQ-8**: Browser shall monitor extension telemetry with privacy protections → Assessment: EXT-REQ-16 - **EXT-3-REQ-9**: Sideloaded extensions shall display prominent security warnings → Assessment: EXT-REQ-29 - **EXT-3-REQ-10**: Browser shall provide user controls to review and revoke extension permissions → Assessment: EXT-REQ-30 - **EXT-3-REQ-11**: Browser shall scan sideloaded extensions for known malware signatures → Assessment: EXT-REQ-31 - **EXT-3-REQ-12**: All extension security events shall be logged for review → Assessment: EXT-REQ-32 ### 5.3 Encryption Implementation #### 5.3.1 Data Protection Layers **[ENC]** The manufacturer shall implement comprehensive encryption across all data states and communication channels. **Capability**: Multi-layer encryption for data in transit, at rest, and during synchronization **Conditions**: - ENC-0: Full encryption with hardware security module support - ENC-1: Standard encryption with software-based key management - ENC-2: Selective encryption based on data sensitivity - ENC-3: Basic encryption with user-optional enhanced protection - ENC-4: Minimal encryption **Threats**: - Man-in-the-middle attacks - Data breach of stored credentials - Synchronization data interception - Update channel compromise - Certificate validation bypass **Risk**: CRITICAL - Encryption failures expose all user data and communications **Requirements**: #### ENC-0 Requirements (Full encryption with HSM support) - **ENC-0-REQ-1**: Browser shall support TLS 1.3 or higher exclusively for all network communications → Assessment: ENC-REQ-1 - **ENC-0-REQ-2**: Browser shall perform complete certificate chain validation including expiry, revocation, and trust anchor verification → Assessment: ENC-REQ-2 - **ENC-0-REQ-3**: Browser shall enforce HTTP Public Key Pinning (HPKP) or alternative certificate pinning mechanisms → Assessment: ENC-REQ-3 - **ENC-0-REQ-4**: Browser shall enforce HTTP Strict Transport Security (HSTS) with preload support → Assessment: ENC-REQ-4 - **ENC-0-REQ-5**: Browser shall block all mixed content without exception → Assessment: ENC-REQ-5 - **ENC-0-REQ-6**: Browser shall enforce Certificate Transparency requirements for all certificates → Assessment: ENC-REQ-6 - **ENC-0-REQ-7**: Browser shall support and validate OCSP stapling responses → Assessment: ENC-REQ-7 - **ENC-0-REQ-8**: Browser shall restrict cipher suites to strong, modern algorithms only → Assessment: ENC-REQ-8 - **ENC-0-REQ-9**: Browser shall enforce perfect forward secrecy for all TLS connections → Assessment: ENC-REQ-9 - **ENC-0-REQ-10**: Browser shall perform real-time certificate revocation checking → Assessment: ENC-REQ-10 - **ENC-0-REQ-11**: Browser shall implement Web Crypto API with full W3C compliance → Assessment: ENC-REQ-11 - **ENC-0-REQ-12**: Browser shall provide cryptographically secure random number generation → Assessment: ENC-REQ-12 - **ENC-0-REQ-13**: Browser shall enforce SubResource Integrity (SRI) validation → Assessment: ENC-REQ-13 - **ENC-0-REQ-14**: Browser shall support Encrypted SNI (ESNI) or Encrypted Client Hello (ECH) → Assessment: ENC-REQ-14 - **ENC-0-REQ-15**: Browser shall display prominent, non-bypassable certificate error UI → Assessment: ENC-REQ-15 - **ENC-0-REQ-16**: Browser shall operate in HTTPS-first mode with automatic upgrade → Assessment: ENC-REQ-16 - **ENC-0-REQ-17**: Browser shall detect and alert on certificate pinning bypass attempts → Assessment: ENC-REQ-17 - **ENC-0-REQ-18**: Browser shall protect against TLS downgrade attacks → Assessment: ENC-REQ-18 - **ENC-0-REQ-19**: Browser shall deprecate and disable legacy cryptographic protocols (SSL, TLS 1.0/1.1) → Assessment: ENC-REQ-19 - **ENC-0-REQ-20**: Browser shall isolate cryptographic keys in hardware security modules when available → Assessment: ENC-REQ-20 - **ENC-0-REQ-21**: Browser shall implement secure certificate store with integrity protection → Assessment: ENC-REQ-21 - **ENC-0-REQ-22**: Browser shall not allow user override of certificate pinning failures → Assessment: ENC-REQ-22 - **ENC-0-REQ-23**: All cryptographic operations shall be performed in hardware-backed secure enclaves when available → Assessment: ENC-REQ-23 #### ENC-1 Requirements (Standard encryption with software key management) - **ENC-1-REQ-1**: Browser shall support TLS 1.3 or higher for all network communications → Assessment: ENC-REQ-1 - **ENC-1-REQ-2**: Browser shall perform complete certificate chain validation → Assessment: ENC-REQ-2 - **ENC-1-REQ-3**: Browser shall support certificate pinning mechanisms → Assessment: ENC-REQ-3 - **ENC-1-REQ-4**: Browser shall enforce HSTS to prevent protocol downgrade attacks → Assessment: ENC-REQ-4 - **ENC-1-REQ-5**: Browser shall block mixed content with opt-in for passive content → Assessment: ENC-REQ-5 - **ENC-1-REQ-6**: Browser shall validate Certificate Transparency logs → Assessment: ENC-REQ-6 - **ENC-1-REQ-7**: Browser shall support OCSP stapling → Assessment: ENC-REQ-7 - **ENC-1-REQ-8**: Browser shall restrict cipher suites to industry-standard secure algorithms → Assessment: ENC-REQ-8 - **ENC-1-REQ-9**: Browser shall prefer perfect forward secrecy cipher suites → Assessment: ENC-REQ-9 - **ENC-1-REQ-10**: Browser shall perform certificate revocation checking (OCSP or CRLSets) → Assessment: ENC-REQ-10 - **ENC-1-REQ-11**: Browser shall implement Web Crypto API → Assessment: ENC-REQ-11 - **ENC-1-REQ-12**: Browser shall provide secure random number generation → Assessment: ENC-REQ-12 - **ENC-1-REQ-13**: Browser shall support SubResource Integrity validation → Assessment: ENC-REQ-13 - **ENC-1-REQ-14**: Browser shall display clear certificate error UI with bypass warnings → Assessment: ENC-REQ-15 - **ENC-1-REQ-15**: Browser shall support HTTPS-first mode as user option → Assessment: ENC-REQ-16 - **ENC-1-REQ-16**: Browser shall protect against TLS downgrade attacks → Assessment: ENC-REQ-18 - **ENC-1-REQ-17**: Browser shall disable legacy cryptographic protocols by default → Assessment: ENC-REQ-19 - **ENC-1-REQ-18**: Browser shall isolate cryptographic keys in process-level sandboxes → Assessment: ENC-REQ-20 - **ENC-1-REQ-19**: Browser shall implement secure certificate store → Assessment: ENC-REQ-21 #### ENC-2 Requirements (Selective encryption) - **ENC-2-REQ-1**: Browser shall support TLS 1.3 and TLS 1.2 → Assessment: ENC-REQ-1 - **ENC-2-REQ-2**: Browser shall perform certificate chain validation → Assessment: ENC-REQ-2 - **ENC-2-REQ-3**: Browser shall support certificate pinning for critical domains → Assessment: ENC-REQ-3 - **ENC-2-REQ-4**: Browser shall enforce HSTS when declared by server → Assessment: ENC-REQ-4 - **ENC-2-REQ-5**: Browser shall warn about mixed content → Assessment: ENC-REQ-5 - **ENC-2-REQ-6**: Browser shall support Certificate Transparency → Assessment: ENC-REQ-6 - **ENC-2-REQ-7**: Browser shall support OCSP stapling → Assessment: ENC-REQ-7 - **ENC-2-REQ-8**: Browser shall support standard cipher suites → Assessment: ENC-REQ-8 - **ENC-2-REQ-9**: Browser shall support forward secrecy cipher suites → Assessment: ENC-REQ-9 - **ENC-2-REQ-10**: Browser shall perform revocation checking with soft-fail option → Assessment: ENC-REQ-10 - **ENC-2-REQ-11**: Browser shall implement Web Crypto API → Assessment: ENC-REQ-11 - **ENC-2-REQ-12**: Browser shall provide secure random number generation → Assessment: ENC-REQ-12 - **ENC-2-REQ-13**: Browser shall support SubResource Integrity → Assessment: ENC-REQ-13 - **ENC-2-REQ-14**: Browser shall display certificate errors with bypass option → Assessment: ENC-REQ-15 - **ENC-2-REQ-15**: Browser shall provide HTTPS upgrade suggestions → Assessment: ENC-REQ-16 - **ENC-2-REQ-16**: Browser shall maintain secure certificate store → Assessment: ENC-REQ-21 - **ENC-2-REQ-17**: Users shall be able to configure encryption strictness levels → Assessment: ENC-REQ-24 - **ENC-2-REQ-18**: Browser shall provide visual indicators for connection security status → Assessment: ENC-REQ-25 #### ENC-3 Requirements (Basic encryption with optional enhanced protection) - **ENC-3-REQ-1**: Browser shall support TLS 1.2 or higher → Assessment: ENC-REQ-1 - **ENC-3-REQ-2**: Browser shall perform basic certificate validation → Assessment: ENC-REQ-2 - **ENC-3-REQ-3**: Browser shall enforce HSTS when enabled → Assessment: ENC-REQ-4 - **ENC-3-REQ-4**: Browser shall notify users of mixed content → Assessment: ENC-REQ-5 - **ENC-3-REQ-5**: Browser shall support common cipher suites → Assessment: ENC-REQ-8 - **ENC-3-REQ-6**: Browser shall support certificate revocation checking → Assessment: ENC-REQ-10 - **ENC-3-REQ-7**: Browser shall implement Web Crypto API → Assessment: ENC-REQ-11 - **ENC-3-REQ-8**: Browser shall provide secure random number generation → Assessment: ENC-REQ-12 - **ENC-3-REQ-9**: Browser shall display certificate errors with clear bypass options → Assessment: ENC-REQ-15 - **ENC-3-REQ-10**: Browser shall support basic certificate store operations → Assessment: ENC-REQ-21 - **ENC-3-REQ-11**: Users shall have full control over encryption settings → Assessment: ENC-REQ-26 - **ENC-3-REQ-12**: Browser shall provide encryption status indicators in UI → Assessment: ENC-REQ-27 - **ENC-3-REQ-13**: Legacy protocol support may be enabled for compatibility with user consent → Assessment: ENC-REQ-28 #### ENC-4 Requirements (Minimal encryption) - **ENC-4-REQ-1**: Browser shall support TLS 1.2 → Assessment: ENC-REQ-1 - **ENC-4-REQ-2**: Browser shall perform basic certificate validation → Assessment: ENC-REQ-2 - **ENC-4-REQ-3**: Browser shall display certificate warnings → Assessment: ENC-REQ-15 - **ENC-4-REQ-4**: Browser shall implement Web Crypto API for web applications → Assessment: ENC-REQ-11 - **ENC-4-REQ-5**: Browser shall provide secure random number generation → Assessment: ENC-REQ-12 - **ENC-4-REQ-6**: Users shall have complete control over all encryption policies → Assessment: ENC-REQ-29 - **ENC-4-REQ-7**: Browser shall support legacy protocols when explicitly enabled by user → Assessment: ENC-REQ-30 ### 5.4 Diagnostic and Monitoring Systems #### 5.4.1 Logging and Crash Reporting **[LOG]** The manufacturer shall balance diagnostic capabilities with privacy protection in logging and monitoring systems. **Capability**: Crash dumps, audit trails, activity logs, and enterprise integration capabilities **Conditions**: - LOG-0: No logging or local-only logging - LOG-1: Opt-in telemetry with anonymization - LOG-2: Default telemetry with opt-out - LOG-3: Mandatory telemetry for enterprise management **Threats**: - Information disclosure through logs - Privacy violations via telemetry - Log tampering or deletion - Unauthorized access to diagnostic data - Correlation attacks using telemetry data **Risk**: MEDIUM - Diagnostic systems may leak sensitive information while being necessary for security monitoring **Requirements**: #### LOG-0 Requirements (No logging or local-only) - **LOG-0-REQ-1**: Browser shall not transmit any telemetry or diagnostic data to remote servers → Assessment: LOG-REQ-21 - **LOG-0-REQ-2**: Browser shall maintain local security event logs for audit purposes → Assessment: LOG-REQ-1 - **LOG-0-REQ-3**: Local logs shall be stored with integrity protection → Assessment: LOG-REQ-11 - **LOG-0-REQ-4**: Local logs shall implement data minimization principles → Assessment: LOG-REQ-7 - **LOG-0-REQ-5**: Browser shall provide local security dashboard for log review → Assessment: LOG-REQ-13 - **LOG-0-REQ-6**: Local logs shall support forensic export for security analysis → Assessment: LOG-REQ-17 - **LOG-0-REQ-7**: Browser shall enforce strict access controls on local log files → Assessment: LOG-REQ-20 - **LOG-0-REQ-8**: All logging shall be disabled by default with opt-in for local logging → Assessment: LOG-REQ-22 - **LOG-0-REQ-9**: Users shall be able to view and delete all local logs at any time → Assessment: LOG-REQ-23 #### LOG-1 Requirements (Opt-in telemetry with anonymization) - **LOG-1-REQ-1**: Browser shall log security events locally → Assessment: LOG-REQ-1 - **LOG-1-REQ-2**: Browser shall log certificate errors and validation failures → Assessment: LOG-REQ-2 - **LOG-1-REQ-3**: Browser shall log extension security events → Assessment: LOG-REQ-3 - **LOG-1-REQ-4**: Browser shall support CSP violation reporting → Assessment: LOG-REQ-4 - **LOG-1-REQ-5**: Browser shall support Network Error Logging (NEL) → Assessment: LOG-REQ-5 - **LOG-1-REQ-6**: Browser shall implement crash reporting with user consent → Assessment: LOG-REQ-6 - **LOG-1-REQ-7**: Browser shall minimize data collection in logs → Assessment: LOG-REQ-7 - **LOG-1-REQ-8**: Browser shall anonymize telemetry data before transmission → Assessment: LOG-REQ-8 - **LOG-1-REQ-9**: Browser shall require explicit user consent for all telemetry → Assessment: LOG-REQ-9 - **LOG-1-REQ-10**: Browser shall transmit logs over secure channels only → Assessment: LOG-REQ-10 - **LOG-1-REQ-11**: Browser shall protect log integrity with cryptographic signatures → Assessment: LOG-REQ-11 - **LOG-1-REQ-12**: Browser shall enforce log retention policies → Assessment: LOG-REQ-12 - **LOG-1-REQ-13**: Browser shall provide security dashboard for log review → Assessment: LOG-REQ-13 - **LOG-1-REQ-14**: Browser shall use privacy-preserving analytics techniques → Assessment: LOG-REQ-18 - **LOG-1-REQ-15**: Browser shall enforce access controls on diagnostic data → Assessment: LOG-REQ-20 - **LOG-1-REQ-16**: Telemetry shall be disabled by default and require explicit opt-in → Assessment: LOG-REQ-24 - **LOG-1-REQ-17**: Users shall have granular control over telemetry categories → Assessment: LOG-REQ-25 - **LOG-1-REQ-18**: Browser shall provide clear documentation of all collected data → Assessment: LOG-REQ-26 #### LOG-2 Requirements (Default telemetry with opt-out) - **LOG-2-REQ-1**: Browser shall log security events → Assessment: LOG-REQ-1 - **LOG-2-REQ-2**: Browser shall log certificate errors → Assessment: LOG-REQ-2 - **LOG-2-REQ-3**: Browser shall log extension security events → Assessment: LOG-REQ-3 - **LOG-2-REQ-4**: Browser shall support CSP violation reporting → Assessment: LOG-REQ-4 - **LOG-2-REQ-5**: Browser shall support Network Error Logging → Assessment: LOG-REQ-5 - **LOG-2-REQ-6**: Browser shall implement crash reporting → Assessment: LOG-REQ-6 - **LOG-2-REQ-7**: Browser shall minimize logged data → Assessment: LOG-REQ-7 - **LOG-2-REQ-8**: Browser shall anonymize telemetry data → Assessment: LOG-REQ-8 - **LOG-2-REQ-9**: Browser shall provide clear opt-out mechanism during first run → Assessment: LOG-REQ-9 - **LOG-2-REQ-10**: Browser shall transmit logs securely → Assessment: LOG-REQ-10 - **LOG-2-REQ-11**: Browser shall protect log integrity → Assessment: LOG-REQ-11 - **LOG-2-REQ-12**: Browser shall enforce retention policies → Assessment: LOG-REQ-12 - **LOG-2-REQ-13**: Browser shall provide security dashboard → Assessment: LOG-REQ-13 - **LOG-2-REQ-14**: Browser shall support incident detection → Assessment: LOG-REQ-14 - **LOG-2-REQ-15**: Browser shall maintain complete audit trail → Assessment: LOG-REQ-15 - **LOG-2-REQ-16**: Browser shall use privacy-preserving analytics → Assessment: LOG-REQ-18 - **LOG-2-REQ-17**: Browser shall support compliance logging → Assessment: LOG-REQ-19 - **LOG-2-REQ-18**: Browser shall enforce log access controls → Assessment: LOG-REQ-20 - **LOG-2-REQ-19**: Users shall be able to disable telemetry at any time → Assessment: LOG-REQ-27 - **LOG-2-REQ-20**: Browser shall display telemetry status in settings UI → Assessment: LOG-REQ-28 #### LOG-3 Requirements (Mandatory telemetry for enterprise) - **LOG-3-REQ-1**: Browser shall log all security events → Assessment: LOG-REQ-1 - **LOG-3-REQ-2**: Browser shall log certificate errors and security warnings → Assessment: LOG-REQ-2 - **LOG-3-REQ-3**: Browser shall log all extension security events → Assessment: LOG-REQ-3 - **LOG-3-REQ-4**: Browser shall support CSP violation reporting → Assessment: LOG-REQ-4 - **LOG-3-REQ-5**: Browser shall support Network Error Logging → Assessment: LOG-REQ-5 - **LOG-3-REQ-6**: Browser shall implement comprehensive crash reporting → Assessment: LOG-REQ-6 - **LOG-3-REQ-7**: Browser shall log data with minimal redaction for forensics → Assessment: LOG-REQ-7 - **LOG-3-REQ-8**: Browser shall transmit logs securely to enterprise SIEM → Assessment: LOG-REQ-10 - **LOG-3-REQ-9**: Browser shall protect log integrity with cryptographic controls → Assessment: LOG-REQ-11 - **LOG-3-REQ-10**: Browser shall enforce enterprise-defined retention policies → Assessment: LOG-REQ-12 - **LOG-3-REQ-11**: Browser shall provide comprehensive security dashboard → Assessment: LOG-REQ-13 - **LOG-3-REQ-12**: Browser shall support real-time incident detection → Assessment: LOG-REQ-14 - **LOG-3-REQ-13**: Browser shall maintain complete audit trail of all security events → Assessment: LOG-REQ-15 - **LOG-3-REQ-14**: Browser shall support real-time security alerts → Assessment: LOG-REQ-16 - **LOG-3-REQ-15**: Browser shall support forensic log export in standard formats → Assessment: LOG-REQ-17 - **LOG-3-REQ-16**: Browser shall implement compliance logging for regulatory requirements → Assessment: LOG-REQ-19 - **LOG-3-REQ-17**: Browser shall enforce role-based access controls for logs → Assessment: LOG-REQ-20 - **LOG-3-REQ-18**: Enterprise policies shall prevent users from disabling mandatory logging → Assessment: LOG-REQ-29 - **LOG-3-REQ-19**: Browser shall support integration with enterprise monitoring systems → Assessment: LOG-REQ-30 - **LOG-3-REQ-20**: Browser shall provide tamper-evident logging mechanisms → Assessment: LOG-REQ-31 ### 5.5 Update Delivery Mechanisms #### 5.5.1 Security Update Management **[UPD]** The manufacturer shall implement secure update mechanisms that balance security needs with user autonomy. **Capability**: Automatic security updates with user notification and control options **Conditions**: - UPD-0: Forced automatic updates without user control - UPD-1: Automatic updates with postponement options - UPD-2: Optional automatic updates (user should enable) - UPD-3: Manual updates only **Threats**: - Exploitation of unpatched vulnerabilities - Update channel compromise - Malicious update injection - Denial of service through forced updates - Zero-day exploitation window **Risk**: HIGH - Delayed or compromised updates leave browsers vulnerable to known exploits **Requirements**: #### UPD-0 Requirements (Forced automatic updates) - **UPD-0-REQ-1**: Browser shall implement automatic update mechanism without user control → Assessment: UPD-REQ-1 - **UPD-0-REQ-2**: Browser shall verify digital signatures on all updates → Assessment: UPD-REQ-2 - **UPD-0-REQ-3**: Browser shall deliver updates exclusively over HTTPS → Assessment: UPD-REQ-3 - **UPD-0-REQ-4**: Browser shall validate update manifest integrity → Assessment: UPD-REQ-4 - **UPD-0-REQ-5**: Browser shall implement rollback protection to prevent downgrade attacks → Assessment: UPD-REQ-5 - **UPD-0-REQ-6**: Browser shall isolate update channels (stable, beta, dev) → Assessment: UPD-REQ-6 - **UPD-0-REQ-7**: Browser shall support component-level updates for security patches → Assessment: UPD-REQ-7 - **UPD-0-REQ-8**: Browser shall support emergency update capability for zero-day threats → Assessment: UPD-REQ-8 - **UPD-0-REQ-9**: Browser shall verify updates before installation → Assessment: UPD-REQ-9 - **UPD-0-REQ-10**: Browser shall implement failure recovery for failed updates → Assessment: UPD-REQ-10 - **UPD-0-REQ-11**: Browser shall log all updates to transparency log → Assessment: UPD-REQ-11 - **UPD-0-REQ-12**: Browser shall validate delta update security → Assessment: UPD-REQ-12 - **UPD-0-REQ-13**: Browser shall authenticate update servers with certificate pinning → Assessment: UPD-REQ-13 - **UPD-0-REQ-14**: Browser shall implement timing jitter to prevent fingerprinting → Assessment: UPD-REQ-14 - **UPD-0-REQ-15**: Browser shall enforce background update installation → Assessment: UPD-REQ-15 - **UPD-0-REQ-16**: Browser shall force critical security updates immediately → Assessment: UPD-REQ-17 - **UPD-0-REQ-17**: Browser shall verify complete update verification chain → Assessment: UPD-REQ-18 - **UPD-0-REQ-18**: Browser shall implement update source pinning → Assessment: UPD-REQ-19 - **UPD-0-REQ-19**: Browser shall verify update integrity with cryptographic hashes → Assessment: UPD-REQ-20 - **UPD-0-REQ-20**: Browser shall support staged rollout for risk mitigation → Assessment: UPD-REQ-21 - **UPD-0-REQ-21**: Browser shall validate update domain authenticity → Assessment: UPD-REQ-22 - **UPD-0-REQ-22**: Browser shall support binary reproducibility verification → Assessment: UPD-REQ-23 - **UPD-0-REQ-23**: Updates shall be applied without user intervention or postponement → Assessment: UPD-REQ-24 - **UPD-0-REQ-24**: Browser shall restart automatically after critical updates when safe → Assessment: UPD-REQ-25 #### UPD-1 Requirements (Automatic with postponement) - **UPD-1-REQ-1**: Browser shall implement automatic update mechanism → Assessment: UPD-REQ-1 - **UPD-1-REQ-2**: Browser shall verify update signatures → Assessment: UPD-REQ-2 - **UPD-1-REQ-3**: Browser shall deliver updates over HTTPS only → Assessment: UPD-REQ-3 - **UPD-1-REQ-4**: Browser shall validate update manifest integrity → Assessment: UPD-REQ-4 - **UPD-1-REQ-5**: Browser shall implement rollback protection → Assessment: UPD-REQ-5 - **UPD-1-REQ-6**: Browser shall isolate update channels → Assessment: UPD-REQ-6 - **UPD-1-REQ-7**: Browser shall support component updates → Assessment: UPD-REQ-7 - **UPD-1-REQ-8**: Browser shall support emergency updates → Assessment: UPD-REQ-8 - **UPD-1-REQ-9**: Browser shall verify updates before installation → Assessment: UPD-REQ-9 - **UPD-1-REQ-10**: Browser shall implement update failure recovery → Assessment: UPD-REQ-10 - **UPD-1-REQ-11**: Browser shall log updates to transparency log → Assessment: UPD-REQ-11 - **UPD-1-REQ-12**: Browser shall secure delta updates → Assessment: UPD-REQ-12 - **UPD-1-REQ-13**: Browser shall authenticate update servers → Assessment: UPD-REQ-13 - **UPD-1-REQ-14**: Browser shall implement update timing jitter → Assessment: UPD-REQ-14 - **UPD-1-REQ-15**: Browser shall enforce background updates → Assessment: UPD-REQ-15 - **UPD-1-REQ-16**: Browser shall display clear update notifications → Assessment: UPD-REQ-16 - **UPD-1-REQ-17**: Browser shall force critical updates with limited postponement → Assessment: UPD-REQ-17 - **UPD-1-REQ-18**: Browser shall verify update verification chain → Assessment: UPD-REQ-18 - **UPD-1-REQ-19**: Browser shall implement update source pinning → Assessment: UPD-REQ-19 - **UPD-1-REQ-20**: Browser shall verify update integrity → Assessment: UPD-REQ-20 - **UPD-1-REQ-21**: Browser shall support staged rollouts → Assessment: UPD-REQ-21 - **UPD-1-REQ-22**: Browser shall validate update domains → Assessment: UPD-REQ-22 - **UPD-1-REQ-23**: Users shall be able to postpone non-critical updates for limited time (max 7 days) → Assessment: UPD-REQ-26 - **UPD-1-REQ-24**: Critical security updates shall not be postponable beyond 24 hours → Assessment: UPD-REQ-27 - **UPD-1-REQ-25**: Browser shall notify users of pending updates with severity indication → Assessment: UPD-REQ-28 #### UPD-2 Requirements (Optional automatic updates) - **UPD-2-REQ-1**: Browser shall support automatic update mechanism when enabled → Assessment: UPD-REQ-1 - **UPD-2-REQ-2**: Browser shall verify update signatures → Assessment: UPD-REQ-2 - **UPD-2-REQ-3**: Browser shall deliver updates over HTTPS → Assessment: UPD-REQ-3 - **UPD-2-REQ-4**: Browser shall validate update manifest integrity → Assessment: UPD-REQ-4 - **UPD-2-REQ-5**: Browser shall implement rollback protection → Assessment: UPD-REQ-5 - **UPD-2-REQ-6**: Browser shall isolate update channels → Assessment: UPD-REQ-6 - **UPD-2-REQ-7**: Browser shall support component updates → Assessment: UPD-REQ-7 - **UPD-2-REQ-8**: Browser shall verify updates before installation → Assessment: UPD-REQ-9 - **UPD-2-REQ-9**: Browser shall implement update failure recovery → Assessment: UPD-REQ-10 - **UPD-2-REQ-10**: Browser shall authenticate update servers → Assessment: UPD-REQ-13 - **UPD-2-REQ-11**: Browser shall display update notifications → Assessment: UPD-REQ-16 - **UPD-2-REQ-12**: Browser shall verify update integrity → Assessment: UPD-REQ-20 - **UPD-2-REQ-13**: Browser shall validate update domains → Assessment: UPD-REQ-22 - **UPD-2-REQ-14**: Automatic updates shall be disabled by default → Assessment: UPD-REQ-29 - **UPD-2-REQ-15**: Browser shall prominently recommend enabling automatic updates → Assessment: UPD-REQ-30 - **UPD-2-REQ-16**: Browser shall display security warnings when updates are available → Assessment: UPD-REQ-31 - **UPD-2-REQ-17**: Browser shall provide easy mechanism to check for and install updates → Assessment: UPD-REQ-32 - **UPD-2-REQ-18**: Users shall have full control over update timing and installation → Assessment: UPD-REQ-33 #### UPD-3 Requirements (Manual updates only) - **UPD-3-REQ-1**: Browser shall verify update signatures when manually triggered → Assessment: UPD-REQ-2 - **UPD-3-REQ-2**: Browser shall deliver updates over HTTPS → Assessment: UPD-REQ-3 - **UPD-3-REQ-3**: Browser shall validate update manifest integrity → Assessment: UPD-REQ-4 - **UPD-3-REQ-4**: Browser shall implement rollback protection → Assessment: UPD-REQ-5 - **UPD-3-REQ-5**: Browser shall verify updates before installation → Assessment: UPD-REQ-9 - **UPD-3-REQ-6**: Browser shall implement update failure recovery → Assessment: UPD-REQ-10 - **UPD-3-REQ-7**: Browser shall authenticate update servers → Assessment: UPD-REQ-13 - **UPD-3-REQ-8**: Browser shall display update availability notifications → Assessment: UPD-REQ-16 - **UPD-3-REQ-9**: Browser shall verify update integrity → Assessment: UPD-REQ-20 - **UPD-3-REQ-10**: Browser shall validate update domains → Assessment: UPD-REQ-22 - **UPD-3-REQ-11**: Browser shall provide manual update check mechanism → Assessment: UPD-REQ-34 - **UPD-3-REQ-12**: Browser shall display security warnings for outdated versions → Assessment: UPD-REQ-35 - **UPD-3-REQ-13**: Browser shall provide clear indication of available security updates → Assessment: UPD-REQ-36 - **UPD-3-REQ-14**: All updates shall require explicit user initiation → Assessment: UPD-REQ-37 - **UPD-3-REQ-15**: Browser shall display update changelog and security impact → Assessment: UPD-REQ-38 ### 5.6 Protocol Handler Security #### 5.6.1 Custom Protocol Management **[PRO]** The manufacturer shall securely handle various communication protocols beyond standard HTTP/HTTPS. **Capability**: Support for custom schemes, WebSocket, WebRTC, and emerging web standards **Conditions**: - PRO-0: HTTP/HTTPS only - PRO-1: Standard web protocols with strict validation - PRO-2: Custom protocols with registration system - PRO-3: Unrestricted protocol handler registration **Threats**: - Protocol confusion attacks - Scheme hijacking - Bypass of security controls via custom protocols - Data leakage through protocol handlers - Local application exploitation via URL schemes **Risk**: MEDIUM - Custom protocols can bypass standard web security controls **Requirements**: #### PRO-0 Requirements (HTTP/HTTPS only) - **PRO-0-REQ-1**: Browser shall only support HTTP and HTTPS protocols → Assessment: PRO-REQ-24 - **PRO-0-REQ-2**: Browser shall reject all custom protocol handler registration attempts → Assessment: PRO-REQ-25 - **PRO-0-REQ-3**: Browser shall block access to non-standard URL schemes (file://, data://, javascript://, etc.) → Assessment: PRO-REQ-26 - **PRO-0-REQ-4**: Browser shall not provide registerProtocolHandler() API or equivalent functionality → Assessment: PRO-REQ-27 - **PRO-0-REQ-5**: Browser shall reject navigation to any non-HTTP/HTTPS protocols → Assessment: PRO-REQ-28 #### PRO-1 Requirements (Standard web protocols with strict validation) - **PRO-1-REQ-1**: Browser shall validate all custom protocol handler registrations → Assessment: PRO-REQ-1 - **PRO-1-REQ-2**: Browser shall obtain explicit user consent before activating custom protocol handlers → Assessment: PRO-REQ-2 - **PRO-1-REQ-3**: Browser shall enforce protocol allowlists that restrict which custom schemes can be registered → Assessment: PRO-REQ-3 - **PRO-1-REQ-4**: Browser shall prevent scheme hijacking attacks → Assessment: PRO-REQ-4 - **PRO-1-REQ-5**: Browser shall sanitize protocol URL parameters before passing to handlers → Assessment: PRO-REQ-5 - **PRO-1-REQ-6**: Browser shall implement security controls for external protocol handlers → Assessment: PRO-REQ-6 - **PRO-1-REQ-7**: Browser shall provide transparent UI indicating protocol handler registration and invocation → Assessment: PRO-REQ-7 - **PRO-1-REQ-8**: Browser shall prevent protocol downgrade attacks → Assessment: PRO-REQ-8 - **PRO-1-REQ-9**: Browser shall log protocol handler registration, modification, and invocation events → Assessment: PRO-REQ-9 - **PRO-1-REQ-10**: Browser shall support web+custom scheme conventions → Assessment: PRO-REQ-10 - **PRO-1-REQ-11**: Browser shall enforce handler capability restrictions → Assessment: PRO-REQ-13 - **PRO-1-REQ-12**: Browser shall provide protocol handler revocation mechanisms → Assessment: PRO-REQ-14 - **PRO-1-REQ-13**: Browser shall enforce cross-origin protocol restrictions → Assessment: PRO-REQ-15 #### PRO-2 Requirements (Custom protocols with registration system) - **PRO-2-REQ-1**: Browser shall implement all PRO-1 requirements - **PRO-2-REQ-2**: Browser shall validate protocol handler persistence across sessions → Assessment: PRO-REQ-11 - **PRO-2-REQ-3**: Browser shall mitigate protocol confusion attacks → Assessment: PRO-REQ-12 - **PRO-2-REQ-4**: Browser shall validate protocol handler manifests → Assessment: PRO-REQ-16 - **PRO-2-REQ-5**: Browser shall integrate protocol handlers with Content Security Policy → Assessment: PRO-REQ-20 - **PRO-2-REQ-6**: Browser shall maintain audit trail for handler registrations → Assessment: PRO-REQ-21 - **PRO-2-REQ-7**: Browser shall enforce secure handler update mechanisms → Assessment: PRO-REQ-22 - **PRO-2-REQ-8**: Browser shall enforce handler isolation between origins → Assessment: PRO-REQ-23 - **PRO-2-REQ-9**: Browser shall support Intent URL security on Android platforms → Assessment: PRO-REQ-17 - **PRO-2-REQ-10**: Browser shall support Universal Links security on iOS platforms → Assessment: PRO-REQ-18 - **PRO-2-REQ-11**: Browser shall validate mobile deep linking security → Assessment: PRO-REQ-19 - **PRO-2-REQ-12**: Enterprise administrators shall be able to configure protocol handler allowlists and blocklists → Assessment: PRO-REQ-29 #### PRO-3 Requirements (Unrestricted protocol registration) - **PRO-3-REQ-1**: Browser shall implement baseline protocol handler validation → Assessment: PRO-REQ-1 - **PRO-3-REQ-2**: Browser shall obtain user consent for protocol handler activation → Assessment: PRO-REQ-2 - **PRO-3-REQ-3**: Browser shall sanitize protocol parameters → Assessment: PRO-REQ-5 - **PRO-3-REQ-4**: Browser shall implement external handler security controls → Assessment: PRO-REQ-6 - **PRO-3-REQ-5**: Browser shall provide handler management UI → Assessment: PRO-REQ-7 - **PRO-3-REQ-6**: Browser shall log protocol handler security events → Assessment: PRO-REQ-9 - **PRO-3-REQ-7**: Browser shall allow registration of custom schemes without web+ prefix → Assessment: PRO-REQ-30 - **PRO-3-REQ-8**: Browser shall display security warnings for non-standard protocol handlers → Assessment: PRO-REQ-31 - **PRO-3-REQ-9**: Browser shall provide user-accessible handler revocation controls → Assessment: PRO-REQ-14 - **PRO-3-REQ-10**: Users shall be able to review all registered protocol handlers in browser settings → Assessment: PRO-REQ-32 - **PRO-3-REQ-11**: Browser shall scan custom handlers for known security vulnerabilities → Assessment: PRO-REQ-33 - **PRO-3-REQ-12**: All protocol handler security exceptions shall be logged and auditable → Assessment: PRO-REQ-34 ### 5.7 Core Component Security #### 5.7.1 System Resource Access **[SYS]** The manufacturer shall implement secure boundaries between web content and system resources through Hardware Abstraction Layers and API mediation. **Capability**: HAL implementation, PWA support, accessibility features, and local storage mechanisms **Conditions**: - SYS-0: Fully sandboxed with no system access - SYS-1: Limited system access with strict permissions - SYS-2: Extended system access for PWAs - SYS-3: Native-equivalent system access **Threats**: - Sandbox escape attacks - Unauthorized file system access - Hardware fingerprinting - Resource exhaustion attacks - Accessibility feature abuse for screen reading **Risk**: CRITICAL - System access breaches can compromise the entire host environment **Requirements**: #### SYS-0 Requirements (Fully sandboxed, no system access) - **SYS-0-REQ-1**: Browser shall enforce process-level sandboxing for all web content → Assessment: SYS-REQ-1 - **SYS-0-REQ-2**: Browser shall isolate renderer processes from each other and browser core → Assessment: SYS-REQ-2 - **SYS-0-REQ-3**: Browser shall isolate GPU rendering in separate sandboxed process → Assessment: SYS-REQ-3 - **SYS-0-REQ-4**: Browser shall isolate network operations in separate process or service → Assessment: SYS-REQ-4 - **SYS-0-REQ-5**: Browser shall block all filesystem access from web content → Assessment: SYS-REQ-5 - **SYS-0-REQ-6**: Browser shall block all device API access (no camera, microphone, location, etc.) → Assessment: SYS-REQ-33 - **SYS-0-REQ-7**: Browser shall enforce strict hardware resource limits → Assessment: SYS-REQ-20 - **SYS-0-REQ-8**: Browser shall enforce memory isolation between processes → Assessment: SYS-REQ-21 - **SYS-0-REQ-9**: Browser shall implement sandbox escape prevention mechanisms → Assessment: SYS-REQ-26 - **SYS-0-REQ-10**: Browser shall implement Spectre/Meltdown mitigations → Assessment: SYS-REQ-27 - **SYS-0-REQ-11**: Browser shall implement side-channel attack mitigations → Assessment: SYS-REQ-28 - **SYS-0-REQ-12**: Browser shall not expose any native messaging interfaces → Assessment: SYS-REQ-34 - **SYS-0-REQ-13**: Browser shall block all host OS integration features → Assessment: SYS-REQ-35 #### SYS-1 Requirements (Limited system access with strict permissions) - **SYS-1-REQ-1**: Browser shall enforce process-level sandboxing → Assessment: SYS-REQ-1 - **SYS-1-REQ-2**: Browser shall isolate renderer processes → Assessment: SYS-REQ-2 - **SYS-1-REQ-3**: Browser shall isolate GPU process → Assessment: SYS-REQ-3 - **SYS-1-REQ-4**: Browser shall isolate network service → Assessment: SYS-REQ-4 - **SYS-1-REQ-5**: Browser shall enforce strict filesystem access controls → Assessment: SYS-REQ-5 - **SYS-1-REQ-6**: Browser shall implement permission controls for device hardware APIs → Assessment: SYS-REQ-6 - **SYS-1-REQ-7**: Browser shall enforce geolocation permission requirements → Assessment: SYS-REQ-8 - **SYS-1-REQ-8**: Browser shall enforce camera/microphone access controls with visible indicators → Assessment: SYS-REQ-9 - **SYS-1-REQ-9**: Browser shall restrict clipboard access to require user interaction → Assessment: SYS-REQ-10 - **SYS-1-REQ-10**: Browser shall enforce notification permission management → Assessment: SYS-REQ-11 - **SYS-1-REQ-11**: Browser shall restrict Sensor API access with permissions → Assessment: SYS-REQ-18 - **SYS-1-REQ-12**: Browser shall restrict Battery Status API to prevent fingerprinting → Assessment: SYS-REQ-19 - **SYS-1-REQ-13**: Browser shall enforce hardware resource limits → Assessment: SYS-REQ-20 - **SYS-1-REQ-14**: Browser shall enforce memory isolation → Assessment: SYS-REQ-21 - **SYS-1-REQ-15**: Browser shall implement CPU resource quotas → Assessment: SYS-REQ-22 - **SYS-1-REQ-16**: Browser shall enforce network bandwidth limits → Assessment: SYS-REQ-23 - **SYS-1-REQ-17**: Browser shall enforce storage quota limits → Assessment: SYS-REQ-24 - **SYS-1-REQ-18**: Browser shall implement process priority management → Assessment: SYS-REQ-25 - **SYS-1-REQ-19**: Browser shall prevent sandbox escapes → Assessment: SYS-REQ-26 - **SYS-1-REQ-20**: Browser shall implement speculative execution mitigations → Assessment: SYS-REQ-27 - **SYS-1-REQ-21**: Browser shall implement side-channel mitigations → Assessment: SYS-REQ-28 - **SYS-1-REQ-22**: Browser shall implement accessibility API security controls → Assessment: SYS-REQ-30 #### SYS-2 Requirements (Extended system access for PWAs) - **SYS-2-REQ-1**: Browser shall implement all SYS-1 requirements - **SYS-2-REQ-2**: Browser shall enforce equivalent permission controls for PWAs → Assessment: SYS-REQ-7 - **SYS-2-REQ-3**: Browser shall implement USB device access security → Assessment: SYS-REQ-12 - **SYS-2-REQ-4**: Browser shall enforce Bluetooth permission controls → Assessment: SYS-REQ-13 - **SYS-2-REQ-5**: Browser shall implement File System Access API security → Assessment: SYS-REQ-14 - **SYS-2-REQ-6**: Browser shall enforce WebUSB security controls → Assessment: SYS-REQ-15 - **SYS-2-REQ-7**: Browser shall enforce WebBluetooth security → Assessment: SYS-REQ-16 - **SYS-2-REQ-8**: Browser shall implement WebNFC permission management → Assessment: SYS-REQ-17 - **SYS-2-REQ-9**: Browser shall implement hardware token security → Assessment: SYS-REQ-29 - **SYS-2-REQ-10**: Browser shall enforce restricted native messaging with security controls → Assessment: SYS-REQ-31 - **SYS-2-REQ-11**: PWA permissions shall not exceed web context permissions → Assessment: SYS-REQ-36 - **SYS-2-REQ-12**: PWA installation shall not auto-grant extended permissions → Assessment: SYS-REQ-37 - **SYS-2-REQ-13**: PWA uninstallation shall revoke all granted permissions → Assessment: SYS-REQ-38 - **SYS-2-REQ-14**: Browser shall maintain audit log of all PWA permission grants and revocations → Assessment: SYS-REQ-39 - **SYS-2-REQ-15**: Enterprise administrators shall be able to configure PWA permission policies → Assessment: SYS-REQ-40 #### SYS-3 Requirements (Native-equivalent system access) - **SYS-3-REQ-1**: Browser shall implement baseline sandboxing for renderer processes → Assessment: SYS-REQ-1 - **SYS-3-REQ-2**: Browser shall enforce process isolation → Assessment: SYS-REQ-2 - **SYS-3-REQ-3**: Browser shall implement baseline permission controls for device APIs → Assessment: SYS-REQ-6 - **SYS-3-REQ-4**: Browser shall enforce filesystem access controls → Assessment: SYS-REQ-5 - **SYS-3-REQ-5**: Browser shall implement resource limits to prevent exhaustion → Assessment: SYS-REQ-20 - **SYS-3-REQ-6**: Browser shall implement memory isolation → Assessment: SYS-REQ-21 - **SYS-3-REQ-7**: Browser shall implement CPU quotas → Assessment: SYS-REQ-22 - **SYS-3-REQ-8**: Browser shall enforce storage quotas → Assessment: SYS-REQ-24 - **SYS-3-REQ-9**: Browser shall implement speculative execution mitigations → Assessment: SYS-REQ-27 - **SYS-3-REQ-10**: Browser shall implement side-channel mitigations → Assessment: SYS-REQ-28 - **SYS-3-REQ-11**: Browser shall enforce host OS integration security → Assessment: SYS-REQ-32 - **SYS-3-REQ-12**: Browser shall allow native-equivalent API access with user consent → Assessment: SYS-REQ-41 - **SYS-3-REQ-13**: Browser shall provide transparent UI for all native integration features → Assessment: SYS-REQ-42 - **SYS-3-REQ-14**: Browser shall display security warnings for privileged API access → Assessment: SYS-REQ-43 - **SYS-3-REQ-15**: Browser shall log all extended system access for security auditing → Assessment: SYS-REQ-44 - **SYS-3-REQ-16**: Users shall be able to review and revoke all system permissions → Assessment: SYS-REQ-45 - **SYS-3-REQ-17**: Enterprise administrators shall be able to restrict native-equivalent features → Assessment: SYS-REQ-46 - **SYS-3-REQ-18**: All native integration exceptions shall be documented and auditable → Assessment: SYS-REQ-47 ## 5.8 Embedded Browser Security ### 5.8.1 Overview Embedded browsers (WebView components, browser engines integrated into native applications) present unique security challenges distinct from standalone browsers. While standalone browsers operate as independent applications with their own security boundaries, embedded browsers exist within a host application context where they navigate the security boundary between web content and the host application. **Key Security Challenges**: 1. **Host-Code Injection**: Malicious web content may attempt to inject code into or manipulate the host application through JavaScript bridge interfaces, custom URL scheme handlers, or exploitation of WebView API vulnerabilities. 2. **User Data Exfiltration**: Web content loaded in an embedded browser may access sensitive data from the host application through insecure bridge configurations, shared storage, or insufficient isolation between web and native contexts. 3. **Insufficient Isolation**: Unlike standalone browsers where all web content is untrusted, embedded browsers often establish trust relationships with certain content sources while maintaining security boundaries, creating complex policy enforcement challenges. **Risk Classification**: CRITICAL - Vulnerabilities in embedded browser security can lead to complete compromise of the host application and exfiltration of all user data accessible to the host. **Applicable Use Cases**: UC-B08 (Embedded Browser Component), UC-B09 (WebView Component in Native Applications), and aspects of UC-B10 (Adapted Browser with Modified Features) when the adaptation includes native component integration. **References**: - OWASP Mobile Security Testing Guide - WebViews: https://mas.owasp.org/MASTG/tests/android/MASVS-PLATFORM/MASTG-TEST-0028/ - Android WebView Security Best Practices: https://developer.android.com/develop/ui/views/layout/webapps/webview - iOS WKWebView Security: https://developer.apple.com/documentation/webkit/wkwebview - Chromium Embedded Framework Security: https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-security - Electron Security Best Practices: https://www.electronjs.org/docs/latest/tutorial/security ### 5.8.2 Host Application Boundary Security **[EMB]** The manufacturer shall implement secure isolation boundaries between embedded browser content and host application code, data, and resources. **Capability**: JavaScript bridge security, native API exposure control, host data protection, and context isolation **Conditions**: - **EMB-0**: No JavaScript bridge or native API exposure (isolated WebView) - **EMB-1**: Limited JavaScript bridge with explicit allowlist of safe APIs - **EMB-2**: Extended JavaScript bridge with bidirectional communication - **EMB-3**: Full integration with access to native capabilities and host data **Threats**: - JavaScript injection into host application context - Unauthorized access to native APIs through bridge exploitation - Code execution in host process via WebView vulnerabilities - Cross-context data leakage between web and native layers - Exploitation of insecure JavaScript bridge configurations - Bypass of content security policies via native bridges - Host application credential theft via bridge access - Native code injection via crafted web content **Risk**: CRITICAL - Compromise of the host-browser boundary can lead to complete application takeover and data exfiltration **Requirements**: #### EMB-0 Requirements (No JavaScript bridge or native API exposure) - **EMB-0-REQ-1**: Embedded browser shall implement complete context isolation → Assessment: EMB-REQ-4 - **EMB-0-REQ-2**: Embedded browser shall isolate all storage from host application → Assessment: EMB-REQ-12 - **EMB-0-REQ-3**: Embedded browser shall enforce CSP for all web content → Assessment: EMB-REQ-13 - **EMB-0-REQ-4**: Embedded browser shall prevent all web content access to host application objects → Assessment: EMB-REQ-33 - **EMB-0-REQ-5**: No JavaScript bridge or native API exposure mechanism shall exist → Assessment: EMB-REQ-34 - **EMB-0-REQ-6**: Embedded browser shall treat all loaded content as completely untrusted → Assessment: EMB-REQ-35 - **EMB-0-REQ-7**: Host application credentials shall be completely isolated from web context → Assessment: EMB-REQ-8 #### EMB-1 Requirements (Limited JavaScript bridge with explicit allowlist) - **EMB-1-REQ-1**: JavaScript bridge shall implement explicit API allowlists with per-API access controls → Assessment: EMB-REQ-1 - **EMB-1-REQ-2**: All bridge data shall be validated, sanitized, and type-checked on native side → Assessment: EMB-REQ-2 - **EMB-1-REQ-3**: JavaScript bridge communications shall be logged → Assessment: EMB-REQ-3 - **EMB-1-REQ-4**: Embedded browser shall implement context isolation → Assessment: EMB-REQ-4 - **EMB-1-REQ-5**: Sensitive native APIs shall require explicit user consent → Assessment: EMB-REQ-5 - **EMB-1-REQ-6**: System-level APIs shall not be exposed without additional security controls → Assessment: EMB-REQ-6 - **EMB-1-REQ-7**: JavaScript bridge configuration shall be immutable after initialization → Assessment: EMB-REQ-7 - **EMB-1-REQ-8**: Web content shall not access host credentials, tokens, or keys → Assessment: EMB-REQ-8 - **EMB-1-REQ-9**: Bridge implementations shall be reviewed for injection vulnerabilities → Assessment: EMB-REQ-9 - **EMB-1-REQ-10**: Host shall implement rate limiting on bridge API calls → Assessment: EMB-REQ-10 - **EMB-1-REQ-11**: Bridge shall support granular capability-based permissions → Assessment: EMB-REQ-11 - **EMB-1-REQ-12**: Embedded browser shall isolate storage from host → Assessment: EMB-REQ-12 - **EMB-1-REQ-13**: Host shall enforce CSP for all embedded content → Assessment: EMB-REQ-13 - **EMB-1-REQ-14**: Web content shall not trigger misleading native UI → Assessment: EMB-REQ-15 - **EMB-1-REQ-15**: Host shall implement allowlists rather than denylists for bridge APIs → Assessment: EMB-REQ-16 - **EMB-1-REQ-16**: Only explicitly allowlisted APIs shall be accessible from web content → Assessment: EMB-REQ-36 - **EMB-1-REQ-17**: Bridge API allowlist shall be minimal and documented → Assessment: EMB-REQ-37 #### EMB-2 Requirements (Extended JavaScript bridge with bidirectional communication) - **EMB-2-REQ-1**: All EMB-1 requirements shall be implemented - **EMB-2-REQ-2**: Bridge communications crossing process boundaries shall be encrypted → Assessment: EMB-REQ-14 - **EMB-2-REQ-3**: Bridge shall implement granular permissions → Assessment: EMB-REQ-11 - **EMB-2-REQ-4**: Host shall implement comprehensive rate limiting → Assessment: EMB-REQ-10 - **EMB-2-REQ-5**: All bridge communications shall be logged with full audit trails → Assessment: EMB-REQ-3 - **EMB-2-REQ-6**: Bidirectional bridge calls shall maintain same security controls in both directions → Assessment: EMB-REQ-38 - **EMB-2-REQ-7**: Web content callback handlers shall be validated before invocation → Assessment: EMB-REQ-39 - **EMB-2-REQ-8**: Bridge shall implement message queuing with integrity protection → Assessment: EMB-REQ-40 - **EMB-2-REQ-9**: Host shall monitor bridge traffic for anomalies → Assessment: EMB-REQ-41 - **EMB-2-REQ-10**: Enterprise administrators shall be able to configure bridge API policies → Assessment: EMB-REQ-42 #### EMB-3 Requirements (Full integration with native capabilities) - **EMB-3-REQ-1**: Baseline EMB-1 security controls shall be maintained - **EMB-3-REQ-2**: Bridge shall implement comprehensive input validation → Assessment: EMB-REQ-2 - **EMB-3-REQ-3**: Bridge shall log all operations with security context → Assessment: EMB-REQ-3 - **EMB-3-REQ-4**: Sensitive native operations shall require user consent → Assessment: EMB-REQ-5 - **EMB-3-REQ-5**: System-level APIs shall have strict additional controls → Assessment: EMB-REQ-6 - **EMB-3-REQ-6**: Bridge implementations shall undergo security review → Assessment: EMB-REQ-9 - **EMB-3-REQ-7**: Rate limiting shall prevent bridge API abuse → Assessment: EMB-REQ-10 - **EMB-3-REQ-8**: Full integration shall not bypass core security boundaries → Assessment: EMB-REQ-43 - **EMB-3-REQ-9**: User shall be informed of all native capabilities granted to web content → Assessment: EMB-REQ-44 - **EMB-3-REQ-10**: User shall be able to review and revoke native API access → Assessment: EMB-REQ-45 - **EMB-3-REQ-11**: All native integrations shall be documented and auditable → Assessment: EMB-REQ-46 - **EMB-3-REQ-12**: Enterprise policies shall be able to restrict native integration scope → Assessment: EMB-REQ-47 ### 5.8.3 Content Source Trust Management **[EMB]** The manufacturer shall implement mechanisms to establish and enforce trust relationships between embedded browser content sources and the host application. **Capability**: Content source validation, certificate pinning for embedded content, subresource integrity, and trust boundary enforcement **Conditions**: - **EMB-0**: All content treated as untrusted (public internet) - **EMB-1**: Trusted domains with certificate validation - **EMB-2**: Certificate pinning for specific trusted origins - **EMB-3**: Local/bundled content with cryptographic verification **Threats**: - Man-in-the-middle attacks against trusted content sources - Loading of malicious content from compromised trusted domains - Bypass of trust boundaries through redirect chains - Subresource substitution attacks - DNS hijacking of embedded content sources - Certificate authority compromise affecting trusted origins - Mixed content attacks (trusted page loading untrusted resources) - Cache poisoning affecting embedded content **Risk**: CRITICAL - Compromise of trusted content sources can lead to injection of malicious code with elevated privileges **Requirements**: #### EMB-0 Requirements (All content treated as untrusted - public internet) - **EMB-0-REQ-1**: All content shall be treated as completely untrusted → Assessment: EMB-REQ-35 - **EMB-0-REQ-2**: Embedded browser shall validate SSL/TLS certificates for all remote content → Assessment: EMB-REQ-17 - **EMB-0-REQ-3**: Embedded browser shall prevent all mixed content → Assessment: EMB-REQ-21 - **EMB-0-REQ-4**: Certificate validation failures shall block content loading → Assessment: EMB-REQ-26 - **EMB-0-REQ-5**: Network security configuration shall prevent cleartext traffic → Assessment: EMB-REQ-27 - **EMB-0-REQ-6**: Trust boundary violations shall trigger security events → Assessment: EMB-REQ-32 - **EMB-0-REQ-7**: No content origin shall have privileged access → Assessment: EMB-REQ-48 - **EMB-0-REQ-8**: All CSP policies shall be strictly enforced without exceptions → Assessment: EMB-REQ-49 #### EMB-1 Requirements (Trusted domains with certificate validation) - **EMB-1-REQ-1**: Embedded browser shall validate SSL/TLS certificates for all remote content → Assessment: EMB-REQ-17 - **EMB-1-REQ-2**: Host shall implement allowlist of trusted content origins → Assessment: EMB-REQ-18 - **EMB-1-REQ-3**: Embedded browser shall prevent mixed content → Assessment: EMB-REQ-21 - **EMB-1-REQ-4**: Trust decisions shall be logged with full context → Assessment: EMB-REQ-22 - **EMB-1-REQ-5**: Host shall implement redirect chain validation → Assessment: EMB-REQ-24 - **EMB-1-REQ-6**: Embedded browser shall enforce HSTS for trusted origins → Assessment: EMB-REQ-25 - **EMB-1-REQ-7**: Certificate failures shall trigger immediate notification and blocking → Assessment: EMB-REQ-26 - **EMB-1-REQ-8**: Network security config shall prevent cleartext to trusted domains → Assessment: EMB-REQ-27 - **EMB-1-REQ-9**: Trusted content shall not load untrusted third-party content without CSP → Assessment: EMB-REQ-28 - **EMB-1-REQ-10**: Trust boundary violations shall trigger security events → Assessment: EMB-REQ-32 - **EMB-1-REQ-11**: Only explicitly allowlisted origins shall be considered trusted → Assessment: EMB-REQ-18 - **EMB-1-REQ-12**: Trust allowlist shall be immutable by web content → Assessment: EMB-REQ-50 #### EMB-2 Requirements (Certificate pinning for specific trusted origins) - **EMB-2-REQ-1**: All EMB-1 requirements shall be implemented → Assessment: EMB-REQ-51 - **EMB-2-REQ-2**: Embedded browser shall implement certificate pinning for critical origins → Assessment: EMB-REQ-20 - **EMB-2-REQ-3**: Embedded browser shall enforce SRI for external scripts from trusted content → Assessment: EMB-REQ-19 - **EMB-2-REQ-4**: Certificate pinning shall include backup pins and rotation mechanisms → Assessment: EMB-REQ-20 - **EMB-2-REQ-5**: Trust policies shall be configurable per browser instance → Assessment: EMB-REQ-29 - **EMB-2-REQ-6**: Embedded browser shall implement certificate transparency verification → Assessment: EMB-REQ-30 - **EMB-2-REQ-7**: Host shall detect and prevent DNS rebinding attacks → Assessment: EMB-REQ-31 - **EMB-2-REQ-8**: Pin configuration shall be immutable after initialization → Assessment: EMB-REQ-52 - **EMB-2-REQ-9**: Pinning violations shall immediately block content loading → Assessment: EMB-REQ-53 - **EMB-2-REQ-10**: Pin rotation procedures shall be documented and tested → Assessment: EMB-REQ-54 #### EMB-3 Requirements (Local/bundled content with cryptographic verification) - **EMB-3-REQ-1**: Baseline EMB-1 certificate validation shall apply to all remote content → Assessment: EMB-REQ-55 - **EMB-3-REQ-2**: Embedded browser shall verify cryptographic signatures for local/bundled content → Assessment: EMB-REQ-23 - **EMB-3-REQ-3**: Embedded browser shall enforce SRI for all external scripts → Assessment: EMB-REQ-19 - **EMB-3-REQ-4**: Certificate pinning shall be enforced for remote trusted origins → Assessment: EMB-REQ-17, EMB-REQ-20 - **EMB-3-REQ-5**: Trust decisions shall be logged comprehensively → Assessment: EMB-REQ-22 - **EMB-3-REQ-6**: Trust policies shall be configurable per instance → Assessment: EMB-REQ-29 - **EMB-3-REQ-7**: DNS rebinding prevention shall be enforced → Assessment: EMB-REQ-31 - **EMB-3-REQ-8**: Trust boundary violations shall trigger detailed security events → Assessment: EMB-REQ-32 - **EMB-3-REQ-9**: Local content signature verification shall use secure algorithms (RSA-2048+, ECDSA P-256+) → Assessment: EMB-REQ-56 - **EMB-3-REQ-10**: Modified local content shall fail signature verification and be rejected → Assessment: EMB-REQ-57 - **EMB-3-REQ-11**: Signing keys for local content shall be protected from extraction → Assessment: EMB-REQ-58 - **EMB-3-REQ-12**: Hybrid deployments (local + remote) shall maintain strictest security controls for each content type → Assessment: EMB-REQ-59 **References**: - OWASP Mobile Top 10 - M1: Improper Platform Usage: https://owasp.org/www-project-mobile-top-10/ - CWE-749: Exposed Dangerous Method or Function: https://cwe.mitre.org/data/definitions/749.html - CWE-940: Improper Verification of Source of a Communication Channel: https://cwe.mitre.org/data/definitions/940.html - Android Network Security Configuration: https://developer.android.com/training/articles/security-config - iOS App Transport Security: https://developer.apple.com/documentation/security/preventing_insecure_network_connections - Certificate Pinning Best Practices: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning - Electron Context Isolation: https://www.electronjs.org/docs/latest/tutorial/context-isolation ## 5.9 Remote Data Processing Systems **[RDPS]** The manufacturer shall implement secure remote data processing systems that protect data confidentiality, integrity, and availability while maintaining product functionality. **Overview**: A remote data processing solution (RDPS) is a component of a product that has an essential role in one or more of a product's functions and performs that role remotely from the local components of the product. While many product update methods may fit into the definition of an RDPS, product update requirements are considered separately in Section 5.5 Update Delivery Mechanisms of this document. All remote data processing solutions are components of the product, but their use is independent of the product's deployment environment. While a product's employment of an RDPS may create additional security requirements related to its remote nature and affect the tools available to an assessor, use of an RDPS does not significantly change the security requirements associated with the product's use or functions. A remote data processing solution is a component of the product when it has been designed by or for the manufacturer or is in the manufacturer's control, and it is necessary for the product to perform its intended functions. Remote data processing solutions can perform any function of the product and are not limited to a product's core functions. Common uses of RDPS include remote storage of profile or configuration data, often to enable similar devices to use or access the data from a web interface. The system can also be a log storage or metrics collection endpoint, which is part of the product design, but those have dedicated sections in the present document with detailed requirements. **CRA Applicability**: The CRA has a subtle difference in how the application is designed. A website that is accessed with a browser is not in scope, but an online service which is used from an installed application is in scope. The CRA Article 3(2) defines that an RDPS is under the responsibility of the manufacturer. Therefore, if the product default configuration is overwritten with local amendments by the user of the product, it is important that similar protection can be achieved as described in this section. **Capability**: Secure remote data processing with encryption, authentication, availability controls, and data protection **Conditions**: - **RDPS-0**: No remote data processing (fully local operation) - **RDPS-1**: Limited remote processing for non-sensitive data (configuration, preferences) - **RDPS-2**: Extended remote processing including sensitive data with strong security controls - **RDPS-3**: Full remote processing with critical data requiring maximum security **Threats**: - Eavesdropping and man-in-the-middle attacks during data transmission - Unauthorized access to remote systems and data - Data integrity compromise and unauthorized modification - Denial of service attacks affecting service availability - Multitenant data leakage in shared infrastructure - Insider abuse and unauthorized access by service operators - Data residency and sovereignty violations - Insufficient data protection at rest - Inadequate backup and recovery capabilities - Vendor lock-in preventing data portability - Service discontinuation without migration path - Configuration tampering when user-defined RDPS endpoints allowed **Risk**: HIGH - Compromised RDPS can lead to data theft, service disruption, privacy violations, and complete product functionality loss **Requirements**: #### RDPS-0 Requirements (No remote data processing) - **RDPS-0-REQ-1**: Browser shall operate fully offline without requiring remote connectivity → Assessment: RDPS-REQ-52 - **RDPS-0-REQ-2**: All user data shall be stored locally without remote synchronization → Assessment: RDPS-REQ-53 - **RDPS-0-REQ-3**: Browser shall not transmit telemetry, diagnostics, or usage data to remote servers → Assessment: RDPS-REQ-54 - **RDPS-0-REQ-4**: Browser shall function without degradation when network connectivity unavailable → Assessment: RDPS-REQ-55 - **RDPS-0-REQ-5**: No remote authentication or authorization services shall be required → Assessment: RDPS-REQ-56 - **RDPS-0-REQ-6**: Browser shall document all local-only operation capabilities and limitations → Assessment: RDPS-REQ-57 - **RDPS-0-REQ-7**: Users shall be informed that no data leaves the local system → Assessment: RDPS-REQ-58 #### RDPS-1 Requirements (Limited remote processing for non-sensitive data) - **RDPS-1-REQ-1**: Browser shall document product functionality when RDPS connectivity unavailable → Assessment: RDPS-REQ-1 - **RDPS-1-REQ-2**: Browser shall define all data processed or stored in RDPS with data classification → Assessment: RDPS-REQ-2 - **RDPS-1-REQ-3**: Browser shall classify criticality of all RDPS-processed data → Assessment: RDPS-REQ-3 - **RDPS-1-REQ-4**: Browser shall encrypt all data transmissions to RDPS using TLS 1.3 or higher → Assessment: RDPS-REQ-4 - **RDPS-1-REQ-5**: Browser shall authenticate RDPS endpoints using certificate validation → Assessment: RDPS-REQ-5 - **RDPS-1-REQ-6**: Browser shall implement retry mechanisms with exponential backoff for RDPS failures → Assessment: RDPS-REQ-6 - **RDPS-1-REQ-7**: Browser shall cache critical data locally for offline operation → Assessment: RDPS-REQ-7 - **RDPS-1-REQ-8**: Browser shall implement secure authentication for RDPS access → Assessment: RDPS-REQ-8 - **RDPS-1-REQ-9**: Browser shall validate server certificates and enforce certificate pinning for RDPS → Assessment: RDPS-REQ-9 - **RDPS-1-REQ-10**: Browser shall implement timeout controls for RDPS connections → Assessment: RDPS-REQ-10 - **RDPS-1-REQ-11**: Browser shall log RDPS connectivity failures and errors → Assessment: RDPS-REQ-11 - **RDPS-1-REQ-12**: Browser shall gracefully degrade functionality when RDPS unavailable → Assessment: RDPS-REQ-12 - **RDPS-1-REQ-13**: Browser shall not expose sensitive authentication credentials to RDPS → Assessment: RDPS-REQ-13 - **RDPS-1-REQ-14**: Browser shall implement rate limiting for RDPS requests → Assessment: RDPS-REQ-14 - **RDPS-1-REQ-15**: Browser shall validate all data received from RDPS before processing → Assessment: RDPS-REQ-15 #### RDPS-2 Requirements (Extended remote processing with sensitive data) - **RDPS-2-REQ-1**: All RDPS-1 requirements shall be implemented → Assessment: RDPS-REQ-59 - **RDPS-2-REQ-2**: Browser shall encrypt sensitive data at rest in RDPS storage → Assessment: RDPS-REQ-16 - **RDPS-2-REQ-3**: Browser shall implement mutual TLS authentication for RDPS connections → Assessment: RDPS-REQ-17 - **RDPS-2-REQ-4**: Browser shall maintain redundant copies of critical data for recovery → Assessment: RDPS-REQ-18 - **RDPS-2-REQ-5**: Browser shall support data recovery from backups with integrity verification → Assessment: RDPS-REQ-19 - **RDPS-2-REQ-6**: Browser shall implement data retention policies with secure deletion → Assessment: RDPS-REQ-20 - **RDPS-2-REQ-7**: Browser shall enforce access controls on RDPS data per-user and per-origin → Assessment: RDPS-REQ-21 - **RDPS-2-REQ-8**: Browser shall audit all RDPS access and modifications → Assessment: RDPS-REQ-22 - **RDPS-2-REQ-9**: Browser shall implement data integrity verification using cryptographic hashes → Assessment: RDPS-REQ-23 - **RDPS-2-REQ-10**: Browser shall protect against RDPS endpoint substitution attacks → Assessment: RDPS-REQ-24 - **RDPS-2-REQ-11**: Browser shall implement defense against replay attacks on RDPS communications → Assessment: RDPS-REQ-25 - **RDPS-2-REQ-12**: Browser shall enforce data minimization principles for RDPS transmissions → Assessment: RDPS-REQ-26 - **RDPS-2-REQ-13**: Browser shall provide user controls for RDPS data synchronization → Assessment: RDPS-REQ-27 - **RDPS-2-REQ-14**: Browser shall implement secure data export from RDPS for data portability → Assessment: RDPS-REQ-28 - **RDPS-2-REQ-15**: When user-configurable RDPS endpoints provided, all associated security settings shall be configurable → Assessment: RDPS-REQ-29 - **RDPS-2-REQ-16**: Browser shall verify RDPS service availability before critical operations → Assessment: RDPS-REQ-30 - **RDPS-2-REQ-17**: Browser shall implement connection pooling with security controls for RDPS → Assessment: RDPS-REQ-31 - **RDPS-2-REQ-18**: Browser shall protect RDPS authentication tokens from extraction and theft → Assessment: RDPS-REQ-32 #### RDPS-3 Requirements (Full remote processing with critical data) - **RDPS-3-REQ-1**: All RDPS-2 requirements shall be implemented → Assessment: RDPS-REQ-60 - **RDPS-3-REQ-2**: Browser shall implement end-to-end encryption for all critical data in RDPS → Assessment: RDPS-REQ-33 - **RDPS-3-REQ-3**: Browser shall use hardware-backed key storage for RDPS encryption keys → Assessment: RDPS-REQ-34 - **RDPS-3-REQ-4**: Browser shall implement high-availability RDPS architecture with failover → Assessment: RDPS-REQ-35 - **RDPS-3-REQ-5**: Browser shall document and test RDPS disaster recovery procedures → Assessment: RDPS-REQ-36 - **RDPS-3-REQ-6**: Browser shall implement real-time RDPS integrity monitoring → Assessment: RDPS-REQ-37 - **RDPS-3-REQ-7**: Browser shall provide RDPS security event logging with SIEM integration → Assessment: RDPS-REQ-38 - **RDPS-3-REQ-8**: Browser shall enforce geographic data residency requirements when configured → Assessment: RDPS-REQ-39 - **RDPS-3-REQ-9**: Browser shall implement zero-trust architecture for RDPS access → Assessment: RDPS-REQ-40 - **RDPS-3-REQ-10**: Browser shall support regulatory compliance logging for RDPS operations → Assessment: RDPS-REQ-41 - **RDPS-3-REQ-11**: Browser shall implement automated RDPS security scanning and vulnerability detection → Assessment: RDPS-REQ-42 - **RDPS-3-REQ-12**: Browser shall provide cryptographic proof of RDPS data integrity → Assessment: RDPS-REQ-43 - **RDPS-3-REQ-13**: Browser shall implement secure multi-tenancy with data isolation in RDPS → Assessment: RDPS-REQ-44 - **RDPS-3-REQ-14**: Browser shall provide incident response procedures for RDPS breaches → Assessment: RDPS-REQ-45 - **RDPS-3-REQ-15**: Browser shall implement RDPS access revocation mechanisms → Assessment: RDPS-REQ-46 - **RDPS-3-REQ-16**: Browser shall provide transparency reporting for RDPS data access → Assessment: RDPS-REQ-47 - **RDPS-3-REQ-17**: Browser shall implement forward secrecy for RDPS communications → Assessment: RDPS-REQ-48 - **RDPS-3-REQ-18**: Browser shall provide user notification of RDPS security events → Assessment: RDPS-REQ-49 - **RDPS-3-REQ-19**: Browser shall document service discontinuation and data migration procedures → Assessment: RDPS-REQ-50 - **RDPS-3-REQ-20**: Enterprise administrators shall be able to configure RDPS security policies → Assessment: RDPS-REQ-51 # 6 Technical Security Assessments This chapter provides detailed technical assessment procedures for verifying conformance with the security requirements specified in Chapter 5. Each assessment follows a structured methodology designed to produce objective, repeatable results suitable for third-party conformity assessment. ## 6.1 Domain and Origin Isolation Assessments This section covers assessment procedures for requirements DOM-REQ-1 through DOM-REQ-12, addressing site isolation, origin-based security boundaries, cross-origin resource sharing, and related isolation mechanisms. ### Assessment: DOM-REQ-1 (Process-per-site isolation) **Reference**: DOM-REQ-1 - Browser shall implement process-per-site isolation **Given**: A conformant browser with site isolation capabilities (DOM-1 or higher) **Task**: Verify that the browser enforces operating system-level process isolation between distinct sites to prevent compromise of one site from affecting other sites, and to enable OS-level security mechanisms (ASLR, sandboxing, memory protection) to provide defense-in-depth against web-based attacks. **Verification**: 1. Open the browser and navigate to three distinct origins: https://example.com, https://test.com, and https://example.org → Create cross-origin iframes (example.com embedding test.com) and verify they run in separate processes 2. In each origin, open the browser's task manager or use platform process monitoring tools (Process Explorer on Windows, Activity Monitor on macOS, ps/top on Linux) → Confirm that each distinct site (eTLD+1) is allocated a separate renderer process 3. Identify the renderer processes associated with each origin → Verify that same-site navigations reuse the same renderer process 4. Record the Process IDs (PIDs) for each origin's renderer process → Check that cross-origin iframes are isolated in separate processes from their embedder 5. Navigate from https://example.com to https://example.com/page2 and verify the PID remains the same → Validate that process separation is maintained throughout the browser session 6. Navigate from https://example.com to https://different.example.com (different subdomain, same site) and verify the PID remains the same or changes according to documented site isolation policy → Review browser task manager or process monitoring tools to confirm distinct processes for distinct sites **Pass Criteria**: All distinct sites use separate renderer processes AND cross-origin iframes are isolated in separate processes **Fail Criteria**: Any two distinct sites share a renderer process OR cross-origin iframe runs in the same process as embedder **Evidence**: Screenshots of browser task manager showing distinct PIDs for distinct sites, process tree diagrams, video recordings of process creation during navigation **References**: - Chromium Site Isolation Architecture: https://www.chromium.org/Home/chromium-security/site-isolation/ - Process Models for Web Browsers: https://www.chromium.org/developers/design-documents/process-models/ - Firefox Project Fission: https://wiki.mozilla.org/Project_Fission ### Assessment: DOM-REQ-2 (Cross-origin read blocking) **Reference**: DOM-REQ-2 - Browser shall enforce Cross-Origin Read Blocking (CORB) **Given**: A conformant browser with DOM-1 or higher capability **Task**: Verify that the browser prevents attackers from using script/image/stylesheet tags to read sensitive cross-origin data (JSON, HTML, XML) that lacks CORS headers, protecting against Spectre-style attacks and cross-site data leakage where malicious pages attempt to load victim resources into contexts that could expose response data through side channels. **Verification**: 1. Set up a test web server serving resources with various MIME types (HTML, JSON, XML, images, scripts) → Test edge cases: nosniff headers, ambiguous MIME types, empty responses 2. Create a test page at https://attacker.com that attempts to load resources from https://victim.com using various methods: → Confirm that JSON, HTML, and XML responses without CORS headers are blocked from cross-origin script contexts - ` ``` 4. Verify blocking behavior based on CORP header → Check that resources with CORP: cross-origin load from any origin 5. Test CORP interaction with CORS headers → Validate that browser console shows CORP blocking errors with clear messages 6. Verify that CORP applies to all resource types (images, scripts, frames, fetch) → Confirm that CORP is enforced for all resource types **Pass Criteria**: All CORP policies are enforced according to specification AND browser logs blocking errors **Fail Criteria**: Any resource loads in violation of its CORP header OR no CORP enforcement is observable **Evidence**: Network panel showing blocked resources, console screenshots showing CORP errors, test results demonstrating same-origin/same-site/cross-origin behavior **References**: - CORP Specification: https://fetch.spec.whatwg.org/#cross-origin-resource-policy-header - Cross-Origin Isolation guide: https://web.dev/coop-coep/ - CORP (MDN): https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy ### Assessment: DOM-REQ-10 (COOP enforcement) **Reference**: DOM-REQ-10 - Browser shall enforce Cross-Origin-Opener-Policy **Given**: A conformant browser with DOM-2 or higher capability **Task**: Verify that the browser enforces Cross-Origin-Opener-Policy (COOP) to prevent cross-origin documents from sharing browsing context groups and accessing each other through window.opener references, protecting against Spectre-style attacks by enabling process isolation and allowing sites to opt into cross-origin isolation that grants access to powerful features like SharedArrayBuffer. **Verification**: 1. Create test pages with various COOP headers: → Test COOP reporting endpoint functionality - `Cross-Origin-Opener-Policy: same-origin` - `Cross-Origin-Opener-Policy: same-origin-allow-popups` - `Cross-Origin-Opener-Policy: unsafe-none` (default) 2. Test window.opener relationships: → Confirm that COOP: same-origin severs opener relationship with cross-origin pages - Page A (COOP: same-origin) opens Page B (no COOP) → opener should be null - Page A (no COOP) opens Page B (COOP: same-origin) → opener should be null - Page A (COOP: same-origin) opens Page B (same-origin with COOP) → opener should work 3. Verify browsing context group isolation → Verify that COOP: same-origin-allow-popups preserves opener for popups but not navigations 4. Test that cross-origin-isolated pages cannot be in the same browsing context group as non-isolated pages → Check that cross-origin isolated pages (COOP + COEP) get access to high-resolution timers and SharedArrayBuffer 5. Verify SharedArrayBuffer availability in cross-origin isolated contexts → Validate that browser process allocation reflects browsing context group isolation **Pass Criteria**: Opener relationship is severed as specified by COOP policy AND cross-origin isolation enables SharedArrayBuffer **Fail Criteria**: Opener relationship persists in violation of COOP policy OR SharedArrayBuffer unavailable in properly isolated context **Evidence**: Console logs showing null window.opener, DevTools showing browsing context groups, demonstration of SharedArrayBuffer availability, network captures of violation reports **References**: - COOP Specification: https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policies - Cross-Origin Isolation guide: https://web.dev/coop-coep/ - SharedArrayBuffer and cross-origin isolation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer ### Assessment: DOM-REQ-11 (COEP enforcement) **Reference**: DOM-REQ-11 - Browser shall enforce Cross-Origin-Embedder-Policy **Given**: A conformant browser with DOM-2 or higher capability **Task**: Verify that the browser enforces Cross-Origin-Embedder-Policy (COEP) to ensure that all cross-origin resources loaded by a document have explicitly opted in via CORP or CORS headers, preventing the document from inadvertently loading attacker-controlled resources that could be used in Spectre-style side-channel attacks, and enabling cross-origin isolation when combined with COOP. **Verification**: 1. Create a test page with COEP header: `Cross-Origin-Embedder-Policy: require-corp` → Confirm that resources without CORP or CORS are blocked when page has COEP: require-corp 2. From this page, attempt to load various cross-origin resources: → Verify that resources with CORP: cross-origin load successfully - Image without CORP/CORS: `` - Image with CORP: `` (CORP: cross-origin) - Script without CORS: `` - Use eval(): `eval("alert('test')")` - Use Function constructor: `new Function("alert('test')")` - Load external scripts from CDNs: ` ``` 2. Verify that resources with correct integrity hashes load successfully → Resources with mismatched hashes are blocked from loading 3. Modify resource content to mismatch integrity hash and verify blocking → Browser console displays clear SRI violation errors 4. Test multiple hash algorithms: sha256, sha384, sha512 → Multiple hash algorithms (sha256, sha384, sha512) are supported 5. Test multiple integrity values (fallback hashes) → Multiple integrity values allow fallback verification 6. Test CORS requirement for cross-origin SRI resources → Cross-origin resources require proper CORS headers for SRI 7. Verify browser console errors for SRI failures → SRI failures prevent resource execution/application 8. Test SRI with different resource types (scripts, stylesheets, preload links) → Network panel shows blocked resources with SRI violations 9. Test that SRI failures prevent script execution/style application → Page functionality degrades gracefully when SRI blocks resources **Pass Criteria**: Resources with correct integrity hashes load successfully AND resources with mismatched hashes are blocked with clear errors **Fail Criteria**: Resources with mismatched hashes load and execute OR no error messages displayed **Evidence**: Browser console screenshots showing SRI errors, network panel showing blocked resources, test page demonstrating SRI enforcement, DevTools showing integrity attribute validation **References**: - W3C Subresource Integrity Specification: https://www.w3.org/TR/SRI/ - MDN Subresource Integrity: https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity - SRI Hash Generator: https://www.srihash.org/ - OWASP SRI Guidance: https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html#subresource-integrity - Chrome SRI Implementation: https://www.chromium.org/Home/chromium-security/education/tls/ ### Assessment: ENC-REQ-14 (Encrypted SNI) **Reference**: ENC-REQ-14 - Browser shall support Encrypted Server Name Indication (ESNI/ECH) to prevent SNI-based censorship and surveillance **Given**: A conformant browser with encryption capability (ENC-3 or higher) **Task**: Verify that Encrypted SNI support prevents network surveillance and censorship where adversaries monitor TLS handshakes to identify which websites users visit, enabling targeted blocking or surveillance. Encrypting SNI protects user privacy by hiding the destination hostname from network observers, preventing traffic analysis attacks that reveal browsing patterns even when connections use HTTPS. **Verification**: 1. Configure a test server supporting Encrypted Client Hello (ECH) or ESNI → Examine browser settings for ECH/ESNI enablement 2. Publish ECH configuration in DNS (TLS HTTPS record type 65) → Browser successfully negotiates ECH/ESNI when available 3. Navigate browser to the test server → SNI extension is not visible in cleartext in packet captures 4. Capture TLS handshake using packet analysis tools → ClientHello contains encrypted_client_hello extension 5. Verify that SNI extension is encrypted in ClientHello message → Browser retrieves ECH configuration via DNS 6. Test fallback behavior when ECH is unavailable → Fallback to cleartext SNI works when ECH unavailable 7. Test that cleartext SNI is not visible in packet captures → DNS queries for ECH config are encrypted (DoH/DoT) 8. Verify browser DNS-over-HTTPS (DoH) or DNS-over-TLS (DoT) usage for ECH config retrieval → Browser DevTools or internal pages show ECH status 9. Test ECH with split-horizon DNS configurations → Connection succeeds with ECH-enabled servers **Pass Criteria**: Browser encrypts SNI when ECH is available AND cleartext SNI is not visible in packet captures **Fail Criteria**: SNI is transmitted in cleartext when ECH is available OR browser doesn't support ECH **Evidence**: Packet captures showing encrypted ClientHello, Wireshark analysis showing absence of cleartext SNI, DNS query logs showing ECH config retrieval, browser configuration screenshots **References**: - RFC 8744 - Encrypted Server Name Indication (ESNI): https://datatracker.ietf.org/doc/html/rfc8744 - Encrypted Client Hello (ECH) Draft: https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni - Cloudflare ECH Announcement: https://blog.cloudflare.com/encrypted-client-hello/ - Mozilla ECH Implementation: https://support.mozilla.org/en-US/kb/understand-encrypted-client-hello - Chrome ECH Status: https://chromestatus.com/feature/6196703843581952 ### Assessment: ENC-REQ-15 (Certificate error UI) **Reference**: ENC-REQ-15 - Browser shall display clear, prominent warnings for certificate errors with appropriate risk communication **Given**: A conformant browser with encryption capability (ENC-1 or higher) **Task**: Verify that certificate error UI effectively warns users about man-in-the-middle attacks or compromised servers before they transmit sensitive data to untrusted connections. Clear, prominent warnings with appropriate risk communication prevent users from inadvertently trusting malicious certificates, while making bypass actions deliberately difficult discourages risky behavior that could expose credentials or personal information. **Verification**: 1. Create test scenarios for various certificate errors: → Certificate errors trigger full-page interstitial warnings - Expired certificate - Untrusted CA - Hostname mismatch - Self-signed certificate - Revoked certificate - Weak signature algorithm (SHA-1) - Invalid certificate chain 2. Navigate to each error scenario and document browser UI response → Warning messages clearly explain the security risk 3. Verify that warning messages clearly communicate security risk → Users should take explicit action to bypass (not easy clickthrough) 4. Test that warnings are difficult to bypass (require explicit user action) → Technical details are accessible via "Advanced" or similar link 5. Evaluate warning message clarity for non-technical users → Certificate details can be viewed and inspected 6. Test that technical details are available (certificate viewer) → Warning UI uses appropriate visual indicators (red, warning icons) 7. Verify that bypass actions are clearly labeled with risk warnings → Bypass options are clearly labeled with risk warnings 8. Test mobile and desktop warning UI differences → Error types are distinguishable in UI messages 9. Verify that errors are logged in browser console → Console logs provide technical error details **Pass Criteria**: All certificate errors display prominent warnings AND bypass requires explicit user acknowledgment of risk **Fail Criteria**: Certificate errors can be bypassed silently OR warnings are unclear or easily dismissed **Evidence**: Screenshots of warning UI for each error type, user testing feedback on clarity, console error logs, comparison with browser security UI guidelines **References**: - Google Transparency Report - HTTPS Security: https://transparencyreport.google.com/https/overview ### Assessment: ENC-REQ-16 (HTTPS-first mode) **Reference**: ENC-REQ-16 - Browser shall implement HTTPS-first mode to automatically upgrade HTTP connections to HTTPS when available **Given**: A conformant browser with encryption capability (ENC-2 or higher) **Task**: Verify that HTTPS-first mode protects users from accidental insecure connections where attackers perform SSL-stripping attacks to downgrade HTTPS to HTTP, enabling interception of credentials and session tokens. Automatic HTTPS upgrade eliminates the window of vulnerability before secure connections are established, while user warnings for HTTP-only sites ensure informed consent before transmitting data over insecure channels. **Verification**: 1. Enable HTTPS-first mode in browser settings → Verify browser remembers HTTP-only sites to avoid repeated upgrade attempts 2. Navigate to HTTP URLs of sites that support HTTPS (http://example.com) → HTTP URLs are automatically upgraded to HTTPS 3. Verify that browser automatically upgrades to HTTPS → Address bar shows HTTPS protocol after upgrade 4. Test fallback behavior when HTTPS is unavailable: → Fallback to HTTP works with user consent when HTTPS unavailable - Site doesn't support HTTPS - HTTPS connection fails/times out - Certificate error on HTTPS version 5. Verify user is prompted before loading HTTP-only sites → User is warned before loading HTTP-only sites 6. Test HTTPS upgrade for embedded resources (images, scripts, iframes) → Browser remembers HTTP-only sites (cache/allowlist) 7. Test interaction with HSTS and upgrade-insecure-requests → Embedded resources are also upgraded 8. Measure performance impact of HTTPS upgrade attempts → HTTPS-first works alongside HSTS 9. Test HTTPS-first with different types of navigation (typed URL, bookmarks, links) → Network panel shows upgrade attempts **Pass Criteria**: HTTP connections are automatically upgraded to HTTPS when available AND users are warned before HTTP-only sites load **Fail Criteria**: HTTP URLs are not upgraded OR no warnings for HTTP-only sites OR fallback doesn't work **Evidence**: Network logs showing HTTP to HTTPS upgrades, address bar screenshots, warning dialog screenshots, performance measurements, browser settings showing HTTPS-first configuration **References**: - Chrome HTTPS-First Mode: https://blog.chromium.org/2021/07/increasing-https-adoption.html - Firefox HTTPS-Only Mode: https://support.mozilla.org/en-US/kb/https-only-prefs - HTTPS Upgrade Mechanisms: https://www.w3.org/TR/upgrade-insecure-requests/ - EFF HTTPS Everywhere: https://www.eff.org/https-everywhere - OWASP Transport Layer Protection: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html ### Assessment: ENC-REQ-17 (Certificate pinning bypass detection) **Reference**: ENC-REQ-17 - Browser shall detect and prevent attempts to bypass certificate pinning protections **Given**: A conformant browser with encryption capability (ENC-2 or higher) **Task**: Verify that certificate pinning bypass detection prevents attackers or malware from installing rogue root certificates to perform man-in-the-middle attacks against pinned domains. Detecting bypass attempts protects browser vendor properties and high-security sites from SSL interception, while logging and user warnings ensure transparency when certificate validation is weakened by enterprise policies or security tools. **Verification**: 1. Configure test environment with certificate pinning enabled → Static pins for built-in domains cannot be bypassed 2. Attempt various bypass techniques: → Custom root CA installation triggers user warnings - Installing custom root CA certificates - Using SSL/TLS interception proxies (corporate MITM) - Modifying browser certificate store - Using browser extensions to disable pinning - Command-line flags to disable certificate validation 3. Test browser's built-in static pins (Google, Mozilla properties) → SSL interception is detected and indicated in UI 4. Verify that pin bypass attempts are detected and logged → Browser logs pin bypass attempts 5. Test enterprise policy controls for pinning exceptions → Certificate store modifications are visible to users 6. Verify user notifications for certificate store modifications → Enterprise policies can override pins with explicit configuration 7. Test that developer tools can't silently bypass pinning → Developer tools respect pinning (or show clear bypass warnings) 8. Examine browser internal state for pin enforcement → Security indicators reflect weakened security when pins bypassed 9. Test interaction between pin bypass and security indicators → Console logs show certificate validation details **Pass Criteria**: Static certificate pins cannot be bypassed without explicit user/admin action AND pin bypass attempts are logged and indicated **Fail Criteria**: Pins can be silently bypassed OR no indication when certificate validation is weakened **Evidence**: Console logs showing pin enforcement, certificate store modification warnings, test results from bypass attempts, enterprise policy documentation, security indicator screenshots **References**: - Chrome Certificate Pinning: https://www.chromium.org/Home/chromium-security/education/tls/ - OWASP Certificate Pinning: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning - SSL Interception Detection: https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/ - Mozilla Pin Override: https://wiki.mozilla.org/SecurityEngineering/Public_Key_Pinning ### Assessment: ENC-REQ-18 (TLS downgrade protection) **Reference**: ENC-REQ-18 - Browser shall implement protections against TLS version and cipher suite downgrade attacks **Given**: A conformant browser with encryption capability (ENC-1 or higher) **Task**: Verify that TLS downgrade protection prevents man-in-the-middle attackers from forcing browsers to use older TLS versions or weaker cipher suites with known vulnerabilities like POODLE or BEAST. Downgrade protection ensures that even when attackers intercept and modify handshake messages, the browser detects the manipulation and aborts the connection rather than proceeding with weakened cryptographic parameters. **Verification**: 1. Set up test environment capable of simulating man-in-the-middle attacks → Browser signals maximum supported TLS version correctly 2. Configure server supporting TLS 1.3 and TLS 1.2 → TLS_FALLBACK_SCSV is included in fallback connections 3. Attempt to force downgrade from TLS 1.3 to TLS 1.2 by manipulating ClientHello → Version rollback attacks are detected and connection aborted 4. Test TLS_FALLBACK_SCSV signaling value (RFC 7507) → Cipher suite downgrade attempts trigger handshake failure 5. Attempt downgrade attacks during connection: → Browser validates ServerHello.random for downgrade sentinels - Version rollback to older TLS versions - Cipher suite downgrade to weaker algorithms - Extension stripping attacks 6. Verify browser detects and rejects downgrade attempts → Extension stripping is detected through transcript hash validation 7. Test that Finished message MAC includes all handshake messages → Finished message properly authenticates handshake 8. Verify TLS 1.3 downgrade protection sentinel values in ServerHello.random → Console shows error messages for detected downgrade attempts 9. Test protection against truncation attacks → Connection fails securely rather than completing with weakened security **Pass Criteria**: All TLS downgrade attempts are detected AND connections fail rather than proceed with weakened security **Fail Criteria**: Any downgrade attack succeeds OR browser accepts weakened connection parameters **Evidence**: Packet captures showing downgrade attempts and rejection, Wireshark showing TLS_FALLBACK_SCSV, console error logs, test scripts demonstrating attack attempts **References**: - RFC 7507 - TLS Fallback SCSV: https://datatracker.ietf.org/doc/html/rfc7507 - RFC 8446 - TLS 1.3 Downgrade Protection: https://datatracker.ietf.org/doc/html/rfc8446#section-4.1.3 - POODLE Attack and Downgrade Prevention: https://www.openssl.org/~bodo/ssl-poodle.pdf - Chrome TLS Implementation: https://www.chromium.org/Home/chromium-security/education/tls/ ### Assessment: ENC-REQ-19 (Legacy crypto deprecation) **Reference**: ENC-REQ-19 - Browser shall deprecate and remove support for legacy cryptographic algorithms and protocols **Given**: A conformant browser with encryption capability (ENC-1 or higher) **Task**: Verify that legacy crypto deprecation prevents attackers from exploiting known cryptographic weaknesses in outdated algorithms like SHA-1 collision attacks, RC4 biases, or short RSA key factorization. Progressive deprecation with clear timelines gives organizations migration paths while ensuring browsers eventually reject severely compromised cryptography that no longer provides meaningful security guarantees. **Verification**: 1. Test browser behavior with legacy cryptographic elements: → TLS 1.0 and 1.1 connections are rejected or show warnings - TLS 1.0 and TLS 1.1 protocols - SHA-1 certificates - 1024-bit RSA keys - MD5-based signatures - RC4 cipher suite - CBC-mode cipher suites - DSA certificates 2. Verify that legacy protocols/algorithms are rejected or trigger warnings → SHA-1 certificates trigger security errors 3. Test deprecation timeline (when were features removed) → 1024-bit RSA keys are rejected 4. Verify that browser update notes document deprecated features → MD5 and RC4 are completely disabled 5. Test enterprise policy overrides for legacy support (temporary exceptions) → Legacy crypto rejections show clear error messages 6. Check browser developer documentation for deprecation roadmap → Browser documentation lists deprecated features with timelines 7. Test fallback behavior when modern crypto unavailable → Enterprise policies can temporarily enable legacy support (if necessary) 8. Verify that critical errors can't be bypassed for severely deprecated crypto → No silent fallback to insecure legacy protocols **Pass Criteria**: All severely deprecated cryptographic elements are rejected AND users are warned about moderately deprecated features **Fail Criteria**: Legacy crypto is accepted without warnings OR deprecated features work without indication **Evidence**: Connection error screenshots for legacy servers, browser release notes documenting deprecations, console error logs, test results across browser versions showing deprecation timeline **References**: - Chrome Deprecation Timeline: https://www.chromium.org/Home/chromium-security/education/tls/ - Mozilla Security Roadmap: https://wiki.mozilla.org/Security/Server_Side_TLS - RFC 8996 - Deprecating TLS 1.0 and TLS 1.1: https://datatracker.ietf.org/doc/html/rfc8996 - CA/B Forum - SHA-1 Deprecation: https://cabforum.org/2014/10/16/ballot-118-sha-1-sunset/ - NIST Cryptographic Algorithm Deprecation: https://csrc.nist.gov/projects/hash-functions ### Assessment: ENC-REQ-20 (Cryptographic key isolation) **Reference**: ENC-REQ-20 - Browser shall isolate cryptographic keys and prevent cross-origin key access **Given**: A conformant browser with encryption capability (ENC-2 or higher) **Task**: Verify that cryptographic key isolation enforces same-origin policy for Web Crypto API keys, preventing malicious cross-origin scripts from accessing or exfiltrating cryptographic keys generated by other origins. Key isolation ensures that even if an attacker compromises one origin, they cannot steal cryptographic keys belonging to other origins to impersonate users or decrypt sensitive data protected by those keys. **Verification**: 1. Create test scenarios with Web Crypto API key generation on different origins → Test key isolation for different user profiles/contexts 2. Generate cryptographic keys on https://origin-a.com using Web Crypto API → Keys generated on one origin cannot be accessed from another origin 3. Attempt to access keys from https://origin-b.com → IndexedDB key storage respects same-origin policy 4. Test IndexedDB key storage isolation across origins → Non-extractable keys cannot be exported or extracted 5. Verify that keys marked as non-extractable cannot be extracted → Key usage restrictions are enforced (keys can't be used for unauthorized operations) 6. Test key export restrictions based on key usage → Key handles are opaque and cannot be transferred cross-origin 7. Test that key handles cannot be passed between origins via postMessage → Browser internal key storage is isolated per origin 8. Verify key isolation in browser's internal key storage → Hardware-backed keys are protected by platform security 9. Test hardware-backed key storage (if available, e.g., WebAuthn) → Different user profiles have separate key storage **Pass Criteria**: Cryptographic keys are strictly isolated by origin AND non-extractable keys cannot be exported **Fail Criteria**: Keys can be accessed across origins OR key usage restrictions can be bypassed **Evidence**: Console logs showing SecurityError for cross-origin key access, test code demonstrating isolation, browser internal state showing key storage separation, WebAuthn test results **References**: - W3C Web Cryptography API - Key Storage: https://www.w3.org/TR/WebCryptoAPI/#concepts-key-storage - MDN CryptoKey: https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey - Chrome Web Crypto Key Isolation: https://chromium.googlesource.com/chromium/src/+/master/components/webcrypto/README.md - OWASP Key Management Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html - WebAuthn Specification - Credential Storage: https://www.w3.org/TR/webauthn-2/#credential-storage ### Assessment: ENC-REQ-21 (Certificate store security) **Reference**: ENC-REQ-21 - Browser shall maintain secure certificate store with integrity protection and auditing **Given**: A conformant browser with encryption capability (ENC-1 or higher) **Task**: Verify that certificate store security prevents attackers from installing rogue root certificates to enable man-in-the-middle attacks against all TLS connections. Protected certificate stores with integrity checking and audit trails detect unauthorized modifications, while requiring explicit user consent for root CA changes prevents malware from silently compromising the foundation of TLS trust. **Verification**: 1. Examine browser's certificate store location and access controls → Certificate store files have restrictive permissions (not world-readable) 2. Test that certificate store is protected with appropriate file system permissions → Certificate store cannot be modified without appropriate privileges 3. Attempt to modify certificate store while browser is running → Browser detects and handles certificate store corruption 4. Verify that certificate store changes are logged/auditable → Root CA additions/removals require explicit user consent 5. Test root CA certificate management: → Certificate store UI shows all installed root certificates - View installed root certificates - Add custom root CA (with user consent) - Remove root CA (with user consent) - Verify certificate trust settings 6. Test that system certificate store is used appropriately → System certificate store integration works correctly 7. Verify that enterprise-managed certificates are clearly indicated → Enterprise-managed certificates are visibly marked 8. Test certificate store integrity verification mechanisms → Certificate store modifications are logged 9. Test that certificate store updates are secure and authenticated → Users are notified of certificate store changes 10. Verify user notifications for certificate store modifications → Certificate store updates are signed and verified **Pass Criteria**: Certificate store is protected with appropriate access controls AND modifications require user consent and are logged **Fail Criteria**: Certificate store can be modified without user knowledge OR no audit trail for modifications **Evidence**: File system permission analysis, certificate store UI screenshots, audit log samples, test results from modification attempts, enterprise policy documentation **References**: - Mozilla Root Store Program: https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/ - Chrome Root Store: https://chromium.googlesource.com/chromium/src/+/main/net/data/ssl/chrome_root_store/ - Microsoft Trusted Root Program: https://learn.microsoft.com/en-us/security/trusted-root/program-requirements - Apple Root Certificate Program: https://www.apple.com/certificateauthority/ca_program.html - OWASP Certificate Management: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html#certificate-and-public-key-pinning ### Assessment: ENC-REQ-22 (Certificate pinning override prohibition) **Reference**: ENC-0-REQ-22 - Browser shall not allow user override of certificate pinning failures **Given**: A conformant browser with ENC-0 capability (full encryption with HSM support) **Task**: Verify that the browser prohibits user override of certificate pinning failures to prevent users from being socially engineered into accepting fraudulent certificates, ensuring that pinning violations - which indicate active man-in-the-middle attacks or certificate misissuance - are treated as hard failures that cannot be bypassed, protecting high-security environments where certificate pinning is a critical defense against targeted attacks on specific domains. **Verification**: 1. Configure test server with certificate pinning via HTTP header or browser built-in pins → Test that advanced settings do not provide override mechanism 2. Establish baseline connection to verify pinning is active → Verify that enterprise policies cannot disable pinning for pinned domains 3. Modify server certificate to trigger pinning violation: → Test that developer tools cannot bypass pinning enforcement - Use different certificate authority - Use expired pin - Use self-signed certificate - Use certificate from wrong domain 4. Attempt to connect to server with pinning violation → Verify that command-line flags cannot disable pinning 5. Verify that browser blocks connection with clear error message → Test that error message explains pinning failure clearly 6. Verify that no "proceed anyway" or "add exception" option is available → Verify that pinning failures are logged for security monitoring **Pass Criteria**: Pinning failures cannot be overridden through any mechanism AND no bypass options exist in UI OR settings AND error messages explain pinning violations AND failures are logged **Fail Criteria**: Users can bypass pinning failures OR override mechanisms exist OR pinning can be disabled for pinned domains OR unclear error messages **Evidence**: Pinning violation error screenshots showing no bypass option, settings inspection showing no override controls, policy test results, developer tools verification, log entries showing pinning failures **References**: - HTTP Public Key Pinning: https://www.rfc-editor.org/rfc/rfc7469 - Certificate Pinning Best Practices: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning - CWE-295: Improper Certificate Validation: https://cwe.mitre.org/data/definitions/295.html ### Assessment: ENC-REQ-23 (Hardware-backed cryptographic operations) **Reference**: ENC-0-REQ-23 - All cryptographic operations shall be performed in hardware-backed secure enclaves when available **Given**: A conformant browser with ENC-0 capability on hardware with secure enclave support **Task**: Verify that all cryptographic operations utilize hardware-backed secure enclaves (such as TPM, Secure Enclave, or TEE) when available, ensuring that private keys and sensitive cryptographic material never exist in unencrypted form in main memory, protecting against memory dumps, cold boot attacks, and malware that attempts to extract cryptographic keys from software-based key storage, providing defense-in-depth through hardware isolation. **Verification**: 1. Identify available hardware security features on test platform: → Verify that cryptographic operations occur within secure enclave - TPM (Trusted Platform Module) on Windows/Linux - Secure Enclave on macOS/iOS - TEE (Trusted Execution Environment) on Android - Hardware security modules (HSM) 2. Install browser on platform with hardware security support → Test that key material is not accessible via memory dumps 3. Verify that browser detects and initializes hardware security features → Verify that browser preferences or about page indicates hardware security status 4. Perform cryptographic operations requiring key generation or usage: → Test that browser falls back gracefully if hardware security is unavailable - TLS client certificates - Web Crypto API key generation - Password manager encryption keys - Browser sync encryption keys 5. Verify that keys are generated and stored in hardware-backed storage → Verify that enterprise policies can require hardware-backed crypto 6. Test that private keys cannot be exported from hardware storage → Test that hardware security failures are logged and reported to users **Pass Criteria**: Cryptographic operations use hardware-backed storage when available AND private keys are non-exportable AND key material is protected from memory access AND hardware security status is visible to users **Fail Criteria**: Keys are stored in software despite hardware availability OR keys can be exported OR no hardware security detection OR silent fallback without user notification **Evidence**: Platform security feature verification, key storage location inspection, memory dump analysis showing no key exposure, browser status page screenshots, enterprise policy configuration tests **References**: - Trusted Platform Module: https://trustedcomputinggroup.org/resource/tpm-library-specification/ - Web Crypto API Key Storage: https://www.w3.org/TR/WebCryptoAPI/#concepts-key-storage - Hardware Security Modules: https://csrc.nist.gov/glossary/term/hardware_security_module ### Assessment: ENC-REQ-24 (Encryption strictness configuration) **Reference**: ENC-2-REQ-17 - Users shall be able to configure encryption strictness levels **Given**: A conformant browser with ENC-2 capability (selective encryption) **Task**: Verify that users can configure encryption strictness levels to balance security requirements with compatibility needs, enabling organizations and advanced users to enforce stricter encryption policies than defaults (such as TLS 1.3-only, strong cipher suites only, or mandatory HSTS) or relax policies for specific legitimate scenarios (such as internal legacy systems), providing flexibility while maintaining security visibility and audit trails. **Verification**: 1. Access browser encryption settings or configuration interface → Verify that enterprise policies can override user strictness settings 2. Identify available encryption strictness options: → Test that per-site exceptions can be configured for compatibility - Minimum TLS version selection (TLS 1.2, TLS 1.3 only) - Cipher suite policy (strong only, compatible, allow weak) - Mixed content policy (block all, block active only, allow) - Certificate validation strictness (strict, standard, permissive) - HSTS enforcement level 3. Test configuring each strictness level and verify enforcement: → Verify that strictness level changes are logged - Set TLS 1.3-only mode and verify TLS 1.2 connections fail - Configure strong cipher suites only and verify weak cipher rejection - Enable strict mixed content blocking and verify all mixed content blocked - Set strict certificate validation and verify self-signed cert rejection 4. Verify that strictness changes take effect immediately or after restart → Test that current strictness level is visible in security indicators 5. Test that configuration changes are persistent across browser sessions → Verify that documentation explains security implications of each level **Pass Criteria**: Multiple encryption strictness levels are available AND configuration changes are enforced AND settings persist AND per-site exceptions are possible AND changes are logged **Fail Criteria**: No strictness configuration available OR changes not enforced OR settings don't persist OR no audit trail OR no security baseline **Evidence**: Settings UI screenshots showing strictness options, connection test results at different levels, persistence verification, per-site exception demonstrations, audit logs **References**: - TLS Configuration Recommendations: https://wiki.mozilla.org/Security/Server_Side_TLS - OWASP Transport Layer Protection: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html ### Assessment: ENC-REQ-25 (Connection security visual indicators) **Reference**: ENC-2-REQ-18 - Browser shall provide visual indicators for connection security status **Given**: A conformant browser with ENC-2 capability (selective encryption) **Task**: Verify that the browser provides clear, prominent visual indicators for connection security status, enabling users to quickly identify secure HTTPS connections, insecure HTTP connections, and connection security issues, preventing users from entering sensitive information on insecure sites and helping users recognize potential man-in-the-middle attacks or certificate problems through consistent, understandable security indicators in the browser UI. **Verification**: 1. Navigate to various sites with different security states: → Verify that security indicator changes are immediate upon navigation - Valid HTTPS with strong encryption (https://example.com with TLS 1.3) - Valid HTTPS with weak encryption (https://site.com with TLS 1.2, weak cipher) - HTTP site (http://insecure.com) - HTTPS with certificate error (expired, self-signed, wrong domain) - HTTPS with mixed content (active and passive) - HTTPS with Extended Validation certificate 2. Verify that each security state has distinct visual indicator: → Test that security indicators are accessible (screen reader compatible) - Padlock icon or security indicator in address bar - Color coding (green for secure, red for insecure, warning for issues) - Text labels ("Secure", "Not Secure", "Connection is not secure") - Icon states (locked, unlocked, warning symbol) 3. Test that clicking security indicator shows detailed connection information: → Verify that indicators follow consistent design across all platforms - TLS version and cipher suite - Certificate details and validity - Mixed content warnings - Permission grants 4. Verify that indicators are visible in all browser UI states (fullscreen, focus mode, etc.) → Test that users can easily distinguish secure from insecure connections 5. Test that indicators cannot be spoofed by web content → Verify that connection security details are easy to access **Pass Criteria**: Distinct visual indicators for each security state AND indicators are prominent and clear AND detailed information is accessible AND indicators cannot be spoofed AND consistent across platforms **Fail Criteria**: Security indicators are unclear OR states are not visually distinct OR detailed information not available OR indicators can be spoofed OR inconsistent across platforms **Evidence**: Screenshots of security indicators for each connection state, detailed security info panel screenshots, accessibility testing results, spoofing attempt tests, cross-platform consistency verification **References**: - Browser Security Indicators: https://www.w3.org/TR/design-principles/#priority-of-constituencies - User Security Awareness: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/felt ### Assessment: ENC-REQ-26 (User encryption settings control) **Reference**: ENC-3-REQ-11 - Users shall have full control over encryption settings **Given**: A conformant browser with ENC-3 capability (basic encryption with optional enhanced protection) **Task**: Verify that users have full control over all encryption settings, enabling advanced users and specific deployment scenarios to configure encryption behavior according to their unique requirements, such as enabling legacy protocols for compatibility with older systems, configuring custom cipher suite preferences, or managing certificate exceptions, while ensuring that users are informed of the security implications of relaxing encryption requirements. **Verification**: 1. Access browser advanced encryption settings → Test that dangerous configurations trigger prominent warnings 2. Verify that comprehensive encryption controls are available: → Verify that encryption settings can be exported/imported for consistency - TLS version selection (TLS 1.0, 1.1, 1.2, 1.3) - Individual cipher suite enable/disable - Certificate validation options - Mixed content policy configuration - HSTS bypass capabilities - Certificate exception management - Revocation checking options 3. Test modifying each encryption setting: → Test that enterprise policies can restrict user control over specific settings - Enable legacy TLS 1.0/1.1 and verify older servers accessible - Disable specific cipher suites and verify negotiation changes - Relax certificate validation and verify self-signed cert acceptance - Allow mixed content and verify passive content loads - Add certificate exceptions and verify accepted 4. Verify that each setting change shows security warning explaining risks → Verify that reset-to-defaults option exists for safe rollback 5. Test that changes require user acknowledgment of risks → Test that encryption setting changes are logged 6. Verify that current encryption configuration is clearly documented in UI → Verify that help documentation explains each setting clearly **Pass Criteria**: All encryption settings are user-configurable AND security warnings accompany risky changes AND current configuration is visible AND reset option exists AND changes are logged **Fail Criteria**: Encryption settings are not configurable OR no security warnings for risky changes OR configuration not visible OR no rollback option OR no audit trail **Evidence**: Advanced settings UI screenshots, configuration change workflows, security warning examples, setting export/import tests, policy restriction demonstrations, audit logs **References**: - TLS Configuration: https://wiki.mozilla.org/Security/Server_Side_TLS - User Control Principles: https://www.w3.org/TR/design-principles/#user-control ### Assessment: ENC-REQ-27 (Encryption status UI indicators) **Reference**: ENC-3-REQ-12 - Browser shall provide encryption status indicators in UI **Given**: A conformant browser with ENC-3 capability (basic encryption with optional enhanced protection) **Task**: Verify that the browser provides comprehensive encryption status indicators throughout the user interface, enabling users to understand the current encryption configuration and connection security state at any time, helping users make informed decisions about whether their current settings are appropriate for their security needs and alerting them to potential security issues that may result from configuration changes. **Verification**: 1. Access browser with various encryption configurations active → Verify that weak encryption configurations trigger visual warnings 2. Verify that encryption status is visible in multiple UI locations: → Test that encryption status persists in browser session info - Address bar security indicator - Settings page encryption section - About/information pages - Developer tools security panel 3. Test that status indicators show: → Verify that status indicators are accessible via keyboard navigation - Current TLS version in use - Active cipher suite - Certificate validity status - Enabled/disabled encryption features (HSTS, CT, OCSP) - Legacy protocol status (if enabled) - Number of certificate exceptions 4. Navigate to sites with different security configurations → Test that indicators work in all browsing modes (normal, private, reader) 5. Verify that indicators update dynamically to reflect current connection → Verify that encryption dashboard or summary page exists 6. Test that clicking indicators provides detailed encryption information → Test that status information is exportable for security audits **Pass Criteria**: Encryption status visible in multiple UI locations AND indicators show detailed configuration AND indicators update dynamically AND weak configurations trigger warnings AND status is exportable **Fail Criteria**: Encryption status not visible OR indicators lack detail OR no dynamic updates OR no warnings for weak config OR status not exportable **Evidence**: UI screenshots from various locations showing status, status detail panel captures, dynamic update demonstrations, weak config warning examples, audit export samples **References**: - Security Indicators Design: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/felt - Transparency in Browser Security: https://www.w3.org/TR/design-principles/#transparency ### Assessment: ENC-REQ-28 (Legacy protocol compatibility mode) **Reference**: ENC-3-REQ-13 - Legacy protocol support may be enabled for compatibility with user consent **Given**: A conformant browser with ENC-3 capability (basic encryption with optional enhanced protection) **Task**: Verify that legacy protocol support (SSL 3.0, TLS 1.0, TLS 1.1) can be enabled for compatibility with older systems when necessary, but requires explicit, informed user consent with clear security warnings, ensuring users understand the risks of downgrading to deprecated protocols while enabling access to legacy systems that cannot be immediately upgraded, such as embedded devices, industrial control systems, or archived services. **Verification**: 1. Verify that legacy protocols are disabled by default → Verify that legacy protocol enablement is persistent across sessions 2. Attempt to connect to server requiring legacy protocol (TLS 1.0 or TLS 1.1) → Test that legacy protocol usage triggers visual indicator in address bar 3. Verify that connection fails with clear error message explaining protocol version mismatch → Verify that connections using legacy protocols show prominent warning 4. Access browser settings to enable legacy protocol support → Test that legacy protocol can be enabled for specific sites only (not globally) 5. Verify that enabling legacy protocols requires: → Verify that legacy protocol enablement is logged for security auditing - Navigation to advanced settings section - Explicit checkbox or toggle action - Acknowledgment of security warning dialog 6. Test that security warning clearly explains: → Test that reset to defaults disables legacy protocols - Legacy protocols have known vulnerabilities - Connections may be susceptible to downgrade attacks - Sensitive information should not be transmitted - Recommendation to upgrade server instead **Pass Criteria**: Legacy protocols disabled by default AND enablement requires explicit consent AND clear security warnings shown AND usage is indicated visually AND site-specific enablement possible AND changes logged **Fail Criteria**: Legacy protocols enabled by default OR no consent required OR warnings unclear OR no visual indicators OR only global enablement OR no audit trail **Evidence**: Default protocol test results, enablement workflow screenshots, security warning content, visual indicator examples, site-specific configuration tests, audit log samples **References**: - Deprecating Legacy TLS: https://datatracker.ietf.org/doc/rfc8996/ - TLS 1.0 and 1.1 Deprecation: https://www.rfc-editor.org/info/rfc8996 ### Assessment: ENC-REQ-29 (Complete encryption policy control) **Reference**: ENC-4-REQ-6 - Users shall have complete control over all encryption policies **Given**: A conformant browser with ENC-4 capability (minimal encryption) **Task**: Verify that users have unrestricted control over all encryption policies without artificial limitations, enabling specialized use cases such as security research, penetration testing, legacy system maintenance, or air-gapped environments where standard encryption enforcement may need to be completely disabled, while ensuring that the browser clearly indicates when insecure configurations are active and the risks associated with completely disabling encryption protections. **Verification**: 1. Access all available encryption policy controls in browser → Test that insecure configuration status is highly visible in all UI 2. Verify that users can modify every encryption-related setting: → Verify that browser warns before entering sensitive input on insecure connections - Completely disable TLS/SSL enforcement - Allow HTTP for all connections - Disable all certificate validation - Accept any cipher suite including export-grade - Disable HSTS, OCSP, CT, and all security features - Allow unlimited certificate exceptions - Disable mixed content blocking entirely - Remove all protocol version restrictions 3. Test disabling each encryption protection individually → Test that configuration can be saved and restored 4. Verify that disabled protections do not activate even in dangerous scenarios → Verify that no enterprise policies can override user's complete control 5. Test that completely insecure configuration allows access to test servers: → Test that security researchers can use browser for SSL/TLS testing - HTTP-only servers - Self-signed certificate servers - Expired certificate servers - Weak cipher servers (3DES, RC4) 6. Verify that browser displays persistent warning when encryption is disabled → Verify that documentation explains appropriate use cases for insecure configs **Pass Criteria**: All encryption policies are user-modifiable without restriction AND disabled protections do not activate AND insecure status is highly visible AND configuration is persistent AND appropriate for specialized use cases **Fail Criteria**: Some encryption policies cannot be disabled OR disabled protections still activate OR insecure status not visible OR configuration doesn't persist OR inappropriate for intended use cases **Evidence**: Complete settings access screenshots, disabled protection test results, insecure configuration visual indicators, specialized use case demonstrations, security researcher testimonials **References**: - Security Research Ethics: https://www.w3.org/Security/wiki/Improving_Web_Security - Penetration Testing Requirements: https://owasp.org/www-community/Penetration_testing ### Assessment: ENC-REQ-30 (User-enabled legacy protocol support) **Reference**: ENC-4-REQ-7 - Browser shall support legacy protocols when explicitly enabled by user **Given**: A conformant browser with ENC-4 capability (minimal encryption) **Task**: Verify that browser supports legacy cryptographic protocols (SSL 3.0, TLS 1.0, TLS 1.1) when explicitly enabled by user, ensuring that legacy systems, embedded devices, or historical services that cannot be upgraded remain accessible through modern browsers in specialized scenarios, while making it clear that these protocols have known security vulnerabilities and should only be used when absolutely necessary with full understanding of the risks. **Verification**: 1. Access browser protocol version settings → Test that protocol negotiation prefers newest enabled version 2. Verify that legacy protocol options are available: → Verify that legacy protocol connections show security warnings - SSL 3.0 enable/disable - TLS 1.0 enable/disable - TLS 1.1 enable/disable 3. Enable each legacy protocol individually → Test that mixed protocol versions work correctly (e.g., TLS 1.0 and 1.3 both enabled) 4. Test connection to servers requiring each legacy protocol: → Verify that legacy protocol usage is logged - SSL 3.0-only server (if available for testing) - TLS 1.0-only server - TLS 1.1-only server 5. Verify that connections succeed when protocol is enabled → Test that browser identifies which protocol version was used for each connection 6. Verify that connections fail when protocol is disabled → Verify that legacy protocol support can be toggled without browser restart **Pass Criteria**: All legacy protocols can be enabled by user AND enabled protocols function correctly AND protocol negotiation works properly AND legacy usage is warned and logged AND risks are documented **Fail Criteria**: Legacy protocols cannot be enabled OR enabled protocols don't work OR protocol negotiation fails OR no warnings/logging OR risks not explained **Evidence**: Legacy protocol enablement screenshots, successful connection tests to legacy servers, protocol version negotiation logs, security warning examples, risk documentation excerpts **References**: - SSL 3.0 Vulnerabilities (POODLE): https://www.rfc-editor.org/rfc/rfc7568 - TLS 1.0 and 1.1 Deprecation: https://datatracker.ietf.org/doc/rfc8996/ - Legacy Protocol Security Risks: https://www.nist.gov/publications/transitioning-use-cryptographic-algorithms-and-key-lengths ## 6.4 Security Event Logging Assessments This section covers assessment procedures for requirements LOG-REQ-1 through LOG-REQ-20, addressing security event logging, audit trails, privacy-preserving telemetry, log retention, and security monitoring capabilities. ### Assessment: LOG-REQ-1 (Security event logging) **Reference**: LOG-REQ-1 - Browser shall implement comprehensive security event logging for security-relevant events **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that comprehensive security event logging enables detection and investigation of attacks, providing audit trails for security incidents like XSS attempts, CSP violations, and CORS bypasses. Complete logging with timestamps, origins, and outcomes allows security teams to identify attack patterns, correlate events across multiple targets, and respond to threats effectively while supporting compliance with security monitoring requirements. **Verification**: 1. Configure the browser to enable security event logging in developer or enterprise mode → Verify that security events include sufficient context for investigation (URL, origin, error type, timestamp) 2. Access the browser's internal logging interfaces (chrome://net-internals/#events, about:networking, or equivalent) → Test that security events persist across browser restarts if configured for persistent logging 3. Navigate to a test page that triggers multiple security events (mixed content, certificate errors, XSS attempts) → All security policy violations are logged with accurate timestamps 4. Attempt cross-origin requests that violate CORS policies → Logs include sufficient context to identify the origin and nature of security events 5. Load test pages with Content Security Policy violations → Security events include: CSP violations, CORS failures, mixed content blocks, certificate errors, sandbox violations 6. Trigger sandbox violations by attempting to access restricted APIs → Logs distinguish between blocked and allowed actions with clear outcomes 7. Review the logged events to verify all security-relevant actions are captured → Event log format is structured and machine-readable (JSON or similar) 8. Export the security event log to verify it contains timestamps, event types, origins, and outcomes → Logs can be exported for analysis or forwarding to external systems **Pass Criteria**: All tested security events are captured in logs with complete context (timestamp, origin, event type, outcome) AND logs are exportable in a structured format **Fail Criteria**: Any security event fails to be logged OR logs lack critical context (timestamp, origin, or outcome) OR logs are not exportable **Evidence**: Screenshots of security event logs showing various event types, exported log files in JSON/structured format, video recordings of security events being triggered and logged, comparison matrices showing event coverage **References**: - W3C Reporting API: https://www.w3.org/TR/reporting-1/ - OWASP Logging Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html - NIST SP 800-92 Guide to Computer Security Log Management: https://csrc.nist.gov/publications/detail/sp/800-92/final ### Assessment: LOG-REQ-2 (Certificate error logging) **Reference**: LOG-REQ-2 - Browser shall log all certificate validation failures with detailed error information **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that certificate error logging enables detection of man-in-the-middle attacks and certificate misconfigurations, providing detailed information for security investigations. Comprehensive certificate logs with chain details, error types, and revocation status help identify patterns of TLS interception, rogue certificates, or systematic validation failures that could indicate ongoing attacks against users or infrastructure. **Verification**: 1. Set up a test web server with various certificate issues (expired, self-signed, wrong hostname, revoked) → Verify that certificate transparency failures are logged when CT enforcement is enabled 2. Navigate to https://expired.badssl.com/ and verify the certificate error is logged → Test that HSTS violations involving certificates are properly logged 3. Navigate to https://wrong.host.badssl.com/ and verify hostname mismatch is logged → All certificate validation failures are logged with specific error codes 4. Navigate to https://self-signed.badssl.com/ and verify self-signed certificate is logged → Logs include certificate subject, issuer, validity period, and error reason 5. Navigate to https://revoked.badssl.com/ and verify revocation status is logged → Certificate chain information is captured in logs 6. Review the certificate error logs to verify they include: certificate chain, error type, validation date, origin → Revocation check results (OCSP/CRL) are included 7. Test certificate pinning failures by creating a pinning policy and violating it → Certificate pinning violations are logged separately **Pass Criteria**: All certificate validation failures are logged with complete certificate details AND error reasons are specific and actionable **Fail Criteria**: Any certificate error is not logged OR logs lack certificate details OR error reasons are generic/unhelpful **Evidence**: Certificate error log entries showing various failure types, screenshots of BadSSL.com test results with corresponding logs, certificate chain dumps from logs, network traces showing certificate validation process **References**: - RFC 5280 X.509 Certificate Validation: https://www.rfc-editor.org/rfc/rfc5280 - Certificate Transparency RFC 6962: https://www.rfc-editor.org/rfc/rfc6962 - Chrome Certificate Error Logging: https://www.chromium.org/Home/chromium-security/certificate-transparency/ - OWASP Transport Layer Protection Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html ### Assessment: LOG-REQ-3 (Extension security events) **Reference**: LOG-REQ-3 - Browser shall log extension-related security events including installation, permission changes, and security violations **Given**: A conformant browser with EXT-1 or higher capability and LOG-1 or higher capability **Task**: Verify that extension security event logging enables detection of malicious extensions that abuse permissions, access sensitive APIs without authorization, or attempt to bypass security policies. Detailed extension logs with lifecycle events, permission changes, and security violations help identify compromised or rogue extensions that could exfiltrate data, inject malicious scripts, or escalate privileges beyond their declared capabilities. **Verification**: 1. Install a test extension and verify the installation event is logged with extension ID, name, and permissions → Simulate an extension attempting to bypass CSP and verify the violation is logged 2. Modify extension permissions and verify permission changes are logged → Test extension update events and verify version changes are logged 3. Create a test extension that attempts to access APIs without proper permissions → Extension lifecycle events (install, update, uninstall) are logged with metadata 4. Trigger extension content script injection and verify it's logged → Permission requests and grants are logged with timestamp and user action 5. Test extension network requests to verify they are logged separately from normal browsing → Extension security violations are logged separately from web page violations 6. Uninstall the extension and verify the removal event is logged → Extension API access attempts are logged with success/failure status 7. Test developer mode extension loading and verify it's flagged in logs → Developer mode extensions are clearly marked in logs **Pass Criteria**: All extension lifecycle and security events are logged with complete metadata AND extension actions are distinguishable from page actions **Fail Criteria**: Any extension security event is not logged OR extension actions cannot be distinguished from page actions OR permission changes are not logged **Evidence**: Extension event logs showing lifecycle events, permission change logs, screenshots of extension security violations with corresponding log entries, comparison of extension vs. page event logs **References**: - Chrome Extension Security Architecture: https://developer.chrome.com/docs/extensions/mv3/security/ - WebExtensions API Security: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API - Extension Permission Model: https://www.chromium.org/Home/chromium-security/extension-content-script-fetches/ - OWASP Browser Extension Security: https://owasp.org/www-community/vulnerabilities/Unsafe_Mobile_Code ### Assessment: LOG-REQ-4 (CSP violation reporting) **Reference**: LOG-REQ-4 - Browser shall implement Content Security Policy violation reporting and logging **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that CSP violation reporting enables detection of XSS attempts and policy bypasses, providing actionable intelligence about attacks targeting web applications. Automated reporting with complete violation context allows security teams to identify attack vectors, adjust CSP policies, and detect systematic attempts to inject malicious scripts or load unauthorized resources that could compromise user data. **Verification**: 1. Create a test page with a strict CSP policy: `Content-Security-Policy: default-src 'self'; report-uri /csp-report` → Test CSP reporting with report-only mode using Content-Security-Policy-Report-Only header 2. Attempt to load external scripts that violate the CSP policy → Verify that violation reports include: violated-directive, blocked-uri, source-file, line-number 3. Verify CSP violation reports are sent to the report-uri endpoint → All CSP violations trigger console warnings in developer tools 4. Check browser console for CSP violation messages → Violation reports are sent to configured report-uri endpoints 5. Test inline script violations and verify they are reported → Reports include complete context: violated directive, blocked resource, source location 6. Test eval() violations and verify they are blocked and reported → Report-only mode generates reports without blocking resources 7. Configure CSP with report-to directive and Report-To header for modern reporting → Modern Reporting API (report-to) is supported for CSP reporting **Pass Criteria**: All CSP violations are reported to configured endpoints AND console warnings are displayed AND reports contain complete violation context **Fail Criteria**: Any CSP violation is not reported OR reports lack critical information OR report-uri/report-to mechanisms don't function **Evidence**: CSP violation reports in JSON format, server logs showing received reports, browser console screenshots with CSP warnings, network traces showing report transmission, comparison of report-only vs. enforce mode **References**: - Content Security Policy Level 3: https://www.w3.org/TR/CSP3/ - CSP Violation Reports: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#violation_reports - W3C Reporting API: https://www.w3.org/TR/reporting-1/ - CSP Evaluator Tool: https://csp-evaluator.withgoogle.com/ ### Assessment: LOG-REQ-5 (Network Error Logging - NEL) **Reference**: LOG-REQ-5 - Browser shall support Network Error Logging (NEL) for monitoring network failures **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that Network Error Logging enables detection of network-level attacks and infrastructure issues, monitoring connection failures that could indicate DNS hijacking, TLS interception, or targeted denial of service. NEL provides visibility into network failures that occur before HTTP layer, helping identify systematic attacks, CDN failures, or connectivity issues affecting user security and availability. **Verification**: 1. Set up a test server that sends NEL policy header: `NEL: {"report_to":"network-errors","max_age":86400,"success_fraction":0.1,"failure_fraction":1.0}` → Verify NEL reports include: type, url, server-ip, protocol, status-code, elapsed-time, phase 2. Configure Report-To header: `Report-To: {"group":"network-errors","max_age":86400,"endpoints":[{"url":"https://collector.example.com/nel"}]}` → NEL policy is correctly parsed from HTTP headers 3. Trigger DNS resolution failures by attempting to navigate to non-existent domains → Network failures trigger NEL report generation 4. Trigger connection timeout errors by connecting to a filtered port → Reports are sent to configured endpoints asynchronously 5. Trigger TLS handshake failures by using misconfigured certificates → Sampling fractions are respected for success/failure events 6. Trigger HTTP protocol errors by sending malformed responses → NEL reports include detailed failure context (phase, type, status) 7. Verify that NEL reports are generated and sent to the configured endpoint → Reports distinguish between DNS, connection, TLS, and HTTP errors 8. Check that success sampling works correctly (success_fraction parameter) → NEL reports are batched and sent efficiently **Pass Criteria**: NEL policy is respected AND all configured failure types generate reports AND reports include complete network error context **Fail Criteria**: NEL policy is ignored OR network failures don't generate reports OR reports lack critical failure information **Evidence**: NEL policy headers from server, collected NEL reports in JSON format, server logs showing received reports, network traces demonstrating various failure types, NEL report timing analysis **References**: - Network Error Logging Specification: https://www.w3.org/TR/network-error-logging/ - Reporting API Specification: https://www.w3.org/TR/reporting-1/ - NEL Deployment Guide: https://developers.google.com/web/updates/2018/09/reportingapi - MDN Network Error Logging: https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging ### Assessment: LOG-REQ-6 (Crash reporting) **Reference**: LOG-REQ-6 - Browser shall implement privacy-preserving crash reporting with user consent **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that privacy-preserving crash reporting enables browser vendors to identify and fix security vulnerabilities without exposing user browsing history or personal information. User consent requirements ensure transparency while crash report anonymization prevents data leakage, balancing the need for diagnostic information to address exploitable bugs with user privacy rights and regulatory compliance. **Verification**: 1. Review browser settings for crash reporting consent options → Test opt-out functionality and verify no reports are sent when opted out 2. Enable crash reporting and verify user consent is obtained before activation → Verify renderer process crashes are reported separately from browser process crashes 3. Force a controlled browser crash using debugging tools or crash test pages → User consent is required before crash reporting is enabled 4. Verify a crash report is generated locally → Crash reports are generated for browser and renderer crashes 5. Check that crash reports are anonymized and don't contain browsing history or personal data → Reports include technical diagnostics (stack traces, crash signatures) but no personal data 6. Verify crash reports include: crash signature, stack trace (symbolicated), browser version, OS version → Users can review crash reports before submission 7. Test that crash reports are only uploaded after user consent → Crash reporting can be disabled and re-enabled in settings 8. Verify users can view and delete crash reports before submission → Crash reports are transmitted securely (HTTPS) to vendor endpoints **Pass Criteria**: User consent is obtained before crash reporting AND crash reports exclude personal data AND users can review/delete reports **Fail Criteria**: Crash reports are sent without consent OR reports contain personal/browsing data OR users cannot control crash reporting **Evidence**: Crash report consent dialogs, sanitized crash reports showing included data, settings screenshots showing crash reporting controls, privacy policy documentation, crash report upload network traces **References**: - Breakpad Crash Reporting: https://chromium.googlesource.com/breakpad/breakpad/ - Firefox Crash Reporter: https://support.mozilla.org/en-US/kb/mozilla-crash-reporter - GDPR Crash Reporting Compliance: https://gdpr.eu/what-is-gdpr/ ### Assessment: LOG-REQ-7 (Log data minimization) **Reference**: LOG-REQ-7 - Browser shall minimize data collection in logs, collecting only information necessary for security purposes **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that log data minimization prevents excessive collection of personal information, balancing security monitoring needs with privacy rights and regulatory compliance. Collecting only necessary security-relevant data with automatic retention limits reduces the risk of data breaches exposing user browsing history, credentials, or sensitive personal information while still enabling effective threat detection and incident response. **Verification**: 1. Review all log categories to identify what data is collected (security events, network, performance, etc.) → Check that telemetry aggregates data rather than logging individual user actions 2. Examine security event logs to verify they don't contain unnecessary personal information → Logs contain only security-relevant events, not general browsing activity 3. Check that URLs in logs are sanitized (query parameters removed or hashed) → Personal identifiable information (PII) is redacted or hashed in logs 4. Verify that user credentials are never logged, even in error conditions → URL parameters that may contain session tokens are removed 5. Test that cookies and authentication tokens are redacted from network logs → Credentials, cookies, and authentication headers are never logged 6. Review crash reports to ensure they exclude browsing history and form data → IP addresses are anonymized or removed from logs 7. Verify that IP addresses in logs are anonymized (last octet removed) or hashed → Logs automatically expire based on retention policies 8. Test that logs have automatic retention limits (time-based and size-based) → Form input data is excluded from all logs 9. Verify that sensitive form fields (passwords, credit cards) are never logged → Aggregated metrics replace individual event logging where possible **Pass Criteria**: All logs demonstrate data minimization (no unnecessary PII) AND sensitive data is consistently redacted AND retention limits are enforced **Fail Criteria**: Logs contain unnecessary PII OR credentials/tokens appear in logs OR no retention limits exist **Evidence**: Log samples showing redaction of sensitive data, privacy analysis of log contents, retention policy documentation, comparison of logged vs. available data showing minimization, code review of logging implementations **References**: - OWASP Logging Cheat Sheet - Data Sanitization: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html - NIST Privacy Framework: https://www.nist.gov/privacy-framework - W3C Privacy Principles: https://www.w3.org/TR/privacy-principles/ ### Assessment: LOG-REQ-8 (Log anonymization) **Reference**: LOG-REQ-8 - Browser shall implement anonymization techniques for logs that require user-related data **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that log anonymization prevents re-identification of users from telemetry data, protecting user privacy while maintaining the ability to detect security incidents and diagnose technical issues. Proper anonymization defends against correlation attacks where adversaries combine multiple log entries to de-anonymize users, as well as against data breaches where stolen logs could reveal sensitive user information. **Verification**: 1. Review telemetry logs to identify user-related fields (user ID, device ID, session ID) → Check that pseudonymous identifiers change across different log contexts 2. Verify that user identifiers are hashed with secure cryptographic hash functions → User identifiers are consistently hashed with strong cryptographic algorithms 3. Check that hash salts are rotated periodically to prevent correlation → Hash salts are documented and rotated on a defined schedule 4. Test that IP addresses are anonymized using techniques like IP truncation or hashing → IP addresses are truncated or hashed before storage 5. Verify that timestamps are rounded to reduce precision (hour or day level) where appropriate → Timestamps are appropriately rounded to reduce granularity 6. Test that geographic data is generalized (city level rather than GPS coordinates) → Geographic data is generalized to prevent precise location tracking 7. Review aggregation techniques to ensure k-anonymity (minimum group size) is maintained → Aggregated data maintains k-anonymity with k >= 5 8. Verify differential privacy techniques are applied to statistical queries on logs → Differential privacy noise is added to prevent individual identification 9. Test that user fingerprints cannot be reconstructed from anonymized logs → Cross-log correlation attacks are prevented through identifier rotation **Pass Criteria**: All user-related data is anonymized using documented techniques AND re-identification is demonstrably prevented AND k-anonymity is maintained **Fail Criteria**: User data is logged in plaintext OR anonymization is reversible OR re-identification is possible through correlation **Evidence**: Anonymized log samples with hash values, salt rotation policy documentation, privacy analysis showing k-anonymity, differential privacy parameters, re-identification attack test results (negative results expected) **References**: - Differential Privacy: https://www.microsoft.com/en-us/research/publication/differential-privacy/ - K-Anonymity Model: https://epic.org/privacy/reidentification/Sweeney_Article.pdf - NIST De-Identification Guidelines: https://nvlpubs.nist.gov/nistpubs/ir/2015/NIST.IR.8053.pdf - Google's Privacy-Preserving Techniques: https://policies.google.com/technologies/anonymization ### Assessment: LOG-REQ-9 (User consent for telemetry) **Reference**: LOG-REQ-9 - Browser shall obtain explicit user consent before collecting and transmitting telemetry data **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that explicit user consent for telemetry protects user privacy rights and complies with data protection regulations including GDPR and CPRA. Without proper consent mechanisms, browsers may violate privacy laws by collecting personal data without permission, and users are deprived of control over their information. Consent shall be freely given, specific, informed, and revocable to meet legal and ethical standards. **Verification**: 1. Perform a fresh installation of the browser and observe the first-run experience → Check that consent is re-requested when telemetry data types or purposes change significantly 2. Verify that a clear consent prompt is displayed for telemetry collection → First-run consent prompt is clear, prominent, and explains data collection 3. Check that the consent prompt explains what data is collected and why → Users can freely choose to accept or decline without dark patterns 4. Verify users can decline telemetry without affecting core browser functionality → Declining telemetry doesn't degrade core browser functionality 5. Test that declining telemetry prevents all non-essential data collection → Telemetry settings are easily accessible in preferences/settings 6. Navigate to browser settings and verify telemetry preferences are accessible → Consent choices are persistent and respected across updates 7. Verify users can change their consent choice at any time in settings → Granular controls allow users to consent to specific telemetry types 8. Test that telemetry settings are granular (separate controls for crash reports, usage stats, etc.) → Changes to data collection practices trigger new consent requests 9. Verify that consent choices persist across browser sessions and updates → Consent records are maintained for compliance auditing **Pass Criteria**: Explicit consent is obtained before telemetry collection AND users can easily manage consent preferences AND browser functions normally when telemetry is declined **Fail Criteria**: Telemetry starts without consent OR consent cannot be withdrawn OR declining breaks browser functionality OR dark patterns are used **Evidence**: Screenshots of consent prompts and settings UI, network traces showing no telemetry when declined, functional testing with telemetry disabled, consent flow video recordings, privacy policy documentation **References**: - GDPR Consent Requirements: https://gdpr.eu/gdpr-consent-requirements/ - ePrivacy Directive: https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:32002L0058 - W3C Privacy Principles - User Control: https://www.w3.org/TR/privacy-principles/#user-control ### Assessment: LOG-REQ-10 (Secure log transmission) **Reference**: LOG-REQ-10 - Browser shall transmit logs securely using encrypted channels with certificate validation **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that secure log transmission prevents interception or modification of telemetry and crash reports in transit, protecting sensitive diagnostic data from network attackers. Without encrypted transmission and certificate validation, adversaries can eavesdrop on log data to gain insights into user behavior, browser vulnerabilities, or enterprise configurations, or perform man-in-the-middle attacks to inject false telemetry data. **Verification**: 1. Enable telemetry and crash reporting in browser settings → Verify log transmission is batched and rate-limited to prevent network abuse 2. Trigger events that generate log transmissions (crash, CSP violation, NEL error) → All log transmissions use TLS 1.2 or higher encryption 3. Use network monitoring tools (Wireshark, mitmproxy) to capture log transmission traffic → Certificate validation is enforced for log collection servers 4. Verify all log transmissions use HTTPS (TLS 1.2 or higher) → Invalid or expired certificates prevent log transmission 5. Verify certificate validation is performed for log collection endpoints → Certificate pinning is applied to log endpoints where supported 6. Test that log transmission fails if the server certificate is invalid → No log data is ever transmitted in plaintext 7. Check that certificate pinning is used for log collection endpoints if available → Connection failures trigger retry with exponential backoff 8. Verify log data is not transmitted over insecure protocols (HTTP, FTP, unencrypted sockets) → Log batching reduces network overhead and improves privacy 9. Test that log transmission includes retry logic for temporary network failures → Rate limiting prevents log transmission from consuming excessive bandwidth **Pass Criteria**: All log transmissions use TLS 1.2+ with certificate validation AND transmission fails for invalid certificates AND no plaintext transmission occurs **Fail Criteria**: Any logs transmitted over plaintext protocols OR certificate validation is not enforced OR invalid certificates are accepted **Evidence**: Network packet captures showing TLS-encrypted log traffic, certificate validation test results, failed transmission logs for invalid certificates, retry mechanism testing, bandwidth usage analysis **References**: - TLS 1.3 Specification RFC 8446: https://www.rfc-editor.org/rfc/rfc8446 - Certificate Pinning: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning - OWASP Transport Layer Protection: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html - Mozilla TLS Configuration: https://wiki.mozilla.org/Security/Server_Side_TLS ### Assessment: LOG-REQ-11 (Log integrity protection) **Reference**: LOG-REQ-11 - Browser shall implement integrity protection for locally stored logs to prevent tampering **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that log integrity protection prevents attackers from covering their tracks after compromising a system by tampering with security logs. Without integrity protection, malicious actors who gain local access can modify or delete log entries to hide evidence of their activities, making incident response and forensic investigation impossible. Cryptographic integrity mechanisms ensure that any tampering is detected. **Verification**: 1. Enable local security logging in browser configuration or enterprise policy → Test that log integrity is checked before logs are exported or transmitted 2. Generate security events that create local log entries → Local logs include integrity protection mechanisms (signatures, MACs, or hashes) 3. Locate the local log storage files in the browser's data directory → Tampering with log contents is detected by the browser 4. Verify that log files include cryptographic signatures or message authentication codes (MACs) → Log files use OS-level protection where available (append-only, immutable flags) 5. Attempt to modify a log entry manually and verify the tampering is detected → Log rotation preserves integrity chains across files 6. Check that log files use append-only mechanisms where supported by the OS → Corrupted logs trigger alerts or warnings 7. Verify log rotation maintains integrity chains between rotated files → Enterprise deployments support strong integrity mechanisms (digital signatures) 8. Test that the browser detects and alerts on corrupted or tampered logs → Integrity checks occur before log export or transmission 9. Verify enterprise-mode logs support additional integrity mechanisms (digital signatures) → Integrity metadata is stored separately from log content for additional protection **Pass Criteria**: Logs include integrity protection (signatures/MACs/hashes) AND tampering is detected AND alerts are generated for integrity violations **Fail Criteria**: Logs lack integrity protection OR tampering is not detected OR no alerts for integrity violations **Evidence**: Log file analysis showing integrity mechanisms, tampering test results demonstrating detection, alert screenshots for corrupted logs, documentation of integrity algorithms used, enterprise policy configurations **References**: - NIST FIPS 180-4 Secure Hash Standard: https://csrc.nist.gov/publications/detail/fips/180/4/final - Log Integrity and Non-Repudiation: https://www.nist.gov/publications/guide-computer-security-log-management - Merkle Tree for Log Integrity: https://en.wikipedia.org/wiki/Merkle_tree - OWASP Logging Guide - Integrity: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html ### Assessment: LOG-REQ-12 (Log retention policies) **Reference**: LOG-REQ-12 - Browser shall implement and enforce log retention policies that balance security needs with privacy requirements **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that log retention policies balance security investigation needs against privacy rights by limiting how long personal data is stored. Excessive retention violates privacy regulations like GDPR which mandate data minimization, while insufficient retention hampers security incident investigation. Proper retention policies ensure logs are available for legitimate security purposes without becoming an indefinite privacy liability. **Verification**: 1. Review browser documentation for default log retention policies → Verify that regulatory compliance requirements (GDPR, etc.) are considered in retention 2. Examine local log storage to identify retention periods for different log types → Default retention periods are documented for each log type 3. Verify that security logs have appropriate retention (30-90 days typical) → Security logs are retained longer than general telemetry (30-90 days vs. 7-30 days) 4. Test that crash dumps are automatically deleted after retention period → Automatic deletion occurs when retention period expires 5. Verify that telemetry data has shorter retention than security logs → Log rotation prevents disk exhaustion (size-based limits) 6. Check that enterprise mode supports configurable retention policies → Enterprise policies allow customization of retention periods 7. Test that log rotation occurs based on size and time criteria → Users can manually clear logs through settings or clear browsing data 8. Verify that users can manually clear logs before retention period expires → Retention enforcement continues even when browser is not running 9. Test that retention policies are enforced even when browser is closed → GDPR/privacy compliance is demonstrated through retention limits **Pass Criteria**: Documented retention policies exist for all log types AND automatic deletion enforces retention AND policies comply with privacy regulations **Fail Criteria**: No retention policies OR logs grow unbounded OR retention periods violate privacy regulations (too long) **Evidence**: Retention policy documentation, log file age analysis, storage usage over time, automatic deletion test results, enterprise policy configuration examples, GDPR compliance analysis **References**: - ISO 27001 Log Management: https://www.iso.org/standard/27001 - NIST SP 800-92 Log Retention: https://csrc.nist.gov/publications/detail/sp/800-92/final ### Assessment: LOG-REQ-13 (Security dashboard) **Reference**: LOG-REQ-13 - Browser shall provide a security dashboard that presents security events and status to users **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that a security dashboard empowers users to understand their security posture and respond to threats by providing clear visibility into security events and protection status. Without a dashboard, users remain unaware of ongoing attacks, misconfigurations, or compromised security settings, leaving them vulnerable. Transparent security status information enables informed security decisions and builds user trust. **Verification**: 1. Access the browser's security dashboard through the browser's settings interface → Test that the dashboard supports filtering and searching of security events 2. Verify the dashboard displays current security status (safe/warning/critical) → Security dashboard is easily accessible from main settings 3. Check that recent security events are listed with timestamps and descriptions → Current security status is clearly displayed with visual indicators 4. Trigger a security event (certificate error, malware warning, etc.) and verify it appears in the dashboard → Recent security events are listed chronologically with timestamps 5. Test that the dashboard categorizes events by severity (critical, warning, info) → Events are categorized by severity level with appropriate visual coding 6. Verify the dashboard shows security settings status (HTTPS-only, Safe Browsing, etc.) → Each event includes actionable information and remediation guidance 7. Test that clicking on security events provides detailed information and remediation steps → Dashboard updates when new security events occur 8. Verify the dashboard updates in real-time or near-real-time when security events occur → Users can filter events by type, severity, or time period 9. Check that the dashboard is accessible from the main browser settings menu → Dashboard shows overall security posture (enabled protections) **Pass Criteria**: Security dashboard is accessible AND displays recent security events with severity AND provides actionable remediation guidance **Fail Criteria**: No security dashboard exists OR dashboard doesn't show events OR events lack context/remediation info **Evidence**: Screenshots of security dashboard showing various states, video walkthrough of dashboard features, security event listings, user interface usability assessment, comparison with security best practices **References**: - Chrome Security Settings: https://support.google.com/chrome/answer/114836 - NIST Cybersecurity Framework - Detect: https://www.nist.gov/cyberframework - User-Centered Security Design: https://www.usenix.org/conference/soups2019 ### Assessment: LOG-REQ-14 (Incident detection) **Reference**: LOG-REQ-14 - Browser shall implement automated incident detection based on security event patterns **Given**: A conformant browser with LOG-2 or higher capability **Task**: Verify that automated incident detection identifies active attacks by correlating security event patterns that indicate malicious activity, enabling rapid response before significant damage occurs. Manual log review alone cannot detect sophisticated attacks that span multiple events or occur at scale. Automated detection using heuristics and pattern matching provides early warning of credential stuffing, reconnaissance, malware distribution, and other attack campaigns. **Verification**: 1. Configure the browser for enhanced security monitoring (enterprise mode if required) → Test that correlation of multiple minor events escalates to incident status 2. Access browser's internal incident detection interfaces or logs → Automated detection identifies suspicious patterns (credential stuffing, scanning, etc.) 3. Simulate a credential stuffing attack by repeatedly entering wrong passwords → Incident detection uses heuristics and machine learning where appropriate 4. Verify that repeated authentication failures trigger an incident alert → Multiple low-severity events can aggregate to trigger incident alerts 5. Simulate a port scanning attack by navigating to many sequential ports on localhost → False positive rates are managed through tuning and whitelisting 6. Verify that unusual network activity patterns are detected → Incidents are logged with detailed context for investigation 7. Trigger multiple CSP violations in rapid succession and verify pattern detection → Users or administrators receive notifications for detected incidents 8. Test that suspicious extension behavior (excessive API calls) triggers alerts → Incident severity is calculated based on event type and frequency 9. Verify that malware download attempts are detected and blocked → Detection rules are updated regularly to address new attack patterns **Pass Criteria**: Automated detection identifies at least 3 attack patterns (credential stuffing, scanning, malware) AND incidents are logged with context AND alerts are generated **Fail Criteria**: No automated detection occurs OR fewer than 3 attack patterns detected OR no alerts generated **Evidence**: Incident detection logs showing various attack patterns, alert notifications, false positive analysis, detection rule documentation, test results for simulated attacks, tuning methodology **References**: - MITRE ATT&CK Framework: https://attack.mitre.org/ - NIST Incident Response Guide SP 800-61: https://csrc.nist.gov/publications/detail/sp/800-61/rev-2/final - Browser Security Indicators: https://www.w3.org/TR/security-privacy-questionnaire/ ### Assessment: LOG-REQ-15 (Audit trail completeness) **Reference**: LOG-REQ-15 - Browser shall maintain complete audit trails for security-relevant administrative actions **Given**: A conformant browser with LOG-2 or higher capability (enterprise mode) **Task**: Verify that complete audit trails for administrative actions enable accountability and investigation of security policy changes, preventing unauthorized or malicious modifications from going unnoticed. Without comprehensive audit logging, insider threats or compromised administrator accounts can weaken security settings without detection. Complete audit trails create accountability and support forensic investigations when security incidents occur. **Verification**: 1. Enable enterprise policy management for the browser → Export the audit log and verify it includes all tested actions with complete metadata 2. Change a security-critical setting (e.g., disable Safe Browsing, modify HTTPS-only mode) → All security-relevant configuration changes are logged 3. Verify the change is logged with: timestamp, user/admin identity, setting name, old value, new value → Logs include: timestamp, user/admin identity, action type, object affected, before/after values 4. Install or remove a browser extension and verify the action is logged → Both successful and failed administrative actions are logged 5. Modify certificate trust settings and verify the change is logged → Extension lifecycle events (install/update/remove) are included 6. Change cookie or site permission policies and verify logging → Certificate and trust anchor modifications are logged 7. Modify content security policies and verify logging → Policy enforcement events are captured 8. Test that policy enforcement (GPO, MDM) actions are logged → Audit logs are tamper-evident and include integrity protection 9. Verify that failed administrative actions (insufficient permissions) are also logged → Logs are exportable in standard formats (JSON, CSV, syslog) **Pass Criteria**: All security-relevant administrative actions are logged with complete metadata AND failed actions are logged AND logs are exportable **Fail Criteria**: Any security configuration change is not logged OR logs lack critical metadata OR logs are not exportable **Evidence**: Audit log exports showing various administrative actions, log completeness analysis, integrity verification results, enterprise policy documentation, screenshots of logged events **References**: - NIST SP 800-53 Audit and Accountability: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final - ISO 27001 Audit Logging: https://www.iso.org/standard/27001 - CIS Controls - Audit Log Management: https://www.cisecurity.org/controls/ ### Assessment: LOG-REQ-16 (Real-time security alerts) **Reference**: LOG-REQ-16 - Browser shall provide real-time security alerts for critical security events **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that real-time security alerts prevent users from inadvertently exposing themselves to immediate threats by providing prominent warnings before dangerous actions occur. Delayed or passive alerts allow users to proceed with risky actions like visiting malware sites or ignoring certificate errors. Immediate, blocking alerts with clear threat information enable users to make informed security decisions and avoid common attack vectors. **Verification**: 1. Navigate to a site with a revoked certificate and verify immediate alert is displayed → Test that alert severity levels affect presentation (critical vs. warning vs. info) 2. Navigate to a known malware site (using Safe Browsing test URLs) and verify blocking alert → Critical security events trigger immediate, modal alerts 3. Trigger a password breach detection (if supported) and verify immediate notification → Alerts are displayed before dangerous actions are allowed 4. Install a malicious extension (test extension) and verify warning is displayed → Alert content is clear, specific, and actionable 5. Attempt to download a known malicious file and verify real-time blocking alert → Users should explicitly acknowledge alerts to proceed 6. Test that alerts are displayed before allowing dangerous actions (not after) → Alerts distinguish between critical threats (malware) and warnings (certificate issues) 7. Verify alerts are prominent, modal, and cannot be easily dismissed accidentally → Visual design makes alerts prominent and attention-getting 8. Test that alerts provide clear information about the threat and recommended actions → Enterprise mode supports admin notifications for critical events 9. Verify enterprise mode supports additional real-time alerting (admin notifications) → Alert fatigue is avoided through appropriate severity calibration **Pass Criteria**: Critical security events trigger immediate modal alerts AND alerts provide clear threat information AND users should acknowledge before proceeding **Fail Criteria**: No real-time alerts for critical events OR alerts are easily dismissed OR alerts lack actionable information **Evidence**: Screenshots of various security alerts, video recordings of alert timing, user studies on alert comprehensibility, enterprise admin notification examples, alert frequency analysis **References**: - NIST Usable Security: https://www.nist.gov/programs-projects/usable-cybersecurity - Google Safe Browsing: https://safebrowsing.google.com/ - Security Warning Design: https://www.usenix.org/conference/soups2019 - Alert Fatigue Research: https://www.ndss-symposium.org/ndss-paper/auto-draft-188/ ### Assessment: LOG-REQ-17 (Forensic log export) **Reference**: LOG-REQ-17 - Browser shall support forensic-quality log export for security investigations **Given**: A conformant browser with LOG-2 or higher capability **Task**: Verify that forensic log export enables detailed security investigations by providing complete, integrity-protected logs in standard formats that can be analyzed with industry-standard tools. Without proper export capabilities, security teams cannot perform comprehensive incident response or forensic analysis, limiting their ability to understand attack vectors, determine scope of compromise, or provide evidence for legal proceedings. **Verification**: 1. Generate various security events across multiple sessions (certificate errors, CSP violations, etc.) → Verify that export process itself is logged for audit purposes 2. Access browser log export functionality (may require developer or enterprise mode) → Log export is available through settings or developer tools 3. Export security logs in multiple formats (JSON, CSV, syslog) → Multiple export formats are supported (JSON, CSV, syslog, CEF) 4. Verify exported logs include all events from the specified time period → Exported logs are complete and chronologically ordered 5. Check that exported logs maintain chronological ordering → Timestamps use standardized formats (ISO 8601, Unix epoch) 6. Verify exported logs include complete metadata (timestamps in ISO 8601 format, event IDs, etc.) → Event identifiers are included for correlation 7. Test that log export includes integrity information (signatures or hashes) → Integrity information accompanies exports (checksums or signatures) 8. Verify sensitive information is appropriately redacted in exported logs → Sensitive data is redacted appropriately 9. Test that exported logs are in formats compatible with SIEM tools (Splunk, ELK, etc.) → Exported formats are compatible with common SIEM platforms **Pass Criteria**: Log export functionality exists AND multiple standard formats supported AND exported logs include complete metadata with integrity protection **Fail Criteria**: No export functionality OR only proprietary formats OR exported logs lack metadata OR no integrity protection **Evidence**: Exported log files in various formats, SIEM import test results, log completeness verification, integrity validation results, format specification documentation, screenshots of export interface **References**: - Common Event Format (CEF): https://www.microfocus.com/documentation/arcsight/arcsight-smartconnectors-8.3/cef-implementation-standard/ - Syslog Protocol RFC 5424: https://www.rfc-editor.org/rfc/rfc5424 - ELK Stack Log Analysis: https://www.elastic.co/what-is/elk-stack - NIST SP 800-92 Log Management: https://csrc.nist.gov/publications/detail/sp/800-92/final ### Assessment: LOG-REQ-18 (Privacy-preserving analytics) **Reference**: LOG-REQ-18 - Browser shall use privacy-preserving techniques for analytics and aggregate reporting **Given**: A conformant browser with LOG-1 or higher capability **Task**: Verify that privacy-preserving analytics techniques enable browsers to gather valuable usage insights and improve security without compromising individual user privacy. Traditional analytics create re-identification risks by collecting detailed individual behavior. Differential privacy, local noise injection, and k-anonymity allow aggregated insights while mathematically guaranteeing that individual users cannot be identified or their specific behaviors revealed. **Verification**: 1. Review browser telemetry documentation for privacy-preserving techniques → Verify that privacy parameters (epsilon, delta) are documented and justified 2. Verify that differential privacy is used for usage statistics aggregation → Differential privacy is applied to aggregate statistics 3. Check that local differential privacy (LDP) adds noise before data leaves the device → Local differential privacy adds noise on-device before transmission 4. Test that RAPPOR (Randomized Aggregatable Privacy-Preserving Ordinal Response) or similar is used → RAPPOR or equivalent techniques are used for categorical data 5. Verify that aggregated metrics cannot be de-aggregated to identify individuals → Privacy budgets limit cumulative information disclosure 6. Test that feature usage statistics use k-anonymity (minimum group size) → K-anonymity ensures minimum group sizes (k >= 5) 7. Verify that privacy budgets limit information disclosure over time → Federated learning keeps training data local 8. Check that federated learning is used where applicable (e.g., next-word prediction) → Attribution Reporting API uses noise and aggregation 9. Test that aggregate reporting APIs (Attribution Reporting) use noise injection → Privacy parameters (epsilon, delta, k) are publicly documented **Pass Criteria**: Differential privacy or equivalent techniques are used AND privacy parameters are documented AND individual users cannot be identified from aggregates **Fail Criteria**: No privacy-preserving techniques used OR aggregate data allows individual identification OR privacy parameters undocumented **Evidence**: Privacy technique documentation, epsilon/delta parameter specifications, de-identification attack test results (negative), differential privacy implementation code review, aggregate report samples, federated learning architecture diagrams **References**: - Differential Privacy: https://www.microsoft.com/en-us/research/publication/differential-privacy/ - RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response: https://research.google/pubs/pub42852/ - Attribution Reporting API: https://github.com/WICG/attribution-reporting-api - Federated Learning: https://ai.googleblog.com/2017/04/federated-learning-collaborative.html - Apple Differential Privacy: https://www.apple.com/privacy/docs/Differential_Privacy_Overview.pdf - W3C Privacy Principles: https://www.w3.org/TR/privacy-principles/ ### Assessment: LOG-REQ-19 (Compliance logging) **Reference**: LOG-REQ-19 - Browser shall provide logging capabilities to support regulatory compliance requirements (GDPR etc.) **Given**: A conformant browser with LOG-2 or higher capability (enterprise mode) **Task**: Verify that compliance logging enables organizations to demonstrate adherence to privacy regulations by maintaining comprehensive records of data processing activities, consent, and data subject rights fulfillment. Without proper compliance logging, organizations cannot prove they honor user rights, track data processing lawfulness, or respond to regulatory audits, leading to significant legal and financial penalties under GDPR and similar laws. **Verification**: 1. Review browser documentation for compliance logging capabilities → Check that logs can demonstrate compliance during audits 2. Verify that data processing activities are logged (collection, storage, transmission) → Data processing activities are comprehensively logged 3. Test that user consent events are logged with timestamps and scope → Consent events capture: timestamp, user ID, data types, purposes, duration 4. Verify that data deletion requests are logged and honored → Data deletion events are logged with completion verification 5. Check that data subject access requests can be fulfilled from logs → Access request fulfillment is possible from log data 6. Test that cross-border data transfers are logged with destination regions → Cross-border transfers are logged with legal basis 7. Verify that third-party data sharing events are logged → Third-party data sharing is logged with recipient and purpose 8. Test that data breach detection events are logged with required metadata → Breach detection and notification events are logged 9. Verify that retention policies align with regulatory requirements → Retention aligns with GDPR (no longer than necessary) and other regulations **Pass Criteria**: Compliance-relevant activities are logged (consent, deletion, access) AND logs support audit requirements AND retention aligns with regulations **Fail Criteria**: Compliance activities not logged OR logs insufficient for audits OR retention violates regulations **Evidence**: Compliance log exports, sample audit reports generated from logs, consent event logs, deletion request logs, data processing records, legal basis documentation, retention policy compliance analysis **References**: - GDPR Requirements: https://gdpr.eu/ - ISO 27001 Compliance Auditing: https://www.iso.org/standard/27001 - NIST Privacy Framework: https://www.nist.gov/privacy-framework - ePrivacy Directive: https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:32002L0058 ### Assessment: LOG-REQ-20 (Log access controls) **Reference**: LOG-REQ-20 - Browser shall implement access controls to protect logs from unauthorized access or modification **Given**: A conformant browser with LOG-2 or higher capability (enterprise mode) **Task**: Verify that log access controls protect sensitive security and diagnostic information from unauthorized disclosure or tampering, preserving both user privacy and forensic integrity. Unprotected logs can be read by malware or local attackers to gather intelligence about system configuration, security events, or user activities. Without write protection, attackers can tamper with logs to hide evidence of compromise. **Verification**: 1. Review log storage locations and verify they use appropriate OS-level permissions → Check that encryption at rest is available for sensitive logs 2. Test that log files are readable only by the browser process and authorized users → Log files have restrictive OS permissions (user-only or admin-only read) 3. Verify that unprivileged processes cannot access browser log files → File ACLs prevent unauthorized access on multi-user systems 4. Test that log files use OS access control mechanisms (file permissions, ACLs, encryption) → Logs in user profiles are isolated from other user accounts 5. Verify that logs stored in user profile directories are protected from other users → Remote log transmission uses authenticated, encrypted channels 6. Test that remote log access (enterprise SIEM integration) requires authentication → Log export requires explicit user action or administrative privileges 7. Verify that log export functionality requires user confirmation or admin privileges → Log files use append-only or immutable attributes where supported 8. Test that log modification is prevented through append-only modes or immutable flags → Log access attempts are recorded in audit logs 9. Verify that log access attempts are themselves logged for audit → Encryption at rest protects logs on disk **Pass Criteria**: Log files have restrictive permissions AND remote access requires authentication AND log modification is prevented AND access is audited **Fail Criteria**: Logs are world-readable OR no access controls on remote access OR logs can be modified OR access not audited **Evidence**: File permission analysis (ls -l, icacls), ACL configurations, multi-user access testing, remote access authentication tests, append-only flag verification, access audit log samples, encryption at rest verification **References**: - NIST SP 800-92 Log Protection: https://csrc.nist.gov/publications/detail/sp/800-92/final - Linux File Permissions Best Practices: https://www.redhat.com/sysadmin/linux-file-permissions-explained - Windows ACL Security: https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/access-control - macOS File System Security: https://developer.apple.com/documentation/security - OWASP Logging Guide - Protection: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html - ISO 27001 Log Access Controls: https://www.iso.org/standard/27001 ### Assessment: LOG-REQ-21 (No remote telemetry transmission) **Reference**: LOG-0-REQ-1 - Browser shall not transmit any telemetry or diagnostic data to remote servers **Given**: A conformant browser with LOG-0 capability (no logging or local-only) **Task**: Verify that the browser completely disables all remote telemetry and diagnostic data transmission, ensuring that no usage statistics, crash reports, security events, or any other diagnostic information is sent to external servers, protecting user privacy in high-security or air-gapped environments where outbound data transmission could leak sensitive information about user activities, system configuration, or security posture. **Verification**: 1. Install browser and complete initial setup without accepting any telemetry → Test that browser does not attempt telemetry even after updates 2. Use network monitoring tools to capture all browser traffic (Wireshark, tcpdump, proxy) → Verify that no telemetry data is queued for later transmission 3. Perform various browser activities that typically trigger telemetry: → Check that browser source/binary has no telemetry code or endpoints configured - Normal browsing to various sites - Triggering browser crashes or errors - Installing/removing extensions - Changing security settings - Certificate errors and warnings - Mixed content warnings 4. Verify that no telemetry endpoints are contacted: → Test behavior in various network conditions (online, offline, restricted) - No connections to analytics domains - No crash report uploads - No usage statistics transmission - No security event reporting 5. Inspect browser configuration files for telemetry settings → Verify that error messages do not suggest remote reporting 6. Verify that all telemetry features are disabled or removed → Check that browser help/support does not reference telemetry features **Pass Criteria**: No telemetry or diagnostic data transmitted to remote servers AND no telemetry endpoints contacted AND no telemetry code active AND no queued data **Fail Criteria**: Any telemetry transmission occurs OR telemetry endpoints contacted OR telemetry code present OR data queued for transmission **Evidence**: Network capture logs showing no telemetry traffic, configuration file inspection, browser binary analysis, behavioral testing across various scenarios, offline operation verification **References**: - GDPR Data Minimization: https://gdpr-info.eu/art-5-gdpr/ - Zero-Trust Network Architecture: https://csrc.nist.gov/publications/detail/sp/800-207/final ### Assessment: LOG-REQ-22 (Opt-in local logging) **Reference**: LOG-0-REQ-8 - All logging shall be disabled by default with opt-in for local logging **Given**: A conformant browser with LOG-0 capability (no logging or local-only) **Task**: Verify that all logging is disabled by default to maximize user privacy, requiring users to explicitly opt-in before any local security event logs are created, ensuring that users who do not want any diagnostic information stored on their system are protected by default, while still allowing security-conscious users to enable local logging for audit and forensic purposes when desired. **Verification**: 1. Perform fresh browser installation → Verify that logging is explicitly enabled by user 2. Verify that logging is disabled by default on first run → Test enabling logging through settings 3. Check that no log files are created during initial setup → Verify that opt-in requires clear user action (not pre-checked checkbox) 4. Perform various browser activities without enabling logging: → After enabling, verify that logs are created - Navigate to multiple websites - Trigger security warnings - Install extensions - Modify settings 5. Verify that no log files are created or populated → Test that opt-in persists across browser restarts 6. Access browser settings to find logging configuration → Verify that disabling logging stops log creation and offers deletion **Pass Criteria**: Logging disabled by default AND no logs created without opt-in AND opt-in requires explicit user action AND privacy policy explains logging **Fail Criteria**: Logging enabled by default OR logs created without consent OR opt-in is pre-selected OR unclear privacy policy **Evidence**: Fresh installation testing, log directory inspection before/after opt-in, settings UI screenshots, privacy policy documentation, opt-in flow recordings **References**: - GDPR Consent Requirements: https://gdpr-info.eu/art-7-gdpr/ - Privacy by Default: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/accountability-and-governance/data-protection-by-design-and-default/ - User Control Principles: https://www.w3.org/TR/design-principles/#user-control ### Assessment: LOG-REQ-23 (User log management) **Reference**: LOG-0-REQ-9 - Users shall be able to view and delete all local logs at any time **Given**: A conformant browser with LOG-0 capability with local logging enabled **Task**: Verify that users have complete control over their local logs, including the ability to view all logged data and permanently delete logs at any time, ensuring transparency about what information is being collected and empowering users to remove diagnostic data they no longer want stored, supporting user autonomy and privacy rights including the right to erasure. **Verification**: 1. Enable local logging in browser settings → Test filtering and searching within logs 2. Generate various log entries through browser activities → Verify that "Delete Logs" or "Clear Logs" option is easily accessible 3. Access log viewing interface in browser settings or dedicated log viewer → Test deleting all logs and verify complete removal: - Check that log files are deleted from disk - Verify that log database is cleared - Check that no log remnants remain 4. Verify that all log categories are viewable: → Test selective log deletion (by category or date range) - Security events - Certificate errors - Extension activities - Crash reports - Audit trail entries 5. Test that log viewer displays logs in understandable format (not raw binary) → Verify that deletion is immediate and permanent 6. Verify that log entries include timestamps and event descriptions → Test that log deletion confirmation is clear about consequences **Pass Criteria**: All logs are viewable in understandable format AND complete deletion is possible AND deletion is immediate and permanent AND selective deletion available **Fail Criteria**: Logs not viewable OR incomplete deletion OR delayed deletion OR no selective options OR logs not in human-readable format **Evidence**: Log viewer UI screenshots, log content examples, deletion workflow demonstrations, file system verification of deletion, selective deletion tests **References**: - GDPR Right to Erasure: https://gdpr-info.eu/art-17-gdpr/ - User Data Control: https://www.w3.org/TR/design-principles/#user-control - Transparency Requirements: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/individual-rights/right-to-erasure/ ### Assessment: LOG-REQ-24 (Telemetry opt-in requirement) **Reference**: LOG-1-REQ-16 - Telemetry shall be disabled by default and require explicit opt-in **Given**: A conformant browser with LOG-1 capability (opt-in telemetry) **Task**: Verify that telemetry is disabled by default and requires explicit, informed opt-in consent before any diagnostic data is collected or transmitted, ensuring that users are not enrolled in telemetry programs without their knowledge, that consent is freely given and not bundled with other required actions, and that users understand what data will be collected and how it will be used before agreeing. **Verification**: 1. Perform fresh browser installation → Verify that opt-in can be changed later in settings 2. Complete initial setup wizard → Test enabling telemetry post-installation 3. Verify that telemetry opt-in is presented clearly and separately: → Verify that enabling shows same clear information as initial setup - Not pre-checked or pre-selected - Separate from other required setup steps - Clear explanation of what data is collected - Clear explanation of how data is used - Link to detailed privacy policy 4. Test declining telemetry during setup → Test that partial opt-in is possible (selective categories) 5. Verify that browser functions normally without telemetry → Verify that opt-in status is clearly displayed in settings 6. Test that no telemetry is sent when declined → Test that revoking consent stops telemetry immediately **Pass Criteria**: Telemetry disabled by default AND opt-in is explicit and not pre-checked AND clear data explanation provided AND consent can be revoked AND partial opt-in available **Fail Criteria**: Telemetry enabled by default OR opt-in pre-checked OR unclear data description OR consent cannot be revoked OR all-or-nothing consent **Evidence**: Installation wizard screenshots, telemetry opt-in dialog content, settings UI showing opt-in status, network traffic verification without consent, revocation workflow demonstrations **References**: - GDPR Consent Conditions: https://gdpr-info.eu/art-7-gdpr/ - Valid Consent Requirements: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/consent/what-is-valid-consent/ - Privacy by Default: https://www.w3.org/TR/design-principles/#privacy ### Assessment: LOG-REQ-25 (Granular telemetry control) **Reference**: LOG-1-REQ-17 - Users shall have granular control over telemetry categories **Given**: A conformant browser with LOG-1 capability with telemetry enabled **Task**: Verify that users can exercise granular control over telemetry categories, enabling them to share some types of diagnostic data (such as crash reports) while withholding others (such as usage statistics), providing flexibility to balance privacy preferences with support for browser improvement, allowing users to contribute to security without sharing behavioral data. **Verification**: 1. Access telemetry settings in browser → Verify that category changes take effect immediately 2. Verify that multiple telemetry categories are available: → Test that category selection persists across browser restarts - Crash reports and diagnostics - Security event reporting - Usage statistics and feature metrics - Performance measurements - Extension usage data - Error and warning reports 3. Test enabling/disabling each category independently → Verify that network traffic reflects only enabled categories 4. Verify that category descriptions clearly explain what data is included → Test that disabling all categories is equivalent to full opt-out 5. Test that selective enablement is respected: → Verify that category controls are easily accessible in settings - Enable only crash reports - Verify that only crashes are sent, not usage stats - Enable only security events - Verify that only security data is sent 6. Test various combinations of enabled categories → Check that documentation explains each category in detail **Pass Criteria**: Multiple telemetry categories available AND independent control of each category AND clear category descriptions AND selective transmission respected AND changes immediate **Fail Criteria**: No category separation OR all-or-nothing control OR unclear descriptions OR categories not independently controlled OR changes delayed **Evidence**: Settings UI screenshots showing categories, category description content, selective enablement tests with network verification, documentation excerpts explaining categories **References**: - Privacy Control Granularity: https://www.w3.org/TR/design-principles/#user-control - Data Minimization Principle: https://gdpr-info.eu/art-5-gdpr/ - Transparency and Choice: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/principles/lawfulness-fairness-and-transparency/ ### Assessment: LOG-REQ-26 (Telemetry data documentation) **Reference**: LOG-1-REQ-18 - Browser shall provide clear documentation of all collected data **Given**: A conformant browser with LOG-1 capability **Task**: Verify that the browser provides comprehensive, accessible documentation explaining exactly what telemetry data is collected, how it is used, where it is stored, how long it is retained, and who has access to it, enabling users to make informed decisions about consent and ensuring transparency about data practices in compliance with privacy regulations requiring clear information about data processing. **Verification**: 1. Access browser privacy policy and telemetry documentation 2. Verify that documentation is easily findable: - Linked from settings - Linked from telemetry opt-in dialog - Available in help/support section - Accessible without creating account 3. Verify that documentation clearly explains: - Complete list of data types collected for each category - Purpose for collecting each data type - Legal basis for collection (consent, legitimate interest, etc.) - How data is anonymized or pseudonymized - Where data is stored (geographic location, infrastructure) - How long data is retained - Who has access to data (employees, third parties, partners) - How data is secured in transit and at rest - User rights regarding their data (access, deletion, portability) 4. Test that documentation is written in clear, non-technical language 5. Verify that technical details are available for advanced users 6. Test that documentation is available in multiple languages 7. Verify that documentation includes examples of actual data collected 8. Test that documentation is versioned and changes are tracked 9. Verify that users are notified of significant documentation changes 10. Check that contact information is provided for privacy questions **Pass Criteria**: Comprehensive documentation available AND easily accessible AND clear non-technical language AND includes all required information AND examples provided AND changes tracked **Fail Criteria**: Documentation incomplete OR hard to find OR overly technical OR missing key information OR no examples OR no change tracking **Evidence**: Documentation excerpts covering all required areas, accessibility tests from various entry points, language analysis showing clarity, example data samples, version history, user notification examples **References**: - GDPR Transparency Requirements: https://gdpr-info.eu/art-12-gdpr/ - Privacy Policy Best Practices: https://www.priv.gc.ca/en/privacy-topics/privacy-policies/02_05_d_56/ - Clear Communication Guidelines: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/individual-rights/right-to-be-informed/ ### Assessment: LOG-REQ-27 (Telemetry disable capability) **Reference**: LOG-2-REQ-19 - Users shall be able to disable telemetry at any time **Given**: A conformant browser with LOG-2 capability (default telemetry with opt-out) **Task**: Verify that users can disable telemetry at any time through browser settings, even when telemetry is enabled by default, ensuring that users retain control over diagnostic data collection regardless of defaults, that disabling is immediate and comprehensive, and that users are not pressured or tricked into keeping telemetry enabled through dark patterns or complicated procedures. **Verification**: 1. Start with browser with default telemetry enabled (LOG-2 mode) → Verify that browser functions normally with telemetry disabled 2. Access telemetry settings in browser preferences → Test that no telemetry is queued for later transmission 3. Verify that telemetry disable option is clearly visible and accessible: → Verify that settings UI clearly shows disabled status - Not buried in advanced settings - Clear labeling ("Disable Telemetry", "Turn Off Data Collection") - Single click or toggle to disable - No multi-step confirmation loops 4. Test disabling telemetry → Test that re-enabling shows clear opt-in again 5. Verify that disabling is immediate: → Verify that disabling telemetry is not bundled with other destructive actions - No "will take effect after restart" delays - Network monitoring shows immediate stop of telemetry - No final batch of data sent 6. Test that disabled state persists across browser restarts → Check that no dark patterns discourage disabling (scary warnings, hard-to-find option) **Pass Criteria**: Disable option is easily accessible AND disabling is immediate AND disabled state persists AND browser functions normally AND no dark patterns present **Fail Criteria**: Disable option hard to find OR disabling delayed OR state doesn't persist OR browser degraded OR dark patterns discourage disabling **Evidence**: Settings UI screenshots, disable workflow recordings, network traffic showing immediate stop, persistence tests, functionality verification with telemetry disabled, dark pattern analysis **References**: - User Control Rights: https://www.w3.org/TR/design-principles/#user-control - Dark Pattern Prevention: https://www.deceptive.design/ - Right to Object (GDPR): https://gdpr-info.eu/art-21-gdpr/ ### Assessment: LOG-REQ-28 (Telemetry status display) **Reference**: LOG-2-REQ-20 - Browser shall display telemetry status in settings UI **Given**: A conformant browser with LOG-2 capability (default telemetry with opt-out) **Task**: Verify that the browser prominently displays current telemetry status in settings UI, enabling users to quickly understand whether diagnostic data is being collected and transmitted, what categories are active, and when the last transmission occurred, providing transparency and easy access to telemetry controls without requiring users to navigate through complex menu structures or consult documentation. **Verification**: 1. Access browser settings/preferences → Verify that status is visible without opening advanced settings 2. Verify that telemetry status is visible in main settings view: → Test that status indicator distinguishes between: - Privacy or Data Collection section - Clear "Telemetry: Enabled/Disabled" indicator - Visual icon or status badge - Fully enabled telemetry - Partially enabled (some categories) - Fully disabled - Pending (waiting to send) 3. Test that status indicator accurately reflects current state → Verify that status information is available in "About" page or system info 4. Verify that clicking indicator provides detailed information: → Test that status is accessible via search in settings - What categories are enabled - Last telemetry transmission timestamp - Amount of data sent (if available) - Quick access to enable/disable controls 5. Test that status updates immediately when telemetry is toggled → Verify that status indicator includes timestamp of last update **Pass Criteria**: Status visible in main settings AND accurate real-time status AND detailed information accessible AND updates immediately AND distinguishes states clearly **Fail Criteria**: Status hidden in advanced settings OR inaccurate status OR no detailed info OR delayed updates OR states not distinguishable **Evidence**: Settings UI screenshots showing status indicator, status detail panel captures, real-time update demonstrations, state differentiation examples, search functionality tests **References**: - Transparency in Design: https://www.w3.org/TR/design-principles/#transparency - User Awareness: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/individual-rights/right-to-be-informed/ ### Assessment: LOG-REQ-29 (Enterprise logging enforcement) **Reference**: LOG-3-REQ-18 - Enterprise policies shall prevent users from disabling mandatory logging **Given**: A conformant browser with LOG-3 capability (mandatory telemetry for enterprise) in managed environment **Task**: Verify that enterprise policies can enforce mandatory logging that users cannot disable, ensuring that organizations can maintain required security monitoring, compliance logging, and audit trails regardless of individual user preferences, while clearly indicating to users that logging is enterprise-mandated and providing transparency about organizational data collection even when user control is restricted. **Verification**: 1. Deploy browser in enterprise environment with mandatory logging policy → Verify that logs continue to be generated and transmitted 2. Access telemetry settings as standard user → Test that browser clearly indicates enterprise management: - Management indicator in settings - Policy explanation accessible to users - Contact information for IT department 3. Verify that logging disable controls are not available: → Verify that policy can specify exactly what shall be logged - Disable toggle/checkbox is grayed out or hidden - Settings indicate "Managed by your organization" - Clear explanation that policy prevents disabling 4. Test attempting to disable logging through all available methods: → Test that policy enforcement persists across browser updates - UI controls - Configuration file edits - Command-line flags - Registry/preference modifications 5. Verify that all disable attempts are blocked → Verify that policy changes propagate to managed browsers 6. Test that policy-mandated logging cannot be bypassed → Check that users can view what data is being collected even if they can't disable it **Pass Criteria**: Enterprise policy prevents user disable of logging AND clear management indicators shown AND bypass attempts blocked AND users can view collected data AND policy enforcement persistent **Fail Criteria**: Users can disable mandated logging OR no management indicators OR bypass possible OR users can't see data OR policy not enforced consistently **Evidence**: Policy deployment documentation, managed browser screenshots showing disabled controls, bypass attempt logs, management indicator examples, policy change propagation tests **References**: - Enterprise Browser Management: https://chromeenterprise.google/policies/ - GDPR Article 88 (Processing in Employment Context): https://gdpr-info.eu/art-88-gdpr/ - Workplace Privacy Balance: https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/lawful-basis-for-processing/legitimate-interests/ ### Assessment: LOG-REQ-30 (Enterprise monitoring integration) **Reference**: LOG-3-REQ-19 - Browser shall support integration with enterprise monitoring systems **Given**: A conformant browser with LOG-3 capability in enterprise environment **Task**: Verify that the browser supports integration with enterprise security information and event management (SIEM) systems, log aggregators, and monitoring platforms, enabling centralized security monitoring, incident detection, and compliance reporting across organizational browser deployments, using standard protocols and formats that interoperate with existing enterprise security infrastructure. **Verification**: 1. Identify enterprise monitoring integration capabilities: → Verify that integration handles connection failures gracefully: - Syslog protocol support (RFC 5424/5424) - Windows Event Log integration - RESTful API for log retrieval - File-based log export with rotation - SIEM-specific connectors (Splunk, ELK, etc.) - Local queuing of logs during outage - Automatic retry logic - No log loss during temporary failures 2. Configure browser to send logs to enterprise SIEM → Test that integration supports filtering and log level configuration 3. Verify that logs are transmitted in real-time or near-real-time → Verify that enterprise can query browser for current status 4. Test log format compatibility: → Test that integration works across different platforms (Windows, macOS, Linux) - Structured logs (JSON, XML, CEF) - Standardized field names - Consistent timestamps (ISO 8601, UTC) - Severity levels mapped correctly 5. Verify that integration supports authentication and encryption: → Verify that documentation includes integration guides for popular SIEMs - TLS for network transmission - API keys or certificates for authentication - Mutual TLS support 6. Test that all log categories are available through integration: → Test that integration performance doesn't degrade browser operation - Security events - Audit trails - Certificate errors - Extension activities **Pass Criteria**: Standard protocol support (syslog, API) AND real-time transmission AND structured log formats AND authenticated/encrypted transmission AND handles failures gracefully AND cross-platform support **Fail Criteria**: No standard protocols OR delayed transmission OR unstructured logs OR no authentication/encryption OR loses logs on failure OR platform-specific only **Evidence**: SIEM integration configuration examples, log format samples, real-time transmission verification, authentication setup, failure recovery tests, cross-platform testing, performance impact analysis **References**: - Syslog Protocol: https://datatracker.ietf.org/doc/html/rfc5424 - Common Event Format: https://www.microfocus.com/documentation/arcsight/arcsight-smartconnectors/pdfdoc/common-event-format-v25/common-event-format-v25.pdf - NIST SP 800-92 Log Management: https://csrc.nist.gov/publications/detail/sp/800-92/final ### Assessment: LOG-REQ-31 (Tamper-evident logging) **Reference**: LOG-3-REQ-20 - Browser shall provide tamper-evident logging mechanisms **Given**: A conformant browser with LOG-3 capability (mandatory enterprise logging) **Task**: Verify that logging mechanisms provide tamper-evidence to detect unauthorized modification or deletion of log entries, ensuring that attackers cannot cover their tracks by altering security logs, supporting forensic investigations and compliance requirements that mandate tamper-proof audit trails, providing cryptographic assurance that logs have not been modified since creation. **Verification**: 1. Enable tamper-evident logging in browser or enterprise policy → Test that tamper detection is automatic and immediate 2. Verify tamper-evidence mechanisms in use: → Verify that tampered logs are flagged clearly - Cryptographic hashing of log entries - Digital signatures on log files - Merkle tree or hash chain linking entries - Append-only log storage - Write-once storage media support 3. Generate test log entries → Test that tamper evidence survives log export/archival 4. Verify that each entry has tamper-evident protection: → Verify that verification tools are provided to check log integrity - Hash or signature computed at creation - Hash chains link to previous entries - Timestamps are trusted (NTP, secure time source) 5. Attempt to tamper with logs: → Test that tamper evidence works with log rotation and archival - Modify log entry content - Delete log entries - Reorder log entries - Modify timestamps 6. Verify that tampering is detected: → Verify that cryptographic keys for signatures are protected - Hash verification fails - Signature verification fails - Hash chain breaks - Audit shows modification attempt **Pass Criteria**: Cryptographic tamper-evidence active AND tampering is detected reliably AND detection is immediate AND evidence survives export AND verification tools provided **Fail Criteria**: No tamper-evidence OR tampering not detected OR delayed detection OR evidence lost on export OR no verification tools **Evidence**: Tamper-evidence mechanism documentation, log entry with hash/signature examples, tampering test results showing detection, verification tool demonstrations, export integrity tests, key protection verification **References**: - NIST SP 800-92 Log Integrity: https://csrc.nist.gov/publications/detail/sp/800-92/final - Merkle Trees: https://en.wikipedia.org/wiki/Merkle_tree - Digital Signatures: https://csrc.nist.gov/projects/digital-signatures - Tamper-Evident Storage: https://csrc.nist.gov/glossary/term/tamper_evident ## 6.5 Update Mechanism Security Assessments This section covers assessment procedures for requirements UPD-REQ-1 through UPD-REQ-23, addressing secure update delivery, signature verification, rollback protection, update channels, and update transparency. ### Assessment: UPD-REQ-1 (Automatic update mechanism) **Reference**: UPD-REQ-1 - Browser shall implement an automatic update mechanism that checks for and applies security updates without user intervention **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that automatic updates prevent users from running vulnerable browser versions by ensuring security patches are promptly applied without requiring user awareness or action. Manual update processes fail because users often ignore update notifications or delay patching, leaving exploitable vulnerabilities active for extended periods. Automatic updates close this security gap by applying critical fixes as soon as they become available. **Verification**: 1. Install the browser and configure it to allow automatic updates (verify this is the default setting) → Test that the browser prompts for restart only when necessary for update installation 2. Check the browser's update settings to confirm automatic updates are enabled → Verify that the automatic update mechanism continues to function across browser restarts and system reboots 3. Access the browser's internal update interface through the settings menu → Automatic update checks occur at regular intervals without user action 4. Monitor the browser's update check schedule by reviewing internal logs or using network monitoring tools → Updates are downloaded in the background without interrupting browsing 5. Simulate an available update by configuring a test update server or using the browser's internal testing mechanisms → Update installation is automated with minimal or no user interaction required 6. Verify that the browser automatically checks for updates at the configured interval (typically daily) → Browser update status is clearly displayed to the user 7. Confirm that updates are downloaded in the background without blocking browser operation → Update checks occur even when the browser is running in background mode 8. Verify that updates are applied either at browser restart or in the background without user intervention → Failed update attempts are retried automatically **Pass Criteria**: Browser automatically checks for updates at least daily AND downloads and applies updates without mandatory user intervention AND update status is visible to users **Fail Criteria**: Automatic updates require manual user action to initiate OR updates fail to check automatically OR update mechanism can be permanently disabled by users **Evidence**: Screenshots of automatic update settings and status pages, network packet captures showing update check requests, browser internal logs showing update schedule, time-stamped video of automatic update process, configuration file exports showing update settings **References**: - Chrome Update Architecture: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md - Firefox Update System: https://wiki.mozilla.org/Software_Update - Microsoft Edge Update Policies: https://docs.microsoft.com/en-us/deployedge/microsoft-edge-update-policies - NIST SP 800-40 Guide to Enterprise Patch Management: https://csrc.nist.gov/publications/detail/sp/800-40/rev-4/final - CIS Browser Security Benchmarks: https://www.cisecurity.org/benchmark/google_chrome ### Assessment: UPD-REQ-2 (Update signature verification) **Reference**: UPD-REQ-2 - Browser shall verify cryptographic signatures of all updates before installation using trusted public keys **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update signature verification prevents distribution of malicious browser versions by ensuring only authentic vendor-signed packages can be installed, even if update infrastructure is compromised or man-in-the-middle attacks occur. Without cryptographic signature verification, attackers who compromise update servers or intercept update traffic can inject backdoored browser binaries, resulting in complete system compromise for all affected users. **Verification**: 1. Obtain a legitimate browser update package from the official distribution channel → Test that the browser rejects updates with missing signatures 2. Extract the update package and locate the cryptographic signature file or embedded signature → Confirm that signature verification occurs before any update content is executed 3. Verify the signature algorithm used (should be RSA-4096, ECDSA-P384, or stronger) → All update packages include valid cryptographic signatures 4. Attempt to modify the update package contents and observe that signature verification fails → Signature verification uses strong cryptographic algorithms (RSA-4096, ECDSA-P384, or better) 5. Create a test update package signed with an untrusted key and attempt to install it → Modified update packages are rejected due to signature verification failure 6. Monitor the browser's update process using system call tracing tools to verify signature verification occurs → Updates signed with untrusted keys are rejected 7. Check that the browser's trusted public keys are embedded in the binary or stored in a protected location → Signature verification occurs before any update code execution 8. Verify that signature verification failures prevent update installation and generate error logs → Verification failures are logged and reported to the user **Pass Criteria**: All updates are cryptographically signed AND signatures are verified before installation AND modified or incorrectly signed updates are rejected **Fail Criteria**: Updates can be installed without valid signatures OR signature verification can be bypassed OR weak cryptographic algorithms are used (RSA-2048 or weaker) **Evidence**: Update package signature files, signature verification logs, network traces of update downloads showing signature transmission, system call traces showing verification process, test results from modified update packages, cryptographic algorithm analysis **References**: - Mozilla Code Signing Policy: https://wiki.mozilla.org/Security/Binary_Transparency - NIST FIPS 186-5 Digital Signature Standard: https://csrc.nist.gov/publications/detail/fips/186/5/final - Authenticode Code Signing (Windows): https://docs.microsoft.com/en-us/windows-hardware/drivers/install/authenticode - Apple Code Signing Guide: https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/ - OWASP Code Signing Best Practices: https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html ### Assessment: UPD-REQ-3 (HTTPS-only update delivery) **Reference**: UPD-REQ-3 - Browser shall download all updates exclusively over HTTPS with certificate validation and pinning **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that HTTPS-only update delivery protects update packages from interception and modification during transit, preventing network attackers from injecting malicious code even before signature verification. While signature verification provides end-to-end authenticity, transport encryption prevents metadata leakage about which browser versions are vulnerable and adds defense-in-depth against implementation flaws in signature verification. **Verification**: 1. Configure a network proxy to intercept browser update traffic → Test that the browser verifies the update server's hostname matches the certificate 2. Monitor network traffic during an update check to verify all connections use HTTPS → Confirm that update requests include proper TLS configurations (strong cipher suites, no deprecated protocols) 3. Attempt to redirect update requests to HTTP endpoints using DNS spoofing or proxy manipulation → All update downloads occur exclusively over HTTPS connections 4. Verify that the browser rejects HTTP update URLs and only accepts HTTPS → HTTP update URLs are rejected or automatically upgraded to HTTPS 5. Test certificate validation by presenting an invalid certificate for the update server → TLS 1.2 or TLS 1.3 is enforced for all update traffic 6. Check if the browser implements certificate pinning for update domains → Certificate validation is performed with proper hostname verification 7. Attempt a man-in-the-middle attack on the update channel using a rogue certificate → Certificate pinning is implemented for update domains 8. Verify that TLS 1.2 or higher is used for all update connections → Man-in-the-middle attacks on update channels are detected and blocked - Strong cipher suites are negotiated (AES-GCM, ChaCha20-Poly1305) - Deprecated protocols (TLS 1.0, TLS 1.1, SSLv3) are rejected **Pass Criteria**: All update traffic uses HTTPS with TLS 1.2+ AND certificate validation is enforced AND HTTP update URLs are rejected AND certificate pinning is implemented for critical update domains **Fail Criteria**: Updates can be downloaded over HTTP OR TLS 1.1 or earlier is accepted OR certificate validation can be bypassed OR no certificate pinning is implemented **Evidence**: Network packet captures showing HTTPS-only update traffic, TLS handshake analysis, certificate chain validation logs, test results from HTTP redirect attempts, man-in-the-middle attack test results, cipher suite negotiation logs **References**: - Chrome Update Server Pinning: https://www.chromium.org/Home/chromium-security/security-faq/#TOC-How-does-key-pinning-work-in-Chrome- - Mozilla Update Server Security: https://wiki.mozilla.org/Security/Server_Side_TLS - NIST SP 800-52 TLS Guidelines: https://csrc.nist.gov/publications/detail/sp/800-52/rev-2/final - IETF RFC 8446 TLS 1.3: https://www.rfc-editor.org/rfc/rfc8446 - OWASP Transport Layer Security: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet.html - Certificate Pinning Best Practices: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning ### Assessment: UPD-REQ-4 (Update manifest integrity) **Reference**: UPD-REQ-4 - Browser shall verify the integrity of update manifests containing version information, file hashes, and metadata **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update manifest integrity protects the update metadata from tampering, ensuring that version information, file hashes, and download URLs cannot be manipulated by attackers to redirect updates to malicious files or bypass security checks. Compromised manifests can trick browsers into downloading wrong versions or accepting manipulated update files even when signature verification is implemented. **Verification**: 1. Capture an update manifest file during a browser update check (typically JSON or XML format) → Confirm that manifest validation failures are logged and prevent update installation 2. Examine the manifest structure to verify it includes: version number, file hashes, file sizes, signature, and metadata → Update manifests are cryptographically signed and signatures are verified 3. Verify that the manifest itself is signed and the signature is validated before processing → Manifests include complete metadata: version, file hashes (SHA-256+), sizes, timestamps 4. Attempt to modify the manifest file (change version number or file hashes) and verify it is rejected → Modified manifests are rejected due to signature verification failures 5. Test that each file listed in the manifest includes a cryptographic hash (SHA-256 or stronger) → Each update file is verified against manifest hashes before installation 6. Verify that downloaded update files are checked against the manifest hashes before installation → Hash mismatches prevent installation and generate error logs 7. Test that mismatched file hashes prevent installation and trigger error handling → Manifests include rollback protection information (minimum version) 8. Check that the manifest includes timestamp information to prevent replay attacks → Timestamp validation prevents replay attacks 9. Verify that the manifest specifies minimum supported versions for rollback protection → Manifest structure follows a well-defined schema **Pass Criteria**: Update manifests are signed and verified AND contain file hashes (SHA-256+) for all components AND hash verification is enforced before installation AND manifest tampering is detected and rejected **Fail Criteria**: Manifests are not signed OR file hashes are missing or not verified OR modified manifests are accepted OR weak hash algorithms (MD5, SHA-1) are used **Evidence**: Update manifest files in JSON/XML format, manifest signature verification logs, test results from modified manifests, hash verification logs, network captures showing manifest downloads, schema validation results **References**: - Chrome Update Manifest Format: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/protocol_3_1.md - The Update Framework (TUF) Specification: https://theupdateframework.github.io/specification/latest/ - NIST SP 800-107 Hash Function Recommendations: https://csrc.nist.gov/publications/detail/sp/800-107/rev-1/final - Google Omaha Protocol: https://github.com/google/omaha/blob/main/doc/ServerProtocolV3.md - OWASP Software Supply Chain Security: https://owasp.org/www-project-software-component-verification-standard/ ### Assessment: UPD-REQ-5 (Rollback protection) **Reference**: UPD-REQ-5 - Browser shall implement rollback protection to prevent installation of older versions with known vulnerabilities **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that rollback protection prevents attackers from downgrading browsers to older versions containing known exploitable vulnerabilities, blocking a common attack vector where adversaries force installation of vulnerable software to exploit publicly disclosed flaws. Without rollback protection, attackers who compromise update infrastructure or perform man-in-the-middle attacks can systematically downgrade browser installations to versions with known, weaponized exploits. **Verification**: 1. Identify the currently installed browser version number → Confirm that rollback protection errors are logged with version information 2. Obtain an older version of the browser update package (at least 2-3 versions older) → Browser rejects installation of older versions through automatic update mechanism 3. Attempt to install the older update package through the automatic update mechanism → Minimum version numbers are enforced based on security requirements 4. Verify that the browser rejects the installation with an appropriate error message → Manual downgrade attempts are blocked or generate security warnings 5. Check the browser's update configuration for minimum version enforcement policies → Browser maintains persistent version history to detect rollback attempts 6. Test that the browser maintains a record of the highest version ever installed → Critical security milestone versions cannot be downgraded 7. Attempt to manually downgrade the browser by installing an older version package → Rollback protection applies to both full updates and component updates 8. Verify that critical security updates cannot be rolled back even by administrators → Clear error messages indicate rollback protection enforcement 9. Test that the rollback protection persists across browser reinstallations (if applicable) → Version comparison logic handles all version number formats correctly **Pass Criteria**: Browser prevents installation of older versions through automatic updates AND maintains version history to detect rollbacks AND critical security versions cannot be downgraded **Fail Criteria**: Older versions can be installed through update mechanism OR no minimum version enforcement exists OR rollback protection can be easily bypassed **Evidence**: Update rejection logs showing version mismatch errors, test results from downgrade attempts, version history configuration files, error messages from rollback protection, policy configuration showing minimum version requirements **References**: - Chrome Version Enforcement: https://chromeenterprise.google/policies/#TargetVersionPrefix - Android Rollback Protection: https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection - TUF Rollback Attack Prevention: https://theupdateframework.io/docs/security/ - NIST Cybersecurity Framework - Update Management: https://www.nist.gov/cyberframework - Mozilla Update Security Guidelines: https://wiki.mozilla.org/Security/Server_Side_TLS - Microsoft Update Rollback Protection: https://docs.microsoft.com/en-us/windows/deployment/update/waas-restart ### Assessment: UPD-REQ-6 (Update channel isolation) **Reference**: UPD-REQ-6 - Browser shall maintain isolation between update channels (stable, beta, dev) with independent signature verification **Given**: A conformant browser with UPD-1 or higher capability supporting multiple channels **Task**: Verify that update channel isolation prevents attackers from injecting unstable or experimental browser versions into production deployments by ensuring strict separation between stable, beta, and development update streams. Without channel isolation, compromised development infrastructure or testing servers could be leveraged to push untested code to stable channel users, introducing vulnerabilities or instability into production environments. **Verification**: 1. Identify the available update channels for the browser (stable, beta, dev, canary) → Confirm that cross-channel update injection attempts are logged and rejected 2. Install the browser in stable channel mode and verify the update channel configuration → Each update channel has distinct update server endpoints 3. Examine the update server URLs for each channel to verify they are distinct → Channel-specific signature verification prevents cross-channel update injection 4. Attempt to inject a beta or dev channel update into a stable channel installation → Update manifests include channel identification that is verified 5. Verify that each channel uses separate signature verification keys or key policies → Channel switching requires explicit user consent and configuration changes 6. Test that switching between channels requires explicit user action and confirmation → Downgrading channels (stable to beta/dev) triggers security warnings 7. Check that channel metadata is included in update manifests and verified → Channel isolation prevents malicious update server redirection 8. Attempt to downgrade from stable to beta channel and verify the security implications are communicated → Each channel maintains independent version history and rollback protection 9. Verify that each channel has independent version numbering and rollback protection → Cross-channel update attempts are detected and logged **Pass Criteria**: Update channels use separate server endpoints AND channel-specific signature verification prevents injection AND channel switching requires explicit user action AND cross-channel updates are rejected **Fail Criteria**: Update channels share signature keys OR cross-channel updates can be injected OR no channel verification in update manifests OR channel switching occurs without user consent **Evidence**: Update server URL configurations for each channel, signature verification key policies, channel metadata in update manifests, test results from cross-channel injection attempts, channel switching logs, network traces showing channel-specific endpoints **References**: - Chrome Release Channels: https://www.chromium.org/getting-involved/dev-channel/ - Firefox Release Management: https://wiki.mozilla.org/Release_Management/Release_Process - Microsoft Edge Channels: https://docs.microsoft.com/en-us/deployedge/microsoft-edge-channels - Google Chrome Enterprise Channel Management: https://support.google.com/chrome/a/answer/9982578 - NIST Secure Software Development Framework: https://csrc.nist.gov/Projects/ssdf ### Assessment: UPD-REQ-7 (Component update support) **Reference**: UPD-REQ-7 - Browser shall support independent security updates for components (rendering engine, JavaScript engine, libraries) without full browser updates **Given**: A conformant browser with UPD-2 or higher capability **Task**: Verify that component-level updates enable rapid patching of critical subsystems like JavaScript engines or rendering engines without waiting for full browser release cycles, reducing the window of exposure for component-specific vulnerabilities. Monolithic update systems delay security fixes because all components should be tested together, while independent component updates allow targeted, accelerated security patching for high-risk subsystems. **Verification**: 1. Identify the browser's major components that support independent updates (e.g., V8, Chromium base, libraries) → Verify that component update status is visible in the browser's update interface 2. Monitor the update mechanism to detect component-specific update packages → Individual components can be updated independently of full browser updates 3. Verify that component updates include version information and dependency specifications → Component updates include version and dependency metadata 4. Test that component updates are applied without requiring a full browser restart when possible → Component updates are signed and verified like full browser updates 5. Attempt to install incompatible component versions and verify dependency checking prevents installation → Incompatible component versions are rejected based on dependency checking 6. Check that component updates follow the same security verification as full updates (signatures, HTTPS) → Component updates can be applied with minimal or no browser restart 7. Verify that component update manifests specify compatibility with browser versions → Critical security components can be updated on accelerated schedules 8. Test that critical component vulnerabilities can be patched independently of the full release schedule → Component update history is tracked separately from full browser versions 9. Confirm that component updates maintain rollback protection independently → Update interface displays component-level version information **Pass Criteria**: Browser supports independent component updates with signature verification AND dependency checking prevents incompatible installations AND component updates follow same security verification as full updates **Fail Criteria**: No support for component-level updates OR component updates bypass security verification OR no dependency checking for component compatibility **Evidence**: Component update manifest files, component version listings from browser internals, update logs showing component-specific updates, dependency verification results, signature verification for component updates, test results from incompatible component installations **References**: - Chrome Component Updates: https://chromium.googlesource.com/chromium/src/+/main/components/component_updater/README.md - V8 Engine Versioning: https://v8.dev/docs/version-numbers - WebRTC Component Updates: https://webrtc.github.io/webrtc-org/release-notes/ - NIST Software Component Verification: https://csrc.nist.gov/Projects/cyber-supply-chain-risk-management - OWASP Dependency Check: https://owasp.org/www-project-dependency-check/ ### Assessment: UPD-REQ-8 (Emergency update capability) **Reference**: UPD-REQ-8 - Browser shall support emergency update mechanism for critical zero-day vulnerabilities with accelerated deployment **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that emergency update mechanisms enable rapid deployment of critical zero-day patches to all users before exploit code becomes widely available, minimizing the window of vulnerability exploitation. Standard rollout schedules of days or weeks are unacceptable for actively exploited vulnerabilities, requiring accelerated deployment paths that bypass normal staged rollouts while maintaining security verification integrity. **Verification**: 1. Review the browser's update documentation for emergency or critical update procedures → Confirm that emergency update mechanisms include additional verification to prevent abuse 2. Examine update check frequency configuration and verify it can be increased for critical updates → Browser supports accelerated update checks for critical security updates 3. Test that the browser can be configured to prioritize critical security updates over feature updates → Emergency updates include priority flags in update manifests 4. Simulate an emergency update scenario by configuring a test update with high-priority flags → Critical updates bypass staged rollout mechanisms for faster deployment 5. Verify that emergency updates bypass normal staged rollout delays → Users receive prominent notifications for emergency security updates 6. Test that users receive prominent notifications for critical security updates requiring immediate action → Emergency updates can trigger forced restarts with clear security justification 7. Check that emergency updates can trigger forced restarts with appropriate user warnings → Emergency update flags are authenticated and cannot be spoofed 8. Verify that emergency update flags cannot be spoofed by malicious update servers → Audit logs distinguish emergency updates from regular updates 9. Test that emergency updates are logged with high-priority markers for audit purposes → Emergency update mechanism includes safeguards against abuse **Pass Criteria**: Browser supports emergency update mechanism with accelerated deployment AND emergency updates bypass normal rollout delays AND priority flags are authenticated AND users are clearly notified of critical updates **Fail Criteria**: No emergency update mechanism exists OR emergency updates follow normal rollout schedule OR priority flags can be spoofed OR users cannot distinguish critical from regular updates **Evidence**: Emergency update configuration documentation, test results from simulated critical updates, update priority flags in manifests, notification screenshots for critical updates, audit logs showing emergency update markers, rollout bypass verification **References**: - Chrome Critical Update Deployment: https://chromereleases.googleblog.com/ - Firefox Critical Updates: https://www.mozilla.org/en-US/security/advisories/ - NIST SP 800-40 Emergency Patching: https://csrc.nist.gov/publications/detail/sp/800-40/rev-4/final - CERT Vulnerability Disclosure: https://vuls.cert.org/confluence/display/Wiki/Vulnerability+Disclosure+Policy - Microsoft Security Response Center: https://www.microsoft.com/en-us/msrc ### Assessment: UPD-REQ-9 (Update verification before installation) **Reference**: UPD-REQ-9 - Browser shall perform complete integrity verification of all update files before beginning installation process **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update verification prevents installation of compromised or tampered browser builds, ensuring only authentic vendor-signed updates can be applied even if the update server or distribution network is compromised. This prevents attackers from injecting malicious code through man-in-the-middle attacks, compromised CDNs, or corrupted downloads that bypass cryptographic verification. **Verification**: 1. Monitor the browser update process to identify the verification phase before installation → Verify that the verification process cannot be bypassed or interrupted 2. Capture update files during download and verify that hashes match the update manifest → All update files are verified against cryptographic hashes before installation 3. Corrupt an update file after download but before installation to test verification → Hash algorithms used are SHA-256 or stronger 4. Verify that corrupted files are detected and re-downloaded before installation proceeds → Corrupted or modified files are detected and rejected 5. Test that partial downloads are detected and not installed → Partial downloads are detected and completed before installation 6. Check that all update files are verified against the signed manifest before any installation steps → Installation begins only after complete verification of all update components 7. Verify that installation only begins after all files pass integrity checks → Verification failures trigger automatic re-download or error reporting 8. Test that verification failures trigger error handling and logging → Failed verifications are logged with specific error information 9. Confirm that failed verifications do not leave the browser in an unstable state → Browser remains in stable state if verification fails **Pass Criteria**: All update files are verified with cryptographic hashes (SHA-256+) before installation AND corrupted files are detected and re-downloaded AND installation only proceeds after complete verification **Fail Criteria**: Update files are installed without verification OR weak hash algorithms are used OR corrupted files can be installed OR verification can be bypassed **Evidence**: Update verification logs showing hash checks, test results from corrupted file installations, network traces showing re-download behavior, hash algorithm analysis, installation process flow documentation, error handling logs **References**: - Chrome Update Verification: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#verification - Mozilla Update Integrity Checks: https://wiki.mozilla.org/Software_Update#Integrity_Checks - NIST Hash Function Security: https://csrc.nist.gov/projects/hash-functions - TUF Consistent Snapshot Protection: https://theupdateframework.github.io/specification/latest/#consistent-snapshots - ISO/IEC 29147 Vulnerability Disclosure: https://www.iso.org/standard/72311.html ### Assessment: UPD-REQ-10 (Update failure recovery) **Reference**: UPD-REQ-10 - Browser shall implement robust failure recovery mechanisms to restore functionality if update installation fails **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update failure recovery mechanisms maintain browser availability and security posture even when updates fail, preventing denial-of-service scenarios where failed updates render the browser unusable or leave it in a vulnerable state. This ensures users retain access to a functional, secure browser and prevents attackers from exploiting update failures to create persistent availability issues. **Verification**: 1. Create a test scenario where update installation fails (disk full, permission denied, file corruption) → Confirm that recovery processes are logged for troubleshooting 2. Trigger an update and simulate installation failure at various stages (download, verification, installation) → Failed updates do not prevent browser from launching or functioning 3. Verify that the browser rolls back to the previous working version after installation failure → Browser automatically rolls back to previous version after installation failures 4. Test that the browser remains functional and can be launched after a failed update → User data and settings are preserved through failed update attempts 5. Verify that failed update state is detected and reported to the user with clear messaging → Clear error messages indicate update failure causes 6. Test that the browser automatically retries failed updates with exponential backoff → Automatic retry mechanisms with exponential backoff are implemented 7. Simulate power loss or system crash during update installation → Interrupted updates (power loss, crash) are detected and recovered on next launch 8. Verify that the browser can recover from interrupted updates on next launch → Recovery processes maintain browser stability and security 9. Test that update failure recovery preserves user data and settings → All recovery actions are logged with timestamps and error codes **Pass Criteria**: Browser remains functional after update failures AND automatically rolls back to working version AND retries failed updates automatically AND preserves user data through failures **Fail Criteria**: Failed updates prevent browser launch OR no rollback mechanism exists OR user data is corrupted by failed updates OR no automatic retry for failed updates **Evidence**: Update failure logs with error codes, rollback process documentation, test results from simulated failures (disk full, crash, corruption), user data integrity verification, retry attempt logs with backoff timing, recovery process screenshots **References**: - Chrome Update Recovery: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#error-handling - NIST Resilience Engineering: https://csrc.nist.gov/glossary/term/resilience - Google Omaha Error Handling: https://github.com/google/omaha/blob/main/doc/ServerProtocolV3.md#error-codes ### Assessment: UPD-REQ-11 (Update transparency logging) **Reference**: UPD-REQ-11 - Browser shall implement update transparency logging to create auditable records of all update activities **Given**: A conformant browser with UPD-1 or higher capability and LOG-1 or higher capability **Task**: Verify that update transparency logging creates auditable records of all update activities, enabling detection of compromised update infrastructure, supply chain attacks, or unauthorized modifications to the browser. This provides forensic evidence for security incident investigation and enables organizations to verify that only legitimate, authorized updates were applied to their browser fleet. **Verification**: 1. Enable update logging through browser configuration or developer tools → Test that update logs are protected from tampering and include integrity verification 2. Perform a complete update cycle and capture all generated logs → All update activities are logged with timestamps and version information 3. Verify that logs include: update check timestamps, available versions, download start/completion, verification results, installation status → Logs include download sources, file hashes, and signature verification results 4. Test that update logs include cryptographic hashes of installed components → Update failures are logged with detailed error information 5. Verify that signature verification results are logged with key identifiers → User actions related to updates are captured in logs 6. Check that update server URLs and responses are logged for audit purposes → Logs are structured and machine-readable (JSON or similar format) 7. Test that all update failures are logged with specific error codes and context → Update logs can be exported for compliance and audit purposes 8. Verify that logs include user actions related to updates (manual checks, deferrals, channel changes) → Logs include sufficient detail for security incident investigation 9. Confirm that update logs can be exported for external analysis or compliance reporting → Log integrity is protected through checksums or signing **Pass Criteria**: All update activities are logged with complete details AND logs include hashes and verification results AND logs are exportable in structured format AND log integrity is protected **Fail Criteria**: Update activities are not logged OR logs lack critical information (timestamps, versions, hashes) OR logs cannot be exported OR logs can be tampered with **Evidence**: Complete update log files showing full update cycle, exported logs in JSON/structured format, log integrity verification results, test results showing failure logging, screenshots of update log interfaces, compliance report samples **References**: - Chrome Update Logging: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#logging - Binary Transparency: https://wiki.mozilla.org/Security/Binary_Transparency - NIST SP 800-92 Log Management: https://csrc.nist.gov/publications/detail/sp/800-92/final - Google Binary Authorization: https://cloud.google.com/binary-authorization/docs - Certificate Transparency RFC 6962: https://www.rfc-editor.org/rfc/rfc6962 - OWASP Logging Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html ### Assessment: UPD-REQ-12 (Delta update security) **Reference**: UPD-REQ-12 - Browser shall securely implement delta updates (patches) with same security verification as full updates **Given**: A conformant browser with UPD-2 or higher capability supporting delta updates **Task**: Verify that delta update security prevents attackers from exploiting differential patching mechanisms to inject malicious code through crafted patch files that bypass full binary verification. Delta updates introduce unique attack vectors where malicious patches could transform a legitimate binary into a compromised one if the patch itself and the resulting binary are not both cryptographically verified against known-good hashes. **Verification**: 1. Monitor the browser update mechanism to detect delta update packages (smaller than full updates) → Confirm that delta update security matches or exceeds full update security 2. Verify that delta updates are offered only when the current version is compatible → Delta updates are cryptographically signed and verified before application 3. Capture a delta update package and examine its structure and signature → Source version verification ensures delta is compatible with installed version 4. Verify that delta updates are cryptographically signed independently from full updates → Resulting files after delta application are verified against target hashes 5. Test that applying a delta update includes verification of the resulting files against expected hashes → Incompatible delta updates are rejected with fallback to full updates 6. Attempt to apply a delta update to an incompatible base version and verify it is rejected → Delta update application is atomic (complete or rollback) 7. Test that delta update application includes atomic operations (all-or-nothing installation) → Both patch integrity and result integrity are verified 8. Verify that failed delta updates can fall back to full update downloads → Delta updates use same or stronger cryptography as full updates 9. Check that delta updates include integrity checks for both the patch and the result → Delta update failures trigger automatic fallback mechanisms **Pass Criteria**: Delta updates are signed and verified independently AND source version compatibility is checked AND resulting files are verified against target hashes AND fallback to full updates on failure **Fail Criteria**: Delta updates bypass security verification OR no source version checking OR result files not verified OR no fallback mechanism for failed deltas **Evidence**: Delta update package analysis showing signatures, delta vs full update size comparisons, verification logs for delta application, test results from incompatible delta applications, fallback mechanism demonstrations, atomic operation verification **References**: - Google Courgette (Delta Compression): https://www.chromium.org/developers/design-documents/software-updates-courgette/ - Binary Diff Security: https://theupdateframework.github.io/specification/latest/#targets-metadata - Mozilla MAR Format (Mozilla Archive): https://wiki.mozilla.org/Software_Update:MAR - Microsoft Delta Updates: https://docs.microsoft.com/en-us/windows/deployment/update/psfxwhitepaper - NIST Software Patch Security: https://csrc.nist.gov/glossary/term/patch ### Assessment: UPD-REQ-13 (Update server authentication) **Reference**: UPD-REQ-13 - Browser shall authenticate update servers using certificate validation, pinning, and domain verification **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update server authentication prevents man-in-the-middle attacks and DNS hijacking attempts that could redirect browsers to malicious update servers distributing compromised builds. Certificate pinning and domain verification ensure that even if an attacker obtains a valid TLS certificate through a compromised Certificate Authority or DNS spoofing, the browser will reject connections to fraudulent update servers. **Verification**: 1. Capture network traffic during update checks to identify update server domains → Confirm that failed authentication prevents update checks and is logged 2. Examine TLS certificates presented by update servers for validity and chain of trust → Update servers present valid TLS certificates with complete chain of trust 3. Verify that update server domains match expected values hardcoded in browser or configuration → Certificate pinning is implemented for update server domains 4. Test certificate pinning by attempting to present a valid but unpinned certificate for update domain → Update server domains are verified against expected values 5. Attempt DNS spoofing to redirect update requests to malicious servers → DNS spoofing attempts are detected through certificate pinning 6. Verify that update server certificate validation includes OCSP/CRL checks → Certificate revocation status is checked via OCSP or CRL 7. Test that expired or revoked certificates for update servers are rejected → Expired or revoked certificates cause update failures 8. Check that update server authentication occurs before any update data is processed → HSTS is enforced for update server domains 9. Verify that update server domains use HSTS to prevent protocol downgrade attacks → Authentication failures are logged and prevent update downloads **Pass Criteria**: Update servers are authenticated with certificate validation AND certificate pinning is implemented AND domain verification prevents spoofing AND revocation checking is performed **Fail Criteria**: No certificate pinning for update servers OR domain verification can be bypassed OR revocation checking is not performed OR expired certificates are accepted **Evidence**: Update server TLS certificates and chains, certificate pinning configurations, network traces showing authentication, test results from DNS spoofing attempts, OCSP/CRL check logs, HSTS policy verification, authentication failure logs **References**: - Chrome Certificate Pinning: https://www.chromium.org/Home/chromium-security/security-faq/#TOC-How-does-key-pinning-work-in-Chrome- - Certificate Transparency Monitoring: https://certificate.transparency.dev/ - IETF RFC 7469 Public Key Pinning: https://www.rfc-editor.org/rfc/rfc7469 - OCSP Stapling: https://www.rfc-editor.org/rfc/rfc6066#section-8 - Mozilla Update Server Security: https://wiki.mozilla.org/Security/Server_Side_TLS - OWASP Certificate Pinning: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning ### Assessment: UPD-REQ-14 (Update timing jitter) **Reference**: UPD-REQ-14 - Browser shall implement randomized timing jitter for update checks to prevent server load spikes and timing analysis **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update timing jitter prevents thundering herd problems that could enable denial-of-service attacks against update infrastructure or timing analysis attacks that reveal browser deployment patterns. Synchronized update checks from millions of browsers could overwhelm update servers or allow attackers to identify organizational update policies through traffic analysis, making randomized jitter a critical availability and privacy protection. **Verification**: 1. Configure multiple browser instances (at least 10) with synchronized clocks → Confirm that jitter is cryptographically random, not predictable 2. Monitor update check timing for each instance over a 24-hour period → Update checks include randomized timing jitter to distribute server load 3. Calculate the distribution of update check times relative to the scheduled interval → Jitter range is appropriate for the update check frequency (typically ±10-20%) 4. Verify that update checks are not synchronized across all instances → Multiple instances do not synchronize update checks at same time 5. Measure the jitter range (randomization window) applied to update checks → Jitter uses cryptographically secure random number generation 6. Test that jitter is applied even when manual update checks are performed → Critical updates can bypass jitter for immediate deployment when needed 7. Verify that jitter does not delay critical security updates beyond acceptable windows → Jitter prevents timing analysis attacks on update behavior 8. Check that jitter implementation prevents timing analysis attacks → Jitter does not excessively delay important security updates 9. Test that jitter ranges are appropriate (e.g., ±1-2 hours for daily checks) → Update check distribution follows expected random distribution **Pass Criteria**: Update checks include random jitter of at least ±10% of check interval AND jitter uses cryptographic randomness AND multiple instances show distributed check times AND critical updates can bypass jitter **Fail Criteria**: No timing jitter implemented OR jitter is predictable OR all instances synchronize checks OR critical updates are delayed by jitter **Evidence**: Update check timing logs from multiple instances, statistical analysis of check time distribution, jitter range configuration, randomness quality analysis, test results showing de-synchronized checks, critical update bypass demonstrations **References**: - Chrome Update Timing: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#update-checks - Thundering Herd Problem: https://en.wikipedia.org/wiki/Thundering_herd_problem - NIST Randomness Recommendations: https://csrc.nist.gov/projects/random-bit-generation - Google Omaha Protocol Timing: https://github.com/google/omaha/blob/main/doc/ServerProtocolV3.md#update-check-timing - Load Balancing Best Practices: https://aws.amazon.com/architecture/well-architected/ ### Assessment: UPD-REQ-15 (Background update enforcement) **Reference**: UPD-REQ-15 - Browser shall enforce background update processes that continue even when browser is not actively running **Given**: A conformant browser with UPD-2 or higher capability **Task**: Verify that background update enforcement ensures security updates are applied even when users rarely launch the browser, preventing scenarios where unpatched browsers accumulate critical vulnerabilities. Without background updates, attackers can target users who infrequently use their browsers but still have them installed, exploiting the extended window of vulnerability between releases and actual patching. **Verification**: 1. Close all browser windows completely to ensure browser is not running → Confirm that background updates respect system resource constraints (network metering, battery status) 2. Monitor system processes to verify background update service remains active → Background update service remains active when browser is closed 3. Wait for the scheduled update check interval with browser closed → Update checks occur on schedule regardless of browser running state 4. Verify that update checks occur even when browser is not running → Background service starts automatically at system boot 5. Test that background update service starts automatically at system boot → Updates can download and install without browser being open 6. Simulate an available update and verify it downloads in background while browser is closed → Background service runs with minimal necessary privileges 7. Test that background updates can wake the system from sleep if configured (platform-dependent) → Service cannot be easily disabled by users or malicious software 8. Verify that background update service has appropriate system permissions but runs with minimal privileges → Resource-aware update behavior (respects metered connections, battery) 9. Check that background update process is resistant to termination by users or malware → Background service restarts automatically if terminated abnormally **Pass Criteria**: Background update service runs independently of browser AND performs update checks on schedule when browser closed AND downloads updates in background AND restarts automatically if terminated **Fail Criteria**: Update service requires browser to be running OR no background update checks when closed OR service can be easily disabled OR does not restart after termination **Evidence**: System process listings showing background service, update logs showing checks while browser closed, service configuration and permissions, automatic restart verification, resource usage monitoring, test results from service termination attempts **References**: - Chrome Background Updates: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#background-mode - Windows Update Service Architecture: https://docs.microsoft.com/en-us/windows/deployment/update/how-windows-update-works - macOS Launch Agents: https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html - Linux systemd Services: https://www.freedesktop.org/software/systemd/man/systemd.service.html - Firefox Background Update Service: https://support.mozilla.org/en-US/kb/enable-background-updates-firefox-windows - NIST Automated Patch Management: https://csrc.nist.gov/publications/detail/sp/800-40/rev-4/final ### Assessment: UPD-REQ-16 (Update notification UI) **Reference**: UPD-REQ-16 - Browser shall provide clear, user-friendly notifications about available updates and security status without enabling user suppression of critical updates **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update notification UI balances security enforcement with user experience, ensuring critical security updates cannot be suppressed while avoiding notification fatigue that causes users to ignore all update prompts. This prevents social engineering attacks where users habitually dismiss security notifications and ensures that truly critical updates demanding immediate attention are distinguished from routine maintenance updates. **Verification**: 1. Trigger an available update and observe the notification mechanism → Confirm that update UI clearly distinguishes between "check for updates" and current update status 2. Verify that update notifications are visible but non-intrusive (e.g., menu icon, subtle indicator) → Update notifications are displayed prominently but do not block browsing 3. Test that critical security updates generate more prominent notifications than feature updates → Critical security updates have more prominent notifications than feature updates 4. Attempt to dismiss or suppress update notifications and verify critical updates cannot be permanently suppressed → Update type and importance are clearly communicated to users 5. Verify that update notifications include clear information about update type (security vs feature) → Critical security updates cannot be permanently dismissed or ignored 6. Test that users can defer non-critical updates but not critical security updates → Non-critical updates can be deferred by users with clear re-notification 7. Check that update status is always accessible through browser settings or help menu → Update status is always visible in browser settings/help menu 8. Verify that notifications include estimated update size and installation time → Notifications include helpful details (update size, type, installation requirements) 9. Test that update notifications are accessible (screen reader compatible, high contrast support) → Update UI is accessible to users with disabilities **Pass Criteria**: Update notifications are clear and accessible AND critical updates cannot be permanently suppressed AND update type and importance are communicated AND users can defer non-critical updates **Fail Criteria**: No update notifications OR critical updates can be permanently suppressed OR update type unclear OR notifications block browser usage OR inaccessible UI **Evidence**: Screenshots of update notifications for various update types, test results from notification dismissal attempts, accessibility testing results (screen reader, high contrast), user flow documentation, notification timing and frequency logs **References**: - Chrome Update UI: https://support.google.com/chrome/answer/95414 - Firefox Update Preferences: https://support.mozilla.org/en-US/kb/update-firefox-latest-release - WCAG 2.1 Accessibility Guidelines: https://www.w3.org/WAI/WCAG21/quickref/ - Microsoft UI Design Principles: https://docs.microsoft.com/en-us/windows/apps/design/ - NIST Usability and Security: https://www.nist.gov/itl/applied-cybersecurity/tig/back-basics-multi-factor-authentication ### Assessment: UPD-REQ-17 (Forced update for critical vulnerabilities) **Reference**: UPD-REQ-17 - Browser shall support forced update mechanisms for critical vulnerabilities that require immediate patching **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that forced update mechanisms can override user preferences when actively exploited critical vulnerabilities require immediate patching, preventing scenarios where user inaction leaves browsers vulnerable to widespread attacks. This emergency response capability is to be protected against abuse through cryptographic verification while ensuring that users running vulnerable versions are protected even if they attempt to defer updates. **Verification**: 1. Review browser documentation for forced update or killswitch mechanisms → Confirm that forced update events are logged with justification and admin override options (if applicable) 2. Simulate a critical vulnerability scenario requiring immediate update → Browser supports forced update mechanism for critical security issues 3. Verify that forced updates can override user deferral preferences → Forced updates override user preferences and deferral settings 4. Test that forced updates trigger mandatory browser restart with clear security messaging → Clear security messaging explains necessity of forced updates to users 5. Check that forced update status is indicated in update manifests with verifiable flags → Forced update flags in manifests are cryptographically verified 6. Attempt to bypass or cancel a forced update and verify it cannot be avoided → Grace periods provide countdown timers before mandatory restart 7. Verify that forced updates include grace periods with countdown timers before enforcement → Forced updates cannot be bypassed or permanently cancelled 8. Test that forced updates can disable the browser if update fails or is unavailable → Browser may be disabled if critical update cannot be applied 9. Check that forced update mechanism includes safeguards against abuse (signed manifests, trusted channels) → Forced update mechanism is protected against spoofing and abuse **Pass Criteria**: Forced update mechanism exists for critical vulnerabilities AND overrides user deferrals AND provides clear security messaging AND forced update flags are cryptographically verified AND includes grace periods **Fail Criteria**: No forced update mechanism OR can be bypassed by users OR no verification of forced update flags OR no security messaging explaining necessity **Evidence**: Forced update configuration documentation, test results from simulated critical updates, user notification screenshots, forced update manifest flags, grace period timer demonstrations, bypass attempt results, audit logs for forced updates **References**: - Chrome Component Killswitch: https://www.chromium.org/administrators/policy-list-3#ComponentUpdatesEnabled - Firefox Blocklist System: https://wiki.mozilla.org/Blocklisting - Microsoft Forced Update Policies: https://docs.microsoft.com/en-us/deployedge/microsoft-edge-update-policies#updatedefault - CVE Critical Severity Guidelines: https://www.first.org/cvss/ - NIST Critical Patch Management: https://csrc.nist.gov/publications/detail/sp/800-40/rev-4/final ### Assessment: UPD-REQ-18 (Update verification chain) **Reference**: UPD-REQ-18 - Browser shall implement complete chain-of-trust verification from update manifest through component signatures to final installation **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that complete chain-of-trust verification prevents sophisticated supply chain attacks where attackers compromise individual components of the update distribution system. By requiring cryptographic validation at every level from root keys through manifests to individual component signatures, the browser ensures that compromise of any single element in the distribution chain cannot result in installation of malicious updates. **Verification**: 1. Trace the complete update verification chain from initial update check to installation → Confirm that any break in verification chain prevents installation and triggers errors 2. Verify that update manifest is signed by trusted root key embedded in browser → Complete chain-of-trust from root keys to installed components 3. Examine the signature chain: root key → manifest → component hashes → component signatures → Root keys for update verification are embedded in browser binary 4. Test that each level of the verification chain is validated before proceeding → Update manifests are signed and verified against trusted root keys 5. Attempt to break the chain by presenting valid components with invalid manifest → Component signatures are verified against manifest hashes 6. Verify that intermediate certificate revocation breaks the verification chain → Each verification step is performed in sequence with no shortcuts 7. Test that the root keys used for update verification are embedded in browser binary and protected → Any break in verification chain prevents installation 8. Check that chain-of-trust validation occurs even for component updates → Intermediate certificate revocation is detected and enforced 9. Verify that the entire verification chain is logged for audit purposes → Verification chain is logged with details at each step **Pass Criteria**: Complete verification chain from root keys to components AND each level is validated before proceeding AND breaks in chain prevent installation AND root keys are embedded and protected **Fail Criteria**: Incomplete verification chain OR steps can be skipped OR root keys not embedded OR chain breaks do not prevent installation **Evidence**: Verification chain documentation and diagrams, root key extraction from browser binary, signature verification logs at each chain level, test results from chain break attempts, intermediate certificate revocation tests, audit logs showing complete chain verification **References**: - Chrome Root Certificate Program: https://www.chromium.org/Home/chromium-security/root-ca-policy/ - Code Signing Certificate Chains: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/digital-signatures - X.509 Certificate Path Validation: https://www.rfc-editor.org/rfc/rfc5280#section-6 - Mozilla Root Store Policy: https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/ - TUF Root of Trust: https://theupdateframework.github.io/specification/latest/#root-metadata - NIST Trust Anchor Management: https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-5/final ### Assessment: UPD-REQ-19 (Update source pinning) **Reference**: UPD-REQ-19 - Browser shall implement update source pinning to prevent malicious redirection to unauthorized update servers **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update source pinning prevents malicious redirection attacks that could deliver compromised updates through DNS hijacking, BGP routing attacks, or compromised enterprise proxies. Hardcoded, pinned update server domains ensure that even if network infrastructure is compromised, browsers will only accept updates from authentic vendor-controlled servers validated through certificate pinning. **Verification**: 1. Identify the configured update server URLs embedded in browser binary or configuration → Confirm that update source pinning violations are logged and reported 2. Verify that update server domains are pinned and cannot be modified through configuration files → Update server domains are hardcoded in browser binary 3. Attempt to modify system DNS or hosts file to redirect update domains to malicious servers → Update source URLs cannot be modified through configuration or registry 4. Test that certificate pinning for update domains prevents MITM attacks → DNS redirection attacks are prevented through certificate pinning 5. Verify that update server URLs use multiple trusted domains with fallback mechanisms → Multiple trusted update domains with verified fallback mechanisms 6. Attempt to inject malicious update server URLs through registry/preference modifications → Enterprise policies cannot override update source pinning for security updates 7. Test that update source pinning is enforced even for enterprise-managed deployments → Network-based redirection attempts are detected and blocked 8. Check that hardcoded update domains cannot be overridden by network-based attacks → Fallback servers are subject to same pinning requirements 9. Verify that fallback update servers are also pinned and verified → Source pinning violations are logged as security events **Pass Criteria**: Update server domains are hardcoded AND cannot be modified by configuration OR DNS attacks AND certificate pinning prevents redirection AND fallback servers are also pinned **Fail Criteria**: Update servers can be modified through configuration OR DNS redirection succeeds OR no certificate pinning OR enterprise policies can override source pinning **Evidence**: Decompiled browser binary showing hardcoded update URLs, test results from DNS redirection attempts, certificate pinning verification, configuration modification tests, enterprise policy override tests, source pinning violation logs **References**: - Chrome Update Server Infrastructure: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/protocol_3_1.md#update-server - Certificate Pinning Implementation: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning - DNS Rebinding Protection: https://en.wikipedia.org/wiki/DNS_rebinding - Mozilla Update Server Security: https://wiki.mozilla.org/Software_Update#Security - Google Omaha Server Protocol: https://github.com/google/omaha/blob/main/doc/ServerProtocolV3.md - NIST Supply Chain Risk Management: https://csrc.nist.gov/Projects/cyber-supply-chain-risk-management ### Assessment: UPD-REQ-20 (Update integrity verification) **Reference**: UPD-REQ-20 - Browser shall verify integrity of installed components after update application to detect corruption or tampering **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that post-installation integrity verification detects tampering or corruption that occurs after updates are applied, protecting against attacks where malware modifies browser components between installation and execution. This closes the security window where installed files are vulnerable to modification before integrity checks run, ensuring that any tampering triggers immediate remediation. **Verification**: 1. Perform a complete browser update and monitor the post-installation verification phase → Confirm that integrity verification uses same cryptographic strength as update verification (SHA-256+) 2. Verify that installed files are checked against expected cryptographic hashes after installation → Post-installation integrity verification checks all installed components 3. Attempt to modify an installed file immediately after update completion → Cryptographic hashes (SHA-256+) are used for integrity verification 4. Test that modified files are detected on next browser launch → Modified files are detected immediately after installation 5. Verify that integrity verification occurs both after installation and at browser startup → Startup integrity checks detect tampering between sessions 6. Check that integrity verification covers all critical components (binaries, libraries, resources) → Critical components are verified (binaries, libraries, key resources) 7. Test that integrity failures trigger repair or re-installation mechanisms → Integrity failures trigger automatic repair or update mechanisms 8. Verify that integrity verification results are logged with specific failure details → Browser refuses to launch if critical components fail verification 9. Test that browser refuses to launch if critical component integrity verification fails → Integrity verification results are logged with specific error details **Pass Criteria**: Post-installation integrity verification is performed AND uses strong cryptographic hashes (SHA-256+) AND modified files are detected AND integrity failures trigger repair OR prevent launch **Fail Criteria**: No post-installation verification OR weak hash algorithms OR modified files not detected OR integrity failures do not trigger corrective actions **Evidence**: Post-installation verification logs, hash algorithm analysis, test results from file modification attacks, startup integrity check logs, repair mechanism demonstrations, critical component verification coverage analysis **References**: - Chrome Component Integrity Verification: https://www.chromium.org/Home/chromium-security/education/tls#TOC-Certificate-Verification - Windows Code Integrity: https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/windows-defender-application-control - macOS Gatekeeper and Code Signing: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution - Linux Integrity Measurement Architecture: https://sourceforge.net/p/linux-ima/wiki/Home/ - NIST File Integrity Monitoring: https://csrc.nist.gov/glossary/term/file_integrity_monitoring - OWASP Software Component Verification: https://owasp.org/www-project-software-component-verification-standard/ ### Assessment: UPD-REQ-21 (Staged rollout support) **Reference**: UPD-REQ-21 - Browser shall support staged rollout mechanisms to gradually deploy updates to user populations with rollback capability **Given**: A conformant browser with UPD-2 or higher capability **Task**: Verify that staged rollout mechanisms limit the blast radius of defective updates while maintaining rapid response capability for critical security fixes. Gradual deployment with rollback capability prevents scenarios where buggy updates simultaneously impact millions of users, while emergency bypass ensures that actively exploited vulnerabilities can still be patched immediately across the entire user base. **Verification**: 1. Review browser update architecture for staged rollout or canary deployment support → Confirm that staged rollout status is logged for monitoring and analysis 2. Verify that update manifests include rollout percentage or cohort targeting information → Update system supports staged rollout with progressive deployment 3. Test that updates are delivered to progressively larger user populations over time → Rollout percentages are specified in update manifests and enforced server-side 4. Check that rollout stages are controlled by server-side configuration, not client manipulation → Users cannot manipulate rollout cohort assignment 5. Verify that users cannot force-join or opt-out of rollout cohorts → Rollout can be paused or reversed if issues are detected 6. Test that rollout can be paused or rolled back if issues are detected → Critical security updates can bypass staged rollout 7. Monitor multiple browser instances to observe different rollout timing → Cohort assignment is stable (same user gets consistent rollout timing) 8. Verify that critical security updates can bypass staged rollout for immediate deployment → Multiple instances show varied rollout timing based on cohort 9. Test that rollout cohorts are assigned using stable user identifiers (not random per check) → Rollout status and cohort information are logged **Pass Criteria**: Staged rollout mechanism is implemented AND rollout percentages are server-controlled AND users cannot manipulate cohorts AND critical updates can bypass rollout AND rollback capability exists **Fail Criteria**: No staged rollout support OR users can manipulate rollout OR all users receive updates simultaneously OR no rollback capability OR critical updates follow slow rollout **Evidence**: Update manifest files showing rollout percentages, server-side rollout configuration documentation, test results from multiple instances showing varied timing, rollout logs with cohort information, critical update bypass demonstrations, rollback process documentation **References**: - Chrome Staged Rollout: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/functional_spec.md#staged-rollout - Google Omaha Rollout Mechanisms: https://github.com/google/omaha/blob/main/doc/ServerProtocolV3.md#rollout - Canary Deployments: https://martinfowler.com/bliki/CanaryRelease.html - Progressive Delivery Patterns: https://www.split.io/glossary/progressive-delivery/ - NIST Phased Deployment: https://csrc.nist.gov/publications/detail/sp/800-40/rev-4/final ### Assessment: UPD-REQ-22 (Update domain validation) **Reference**: UPD-REQ-22 - Browser shall validate that update requests and responses originate from authorized domains with strict certificate requirements **Given**: A conformant browser with UPD-1 or higher capability **Task**: Verify that update domain validation prevents server-side request forgery and domain confusion attacks where attackers redirect update requests to malicious servers through HTTP redirects, DNS manipulation, or compromised network infrastructure. Strict domain allowlisting ensures that browsers only download updates from explicitly authorized vendor domains, rejecting any deviation regardless of certificate validity. **Verification**: 1. Capture update network traffic to identify all domains involved in update process → Confirm that domain validation failures are logged with domain details 2. Verify that all update domains are whitelisted or hardcoded in browser configuration → All update domains are explicitly whitelisted or hardcoded 3. Examine TLS certificates for update domains to verify they meet strict requirements (EV or equivalent) → TLS certificates for update domains meet strict requirements 4. Attempt to redirect update requests to unauthorized domains using DNS attacks → Unauthorized domains are rejected even with valid TLS certificates 5. Test that update domain acceptlist cannot be modified by users or malware → Domain acceptlist cannot be modified through configuration or registry 6. Verify that update responses from unauthorized domains are rejected → Subdomain validation is strict (no wildcard matching) 7. Check that update domain validation includes subdomain restrictions (no wildcards) → HTTP redirects to unauthorized domains are blocked 8. Test that HTTP redirects to unauthorized domains during update process are rejected → Domain validation applies to all update-related traffic 9. Verify that update domain validation occurs for all update-related requests (manifests, downloads, telemetry) → Validation failures are logged with attempted domain information **Pass Criteria**: Update domains are whitelisted/hardcoded AND unauthorized domains are rejected AND domain list cannot be modified AND validation applies to all update traffic AND redirects to unauthorized domains are blocked **Fail Criteria**: No domain acceptlist OR unauthorized domains accepted OR domain list can be modified OR validation can be bypassed with redirects OR logging insufficient **Evidence**: Network traffic captures showing update domains, domain acceptlist extraction from browser binary, test results from unauthorized domain redirects, TLS certificate analysis, domain validation logs, configuration modification attempt results **References**: - Chrome Update Domain Security: https://chromium.googlesource.com/chromium/src/+/main/docs/updater/protocol_3_1.md#security - Mozilla Update Domain Policies: https://wiki.mozilla.org/Software_Update#Security - DNS Security Extensions (DNSSEC): https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en - Extended Validation Certificates: https://en.wikipedia.org/wiki/Extended_Validation_Certificate - OWASP Server-Side Request Forgery Prevention: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html - NIST Domain Validation Guidelines: https://csrc.nist.gov/publications/detail/sp/800-63/3/final ### Assessment: UPD-REQ-23 (Update binary reproducibility) **Reference**: UPD-REQ-23 - Browser shall support mechanisms to enable verification of binary reproducibility for update transparency and supply chain security **Given**: A conformant browser with UPD-2 or higher capability **Task**: Verify that binary reproducibility enables independent verification of update authenticity, protecting against sophisticated supply chain attacks where build infrastructure is compromised to inject backdoors. Reproducible builds allow security researchers and organizations to verify that distributed binaries match published source code, detecting unauthorized modifications introduced during compilation or packaging. **Verification**: 1. Review browser build and release documentation for reproducible build support → Confirm that reproducibility documentation and verification tools are publicly available 2. Verify that update packages include build metadata (compiler version, build timestamp, source commit) → Browser supports reproducible builds with documented build process 3. Attempt to reproduce an official update binary from published source code using documented build process → Update packages include complete build metadata 4. Compare reproduced binary hash with official release hash to verify reproducibility → Independent verification of binary reproducibility is possible 5. Check that build process documentation includes all dependencies and toolchain versions → Build process documentation includes all dependencies and toolchain versions 6. Verify that update transparency logs include binary hashes for independent verification → Multiple builds from same source produce bit-identical binaries 7. Test that multiple independent parties can reproduce identical binaries from same source → Update transparency logs enable third-party verification 8. Check for availability of build attestations or signed build manifests → Non-deterministic build elements are minimized or documented 9. Verify that non-reproducible elements (timestamps, randomness) are minimized or eliminated → Build attestations or signed manifests are available **Pass Criteria**: Reproducible build process is documented AND build metadata is included in updates AND independent parties can verify binary reproducibility AND update transparency supports third-party verification **Fail Criteria**: No reproducible build support OR build process not documented OR independent verification not possible OR build metadata missing OR excessive non-deterministic elements **Evidence**: Build process documentation, reproduced binary hash comparisons, build metadata extraction from update packages, transparency log entries, independent build verification results, build attestation signatures, reproducibility verification tool outputs **References**: - Reproducible Builds Project: https://reproducible-builds.org/ - Chromium Build Documentation: https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md - Debian Reproducible Builds: https://wiki.debian.org/ReproducibleBuilds - NIST Secure Software Development Framework: https://csrc.nist.gov/Projects/ssdf - SLSA Supply Chain Security Framework: https://slsa.dev/ ### Assessment: UPD-REQ-24 (Automatic update application without user intervention) **Reference**: UPD-0-REQ-23 - Updates shall be applied without user intervention or postponement **Given**: A conformant browser with UPD-0 capability (forced automatic updates) **Task**: Verify that updates are applied automatically without any user intervention or ability to postpone, ensuring that security patches are deployed immediately to minimize the window of vulnerability exploitation, protecting users who might otherwise delay critical updates, while accepting the trade-off of reduced user control in exchange for maximum security posture. **Verification**: 1. Configure browser in UPD-0 mode with forced automatic updates → Test that updates install in background without interrupting user workflows 2. Trigger an update availability (use test update server if available) → Verify that only browser restart (if needed) may be delayed to safe moment 3. Verify that update is downloaded automatically without user prompt → Test that critical updates force installation even if browser is in use 4. Verify that update is applied immediately without user confirmation → Verify that users cannot disable automatic update mechanism 5. Test that no UI options exist to postpone or decline update → Test that settings UI shows no postponement options 6. Verify that update application proceeds even during active browsing sessions → Verify that update process cannot be interrupted or canceled by user **Pass Criteria**: Updates download automatically AND install without user confirmation AND no postponement options available AND settings prevent disabling automatic updates **Fail Criteria**: Updates require user confirmation OR postponement is possible OR automatic updates can be disabled OR update process can be interrupted **Evidence**: Update installation logs showing automatic application, UI screenshots showing no postponement options, settings verification showing forced updates, test scenarios demonstrating immediate installation **References**: - NIST Secure Software Development: https://csrc.nist.gov/projects/ssdf - Automatic Security Updates Best Practices: https://www.us-cert.gov/ncas/tips/ST04-006 ### Assessment: UPD-REQ-25 (Automatic browser restart after critical updates) **Reference**: UPD-0-REQ-24 - Browser shall restart automatically after critical updates when safe **Given**: A conformant browser with UPD-0 capability after critical update installation **Task**: Verify that the browser automatically restarts after critical security updates are installed, but only when safe to do so (when user is not in middle of sensitive tasks), ensuring updates become effective immediately while minimizing disruption, balancing security urgency against user experience by detecting safe restart windows and providing brief warnings. **Verification**: 1. Install critical security update that requires browser restart → Test that brief warning is displayed before automatic restart (e.g., 60 seconds) 2. Verify that browser detects restart requirement → Verify that warning cannot be dismissed or canceled for critical updates 3. Test browser behavior in various states: → Test that browser session state is preserved across restart - Idle state (no active tabs or forms) - Active browsing (tabs open but no form input) - Form input in progress (unsaved data) - File downloads in progress - Media playback active 4. Verify that browser waits for safe moment to restart in each scenario → Verify that tabs, windows, and browsing history are restored 5. Test that unsaved form data prevents immediate restart → Test that restart occurs automatically if browser remains idle after update 6. Verify that active downloads are protected from restart → Verify that maximum delay before forced restart is reasonable (e.g., 8 hours) **Pass Criteria**: Browser restarts automatically after critical updates AND waits for safe moments AND preserves user session AND provides brief warning AND forced restart occurs if delayed too long **Fail Criteria**: No automatic restart OR unsafe restart timing OR session not preserved OR no warning provided OR indefinite delay possible **Evidence**: Restart behavior logs, timing analysis across different browser states, session preservation verification, warning dialog screenshots, maximum delay testing **References**: - User Experience in Security Updates: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/mathur - Browser Session Management: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage ### Assessment: UPD-REQ-26 (Update postponement with time limits) **Reference**: UPD-1-REQ-23 - Users shall be able to postpone non-critical updates for limited time (max 7 days) **Given**: A conformant browser with UPD-1 capability (automatic with postponement) **Task**: Verify that users can postpone non-critical updates for a limited time (maximum 7 days), providing flexibility for users to control update timing while ensuring that security patches are not delayed indefinitely, balancing user autonomy with security needs by enforcing reasonable time limits after which updates shall be applied. **Verification**: 1. Trigger availability of non-critical update → Test that postponed update becomes mandatory when deadline approaches 2. Verify that update notification provides postponement option → Verify that warning increases in urgency as deadline nears 3. Test postponing update and verify it is not installed immediately → Test that update is automatically installed when maximum postponement expires 4. Verify that postponement options offer reasonable durations (1 day, 3 days, 7 days) → Verify that users cannot extend postponement beyond maximum limit 5. Test selecting maximum postponement period (7 days) → Test that multiple postponements don't extend total delay beyond limit 6. Verify that browser tracks postponement deadline → Verify that update notification persists until user takes action **Pass Criteria**: Non-critical updates can be postponed AND maximum postponement is 7 days AND forced installation after deadline AND multiple postponements don't exceed limit AND critical updates have stricter limits **Fail Criteria**: Indefinite postponement possible OR maximum exceeds 7 days OR no forced installation after deadline OR deadline can be extended indefinitely **Evidence**: Postponement UI screenshots, deadline tracking verification, forced installation logs after expiry, multiple postponement tests, critical vs non-critical update handling comparison **References**: - Update Management Best Practices: https://www.cisecurity.org/insights/white-papers/software-update-and-patch-management-best-practices - User Control in Security Updates: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/mathur ### Assessment: UPD-REQ-27 (Critical update postponement restrictions) **Reference**: UPD-1-REQ-24 - Critical security updates shall not be postponable beyond 24 hours **Given**: A conformant browser with UPD-1 capability with critical security update available **Task**: Verify that critical security updates addressing actively exploited vulnerabilities or high-severity issues cannot be postponed beyond 24 hours, ensuring that urgent patches are deployed rapidly while still providing minimal user control, recognizing that critical vulnerabilities represent immediate threats requiring prompt mitigation despite user preference for delayed updates. **Verification**: 1. Trigger availability of critical security update (e.g., zero-day patch) → Test that warning messages escalate as postponement deadline approaches 2. Verify that update is clearly marked as "Critical" or "Security Update" → Verify that browser displays prominent warning if critical update is postponed 3. Test that postponement options are limited for critical updates → Test that update is automatically installed when 24-hour deadline expires 4. Verify that maximum postponement for critical update is 24 hours or less → Verify that users cannot extend critical update postponement 5. Test that postponement UI emphasizes urgency and security risk → Test that "remind me later" options are limited (1 hour, 4 hours, 24 hours max) 6. Verify that security rationale is provided explaining criticality → Verify that background browser processes trigger update even if UI postponed **Pass Criteria**: Critical updates identified separately AND maximum postponement is 24 hours AND forced installation after deadline AND prominent warnings displayed AND no extension possible **Fail Criteria**: Critical updates can be postponed beyond 24 hours OR no distinction from non-critical OR insufficient warnings OR deadline can be extended OR no forced installation **Evidence**: Critical update UI showing restricted postponement, urgency warnings, 24-hour deadline enforcement logs, automatic installation verification, security rationale display **References**: - CISA Known Exploited Vulnerabilities: https://www.cisa.gov/known-exploited-vulnerabilities-catalog - Rapid Security Update Deployment: https://www.nist.gov/publications/guide-enterprise-patch-management-technologies ### Assessment: UPD-REQ-28 (Update severity indication) **Reference**: UPD-1-REQ-25 - Browser shall notify users of pending updates with severity indication **Given**: A conformant browser with UPD-1 capability with updates available **Task**: Verify that update notifications clearly indicate update severity (critical, high, medium, low) to help users understand urgency and make informed decisions about update timing, providing transparency about security impact and enabling users to prioritize critical patches while potentially deferring less urgent updates, supporting risk-aware update management. **Verification**: 1. Trigger updates of various severity levels: - Critical security fix for actively exploited vulnerability - High severity security patch - Medium priority bug fixes and security improvements - Low priority feature updates 2. Verify that update notifications display severity level prominently 3. Test that severity is indicated through multiple cues: - Text labels ("Critical", "High", "Medium", "Low") - Color coding (red for critical, yellow for medium, etc.) - Icon indicators (warning symbols, shields) - Urgency language in notification text 4. Verify that severity explanation is provided when requested 5. Test that critical severity triggers most prominent notification 6. Verify that postponement options vary based on severity 7. Test that update details explain security impact: - CVE identifiers for security issues - Brief description of vulnerability addressed - Potential attack scenarios prevented 8. Verify that severity assessment is based on objective criteria 9. Test that multiple updates are ordered by severity in UI 10. Verify that severity indication is consistent across all notification channels **Pass Criteria**: Severity clearly indicated through multiple UI cues AND explanation provided AND varies postponement options AND includes security impact details AND consistent across notifications **Fail Criteria**: No severity indication OR unclear severity communication OR severity doesn't affect options OR no security impact details OR inconsistent indication **Evidence**: Notification screenshots for each severity level, severity explanation text, postponement option variations, security impact descriptions, CVE references in updates **References**: - CVSS (Common Vulnerability Scoring System): https://www.first.org/cvss/ - Security Update Communication Best Practices: https://www.cisa.gov/coordinated-vulnerability-disclosure-process ### Assessment: UPD-REQ-29 (Automatic updates disabled by default) **Reference**: UPD-2-REQ-14 - Automatic updates shall be disabled by default **Given**: A conformant browser with UPD-2 capability (optional automatic updates) **Task**: Verify that automatic updates are disabled by default in UPD-2 mode, requiring explicit user opt-in before automated update installation occurs, respecting user autonomy and system control in environments where automatic changes may conflict with testing requirements, system stability needs, or bandwidth constraints, while clearly communicating the security risks of manual update management. **Verification**: 1. Perform fresh browser installation in UPD-2 mode → Verify that settings clearly show automatic updates are disabled 2. Verify that automatic updates are disabled by default on first run → Test that manual update check is available 3. Check browser settings to confirm automatic update state → Verify that enabling automatic updates requires explicit user opt-in: - Navigate to settings - Locate automatic update toggle - Click to enable with confirmation 4. Trigger update availability with automatic updates disabled → Test that opt-in decision is persistent across browser restarts 5. Verify that update is not downloaded or installed automatically → Verify that first-run wizard or setup offers automatic update option with clear explanation 6. Test that update notification is displayed but requires user action → Test that security implications of disabled automatic updates are explained **Pass Criteria**: Automatic updates disabled by default AND manual action required for updates AND explicit opt-in to enable automatic updates AND security implications explained AND opt-in persists **Fail Criteria**: Automatic updates enabled by default OR automatic installation occurs without opt-in OR no clear opt-in mechanism OR no security explanation **Evidence**: Fresh installation default state verification, settings screenshots showing disabled state, manual update workflow, opt-in process documentation, security warning examples **References**: - User Autonomy in Software Updates: https://www.w3.org/TR/design-principles/#user-control - Update Policy Best Practices: https://www.cisecurity.org/insights/blog/patch-management-best-practices ### Assessment: UPD-REQ-30 (Automatic update recommendations) **Reference**: UPD-2-REQ-15 - Browser shall prominently recommend enabling automatic updates **Given**: A conformant browser with UPD-2 capability with automatic updates disabled **Task**: Verify that the browser prominently recommends enabling automatic security updates, educating users about security benefits while respecting their choice to manage updates manually, using clear messaging that explains risks of manual update management without employing dark patterns or coercive tactics, supporting informed decision-making about update policies. **Verification**: 1. Access browser with automatic updates disabled 2. Verify that recommendation to enable automatic updates is displayed: - During initial browser setup/first run - In browser settings near update controls - In security or privacy dashboard - Periodically as gentle reminder (not nagging) 3. Test that recommendation clearly explains benefits: - Automatic security patches protect against threats - Reduced window of vulnerability exploitation - No need to remember to check for updates - Background installation minimizes disruption 4. Verify that recommendation is prominent but not intrusive: - Visible and easy to find - Not blocking workflow or annoying - Can be acknowledged/dismissed - Does not reappear constantly (dark pattern) 5. Test that enabling automatic updates from recommendation is easy (single click) 6. Verify that recommendation respects user's choice to decline: - Clear "No thanks" or "Keep manual" option - Choice is remembered - Not repeatedly prompted in same session 7. Test that recommendation is balanced and informative, not fear-mongering 8. Verify that recommendation links to detailed information if user wants to learn more **Pass Criteria**: Recommendation is prominent and visible AND clearly explains benefits AND easy to enable from recommendation AND respects user's choice to decline AND not intrusive or nagging **Fail Criteria**: No recommendation shown OR unclear benefits OR difficult to enable OR forced enablement OR dark patterns used OR constantly nagging user **Evidence**: Recommendation display locations and frequency, message content analysis, enablement workflow, dismissal behavior, user choice respect verification **References**: - Ethical Design Principles: https://www.w3.org/TR/design-principles/ - Dark Pattern Prevention: https://www.deceptive.design/ - Security Awareness Communication: https://www.nist.gov/itl/applied-cybersecurity/nice/resources/online-learning-content ### Assessment: UPD-REQ-31 (Security warnings for available updates) **Reference**: UPD-2-REQ-16 - Browser shall display security warnings when updates are available **Given**: A conformant browser with UPD-2 capability with security updates available **Task**: Verify that the browser displays clear security warnings when security updates are available but not yet installed, informing users about increased risk from running outdated versions with known vulnerabilities, providing actionable information to encourage timely manual installation without resorting to scare tactics, supporting security awareness for users managing updates manually. **Verification**: 1. Trigger availability of security update (patch for known vulnerability) 2. Verify that security warning is displayed prominently: - Banner or notification in browser UI - Icon or badge indicating security risk - Entry in security dashboard or settings 3. Test that warning clearly communicates security risk: - Updates address security vulnerabilities - Outdated version may be vulnerable to attacks - Recommendation to install updates promptly - Severity indicator if critical update 4. Verify that warning provides direct link to update installation 5. Test that warning persists until update is installed 6. Verify that warning visibility increases with time since update available: - Subtle notification initially - More prominent after several days - Prominent warning after one week 7. Test that warning is informative but not alarmist: - Factual language about security risks - No fear-mongering or exaggeration - Clear call to action 8. Verify that warning includes timestamp (update available since X days) 9. Test that multiple security updates aggregate into single clear warning 10. Verify that warning disappears immediately after update installation **Pass Criteria**: Security warnings displayed prominently AND clearly communicate risk AND provide direct update link AND escalate with time AND informative without fear-mongering AND disappear after installation **Fail Criteria**: No security warnings OR unclear risk communication OR no update link OR static visibility OR alarmist language OR warnings persist after update **Evidence**: Security warning screenshots, warning visibility escalation timeline, language tone analysis, update link functionality, persistence behavior verification **References**: - Security Warning Design: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/felt - Effective Security Communication: https://www.usenix.org/conference/soups2013/proceedings/presentation/akhawe ### Assessment: UPD-REQ-32 (Easy update check and install mechanism) **Reference**: UPD-2-REQ-17 - Browser shall provide easy mechanism to check for and install updates **Given**: A conformant browser with UPD-2 capability (optional automatic updates) **Task**: Verify that users can easily check for available updates and install them manually through intuitive UI controls, ensuring that manual update management is practical and convenient for users who prefer explicit control, providing clear workflow from update check to installation without requiring technical knowledge or complex procedures. **Verification**: 1. Access browser settings or help menu → Test that update installation is reliable and completes successfully 2. Verify that "Check for Updates" option is easily findable: → Verify that any restart requirement is clearly communicated - Located in expected place (About, Settings, Help menu) - Clear, understandable label - Accessible within 2-3 clicks from main UI 3. Test manually triggering update check → Test that update check and install work from multiple entry points 4. Verify that update check provides clear feedback: → Verify that update changelog or release notes are accessible - Checking animation or progress indicator - Clear result message (up-to-date or updates available) - Details about available updates 5. Test that update installation is straightforward: → Test that errors during update are handled gracefully with clear messages - Single "Install Update" or "Update Now" button - Clear indication of what will happen - Progress indicator during download and installation 6. Verify that update process doesn't require advanced technical knowledge → Verify that users can cancel update download if needed (before installation) **Pass Criteria**: Update check easily accessible AND clear feedback provided AND simple installation process AND reliable completion AND restart requirements communicated AND multiple access points AND release notes available **Fail Criteria**: Update check hard to find OR no feedback OR complex installation OR frequent failures OR unclear requirements OR only one access point OR no release information **Evidence**: UI navigation path to update check, update check workflow screenshots, installation process recordings, error handling examples, accessibility from multiple locations **References**: - Usability in Security Features: https://www.usenix.org/conference/soups2006/proceedings - User-Centered Design for Updates: https://www.w3.org/TR/design-principles/#user-control ### Assessment: UPD-REQ-33 (Full user control over update timing) **Reference**: UPD-2-REQ-18 - Users shall have full control over update timing and installation **Given**: A conformant browser with UPD-2 capability with updates available **Task**: Verify that users have complete control over when and whether to install updates, enabling users to manage update timing according to their needs, workflows, and system requirements, respecting user autonomy fully while acknowledging the security trade-offs, ensuring that users who choose manual update management have necessary tools and information to do so effectively. **Verification**: 1. Trigger availability of various updates (critical and non-critical) → Test that users can selectively install some updates while skipping others 2. Verify that users can choose whether to install each update → Verify that skipping updates doesn't prevent checking for newer updates 3. Test that users can defer updates indefinitely: → Test that users can postpone updates without time limits - No forced installation deadlines - No automatic installation after time period - User always has option to decline 4. Verify that update notifications can be dismissed → Verify that even critical security updates can be declined by user 5. Test that dismissed updates don't automatically reinstall → Test that users understand consequences of their choices through clear warnings 6. Verify that users can choose specific installation timing: → Verify that update preferences are respected across browser sessions - Install now - Install on next restart - Install later (no deadline) - Don't install (skip update) **Pass Criteria**: Users can defer updates indefinitely AND can decline any update AND can choose specific installation timing AND selective installation possible AND preferences persist AND consequences clearly communicated **Fail Criteria**: Forced installation occurs OR time limits enforced OR cannot decline updates OR no selective installation OR preferences not persistent OR inadequate consequence communication **Evidence**: Update control UI showing all options, indefinite deferral testing, selective installation demonstrations, critical update decline verification, preference persistence tests, warning message examples **References**: - User Autonomy in Software Design: https://www.w3.org/TR/design-principles/#user-control - Update Management for Advanced Users: https://www.cisecurity.org/insights/white-papers/software-update-and-patch-management-best-practices ### Assessment: UPD-REQ-34 (Manual update check mechanism) **Reference**: UPD-3-REQ-11 - Browser shall provide manual update check mechanism **Given**: A conformant browser with UPD-3 capability (manual updates only) **Task**: Verify that the browser provides a reliable manual update check mechanism allowing users to check for available updates on demand, ensuring that users who have disabled all automatic update behaviors can still maintain security through manual update management, providing necessary tools for deliberate update workflows in controlled environments. **Verification**: 1. Verify that automatic update checks are fully disabled in UPD-3 mode → Verify that update check can be performed multiple times without restriction 2. Access manual update check mechanism in browser UI → Test that check does not automatically download or install anything 3. Verify that "Check for Updates" is easily accessible: → Verify that check completes in reasonable time (< 10 seconds typically) - Available in About page, Settings, or Help menu - Clear labeling and prominent placement - Functional even with all automatic features disabled 4. Test triggering manual update check → Test that check works across different network conditions 5. Verify that check contacts update servers and retrieves current information: → Verify that check failure doesn't prevent retrying - Network request to update endpoint - Retrieval of latest version metadata - Comparison with current browser version 6. Test that check provides clear results: → Test that update metadata includes security information and changelog - "You are up to date" if current - "Update available" with version details if outdated - Error message if check fails (network issue, server unavailable) **Pass Criteria**: Manual check mechanism easily accessible AND reliably contacts update servers AND provides clear results AND doesn't auto-download/install AND works in various network conditions AND includes security information **Fail Criteria**: No manual check OR difficult to access OR unreliable OR automatically downloads/installs OR frequent failures OR no security information **Evidence**: Update check UI location and access path, network traffic during check, result message examples for various scenarios, reliability testing across networks, metadata content analysis **References**: - Manual Update Management: https://www.cisecurity.org/controls/v8/ - User-Initiated Security Updates: https://www.nist.gov/publications/guide-enterprise-patch-management-technologies ### Assessment: UPD-REQ-35 (Outdated version security warnings) **Reference**: UPD-3-REQ-12 - Browser shall display security warnings for outdated versions **Given**: A conformant browser with UPD-3 capability running outdated version **Task**: Verify that the browser displays persistent security warnings when running significantly outdated versions with known vulnerabilities, informing users about security risks of delayed updates and encouraging timely manual installation, balancing respect for user autonomy with responsibility to communicate security status, especially when manual update management results in vulnerable configurations. **Verification**: 1. Run browser with outdated version (multiple updates behind current) → Test that warning can be acknowledged but returns periodically 2. Verify that security warning is displayed indicating outdated status: → Verify that warning does not block browser functionality (not modal dialog) - Visible banner, icon, or notification - Clear message about being out of date - Indication of how far behind current version 3. Test that warning communicates security implications: → Test that warning includes last update check timestamp - Known vulnerabilities in current version - Security fixes available in newer versions - Recommendation to update 4. Verify that warning escalates with age of browser version: → Verify that critically outdated versions show prominent, persistent warnings - Minor warning if one version behind - Moderate warning if several versions behind - Strong warning if critically outdated (>6 months, contains CVEs) 5. Test that warning provides direct path to update mechanism → Test that warning differentiates between minor feature updates and security patches 6. Verify that warning persists across browser sessions → Verify that warning disappears after update installation **Pass Criteria**: Warnings displayed for outdated versions AND clearly communicate security risk AND escalate with version age AND provide update path AND persistent but not blocking AND distinguish security vs feature updates **Fail Criteria**: No warnings for outdated versions OR unclear risk communication OR static visibility regardless of age OR no update path OR blocking workflow OR doesn't distinguish update types **Evidence**: Warning screenshots at various version ages, warning escalation timeline, security messaging content, update path accessibility, persistence behavior across sessions **References**: - Security Communication Best Practices: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/felt - Vulnerability Disclosure: https://www.cisa.gov/coordinated-vulnerability-disclosure-process ### Assessment: UPD-REQ-36 (Clear indication of available security updates) **Reference**: UPD-3-REQ-13 - Browser shall provide clear indication of available security updates **Given**: A conformant browser with UPD-3 capability with security updates available **Task**: Verify that the browser clearly distinguishes security updates from feature updates, providing prominent indication when security patches are available, enabling users to prioritize security-critical updates over general improvements, supporting informed manual update decisions by highlighting updates that address vulnerabilities even when user prefers manual installation control. **Verification**: 1. Trigger availability of mixed updates: - Security patch fixing vulnerabilities - Feature update adding new capabilities - Bug fix update improving stability 2. Verify that security updates are clearly marked: - "Security Update" label or badge - Security icon (shield, lock) indicator - Color coding (red or yellow for security) - Separate section in update list 3. Test that security update details explain vulnerability addressed: - CVE identifier if applicable - Brief vulnerability description - Severity rating - Potential attack scenarios prevented 4. Verify that security updates are visually prioritized in UI: - Listed first in update list - Larger or bold text - More prominent notification 5. Test that non-security updates are clearly differentiated: - "Feature Update" or "Bug Fix" labels - Different visual treatment - Lower priority in list 6. Verify that mixed updates (security + features) are accurately labeled 7. Test that security update indicators are consistent across all UI locations 8. Verify that users can filter or view only security updates 9. Test that security update urgency is communicated appropriately 10. Verify that users can choose to install only security updates, skipping features **Pass Criteria**: Security updates clearly distinguished from other types AND vulnerability details provided AND visual prioritization AND consistent indicators AND filtering possible AND selective installation supported **Fail Criteria**: No distinction between update types OR missing vulnerability details OR no visual differentiation OR inconsistent indicators OR no filtering OR cannot selectively install security updates **Evidence**: Update list screenshots showing mixed update types, security indicators across various UI locations, CVE information display, filtering UI, selective installation workflow **References**: - CVE Program: https://cve.mitre.org/ - Security Update Best Practices: https://www.cisa.gov/sites/default/files/publications/CISA-Cyber-Essentials-Toolkit_Mar2022_508.pdf ### Assessment: UPD-REQ-37 (Explicit user initiation for all updates) **Reference**: UPD-3-REQ-14 - All updates shall require explicit user initiation **Given**: A conformant browser with UPD-3 capability with updates available **Task**: Verify that absolutely no updates occur without explicit user initiation, ensuring complete user control over browser modifications and system changes, respecting environments requiring change control procedures, stability priorities, or bandwidth management, confirming that manual-only update mode provides true autonomy without any automatic behaviors. **Verification**: 1. Configure browser in UPD-3 (manual only) mode → Test that user should explicitly: - Manually check for updates - Manually trigger download - Manually initiate installation - Manually restart browser if needed 2. Trigger availability of various updates (critical security and non-critical) → Verify that even critical security updates require user initiation 3. Verify that no automatic update checks occur: → Test that no "soft" automatic behaviors occur (e.g., automatic check with manual install) - Monitor network traffic for update check requests - Confirm no scheduled background checks - Verify no update checks on browser startup 4. Test that updates are not downloaded automatically: → Verify that update configuration cannot be bypassed by browser or OS - Available updates not pre-downloaded - No background downloads - Network traffic shows no update downloads 5. Verify that updates are not installed without user action: → Test that enterprise policies cannot override manual-only setting - No automatic installation during idle time - No installation on browser restart - No forced installation for critical updates **Pass Criteria**: No automatic update checks AND no automatic downloads AND no automatic installation AND all actions require explicit user initiation AND applies to all update types AND cannot be bypassed **Fail Criteria**: Any automatic update behavior OR checks without user action OR downloads without initiation OR installation without explicit action OR critical updates bypass manual mode **Evidence**: Network traffic analysis showing no automatic update activity, manual workflow verification for all update steps, critical update handling in manual mode, policy override testing, mode persistence across updates **References**: - Change Control Procedures: https://www.cisecurity.org/controls/v8/ - User Autonomy Principles: https://www.w3.org/TR/design-principles/#user-control ### Assessment: UPD-REQ-38 (Update changelog and security impact display) **Reference**: UPD-3-REQ-15 - Browser shall display update changelog and security impact **Given**: A conformant browser with UPD-3 capability with updates available **Task**: Verify that the browser provides comprehensive changelog and security impact information for updates, enabling informed manual update decisions by clearly documenting what changes each update introduces, what vulnerabilities are addressed, and what security improvements are included, supporting users who need detailed information before authorizing system changes. **Verification**: 1. Trigger availability of update with mixed changes (security fixes, features, bug fixes) → Verify that changelog includes version numbers and dates 2. Access update details or changelog in browser UI → Test that changelog is accessible before update installation: - Available in update notification - Viewable in update check results - Accessible from browser help/about page 3. Verify that changelog is comprehensive and well-organized: → Verify that changelog links to detailed documentation if available - Grouped by category (security, features, bug fixes, performance) - Chronological or logical ordering - Clear, understandable language 4. Test that security section is prominent and detailed: → Test that changelog format is readable (not raw git commits) - List of CVEs addressed - Vulnerability descriptions - Severity ratings - Attack scenarios prevented - Credit to security researchers if applicable 5. Verify that feature changes are clearly documented: → Verify that security impact is emphasized visually in changelog - New capabilities added - Changed behaviors - Deprecated features 6. Test that bug fixes are listed with impact descriptions → Test that changelog is available in multiple languages if browser is localized **Pass Criteria**: Comprehensive changelog provided AND security impact prominently detailed AND CVE information included AND accessible before installation AND well-organized and readable AND emphasized security sections **Fail Criteria**: No changelog available OR minimal security details OR missing CVE information OR only accessible after installation OR poorly formatted OR security not emphasized **Evidence**: Changelog screenshots showing all sections, security detail depth analysis, CVE reference verification, accessibility before installation, formatting quality assessment, localization testing **References**: - Security Disclosure Best Practices: https://www.cisa.gov/coordinated-vulnerability-disclosure-process - Software Release Notes Standards: https://docs.gitlab.com/ee/development/changelog.html ## 6.6 Protocol Handler Security Assessments This section covers assessment procedures for requirements PRO-REQ-1 through PRO-REQ-23, addressing custom protocol handler registration, scheme hijacking prevention, protocol allowlisting, URL scheme security, mobile deep linking, and handler isolation. ### Assessment: PRO-REQ-1 (Protocol handler registration validation) **Reference**: PRO-REQ-1 - Browser shall validate all custom protocol handler registrations to ensure they meet security requirements before registration **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol handler registration validation prevents malicious websites from hijacking critical URL schemes or injecting XSS vectors through handler templates. Without strict validation, attackers could register handlers for privileged schemes like javascript: or craft handler URLs containing script injection, enabling cross-site scripting attacks when victims click protocol links. **Verification**: 1. Navigate to a test page that attempts to register a custom protocol handler using registerProtocolHandler() → Verify that successful registrations require user permission or confirmation 2. Test registration with a valid web+custom scheme (e.g., web+music, web+calendar) → Valid web+custom scheme registrations are accepted after validation 3. Attempt to register a handler for a dangerous built-in scheme (http, https, file, javascript) → Built-in privileged schemes (http, https, file, javascript, data, blob) cannot be registered 4. Verify that the browser rejects registration attempts for privileged schemes → Only HTTPS origins can register protocol handlers 5. Test registration with malformed URL templates (missing %s placeholder, invalid URL format) → URL templates shall include %s placeholder and be valid URLs 6. Verify that only HTTPS origins can register protocol handlers (HTTP origins should be rejected) → Malformed registrations are rejected with appropriate error messages 7. Test that the handler URL template is properly validated for XSS vectors → XSS vectors in handler URLs are sanitized or rejected 8. Attempt to register handlers with data: or blob: URLs and verify rejection → Registration from iframes follows same-origin policy 9. Test registration from an iframe and verify same-origin policy enforcement → User permission is required before handler activation **Pass Criteria**: Browser validates protocol registrations AND rejects privileged schemes AND requires HTTPS origins AND validates URL templates AND requires user permission **Fail Criteria**: Privileged schemes can be registered OR HTTP origins accepted OR invalid URL templates accepted OR no user permission required OR XSS vectors not sanitized **Evidence**: Screenshots of registration attempts for various schemes, console error messages for rejected registrations, permission prompt screenshots, network traces showing HTTPS enforcement, XSS test results, developer console outputs **References**: - WHATWG HTML Standard - registerProtocolHandler: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers - MDN registerProtocolHandler API: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler - Custom URL Scheme Security: https://tools.ietf.org/html/rfc8252#section-7.1 - Protocol Handler Security Best Practices: https://www.chromium.org/developers/design-documents/create-amazing-password-forms/ - OWASP URL Validation: https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html - Web Application Security Working Group: https://www.w3.org/2011/webappsec/ ### Assessment: PRO-REQ-2 (User consent for custom protocols) **Reference**: PRO-REQ-2 - Browser shall obtain explicit user consent before activating custom protocol handlers **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol handler consent requirements prevent malicious websites from silently registering handlers that could launch local applications or exfiltrate data through custom protocols without user knowledge. Explicit consent ensures users understand which websites can intercept specific protocol schemes, protecting against protocol handler hijacking where attackers register handlers to intercept sensitive protocol activations. **Verification**: 1. Register a custom protocol handler (web+test) on a test page → Verify that permission prompts cannot be spoofed or triggered without user action 2. Verify that registration triggers a permission prompt to the user → Protocol handler registration shows clear permission prompt 3. Test that the permission prompt clearly identifies the scheme and handling origin → Permission prompt identifies the custom scheme and requesting origin 4. Click a link with the custom protocol (web+test:example) and verify activation prompt → Activation of custom protocol shows confirmation before launching handler 5. Test that users can allow, deny, or remember the choice for the handler → Users can allow, deny, or set persistent preferences 6. Verify that denying handler activation falls back to default behavior or shows error → Permission choices persist across sessions 7. Test that remembered choices persist across browser sessions → Settings provide UI to view and revoke handler permissions 8. Navigate to browser settings and verify users can revoke protocol handler permissions → Each origin requires independent user consent 9. Test that each origin requires separate consent (cross-origin isolation) → Permission prompts are genuine browser UI (not web content) **Pass Criteria**: Explicit user consent required for registration AND activation prompts shown before launching AND permissions are manageable in settings AND cross-origin isolation enforced **Fail Criteria**: No consent prompts displayed OR handlers activate without user permission OR permissions cannot be revoked OR cross-origin handlers share permissions **Evidence**: Screenshots of permission prompts (registration and activation), settings UI showing handler permissions, video recording of consent flow, persistent permission test results, cross-origin permission isolation tests, prompt timing analysis **References**: - WHATWG HTML Standard - User Activation: https://html.spec.whatwg.org/multipage/interaction.html#tracking-user-activation - Permissions API Specification: https://www.w3.org/TR/permissions/ - User Consent Best Practices: https://www.w3.org/TR/security-privacy-questionnaire/ - GDPR Consent Requirements: https://gdpr.eu/gdpr-consent-requirements/ - Chrome Permission UX Guidelines: https://developer.chrome.com/docs/extensions/mv3/permission_warnings/ - Mozilla Permission Prompts: https://support.mozilla.org/en-US/kb/permissions-manager-give-ability-store-passwords-set-cookies-more ### Assessment: PRO-REQ-3 (Protocol allowlist enforcement) **Reference**: PRO-REQ-3 - Browser shall enforce protocol allowlists that restrict which custom schemes can be registered **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol allowlist enforcement prevents registration of dangerous schemes that could enable code execution, data exfiltration, or privilege escalation through protocol handlers. Strict allowlisting blocks attackers from registering handlers for privileged schemes like vbscript: or shell: that could execute arbitrary code when activated. **Verification**: 1. Review browser documentation for allowed custom protocol scheme patterns → Verify that only approved safelist schemes bypass the web+ prefix requirement 2. Attempt to register a handler for web+validname and verify acceptance → Custom schemes use web+ prefix unless on explicit safelist 3. Test registration with schemes that don't follow web+ prefix convention → Safelisted schemes (mailto, tel, sms) can be registered without web+ prefix 4. Verify that safelisted schemes (mailto, tel, sms) can be registered with special handling → Dangerous schemes (javascript, data, vbscript, shell) are blocklisted 5. Attempt to register handlers for blocklisted dangerous schemes (vbscript, shell, etc.) → Scheme names follow DNS label conventions (alphanumeric, hyphens, no spaces) 6. Test enterprise policy controls for custom protocol allowlists → Scheme matching is case-insensitive 7. Verify that scheme names follow DNS label conventions (alphanumeric, hyphens) → Length limits prevent excessively long scheme names (e.g., 64 character limit) 8. Test that scheme names are case-insensitive during registration and matching → Enterprise policies can extend or restrict allowlists 9. Attempt registration with excessively long scheme names and verify length limits → Invalid scheme patterns are rejected with clear error messages **Pass Criteria**: web+ prefix required for custom schemes AND safelist exceptions work correctly AND blocklist prevents dangerous schemes AND scheme validation follows standards **Fail Criteria**: web+ prefix not enforced OR dangerous schemes accepted OR invalid scheme patterns allowed OR no length limits **Evidence**: Registration test results for various scheme patterns, error messages for rejected schemes, enterprise policy configuration examples, scheme validation test matrix, documentation of allowlist and blocklist **References**: - WHATWG URL Standard - Schemes: https://url.spec.whatwg.org/#schemes - RFC 3986 URI Generic Syntax: https://www.rfc-editor.org/rfc/rfc3986#section-3.1 - Custom URL Scheme Guidelines: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml - Chromium URL Scheme List: https://source.chromium.org/chromium/chromium/src/+/main:url/url_constants.cc - Safari Custom Protocol Handlers: https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app - Mozilla Protocol Handler Allowlist: https://searchfox.org/mozilla-central/source/dom/base/nsContentUtils.cpp ### Assessment: PRO-REQ-4 (Scheme hijacking prevention) **Reference**: PRO-REQ-4 - Browser shall prevent scheme hijacking attacks where malicious handlers override legitimate protocol handlers **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that scheme hijacking prevention protects users from malicious websites that attempt to override legitimate protocol handlers to intercept sensitive protocol activations. Without protection, attackers could register handlers for schemes like mailto: or custom banking protocols to capture credentials, redirect users, or exfiltrate data when victims click protocol links. **Verification**: 1. Register a legitimate protocol handler for web+test from https://trusted.example.com → Verify that resetting browser settings revokes all custom protocol handlers 2. Attempt to register a competing handler for web+test from https://malicious.example.com → Multiple handlers for same scheme trigger user choice rather than silent override 3. Verify that the browser either prevents the override or prompts user for choice → User can see and select from all registered handlers for a scheme 4. Test that the most recently used or user-preferred handler takes precedence → Built-in handlers maintain priority or require explicit user override 5. Verify that built-in handlers (mailto, tel) cannot be completely overridden without permission → Handler selection UI clearly displays origin and scheme information 6. Test that unregistering a handler doesn't automatically activate an attacker's handler → Private/incognito mode handlers are session-only 7. Attempt to register a handler that impersonates a well-known service → Browser reset revokes all custom handlers 8. Verify that handler selection UI clearly shows the origin of each handler → No automatic activation of handlers after unregistration 9. Test that handlers registered in private/incognito mode don't persist → Handler precedence is deterministic and user-controllable **Pass Criteria**: Multiple handlers for same scheme require user selection AND origins clearly displayed AND built-in handlers protected AND private mode isolation enforced **Fail Criteria**: Silent override of existing handlers OR origins not displayed OR built-in handlers easily hijacked OR private mode handlers persist **Evidence**: Screenshots of handler selection UI, multi-handler registration test results, private mode isolation verification, browser reset test results, handler precedence documentation, user choice recording **References**: - Same-Origin Policy for Handlers: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy - URL Scheme Hijacking Prevention: https://portswigger.net/web-security/dom-based/open-redirection - OWASP URL Redirection Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html - Browser Handler Precedence: https://html.spec.whatwg.org/multipage/system-state.html#concept-handler-precedence ### Assessment: PRO-REQ-5 (Protocol parameter sanitization) **Reference**: PRO-REQ-5 - Browser shall sanitize protocol URL parameters before passing them to protocol handlers **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol parameter sanitization prevents injection attacks where malicious protocol URLs containing special characters could exploit vulnerabilities in handler implementations. Without proper encoding, protocol parameters containing script tags, SQL commands, or command injection payloads could execute in the context of the handling website or application, enabling XSS, SQLi, or remote code execution. **Verification**: 1. Register a test protocol handler with URL template: https://handler.example.com/handle?url=%s → Verify that Unicode characters are properly normalized and encoded 2. Create a test link with XSS payload: Click → All special characters in protocol URLs are properly URL-encoded 3. Click the link and verify that the script payload is URL-encoded when passed to handler → Script tags and JavaScript code are encoded, not executed 4. Test with SQL injection characters in protocol URL and verify proper encoding → SQL injection characters are escaped/encoded 5. Attempt protocol URL with newline/CRLF characters and verify sanitization → CRLF and newline characters are stripped or encoded 6. Test with null bytes and other control characters in protocol URL → Null bytes and control characters are removed or encoded 7. Verify that the %s placeholder is properly substituted with encoded parameter → Parameter substitution uses safe encoding (encodeURIComponent or equivalent) 8. Test with extremely long protocol parameters and verify truncation or rejection → Extremely long parameters are truncated or rejected 9. Attempt to include additional parameters beyond the defined template → Template structure is enforced (no parameter injection) **Pass Criteria**: All special characters properly URL-encoded AND XSS payloads neutralized AND injection attacks prevented AND template structure enforced **Fail Criteria**: Special characters not encoded OR XSS possible through protocol parameters OR injection successful OR template can be modified **Evidence**: XSS test results showing encoding, SQL injection test results, CRLF injection tests, parameter encoding examples, extremely long parameter handling, Unicode normalization tests, network traces showing encoded parameters **References**: - OWASP XSS Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html - URL Encoding RFC 3986: https://www.rfc-editor.org/rfc/rfc3986#section-2.1 - JavaScript URL Encoding: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent - Parameter Injection Attacks: https://owasp.org/www-community/attacks/Command_Injection - Content Security Policy: https://www.w3.org/TR/CSP3/ ### Assessment: PRO-REQ-6 (External protocol handler security) **Reference**: PRO-REQ-6 - Browser shall implement security controls when launching external (OS-level) protocol handlers **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that external protocol handler security prevents malicious websites from silently launching local applications with crafted parameters that could enable command injection or arbitrary code execution. Confirmation prompts and parameter sanitization ensure users understand what application is being launched and prevent attackers from exploiting vulnerable OS-level handlers through injection attacks. **Verification**: 1. Configure an OS-level protocol handler for a custom scheme (e.g., myapp://) → Test that repeated external handler launches don't bypass confirmation prompts 2. Create a web page with a link to the custom protocol: Launch → Confirmation prompt appears before launching any external protocol handler 3. Click the link and verify that a confirmation prompt appears before launching → Prompt identifies the target application and protocol scheme 4. Test that the confirmation clearly identifies the external application to be launched → User shall explicitly approve each launch (or set persistent preference) 5. Verify that parameters passed to external handlers are sanitized → Parameters are sanitized to prevent command injection 6. Test launching external handlers with malicious parameters (command injection attempts) → Automatic launch is prevented (requires user gesture) 7. Attempt to launch external handlers from iframes and verify restrictions → Iframe restrictions prevent silent external handler launches 8. Test that user should click or interact to trigger external handler (no automatic launch) → User preferences for external handlers are persistent and accessible 9. Verify that external handler launches respect user preferences (allow/deny lists) → Allow/deny lists work correctly for external protocols **Pass Criteria**: Confirmation required for external handler launches AND application identified in prompt AND parameters sanitized AND user gesture required **Fail Criteria**: External handlers launch without confirmation OR application not identified OR command injection possible OR automatic launch allowed **Evidence**: Screenshots of external handler confirmation prompts, command injection test results, parameter sanitization verification, user gesture requirement tests, iframe restriction tests, preference persistence verification **References**: - External Protocol Handler Security: https://textslashplain.com/2019/08/28/browser-architecture-web-to-app-communication-overview/ - macOS URL Scheme Handling: https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app - Linux Desktop Entry Specification: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html ### Assessment: PRO-REQ-7 (Protocol handler UI transparency) **Reference**: PRO-REQ-7 - Browser shall provide transparent UI that clearly indicates when protocol handlers are registered or invoked **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol handler UI transparency prevents deceptive handler registrations where users unknowingly grant protocol handling permissions without understanding the security implications. Transparent UI ensures users can identify, review, and revoke protocol handlers, protecting against social engineering attacks where malicious sites silently register handlers to intercept sensitive protocol activations. **Verification**: 1. Navigate to a page and register a custom protocol handler → Verify that developer tools show protocol handler events for debugging 2. Verify that a clear notification or permission prompt appears during registration → Registration triggers visible notification or permission request 3. Check that the browser UI shows an indicator when handlers are registered (e.g., icon in address bar) → Browser UI indicates when handlers are registered for current origin 4. Click a custom protocol link and verify that the handler invocation is visible to user → Handler invocation shows clear user feedback (dialog, notification, or status) 5. Test that handler management UI is accessible from browser settings → Settings provide comprehensive handler management interface 6. Verify that the settings UI lists all registered handlers with origins and schemes → All registered handlers listed with scheme, origin, and URL template 7. Test that users can easily identify which handler will be invoked for a scheme → Handler selection and removal are user-friendly 8. Verify that handler removal is straightforward from the settings UI → Failed handler invocations show error messages 9. Test that the browser provides clear feedback when handler invocation fails → Developer console logs handler events **Pass Criteria**: Registration and invocation visible to user AND settings provide handler management AND all handlers listed with details AND clear feedback for all operations **Fail Criteria**: Silent handler operations OR no settings UI for management OR handlers hidden from user OR no feedback on invocation **Evidence**: Screenshots of registration notifications, address bar indicators, settings UI showing handler list, handler invocation UI, error messages, developer console logs, video walkthrough of handler lifecycle **References**: - User Interface Security Principles: https://www.w3.org/TR/security-privacy-questionnaire/#questions - Chrome Protocol Handler Settings: https://support.google.com/chrome/answer/114662 - Firefox Protocol Handler Management: https://support.mozilla.org/en-US/kb/change-program-used-open-email-links - WCAG Accessibility Guidelines: https://www.w3.org/WAI/WCAG21/quickref/ - User-Centered Security Design: https://www.usenix.org/conference/soups2019 ### Assessment: PRO-REQ-8 (Protocol downgrade protection) **Reference**: PRO-REQ-8 - Browser shall prevent protocol downgrade attacks where HTTPS handlers are replaced with HTTP handlers **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol downgrade protection prevents attackers from replacing secure HTTPS handlers with insecure HTTP handlers to enable man-in-the-middle attacks on protocol activations. Without downgrade protection, attackers could register HTTP handlers to intercept sensitive data passed through protocol URLs that were previously handled securely over HTTPS. **Verification**: 1. Register a protocol handler from an HTTPS origin: https://secure.example.com/handler?url=%s → Verify that downgrade attempts are logged for security monitoring 2. Attempt to register a handler for the same scheme from an HTTP origin: http://insecure.example.com/handler?url=%s → HTTP origins cannot register handlers if HTTPS origin has already registered 3. Verify that the HTTP handler registration is rejected or requires explicit user confirmation → Handler URL templates are HTTPS for security-sensitive schemes 4. Test that handler URL templates are HTTPS if registered from HTTPS origins → Existing HTTPS handlers cannot be downgraded to HTTP 5. Attempt to update an existing HTTPS handler to use an HTTP URL template → HSTS policies prevent HTTP handler registration for HSTS hosts 6. Verify that downgrades are prevented or trigger security warnings → Mixed content blocking applies to handler URLs 7. Test that HSTS policies affect protocol handler registration → Upgrade-insecure-requests policy upgrades handler URLs when applicable 8. Verify that mixed content policies apply to handler URL templates → Downgrade attempts generate security warnings or errors 9. Test that handler invocation follows upgrade-insecure-requests policy → Security events are logged for downgrade attempts **Pass Criteria**: HTTP handler registration blocked when HTTPS exists AND URL templates are HTTPS AND HSTS enforced for handlers AND downgrade attempts logged **Fail Criteria**: HTTP handlers can override HTTPS handlers OR HTTP URL templates accepted OR HSTS not enforced OR no logging of downgrades **Evidence**: Downgrade test results, HSTS enforcement verification, mixed content policy tests, security warning screenshots, event logs showing downgrade attempts, upgrade-insecure-requests verification **References**: - HTTP Strict Transport Security (HSTS) RFC 6797: https://www.rfc-editor.org/rfc/rfc6797 - Upgrade Insecure Requests: https://www.w3.org/TR/upgrade-insecure-requests/ - Mixed Content Specification: https://www.w3.org/TR/mixed-content/ - Chrome HTTPS Best Practices: https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https - Mozilla Web Security Guidelines: https://infosec.mozilla.org/guidelines/web_security ### Assessment: PRO-REQ-9 (Protocol handler logging) **Reference**: PRO-REQ-9 - Browser shall log protocol handler registration, modification, and invocation events for security auditing **Given**: A conformant browser with PRO-1 or higher capability and LOG-1 or higher capability **Task**: Verify that protocol handler logging creates comprehensive audit trails of handler lifecycle events, enabling detection of malicious handler registrations, unauthorized invocations, or suspicious patterns that could indicate compromise. Complete logging supports security investigations by providing forensic evidence of when handlers were registered, by whom, and how they were used. **Verification**: 1. Enable security event logging in browser configuration → Export protocol handler logs and verify they are in structured format 2. Register a custom protocol handler and verify the event is logged → All handler lifecycle events are logged (registration, invocation, modification, removal) 3. Check that the log entry includes: timestamp, origin, scheme, handler URL template, user decision → Log entries include complete metadata: timestamp, origin, scheme, URL template, user action 4. Invoke a registered protocol handler and verify the invocation is logged → Failed registration attempts are logged with error details 5. Modify an existing handler (if supported) and verify the change is logged → External handler invocations are logged separately from web handlers 6. Unregister a protocol handler and verify the removal is logged → Logs distinguish between user-initiated and script-initiated events 7. Test that failed registration attempts are logged with error reasons → Log format is structured (JSON or similar) for analysis 8. Verify that external protocol handler launches are logged → Logs can be exported for security monitoring 9. Test that logs include sufficient context for security analysis → Log retention follows security event retention policies **Pass Criteria**: All handler lifecycle events logged with complete metadata AND failed attempts logged AND logs exportable in structured format **Fail Criteria**: Handler events not logged OR logs lack critical metadata OR failed attempts not logged OR logs not exportable **Evidence**: Log exports showing handler events, log entry examples with metadata, failed registration logs, external handler invocation logs, log format documentation, retention policy verification **References**: - NIST SP 800-92 Log Management: https://csrc.nist.gov/publications/detail/sp/800-92/final - W3C Reporting API: https://www.w3.org/TR/reporting-1/ - OWASP Logging Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html - Audit Trail Requirements: https://www.iso.org/standard/27001 ### Assessment: PRO-REQ-10 (Web+custom scheme support) **Reference**: PRO-REQ-10 - Browser shall support web+custom scheme format for custom protocol handlers as specified by WHATWG **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that web+custom scheme support enforces the WHATWG-specified naming convention that prevents namespace collisions with system-level or IANA-registered schemes. The web+ prefix requirement ensures custom web handlers are clearly distinguished from OS-level protocol handlers, preventing malicious sites from hijacking system protocols while enabling safe custom protocol functionality. **Verification**: 1. Register a protocol handler using web+ prefix: registerProtocolHandler('web+music', 'https://handler.example.com/play?url=%s') → Verify that web+ handlers work correctly across different browser contexts 2. Verify that the registration succeeds for properly formatted web+ schemes → web+ prefix is recognized and properly handled 3. Test that web+ schemes are case-insensitive (web+music equals WEB+MUSIC) → Schemes are case-insensitive during registration and matching 4. Create a link with web+music:track123 and verify it invokes the handler → web+ shall be followed by valid scheme name (alphanumeric, hyphens) 5. Test that schemes without web+ prefix (except safelisted) are rejected → web+ alone without suffix is invalid 6. Verify that web+ is followed by at least one alphanumeric character → Scheme names follow DNS label conventions 7. Test that web+ alone (without suffix) is rejected → Multiple web+ schemes can be registered from same origin 8. Verify that web+ schemes follow DNS label rules (no spaces, special chars limited) → Links with web+ schemes correctly invoke registered handlers 9. Test registration of multiple different web+ schemes from same origin → Error messages guide developers on correct web+ format **Pass Criteria**: web+ prefix required and recognized AND case-insensitive matching AND DNS label rules enforced AND multiple schemes supported per origin **Fail Criteria**: web+ prefix not recognized OR case-sensitive matching OR invalid scheme names accepted OR only one scheme per origin **Evidence**: Registration test results for various web+ formats, case sensitivity tests, scheme validation test matrix, multi-scheme registration examples, error message documentation, cross-context invocation tests **References**: - WHATWG HTML Standard - web+ Schemes: https://html.spec.whatwg.org/multipage/system-state.html#normalize-protocol-handler-parameters - RFC 3986 URI Scheme Syntax: https://www.rfc-editor.org/rfc/rfc3986#section-3.1 - Custom Protocol Handler Specification: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers - MDN web+ Scheme Documentation: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#permitted_schemes - DNS Label Syntax RFC 1035: https://www.rfc-editor.org/rfc/rfc1035 - Browser Protocol Handler Implementation: https://www.chromium.org/developers/design-documents/create-amazing-password-forms/ ### Assessment: PRO-REQ-11 (Protocol handler persistence) **Reference**: PRO-REQ-11 - Browser shall persist protocol handler registrations across sessions while respecting privacy modes **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol handler persistence balances usability with privacy by maintaining registrations across normal browser sessions while ensuring private mode handlers do not leak across sessions. This prevents privacy violations where private browsing handlers could reveal user activity history while maintaining functionality for legitimate persistent handler registrations. **Verification**: 1. Register a protocol handler in normal browsing mode → Verify that exported browser profiles include protocol handler settings 2. Close the browser and reopen it → Handler registrations persist across normal browser restarts 3. Verify that the protocol handler registration persists and is still functional → Registered handlers remain functional after session closure 4. Click a custom protocol link and verify the handler still works after restart → Private/incognito mode handlers are session-only (do not persist) 5. Register a protocol handler in private/incognito mode → Private mode handlers do not leak to normal mode or vice versa 6. Verify that the handler works during the private session → Clearing browsing data removes handler registrations 7. Close the private/incognito window and open a new one → Handler persistence respects user privacy preferences 8. Verify that the handler registered in private mode does NOT persist → Profile export/import includes handler configurations 9. Test that clearing browsing data removes protocol handler registrations → Handler storage is properly synchronized in multi-device scenarios **Pass Criteria**: Normal mode handlers persist across sessions AND private mode handlers are session-only AND data clearing removes handlers AND profile export includes handlers **Fail Criteria**: Normal handlers don't persist OR private handlers persist OR data clearing doesn't remove handlers OR handlers not in profile export **Evidence**: Persistence test results across restarts, private mode isolation verification, data clearing test results, profile export/import examples, multi-device sync verification (if applicable) **References**: - Browser Storage Persistence: https://storage.spec.whatwg.org/ - Private Browsing Mode Specification: https://www.w3.org/TR/tracking-dnt/#private-browsing - Clear Browsing Data Specification: https://www.w3.org/TR/clear-site-data/ - Firefox Private Browsing: https://support.mozilla.org/en-US/kb/private-browsing-use-firefox-without-history - Chrome Incognito Mode: https://support.google.com/chrome/answer/95464 ### Assessment: PRO-REQ-12 (Protocol confusion mitigation) **Reference**: PRO-REQ-12 - Browser shall mitigate protocol confusion attacks where similar-looking schemes are used to deceive users **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol confusion mitigation prevents homograph attacks where visually similar scheme names using Unicode characters deceive users into trusting malicious handlers. Attackers could register handlers for schemes that look identical to legitimate ones using Cyrillic or other non-Latin characters, tricking users into believing they're using trusted handlers while data is actually sent to attacker-controlled servers. **Verification**: 1. Attempt to register a protocol handler using homoglyphs (e.g., web+test with Cyrillic 'e' instead of Latin 'e') → Test that schemes with different Unicode normalization forms are treated as different 2. Verify that the browser normalizes Unicode in scheme names or rejects homoglyphs → Scheme names are restricted to ASCII alphanumeric characters and hyphens 3. Test registration with mixed scripts in scheme names (Latin + Cyrillic) → Unicode homoglyphs in scheme names are rejected 4. Attempt to register schemes that visually resemble built-in schemes (e.g., web+https with Cyrillic characters) → Mixed script scheme names are not allowed 5. Verify that scheme names are restricted to ASCII alphanumeric and hyphens → Schemes visually similar to built-in schemes are flagged or rejected 6. Test that UI clearly displays scheme names without ambiguity → UI displays scheme names in monospace or disambiguating font 7. Verify that punycode or IDN homographs are not allowed in scheme names → Punycode/IDN encoding not allowed in scheme names 8. Test registration of schemes with confusable characters (0 vs O, 1 vs l) → Confusable character combinations are prevented or warned 9. Verify that handler selection UI disambiguates similar schemes → Different Unicode normalizations are properly handled **Pass Criteria**: Scheme names restricted to ASCII AND homoglyphs rejected AND confusable schemes flagged AND UI clearly displays schemes **Fail Criteria**: Unicode homoglyphs accepted OR mixed scripts allowed OR confusing schemes not flagged OR ambiguous UI display **Evidence**: Homoglyph test results, Unicode normalization tests, confusable character test matrix, UI screenshots showing scheme display, rejection error messages, scheme validation code review **References**: - Unicode Security Considerations: https://www.unicode.org/reports/tr36/ - Homograph Attacks: https://en.wikipedia.org/wiki/IDN_homograph_attack - ASCII URI Schemes RFC 3986: https://www.rfc-editor.org/rfc/rfc3986#section-3.1 - Chrome IDN Spoof Protection: https://chromium.googlesource.com/chromium/src/+/master/docs/idn.md - OWASP Unicode Security: https://owasp.org/www-community/attacks/Unicode_Encoding ### Assessment: PRO-REQ-13 (Handler capability restrictions) **Reference**: PRO-REQ-13 - Browser shall restrict capabilities available to protocol handlers based on context and permissions **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that handler capability restrictions prevent privilege escalation where malicious handlers exploit protocol invocation to gain unauthorized access to APIs or bypass security policies. Handlers shall operate within their origin's security context without inheriting privileges from the protocol scheme itself, preventing attackers from using custom protocols to circumvent same-origin policy or Content Security Policy restrictions. **Verification**: 1. Register a protocol handler and invoke it with a custom protocol URL → Verify that handlers respect Permissions Policy (formerly Feature Policy) 2. Verify that the handler page inherits security context from its origin, not protocol URL → Handler security context is based on handler URL origin, not protocol 3. Test that handler cannot access privileged APIs without proper permissions → Privileged APIs require explicit permissions (not granted by handler status) 4. Verify that protocol parameters don't grant additional capabilities → CSP of handler origin is enforced 5. Test that handlers follow Content Security Policy of their origin → Protocol parameters cannot inject capabilities or bypass security 6. Attempt to access local files from handler and verify blocking → Local file access is blocked unless explicitly permitted 7. Test that handlers cannot bypass same-origin policy using protocol parameters → Same-origin policy is enforced for handlers 8. Verify that handlers in iframes have restricted capabilities → Iframe handlers have sandboxed capabilities 9. Test that handler invocation doesn't grant automatic permission escalation → No automatic permission grants upon handler invocation **Pass Criteria**: Handler capabilities based on origin AND CSP enforced AND no privilege escalation via protocol AND same-origin policy maintained **Fail Criteria**: Protocol grants additional capabilities OR CSP bypassed OR privilege escalation possible OR same-origin policy violated **Evidence**: Capability restriction test results, CSP enforcement verification, permission escalation tests (negative), same-origin policy tests, iframe sandbox verification, Permissions Policy tests **References**: - Content Security Policy Level 3: https://www.w3.org/TR/CSP3/ - Permissions Policy: https://www.w3.org/TR/permissions-policy-1/ - Same-Origin Policy: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy - HTML Iframe Sandbox: https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-sandbox - Web API Permissions: https://www.w3.org/TR/permissions/ - Browser Security Model: https://www.chromium.org/Home/chromium-security/ ### Assessment: PRO-REQ-14 (Protocol handler revocation) **Reference**: PRO-REQ-14 - Browser shall provide mechanisms to revoke protocol handler registrations **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that protocol handler revocation mechanisms enable users to remove unwanted or malicious handlers that may have been registered through social engineering or deceptive UIs. Without effective revocation, users would be permanently stuck with handlers they didn't intend to register, allowing attackers to maintain persistent control over protocol scheme handling even after users discover the deception. **Verification**: 1. Register multiple protocol handlers from different origins → Test that browser reset removes all custom protocol handlers 2. Navigate to browser settings and locate protocol handler management section → Settings UI provides clear handler management interface 3. Verify that all registered handlers are listed with scheme, origin, and URL template → All registered handlers are visible with complete details 4. Revoke a specific handler using the settings UI → Individual handlers can be selectively revoked 5. Verify that the revoked handler no longer appears in the handler list → Revoked handlers stop functioning immediately 6. Test that clicking custom protocol links no longer invokes the revoked handler → unregisterProtocolHandler() API works correctly 7. Verify that unregisterProtocolHandler() API can programmatically revoke handlers → Cross-origin revocation is prevented (only origin can unregister its handlers) 8. Test that only the registering origin can programmatically unregister its handlers → Site data clearing includes handler revocation 9. Verify that clearing site data revokes all handlers from that origin → Browser reset removes all handlers **Pass Criteria**: Settings UI allows handler revocation AND unregisterProtocolHandler() API works AND cross-origin revocation prevented AND site clearing removes handlers **Fail Criteria**: No revocation mechanism OR handlers persist after revocation OR cross-origin revocation possible OR site clearing doesn't affect handlers **Evidence**: Settings UI screenshots showing handler management, revocation test results, unregisterProtocolHandler() examples, cross-origin revocation prevention tests, site data clearing verification, browser reset verification **References**: - WHATWG unregisterProtocolHandler API: https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-unregisterprotocolhandler - Clear Site Data Specification: https://www.w3.org/TR/clear-site-data/ - Browser Settings Best Practices: https://www.w3.org/TR/security-privacy-questionnaire/ - Chrome Protocol Handler Settings: https://support.google.com/chrome/answer/114662 - Firefox Handler Management: https://support.mozilla.org/en-US/kb/change-program-used-open-email-links - User Control and Transparency: https://www.w3.org/TR/privacy-principles/#user-control ### Assessment: PRO-REQ-15 (Cross-origin protocol restrictions) **Reference**: PRO-REQ-15 - Browser shall enforce cross-origin restrictions for protocol handler registration and invocation **Given**: A conformant browser with PRO-1 or higher capability **Task**: Verify that cross-origin protocol restrictions enforce same-origin policy for handler registration and management, preventing malicious iframes from registering handlers on behalf of parent frames or vice versa. This isolation ensures that each origin maintains independent control over its handlers, preventing cross-origin attacks where embedded content could hijack the parent's protocol handling or manipulate handlers from other origins. **Verification**: 1. Create a page at https://origin-a.example.com that registers a protocol handler → Verify that subdomains are treated as separate origins for handler registration 2. Create an iframe at https://origin-b.example.com embedded in origin-a → Protocol handlers are attributed to the registering origin (not parent frame) 3. Attempt to register a protocol handler from the iframe → Cross-origin iframes register handlers under their own origin 4. Verify that the handler is attributed to origin-b (iframe origin), not origin-a (parent) → Handlers can only be modified/removed by their registering origin 5. Test that handlers registered by origin-a cannot be unregistered by origin-b → Handler URL templates are same-origin with registration origin 6. Create a cross-origin link to custom protocol and verify handler invocation → Cross-origin invocation works but respects security boundaries 7. Test that handler URL templates match the registering origin → postMessage doesn't bypass origin restrictions 8. Verify that postMessage cannot be used to bypass handler origin restrictions → CORS policies are orthogonal to handler registration 9. Test that CORS policies don't affect protocol handler registration → Subdomain isolation is enforced (sub.example.com != example.com) **Pass Criteria**: Handlers attributed to registering origin AND cross-origin modification prevented AND URL templates same-origin AND subdomain isolation enforced **Fail Criteria**: Handler origin attribution incorrect OR cross-origin modification allowed OR URL templates can be cross-origin OR subdomain isolation violated **Evidence**: Cross-origin registration tests, iframe attribution tests, cross-origin modification prevention tests, URL template origin validation, subdomain isolation tests, public suffix list verification **References**: - Same-Origin Policy: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy - HTML Origin Specification: https://html.spec.whatwg.org/multipage/origin.html - CORS Specification: https://fetch.spec.whatwg.org/#http-cors-protocol - Public Suffix List: https://publicsuffix.org/ - Iframe Security: https://html.spec.whatwg.org/multipage/iframe-embed-object.html - Subdomain Security: https://tools.ietf.org/html/rfc6265#section-5.1.3 ### Assessment: PRO-REQ-16 (Protocol handler manifest validation) **Reference**: PRO-REQ-16 - Browser shall validate protocol handler manifests in Progressive Web Apps and installed web applications **Given**: A conformant browser with PRO-1 or higher capability and support for Web App Manifests **Task**: Progressive Web Apps can declare protocol handlers in their manifest files, creating a persistent attack surface that bypasses runtime API restrictions. Malicious PWAs could register handlers for privileged schemes, escape manifest scope restrictions, or persist handlers after uninstallation to maintain access to user data. Rigorous manifest validation ensures PWA protocol handlers meet the same security standards as API-registered handlers while preventing manifest-based handler abuse. **Verification**: 1. Create a PWA with a manifest file declaring protocol handlers in protocol_handlers field → protocol_handlers field in manifest is parsed and validated 2. Install the PWA and verify that declared protocol handlers are registered → Declared handlers are registered upon app installation with user permission 3. Test manifest protocol handlers with invalid URL templates and verify rejection → Invalid handlers in manifest are rejected with clear error messages 4. Verify that manifest handlers require user permission before activation → Same security validations apply as registerProtocolHandler API 5. Test that manifest protocol handlers follow same security rules as registerProtocolHandler → Privileged schemes cannot be registered via manifest 6. Attempt to declare privileged schemes (http, https) in manifest and verify rejection → Handlers are removed when app is uninstalled 7. Test that manifest handlers are unregistered when app is uninstalled → Handlers point to URLs within app scope 8. Verify that manifest scope restrictions apply to protocol handlers → Manifest updates trigger handler re-validation 9. Test manifest handler updates when app manifest is updated → Developer console shows validation errors 10. Verify that manifest validation errors are reported to developer console → OS-level protocol handler registration occurs for installed apps **Pass Criteria**: Manifest protocol_handlers validated AND user permission required AND same security rules as API AND uninstalled app removes handlers **Fail Criteria**: Invalid manifests accepted OR no user permission OR weaker security than API OR handlers persist after uninstall **Evidence**: Manifest examples with protocol handlers, installation flow screenshots, validation error messages, uninstallation verification, scope restriction tests, OS protocol handler registration proof, update handling tests **References**: - Web App Manifest Specification: https://www.w3.org/TR/appmanifest/ - PWA Protocol Handlers: https://web.dev/url-protocol-handler/ - URL Handlers in PWA: https://github.com/WICG/pwa-url-handler/blob/main/explainer.md - Chrome PWA Installation: https://web.dev/install-criteria/ - MDN Web App Manifest: https://developer.mozilla.org/en-US/docs/Web/Manifest - App Scope Specification: https://www.w3.org/TR/appmanifest/#scope-member ### Assessment: PRO-REQ-17 (Intent URL security - mobile) **Reference**: PRO-REQ-17 - Browser shall implement security controls for Android Intent URLs and prevent intent scheme attacks **Given**: A conformant mobile browser with PRO-1 or higher capability running on Android **Task**: Android Intent URLs allow web pages to launch native applications with arbitrary parameters, creating a powerful attack vector for launching privileged system components, bypassing app permissions, or exfiltrating sensitive data through maliciously crafted intent extras. Intent scheme attacks can trigger dangerous actions like sending SMS, making calls, or accessing sensitive device features without proper authorization. Comprehensive intent URL validation prevents these attacks while maintaining legitimate app integration functionality. **Verification**: 1. Create a test page with an intent URL: Click → Intent URLs are parsed and validated before invocation 2. Verify that clicking the intent link triggers appropriate security checks → Privileged system components cannot be launched via intent URLs 3. Test that malicious intent URLs cannot launch privileged system components → Dangerous actions trigger user permission prompts or are blocked 4. Attempt intent URL with dangerous actions (SEND_SMS, CALL, etc.) and verify blocking or permission prompts → Intent extras are sanitized to prevent injection attacks 5. Test intent URLs with arbitrary extras and verify sanitization → Intent URLs cannot bypass app permission model 6. Verify that intent URLs cannot bypass app permissions → Package name validation prevents targeting of unintended apps 7. Test that browser validates package names in intent URLs → Data exfiltration via intent URLs is prevented 8. Attempt to use intent URLs to exfiltrate data and verify prevention → Iframe intent URLs have restricted capabilities 9. Test that intent URLs from iframes have additional restrictions → Intent invocations are logged with target package and action 10. Verify that intent URL invocation is logged for security auditing → User confirmation required for sensitive intent actions **Pass Criteria**: Intent URLs validated before launch AND privileged actions blocked AND extras sanitized AND user confirmation for sensitive actions AND invocations logged **Fail Criteria**: Intent URLs launch without validation OR privileged actions allowed OR no sanitization OR no confirmation for sensitive actions OR not logged **Evidence**: Intent URL test results, privileged action blocking verification, extras sanitization tests, permission prompt screenshots, iframe restriction tests, security log entries, data exfiltration prevention tests **References**: - Android Intent Specification: https://developer.android.com/reference/android/content/Intent - Intent URL Scheme Security: https://tools.ietf.org/html/rfc8252#appendix-B.2 - Chrome Intent URLs: https://developer.chrome.com/docs/multidevice/android/intents/ - Android App Links: https://developer.android.com/training/app-links - OWASP Mobile Security: https://owasp.org/www-project-mobile-security-testing-guide/ - Intent Security Best Practices: https://developer.android.com/guide/components/intents-filters#SafeIntent ### Assessment: PRO-REQ-18 (Universal Links security - iOS) **Reference**: PRO-REQ-18 - Browser shall implement security controls for iOS Universal Links and prevent link hijacking **Given**: A conformant mobile browser with PRO-1 or higher capability running on iOS **Task**: iOS Universal Links enable seamless web-to-app transitions but create risks of link hijacking, phishing through malicious association files, and privacy violations through link interception tracking. Attackers can serve fraudulent apple-app-site-association files over compromised connections or use HTTP downgrade attacks to bypass domain validation. Strict validation of association files over HTTPS with certificate verification prevents unauthorized app launches and protects user privacy while maintaining legitimate app integration. **Verification**: 1. Set up a test website with an apple-app-site-association file for Universal Links → apple-app-site-association file is validated before Universal Link activation 2. Create a link to a URL that matches a Universal Link pattern → HTTPS required for both the association file and triggering URLs 3. Verify that the browser validates the apple-app-site-association file before allowing app opening → Certificate validation enforced when fetching association file 4. Test that HTTPS is required for Universal Links (HTTP domains should be rejected) → Domain validation prevents unauthorized app openings 5. Verify that the association file is fetched over HTTPS with certificate validation → Malformed or malicious association files are rejected 6. Test that only domains listed in the association file can trigger the app → User choice between app and browser is preserved 7. Attempt to use a malicious association file and verify rejection → User preferences for Universal Links persist 8. Test that users can choose to open in app or browser → No user tracking via Universal Link interception 9. Verify that Universal Link preferences persist across sessions → Association file caching follows secure practices 10. Test that Universal Links respect user privacy (no tracking via link interception) → Link preview shows correct destination before opening **Pass Criteria**: Association file validated over HTTPS AND certificate validation enforced AND user choice respected AND preferences persist **Fail Criteria**: No association file validation OR HTTP accepted OR certificate errors ignored OR no user choice OR preferences don't persist **Evidence**: Association file validation tests, HTTPS enforcement verification, certificate validation tests, malformed file rejection tests, user choice UI screenshots, preference persistence tests, privacy analysis **References**: - Apple Universal Links Documentation: https://developer.apple.com/ios/universal-links/ - Supporting Associated Domains: https://developer.apple.com/documentation/xcode/supporting-associated-domains - apple-app-site-association Format: https://developer.apple.com/documentation/bundleresources/applinks - Universal Links Security: https://developer.apple.com/videos/play/wwdc2019/717/ - Deep Linking Security: https://tools.ietf.org/html/rfc8252 - iOS Security Guide: https://support.apple.com/guide/security/welcome/web ### Assessment: PRO-REQ-19 (Deep linking validation) **Reference**: PRO-REQ-19 - Browser shall validate deep links before navigation to prevent deep link hijacking and phishing **Given**: A conformant browser with PRO-1 or higher capability **Task**: Deep links enable direct navigation to specific app content but create attack vectors for parameter injection, XSS payload delivery, privilege escalation, and phishing through misleading app names or domains. Unvalidated deep links can bypass app sandboxes, exfiltrate data through malicious parameters, or launch unverified apps without user awareness. Comprehensive deep link validation with parameter sanitization, domain verification, and user confirmation for unverified apps prevents these attacks while maintaining legitimate app deep linking functionality. **Verification**: 1. Create a deep link that targets a mobile app: myapp://user/profile?id=123 → Deep link format and structure validated before processing 2. Verify that the browser validates the deep link format before allowing navigation → Parameters in deep links are URL-encoded and sanitized 3. Test that parameters in deep links are sanitized to prevent injection → XSS payloads in deep links are neutralized 4. Attempt to use a deep link with XSS payload and verify sanitization → User confirmation required for unverified deep links 5. Test that deep links to unverified apps trigger user confirmation → Domain validation confirms app ownership of deep link domains 6. Verify that deep link domains are validated against app claims (App Links/Universal Links) → Deep links cannot escalate privileges or bypass sandbox 7. Test that deep links cannot bypass app sandbox or permissions → Phishing detection identifies misleading app names or domains 8. Attempt to use deep links for phishing (misleading app names) and verify warnings → HTTPS fallback works when target app not installed 9. Verify that HTTPS fallback URLs are used when app is not installed → Deep link invocations logged with destination and parameters 10. Test that deep link invocation is logged for security monitoring → Rate limiting prevents deep link abuse **Pass Criteria**: Deep link format validated AND parameters sanitized AND user confirmation for unverified links AND domain validation enforced AND invocations logged **Fail Criteria**: Invalid deep links accepted OR no parameter sanitization OR no confirmation for unverified links OR no domain validation OR not logged **Evidence**: Deep link validation tests, parameter sanitization examples, XSS prevention tests, user confirmation screenshots, domain validation verification, phishing detection tests, fallback URL tests, security logs **References**: - Android App Links Verification: https://developer.android.com/training/app-links/verify-site-associations - iOS Universal Links Validation: https://developer.apple.com/documentation/xcode/supporting-associated-domains - Deep Link Security: https://tools.ietf.org/html/rfc8252#section-7.11 - OWASP Mobile Deep Link Security: https://owasp.org/www-project-mobile-security-testing-guide/ - Deep Link Phishing Prevention: https://attack.mitre.org/techniques/T1660/ - URL Scheme Best Practices: https://www.rfc-editor.org/rfc/rfc8252#appendix-B ### Assessment: PRO-REQ-20 (Protocol handler CSP integration) **Reference**: PRO-REQ-20 - Browser shall integrate protocol handlers with Content Security Policy to prevent handler-based attacks **Given**: A conformant browser with PRO-1 or higher capability **Task**: Protocol handlers can be weaponized to bypass Content Security Policy restrictions if not properly integrated with CSP directives, allowing attackers to navigate to restricted destinations, execute blocked scripts, or submit forms to prohibited targets through custom protocol invocations. Without CSP integration, handlers create a side channel that circumvents navigate-to, form-action, and script-src protections. Enforcing CSP directives on protocol handler operations ensures handlers cannot be used to violate the page's security policy. **Verification**: 1. Create a page with a strict CSP that includes navigate-to directive → navigate-to CSP directive restricts protocol handler destinations 2. Register a protocol handler from this page → CSP violations during handler operations are properly reported 3. Verify that protocol handler invocation respects the navigate-to CSP directive → Handler URL templates that violate CSP are rejected 4. Test that CSP violations during handler registration are reported → script-src controls JavaScript that registers handlers 5. Create a handler URL template that would violate CSP and verify blocking → form-action applies to forms with custom protocol actions 6. Test that the script-src directive affects protocol handler registration scripts → connect-src applies to handler page, not registration 7. Verify that form-action CSP directive applies to forms targeting custom protocols → Handler pages inherit appropriate CSP from their origin 8. Test that connect-src doesn't restrict protocol handler registration but affects handler page → CSP violation reports include handler-specific context 9. Verify that CSP inheritance works correctly for handler pages → Unsafe-inline and unsafe-eval restrictions apply to handlers 10. Test that CSP reports include protocol handler context when violations occur → CSP nonces and hashes work with handler registration **Pass Criteria**: navigate-to restricts handler destinations AND violations reported AND handler URLs validated against CSP AND form-action enforced **Fail Criteria**: CSP not enforced for handlers OR violations not reported OR handler URLs bypass CSP OR form-action ignored **Evidence**: CSP policy examples with handlers, navigate-to enforcement tests, violation reports with handler context, handler URL validation tests, form-action tests, CSP inheritance verification **References**: - Content Security Policy Level 3: https://www.w3.org/TR/CSP3/ - CSP navigate-to Directive: https://www.w3.org/TR/CSP3/#directive-navigate-to - CSP form-action Directive: https://www.w3.org/TR/CSP3/#directive-form-action - CSP Violation Reporting: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#violation_reports - CSP Integration: https://w3c.github.io/webappsec-csp/ - Protocol Handler CSP Considerations: https://www.chromium.org/Home/chromium-security/ ### Assessment: PRO-REQ-21 (Handler registration audit trail) **Reference**: PRO-REQ-21 - Browser shall maintain a complete audit trail of protocol handler registration and modification events **Given**: A conformant browser with PRO-2 or higher capability (enterprise mode) **Task**: Protocol handler registration and modification events create security-critical audit trails essential for detecting handler-based attacks, insider threats, and policy violations in enterprise environments. Without comprehensive auditing, attackers can register malicious handlers, modify existing handlers, or abuse handler permissions without detection, leaving no forensic evidence for incident response. Tamper-evident audit trails with complete lifecycle tracking enable security teams to detect, investigate, and respond to handler abuse while meeting compliance requirements. **Verification**: 1. Enable enterprise audit logging for protocol handlers → Complete audit trail for all handler lifecycle events 2. Register a protocol handler and verify the registration is logged → Audit entries include: timestamp, identity, action, object, before/after state, outcome 3. Check that audit log includes: timestamp, origin, scheme, handler URL, user/admin identity → Failed operations logged with error details 4. Modify handler permissions and verify the change is audited → Permission changes audited with user decision 5. Unregister a handler and verify the removal is audited → Enterprise policy enforcement events included 6. Test that failed registration attempts are logged with error reasons → Audit logs are tamper-evident (signed or chained hashes) 7. Verify that permission grants/denials for handlers are audited → Logs exportable in standard formats (JSON, CEF, syslog) 8. Test that enterprise policy changes affecting handlers are logged → SIEM integration supported for centralized logging 9. Export the audit trail and verify it's in a tamper-evident format → Audit trail completeness can be verified 10. Verify that audit logs can be forwarded to enterprise SIEM systems → Log retention aligns with compliance requirements **Pass Criteria**: All handler events audited with complete metadata AND failed attempts included AND logs tamper-evident AND SIEM integration supported **Fail Criteria**: Incomplete audit trail OR missing metadata OR logs can be tampered OR no SIEM integration **Evidence**: Audit log exports, log completeness analysis, tamper-evidence verification, SIEM integration examples, failed operation logs, enterprise policy audit examples, retention policy documentation **References**: - NIST SP 800-53 Audit and Accountability: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final - ISO 27001 Audit Trail Requirements: https://www.iso.org/standard/27001 - Common Event Format (CEF): https://www.microfocus.com/documentation/arcsight/arcsight-smartconnectors-8.3/cef-implementation-standard/ - Syslog Protocol RFC 5424: https://www.rfc-editor.org/rfc/rfc5424 - CIS Audit Log Management: https://www.cisecurity.org/controls/ ### Assessment: PRO-REQ-22 (Protocol handler update security) **Reference**: PRO-REQ-22 - Browser shall securely handle updates to protocol handler registrations and prevent malicious modifications **Given**: A conformant browser with PRO-1 or higher capability **Task**: Protocol handler updates create opportunities for malicious modification attacks where attackers hijack existing trusted handlers by changing their URL templates to point to attacker-controlled destinations, dangerous URL schemes, or downgraded HTTP endpoints. Cross-origin handler updates could allow one domain to subvert another's handlers, while unvalidated PWA manifest updates could silently redirect protocol traffic. Secure update mechanisms with same-origin enforcement, dangerous scheme blocking, and downgrade protection prevent handler hijacking while maintaining legitimate update functionality. **Verification**: 1. Register a protocol handler from https://trusted.example.com → Handler updates require same-origin or user permission 2. Attempt to update the handler URL template from the same origin → Cross-origin handler modification is prevented 3. Verify that the update requires user confirmation or follows original permissions → Active handler updates trigger user notification 4. Attempt to update the handler from a different origin (https://attacker.example.com) → PWA manifest handler updates follow secure update process 5. Verify that cross-origin updates are prevented → Handler URL changes are audited with before/after values 6. Test that handler updates during active use trigger security warnings → Updates to dangerous URL schemes (data:, javascript:) are blocked 7. Verify that automatic handler updates (e.g., PWA manifest updates) are validated → HTTPS-to-HTTP downgrades in handler URLs are prevented 8. Test that handler URL changes are logged in audit trail → Update frequency is rate-limited to prevent abuse 9. Attempt to update handler to point to data: or javascript: URLs and verify blocking → Failed update attempts are logged 10. Verify that downgrade protection applies to handler updates → Users can review and approve pending handler updates **Pass Criteria**: Same-origin update restriction enforced AND cross-origin updates prevented AND dangerous schemes blocked AND updates audited **Fail Criteria**: Cross-origin updates allowed OR dangerous schemes accepted OR no audit trail OR downgrade attacks possible **Evidence**: Update test results showing same-origin enforcement, cross-origin prevention tests, dangerous scheme blocking verification, audit log entries for updates, downgrade prevention tests, PWA manifest update security verification **References**: - WHATWG HTML Handler Updates: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers - Web App Manifest Updates: https://www.w3.org/TR/appmanifest/#updating - Secure Software Updates: https://www.rfc-editor.org/rfc/rfc8240 - OWASP Secure Update Guidelines: https://cheatsheetseries.owasp.org/cheatsheets/Vulnerable_Dependency_Management_Cheat_Sheet.html - Same-Origin Policy for Updates: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy ### Assessment: PRO-REQ-23 (Handler isolation enforcement) **Reference**: PRO-REQ-23 - Browser shall enforce process isolation for protocol handlers to limit impact of handler compromise **Given**: A conformant browser with PRO-2 or higher capability **Task**: Protocol handlers execute in the browser context with potential access to sensitive user data and system resources, making them high-value targets for exploitation. Without process isolation, a compromised handler could access data from other origins, bypass sandbox restrictions, read cross-process memory through Spectre-type attacks, or crash the entire browser. Handler isolation through Site Isolation architecture with sandboxing, IPC validation, and Spectre mitigations contains the impact of handler compromise and prevents privilege escalation attacks. **Verification**: 1. Register and invoke a protocol handler → Protocol handlers run in isolated renderer processes 2. Use browser internals (process inspection interface) to verify handler process isolation → Handler isolation follows Site Isolation architecture 3. Verify that handler pages run in separate renderer processes from the triggering page → Cross-origin data is not accessible from handler process 4. Test that compromised handler cannot access other origin's data → Handler processes are sandboxed with restricted capabilities 5. Verify that Site Isolation applies to protocol handler pages → IPC messages from handlers are validated and sanitized 6. Test that handler processes have appropriate sandbox restrictions → Handler crashes are isolated and don't affect browser stability 7. Verify that IPC between handler and browser process is validated → No elevated privileges granted to handler processes 8. Test that handler crash doesn't affect other tabs or browser stability → Memory isolation prevents cross-process memory access 9. Verify that handler processes don't have elevated privileges → Spectre/Meltdown mitigations apply to handler processes 10. Test that memory isolation prevents handler from reading other process memory → Process limit enforced to prevent resource exhaustion **Pass Criteria**: Handler process isolation enforced AND Site Isolation applied AND sandboxing active AND IPC validated AND crashes isolated **Fail Criteria**: Handlers in same process as other content OR no sandboxing OR IPC not validated OR crashes affect browser OR cross-process memory access possible **Evidence**: Process isolation verification using browser internals, Site Isolation tests, sandbox capability analysis, IPC validation tests, crash isolation tests, memory isolation verification, Spectre mitigation confirmation **References**: - Chromium Site Isolation: https://www.chromium.org/Home/chromium-security/site-isolation/ - Browser Process Architecture: https://www.chromium.org/developers/design-documents/multi-process-architecture/ - Sandbox Architecture: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md - IPC Security: https://www.chromium.org/developers/design-documents/inter-process-communication/ - Spectre Mitigations: https://www.chromium.org/Home/chromium-security/ssca/ - Process Isolation Best Practices: https://www.w3.org/TR/security-privacy-questionnaire/#isolation ### Assessment: PRO-REQ-24 (HTTP/HTTPS-only protocol restriction) **Reference**: PRO-0-REQ-1 - Browser shall only support HTTP and HTTPS protocols **Given**: A conformant browser with PRO-0 capability (HTTP/HTTPS only) **Task**: Verify that the browser restricts all network communication to HTTP and HTTPS protocols exclusively, eliminating the attack surface introduced by custom protocol handlers, WebSocket, WebRTC, and other non-standard schemes, ensuring maximum security in environments where custom protocols are not needed and could be exploited to bypass security controls, exfiltrate data, or trigger local application vulnerabilities. **Verification**: 1. Attempt to navigate to URLs with non-HTTP/HTTPS schemes: → Test that WebSocket connections are blocked (ws:// and wss://) - file:// URLs - data:// URLs - javascript:// URLs - ftp:// URLs - ws:// and wss:// URLs - Custom schemes (mailto:, tel:, etc.) 2. Verify that all non-HTTP/HTTPS navigation attempts are blocked → Verify that WebRTC connections cannot be established 3. Test that blocked navigation displays clear error message → Test that FTP protocol is not supported 4. Verify that error message does not suggest workarounds → Verify that data: URIs are blocked or heavily restricted 5. Test that links with custom protocols do not activate handlers → Test that no custom protocol registration UI exists 6. Verify that registerProtocolHandler() API is not available → Verify that browser help documentation indicates protocol restrictions **Pass Criteria**: Only HTTP and HTTPS protocols functional AND all other protocols blocked AND clear error messages AND no workarounds available AND no protocol registration API **Fail Criteria**: Non-HTTP/HTTPS protocols accessible OR unclear error messages OR workarounds exist OR protocol registration possible **Evidence**: Navigation test results for various protocol schemes, error message screenshots, API availability verification, WebSocket/WebRTC connection attempts, protocol registration UI absence **References**: - URL Standard: https://url.spec.whatwg.org/ - Attack Surface Reduction: https://www.microsoft.com/en-us/security/blog/topic/attack-surface-reduction/ ### Assessment: PRO-REQ-25 (Custom protocol handler registration rejection) **Reference**: PRO-0-REQ-2 - Browser shall reject all custom protocol handler registration attempts **Given**: A conformant browser with PRO-0 capability (HTTP/HTTPS only) **Task**: Verify that the browser rejects all attempts to register custom protocol handlers through any mechanism, preventing web applications from registering handlers that could be exploited for phishing, command injection, or local application attacks, ensuring that protocol handling remains limited to built-in HTTP/HTTPS with no extensibility for custom schemes. **Verification**: 1. Attempt to register custom protocol handler via registerProtocolHandler() API → Test that browser extensions cannot register protocol handlers 2. Verify that API call is rejected or API is undefined → Verify that enterprise policies cannot enable protocol registration 3. Test registration attempts for various schemes: → Test that command-line flags cannot bypass restriction - web+custom schemes - mailto: handler override - Custom application protocols 4. Verify that all registration attempts fail → Verify that error messages clearly indicate feature is disabled 5. Test that no protocol handler registration UI is available in settings → Test that web applications cannot detect registered handlers 6. Verify that manifest-based handler registration is not supported → Verify that no protocol handler storage or persistence exists **Pass Criteria**: All protocol handler registration attempts rejected AND no registration API available AND no UI for registration AND extensions cannot register handlers AND no bypass mechanisms **Fail Criteria**: Registration succeeds through any mechanism OR registration API accessible OR UI available OR extensions can register OR bypass possible **Evidence**: API call rejection logs, registration attempt test results, settings UI verification, extension capability testing, policy override attempts, error messages **References**: - registerProtocolHandler API: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler - Security by Reduction: https://csrc.nist.gov/glossary/term/least_functionality ### Assessment: PRO-REQ-26 (Non-standard URL scheme blocking) **Reference**: PRO-0-REQ-3 - Browser shall block access to non-standard URL schemes (file://, data://, javascript://, etc.) **Given**: A conformant browser with PRO-0 capability (HTTP/HTTPS only) **Task**: Verify that the browser blocks access to non-standard URL schemes that could be exploited for cross-site scripting (javascript:), local file disclosure (file://), or content injection (data:), restricting URL navigation and resource loading exclusively to HTTP and HTTPS to eliminate common attack vectors that abuse non-standard schemes to bypass same-origin policy or execute malicious code. **Verification**: 1. Test blocking of javascript: URLs: → Test that custom app schemes (mailto:, tel:, sms:) are blocked - In address bar navigation - In links () - In iframe src attributes - In form action attributes 2. Verify that data: URLs are blocked: → Verify that blocked schemes return consistent error messages - In navigation - In iframe src - In image src - In script src 3. Test that file: URLs are blocked: → Test that scheme blocking applies to all contexts (main frame, iframes, workers) - In navigation - In resource loading (images, scripts, styles) - In iframe src 4. Verify that blob: URLs are blocked or restricted → Verify that CSP cannot override scheme blocking 5. Test that about: URLs are limited to safe pages only → Test that redirects to non-standard schemes are blocked 6. Verify that view-source: scheme is blocked → Verify that meta refresh to non-standard schemes is blocked **Pass Criteria**: All non-standard schemes blocked consistently AND blocking applies in all contexts AND clear error messages AND CSP cannot override AND redirects blocked **Fail Criteria**: Non-standard schemes accessible in any context OR inconsistent blocking OR CSP overrides OR redirects succeed **Evidence**: Scheme blocking test results for various contexts, error message examples, CSP interaction tests, redirect blocking verification, meta refresh handling **References**: - URL Standard Schemes: https://url.spec.whatwg.org/#special-scheme - XSS via javascript: URLs: https://owasp.org/www-community/attacks/xss/ - data: URI Security: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs#security ### Assessment: PRO-REQ-27 (Protocol handler API removal) **Reference**: PRO-0-REQ-4 - Browser shall not provide registerProtocolHandler() API or equivalent functionality **Given**: A conformant browser with PRO-0 capability (HTTP/HTTPS only) **Task**: Verify that the browser completely removes or disables the registerProtocolHandler() API and any equivalent protocol registration mechanisms, ensuring that web applications cannot even detect or attempt to use custom protocol handler functionality, providing defense in depth by eliminating the API surface rather than merely blocking its effects. **Verification**: 1. Test that navigator.registerProtocolHandler is undefined or throws error → Test that Content-Security-Policy cannot enable the API 2. Verify that attempting to call the API produces clear error → Verify that browser feature detection shows API as unavailable 3. Test that navigator.isProtocolHandlerRegistered() is also unavailable → Test that JavaScript cannot detect if API was previously available 4. Verify that navigator.unregisterProtocolHandler() is unavailable → Verify that web platform tests for protocol handlers are skipped 5. Test that Feature Policy cannot re-enable protocol handler API → Test that browser documentation indicates API is not supported 6. Verify that no polyfills or fallback mechanisms exist → Verify that removal is consistent across all browsing contexts (windows, workers, iframes) **Pass Criteria**: registerProtocolHandler API completely unavailable AND related APIs also removed AND no detection possible AND consistent across contexts AND documentation indicates unavailability **Fail Criteria**: API is accessible OR can be enabled through policies OR detection possible OR inconsistent availability OR undocumented removal **Evidence**: API availability tests in various contexts, feature detection results, policy configuration attempts, browser documentation excerpts, error messages when attempting API access **References**: - registerProtocolHandler Specification: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers - Feature Policy: https://w3c.github.io/webappsec-feature-policy/ ### Assessment: PRO-REQ-28 (Non-HTTP/HTTPS navigation rejection) **Reference**: PRO-0-REQ-5 - Browser shall reject navigation to any non-HTTP/HTTPS protocols **Given**: A conformant browser with PRO-0 capability (HTTP/HTTPS only) **Task**: Verify that all navigation attempts to non-HTTP/HTTPS protocols are rejected regardless of how navigation is initiated, ensuring comprehensive protocol restriction that cannot be bypassed through various navigation mechanisms like user clicks, script navigation, form submission, or meta refresh, protecting against protocol-based attacks from any entry point. **Verification**: 1. Test navigation rejection through various mechanisms: → Test that navigation history does not include blocked attempts - Direct address bar input - Link clicks ( elements) - window.location assignments - window.open() calls - Form submissions - Meta refresh tags - HTTP redirects (3xx responses) - JavaScript location.href changes 2. Test rejection for various non-HTTP/HTTPS schemes: → Verify that referrer is not sent for blocked navigation - Custom protocols (myapp://) - File system access (file://) - Data URIs (data://) - JavaScript (javascript://) - WebSocket (ws://, wss://) - FTP (ftp://) 3. Verify that all navigation attempts are blocked before any handler invocation → Test that beforeunload event does not fire for blocked navigation 4. Test that blocked navigation shows user-friendly error page → Verify that page lifecycle continues normally after blocked navigation 5. Verify that error page does not expose protocol handler information → Test that HTTPS upgrade (HTTP -> HTTPS) still functions **Pass Criteria**: All non-HTTP/HTTPS navigation blocked AND blocking occurs before handler invocation AND user-friendly errors AND history not polluted AND works across all navigation mechanisms **Fail Criteria**: Navigation succeeds through any mechanism OR handlers invoked before blocking OR confusing errors OR history includes blocked attempts **Evidence**: Navigation blocking tests for all mechanisms and schemes, error page screenshots, history inspection, lifecycle event verification, logging samples **References**: - Navigation and Browsing Contexts: https://html.spec.whatwg.org/multipage/browsing-the-web.html - Secure Navigation: https://w3c.github.io/webappsec-secure-contexts/ ### Assessment: PRO-REQ-29 (Enterprise protocol handler policy controls) **Reference**: PRO-2-REQ-12 - Enterprise administrators shall be able to configure protocol handler allowlists and blocklists **Given**: A conformant browser with PRO-2 capability in enterprise environment **Task**: Verify that enterprise administrators can configure protocol handler allowlists and blocklists through group policy or MDM to control which custom protocols are permitted in their organization, enabling organizations to approve specific business-critical protocol handlers (like internal application launchers) while blocking potentially dangerous handlers, supporting compliance and security requirements through centralized policy management. **Verification**: 1. Access enterprise policy management interface → Test that user cannot override enterprise protocol policies 2. Identify protocol handler allowlist/blocklist policies → Verify that allowlist takes precedence when both are configured 3. Configure policy to allow specific protocol schemes (e.g., web+customapp) → Test that wildcard patterns work in policies (e.g., web+myorg*) 4. Configure policy to block specific schemes (e.g., web+dangerous) → Verify that policy applies to all browser profiles on managed device 5. Deploy policy to managed browser → Test that policy changes propagate immediately or on restart 6. Test that allowed protocols can be registered and used → Verify that policy status is visible in browser management UI 7. Verify that blocked protocols cannot be registered → Test that attempting blocked protocol shows enterprise policy message **Pass Criteria**: Allowlist and blocklist policies available AND policies enforced correctly AND user cannot override AND wildcard support AND policy status visible AND enforcement logged **Fail Criteria**: No policy controls OR policies not enforced OR user override possible OR no wildcard support OR no visibility OR no logging **Evidence**: Policy configuration screenshots, enforcement test results with allowed and blocked protocols, user override attempts, wildcard pattern tests, policy status UI, audit logs **References**: - Enterprise Browser Management: https://chromeenterprise.google/policies/ - Group Policy Configuration: https://docs.microsoft.com/en-us/deployedge/configure-microsoft-edge - Mobile Device Management: https://developer.apple.com/documentation/devicemanagement ### Assessment: PRO-REQ-30 (Custom scheme registration without web+ prefix) **Reference**: PRO-3-REQ-7 - Browser shall allow registration of custom schemes without web+ prefix **Given**: A conformant browser with PRO-3 capability (unrestricted protocol registration) **Task**: Verify that the browser allows registration of custom protocol schemes without requiring the web+ prefix, providing maximum flexibility for legacy applications and custom integrations that use established protocol schemes, while acknowledging increased security risk from schemes that don't follow web+ convention and may conflict with future browser features or OS-level protocol handlers. **Verification**: 1. Attempt to register custom protocol without web+ prefix (e.g., "myapp") → Test that schemes conflicting with browser internals are rejected 2. Verify that registration succeeds without requiring web+ prefix → Verify that schemes matching standard protocols (http, ftp) are rejected 3. Test that registered handler functions correctly when invoked → Test that OS-level protocol conflicts are detected and warned about 4. Verify that schemes without web+ prefix are marked with security warning → Verify that documentation explains risks of non-web+ schemes 5. Test registration of common non-web+ schemes: → Test that handler management UI shows prefix status - Application launchers (myapp://) - Internal tools (tool://) - Legacy protocols (custom://) 6. Verify that registration still requires user consent → Verify that non-web+ handlers appear in security audits **Pass Criteria**: Custom schemes without web+ can be registered AND security warnings shown AND conflicts detected AND user consent still required AND risks documented **Fail Criteria**: Non-web+ registration fails OR no security warnings OR conflicts not detected OR no consent required OR undocumented risks **Evidence**: Registration success examples for non-web+ schemes, security warning screenshots, conflict detection tests, user consent dialogs, documentation excerpts, audit trail entries **References**: - Custom Scheme and Content Handlers: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers - Protocol Handler Security: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#security ### Assessment: PRO-REQ-31 (Non-standard protocol handler security warnings) **Reference**: PRO-3-REQ-8 - Browser shall display security warnings for non-standard protocol handlers **Given**: A conformant browser with PRO-3 capability with custom protocol handlers **Task**: Verify that the browser displays clear security warnings when non-standard protocol handlers are registered or invoked, informing users about potential risks of custom handlers including command injection, local application exploitation, or data exfiltration, enabling informed decisions about accepting handlers in unrestricted environments where security is balanced against compatibility. **Verification**: 1. Register a non-standard protocol handler (not following web+ convention) 2. Verify that security warning is displayed during registration: - Clear explanation of handler risks - Warning about non-standard scheme - Potential security implications - Recommendation to verify handler source 3. Test that warning requires explicit user acknowledgment 4. Verify that invoking non-standard handler shows warning: - Banner or notification when handler activates - Indication of which handler is being called - Option to cancel handler invocation 5. Test warnings for various risk levels: - High risk: local application launchers - Medium risk: web+ schemes to unknown origins - Low risk: handlers from trusted origins 6. Verify that warnings distinguish between: - First-time handler invocation (full warning) - Subsequent invocations (brief reminder) 7. Test that warning cannot be permanently dismissed for high-risk handlers 8. Verify that warning includes handler details (origin, scheme, target URL) 9. Test that warning links to security documentation 10. Verify that security dashboard shows active non-standard handlers **Pass Criteria**: Security warnings displayed at registration and invocation AND warnings explain risks clearly AND explicit acknowledgment required AND warnings vary by risk level AND handler details provided **Fail Criteria**: No warnings shown OR unclear risk explanation OR no acknowledgment required OR static warnings regardless of risk OR missing handler details **Evidence**: Warning screenshots at registration and invocation, risk level differentiation examples, acknowledgment requirements, security dashboard views, documentation links **References**: - Security Warning Design: https://www.usenix.org/conference/soups2016/technical-sessions/presentation/felt - Protocol Handler Risks: https://textslashplain.com/2019/08/28/browser-architecture-web-platform-security/ ### Assessment: PRO-REQ-32 (Protocol handler review interface) **Reference**: PRO-3-REQ-10 - Users shall be able to review all registered protocol handlers in browser settings **Given**: A conformant browser with PRO-3 capability with protocol handlers registered **Task**: Verify that users can review all registered protocol handlers through accessible browser settings interface, providing transparency about which applications or sites can intercept custom protocols, enabling users to audit handler registrations, understand what each handler does, and identify potentially malicious or unwanted handlers for removal. **Verification**: 1. Register multiple protocol handlers for different schemes → Test that list can be filtered or searched 2. Access browser settings to find protocol handler management → Verify that clicking handler shows detailed information: - Full handler URL template - Registering origin - Number of invocations - Security warnings if applicable 3. Verify that handler list is easily accessible: → Test that handlers can be removed from this interface - Located in Privacy, Security, or Site Settings - Clear menu label ("Protocol Handlers" or "Custom Protocols") - Accessible within 2-3 clicks 4. Test that handler list shows complete information: → Verify that handler changes (add/remove) update list immediately - Protocol scheme (e.g., web+myapp) - Handler URL/origin - Registration date - Last invocation date - Handler status (active, disabled) 5. Verify that list includes all registered handlers: → Test that export/backup of handler list is available - Web+ prefixed schemes - Non-web+ custom schemes - Built-in handler overrides (mailto, etc.) **Pass Criteria**: Handler list easily accessible AND shows complete information AND includes all handlers AND can be filtered AND detailed view available AND removal possible AND changes immediate **Fail Criteria**: List hard to find OR incomplete information OR missing handlers OR no filtering OR no details OR cannot remove OR delayed updates **Evidence**: Handler list UI screenshots showing various handlers, detailed view examples, filter/search functionality, removal workflow, export capability, help documentation **References**: - User Control and Transparency: https://www.w3.org/TR/design-principles/#user-control - Browser Settings Best Practices: https://www.w3.org/TR/security-privacy-questionnaire/#user-interface ### Assessment: PRO-REQ-33 (Custom handler vulnerability scanning) **Reference**: PRO-3-REQ-11 - Browser shall scan custom handlers for known security vulnerabilities **Given**: A conformant browser with PRO-3 capability with custom protocol handlers **Task**: Verify that the browser scans custom protocol handlers for known security vulnerabilities and suspicious patterns before registration and periodically during use, detecting handlers that could be exploited for command injection, path traversal, or other attacks, providing automated security analysis to protect users who may not recognize malicious handler patterns in unrestricted registration environments. **Verification**: 1. Attempt to register protocol handlers with known vulnerable patterns: → Test periodic rescanning of registered handlers: - Command injection patterns (e.g., URL with shell metacharacters) - Path traversal attempts (../ sequences) - SQL injection patterns - Script injection patterns (