[webkit-dev] Timing attacks in rendering, was: Re: Timing attacks on CSS Shaders
Charles Pritchard
chuck at jumis.com
Thu Dec 8 13:51:23 PST 2011
On 12/3/11 11:37 PM, Dean Jackson wrote:
> On 04/12/2011, at 6:06 PM, Adam Barth wrote:
>
>> On Mon, Oct 24, 2011 at 9:51 PM, Adam Barth<abarth at webkit.org> wrote:
>>> Personally, I don't believe it's possible to implement this feature
>>> securely, at least not using the approach prototyped by Adobe.
>> I spent some more time looking into timing attacks on CSS Shaders. I
>> haven't created a proof-of-concept exploit, but I believe the current
>> design is vulnerable to timing attacks. I've written up blog post
>> explaining the issue:
>>
>> http://www.schemehostport.com/2011/12/timing-attacks-on-css-shaders.html
> Thanks for writing this up.
>
> I'm still interested to know what the potential rate of data leakage is.
> Like I mentioned before, there are plenty of existing techniques that could
> expose information to a timing attack. For example, SVG Filters can
> manipulate the color channels of cross-domain images, and using CSS overflow
> on an iframe could potentially detect rendering slowdowns as particular
> colors/elements/images come into view. CSS shaders increase the rate of leakage
> because they execute fast and can be tweaked to exaggerate the timing, but
> one could imagine that the GPU renderers now being used in many of WebKit's ports
> could be exploited in the same manner (e.g. discover a CSS "trick" that drops
> the renderer into software mode).
>
...
> Is there something we can do to make rendering-based timing attacks
> less feasible?
>
...
> Or maybe rAF is inherently insecure?
Is there an active interest in investigating these issues? I understand
that CSS Shaders is bringing them to the forefront.
I am confident we can move Shaders forward in a limited and safe manner,
by starting first on CORS Media elements, essentially bringing them to
parity with WebGL Canvas.
That is to say: <canvas></canvas> -- with WebGL is up on the web and
tested as a means to apply filters to <img> and <video>.
Surely we can provide a CSS short-cut.
But back to my concern: Sometimes a new idea or use case brings up real
engineering issues that get pushed-back as people push-back on the use
case or broader implications. I experienced that phenomenon to a large
degree with the <canvas> tag in Canvas 2d. I'd like to do better with
pixel shaders.
Is there an objection to CSS Shaders for media elements, origin safe
video, img and canvas? They work in WebGL, they should work fine in CSS.
Is there reasonable support for investigating timing issues inside of
the browser? We have baseline issues from latency in network requests:
If I request an image from a site you've already visited, it's likely to
load quicker than a subsequent request for a random 404 page from that
site. I feel that this baseline issues can help us take some of the
controversy away from future studies on timing issues. They already
exist, they're accepted and acceptable for consumer-grade browsers.
I'm getting the feeling that these very interesting and important cases
brought up by Dean Jackson, are not being evaluated.
Webkit vendors, and many w3c vendors, should have an interest in seeing
them analyzed.
So I'm reaching out here and saying, does anyone think this is a
worthwhile avenue for serious study? Is it simply not important for this
generation of browsers?
Though webkit has a bias against "scientific experiment" on the code
base, being that it's an "engineering" project, it seems to me like
engineering and science as well as security and quality, benefit from
asking these questions and doing focused research.
-Charles
More information about the webkit-dev
mailing list