I think the goal here is to make the actual message stored on broker to be
encrypted, because after we have SSL, the transmission would be encrypted.

In general there might be tow approaches:
1. Broker do the encryption/decryption
2. Client do the encryption/decryption

>From performance point of view, I would prefer [2]. It is just in that
case, maybe user does not necessarily need to use SSL anymore because the
data would be encrypted anyway.

If we let client do the encryption, there are also two ways to do so -
either we let producer take an encryptor or users can do
serialization/encryption outside the producer and send raw bytes. The only
difference between the two might be flexibility. For example, if someone
wants to know the actual bytes of a message that got sent over the wire,
doing it outside the producer would probably more preferable.

Jiangjie (Becket) Qin

On Thu, Jul 30, 2015 at 12:16 PM, eugene miretsky <eugene.miret...@gmail.com
> wrote:

> Hi,
>
> Based on the security wiki page
> <https://cwiki.apache.org/confluence/display/KAFKA/Security> encryption of
> data at rest is out of scope for the time being. However, we are
>  implementing  encryption in Kafka and would like to see if there is
> interest in submitting a patch got it.
>
> I suppose that one way to implement  encryption would be to add an
> 'encrypted key' field to the Message/MessageSet  structures in the
> wire protocole - however, this is a very big and fundamental change.
>
> A simpler way to add encryption support would be:
> 1) Custom Serializer, but it wouldn't be compatible with other  custom
> serializers (Avro, etc. )
> 2)  Add a step in KafkaProducer after serialization to encrypt the data
> before it's being submitted to the accumulator (encryption is done in the
> submitting thread, not in the producer io thread)
>
> Is there interest in adding #2 to Kafka?
>
> Cheers,
> Eugene
>

Reply via email to