# data[].attributes.body
Na matéria Segurança e Auditoria de Sistemas, podemos ver que segurança e auditoria são palavras que têm significados distintos, ou seja segurança trabalha para manter os dados completamente seguros, sem perda, dano ou qualquer erro que venha acontecer com os mesmos.
Já a auditoria nos mostra que precisamos que esses dados sejam auditados, como  identificar brechas e otimizar processos internos para diminuir o risco de falha na segurança dos dados.

# data[].attributes.body
E vamos falar um pouco sobre criptografia que faz parte de segurança da informação e auditoria:
A criptografia tem dois propósitos principais: impedir que
dados armazenados sejam lidos e permitir que dados sejam transmitidos de forma segura por um canal inseguro. Isso significa manter a confidencialidade integridade e disponibilidade.
Criptografia consiste em codificar uma informação de forma que ela seja compreensível apenas para aqueles que devem ter acesso à ela. E isso é feito através de um segredo: toda criptografia envolve algum tipo de segredo e espera-se que apenas quem tiver acesso a ele seja capaz de entender aquela informação.
A única técnica criptográfica que foi matematicamente provada ser impossível de quebrar foi a One Time Pad (OTP),
ou Chave de uso único. Com ela, mesmo que alguém disponha de tempo e recursos computacionais infinitos, não seria possível quebrar a criptografia.

# data[].attributes.body
A OTP possui quatro condições que precisam ser satisfeitas para que a segurança perfeita seja alcançada. A chave precisa ser:
Gerada de forma verdadeiramente aleatória
Pelo menos tão longa quanto a mensagem a ser cifrada
Nunca reutilizada, completa ou parcialmente mantida completamente em segredo. Problema resolvido, então? Mais ou menos... Isso porque, tais condições fazem com que o seu uso não seja eficiente para aplicações no mundo real. Então, na prática, as cifras que são realmente utilizadas baseiam-se em problemas matemáticos computacionalmente difíceis; que, por exemplo, o melhor supercomputador que existe levaria milhões de anos para resolver. As chaves dessas cifras não seguem condições tão rígidas para serem consideradas impossíveis de quebrar:
a condição de que quanto mais longa e aleatória a chave, mais difícil de quebrar, ainda é válida; mas elas são reutilizadas e, também, usadas para mensagens de todos os tamanhos, o que não encaixa nos requisitos.
Por isso, dizemos que a criptografia que realmente é utilizada não dá garantia de segurança perfeita, mas
de segurança para efeitos práticos.

# data[].attributes.body
Algoritmo de Chave Simétrica:
Algoritmos de Chave Simétrica são cifras em que a mesma chave é utilizada para criptografar e descriptografar
uma informação. Dentro disso, atualmente o mais utilizado é o AES (Advanced Encryption Standard), que é seguro e rápido. Entretanto, quando se fala em comunicação segura pela rede, esse tipo de algoritmo precisa ser utilizado em
conjunto com outros; afinal, os interlocutores precisam compartilhar um segredo, mas como estão se comunicando em um canal inseguro, só ele não basta.

Algoritmo de Chave Assimétrica:
Algoritmos de chave assimétrica utilizam um par de chaves complementares: o que é criptografado por uma pode ser descriptografado somente pela outra, e vice-versa. São utilizadas mantendo-se uma chave pública, que pode ser fornecida a qualquer um, e outra privada, que apenas o dono deve ter acesso. O algoritmo mais utilizado atualmente é o RSA (Rivest-Shamir-Adleman).

# data[].attributes.body
Uma função hash é uma função que transforma uma sequência de símbolos de tamanho qualquer, como uma mensagem, em uma sequência de tamanho fixo. Também são chamadas funções de resumo.
Essas funções têm um papel bem diferente das cifras, afinal, ao criptografar uma informação, nós queremos ter a possibilidade de descriptografá-la. A importância da função hash está relacionada com a garantia de integridade e identidade de informações trocadas, através da Assinatura Digital:
"A assinatura digital baseia-se no fato de que apenas o dono conhece a chave privada e que, se ela
foi usada para codificar uma informação, então apenas seu dono poderia ter feito isto. A verificação
da assinatura é feita com o uso da chave pública, pois se o texto foi codificado com a chave privada,
somente a chave pública correspondente pode decodificá-lo."
Uma função hash criptográfica tem a propriedade de ser extremamente difícil de reverter - por isso, são chamadas de funções unidirecionais. O que isso significa? Que para qualquer dado, é extremamente rápido (para um computador) gerar o seu hash - mas, tendo apenas o valor de um hash, é extremamente difícil (mesmo para um computador) descobrir qual era o dado original.

# data[].attributes.body
Transport Layer Security (Segurança para Camada de Transporte) é o protocolo criptográfico mais
utilizado para comunicações seguras na rede. Ele define como os algoritmos  serão utilizados para o estabelecimento de uma conexão segura através de uma troca inicial
de mensagens conhecida como "handshake" (aperto de mãos).