←back to thread

551 points arrdalan | 7 comments | | HN request time: 1.586s | source | bottom

I needed a security camera inside my house, one that would send motion notifications to my smartphone and would allow me to livestream remotely. 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. Therefore, I decided to use my spare time to build one from scratch. Called Privastead (as in Private Homestead), it uses OpenMLS for end-to-end encryption (between the camera local hub and the smartphone) and is mostly implemented in Rust (except for part of the Android app that is implemented in Kotlin). The system is functional now and I've been using it in my own house for the past couple of weeks.

Based on some of the discussions I've seen online, it seems like there are other users who are also concerned with the privacy implications of home security cameras. Therefore, I decided to open source my solution for everyone to use. If you need a privacy-preserving home security camera, please give it a try and provide feedback. Note that trying out the system requires you to have a supported IP camera, a local machine connected to the IP camera, a server, and an Android smartphone. I have put together detailed instructions on setting up the system, which I hope makes it easier for others to get the system up and running.

In addition, consider contributing to the project. The prototype currently has a lot of limitations: mainly that it has only been tested with one IP camera, only allows the use of one camera, and only supports Android. I'll continue to improve the prototype as time permits, but progress will be much faster if there are other contributors as well.

Show context
VTimofeenko ◴[] No.42285567[source]
I've been a happy user of frigate (https://frigate.video) with fully local isolated setup: multiple poe cameras on a dedicated network, coral to supplement on-camera recognition, HA+Prometheus for alerts and smarts.

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.

replies(3): >>42285973 #>>42286293 #>>42287611 #
stevenpetryk ◴[] No.42285973[source]
Have you found cameras you’re happy with? That’s the main thing holding me back is not knowing a good PoE camera to use.
replies(2): >>42286156 #>>42286279 #
1. hughesjj ◴[] No.42286156[source]
Hikvision and reolink are highly rated onvif ones that support poe, but as long as the camera support ONVIF from there just compare as normal
replies(3): >>42286400 #>>42286505 #>>42287306 #
2. hunter2_ ◴[] No.42286400[source]
Search for "Hikvision compromised" though. The results are damning. I suppose there's not much of a concern if using a proper firewall on a managed network, however.
3. hipitihop ◴[] No.42286505[source]
I can second Frigate and welcome any work in this space, so nice work OP will have a look. For others asking, I have found so far Hikvision POE PTZ domes like DS-2DE2A404IW-DE3 have been reliable, depends on your budget. I have cams themselves fully locked down from internet and on a separate subnet on the local net. OPNSense is also a friend here. I would love some OSS firmware for these cams. For remote, I find ZeroTier to Frigate & Home Assistant machines is all I need. I get why others WireGuard too. YMMV
replies(1): >>42322646 #
4. nonrandomstring ◴[] No.42287306[source]
Aren't HikVision the ones banned by many governments because they have dodgy "call home to China" firmware?

Persoanlly I go with the Eyeball Entities Omnicam with an Omniscient Systems Xcam-REAM control centre [0].

[0] https://cybershow.uk/media/ads/cctv-ads.mp3

replies(1): >>42287414 #
5. paranoidrobot ◴[] No.42287414[source]
Even if it does have phone-home functions, why does the camera itself need internet access?

IMO, audit the hardware for wireless radios (PoE cameras shouldn't have them), and put them on a camera-only VLAN that can only talk to the video server.

Maybe not suitable for super secure TS locations, but in general should be fine for 99% of situations.

replies(1): >>42289824 #
6. nonrandomstring ◴[] No.42289824{3}[source]
I think if you've got total control over them, not a problem compartmentalising. Problem is, they're like loitering munitions, next person comes along and connectes them up to a router or misconfigures a firewall... Much as I hate e-waste sadly best place is in the bin. They're cheap but, easy come easy go.
7. hughesjj ◴[] No.42322646[source]
Oh wire guard is a requirement imo, regardless of NVR or camera vendor. I'm less worried about a nation on the other side of the Pacific getting a livestream of my property than I am someone social engineering some rando employee at Ring/whereever and figuring out the best time to rob me or whatever.

Also set up alerts on shodan opencve etc. If you have anything but a phone and personal computer on your home network, assume they're hacked and treat it like you would coffee shop wifi during defcon.

Because... Well they are. Zero days are a thing, and by definition by the time you learn of one it's too late.

Honestly I'm more concerned about the compromised device being an attack vector for network sniffing etc moreso than the video itself... Which is yet another reason why I try to 100% VPN even at home, but man okta doesn't play well with VPNs.