Recursos de segurança da aplicação
Algumas famílias de controladores da HI Tecnologia (NEON e P7C) incorporam uma funcionalidade que permite à aplicação configurar quais recursos podem ser acessados via comunicação quando a aplicação estiver ativa. Esta funcionalidade permite que a aplicação corrente defina se um usuário externo (via comunicação) pode ou não executar determinadas ações no equipamento.
As ações possíveis de serem executadas são organizadas em 15 grupos, indicados na tabela a seguir:
GRUPO |
FUNÇÃO DO GRUPO |
AÇÕES INCLUSAS |
|---|---|---|
0 |
Modificar aplicação |
|
1 |
Depurar aplicação |
|
2 |
Ler base exportada |
Ler variáveis globais via comunicação |
3 |
Escrever na base exportada |
Escrever variáveis globais via comunicação |
4 |
Ler base local |
Ler variáveis de sistema |
5 |
Escrever na base local |
Escrever variáveis de sistema |
6 |
Ler base dos módulos de IO |
|
7 |
Escrever base dos módulos de IO |
|
8 |
Ler base de setup de comunicação |
Lê base de setup corrente do equipamento |
9 |
Escrever base de setup de comunicação |
|
10 |
Resetar equipamento |
|
11 |
Programar RTC |
|
12 |
Carregar Firmware |
|
13 |
Carregar bootloader |
|
14 |
Acessar o Sistema de arquivo |
Sistema de arquivo CTRL + F6 |
Ver também
Estão disponíveis na Biblioteca HI_STD dois tipos de dados enumeradores que permitem a definição de flags associados aos grupos e atributos de segurança, para mais informações acesse:
O HIstudio disponibiliza na biblioteca Biblioteca HI_STD quatro funções que podem ser utilizadas pelo programa de aplicação para definir quais dos grupos acima estarão bloqueados caso um acesso remoto ao controlador seja realizado.
Dica
Para conhecer melhor o recurso e suas funcionalidades acesse o vídeo tutorial: Recurso de segurança da aplicação.
Atributos de segurança da aplicação
A cada um dos grupos, o bloqueio de acesso via comunicação pode-se associar um atributo que irá definir o comportamento do grupo. Estes atributos estão disponíveis na tabela a seguir:
Atributo |
Descrição |
0 |
Grupo sem restrição de segurança |
1 |
Grupo com restrição de segurança liberada por senha |
3 |
Grupo com restrição de segurança sem liberação por senha |
Atributo 0: mantém o recurso de comunicação sem restrição de acesso, sendo esta a condição default para o programa de aplicação que não utilizar este recurso.
Atributo 1: será bloqueado qualquer comando de comunicação associado ao grupo especificado. Na tentativa de comunicação o mestre que enviou o comando irá obter o código de retorno de “Comando recusado por restrições de segurança” (HILS.CO_CMD_DENIED).
Nesta condição um usuário poderá ativar o comando Libera recursos de segurança disponível no HIstudio e especificar a senha definida pela aplicação para desbloquear o recurso novamente.
Quando os grupos de segurança forem liberados através de senha cabe à aplicação reabilitar o recurso de bloqueio novamente quando pertinente. Para mais informações sobre este conteúdo consulte: Identificando desbloqueio por senha.
Atributo 3: será bloqueado qualquer comando de comunicação associado ao grupo especificado. Na tentativa de comunicação o mestre que enviou o comando irá obter o código de retorno de “Comando recusado por restrições de segurança” (HILS.CO_CMD_DENIED).
Neste caso, a especificação da senha de liberação não terá efeito sobre o grupo, ou seja, quando utilizado o atributo 3 para bloquear um grupo apenas a aplicação poderá liberar este recurso novamente, logo não é possível utilizar a liberação por senha.
Nota
As funções SET_SECURITY_ATB e SET_SECURITY_GRP podem ser utilizadas pela aplicação para definir o atributo desejado para qualquer um dos grupos válidos.
A função GET_SECURITY_ATB é utilizada pela aplicação para obter o valor corrente do atributo associado a um grupo qualquer.
Para definir um mesmo atributo de segurança para vários grupos você pode utilizar a função SET_SECURITY_GRP.
Senha de liberação dos recursos de comunicação
A aplicação corrente pode definir uma senha numérica (1.. 65535) que, quando especificada corretamente, utilizando o HIstudio, permite desbloquear todos os recursos de segurança definidos.
Importante
A função SET_SECURITY_PSW pode ser utilizada pela aplicação para definir a senha de desbloqueio a ser utilizada. Esta senha pode ser alterada dinamicamente pela aplicação caso necessário e passa a ser válida imediatamente após a sua definição.
Além disso, remove as restrições de segurança de todos os grupos existentes. Portanto, esta função é também utilizada para resetar os grupos para condição default (sem restrição de acesso).
Identificando desbloqueio por senha
Podem existir situações onde a aplicação pode necessitar saber se a senha de segurança da aplicação foi especificada por algum sistema remoto e portanto a aplicação está rodando com os recursos desbloqueados.
Para obter esta informação basta a aplicação chamar a função GET_SECURITY_ATB em um grupo qualquer que esteja programado com bloqueio com liberação por senha (ATB = 1). Nesta condição, enquanto a aplicação estiver bloqueada, o valor retornado do atributo será igual a 1. Quando um acesso remoto liberar a senha, a aplicação irá ler este valor igual a zero, indicando que o recurso está liberado para acesso remoto. Note que, nesta condição, todos os grupos que foram programados com bloqueio via senha estarão liberados.
Dica
Quando for identificado o desbloqueio dos flags de segurança a aplicação pode, por exemplo, ativar um timer para reprogramar os flags após um período de tempo.