Show HN: OpenTrust – AI時代のブラウザトラストシグナル
OpenTrustは、プライバシー保護型のブラウザシグナルを収集し、ブラウザインタラクションの信頼性を評価するためのオープンソースSDKです。自動化検出、ウェブカム整合性チェック、パッシブライブネス分析などを提供し、すべての処理はクライアント側で行われ、生データはアップロードされません。
OpenTrustは、プライバシーを重視したオープンソースSDKで、モダンなWebアプリケーション向けにブラウザ上のトラストシグナルを提供します。ブラウザのインタラクションの信頼性を評価するために、プライバシー保護された信号を収集します。従来の「人間かボットか」という二値判定ではなく、信頼度スコアを返し、バックエンドの認証やデバイスの評判、サーバー側の検証システムと組み合わせて使用します。
主な機能
OpenTrustは、クリーンなTypeScript APIを通じて以下のブラウザ側トラストシグナルを公開します:
- ブラウザ自動化検出:WebDriverフラグ、ヘッドレスブラウザ、異常なプロパティを検出。
- ウェブカム整合性チェック:仮想カメラの検出、静止画やリプレイ動画の分析。
- パッシブライブネス分析:顔の存在、動き、まばたきの検出。
- マイク整合性:仮想マイクの検出、オーディオ信号の分析。
すべての処理はクライアント側で行われ、生のフレームや音声がデバイスから送信されることはありません。
使用シーン
OpenTrustは、不正防止ワークフロー、リスクスコアリングと信頼評価、ボット対策システム、ブラウザ整合性チェック、研究開発、開発者ツールやプロトタイプに適しています。ただし、KYC(本人確認)、本人確認、エンタープライズ向けライブネス検出、デバイスアテステーション、サーバー側不正検出の代替にはなりません。
設計思想
セキュリティは多層で構築されます。OpenTrustはブラウザ側のトラストシグナルに意図的に焦点を当てており、サーバー側の検証や認証システムと組み合わせて使用する必要があります。SDKは信頼度スコアを返し、「人間かボットか」という二値判定は行いません。
クイックスタート
npmでopentrust-sdkをインストールします:
npm install opentrust-sdkそして、OpenTrust.verify()を呼び出します:
import { OpenTrust } from 'opentrust-sdk';
const result = await OpenTrust.verify({ camera: true });
console.log(result.trustScore); // 0.85
console.log(result.signals);戻り値には、trustScore(0.0〜1.0)、詳細な信号(faceDetected、livenessScore、virtualCameraDetectedなど)、タイムスタンプが含まれます。
また、ReactフックuseOpenTrustやCDN経由の利用も可能です。GitHubリポジトリをクローンしてローカルでデモを実行するか、Vercel上のオンラインデモを試すことができます。
プライバシーとライセンス
OpenTrustは、生のカメラフレームやマイク音声をアップロードしません。すべての処理はクライアント側で行われます。プロジェクトはMITライセンスで提供され、コントリビューションを歓迎します。