# GNU Health/Segurança
## Protegendo seu Ambiente GNU Health

A segurança é uma tarefa multidisciplinar, envolvendo componentes de rede, sistema operacional, banco de dados e de aplicação (Tryton) e os recursos humanos, para citar alguns.
Esta página vai tentar dar uma visão geral de alguns conceitos básicos que o ajudarão a melhorar o controle de acesso ao seu sistema. Também vamos falar sobre como ativar criptografia de chave pública para assinar documentos e registros de diferentes modelos.
De modo algum esta página introdutória irá substituir o conselho de especialistas em segurança de computador para sua instalação específica!

## Alertas de Segurança do GNU Health

O GNU Health libera Avisos de Segurança (Security Advisories - SA) a qualquer momento que uma vulnerabilidade é encontrada. O formato de alerta de segurança é inspirado no FreeBSD.
Os avisos de segurança do GNU Health são enviados para todos os assinantes na lista de discussão "health-security". Consulte a seção "Recursos" para se inscrever.
Você pode verificar a lista de alerta de segurança atualizada em https://ftp.gnu.org/gnu/health/security/security_advisories.html

## Controle de Acesso
### Portas padrão do servidor

O servidor JSON-RPC Tryton escuta por padrão na porta 8000. É aconselhável mudar para outra porta em ambientes de produção.

### Serverpass: O Utilitário de Senha do Servidor

O utilitário Serverpass permite que você altere facilmente a senha de super-usuário do servidor Tryton. O "super-usuário" é o único que pode fazer tarefas administrativas em bancos de dados do cliente Tryton (criar, apagar, copiar, restaurar).
Nas versões atuais do Tryton (desde 3.4) a senha do super usuário é criptografada. Para facilitar a criação e atualização da senha, o utilitário Serverpass está incluído e é chamado automaticamente no final do processo de instalação. O Serverpass usa cracklib, um pacote que impõe a utilização de senhas "fortes", assim aumenta a segurança do seu servidor.

#### Executando o Serverpasss a partir da linha de comando

Se você quiser atualizar sua senha atual, você pode executar o comando serverpass a partir da linha de comando. O utilitário está localizado em $HOME/gnuhealth/tryton/servidor/util.
Por exemplo:
A senha criptografada de super-usuário do servidor foi atualizada, na seção correspondente do arquivo trytond.conf. Aqui está uma amostra do arquivo:

## Desabilitar usuários demonstrativos em ambientes de produção

Por razões de segurança, desativar usuários demo em ambientes de produção!
O GNU Health vem com um conjunto de usuários pré-definidos para fins de demonstração. Todos eles têm o sufixo "demo_" (demo_doctor, demo_front_desk, demo_nurse, etc.).
Por favor desative-os em ambientes de produção.
Para desativar os usuários, siga o seguinte caminho: Administração -> Usuários -> Usuários
Em filtros, você pode escolher: nome de login: demo_
Desmarque a opção "ativa" de cada um deles. Os usuários demonstrativos estão agora desativado no seu ambiente.

## Criptografia de chave pública no GNU Health
### Módulo Criptográfico do GNU Health

O objetivo do módulo é o de alcançar os conceitos de confidencialidade, integridade e garantia de aceitação no GNU Health.
O módulo health_crypto atualmente fornece as seguintes funcionalidades:
* Serialização de documentos
* Codificação de documentos (MD)
* Assinatura de documentos
* Verificação de documentos
O módulo irá funcionar em registros a partir de modelos que terão esta funcionalidade, como a prescrição, a avaliação do paciente, cirurgias ou exames de laboratório.
A serialização inclui as informações em um formato predefinido (JSON) e codificação (UTF-8).
Haverá um campo que irá conter o Resumo da Mensagens do processo de serialização, e que irá verificar se há quaisquer alterações. Se houver caso de alteração em quaisquer campos.
O processo de assinatura será sobre aquele campo Resumo da Mensagem, enquanto que o processo de criptografia irá funcionar a nível de linha ou coluna.
Chave-pública/criptografia assimétrica será usado para assinar os documentos.
Os modelos padronizados que estão incluídos são Prescrição, Certidão de Nascimento e Certidão de Óbito. Claro que você pode aplicar a funcionalidade para qualquer modelo que você sentir necessidade. Além disso e com base nos pedidos da comunidade, vamos incorporando novos modelos nas próximas versões.

### Usando Assinaturas Digitais no GNU Health

O GNU Health trabalha junto com GNU Privacy Guard para assinatura e verificação de documentos. A fim de usá-lo, é necessário fazer o seguinte no seu cliente:
* O Plugin de criptografia do GNU Health para o cliente Tryton, enviado com o tarball principal (no diretório backend/plugins). A partir da versão 2.8.0, o plugin cripto do Tryton GNU Health será um pacote separado.
* O pacote GPG (vem com a maioria dos sistemas operacionais modernos).
* A biblioteca python-gnupg (https://pypi.python.org/pypi/python-gnupg).
Estes pacotes são instalados no cliente e não no servidor!

#### A instalação do plugin Crypto

Vamos supor que você tenha instalado o cliente Tryton utilizando os arquivos fontes. Suponha que você esteja usando o cliente Tryton 3.4.1 no seu diretório $HOME:
<Syntaxhighlight lang="bash"> cp -a gnuhealth_crypto_plugin_dir $HOME/tryton-3.4.1/tryton/plugins/crypto </ Syntaxhighlight>

## Reportando uma vulnerabilidade de segurança

Nós levamos a segurança muito a sério, e agradecemos sua ajuda sobre isso!
Se você acredita ter encontrado uma vulnerabilidade no GNU Health, envie um e-mail para security@gnusolidario.org