Subject: [dtn] CRCs: optional?

From: "Burleigh, Scott C (US 312B)" <[email-masked]>
Date: Fri, 2 Aug 2019 05:19:00 +0000

A closely related point: how optional are CRCs?

Historically I think the argument against CRCs in BP has been:

  *   Virtually all convergence-layer protocols we contemplate will provide CRCs or checksums, so CRCs at the bundle layer would be redundant.
  *   Of course, this only protects the data while in transit via those convergence-layer protocols.  Untold mischief might ensue while bundles are at rest awaiting outbound links.
  *   But we can use Block Integrity Blocks, end-to-end, to defend against not only accidental bit flips but also intentional malicious corruption.

In some networks, however, malicious corruption is unlikely and BIBs are overkill, yet accidental corruption is still possible; here, end-to-end CRCs are the remedy.

Since CRCs are computed individually on blocks, making all CRCs mandatory would result in a lot of CRCs; I think this overhead would be fine in some networks but not all.

I would say the main requirement is to ensure that the primary block is not modified at any time, so I would propose that every bundle's primary block MUST have a CRC *unless* the source node has inserted a BIB covering the primary block, in which case the CRC on the primary block is optional.

Next in importance is the payload block.  I would propose that every bundle's payload block SHOULD have a CRC *unless* the source node has inserted a BIB or a BCB covering the payload block, in which case the CRC on the primary block is optional.

And I would propose that CRCs on all other blocks are always optional.

One further note: to protect the integrity of an entire bundle it is always possible to encapsulate it in another bundle (using BIBE) and attach a CRC or BIB or BCB to the payload of the encapsulating bundle.

Comments?

Scott

From: dtn <[email-masked]> On Behalf Of Burleigh, Scott C (US 312B)
Sent: Monday, July 29, 2019 9:23 PM
To: DTN WG <[email-masked]>
Subject: Re: [dtn] [EXTERNAL] bpbis: BPSEC MUST or SHOULD

Another point on which I don't have a strong opinion, but my vote would be for SHOULD implement.  In real operation I think bpsec (at least a BIB on the primary block) would be mandatory in practice, but some closed environments bpsec might be unnecessary; when this is the case, requiring an implementation seems excessive.

Scott

From: dtn <[email-masked]<mailto:[email-masked]>> On Behalf Of Marc Blanchet
Sent: Friday, July 26, 2019 9:52 AM
To: DTN WG <[email-masked]<mailto:[email-masked]>>
Subject: [EXTERNAL] [dtn] bpbis: BPSEC MUST or SHOULD

Hello,
from our AD review of BPBis, there was a question on whether make BPSEC a MUST or SHOULD implement: i.e. a conformant BPbis implementation MAY/SHOULD/MUST also implement BPsec. The concensus in the room was for a SHOULD. This email is to confirm the concensus. Please state your position by replying to the list. If you agree with SHOULD, please also reply so that chairs can see the support of each options.

=====
in BPbis, BPSEC MAY/SHOULD/MUST be implemented? (expected answer: MAY, SHOULD or MUST)

Rationale for your answer?

Regards, Marc, co-chair