Skip to content
  • Vladimír Čunát's avatar
    703d918a
    validator: bottom->up chase DS if RRSIG(s) are missing · 703d918a
    Vladimír Čunát authored and Petr Špaček's avatar Petr Špaček committed
    This is about situations when validator *thinks* it's in a signed zone
    but an unsigned answer comes in. The assumption was that RRSIGs didn't
    make it through some middle-boxes and it retried with explicit QTYPE=RRSIG.
    
    There were two issues with that.
    1. It seems that in most cases the cause of the situation is that
       we skipped over a zone cut that transitioned to insecure state,
       so the signatures correctly don't exist.
    2. An explicit RRSIG query appears to be more trouble than worth;
       it seems reasonable for servers not to answer it (fully);
       see RFC 8482 sect. 7.
    
    The new approach simply tries to find a proof that the name is insecure,
    by spawning a QTYPE=DS sub-query on that name.  That fixes some
    real-life cases; usually this happens in iteration mode where one IP
    address serves zones on both sides of a cut that transitions to insecure.
    For details see new comments in that rrsig_not_found() function.
    
    The change resulted in the iterator fallback not making sense anymore
    so it was removed.
    703d918a
    validator: bottom->up chase DS if RRSIG(s) are missing
    Vladimír Čunát authored and Petr Špaček's avatar Petr Špaček committed
    This is about situations when validator *thinks* it's in a signed zone
    but an unsigned answer comes in. The assumption was that RRSIGs didn't
    make it through some middle-boxes and it retried with explicit QTYPE=RRSIG.
    
    There were two issues with that.
    1. It seems that in most cases the cause of the situation is that
       we skipped over a zone cut that transitioned to insecure state,
       so the signatures correctly don't exist.
    2. An explicit RRSIG query appears to be more trouble than worth;
       it seems reasonable for servers not to answer it (fully);
       see RFC 8482 sect. 7.
    
    The new approach simply tries to find a proof that the name is insecure,
    by spawning a QTYPE=DS sub-query on that name.  That fixes some
    real-life cases; usually this happens in iteration mode where one IP
    address serves zones on both sides of a cut that transitions to insecure.
    For details see new comments in that rrsig_not_found() function.
    
    The change resulted in the iterator fallback not making sense anymore
    so it was removed.
To find the state of this project's repository at the time of any of these versions, check out the tags.
Loading