cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Encrypt and decrypt sensitive data in a source

pavan
Former Employee

Created by @pavan


This pipeline pattern will encrypt fields passed as JSON docs using a defined transform type (AES), and decrypts and gives back the original message. This pattern is useful for encrypting sensitive messages (credit card info, SSN, patients name, DOB etc).

encrypt-decrypt

Configuration

Within the JSON Generator, replace โ€œEnter certificate hereโ€ with your own certificate.

Sources: JSON
Targets: JSON
Snaps used: JSON Generator, Encrypt Field, Mapper, Decrypt Field

Downloads

Encrypt & Decrypt Fields.slp (9.1 KB)

6 REPLIES 6

andrew_holbrook
New Contributor III

@pavan Once encrypted, do I need to pass all the information onward? Is it a security risk to do so?

ENC {
  "transformation":"AES/CBC/PKCS5Padding",
  "iv":"[MYIV]",
  "type":"STRING",
  "ciphertext":"[MYCIPHERTEXT==]",
  "key_params":  {
    "passphrase":  {
      "key_gen_iterations":10000,
      "key_gen_algorithm":"[ALGORITHM]",
      "key_algorithm":"AES",
      "key_salt":"[SALTKEY]",
      "key_size":128
    }
  }
}:ENC

Yes, the information is needed to correctly decrypt the ciphertext.

No, itโ€™s okay to send the IV in the clear and the rest of the information is used to configure the decryption process.

Deepak
New Contributor II

@tstack I have a similar scenario. Please read through the steps.

  1. We are using Encryption & Decryption in 2 seperate ultra pipelines, where first pipeline would encrypt the password field and send this data to second pipeline & the second pipeline would decrypt the data and use it.
  2. The problem is we are giving away key information like Type Of Algorithm, IV, Key_SALT over the internet along with the Ciphertext which is a security concern.
  3. Our design has to have 2 seperate ultra pipelines & not pipeline execute as its an architectural decision.

How can we achieve decrypting the field, without giving away these key attributes?

tstack
Former Employee

These values are not secrets, so I donโ€™t think there should be a problem.

Can I ask what is driving the decision to not use PipeExec?