Cada usuário deve receber seu próprio certificado?
Geralmente, sim.
Você pode usar um certificado para todos (e determinar quem é o usuário real com base no nome de usuário / senha), mas se esse certificado for comprometido, você precisará emitir novos certificados para todos - isso não é conveniente para você ou seus usuários.
- Os certificados devem ser gerados por usuário quando sua conta é criada.
- Os certificados podem ser por usuário ou por dispositivo.
Esta é uma escolha de implementação. Faça o que faz sentido para o seu ambiente:
- Se você estiver verificando se o dispositivo está autorizado, um certificado por dispositivo faz sentido.
- Se você estiver verificando se um determinado usuário (U / P) é quem ele diz, o trabalho por usuário é válido.
Deve haver uma chave privada global ou uma chave para cada certificado?
Definitivamente, uma chave por certificado.
Todos os seus certificados de usuário devem ser um par público / privado, exclusivo de um usuário (ou dispositivo). Todos devem ser assinados por uma autoridade confiável (o certificado de CA da sua empresa).
Como os certificados de usuário são distribuídos?
De qualquer forma que você quiser (sujeito às restrições de várias plataformas e software). Eu sugiro que NÃO os publique em uma página da Web para qualquer pessoa no mundo copiar, mas como você obtém certificados para dispositivos é uma opção de implementação que você pode fazer.
Se você armazenar os pares de certificados em um servidor, certifique-se de que o servidor esteja seguro - você não quer que alguém coloque as mãos em todos os seus certificados (válidos). Re-chave todos os seus usuários será um aborrecimento (e muito difícil de explicar).
Definitivamente, leia a pergunta de segurança de TI que a dawud apontou para que abrange alguns dos aspectos mecânicos da geração dos certificados (e igualmente importante - a CRL). Segurança de TI também tem outras perguntas / respostas sobre autenticação de certificado que seria um grande recurso para você em relação à teoria e princípios que você precisa implementar para que isso seja seguro .