Thanks for the pointer! I've reached out and will see what I can do.

Cheers,
Titouan

On Wed, Dec 1, 2021 at 3:21 PM Yoav Weiss <yoavwe...@chromium.org> wrote:

>
>
> On Wed, Dec 1, 2021 at 2:43 PM Titouan Rigoudy <tito...@google.com> wrote:
>
>> Thanks for the response Yoav, answers inline.
>>
>> On Wed, Dec 1, 2021 at 1:22 PM Yoav Weiss <yoavwe...@chromium.org> wrote:
>>
>>>
>>>
>>> On Monday, November 29, 2021 at 4:37:24 PM UTC+1 Titouan Rigoudy wrote:
>>>
>>>> Contact emailstito...@chromium.org, v...@chromium.org,
>>>> cl...@chromium.org
>>>>
>>>> Explainer
>>>> https://github.com/WICG/private-network-access/blob/main/explainer.md
>>>>
>>>> Specificationhttps://wicg.github.io/private-network-access/
>>>>
>>>> Design docs
>>>>
>>>> https://docs.google.com/document/d/1FYPIeP90MQ_pQ6UAo0mCB3g2Z_AynfPWHbDnHIST6VI/edit
>>>>
>>>> Summary
>>>>
>>>> Sends a CORS preflight request ahead of any private network requests
>>>> for subresources, asking for explicit permission from the target server. A
>>>> private network request is any request from a public website to a private
>>>> IP address or localhost, or from a private website (e.g. intranet) to
>>>> localhost. Sending a preflight request mitigates the risk of cross-site
>>>> request forgery attacks against private network devices such as routers,
>>>> which are often not prepared to defend against this threat.
>>>>
>>>>
>>>> Blink componentBlink>SecurityFeature>CORS>PrivateNetworkAccess
>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ESecurityFeature%3ECORS%3EPrivateNetworkAccess>
>>>>
>>>> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/572
>>>>
>>>> TAG review statusPending
>>>>
>>>> Risks
>>>>
>>>>
>>>> Interoperability and Compatibility
>>>>
>>>> The main interoperability risk, as always, is if other browser engines
>>>> do not implement this. Compat risk is straightforward: web servers that do
>>>> not handle the new preflight requests will eventually break, once the
>>>> feature ships. The plan to address this is as follows: 1. Send preflight
>>>> request, ignore result, always send actual request. Failed preflight
>>>> requests will result in a warning being shown in devtools.
>>>>
>>>
>>> Would that include deprecation reports?
>>>
>>
>> Not so far. Blink is not made aware of the warnings yet, they go from the
>> network service to the browser process and then straight to devtools. More
>> wiring would be needed for Blink to notice the warning and send a
>> deprecation report.
>>
>
>
> https://groups.google.com/a/chromium.org/g/blink-dev/c/xWVtdGDLz_Q/m/kyofZuRfBAAJ
> may be a relevant conversation on that front. It may be worthwhile to talk
> to Andrew to see what they did on that front.
>
>
>>
>>
>>>
>>>
>> 2. Wait for 3 milestones. 3. Gate actual request on preflight request
>>>> success, with deprecation trial for developers to buy some more time.
>>>>
>>>
>>> We'd also need to communicate this widely in order to get relevant
>>> developers to sign up for the deprecation trial. UKM investigation can help
>>> us focus efforts on that front.
>>>
>>
>> That is true. I am planning to write a blog post on web.dev or the
>> chrome blog to help raise awareness.
>>
>> 4. End deprecation trial 4 milestones later. UseCounters:
>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3753
>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3755
>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3757
>>>>
>>>
>>> That's a lot of usage :/ I remember you did a bunch of UKM
>>> investigations in the past. Did that include this case as well?
>>>
>>
>> I did not look at these metrics during my previous UKM analysis - I was
>> focusing on non-secure contexts initiating private network requests. I can
>> look into them again however, and try to reach out to the biggest users
>> before enforcement is turned on.
>>
>> Cheers,
>> Titouan
>>
>>
>>> The above measure pages that make at least one private network request
>>>> for which we would now send a preflight request.
>>>>
>>>>
>>>> Gecko: Worth prototyping (
>>>> https://github.com/mozilla/standards-positions/issues/143)
>>>>
>>>> WebKit: No signal (
>>>> https://lists.webkit.org/pipermail/webkit-dev/2021-November/032040.html)
>>>> Pending response.
>>>>
>>>> Web developers: No signals Anecdotal evidence so far suggests that
>>>> most web developers are OK with this new requirement, though some do not
>>>> control the target endpoints and would be negatively impacted.
>>>>
>>>> Other signals:
>>>>
>>>> Ergonomics
>>>>
>>>> None.
>>>>
>>>>
>>>> Activation
>>>>
>>>> Gating access to the private network overnight on preflight requests
>>>> would likely result in widespread breakage. This is why the plan is to
>>>> first send requests but not act on their result, giving server developers
>>>> time to implement code handling these requests. Deprecation warnings will
>>>> be surfaced in DevTools to alert web/client developers when the potential
>>>> for breakage later on is detected. Enforcement will be turned on later
>>>> (aiming for 3 milestones), along with a deprecation trial for impacted web
>>>> developers to buy themselves some more time. Experience suggests a large
>>>> fraction of developers will not notice the advance deprecation warnings
>>>> until things break.
>>>>
>>>>
>>>> Security
>>>>
>>>> This change aims to be security-positive, preventing CSRF attacks
>>>> against soft and juicy targets such as router admin interfaces. DNS
>>>> rebinding threats were of particular concern during the design of this
>>>> feature:
>>>> https://docs.google.com/document/d/1FYPIeP90MQ_pQ6UAo0mCB3g2Z_AynfPWHbDnHIST6VI/edit#heading=h.189j5gnadts9
>>>>
>>>>
>>>> Debuggability
>>>>
>>>> Relevant information (client and resource IP address space) is already
>>>> piped into the DevTools network panel. Deprecation warnings and errors will
>>>> be surfaced in the DevTools issues panel explaining the problem when it
>>>> arises.
>>>>
>>>>
>>>> Is this feature fully tested by web-platform-tests
>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>>> ?Yes
>>>>
>>>> DevTrial instructions
>>>> https://github.com/WICG/private-network-access/blob/main/HOWTO.md
>>>>
>>>> Flag namePrivateNetworkAccessRespectPreflightResults
>>>>
>>>> Requires code in //chrome?False
>>>>
>>>> Tracking bughttps://crbug.com/591068
>>>>
>>>> Launch bughttps://crbug.com/1274149
>>>>
>>>> Estimated milestones
>>>> DevTrial on desktop 98
>>>> DevTrial on android 98
>>>>
>>>> Link to entry on the Chrome Platform Status
>>>> https://chromestatus.com/feature/5737414355058688
>>>>
>>>> Links to previous Intent discussionsIntent to prototype:
>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/PrB0xnNxaHs/m/jeoxvNjXCAAJ
>>>>
>>>>
>>>> This intent message was generated by Chrome Platform Status
>>>> <https://www.chromestatus.com/>.
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPATO9eR%3DCidUvL1VBea8iR2%2B-J6RD7smeRXv_g5LPQ40HGhKg%40mail.gmail.com.

Reply via email to