问题背景
阿里云消息服务mns提供公网http可访问的服务。对于包含敏感信息的消息,如何进一步提高从用户客户端程序到阿里云的服务之间的网络链路上的安全性?目前有两种解决方案:
1.mns提供https的服务域名(计划中,预计4月中旬可用),用户选用https服务地址。
2.用户对传输的消息体进行加密,防止被窃取。
下面提供了如何对mns消息进行加密传输的最佳实践。
解决方案
1在消息发送前先消息进行加密,然后在发送;
2.在消息接收端先对消息进行解密,然后在消费;
代码说明(java):附件:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLwlmevwVZslmZvwVN4Qmbpd3LcNXZnFWbp9CXt92Yu4Wd5lGbh5yciJ2Lc9CX6MHc0RHaiojIsJye.gif)
securityqueue.zip (2463 k) 下载次数:1
1.seurityqueue.java:提供putmessage,popmessage和deletemessage3个接口,
putmesssage会在向服务器发消息前对messagebody按指定的key和加密算法加密。
popmessage 则在接收到服务端message后先按指定的方式解密然后,然后再返回解密后的消息体。
2.securitykeygenerator.java 用于生成加解密需要的secretkey。
3.securityqueuedemo.java 提供了如何使用seurityqueue的demo程序。
其他详见附件中的readme。
注意事项
1. 加解密消息对性能会有一定影响。
2. 请不要往加密队列里发送非加密的消息。