https://github.com/maxlab-io/tokay-lite-pcb
or can be purchased at:
https://www.mouser.ca/ProductDetail/Maxlab/TOKAY-LITE-01?qs=...
The traditional symmetric approach (which also has post quantum resistance) in such systems requires the camera hardware to possess the long-lived symmetric key which can be extracted after seizure. Using a ratcheting mechanism (hashing the key every t time) can help - but have no self healing and be vulnerable to recovery from persistent storage (past keys may not be securely erased).
[1] <https://en.wikipedia.org/wiki/Key_encapsulation_mechanism>
[2] <https://libsodium.gitbook.io/doc/public-key_cryptography/sea...>
I bought cameras that use RTMP and RTSP, and sent them to my developers. From there, it is not a hard task to use WebRTC (which has end-to-end encryption) to stream somewhere. But my use case involved retaining encrypted videos (every minute and every camera would have a different key) and have a well defined protocol for decryption. To me, the issue of security is not just on one end (recording the crimes) but the other end (mass surveillance, aka who watches the watchers?)
Here is a longer write-up I did: https://community.qbix.com/t/balancing-privacy-and-accountab...
If anyone is interested in working on a startup with me and selling to homeowners and gated communities, reach out to greg at the domain qbix.com
This is key to the claim that Privastead offers superior privacy to other solutions, but it's not explained.
My NVR [1] only uses a trusted server that is intended to be in the same building as the cameras. I similarly recommend not allowing the cameras to access the Internet, as their closed-source software is typically a complete nightmare in terms of privacy and security.
Interesting project! As a Rust implementation for Open MLS, secure end-to-end archival, and a TLS vector, having the DIY home camera setup connect to the internet via a Privastead hub eliminates the need for secure tunneling.
I could see this incorporating facial recognition technology and real-time monitoring.
If you've ever seen eigenfaces, they look like early hominids. One method is principal component analysis (PCA) which isolates the major characteristics of a human face in correlating underlying noise to the most essential features of a face.
I also remember reporting a bug that there was a constant “new” badge next to their referral button in-app, despite me clicking on it and reading it (which I though it would make the “new” badge go away) - support kindly explained to me that they have new referral program every week, which is bonkers because the only thing that changes is the date.
I did look into alternatives but didn’t see anything I could easily trust more after Eufy, so I’m looking forward to the future where simple open source software will cover this part of market, because private companies so far seem to just give you crap for as my $$$ as they can extract.
- reliable human detection (not just motion)
- integration via some sort of API or MQTT etc.
This project appears to have no "smarts" in terms of human detection nor APIs which is a shame. Just pure motion detection on its own is ok, but you're going to pick up all sorts of things that you don't care about.
E.g. I have foxes that run around my garden all night. I don't care about those. But the second a human steps into my garden and starts approaching the house in the night, all the perimeter floodlights are activated, in-house lights turn on, a fake-yet-loud barking dog MP3 starts playing and I get pushover notifications on my phone that won't stop until I ACK them etc (to wake me up).
So far, from personal experience, the most reliable way to stop an attempted burglary in-progress is for lights to switch on from inside as they are attempting to force entry.
Years ago, I used Motion[0] on a pi, laptop and desktop, configured to sftp the motion-activated images to a remote server. I could check the files upon alert and view them in rapid succession as 'video'. It was a clunky setup but worked, aside from the vulnerability of the computers being physically accessible to unwanted visitors - but for this I'd use nohup & physlock to at least prevent quick access.
This relatively free setup had limitations, mostly due to my lack of skills and resources, but it provided significant consolation and I'd bring it with me while traveling, eg using the laptop setup for hotel rooms, etc. The fact that the great Bezosauron et al wasn't involved, did please me.
Can you point out how your project provides a better security layout than say, Home Assistant? It does appear that there is little concern for encryption between cameras and local networking hubs, but the assumption seems to be that if the device is over a wire it's isolated to the local network, and if it's Wi-Fi it's subject to WPA. So there isn't much desire for additional encryption in that context.
Otherwise, Home Assistant's server/portal is more than capable of encryption beyond the camera's network interface.
Also, if I were to set this up behind a firewall, would I need to port forward something so I can access it on the road?
> However, I could not find one that I could trust due to privacy concerns.
> Many of them upload the plaintext of videos to their servers and none is fully open-source as far as I know.
There's Frigate [1] which is off-cloud, opensource and self-hosted and it does person detection using GPU or Google Coral. It relays camera streams over WebRTC using ssl and works well with Home Assistant [2], which is your self-hosted off-cloud smart home solution.
Then there's moonfire-nvr [3] which is written in rust and less feature complete than frigate.
And then there's sentryshot [4], another option written in rust.
Interestingly, your project got more stars since you posted it on HN than sentryshot has in total, and they have had a product out since 2021 while yours only support a single camera model and has no object detection.
I suppose this reflects how unknown these option are, which is kind of unexpected since googling "rust nvr" lists them all in the first page.
2: https://www.home-assistant.io/
3: https://github.com/scottlamb/moonfire-nvr
4: https://github.com/SentryShot/sentryshot
> The prototype currently has a lot of limitations: mainly that it has only been tested with one IP camera
Since you use rust, you should maybe have a look at retina:
https://github.com/scottlamb/retina
Personally, I use frigate with Home Assistant linked to HomeKit, so I get snapshots & video from frigate straight into my iPhone lock screen as soon as it detects moving people or cars outside my house.
Excited to see another project, especially in Rust(not for the memes; python env management has bit me a few times when hacking).
One major gripe with frigate that I have is the way it treats detection events as pointers to video files. This makes replicating events off site a major pain.
Seems like this project offers a lot of what I had to cobble together. Nice work. I like that it offers encrypted notifications although I don’t use Android so not ready for me yet. I don’t like the Google dependency.
It’s pretty good and has an extensive ecosystem. The dev can be a bit… feisty though.
It’s very performant and easy to setup. I don’t use the NVR features as I already have an NVR, I essentially just use it for HomeKit integration of my cameras + doorbell.
Seems silly to pay to upload all my video of my own house to who knows where and struggle to download it back with absurdly sluggish proprietary software when I have perfectly good computers here already. I should be able to check my cameras without waiting 10-30 seconds for loading spinners and I should be able to scrub through time instantly instead of waiting for interminable loading every time I touch the seek control.
What camera hardware are people using for custom setups? Is there anything out there that is wireless but with high quality/security firmware and reasonably priced?
I'm am totally unfamiliar with this, but what level of concern that theGoogs pulls the plug on this service about the time you gain traction?