签名 sign key 纸质邮件 历史 RSA诞生历史
API接口签名校验,如何安全保存appsecret? - 知乎 https://www.zhihu.com/question/40855191
要保证一般的客户端-服务器通信安全,可以使用3个密钥。
初始密钥是第一个,内置到app,保证最初的通信安全,用来加密-“主加密密钥”。此过程中的传输,是最容易被攻击的环节,可以采用其他辅助方式进行加密, 如HTTPS等。
其次是主加密密钥, 系统初始化之后从服务端获取生成。保存在客户端。重复利用。用来加密通信密钥。也可以由用户主动更新。
还有第三个是通信密钥,每次登陆更新,或者定期更换,用来加密通信数据。 此密钥的传输过程使用主加密密钥来加密。通信密钥就是用来加密通信数据的。但是一般这样使用的成本较高,所以 一般有 auth+token 即可。
另外,要防止被恶意攻击,你应该关注正常的业务逻辑不被破坏, 这样的方法有很多,大多在应用服务器进行处理。至于被重复攻击,属于业务逻辑和通信框架的范围,服务器资源不足,别人很容易玩死你。不要想着在防火墙或者网络层进行处理,那样的硬件/软件系统成本太高,你用不起。完全不被破解的传输是没有的,特别是内部黑客和离职员工等,商用系统/服务需要保证的是一般的安全,以及一段时间内的安全。并积极应用各种安全措施。
sign
http://people.csail.mit.edu/rivest/Rsapaper.pdf
Introduction
The era of “electronic mail” [10] may soon be upon us; we must ensure that twoimportant properties of the current “paper mail” system are preserved: (a) messagesareprivate, and (b) messages can besigned. We demonstrate in this paper how tobuild these capabilities into an electronic mail system.