Privastead - オープンソースの個人向けホームセキュリティカメラシステム(エンドツーエンド暗号化対応)
(github.com/privastead)- Secluso は、Raspberry Pi ベースの個人向け DIY ホームセキュリティカメラシステムで、映像をクラウドプロバイダーに渡すことなく、スマートフォンからライブ映像、通知、録画映像を確認できるようにする
- リモートアクセスは エンドツーエンド暗号化 をサポートし、一般的な手順では Secluso Deploy がイメージのビルド、ペアリング、リレー設定を処理して、5分でのセットアップを目標としている
- 対応ハードウェアは Raspberry Pi Zero 2W、Raspberry Pi Camera Module V1/V2 または OV5647・IMX219 Sony センサー搭載カメラ、Android または iPhone、Linux VPS のリレーアカウント、またはテスト用の無料ベータリレーホスティング
- 配布方式では、事前ビルド済みの Secluso OS イメージに、ユーザーのマシン上で生成した固有の認証情報を注入し、ランタイムバイナリ・配布ツール・Android アプリ・Secluso OS の再現可能ビルドを提供する
- セキュリティモデルには、信頼しないリレー設計、前方秘匿性、侵害後セキュリティが含まれるが、暗号化の利用に関する現地法の確認とユーザー自身の責任が必要
Secluso が提供するもの
- Secluso は Raspberry Pi 向けの個人用ホームセキュリティカメラシステム
- ユーザーはスマートフォンで次の機能を利用できる
- ライブ映像を見る
- 通知を受け取る
- 録画映像を開く
- 目標は、ホームセキュリティ映像を クラウドプロバイダー に預けることなく、リモートからアクセスできるようにすること
- このプロジェクトは Secluso, Inc. が開発しており、共同創業者として Ardalan Amiri Sani と John Kaczman が記載されている
主な機能
-
エンドツーエンド暗号化されたリモートアクセス
- スマートフォンからライブ映像、通知、録画映像へのアクセスをサポート
-
5分セットアップ
- 一般的なセットアップ手順では Secluso Deploy がイメージのビルド、ペアリング、リレー設定を処理
-
オープンソース
- コードを監査し、セルフホスティングし、貢献できる
-
完全に再現可能なリリース
- 公開ソースコードを基準に、ランタイムバイナリ、配布ツール、Android モバイルアプリ、Secluso OS を検証できる
要件
-
Raspberry Pi
- Raspberry Pi Zero 2W
-
カメラ
- Raspberry Pi Camera Module V1 または V2
- または OV5647・IMX219 Sony センサー搭載カメラ
-
リレー
- ユーザーの Linux VPS ログイン
- またはテスト中の無料ベータリレーホスティングを依頼するメール
-
スマートフォン
- ペアリング、通知、再生用の Android または iPhone
クイックセットアップの流れ
- 最新リリースから Secluso Deploy をダウンロードする
- パーソナライズされた Secluso OS イメージ とカメラ秘密情報の QR コードをローカルで生成する
- Secluso Deploy に SSH 経由でユーザーのリレーをプロビジョニングさせるか、テスト用の無料ベータリレーホスティングをメールで依頼する
- Raspberry Pi を起動し、モバイルアプリでペアリングする
- ハードウェアや VPS の選択が必要なら、Build Your Own Guide がハードウェアの提案と簡単な開始手順を提供する
モバイルアプリ
- セットアップ後は、モバイルアプリでリモート確認、最近のイベントの確認、暗号化されたクリップの閲覧ができる
- モバイルアプリのリンク
セキュリティと再現可能ビルド
- セキュリティモデルには 信頼しないリレー設計、前方秘匿性、侵害後セキュリティが含まれる
- 脆弱性の報告方法は SECURITY.md に記載されている
- このプロジェクトは、事前ビルド済みの Raspberry Pi イメージである Secluso OS を配布する
- Secluso Deploy はユーザーのマシン上で固有の認証情報を生成し、これを事前ビルド済みイメージに注入する
- Secluso OS、配布ツール、ランタイムバイナリ、Android アプリは完全に再現可能
- 検証資料は以下にある
- releases/README.md: バイナリと配布ツールの再現性チェッカー
- mobile_client/tool/repro/README.md: Android モバイルアプリの再現性チェッカー
- os/README.md: Secluso OS の再現性チェッカー
- イメージは配布ツールが変更を加える前に検査する必要があり、リリースから直接ダウンロードしなければならない
貢献と注意事項
- 質問や貢献を受け付けており、貢献はプロジェクトライセンスに従って行われる
- 連絡先は secluso@proton.me
- このプロジェクトは 暗号化 を使用するため、利用前に現地法の確認が必要
- ユーザーは自己責任で利用する必要があり、プロジェクト作成者はプライバシー保護やホームセキュリティについて保証しない
1件のコメント
Hacker Newsのコメント
本当に素晴らしいプロジェクト。上で挙げられていた理由から自宅に防犯カメラを設置していなかったが、これを見て考え直したくなった
オープンソースファームウェア https://github.com/openmiko/openmiko と組み合わせれば、プライバシーを重視する人たちにとって強力な組み合わせになりそう
そうなればハブ用の別マシンが不要になり、セットアップがずっと簡単になる
動作検知センサー付きカメラ向けのオープンソースのハードウェア+ファームウェア設計が必要なら、ここにある:
https://github.com/maxlab-io/tokay-lite-pcb
購入も可能:
https://www.mouser.ca/ProductDetail/Maxlab/TOKAY-LITE-01?qs=...
私が見たクローズド製品はどれもフレーム全体の平均露出を基準に絞りや露出を決めるので、ナンバープレートが真っ白な四角形になってしまう
夜間録画では明るい露出と暗い露出をなめるように切り替える必要がある
KEM[1] を使って sealed_box[2] のような構造を作れば、カメラハードウェアが物理的に押収される状況でもプライバシーを守れる
ML-KEM、つまり Kyber と McEliece-KEM、さらに ECDH や RSA-KEM を組み合わせれば耐量子性も提供できる
この種のシステムでは、従来の対称鍵アプローチもそれ自体は耐量子的だが、カメラハードウェアが長期対称鍵を保持しているため、押収後に抽出される恐れがある
一定時間ごとに鍵をハッシュするラチェット機構は役立つかもしれないが、自己回復性がなく、永続ストレージから過去の鍵が復元されるリスクがある
[1] <https://en.wikipedia.org/wiki/Key_encapsulation_mechanism>
[2] <https://libsodium.gitbook.io/doc/public-key_cryptography/sea...>
数年前、コミュニティ全体や HOA 向けの自己主権型ホームセキュリティシステムを作りたいと思っていた。IBM のエンジニアたちと、デバイスの近くで機械学習モデルを使って映像をスキャンする案を話し合った
RTMP と RTSP を使うカメラを購入して開発者たちに送り、その後 WebRTC でどこかへストリーミングするのは難しくなかった。WebRTC にはエンドツーエンド暗号化がある
ただ、自分のユースケースは暗号化された映像を保管することで、毎分・各カメラごとに異なる鍵を使い、復号プロトコルを明確に定義する必要があった
セキュリティ上の問題は、一方の端、つまり犯罪を録画することだけでなく、もう一方の端、つまり大量監視と「監視者を誰が監視するのか」にまで及ぶと考えている
長めの文章はこちら: https://community.qbix.com/t/balancing-privacy-and-accountab...
住宅所有者やゲーテッドコミュニティ向けに販売するスタートアップを一緒にやってみたいなら、qbix.com ドメインの greg まで連絡してほしい
エンドツーエンド暗号化というなら、カメラとアプリの間のトラフィックが暗号化されるという意味だと理解するが、実際にはそうではない
そうするにはカメラ内のアプリがシステムをサポートする必要があり、多くのカメラでは可能だ
とくに信頼できないサーバーや通知サービスを使うという文脈を加えればなおさらだ
信頼できないすべての機器、カメラを含めて、インターネットアクセスのないVLANに置き、メイン VLAN からはアクセスできるが逆方向は遮断している
メイン VLAN では Frigate と Home Assistant を動かしてカメラに接続している。家の外からは WireGuard で接続する
信頼できない「サーバー」コンポーネントを入れる目的が何なのか気になる。信頼できる「カメラハブ」とは別の場所、たとえばクラウドサーバー上で動かしたいということだろうか?
この点こそ、Privastead が他の解決策よりプライバシーに優れているという主張の核心なのに、説明がない
私の NVR [1] は、カメラと同じ建物内に置く信頼済みサーバーだけを使っている。私もカメラがインターネットにアクセスできないようにすることを勧めるが、クローズドソフトウェアはたいていプライバシーとセキュリティの面で完全な悪夢だからだ
[1] https://github.com/scottlamb/moonfire-nvr
個人的には安価な DigitalOcean VM を使っている
「ハブとモバイルアプリだけが暗号化されていない映像にアクセスできることを保証する」という部分が興味深い
OpenMLS の Rust 実装、安全なエンドツーエンド保管、TLS ベクトルという観点から、DIY ホームカメラ構成が Privastead ハブ経由でインターネットに接続されるなら、セキュアなトンネリングは不要になる
ここに顔認識技術とリアルタイム監視を組み込むこともできそうだ
eigenfaces を見たことがあるなら、初期の人類のように見えると感じるだろう。ひとつの手法は主成分分析 (PCA) で、顔の最も本質的な特徴と関係するノイズから、人の顔の主要な特性を分離する
セキュリティにかなり焦点が当たっているので、Secure Boot をサポートするカメラがある点も興味深いかもしれない。Axis はこの機能に注力しているメーカーのひとつだと認識している