Definição de recursos de segurança via flag

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, este recurso permite ao usuário maior clareza e entendimento a respeito da funcionalidade do grupo ou atributo especificado, uma vez que seu nome explicita sua funcionalidade geral.

Estes tipos de dados enumeradores são:

  • SEC_FLAGS_GRP

  • SEC_FLAGS_ATB

../_images/sec_flags.png

Fig. 65 Tipos de dados enumerados associados aos recursos de segurança

Em SEC_FLAGS_GRP estão definidos 15 grupos de ações, indicados na tabela a seguir:

Nome

Valor

Descrição

SFG_CHG_APP

0

Modificar aplicação

SFG_DEBUG_APP

1

Depurar aplicação

SFG_RD_EXPV

2

Ler base exportada (variáveis globais)

SFG_WR_EXPV

3

Escrever na base exportada (variáveis globais)

SFG_RD_LOCV

4

Ler base local (variáveis de sistema)

SFG_WR_LOCV

5

Escrever na base local (variáveis de sistema)

SFG_RD_IOBASE

6

Ler base dos módulos de I/O

SFG_WR_IOBASE

7

Escrever base dos módulos de I/O

SFG_RD_SETUP

8

Ler base de setup de comunicação

SFG_WR_SETUP

9

Escrever base de setup de comunicação

SFG_RESET_EQP

10

Resetar equipamento

SFG_PROG_RTC

11

Programar RTC

SFG_UPLOAD_FW

12

Carregar Firmware

SFG_UPLOAD_BL

13

Carregar bootloader

SFG_SYSTEM_FILE

14

Acessar o Sistema de arquivo

Em SEC_FLAGS_ATB estão definidos 3 atributos de segurança, indicados na tabela a seguir:

Nome

Valor

Descrição

SFA_NO_BLOCK

0

Grupo sem restrição de segurança

SFA_PSW_BLOCK

1

Grupo com restrição de segurança liberada por senha

SFA_BLOCK

3

Grupo com restrição de segurança e sem liberação por senha


Exemplo de aplicação

Veja abaixo um exemplo de aplicação com a definição de recursos de segurança para dois grupos com o atributo de bloqueio com liberação por senha, utilizando os flags citados acima para declaração dos parâmetros das funções.

Declaração de Variáveis

Nome

Classe

Tipo

Opções

ENABLE_SECURITY

Local

BOOL

publ

RET

Local

INT

publ

MASK

Local

WORD

publ

FLAGS

Local

WORD

publ

ATB

Local

INT

publ

Clique aqui para baixar a tabela de variáveis

Código ST

(* ------------------------------------------------------------------------------

PROGRAMA DE EXEMPLO:

APLICAÇÃO DE RECURSOS DE SEGURANÇA VIA FLAGS DEFINIDOS PARA GRUPOS E ATRIBUTOS

--------------------------------------------------------------------------------*)

(* Habilite a variável ENABLE_SECURITY para proteger por senha os comandos de
   programação do RTC e o Reset do equipamento *)

IF (ENABLE_SECURITY) THEN

  (* Define uma senha de bloqueio de ações na aplicação *)
  RET := HILS.SET_SECURITY_PSW(PASSW := 16734);

  MASK := 1; (* cria mascara para definir o bit do grupo associado *)

  (* compõe os grupos a serem bloqueados por segurança *)
  FLAGS := SHL(MASK, HILS.SFG_PROG_RTC) OR SHL(MASK, HILS.SFG_RESET_EQP);

  (* Define que os grupos acima serão liberados por senha da aplicação *)
  HILS.SET_SECURITY_GRP(GROUP := FLAGS, ATB := HILS.SFA_PSW_BLOCK);

  (* Obtém o atributo de segurança corrente do comando de programação do RTC *)
  ATB := HILS.GET_SECURITY_ATB(GROUP := HILS.SFG_PROG_RTC);

  ENABLE_SECURITY := FALSE; (* reseta o tratamento *)

END_IF;