### 是否有人曾提过类似的问题? 否(No) ### 你觉得APP有什么不足之处? 1. 现在app里bark的加密使用的是固定的16位IV否则报错,而AES-CBC是要求每次发送使用不同IV来防止相同信息的密文一致的。Bark当前支持随机IV(见[代码](https://github.com/Finb/Bark/blob/801e727e0528005c82495ecdc24318285e6968eb/NotificationServiceExtension/Processor/CiphertextProcessor.swift#L72)),当随机iv不存在时才使用app中存储的固定iv。 将app优化为随机IV可以提升安全性; 2. 现在app里bark加密的Key和IV以明文形式显示,可以改进成第二次及之后打开时像bark token一样显示成星号***; 3. bark的app已经支持AES-GCM加密了,但现在app只支持到AES-CBC。 ### 你觉得该怎么去完善会比较好?【非必答】 1. 这一步提升的安全性最大,只需要更改[com.idormy.sms.forwarder.utils.sender.BarkUtils](https://github.com/pppscn/SmsForwarder/blob/main/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BarkUtils.kt)和[com.idormy.sms.forwarder.fragment.senders.BarkFragment](https://github.com/pppscn/SmsForwarder/blob/main/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt)这两个类就可以支持随机IV。取消CBC时16位IV的强制要求,当IV留空时(或者增加一个单选框)使用随机IV(随机产生16个bytes的字符组合),在构造request时加上iv这个field来通知bark要使用的iv,其他部分保持不变; 2. 加密存储key和iv或者显示成星号; 3. 可以尝试增加GCM的支持,但是可能比较麻烦并且CBC加随机iv已经够用了,安全性提升不显著。
是否有人曾提过类似的问题?
否(No)
你觉得APP有什么不足之处?
现在app里bark的加密使用的是固定的16位IV否则报错,而AES-CBC是要求每次发送使用不同IV来防止相同信息的密文一致的。Bark当前支持随机IV(见代码),当随机iv不存在时才使用app中存储的固定iv。
将app优化为随机IV可以提升安全性;
现在app里bark加密的Key和IV以明文形式显示,可以改进成第二次及之后打开时像bark token一样显示成星号***;
bark的app已经支持AES-GCM加密了,但现在app只支持到AES-CBC。
你觉得该怎么去完善会比较好?【非必答】
这一步提升的安全性最大,只需要更改com.idormy.sms.forwarder.utils.sender.BarkUtils和com.idormy.sms.forwarder.fragment.senders.BarkFragment这两个类就可以支持随机IV。取消CBC时16位IV的强制要求,当IV留空时(或者增加一个单选框)使用随机IV(随机产生16个bytes的字符组合),在构造request时加上iv这个field来通知bark要使用的iv,其他部分保持不变;
加密存储key和iv或者显示成星号;
可以尝试增加GCM的支持,但是可能比较麻烦并且CBC加随机iv已经够用了,安全性提升不显著。