Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It would be great if they could use the LiDAR scanner to sign a depth map of the scene in front of the camera. It would show if you photographed a flat image.
 help



The sensor already uses phase detection autofocus. You can create a depth map out of it. iPhone X used its dual cameras and that phase data for depth maps.

How? Is this for every image taken, or does one need to take a second photo? Or is it "in theory phase detection hardware would let you make a depth map"

The sensor has special pixels which can detect phase differences in incoming light. Camera uses these pixels (aka embedded detectors on the image sensor) to be able to focus where you want. This is same from phones to professional cameras.

(DSLR cameras have independent phase detection arrays. This is why the mirror has a small mirror behind. To illuminate that section).

Lenses are tuned. They know how distant the thing they are focusing on, also photos' EXIF generally carries the focus point information. Side note: Apple Aperture used to be able to show where you focused with that info. Still no app does this. I'm still mad that we don't have Aperture anymore. Anyway...

So, if you collect this phasing information alongside the photo which you're taking, you are capturing the depth map of the photo. Its resolution will be lower, but not lower enough to be useless.

For example, Sony (and most probably all other big camera manufacturers) cameras use this phasing data throughout sensor in real-time for following moving subjects to keep the focus on them by predicting where they are going.

So, there's no "in theory". The phasing data is the depth map. Otherwise your camera can't focus on anything. It's there to focus, and it's done by reading the phasing data and knowing where to go by how much.

All fast AF systems are PDAF. When light is too low, then it's CDAF, which does way slower, without using any phase/depth data.

[0]: https://en.wikipedia.org/wiki/Autofocus#Phase_detection

Edit: Meaning clarified, bugs squashed, mirrors polished.


The 'ol "analog hole". Never been able to patch that gap.

Yes, if your adversary can generate a high-fidelity 3D moving replica of a scene, they can deceive you that it’s real. But can they really?

Images that are meant to be 2d (E.g. a photo of something on paper) isn't going to look 3d. I guess this approach will just have to let anything flat through?

"I took a real photo of this image printed on paper" seems possible to falsify, yeah, but that doesn't seem too surprising to me, given that anyone with a printer can print literally any possible image.

They could use the camera aperture to take a second photo and calculate blur.

Pretty sure it does that already.

And what if you take a picture across a IR-filtered window?

Then you won’t be able to prove it was a genuine photograph? That sounds like the right failure mode.

That's a cool idea.

If that became popular, the AIs would learn how to generate a realistic depth map along with any generated image.

How would that work? I thought the premise here is that you can fool the apple camera by taking a (very carefully aligned) picture of a still image (printed out).

A depth map from the apple camera (again, signed) would show that the entire image had the same distance from the camera.


You're right. I think my comment above doesn't make sense - it wouldn't help in this case.

The photos are cryptographically signed in the apple image pipeline so it's not as simple as just AI generating something. That said, I can't see how this is any different to all the other times we have embedded crypto keys in consumer hardware where eventually someone finds a way to extract the key and the whole thing is busted open.

Given the whole private cloud bit, I am assuming they keep the private keys server side and never let them out.

I think there's a chain of trust. The sensor signs raws, and the private cloud takes signed raws, does minimal processing so they're at least coherent, and re signs that output (maybe even including the original signed raw as well in the image file).

How would the server know that the request is coming from a real iPhone?

This is a pretty standard application of trusted computing and can be done entirely on the iPhone. A server would only possibly be needed for anonymization (while retaining key revocation capabilities if a key does end up leaking), but there are serverless ways to do even that (TPMs have supported these for a while now).


It wouldn't, but you could validate that a particular picture was created at a particular time, and had not changed, for example, especially with metadata that you may not want to share but that establishes certain parameters like gps coordinates. A lock, rather than an end-to-end pixel signature, which shows what was contemporaneous rather than exact provenance. If an event happened on day 0000-00-00 00:00:00am, but your photo was taken at some other time, it casts doubt.

I think a big part of validation for things like these are just "could it have been modified since Z event happened", because Z was not something people paid attention to before.


That's just a timestamping service then, not a content provenance/authentication scheme. Timestamping has been a solved problem for years; certificate authorities offer this, or you could just throw a hash onto any sufficiently trusted blockchain.

Nothing prevents anyone from opportunistically pre-generating and timestamping millions of permutations of fake kompromat and then selectively revealing the one that turns out to be useful after the fact.

You could charge per attestation, but the economics of that don't look great; you could demand publication of the image itself before attestation, but that would obviously not fly for most use cases out of privacy concerns.


> Nothing prevents anyone from opportunistically pre-generating and timestamping millions of permutations of fake kompromat and then selectively revealing the one that turns out to be useful after the fact.

If you're doing server-side timestamping and someone is sending millions of items, I think you just ban them. Apple accounts are free but not inexpensive.


That's a good point, You might still be able to trick the cloud to sign your photos, but that's something they could patch in updates without losing control of the key. They could have the server only sign photos taken on the latest ios version.

And honestly you could have a similar antitampering oracle that was at least obscured, in terms of "we've detected tampering but won't tell you how or why", which is frustrating but I have to imagine that 99.9%+ of images are clean.

Nobody has breached the Secure Enclave, not sure it’s doable without investing millions in direct circuit manipulation. Seems good enough

> generate a realistic depth map along with any generated image.

There are already pretty good depth map generation algorithms (for a decade or so) which works on 2D images.

Generate the image, feed it to a depth map generator, viola.

However, you can't get it signed by the sensor itself. That'd be hard.


Even simpler, a 3D printed relief with an image "stamped" on it, now you effectively have a 3D image.

…and the PDAF data will show how shallow it is.

... don't make it so shallow then. Perfectly possible in a consumer-friendly 3D printer for a face or even human body if you have lots of time for the prints.

You’re well on the way to 1:1 replicas at this point. Next you’ll need to match the thermal signature and the exact weather in the sky for the time at that location.

This is almost reaching Kubrick’s joke about wanting to film the fake moon landing on location.

but what are we really trying to solve here. you're suggesting a helluvalota work for what purpose?

Then take and sign a one-second video and you’re adding a few orders of magnitude of complexity again.

Sounds like Rincewind's spell from the Octavo.

One can 3d-print the AI generated image and photograph that. /s



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: