• Nenhum resultado encontrado

ESTADO DA ARTE

3.3. SEGURANÇA NAS NoCs

3.3.1. O SERVIÇO DE CONTROLE DE ACESSO

O objetivo do controle de acesso é a filtragem da informação, desta forma é garantido que somente os usuários permitidos possam exercer os seus direitos sobre os recursos do sistema. A política de controle de acesso pode ser: 1) discreta, definida pelos donos do recurso; ou 2) não discreta, definida pelo sistema. A política discreta mais popular é

65 DAC (do inglês Discretionary Access Control) [KAU02]. Já entre as políticas não discretas encontramos o controle de acesso obrigatório (MAC do inglês Mandatory Access control), e o baseado em papeis (RBAC do inglês Role Based Access Control) [TIP03]. O MAC controla as permissões para as transações de leitura e escrita. O RBAC é usado para transações mais complexas que as do MAC. No RBAC, o usuário deve ter um papel válido no sistema e somente poderá executar as transações válidas para o seu papel.

Os sistemas embarcados adotam estes conceitos. As políticas são implementadas na forma de software ou hardware. Os processadores AMD x86 [SHA11] e Efficeon [KAN11] são exemplos da implementação do controle de acesso na estrutura de computação. Estes utilizam a política de controle de acesso MAC através da utilização do bit de controle. A implementação do controle de acesso na estrutura de comunicação é o objetivo do trabalho apresentado em [COB05]. [COB05] propõe SECA (Security- Enhanced Communication Architecture), uma arquitetura baseada na estrutura de comunicação AMBA da ARM [AMB11]. AMBA é composta de dois barramentos: AHPB (Advanced High Performance Bus) barramento de alta velocidade e APB (Advanced Peripheral Bus) barramento para periféricos. Estes barramentos são conectados por uma ponte. SECA é apresentada na Figura 3.1. SECA evita ataques de modificação, extração de informação e degradação do serviço causada pela repetição da informação.

SECA é composta de dois blocos de hardware: 1- SEM (Security enforcement module) que monitora e controla as transferências de informação; e 2- SEI (Security enforcement Interface) que utiliza uma tabela para filtrar as informações que chegam a cada componente escravo do sistema. SECA também possui um componente software SK (Secure kernel) que manipula a configuração do SEM e dos SEIs. Este trabalho apresenta a primeira adaptação dos conceitos de segurança em sistemas distribuídos na implementação de estruturas de comunicação intrachip seguras. Esta adota a arquitetura centralizada da segurança. A inclusão de um módulo central como o SEM ou SK, capazes de observar todas as informações e configurar os componentes de segurança,

66 pode tornar o sistema mais vulnerável. Pelas características próprias do barramento, esta solução não é escalável. Nenhuma avaliação do impacto da inclusão da segurança sobre o desempenho do sistema é realizado.

Figura 3.1. Diagrama de blocos da arquitetura proposta por [COB05].

No trabalho de [FIO07] é proposta uma arquitetura NoC (Ver Figura 3.2) que implementa o serviço de controle de acesso para MPSoCs (do inglês Multi-processor SoC). O intuito é evitar ataques às memórias do MPSoC. A rede proposta nesse trabalho inclui os blocos DPUs (Data Protection Unit) nas interfaces da NoC e NSM (Network Secure manager). Os DPUs limitam o acesso a lugares de memória restritos. Estes blocos podem ser adicionados nas interfaces do componente mestre ou escravo. Nos componentes mestre, o DPU verifica os valores da informação antes de ser injetada na rede, já nos escravos, o DPU permite ou nega o acesso da informação à memória. O controle de acesso é baseado em uma tabela que contém os pares de endereços permitidos. O componente NSM realiza a configuração das interfaces e atualiza os valores das tabelas de acesso armazenadas nos DPUs.

67 O trabalho de [FIO07] representa um avanço na inclusão de segurança nas NoCs. A proposta de [FIO07] implementa um único nível de segurança. A segurança é implementada na interface dos escravos da NoC, aumentando desta forma o seu reaproveitamento, mas prejudicando o desempenho da rede, uma vez que os pacotes rejeitados no escravo trafegaram pela rede desperdiçando recursos. Este controle de acesso pode ser feito antes do pacote ser inserido na NoC.

Figura 3.2. Diagrama de blocos da arquitetura proposta por [FIO07].

3.3.2. AUTENTICAÇÃO

Os mecanismos de implementação do serviço de autenticação nas redes de computador são: código de autenticação MAC (do inglês Message Authentication Code), assinatura digital e desafio-resposta [AND01]. Estes mecanismos utilizam técnicas criptográficas.

68 Na autenticação baseada no código de autenticação MAC, cada emissor insere nos seus pacotes o resultado da encriptação simétrica de uma porção desse mesmo pacote (MAC). O receptor utiliza a chave simétrica37 para decriptar o MAC. Um pacote autenticado é aquele em que a porção do pacote encriptado e o MAC decriptado são iguais.

A assinatura digital é uma mensagem encriptada de forma assimétrica pelo emissor da mensagem. O emissor utiliza uma chave privada para encriptar a mensagem. O receptor utiliza a chave pública do suposto emissor para decriptar a mensagem. Um pacote autêntico é passível de decriptação com a chave pública do emissor.

O desafio-resposta é baseado na premissa que a fonte da mensagem verdadeira possui uma informação privilegiada que permite resolver um desafio. O servidor envia um desafio que só pode ser respondido pelo cliente caso este detenha as informações de autenticação corretas.

A efetividade destes três mecanismos de autenticação é baseada na segurança da chave de encriptação. Quando revelada, o sistema pode ser enganado [AND01]. Na maioria das redes de computadores, o custo da criptografia é desprezível, porém as restrições severas dos sistemas embarcados tornam a implementação destas funções complexas em fatores críticos de projeto [HAM07]. A integração de funções de criptografia na estrutura de comunicação de sistemas embarcados pode tornar-se proibitiva. Portanto, devem ser desenvolvidos novos mecanismos que permitam uma autenticação da fonte e minimizem o impacto no desempenho do sistema.

Apesar de que a falsificação de identidade é um dos ataques mais comuns nos sistemas embarcados [KOC04], até agira não se conhece nenhuma implementação de serviços de autenticação na estrutura de comunicação NoC.

69