Pulsar通信安全 - 端到端消息加解密

参考链接

  • https://pulsar.apache.org/docs/zh-CN/security-encryption/

Pulsar 端到端消息加解密

生产端加密,消费端解密

  • Asymmetric and symmetric encryption(非对称 + 对称)
  使用 ECDSA/RSA 非对称加密算法,加解密对称算法AES秘钥(AES秘钥动态生成)
  生产者拥有公钥,消费者拥有私钥
  生产者使用公钥对动态生成的对称秘钥加密,并存储于消息头,再发送至Broker;
 生产者使用对称秘钥对消息体进行加密;
  消费者获取消息后,用私钥对消息头的对称秘钥密文解密,得到对称秘钥再进行消息解密
  生产者可以配置使用多个公钥,不同公钥对应的私钥可以分配给不同的消费实例;
  对称秘钥的有效周期为4个小时或发送一定数量消息
  • 使用步骤
  1. 生成ECDSA/RSA 公私钥对
    openssl ecparam -name secp521r1 -genkey -param_enc explicit -out test_ecdsa_privkey.pem
    openssl ec -in test_ecdsa_privkey.pem -pubout -outform pkcs8 -out test_ecdsa_pubkey.pem

  2. 生产端实现CryptoKeyReader::getPublicKey() 接口,用于pulsar client库加载公钥,并将该接口的实现实例添加到producer ProducerConfiguration : conf.setCryptoKeyReader(keyReader);同时添加加密key到producer ProducerConfiguration ,如:conf.addEncryptionKey("myapp.key")

  3. 消费端实现CryptoKeyReader::getPrivateKey()接口,用于ulsar client库加载私钥,并将该接口的实现实例添加到consumer ConsumerConfiguration : consConf.setCryptoKeyReader;

你可能感兴趣的:(Pulsar通信安全 - 端到端消息加解密)