From c0721fe6c91a6f21cadd3377ee9145df46b9d1fe Mon Sep 17 00:00:00 2001
From: Dave Longley
-Add text that warns that attackers can construct datasets which are known to
-take large amounts of compute time to canonize. The algorithm has a mechanism to detect
-and prevent this sort of abuse, but implementers need to ensure that they
-think holistically about their system such as what happens if they don't have
-rate limiting on a service exposed to the Internet and they are the subject of
-a DDoS. Default mechanisms that prevent excessive use of compute when an
-attacker sends a poisoned dataset might be different from system to system.
+ The canonicalization algorithm examines every difference in the
+ information connected to blank nodes in order to ensure that each will
+ properly receive its own canonical identifier. This process can be
+ exploited by attackers to construct datasets which are known to take
+ large amounts of compute time to canonize, but that do not express
+ useful information or express it using unnecessary complexity.
+ Implementers of the algorithm are expected to add mitigations that will,
+ by default, abort canonizing problematic inputs.
-Add text that warns implementers that, while the algorithm has a mathematical
-proof associated with it that has had peer review, and while a W3C WG
-has reviewed the algorithms and that there are multiple interoperable
-implementations, that a formal proof using a system such as Coq isn't available
-at this time. We are highly confident of the correctness of the algorithm,
-but we will not be able to say with 100% certainty that it is correct until
-we have a formal, machine-based verification of the proof. Any system that
-utilizes this canonicalization mechanism should have a backup canonicalization
-mechanism, such as JCS, or other mitigations, such as schema-based
-validation, ready in the event that an unrecoverable flaw is found in this algorithm.
+ Suggested mitigations include, but are not limited to:
+ Security Considerations
Dataset Poisoning
- Formal Verification Incomplete
-
-
+
+
Additionally, software that uses implementations of the algorithm can + employ best-practice schema validation to reject data that does not meet + application requirements, thereby preventing useless poison datasets from + being processed. However, such mitigations are application specific and + not directly applicable to implementers of the canonicalization algorithm + itself.
From 802b17695178f472191ba0f80b2a02b12871719b Mon Sep 17 00:00:00 2001 From: Dave LongleySuggested mitigations include, but are not limited to:
Additionally, software that uses implementations of the algorithm can
employ best-practice schema validation to reject data that does not meet
From fb5f0add57fdc3ac6712278897c6422f8ccf527c Mon Sep 17 00:00:00 2001
From: Dave Longley Suggested mitigations include, but are not limited to:
Dataset Poisoning
information connected to blank nodes in order to ensure that each will
properly receive its own canonical identifier. This process can be
exploited by attackers to construct datasets which are known to take
- large amounts of compute time to canonize, but that do not express
+ large amounts of computing time to canonize, but that do not express
useful information or express it using unnecessary complexity.
Implementers of the algorithm are expected to add mitigations that will,
by default, abort canonizing problematic inputs.
From 0eeada66505da5a1d654e552542dafb217860768 Mon Sep 17 00:00:00 2001
From: Dave Longley Dataset Poisoning
Additionally, software that uses implementations of the algorithm can
From 55c2aa48306812e4b204a6e766242d64d0394aed Mon Sep 17 00:00:00 2001
From: Dave Longley Dataset Poisoning
information connected to blank nodes in order to ensure that each will
properly receive its own canonical identifier. This process can be
exploited by attackers to construct datasets which are known to take
- large amounts of computing time to canonize, but that do not express
+ large amounts of computing time to canonicalize, but that do not express
useful information or express it using unnecessary complexity.
Implementers of the algorithm are expected to add mitigations that will,
- by default, abort canonizing problematic inputs.
+ by default, abort canonicalizing problematic inputs.
Suggested mitigations include, but are not limited to: