我自己做的相册是这样的, 每个相册有个 http 服务,随机生成一个域名(这个域名是假的,没有任何记录),用于设备之间的通信。 并且自签 ca,接口强制 https. 然后设备通信的时候根据自己的算法动态替换 DNS 请求,并且做双向认证,保证通信是安全的。 我只能考虑到手机不会被中间人攻击,并且不允许用户使用个人证书,证书加密后放到 so 包里面加固。 这个方案还有什么改进的吗? 主要是防止局域网数据泄漏,用户主动来破解的,我不想管了 。
1
xiadong1994 2023-03-04 03:38:21 +08:00
内网 IP 就无所谓 DNS 有没有记录吧,只是防中间人 https 就够了
|
2
jeesk OP @xiadong1994 ip 不固定的,都是移动设备,只能动态替换 dns.
|
3
jeesk OP 上个帖子有老哥建议说是用 mdns 的域名,但是考虑到 mdns 的域名是系统分配的,会变。就没有采用这个方案。
|
4
fuzzsh 2023-03-04 03:45:44 +08:00 via Android
Certificate Pinning
|
5
Chad0000 2023-03-04 04:00:44 +08:00 via iPhone
自签怎么保证不被中间人攻击?
|
6
opengps 2023-03-04 10:03:43 +08:00
局域网的话,所有路由器交换机等设备你管理起来基本就差不多
|
7
jeesk OP @Chad0000 首先通信是安全, 然后 ip 是我自己指定的, 即使对方强制修改 ip (这里可以通过让两个设备的 ip 一样), 我这里还会做强制的 auth 认证 ,auth 认证失败,我的逻辑是认为该设备下线了 ,不会再通信了。
|
8
jones2000 2023-03-04 12:15:15 +08:00
相册存盘的时候切分成多块并且加密, 查看的时候的时候做一个 WebAssembly 插件合并解密,( http 下载切分好的块,通过 WebAssembly 插件解密合并还原成一张图片)。WebAssembly 插件调用的时候加点验证,动态的可以用人脸,短信等等都可以,静态的就绑定手机硬件设备信息。
|
9
jeesk OP 大概情况就是这样了, 双向认证(强制), 这样没有证书基本无法互相访问。
|