Misbehavior Reporting will be integrated with the ongoing "Misbehavior Authority Integration" sub project as SCMS POC release 2.0. Until then misbehavior reports will not be received and the previous misbehavior report format as described further down can and will change.
Goals
- Maintain the trust in the system
- Identify and remove bad actors
Background and Strategic Fit
EEs send misbehavior reports to the MA via the RA. The format of a misbehavior report is not defined yet but a report potentially includes reported BSMs as well as the reporter’s pseudonym certificate and the reporter’s signature. Reports may include random BSMs (casual report), suspicious BSMs, and alert-related BSMs. The report is encrypted by the EE for the MA. Note: The EEs’ misbehavior detection algorithms (also called local misbehavior detection) are not defined yet.
Design
The following steps are executed:
- Step 1: Reporting condition met
- Step 2: EE creates a misbehavior report and signs with a pseudonym certificate
- Step 3: EE encrypts report to the MA
- Step 4: EE submits it to the RA
- Step 4.1: The LOP removes any identifiers from the encrypted misbehavior report (e.g., MAC address and IP address) and forwards the encrypted report to RA
- Step 4.2: RA shuffles misbehavior reports and sends to MA individually. Shuffle threshold is 10,000 misbehavior reports or one day whichever is reached first. (Note: This shuffle threshold is for POC only, needs to be re-evaluated by SCMS manager for production)
- Step 5: Unsent misbehavior reports older than one week may be deleted by the EE if insufficient memory exists
ASN.1 Specification
ASN.1 interface specifications for misbehavior reports will be finalized with the to-be-awarded "Misbehavior Authority Integration" sub project. Until then the interface given is to be handled as draft.
-- (C) Copyright 2017, 2018 Crash Avoidance Metrics Partners LLC, VSC5 Consortium -- -- Licensed under the Apache License, Version 2.0 (the "License"); -- you may not use this file except in compliance with the License. -- You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- ------------------------------------------------------------------------------- -- EE-MA -- -- The structures in this file define the protocol for messages between an -- EE (OBE or RSE) and the MA for the purpose of reporting a misbehaving -- device. -- -- This file is part of the SCMS protocol developed by CAMP VSC5 -- It depends on the IEEE 1609.2 protocol specification ------------------------------------------------------------------------------- -- @namespace Ieee1609Dot2EndEntityMaInterface Ieee1609Dot2EndEntityMaInterface {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) scms(4) interfaces(1) ee-ma(7) major-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS Uint8, Time32 FROM IEEE1609dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2)} ImplicitCertificate, Ieee1609Dot2Data FROM IEEE1609dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) schema(1) major-version-2(2)} ; --- -- @brief The EndEntityMaInterfacePDU is the parent message type for messages sent between End -- Entities (EE) and the Misbehavior Authority (MA). -- @class EndEntityMaInterfacePDU -- @param misbehaviorReport contains the misbehavior report sent by an end entity to the MA. EndEntityMaInterfacePDU::= CHOICE { misbehaviorReport MisbehaviorReportContents, ... } --- -- @brief This data type contains the structure of a misbehavior report sent by an end entity to the MA. -- @class MisbehaviorReportContents -- @param version contains the current version of the data type. The version specified -- in this document is version 1, represented by the integer 1. -- @param generationTime contains the current time when the misbehavior report was created -- @param policyFilename contains the filename of the local policy file that the device was -- using at the time of reporting -- @reportType contains the report type of the local misbehavior detection method -- @evidentiaryData contains evidentiary data about the observed misbehavior -- @see Uint8, Time32, PolicyFilename, ReportType, Evidence MisbehaviorReportContents ::= SEQUENCE { version Uint8(1), generationTime Time32, policyFilename PolicyFilename, reportType ReportType, evidentiaryData SEQUENCE (SIZE(1..3)) OF Evidence, ... } PolicyFilename ::= UTF8String (SIZE(0..26)) ReportType ::= CHOICE { proximityPlausibility ProximityPlausibility, warningReport WarningReport, ... } Evidence ::= SEQUENCE { observedNeighborList SEQUENCE (SIZE(0..MAX)) OF SignedBSMsWithCertificate, reporterBSMs SEQUENCE (SIZE(1..10)) OF SignedBSM, suspectVehicleList SEQUENCE (SIZE(1..10)) OF SignedBSMsWithCertificate, ... } ProximityPlausibility ::= CHOICE { default NULL, ... } WarningReport ::= CHOICE { default NULL, ... } SignedBSMsWithCertificate ::= SEQUENCE { signedBSMList SEQUENCE (SIZE(1..MAX)) OF SignedBSM, signingCertificate ImplicitCertificate, ... } -- unsecuredData is UPER encoded BasicSafetyMessage as defined in J2735 SignedBSM ::= Ieee1609Dot2Data (WITH COMPONENTS { ..., content (WITH COMPONENTS { signedData (WITH COMPONENTS { ..., tbsData (WITH COMPONENTS { ..., payload (WITH COMPONENTS { data (WITH COMPONENTS { content (WITH COMPONENTS { unsecuredData }) }) }) }) }) }) }) SuspectVehicleList ::= SEQUENCE (SIZE(1..10)) OF SignedBSMsWithCertificate END