本文介绍如何进一步提高用户客户端程序与MNS服务之间的网络链路上的安全性。

背景描述

MNS提供公网HTTPS上进行消息加密传输的服务。对于包含敏感信息的消息,如何进一步提高从用户客户端程序到阿里云服务之间的网络链路上的安全性?目前有两种解决方案:

  • MNS提供HTTPS的服务域名,用户选用HTTPS服务地址。
  • 用户对传输的消息体进行加密,防止被窃取。

下文提供如何对MNS消息进行加密传输的最佳实践。

解决方案

  1. 在消息发送前先对消息进行加密,然后再发送。

  2. 在消息接收端先对消息进行解密,然后再消费。

示例代码:SecurityQueue.zip,其中:

  • SeurityQueue.java提供putMessagepopMessagedeleteMessage接口。接口说明如下:
    • putMesssage在向服务器发消息前,对消息体按指定的Key和加密算法加密。
    • popMessage在接收到服务端消息后,先按指定的方式解密,然后再返回解密后的消息体。
  • SecurityKeyGenerator.java用于生成加解密需要的secretKey
  • SecurityQueueDemo.java提供如何使用SeurityQueue的Demo程序。

详见ReadMe.txt

注意事项

  • 加解密消息对性能会有一定影响。
  • 请不要往加密队列里发送非加密的消息。