Page tree
Skip to end of metadata
Go to start of metadata
Target releaseRelease 1.1
Document owner

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.


  • 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.


Key Status Summary Description justification notes Component/s

Use Case 5 - Requirements


EE Misbehavior Reporting Process

 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.

 Expand source
master  SCMS/scms-asn
--  (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
--  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
{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)}



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)}

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 { 

SuspectVehicleList ::= SEQUENCE (SIZE(1..10)) OF SignedBSMsWithCertificate