Re: [Sidrops] draft-ietf-sidrops-aspa-verification-01: Handling unknowns

Alexander Azimov <> Thu, 25 July 2019 20:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 7432A1201D1 for <>; Thu, 25 Jul 2019 13:20:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OvocmEps1ViB for <>; Thu, 25 Jul 2019 13:20:33 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::329]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 297C21201EC for <>; Thu, 25 Jul 2019 13:20:33 -0700 (PDT)
Received: by with SMTP id l15so52985419otn.9 for <>; Thu, 25 Jul 2019 13:20:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=C6HcEAFqBiB/GCPZVytIGe+WK4d7povDuJ8PF5lOtHI=; b=cldjG/mpyp17/RhPF2nt+V/tKW3hnT5Kt2P0FHbmfSwMZx9RFWNFagT/2AoqSrqCbp EL5UUPhmq6XzEhPAQTmd6HSSPv9Yg92tL4ocKEs2t4H0v9CrUgF85JBpto2nBCzv3kv9 e9BkcpwteZyaP5HBY1el2aRUqyzhmpRUWh44tCIg6t6E+MrWhd/ALsUM3M7zyQ1EpmbE HVLBG274LoezZKe7AS+Dn0I7/jAK5oiAYtEi3OY8vsohI4U5pRUM1pT8ZdXCcRyc/RFW /zGP2KIuz3E/r/xLqge7lLrS7P8JZQhJn/K8Lh6fO8VGrEH/04KpqENUOame//Y3oEyg XXJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=C6HcEAFqBiB/GCPZVytIGe+WK4d7povDuJ8PF5lOtHI=; b=s0IjHhI/RU+sH+VpaI/jXiSu/dMnf9T0pudwm19zEq6Jp3jEO0kaq0P1yxhuVQW83r lRJPZPgDxDGrzIcIkXCZa4Y3vL931qlMXE7fcwUBlnMzQ00WMjCz0mLEBZFA8KmAIphm BGfvtJ0k67WoZ8u4oeLdIejlH6xIV9IQ6JLgYdqZRepSbP+beOSVx4EtY5p85b1A9egY qdYkf/+KL0mg5w+Oq4JknTfHG2PPY+MzCozb1A2yWOJvTRCWVXUpml+nvPuGtpMzb84H 9dWbrGEHXOLVML+/x5Ve08w8n9a28SJc7GUOc8Wd2ciB+XyF6d3rXXfmNalu+A46C9e8 YZrw==
X-Gm-Message-State: APjAAAUlsx5anzUddzrVhJfPPjoBOo621HwhXQ/USRrPAuwjfN7bamqm omb2a+yP/1qQtLZO5CkKopUEjldCG8706d/vLxM=
X-Google-Smtp-Source: APXvYqzkP2TV/PL7ZxPzJLM4tuJNQVR/0kUg8U3hWJVI0UNUowhhHIJwJ1SX6+fxygnWn5GBP7e0SFowVGcrNac6cIM=
X-Received: by 2002:a9d:7411:: with SMTP id n17mr62102122otk.27.1564086032332; Thu, 25 Jul 2019 13:20:32 -0700 (PDT)
MIME-Version: 1.0
References: <>
In-Reply-To: <>
From: Alexander Azimov <>
Date: Thu, 25 Jul 2019 23:20:20 +0300
Message-ID: <>
To: "Jakob Heitz (jheitz)" <>
Cc: "" <>
Content-Type: multipart/alternative; boundary="0000000000005afd81058e872826"
Archived-At: <>
Subject: Re: [Sidrops] draft-ietf-sidrops-aspa-verification-01: Handling unknowns
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A list for the SIDR Operations WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 25 Jul 2019 20:20:37 -0000


I believe your reading of the ASPA verification procedure is incorrect.

Section 4 defines pairs wise verification procedure (let's call
pair_verification) which returns valid, invalid and unknown.
Sections 5.1 and 5.2 define verification procedure for upstream and
downstream path respectively.

In these procedures, the 'valid' and 'unknown' outcome of pair_verification
is the same. These procedures return 'valid', 'invalid' and 'unverifiable'
(in case of valid AS_SEQ + presence of AS_SET). So, your assumption that
the algorithm works when all ASes in the as-path make attestations is

To perform verification you don't need to split ASPATH into triplets (or
even bigger windows). I sent previously a linear function that makes
verification for the downstream path, for the upstream path it even
simpler. Since you are already working on the implementation I suggest to
discuss it in person before the end of this meeting. It makes me really
anxious if the specification is unclear for implementers.

чт, 25 июл. 2019 г. в 08:04, Jakob Heitz (jheitz) <>:

> I believe the path verification algorithm works when all ASes in the
> as-path
> make attestations. If some of the ASes make no attestations, then a more
> complete
> algorithm is as follows:
> For every sequence (A, B, C) of consecutive ASes in an AS-path:
> If A attests that B is not a provider and C attests that B is not a
> provider,
> then B leaked the route: B is transiting for free. The segment is invalid.
> If either A or C attests that B is a provider, then the AS-path segment
> (A, B, C) is valid.
> If neither A nor C make an attestation, then the leak state is unknown.
> Even if B lists both A and C as providers, it is not necessarily a leak,
> because either A or C could consider B as a provider for some of their
> routes, even though they don't attest to it.
> If all the path segments are valid, then the whole path is valid.
> If any of the path segments is invalid, then the whole path is invalid.
> Else, at least one path segment is unknown and one more rule must be
> applied: for any sequence of ASes (A, B1, ..., Bn, C), if A attests that B1
> is not a provider and C attests that Bn is not a provider, then the AS-path
> is invalid. This is for any number of Bx greater than 1.
> This algorithm breaks the AS-PATH into triples instead of pairs.
> For example, the AS_PATH (A,B,C,D,E) is broken into the triples:
> (A,B,C), (B,C,D), (C,D,E).
> I find it easier to reason about it like that.
> It can probably be re-worded into pairs.
> An additional point:
> If AS-SETs exist then complete sequences between the AS-SETs can be
> checked for invalidity.
> The best such an AS-PATH can get is unknown, but it can also be verified
> invalid.
> Regards,
> Jakob.
> -----Original Message-----
> From: Sidrops <> On Behalf Of
> Sent: Monday, July 8, 2019 1:24 PM
> To:
> Cc:
> Subject: [Sidrops] I-D Action: draft-ietf-sidrops-aspa-verification-01.txt
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the SIDR Operations WG of the IETF.
>         Title           : Verification of AS_PATH Using the Resource
> Certificate Public Key Infrastructure and Autonomous System Provider
> Authorization
>         Authors         : Alexander Azimov
>                           Eugene Bogomazov
>                           Keyur Patel
>                           Job Snijders
>         Filename        : draft-ietf-sidrops-aspa-verification-01.txt
>         Pages           : 10
>         Date            : 2019-07-08
> Abstract:
>    This document defines the semantics of an Autonomous System Provider
>    Authorization object in the Resource Public Key Infrastructure to
>    verify the AS_PATH attribute of routes advertised in the Border
>    Gateway Protocol.
> The IETF datatracker status page for this draft is:
> There are also htmlized versions available at:
> A diff from the previous version is available at:
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at
> Internet-Drafts are also available by anonymous FTP at:
> _______________________________________________
> Sidrops mailing list
> _______________________________________________
> Sidrops mailing list

Best regards,
Alexander Azimov