Skip to content

Latest commit

 

History

History
69 lines (45 loc) · 3.84 KB

README-zh.md

File metadata and controls

69 lines (45 loc) · 3.84 KB

SelfCrypto

SelfCrypto通过合约维护密钥的形式为数据加解密提供去中心化密钥管理和私有动态授权的解决方案,支持google动态授权后,进行在线文本数据加解密服务

合约

  1. goerli: 0x76ed6874899fC86D3bfaaabc75942B1Db6209410

  2. mainnet: 0xec04F8Ee0493f3d763AB1624BB6aAcaCD94Ac4C1

架构

/docs/selfcrypto.png

  1. 合约: 负责存储web3密钥和后端私钥, 以及用于重置google动态授权的恢复ID
  2. 钱包:负责与合约交互,每次从合约提取密钥数据,需要动态生成签名由合约校验
  3. 动态授权: 由前端触发的的动态授权用于保证加解密必须由前后端协作才能完成
  4. 在线加解密: 作为在线加解密工具,支持用户输入或者导入文本数据进行在线加解密
  5. 混合加解密: 前端部分负责加解密明文,后端部分处理密文,密钥分离以及双层混合加密保证明文数据高度安全
  6. 加密数据托管: 官方提供key/value以及文件等形式的密文数据托管,授权密钥管理,以及在线可视化加解密等服务

需求

  • 1. web3钱包私钥和助记词频繁丢失,巨额资金被盗,存在巨大风险
  • 2. 大量的中心化软件和服务需要用户管理密码的方式,太过于繁琐和不安全
  • 3. 主机安全防护措施无法完全防止黑客入侵,直接密文存储,彻底无法解密操作明文

特性

  • web3合约; 去中心化存储管理混合加密部分密钥由合约保证防篡改
  • web2后端: google动态授权认证和授权恢复动态验证保证必须本人操作
  • 数据管理: 仅提供混合加解密服务作为在线工具,数据明文和密文由用户自行管理

安全性

  • web3: 由区块链公链合约支持去中心化环境的防篡改特性(开源到github)
  • web2: 仅仅作为动态授权和混合加解密工具,编译为wasm二进制文件嵌入web(开源到github)
  • 前端: 仅仅作为与合约交互和在线加解密工具,需要通过google动态授权与后端协作(开源到github)
  • 密钥: 密钥采用web3合约 + web2动态计算的方式维护,保证钱包账户和后端任何一方都无法单独获取明文
  • 数据: 数据采用web3 + web2混合加密的方式由用户自行保管,保证钱包账户和后端任何一方都无法单独获取明文

私有部署

  • install: git, go, npm, yarn
  • 2. contract: 自行通过remix或者其他工具部署即可
  • 3. website: cd selfcrypto && ./build.sh, website源码将自动构建在selfcrypto目录

注意

  • 官方所有合约地址采用开源版本源码部署,所有地址全部会同步更新在github文档,同时首页也会自动展示,请务必确定地址一致
  • 需要私有部署的情况: 默认参与动态计算google授权密钥的公钥为用户钱包公钥,并且在执行恢复操作重置google授权后密钥并不会改变,如果需要指定其他公钥或者不希望google授权密钥不发生改变,则需要自行指定公钥私有部署重新构建

Usage

Network

georli测试网仅用于加解密功能测试,正式使用请选择以太坊主网mainnet

Register

注册用于在合约内部初始化当前钱包账户,需要用户输入恢复ID(邮箱)

Recovery

恢复用于重置后端,需要输入收到的动态随机验证码

Encrypt-Decrypt

google动态授权通过后,进入在线加解密页面,仅仅对输入的文本数据或者上传的文本文件进行加解密操作,前后端以及合约都不进行存储