atishay-jain-ai/Yukti-Kavach
GitHub: atishay-jain-ai/Yukti-Kavach
一款面向印度市场的 AI 辅助反诈骗 Web 应用,帮助用户在点击、扫码或汇款前核查可疑消息、链接、QR 码和支付请求。
Stars: 0 | Forks: 0
# Yukti Kavach
### 信任之前先核查
**Yukti Kavach** 是一款专注于印度、由 AI 辅助的数字诈骗与欺诈安全 Web 应用程序,旨在帮助人们在采取行动之前,评估可疑的消息、截图、链接、QR/UPI 请求、电子邮件和支付情况。
它结合了确定性的安全检查、威胁情报信号、OCR 与 QR 提取、社区情报以及 AI 辅助解释,以提供实用的风险指导。
## 在线应用
[](https://yukti-kavach.vercel.app/)
**最新版本:** V7.4 — 最终 Web 强化 + 高级移动端
## 为什么选择 Yukti Kavach?
数字诈骗越来越多地通过各种渠道袭来:
- 可疑的短信和聊天消息
- 虚假支付请求
- 钓鱼链接
- 恶意 QR 码
- 冒充电子邮件
- 虚假的紧急情况和奖励消息
- UPI/支付欺诈
- 社会工程学企图
对于普通用户来说,分别检查每个信号可能很困难。
Yukti Kavach 将多种安全检查集成到一个注重隐私的界面中,并以通俗易懂的语言解释可疑信号。
## 核心功能
### 消息扫描
分析可疑文本消息中常见的诈骗和社会工程学指标,例如:
- 紧迫感与压力
- 冒充
- 可疑的支付请求
- 凭据请求
- 奖励或彩票兑奖声明
- 可疑链接
- 操纵性语言
### 截图扫描
上传可疑对话或消息的截图。
Yukti Kavach 使用 OCR 提取文本,并分析生成的内容以寻找诈骗指标。
上传的扫描器图像默认仅用于分析,而非永久存储。
### 链接检查
使用多种信号检查可疑 URL,包括:
- URL 结构分析
- 可疑域名指标
- Google Safe Browsing
- VirusTotal 威胁情报
- 辅助 AI 解释
系统并不单纯依赖 AI 模型来决定 URL 是否安全。
### QR / UPI 扫描
在与 QR 码和 UPI 支付请求交互之前对其进行分析。
扫描器可以提取 QR 内容并评估相关的支付或链接指标。
这对于检查通过消息应用程序、海报、截图或社交媒体收到的可疑支付请求特别有用。
### 电子邮件扫描
分析可疑的电子邮件内容,查找网络钓鱼、冒充、紧迫感、凭据窃取和其他欺诈指标。
### 支付前检查
一个专门的支付前安全工作流,旨在鼓励用户在汇款前核实可疑情况。
该功能侧重于上下文风险指标,而不是将 AI 输出作为财务担保。
### 私密扫描历史记录
通过身份验证的用户可以维护自己的扫描历史记录。
隐私控制允许用户:
- 启用或禁用未来的扫描历史记录保存
- 查看自己的历史记录
- 删除已保存的扫描历史记录
- 导出其账户数据
数据库级的 Row Level Security 有助于隔离用户拥有的记录。
### 举报诈骗
用户可以向 Yukti Kavach 的社区情报系统提供可疑标识符和诈骗信号。
社区报告被视为**信号,而非证据**,不能证明某人或某个标识符是确认的诈骗者。
报告不会自动提交给警察、银行、NPCI、政府机构或网络犯罪门户网站。
隐私保护措施包括减少不必要的 URL 详细信息,以及从可报告文本中隐去明显的敏感凭据模式。
## Family Shield
Family Shield 提供基于同意的信任圈安全工作流。
用户可以通过短时效配对码进行连接,并明确接受连接请求。
连接建立后,家庭成员可以发送安全验证请求,而无需获得对彼此私密扫描历史记录或原始扫描器输入的完全访问权限。
### Family Shield 原则
- 配对前的明确同意
- 短时效配对码
- 受控的连接生命周期
- 无完全的私密历史记录共享
- 发送者和接收者授权检查
- 数据库级关系验证
- 速率限制的安全请求
- 感知 MFA 的敏感操作
目标是帮助受信任的家庭成员互相协助,而不会将该功能变成监控工具。
## 身份验证与账户安全
Yukti Kavach 支持:
- 电子邮件/密码身份验证
- Google 登录
- 电子邮件验证
- 密码恢复
- HttpOnly 会话 cookie
- refresh-token 轮换
- CSRF 保护
- 敏感操作的请求 nonce
- 可选的 TOTP 双因素身份验证
- 感知 MFA 的授权
- 安全的账户注销
- 永久删除账户
永久删除账户包括额外的授权保障,并根据应用程序的删除流程移除与账户关联的隐私数据。
## 隐私
隐私是 Yukti Kavach 的核心设计约束。
该应用程序围绕以下原则进行设计:
- 私密的、用户拥有的扫描历史记录
- 可选的扫描历史记录持久化
- 默认情况下不永久存储扫描器图像
- 尽量减少原始敏感证据的存储
- 账户数据导出
- 扫描历史记录删除
- 永久删除账户
- 基于同意的 Family Shield 关系
- 社区报告与私密扫描历史记录分离
用户绝不应向任何在线服务提交 OTP、PIN、CVV、密码、恢复码或其他高度敏感的凭据。
## 安全架构
Yukti Kavach 使用多层安全防护,而不是仅依赖单一控制。
### 后端保护
- FastAPI 身份验证 middleware
- 明确的生产环境 CORS allowlists
- trusted-host 验证
- 安全的 cookie 配置
- 对已通过身份验证且会改变状态的请求进行 CSRF 保护
- HMAC 签名的请求 nonce
- 短时效 nonce 过期
- 一次性 nonce 消耗
- 基于 Redis 的重放保护
- 速率限制
- 敏感生产保护的 fail-closed 行为
- 请求大小限制
- 通用生产环境错误响应
- 私有 API 的 `no-store` 缓存策略
### 浏览器保护
生产环境的安全标头包括以下控制:
- Content Security Policy
- HTTP Strict Transport Security
- `X-Content-Type-Options`
- frame 限制
- Referrer Policy
- Permissions Policy
- Cross-Origin Resource Policy
动态前端渲染还在相关的 UI 路径中对用户/后端派生的内容应用输出编码。
### 数据库保护
敏感的 PostgreSQL 表使用 Supabase Row Level Security。
重要的生产环境表使用:
- RLS
- FORCE ROW LEVEL SECURITY
- 基于所有者的策略
- 受限制的匿名权限
- 严格限定范围的已验证用户权限
敏感的 `SECURITY DEFINER` 函数使用强化的执行权限和受限的 `search_path` 配置。
管理 RPC 与普通已验证用户的访问权限保持分离。
## AI 安全模型
Yukti Kavach 不会将生成式 AI 视为唯一的安全权威。
该应用程序在适用的地方将 AI 辅助分析与确定性和外部信号相结合。
示例包括:
- URL 解析
- 威胁情报提供商
- QR 提取
- OCR 提取
- 数据库/社区信号
- 明确的应用程序规则
- 身份验证和授权控制
AI 输出应被解释为辅助性指导,而不是对消息、人员、URL、QR 码或交易是否安全或恶意的担保。
## 技术栈
### 前端
- HTML5
- CSS3
- Vanilla JavaScript
### 后端
- Python
- FastAPI
- Uvicorn
### 数据库与身份验证
- Supabase
- PostgreSQL
- Supabase Auth
- Row Level Security
### 安全与基础设施
- Redis
- CSRF 保护
- HMAC 请求 nonce
- 速率限制
- 安全的 cookie 会话
- TOTP MFA
### 分析与威胁情报
- Google Gemini
- Google Safe Browsing
- VirusTotal
- Tesseract OCR
- pyzbar
### 部署
- Vercel — 前端
- Render — 后端
- Supabase — 数据库与身份验证
## 高层架构
```
┌─────────────────────┐
│ Browser │
│ HTML / CSS / JS │
└──────────┬──────────┘
│
│ HTTPS
▼
┌─────────────────────┐
│ FastAPI API │
│ │
│ Auth / CSRF / Nonce │
│ Rate Limiting │
│ Validation │
└──────┬───────┬──────┘
│ │
┌───────────┘ └────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Supabase │ │ Analysis Layer │
│ │ │ │
│ PostgreSQL │ │ Gemini │
│ Auth │ │ Safe Browsing │
│ RLS │ │ VirusTotal │
└──────────────────┘ │ OCR / QR │
└──────────────────┘
│
▼
┌─────────────────┐
│ Redis │
│ Rate / Replay │
│ Protection │
└─────────────────┘
```
## 项目结构
该仓库围绕静态前端、FastAPI 后端、数据库迁移、安全工具以及特定版本的文档进行组织。
```
Yukti-Kavach/
│
├── backend/
│ ├── main.py
│ ├── routes/
│ ├── services/
│ ├── schemas/
│ └── ...
│
├── frontend/
│ ├── pages/
│ ├── js/
│ ├── css/
│ └── ...
│
├── scripts/
│ └── security_scan.py
│
├── V*_MIGRATION.sql
├── V*_CHANGELOG.md
├── V*_TESTING.md
├── requirements.txt
├── vercel.json
└── README.md
```
特定版本的 changelog 和测试文件记录了各个版本的演进过程。本 README 描述的是当前应用程序,而不是重现完整的开发历史。
## 本地开发
### 1. 克隆仓库
```
git clone https://github.com/atishay-jain-ai/Yukti-Kavach.git
cd Yukti-Kavach
```
### 2. 创建 Python 虚拟环境
Windows:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
macOS/Linux:
```
python3 -m venv .venv
source .venv/bin/activate
```
### 3. 安装后端依赖
```
pip install -r requirements.txt
```
### 4. 配置环境变量
使用后端所需的变量创建本地环境配置。
典型的集成包括以下配置:
- Supabase
- Gemini
- Google Safe Browsing
- VirusTotal
- Redis
- Google OAuth
- 会话/cookie 安全
- 请求 nonce 签名
- 生产/开发环境源
使用仓库的 setup/version 文档来确定当前部署所需的确切变量。
### 5. 启动后端
在项目根目录下:
```
.\.venv\Scripts\Activate.ps1
cd backend
python -m uvicorn main:app --reload
```
### 6. 启动前端
在项目根目录下打开另一个终端:
```
python -m http.server 5500
```
然后打开:
```
http://localhost:5500
```
保持本地浏览始终在 `localhost` 上进行,以便开发环境的 cookie 和 CORS 行为与配置的源相匹配。
## 数据库设置
Yukti Kavach 经历了多次数据库迁移,涵盖以下领域:
- 用户拥有的扫描
- 社区诈骗报告
- 配置文件和隐私设置
- 支持请求
- 管理审核
- 账户删除
- Family Shield
- 滥用速率控制
- RLS 强化
对于全新的部署,请使用 Supabase SQL Editor 以正确的仓库顺序查看并应用所需的迁移。
请勿盲目对现有的生产数据库重新运行破坏性或历史性迁移。
生产数据库的更改应在执行前进行审查。
## 生产部署
当前架构将前端、API、数据库/身份验证以及共享的速率/重放状态分离开来。
```
Frontend → Vercel
Backend → Render
Database → Supabase PostgreSQL
Auth → Supabase Auth
Redis → shared rate-limit / replay state
```
生产配置应使用:
- 仅限 HTTPS 的源
- 明确的 CORS allowlists
- 明确的 trusted hosts
- 安全的 cookie
- 生产环境 CSRF 设置
- 强大的请求 nonce 签名密钥
- 共享 Redis
- 配置的 fail-closed 安全行为
- 适当的 OAuth 重定向配置
- 生产环境 Supabase RLS 策略
- 前端和后端健康监控
## 监控
可以独立监控前端和后端的生产可用性。
典型检查:
```
Frontend:
https://yukti-kavach.vercel.app/
Backend health:
https://yukti-kavach.onrender.com/health
```
免费托管服务在处于非活动状态后可能偶尔需要冷启动,因此在解读监控结果时应考虑到托管平台的生命周期行为。
## 负责任的使用与局限性
Yukti Kavach 是一款安全辅助工具,并不能保证防范所有欺诈。
诸如“低风险”之类的结果绝不应被解释为交易、发送者、URL、QR 码、电子邮件或人员值得信赖的证明。
同样,社区报告和自动化信号也不应被视为某人实施欺诈的法律证据。
对于高风险情况:
- 不要分享 OTP、PIN、CVV、密码或恢复码
- 独立核实支付请求
- 通过官方渠道联系银行或服务提供商
- 在适当情况下,使用官方的政府/网络犯罪举报渠道
- 当重要细节无法独立核实时,停止交易
## 截图
### 主页 — 信任之前先核查
Yukti Kavach 提供专注于印度的数字安全体验,用于检查可疑的消息、链接、QR 码、截图、电子邮件和支付情况。

### 安全仪表板
通过身份验证的用户将获得一个受保护的工作区,用于诈骗扫描、安全教育、Family Shield、扫描历史记录、报告和支付安全工具。

### 截图诈骗分析
Yukti Kavach 从可疑截图中提取内容,并将确定性的安全信号与辅助 AI 分析相结合,以解释潜在的诈骗指标和建议的后续步骤。

### 支付前检查
“支付前检查”提供了一个专门的支付前安全工作流,用户可以在汇款前在此审查可疑的消息、截图、QR 证据和支付上下文。

### Family Shield
Family Shield 在受信任的家庭成员之间启用基于同意的安全验证,而不会提供对私密扫描历史记录、原始上传或无关个人信息的完全访问权限。

### 个人资料与隐私控制
用户可以控制扫描历史记录的保存、查看私密数据计数、导出其账户数据、管理安全设置、清除扫描历史记录以及访问账户删除控制。

## 开发历史
该仓库包含特定版本的 changelog 和测试文档,开发和安全强化的过程。
示例包括:
- 身份验证改进
- 社区情报
- 管理审核
- 配置文件和隐私控制
- Google 登录
- Family Shield
- 永久删除账户
- 基于 Redis 的生产保护
- 前端和生产环境安全强化
有关历史实施细节,请参阅相应的 `V*_CHANGELOG.md` 和 `V*_TESTING.md` 文件。
## 安全
如果您发现安全问题,请避免在公开的 GitHub issue 中发布敏感的漏洞利用细节、凭据、私人用户信息或生产环境机密。
对安全敏感的发现应向项目维护者负责任地披露。
## 作者
### Atishay Jain
**Yukti Kavach** 的创建者和开发者。
[](https://github.com/atishay-jain-ai)
[](https://github.com/atishay-jain-ai/Yukti-Kavach)
[](https://yukti-kavach.vercel.app/)
## 免责声明
Yukti Kavach 提供自动化和 AI 辅助的诈骗风险分析,仅供信息参考和安全意识目的。
它不提供法律、金融、银行、执法或网络安全担保。
在采取行动之前,用户仍有责任独立核实敏感的请求和交易。
## 许可证
版权所有 © 2026 Atishay Jain。
除非本仓库中包含的许可证另有规定,否则保留所有权利。
标签:OCR识别, 反欺诈, 威胁情报, 安全防护, 开发者工具, 搜索引擎查询, 搜索语句(dork), 测试用例, 逆向工具, 防钓鱼