Arquitetura

A arquitetura do HSM Dinamo está baseada em princípios de modularidade, separação de partiçãos de chaves, controle de acesso, proteção contra violação, além de uma otimização com o objetivo de oferecer estabilidade e desempenho nas operações criptográficas.

Há três itens básicos na arquitetura do HSM: usuários, objetos e módulos.

Usuários são as entidades que solicitam serviços e possuem uma área de armazenamento dentro do HSM; estas áreas também são chamadas de partições de usuários. Também são os usuários que podem abrir sessões de serviço com o HSM. A cada usuário corresponde uma partição no HSM.

Objetos são as entidades armazenadas dentro das partições do HSM. Todo objeto está intrinsecamente relacionado a um usuário. Há um tipo especial de objeto, que é aquele que contém material criptográfico, normalmente uma chave de criptografia simétrica ou assimétrica; estes objetos são chamados de chaves e tem um nível de proteção e controle maior que os demais objetos. Os demais objetos podem ser de diversos tipos, como certificados ou cadeias de certificados digitais, listas de certificados revogados, ou ainda um objeto opaco, sem significado para o HSM. Os objetos podem ainda ser temporários, que são objetos não persistentes entre sessões, ou seja, existem apenas durante a sessão, sendo removidos pelo HSM ao fim desta. No Dinamo todos os objetos são mantidos cifrados internamente por uma chave mestra (Server Master Key) na área de memória persistente e só são decifrados quando há requisição válida de acesso e sempre para uma memória volátil.

Módulos são as unidades provedoras de serviços dentro do HSM, cada um responsável por uma especialidade. Dentro dos módulos estão as implementações de algoritmos criptográficos ou genéricos. Existe uma interface bastante rígida de comunicação com cada módulo, expostas aos usuários através das APIs na biblioteca de funções do HSM. A exceção dos módulos Core e State Manager, que provêm serviços básicos e servem a outros módulos, todos os módulos são opcionais, ou seja, o HSM pode ser configurado na fábrica conforme as necessidades de cada demanda, otimizando custos e uso de recursos.

Dentro do HSM cada usuário é soberano em sua partição, ou seja, ele pode criar, alterar e remover os próprios objetos. Além disso ele pode também dar permissão para que outros usuários tenham acesso aos objetos em sua partição. Não existem usuários ou administradores com permissão implícita sobre partições de outros usuários; todas as permissões devem ser dadas explicitamente pelo usuário dono da partição. Não existe uma área comum ou pública para armazenamento. A partição existirá enquanto existir o usuário na base de dados do HSM.