Ich habe eine Weile damit verbracht, mir anzusehen, was eine Policy-Challenge innerhalb von @NewtonProtocol tatsächlich beweist.
Zunächst ging ich davon aus, dass der finale Ergebniswert vertrauenswürdig ist, wenn die Challenge die Berechnung bestätigt.
Diese Annahme ist unvollständig.
Eine Policy-Challenge kann überprüfen, ob ein Operator die bereitgestellte Regel korrekt ausgewertet hat. Sie beweist jedoch nicht automatisch, dass die externen Daten, die in diese Regel eingehen, korrekt, aktuell oder vollständig waren.
Angenommen, eine Anwendung erlaubt eine Transaktion nur dann, wenn der Kurs eines Vermögenswerts eine bestimmte Schwelle übersteigt.
Ein Operator erhält den Kurs, wertet die Policy aus und signiert das Ergebnis.
Wenn der Operator die Berechnung verändert oder einen Output liefert, der der Regel widerspricht, kann eine Challenge die Unstimmigkeit aufdecken.
Aber wenn der bereitgestellte Kurs bereits veraltet war, kann der Operator ihn dennoch korrekt verarbeiten. Die Policy kann für diesen Wert die erwartete Ausgabe zurückgeben, und eine spätere Challenge kann dieselbe Berechnung reproduzieren, ohne eine Abweichung des Operators festzustellen.
Die Anwendung kann die Transaktion weiterhin autorisieren, indem sie auf eine Tatsache zurückgreift, die nicht mehr den Markt widerspiegelt.
Das bedeutet: Der Mechanismus ist nicht einfach:
Challenge besteht ➜ Ergebnis ist wahr.
Er ist eher:
Externe Daten werden bereitgestellt ➜ die Policy wertet diese Eingabe aus ➜ der Operator signiert den Output ➜ die Challenge prüft, ob die Berechnung korrekt war.
Eine korrekte Policy-Berechnung ≠ korrekte externe Eingabe.
Die gleiche Grenze kann auch für einen veralteten Status eines Credentials gelten, für eine falsche Risikobewertung oder für jeden externen Wert, der akzeptiert wurde, bevor die Auswertung beginnt.
Das macht den Challenge-Mechanismus nicht schwach. Es heißt nur, dass Integrität der Berechnung und Integrität der Daten unterschiedliche Schutzmaßnahmen erfordern.
Der Punkt, zu dem ich immer wieder zurückkomme, ist die Frage, ob ein Ergebnis weiterhin als vertrauenswürdig gelten sollte, wenn die Policy korrekt ausgewertet wurde, keine Abweichung des Operators nachgewiesen wurde, und die der Entscheidung zugrunde liegende Tatsache dennoch falsch war.
$NEWT #Newt @NewtonProtocol $MAGMA $VELVET
Zunächst ging ich davon aus, dass der finale Ergebniswert vertrauenswürdig ist, wenn die Challenge die Berechnung bestätigt.
Diese Annahme ist unvollständig.
Eine Policy-Challenge kann überprüfen, ob ein Operator die bereitgestellte Regel korrekt ausgewertet hat. Sie beweist jedoch nicht automatisch, dass die externen Daten, die in diese Regel eingehen, korrekt, aktuell oder vollständig waren.
Angenommen, eine Anwendung erlaubt eine Transaktion nur dann, wenn der Kurs eines Vermögenswerts eine bestimmte Schwelle übersteigt.
Ein Operator erhält den Kurs, wertet die Policy aus und signiert das Ergebnis.
Wenn der Operator die Berechnung verändert oder einen Output liefert, der der Regel widerspricht, kann eine Challenge die Unstimmigkeit aufdecken.
Aber wenn der bereitgestellte Kurs bereits veraltet war, kann der Operator ihn dennoch korrekt verarbeiten. Die Policy kann für diesen Wert die erwartete Ausgabe zurückgeben, und eine spätere Challenge kann dieselbe Berechnung reproduzieren, ohne eine Abweichung des Operators festzustellen.
Die Anwendung kann die Transaktion weiterhin autorisieren, indem sie auf eine Tatsache zurückgreift, die nicht mehr den Markt widerspiegelt.
Das bedeutet: Der Mechanismus ist nicht einfach:
Challenge besteht ➜ Ergebnis ist wahr.
Er ist eher:
Externe Daten werden bereitgestellt ➜ die Policy wertet diese Eingabe aus ➜ der Operator signiert den Output ➜ die Challenge prüft, ob die Berechnung korrekt war.
Eine korrekte Policy-Berechnung ≠ korrekte externe Eingabe.
Die gleiche Grenze kann auch für einen veralteten Status eines Credentials gelten, für eine falsche Risikobewertung oder für jeden externen Wert, der akzeptiert wurde, bevor die Auswertung beginnt.
Das macht den Challenge-Mechanismus nicht schwach. Es heißt nur, dass Integrität der Berechnung und Integrität der Daten unterschiedliche Schutzmaßnahmen erfordern.
Der Punkt, zu dem ich immer wieder zurückkomme, ist die Frage, ob ein Ergebnis weiterhin als vertrauenswürdig gelten sollte, wenn die Policy korrekt ausgewertet wurde, keine Abweichung des Operators nachgewiesen wurde, und die der Entscheidung zugrunde liegende Tatsache dennoch falsch war.
$NEWT #Newt @NewtonProtocol $MAGMA $VELVET