Visão geral do Razão

Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Estabelecer confiança em relação à integridade dos dados armazenados em sistemas de banco de dados tem sido um problema persistente para todas as organizações que gerenciam dados financeiros, médicos ou outros dados confidenciais. O recurso razão oferece funcionalidades de comprovação de adulteração em seu banco de dados. Você pode comprovar criptograficamente a outras partes, como auditores ou outros parceiros comerciais, que seus dados não foram adulterados.

O razão ajuda a proteger dados de qualquer invasor ou de um usuário com privilégios elevados, incluindo DBAs (Administradores de Bancos de Dados), administradores de sistema e de nuvem. Assim como ocorre com um razão tradicional, o recurso preserva os dados históricos. Se uma linha é atualizada no banco de dados, o valor anterior dela é mantido e protegido na tabela de histórico. O razão fornece uma crônica de todas as alterações feitas no banco de dados ao longo do tempo.

O razão e os dados históricos são gerenciados de maneira transparente, oferecendo proteção sem nenhuma alteração no aplicativo. O recurso mantém os dados históricos em um formulário relacional para dar suporte a consultas SQL para auditoria, análise forense e outras finalidades. Ele fornece garantias de integridade dos dados criptográficos enquanto mantém a eficiência, a flexibilidade e o desempenho do Banco de Dados SQL do Azure.

Diagram of the ledger table architecture.

Casos de uso do razão

Vamos examinar algumas vantagens para usar o razão.

Otimizar auditorias

O valor de qualquer sistema de produção baseia-se na capacidade de confiar nos dados que o sistema consume e produz. Se os dados em seu banco forem violados por um usuário mal-intencionado, isso poderá trazer resultados desastrosos aos processos de negócios que dependem desses dados.

Manter a confiança em seus dados requer uma combinação de controles de segurança adequados para reduzir possíveis ataques, práticas de backup e restauração e procedimentos de recuperação de desastres completos. As auditorias por partes externas garantem que essas práticas sejam colocadas em prática.

Os processos de auditoria são atividades que demandam muito tempo. A auditoria requer a inspeção local de práticas implementadas, com atividades como examinar logs de auditoria e inspecionar controles de autenticação e de acesso. Ainda que esses processos manuais possam expor possíveis falhas na segurança, eles não conseguem fornecer uma comprovação de que os dados não foram alterados de maneira mal-intencionada.

O razão fornece a prova criptográfica de integridade de dados para auditores. Essa prova pode ajudar a simplificar o processo de auditoria. Ele também fornece não repúdio em relação à integridade dos dados do sistema.

Processos de negócios de várias partes

Em alguns sistemas, como sistemas de gerenciamento de cadeia de fornecedores, várias organizações precisam compartilhar o estado de um processo empresarial entre elas. Esses sistemas têm dificuldades com o desafio de compartilhar os dados e confiar neles. Muitas organizações estão se voltando para blockchains tradicionais, como Ethereum ou Hyperledger Fabric, para transformar digitalmente os processos de negócios de várias partes.

O blockchain é uma ótima solução para redes de várias partes em que há baixa confiança entre os participantes da rede. Muitas dessas redes são soluções fundamentalmente centralizadas nas quais a confiança é importante, mas uma infraestrutura totalmente descentralizada seria uma solução de maior porte.

O razão fornece uma solução para essas redes. Os participantes podem verificar a integridade dos dados armazenados centralmente, sem as implicações de complexidade e desempenho que o consenso de rede introduz em uma rede blockchain.

Sucesso do cliente

Armazenamento confiável fora da cadeia para blockchain

Quando uma rede blockchain é necessária para um processo empresarial de várias partes, torna-se difícil ter a capacidade de consultar os dados no blockchain sem sacrificar o desempenho.

Padrões típicos para resolver esse problema envolvem replicar dados do blockchain em um armazenamento fora da cadeia, como um banco de dados. No entanto, depois que os dados são replicados no banco de dados por meio do blockchain, a integridade dos dados assegura que uma oferta de blockchain seja perdida. O razão fornece integridade dos dados ao armazenamento fora da cadeia de redes blockchain, garantindo a confiança total dos dados por todo o sistema.

Como ele funciona

Todas as linhas modificadas por uma transação em uma tabela do razão são convertidas criptograficamente em um hash SHA-256 por meio de uma estrutura de dados de árvore Merkle que cria um hash raiz representando todas as linhas da transação. As transações processadas pelo banco de dados são convertidas em hash SHA-256 usando uma estrutura de dados de árvore Merkle. O resultado é um hash raiz que forma um bloco. O bloco é então criptografado com hash SHA-256 usando o hash raiz do bloco junto com o hash raiz do bloco anterior como entrada para a função de hash. Essa criptografia com hash forma um blockchain.

Os hashes raiz no razão do banco de dados, também chamados de Resumos de banco de dados, contêm as transações convertidas criptograficamente em hash e representam o estado do banco de dados. Eles podem ser gerados e armazenados periodicamente fora do banco de dados no armazenamento à prova de adulteração, como Armazenamento de Blobs do Azure configurados com políticas de imutabilidade, Razão Confidencial do Azure ou dispositivos de armazenamento WORM (Grave Uma Vez Leia Muitos) locais. Os resumos de banco de dados são usados posteriormente para verificar a integridade do banco de dados. São comparados o valor do hash no resumo e os hashes calculados no banco de dados.

A funcionalidade do razão é introduzida em tabelas de duas maneiras:

Tanto as tabelas do razão atualizáveis quanto as tabelas do razão somente de acréscimo fornecem evidências de adulteração e funcionalidades para análise forense digital.

Tabelas do razão atualizáveis

As tabelas do razão atualizáveis são ideais para padrões de aplicativo que esperam emitir atualizações e exclusões para tabelas em seu banco de dados, como aplicativos SOR (sistema de registro). Não é necessário alterar os padrões de dados existentes em seu aplicativo para habilitar a funcionalidade de razão.

As tabelas do razão atualizáveis rastreiam o histórico de alterações em qualquer linha em seu banco de dados sempre que houver transações que executam atualizações ou exclusões. Uma tabela do razão atualizável é uma tabela com versão do sistema que contém uma referência a outra tabela com um esquema espelhado.

A outra tabela é chamada de tabela de histórico. O sistema usa essa tabela para armazenar a versão anterior da linha automaticamente sempre que uma linha na tabela de razão é atualizada ou excluída. A tabela de histórico é criada automaticamente quando uma tabela do razão atualizável é criada.

Os valores contidos na tabela do razão atualizável e na tabela de histórico correspondente fornecem uma crônica dos valores do banco de dados ao longo do tempo. Uma exibição de razão gerada pelo sistema combina a tabela do razão atualizável e a tabela de histórico, permitindo que você consulte facilmente essa crônica do banco de dados.

Para obter mais informações sobre as tabelas do razão atualizáveis, confira Criar e usar tabelas do razão atualizáveis.

Tabelas do razão somente de acréscimo

As tabelas do razão somente de acréscimo são ideais para padrões de aplicativo somente de inserção, como aplicativos de SIEM (gerenciamento de evento e informações de segurança). As tabelas do razão somente de acréscimo bloqueiam atualizações e exclusões no nível da API. Esse bloqueio oferece mais proteção contra adulteração de usuários privilegiados, como administradores do sistema e DBAs.

Já que apenas inserções são permitidas no sistema, as tabelas do razão somente de acréscimo não têm uma tabela de histórico correspondente, pois não há histórico a ser capturado. Assim como nas tabelas do razão atualizáveis, uma exibição do razão fornece insights sobre a transação que inseriu linhas na tabela somente de acréscimo e o usuário que realizou a inserção.

Para obter mais informações sobre tabelas do razão somente de acréscimo, confira Criar e usar tabelas do razão somente de acréscimo.

Banco de dados do razão

Os bancos de dados do razão fornecem uma solução de fácil uso para aplicativos que exigem a proteção da integridade de todos os dados durante todo o tempo de vida do banco de dados. Um banco de dados razão pode conter apenas tabelas do razão. Não há suporte para a criação de tabelas regulares (que não são tabelas do razão). Cada tabela é, por padrão, criada como uma tabela do razão atualizável com configurações padrão, o que facilita ainda mais a criação dessas tabelas. Você configura um banco de dados como um banco de dados do razão na criação. Depois de criado, um banco de dados do razão não pode ser convertido em um banco de dados regular. Para obter mais informações, confira Configurar um banco de dados do razão.

Resumos de banco de dados

O hash do bloco mais recente no razão do banco de dados é chamado de resumo de banco de dados. Ele representa o estado de todas as tabelas razão no banco de dados no momento que o bloco foi gerado.

Quando um bloco é formado, o resumo de banco de dados associado a ele é publicado e armazenado fora do banco de dados em um armazenamento à prova de adulterações. Como os resumos do banco de dados representam o estado do banco de dados no momento que foram gerados, proteger os resumos contra adulteração é fundamental. Um invasor que tivesse acesso para modificar os resumos seria capaz de:

  1. Adulterar os dados no banco de dados.
  2. Gerar os hashes que representam o banco de dados com essas alterações.
  3. Modifique os resumos para representar o hash atualizado das transações no bloco.

O razão fornece a capacidade de gerar e armazenar automaticamente os resumos do banco de dados em armazenamento imutável ou no Razão Confidencial do Azure para evitar adulterações. Como alternativa, os usuários podem gerar resumos de banco de dados manualmente e armazená-los na localização de preferência. Resumos de banco de dados são usados para verificar posteriormente se os dados armazenados em tabelas do razão não foram adulterados.

Verificação do razão

O recurso do razão não permite modificar o conteúdo de exibições do sistema do razão, das tabelas somente acréscimo e das tabelas de histórico. No entanto, um invasor ou administrador do sistema que tenha controle do computador pode ignorar todas as verificações do sistema e adulterar diretamente os dados. Por exemplo, um invasor ou administrador do sistema pode editar os arquivos de banco de dados no armazenamento. O razão não pode impedir esses ataques, mas pode garantir que qualquer adulteração seja detectada quando os dados do razão forem verificados.

O processo de verificação de banco de dados toma como entrada um ou mais resumos de banco de dados gerados anteriormente e computa novamente os hashes armazenados no razão do banco de dados com base no estado atual das tabelas do razão. Se os hashes computados não corresponderem aos resumos de entrada, a verificação falhará, indicando que os dados foram adulterados. Em seguida, o razão relata todas as inconsistências detectadas.

Confira também