Embargo Management and the iCalendar Protocol
This page is not normative
This page is not considered a core part of the Vultron Protocol as proposed in the main documentation. Although within the page we might provide guidance in terms of SHOULD, MUST, etc., the content here is not normative.
We are including this page because the ideas outlined here were instrumental to the development of the more general Embargo Management process in the main protocol and may remain of use in future implementations.
The embargo negotiation process—in terms of the proposal, acceptance, rejection, etc.—is strikingly
parallel to the process of scheduling a meeting in a calendaring system.
To that end, we note the potential application of the iCalendar
protocol specified in RFC 5545 to the
EM process with the semantics described in this section.
While we anticipate that future CVD APIs could adopt an iCalendar
-compatible syntax like jCal
(RFC 7265), for
this conceptual mapping, we use the basic iCalendar
syntax from RFC 5545.
A CVD Case might have an associated iCalendar
object.
Embargo schedules can be represented as a single VEVENT
object.
A mapping of EM concepts to iCalendar
field mappings is provided in the table below.
Embargo Concept | iCalendar Mapping | EM Msg Type |
---|---|---|
Embargo object | VEVENT |
- |
Embargo ID | SUMMARY:<case id> embargo expiration |
- |
Embargo End Time and Date | DSTART = DTEND (0 duration event) |
- |
Proposer | ORGANIZER |
- |
Participant (proposed) | ATTENDEE; ROLE=OPT-PARTICIPANT; PARTSTAT=NEEDS-ACTION |
EP, EV |
Participant (acknowledge without acceptance) | ATTENDEE; ROLE=OPT-PARTICIPANT; PARTSTAT=TENTATIVE |
EK |
Participant (accept) | ATTENDEE; ROLE=OPT-PARTICIPANT; PARTSTAT=ACCEPTED |
EA, EC |
Participant (reject) | ATTENDEE; ROLE=OPT-PARTICIPANT; PARTSTAT=DECLINED |
ER, EJ |
Details (link to case trackers, etc.) | DESCRIPTION |
- |
Embargo Status \(q^{em} \in P\) | STATUS:TENTATIVE |
EP |
Embargo Status \(q^{em} \in A\) | STATUS:CONFIRMED |
EA, EC |
Embargo Status \(q^{em} \in X\) due to early termination | STATUS:CANCELLED |
ET |
Embargo Status \(q^{em} \in N\) due to lack of acceptance quorum | STATUS:CANCELLED |
ER |
Other | CATEGORIES:EMBARGO RSVP: TRUE |
- |
Reflecting the non-binding nature of embargoes, each ATTENDEE
SHOULD be marked as ROLE=OPT-PARTICIPANT
in the invitation.
Vulnerability details MUST NOT appear in the iCalendar data.
A case or vulnerability identifier SHOULD appear in the VEVENT
SUMMARY
along with the words "embargo expiration."
Case or vulnerability identifiers SHOULD NOT carry any information that reveals potentially sensitive details about the vulnerability.
An embargo proposal SHALL set RSVP:True
for all attendees.
A Participant response with ATTENDEE:partstat=TENTATIVE
serves as a
basic acknowledgment that the embargo proposal has been received, but it
does not represent agreement to the proposal.
The iCalendar
ATTENDEE:partstat=DELEGATED
value has no semantic equivalent in the EM process.
Proposing an Embargo
Following the model of inviting a group of attendees to a meeting, a proposed embargo can be achieved as follows:
-
An
ORGANIZER
sends an embargo invitation, represented by aVEVENT
withSTATUS:TENTATIVE
listing Participants asATTENDEE
s (\(q^{em} \in N \xrightarrow{p} P\)). -
Each
ATTENDEE
haspartstat=NEEDS-ACTION
set on the invitation, indicating that they have not yet accepted it. -
Individual
ATTENDEE
s acknowledge (partstat=TENTATIVE
), accept (partstat=ACCEPTED
), or decline (partstat=DECLINED
). Their response is sent to theORGANIZER
. -
If the
ORGANIZER
determines that there is a quorum of accepts, they mark theVEVENT
asSTATUS:CONFIRMED
(\(q^{em} \in P \xrightarrow{a} A\)). -
If the
ORGANIZER
determines that there is no sufficient quorum of accepts, they mark the newVEVENT
asSTATUS:CANCELLED
(\(q^{em} \in P \xrightarrow{r} N\)).
Embargo Counterproposals
Counterproposals can be achieved in two ways:
-
by declining an initial invitation and then proposing a new one (\(q^{em} \in P \xrightarrow{r} N \xrightarrow{p} P\))
-
by proposing a new embargo without declining the first one (\(q^{em} \in P \xrightarrow{p} P\))
Either way, this is analogous to requesting a proposed meeting to be shifted to a different time or date prior to accepting the original proposed meeting time. However, following the argument from Default Embargoes, we suggest that Participants start by (1) accepting the shortest proposed embargo and (2) proposing a revision to the new embargo instead, which we cover next.
Proposing a Change to an Existing Embargo
Assumption
This process assumes that an existing embargo is represented by a VEVENT
withSTATUS:CONFIRMED
.
Similar to rescheduling an existing meeting, a proposed change to an existing embargo can be achieved as follows.
-
A new proposal is made as a
VEVENT
withSTATUS:TENTATIVE
and the sameATTENDEE
list as the existing one (\(q^{em} \in A \xrightarrow{p} R\)). -
Each
ATTENDEE
on the new invitation haspartstat=NEEDS-ACTION
set, indicating that they have not yet accepted the new invitation. -
Individual
ATTENDEE
s acknowledge (partstat=TENTATIVE
), accept (partstat=ACCEPTED
), or decline (partstat=DECLINED
). Their response is sent to theORGANIZER
. -
If the
ORGANIZER
determines that there is a quorum of accepts (\(q^{em} \in R \xrightarrow{a} A\)), they-
mark the new
VEVENT
asSTATUS:CONFIRMED
-
mark the old
VEVENT
asSTATUS:CANCELLED
-
-
If the
ORGANIZER
determines that there is no sufficient quorum of accepts (\(q^{em} \in R \xrightarrow{r} A\)), they-
mark the new
VEVENT
asSTATUS:CANCELLED
-
retain the old
VEVENT
asSTATUS:CONFIRMED
-
Terminating an Existing Embargo
Terminating an existing embargo (\(q^{em} \in \{A,R\} \xrightarrow{t} X\)) can be triggered in one of two ways:
-
A normal exit occurs when the planned embargo end time has expired.
-
An abnormal exit occurs when some external event causes the embargo to fail, such as when the vulnerability or its exploit has been made public, attacks have been observed, etc., as outlined in Early Termination.
Translating this into iCalendar
semantics, we have the following,
which assumes an existing embargo is represented by a VEVENT
with
STATUS:CONFIRMED
.
-
Normal termination: The
VEVENT
retains itsSTATUS:CONFIRMED
and passes quietly from the future through the present into the past. -
Abnormal termination: The
ORGANIZER
sets theVEVENT
toSTATUS:CANCELLED
and sends it out to theATTENDEE
list.
The above is consistent with our premise in Early Termination: Embargo Termination (\(ET\)) messages are intended to have immediate effect.