Privastead - Hệ thống camera an ninh gia đình cá nhân mã nguồn mở (hỗ trợ mã hóa đầu cuối)
(github.com/privastead)- Secluso là một hệ thống camera an ninh gia đình DIY cá nhân dựa trên Raspberry Pi, cho phép xem video trực tiếp, thông báo và video đã ghi trên điện thoại mà không giao video cho nhà cung cấp đám mây
- Truy cập từ xa hỗ trợ mã hóa đầu cuối; trong quy trình thông thường, Secluso Deploy xử lý việc build image, ghép đôi và thiết lập relay, hướng tới mục tiêu thiết lập trong 5 phút
- Phần cứng được hỗ trợ gồm Raspberry Pi Zero 2W, Raspberry Pi Camera Module V1/V2 hoặc camera dựa trên cảm biến Sony OV5647·IMX219, Android hoặc iPhone, tài khoản relay Linux VPS hoặc dịch vụ lưu trữ relay beta miễn phí để thử nghiệm
- Cách triển khai là chèn thông tin xác thực duy nhất được tạo trên máy của người dùng vào image Secluso OS dựng sẵn; dự án cung cấp các bản build có thể tái lập của runtime binary, công cụ triển khai, ứng dụng Android và Secluso OS
- Mô hình bảo mật bao gồm thiết kế relay không tin cậy, forward secrecy và bảo mật sau xâm nhập, nhưng người dùng cần kiểm tra luật địa phương về việc sử dụng mã hóa và tự chịu trách nhiệm
Secluso cung cấp những gì
- Secluso là hệ thống camera an ninh gia đình cá nhân dành cho Raspberry Pi
- Người dùng có thể sử dụng các tính năng sau trên điện thoại
- Xem video trực tiếp
- Nhận thông báo
- Mở video đã ghi
- Mục tiêu là truy cập từ xa vào video an ninh gia đình mà không giao cho nhà cung cấp đám mây
- Dự án do Secluso, Inc. phát triển, với hai đồng sáng lập được nêu là Ardalan Amiri Sani và John Kaczman
Tính năng chính
-
Truy cập từ xa được mã hóa đầu cuối
- Hỗ trợ truy cập video trực tiếp, thông báo và video đã ghi từ điện thoại
-
Thiết lập trong 5 phút
- Trong quy trình thiết lập thông thường, Secluso Deploy xử lý việc build image, ghép đôi và thiết lập relay
-
Mã nguồn mở
- Có thể kiểm tra mã nguồn, tự host và đóng góp
-
Bản phát hành hoàn toàn có thể tái lập
- Có thể xác minh runtime binary, công cụ triển khai, ứng dụng di động Android và Secluso OS dựa trên mã nguồn công khai
Yêu cầu
-
Raspberry Pi
- Raspberry Pi Zero 2W
-
Camera
- Raspberry Pi Camera Module V1 hoặc V2
- Hoặc camera dựa trên cảm biến Sony OV5647·IMX219
-
Relay
- Thông tin đăng nhập Linux VPS của người dùng
- Hoặc email yêu cầu dịch vụ lưu trữ relay beta miễn phí trong giai đoạn thử nghiệm
-
Điện thoại
- Android hoặc iPhone để ghép đôi, nhận thông báo và phát lại
Luồng thiết lập nhanh
- Tải Secluso Deploy từ bản phát hành mới nhất
- Tạo cục bộ image Secluso OS đã cá nhân hóa và mã QR bí mật của camera
- Để Secluso Deploy cấp phát relay của người dùng qua SSH, hoặc gửi email yêu cầu dịch vụ lưu trữ relay beta miễn phí để thử nghiệm
- Khởi động Raspberry Pi và ghép đôi trong ứng dụng di động
- Nếu cần chọn phần cứng hoặc VPS, Build Your Own Guide cung cấp gợi ý phần cứng và lộ trình bắt đầu đơn giản
Ứng dụng di động
- Sau khi thiết lập, có thể dùng ứng dụng di động để kiểm tra từ xa, xem lại các sự kiện gần đây và mở các clip đã mã hóa
- Liên kết ứng dụng di động
Bảo mật và build có thể tái lập
- Mô hình bảo mật bao gồm thiết kế relay không tin cậy, forward secrecy và bảo mật sau xâm nhập
- Cách báo cáo lỗ hổng có trong SECURITY.md
- Dự án phân phối Secluso OS, một image Raspberry Pi dựng sẵn
- Secluso Deploy tạo thông tin xác thực duy nhất trên máy của người dùng và chèn chúng vào image dựng sẵn
- Secluso OS, công cụ triển khai, runtime binary và ứng dụng Android hoàn toàn có thể tái lập
- Tài liệu xác minh nằm tại
- releases/README.md: trình kiểm tra tính tái lập của binary và công cụ triển khai
- mobile_client/tool/repro/README.md: trình kiểm tra tính tái lập của ứng dụng di động Android
- os/README.md: trình kiểm tra tính tái lập của Secluso OS
- Image cần được kiểm tra trước khi công cụ triển khai chỉnh sửa và phải được tải trực tiếp từ bản phát hành
Đóng góp và lưu ý
- Dự án tiếp nhận câu hỏi và đóng góp; việc đóng góp được thực hiện theo giấy phép của dự án
- Liên hệ: secluso@proton.me
- Dự án này sử dụng mã hóa, vì vậy cần kiểm tra luật địa phương trước khi sử dụng
- Người dùng phải tự chịu trách nhiệm khi sử dụng; tác giả dự án không đưa ra bảo đảm về quyền riêng tư hoặc an ninh gia đình
1 bình luận
Các ý kiến trên Hacker News
Một dự án thật sự tuyệt vời. Vì những lý do đã nêu ở trên nên tôi đã không lắp camera an ninh trong nhà, nhưng thấy cái này khiến tôi phải nghĩ lại.
Nếu kết hợp với firmware mã nguồn mở https://github.com/openmiko/openmiko thì có vẻ sẽ là một combo mạnh cho những người coi trọng quyền riêng tư.
Như vậy sẽ không cần một máy riêng đóng vai trò hub, việc thiết lập sẽ dễ hơn nhiều.
Nếu cần một thiết kế phần cứng + firmware mã nguồn mở cho camera có cảm biến phát hiện chuyển động thì đây:
https://github.com/maxlab-io/tokay-lite-pcb
Cũng có thể mua được:
https://www.mouser.ca/ProductDetail/Maxlab/TOKAY-LITE-01?qs=...
Tất cả các sản phẩm đóng mà tôi từng thấy đều đặt khẩu độ/phơi sáng dựa trên độ phơi sáng trung bình của khung hình, khiến biển số hiện ra thành một hình chữ nhật trắng xóa.
Khi ghi hình ban đêm, cần làm cho nó quét qua cả mức phơi sáng sáng và tối.
Nếu dùng KEM[1] để tạo cấu trúc dạng sealed_box[2], có thể bảo vệ quyền riêng tư ngay cả trong tình huống phần cứng camera bị thu giữ về mặt vật lý.
Cũng có thể cung cấp khả năng chống lượng tử bằng cách dùng kết hợp ML-KEM, tức Kyber, với McEliece-KEM, ECDH hoặc RSA-KEM.
Trong loại hệ thống này, cách tiếp cận khóa đối xứng truyền thống tự thân cũng có khả năng chống lượng tử, nhưng phần cứng camera nắm giữ khóa đối xứng dài hạn và khóa đó có thể bị trích xuất sau khi bị thu giữ.
Cơ chế ratchet băm khóa theo từng khoảng thời gian có thể hữu ích, nhưng không có khả năng tự phục hồi và vẫn có rủi ro các khóa cũ bị khôi phục từ bộ lưu trữ lâu dài.
[1] <https://en.wikipedia.org/wiki/Key_encapsulation_mechanism>
[2] <https://libsodium.gitbook.io/doc/public-key_cryptography/sea...>
Vài năm trước, tôi từng muốn xây dựng một hệ thống an ninh gia đình tự chủ quyền cho cả cộng đồng và HOA. Tôi đã trao đổi với các kỹ sư IBM về phương án quét video bằng mô hình học máy gần thiết bị.
Tôi mua các camera dùng RTMP và RTSP rồi gửi cho các lập trình viên, sau đó việc stream bằng WebRTC tới một nơi nào đó không khó. WebRTC có mã hóa đầu cuối.
Tuy nhiên, trường hợp sử dụng của tôi là lưu trữ video đã mã hóa, dùng khóa khác nhau cho từng phút và từng camera, đồng thời phải định nghĩa rõ giao thức giải mã.
Tôi cho rằng vấn đề an ninh không chỉ nằm ở một đầu, tức ghi lại tội phạm, mà còn ở đầu kia, tức giám sát hàng loạt và câu hỏi “ai giám sát những người giám sát”.
Bài viết dài hơn ở đây: https://community.qbix.com/t/balancing-privacy-and-accountab...
Nếu muốn cùng làm một startup bán cho chủ nhà và các cộng đồng có cổng kiểm soát, hãy liên hệ greg tại tên miền qbix.com.
Nếu nói là mã hóa đầu cuối, tôi sẽ hiểu là lưu lượng giữa camera và ứng dụng được mã hóa, nhưng thực tế không phải vậy.
Để làm được thế, ứng dụng bên trong camera phải hỗ trợ hệ thống, và điều này có thể làm được trên nhiều camera.
Đặc biệt càng đúng hơn nếu đặt trong bối cảnh dùng máy chủ và dịch vụ thông báo không đáng tin cậy.
Tôi đặt mọi thiết bị không đáng tin cậy, bao gồm cả camera, vào một VLAN không có quyền truy cập Internet; VLAN chính có thể truy cập chúng nhưng chiều ngược lại thì bị chặn.
Trên VLAN chính, tôi chạy Frigate và Home Assistant để kết nối với camera. Khi ở ngoài nhà, tôi truy cập qua WireGuard.
Tôi tò mò mục đích của việc đưa vào thành phần “máy chủ” không đáng tin cậy là gì. Có phải họ muốn chạy nó ở một nơi khác với “hub camera” đáng tin cậy, chẳng hạn trên máy chủ đám mây không?
Phần này là trọng tâm trong tuyên bố rằng Privastead tốt hơn các giải pháp khác về quyền riêng tư, nhưng lại không được giải thích.
NVR của tôi [1] chỉ dùng một máy chủ đáng tin cậy đặt trong cùng tòa nhà với camera. Tôi cũng khuyên không cho camera truy cập Internet, vì phần mềm đóng thường là cơn ác mộng hoàn toàn về quyền riêng tư và bảo mật.
[1] https://github.com/scottlamb/moonfire-nvr
Cá nhân tôi đang dùng một VM giá rẻ của DigitalOcean.
Phần “đảm bảo rằng chỉ hub và ứng dụng di động mới có thể truy cập video chưa mã hóa” khá thú vị.
Xét về implementation Rust của OpenMLS, lưu trữ đầu cuối an toàn và vector TLS, khi cấu hình camera gia đình kiểu DIY được kết nối Internet thông qua hub Privastead thì sẽ không còn cần tunneling bảo mật nữa.
Có vẻ cũng có thể thêm công nghệ nhận diện khuôn mặt và giám sát thời gian thực vào đây.
Nếu từng thấy eigenfaces, bạn sẽ có cảm giác chúng trông giống loài người thời kỳ đầu. Một phương pháp là phân tích thành phần chính (PCA), tách các đặc tính chính của khuôn mặt người khỏi nhiễu liên quan đến những đặc trưng cốt lõi nhất của khuôn mặt.
Vì bài này tập trung khá nhiều vào bảo mật, có thể cũng thú vị khi biết rằng có những camera hỗ trợ Secure Boot. Theo tôi biết, Axis là một trong những nhà sản xuất tập trung vào tính năng này.