W3C home > Mailing lists > Public > public-webappsec@w3.org > October 2018

Re: Extending Subresource integrity to more elements (<a>, <img>, etc.)

From: Devdatta Akhawe <dev.akhawe@gmail.com>
Date: Tue, 2 Oct 2018 22:16:41 -0700
Message-ID: <CAPfop_0cg2g3eg8Te0R+1wxwKQfBiNzGSMHHyzwPrMg58goojw@mail.gmail.com>
To: Bertil Chapuis <bchapuis@gmail.com>
Cc: Eric.Lawrence@microsoft.com, Frederik Braun <fbraun@mozilla.com>, public-webappsec@w3.org, Kévin Huguenin <kevin.huguenin@unil.ch>, Igor Bilogrevic <ibilogrevic@google.com>, Mike West <mkwst@google.com>
We can get into that if needed; but I don't think that changes Freddy's
point---we shouldn't merge two different concepts together in one directive.

On Wed, 26 Sep 2018 at 10:16, Bertil Chapuis <bchapuis@gmail.com> wrote:

> On Tue, 25 Sep 2018 at 18:49, Devdatta Akhawe <dev.akhawe@gmail.com>
> wrote:
> >
> > I haven't dug in heavily but I am imagining:
> >
> > 1. Allow download attribute on cross origin resources if cross-origin
> attribute exists
> > 2. Allow integrity work as expected when download attribute exists (so
> just works on same origin and needs cross-origin attr on x-origin resources)
>
> Thanks for your inputs. If I understand correctly it would mean that
> the integrity attribute would be used as follows (on a page at
> https://www.website.com):
>
> <a href="https://www.website.com/file.exe" integrity="hash" download>
>
> or (if the file has a different origin):
>
> <a href="https://www.another-website.com/file.exe"
> crossorigin="anonymous" integrity="hash" download>
>
> Today, the first option brings little as the considered threat arises
> mostly in cross-origin contexts (website + CDN) and the second option
> is in conflict with the same-origin requirement of the download
> attribute.
>
> The fact that the specs of the download and integrity elements are
> interdependent complexifies the problem. Just to be sure we are on the
> same page, could anyone recall what were the security reasons for
> restricting the download attribute to same origins?
>
> > On Tue, 25 Sep 2018 at 07:39, Eric Lawrence <Eric.Lawrence@microsoft.com>
> wrote:
> >>
> >> Is the proposal here to respect the Download attribute on a
> cross-origin resource only when cross-origin is set or integrity is
> provided and matches?
> >>
> >>
> >>
> >> (If not, we reintroduce the same security problems that resulted in the
> Download attribute being restricted to Same-Origin to begin with.)
> >>
> >>
> >>
> >> From: Devdatta Akhawe <dev.akhawe@gmail.com>
> >> Sent: Friday, September 21, 2018 7:17 PM
> >> To: Bertil Chapuis <bchapuis@gmail.com>
> >> Cc: Frederik Braun <fbraun@mozilla.com>; public-webappsec@w3.org;
> Kévin Huguenin <kevin.huguenin@unil.ch>; Igor Bilogrevic <
> ibilogrevic@google.com>; Mike West <mkwst@google.com>
> >> Subject: Re: Extending Subresource integrity to more elements (<a>,
> <img>, etc.)
> >>
> >>
> >>
> >> Not sure I understand. I think Freddy is saying that it's reasonable to
> require people to add both the integrity attribute, the download attribute,
> and the cross origin attribute. Basically, we don't need to implicitly make
> integrity also mean the cross origin and download attribute.
> >>
> >>
> >>
> >> I agree with him. Not tying things together is cleaner and more
> flexible. I don't think the overhead for developers is that high.
> >>
> >> On Fri, Sep 21, 2018, 12:26 PM Bertil Chapuis <bchapuis@gmail.com>
> wrote:
> >>
> >> On Thu, 20 Sep 2018 at 15:46, Frederik Braun <fbraun@mozilla.com>
> wrote:
> >> > On 19.09.2018 14:55, Bertil Chapuis wrote:
> >> > > Hello Dev,
> >> > >
> >> > >> There is a lot of history here
> >> > >> https://github.com/w3c/webappsec-subresource-integrity/issues/68
> >> > >> The spec work is a bit tricky too given that you need to define
> the cross origin tag for anchor etc. But if @annevk is helping, I am
> confident most spec issues can be resolved.
> >> > >
> >> > > Thanks for the pointer, we noticed this issue but still had a couple
> >> > > of questions regarding the ongoing discussion.
> >> > >
> >> > > In our understanding, the download attribute currently informs the
> >> > > browser to download the resource pointed by a link, even if the
> >> > > Content-Disposition header of the HTTP response is not set. As
> >> > > suggested by @annevk, as this attribute only works for same-origin
> >> > > URLs, an exception for anchor tags that include both the
> cross-origin
> >> > > and the download attributes could be introduced. As these attributes
> >> > > are not mandatory, wouldn't it be more appropriate to simply
> trigger a
> >> > > download if the integrity tag is present (regardless of the MIME
> type,
> >> > > Content-Disposition or download attribute)?
> >> > >
> >> > > Note that from a security perspective, the integrity attribute is
> less
> >> > > needed in the same-origin context.
> >> > >
> >> > > As hinted by @mikewest, CORS is required to prevent the exposition
> of
> >> > > the content of the resource via hashes. However, if anchor tags
> >> > > containing integrity attributes systematically trigger downloads in
> a
> >> > > fire-and-forget fashion, would such exposition of the content occur?
> >> >
> >> > Implicitly conflating attributes for some elements, but not for others
> >> > is too surprising, imho.
> >> > I do agree, that the use case for integrity on same-origin is
> certainly
> >> > smaller.
> >> > But if the `integrity` attribute secretly implied a cors-anonymous
> >> > request, you'd effectively disallow same-origin downloads that require
> >> > authentication cookies to work with integrity. And disallowing that
> >> > completely is also odd.
> >>
> >> Fair point, I totally agree that this could be problematic. In this
> >> regard, the idea of introducing an exception for the anchor tags (that
> >> include both the cross-origin and the download attributes) is much
> >> clearer. However, if we don't introduce an exception for the
> >> same-origin constraint, I would go so far as to say that checking the
> >> integrity is useless, i.e., an attacker gaining access to the origin
> >> can change both the resource and its checksum. As the status quo is
> >> not ideal neither, do you have another alternative in mind?
> >>
> >> Bertil
>
Received on Wednesday, 3 October 2018 05:17:17 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 3 October 2018 05:17:18 UTC