onvif / specs

ONVIF Network Interface Specifications
Other
325 stars 87 forks source link

Add support for segment encryption #400

Open jflevesque-genetec opened 5 months ago

jflevesque-genetec commented 5 months ago

We have tested using the current cloud recording specification to upload encrypted segments and playing them back through an HLS playlist on various devices. We have discovered that frame encryption is not well supported on Apple devices (iPhone, iPad & macbooks) without FairPlay.

For security reasons, some customers are not comfortable with frame encryption since metadata is in clear and for CBCS only 10% of the segment is encrypted.

This proposal adds a different mechanism for encrypting whole segments. It simplifies the whole process, adds compatibility with Apple devices and covers customer concerns about security. This proposal is compatible with both HLS and MPEG-DASH.

jmelancongen commented 3 months ago

Pending work to be done on this PR:

jmelancongen commented 1 month ago

I've updated the PR with the points from the F2F in San Juan. I'm not quite satisfied yet on the completion. Notably, I'd like to add some test vectors primarily about the Elliptic Curve encryption part, since this has quite a few moving parts. But I'm wondering what the other members think about it since this is not something we've done before as far as I'm aware? Also looking for feedback in general to the current shape of it

Concerning the metadata size, here is a rough breakdown of the fields:

All that, base64 for each value. This gives ~425 bytes of metadata values per file. This is certainly a bit high, there are possibilities to reduce that, but none seemed appealing: