3.6 Instruc¸˜oes de Uso
3.6.4 Realizar implementac¸˜ao
Ap´os a definic¸˜ao do que deve ser feito, como deve ser feito e quais tecnologias ser˜ao apli- cadas, ´e poss´ıvel iniciar a implementac¸˜ao.
Nas etapas anteriores, ´e crucial que as tecnologias escolhidas tenham sido validadas e re- almente atendem aos requisitos definidos. Uma troca de tecnologia durante a implementac¸˜ao do sistema ´e bastante custosa. Fora isso, ´e importante que inspec¸˜oes peri´odicas sejam rea- lizadas a fim de garantir que a arquitetura de software ainda ´e seguida da forma que foi concebida – caso contr´ario, deve-se corrigir o c´odigo ou atualizar a arquitetura.
Cap´ıtulo 4
Aplicac¸˜ao I: Consumo de Energia
O crescimento da demanda de recursos de energia el´etrica motivou tanto o governo quanto a ind´ustria a buscarem formas alternativas de disponibilizar essa energia e, principalmente, de aperfeic¸oar o gerenciamento da rede el´etrica. Entretanto, aumentar a eficiˆencia e ba- lancear a malha energ´etica n˜ao ´e uma tarefa trivial [10]. Para isso, uma opc¸˜ao ´e utilizar medidores inteligentes (smart meters) que podem, periodicamente, medir e reportar o con- sumo energ´etico [56] e, com base nos dados detalhados, recomendac¸˜oes podem ser geradas. Quanto maior o n´ıvel de detalhe dos dados, melhor a recomendac¸˜ao e, consequentemente, a economia [57].
No entanto, a medic¸˜ao peri´odica e detalhada do consumo energ´etico causa preocupac¸˜oes com a privacidade dos consumidores, j´a que ´e poss´ıvel inferir informac¸˜oes pessoais a partir do que ´e coletado, como tipos de equipamentos na residˆencia ou a presenc¸a e o n´umero de moradores [58]. Em casos mais extremos, ´e poss´ıvel identificar o canal de televis˜ao sendo assistido [59].
No escopo desse estudo, duas aplicac¸˜oes foram investigadas: (i) consumo em grupos de residˆencias ou regi˜oes – visando o balanceamento energ´etico; (ii) c´alculo de consumo energ´etico mensal por consumidor – visando a reduc¸˜ao de custos e de erros de leitura. Com o uso de medidores inteligentes torna-se poss´ıvel a reduc¸˜ao ou at´e mesmo dispensa de visitas f´ısicas de agentes da concession´aria para aferic¸˜ao dos medidores nas residˆencias.
Nas subsec¸˜oes a seguir, a vis˜ao geral da arquitetura – que ´e uma instˆancia do modelo proposto no cap´ıtulo 3 – e seus requisitos ser˜ao apresentados, seguidos pela descric¸˜ao de cada componente arquitetural, detalhes sobre implementac¸˜ao e, por fim, experimentos realizados
4.1 Vis˜ao Geral 42
com as abordagens dispon´ıveis.
4.1
Vis˜ao Geral
Figura 4.1: Diagrama UML da aplicac¸˜ao para c´alculo de consumo de energia
A arquitetura de software, ilustrada pela Figura 4.1, possui os seguintes componentes: barramentos de mensagens (KafkaBus), medidores inteligentes (SmartMeter), agregado- res (IntelSGXAggregator e HomomorphicAggregator) e consumidores (IComponent). Os barramentos de mensagens s˜ao respons´aveis pela comunicac¸˜ao entre os medidores inte- ligentes, os agregadores e os consumidores. Ap´os serem produzidos, os dados ser˜ao publi- cados no barramento de mensagens e, em algum momento, ser˜ao tratados por agregadores. Estes podem realizar operac¸˜oes arbitr´arias, mas devem ser capazes de execut´a-las de forma segura. Posteriormente, os dados agregados ser˜ao consumidos por aplicac¸˜oes.
4.2
Elementos Arquiteturais
A Figura 4.2 cont´em uma vers˜ao simplificada da arquitetura proposta. Os Smart Meters representam os produtores, o Apache Kafka representa o barramento de mensagens e a agregac¸˜ao dos dados pode ser utilizando Intel SGX ou criptografia homom´orfica. Os detalhes ser˜ao listados a seguir.
4.2 Elementos Arquiteturais 43
Figura 4.2: Esquema simplificado da aplicac¸˜ao para c´alculo de consumo de energia
4.2.1
Barramentos de mensagens
Um barramento de mensagem ´e respons´avel pela troca de informac¸˜oes entre produtores, agregadores e consumidores de forma transparente. Um produtor pode criar mensagens sem saber maiores detalhes sobre os agregadores (como localizac¸˜ao f´ısica ou enderec¸o IP), por exemplo. Com isso, ´e poss´ıvel reduzir o acoplamento e garantir escalabilidade.
Cada componente da arquitetura deve se inscrever em um t´opico de mensagens. Todos os agregadores ou consumidores de um t´opico receber˜ao as mensagens enviadas pelos pro- dutores. Ademais, ´e permitido o consumo exclusivo de novas mensagens ou de todas as mensagens retidas de um certo t´opico. Por fim, a quantidade de mensagens armazenadas para um t´opico pode ser configur´avel.
Por ser cr´ıtico na comunicac¸˜ao entre todos os envolvidos, esse componente permite a troca segura de mensagens. Cada envolvido pode possuir um certificado emitido por uma autoridade certificadora que permitir´a sua autenticac¸˜ao e evitar´a que intrusos enviem ou rece- bam mensagens. Al´em disso, mensagens com conte´udo sens´ıvel devem estar criptografadas.
´
E papel do agregador transformar informac¸˜ao sens´ıvel e criptografada – como o consumo energ´etico instantˆaneo de uma residˆencia – em informac¸˜ao agregada – como o consumo em um intervalo maior de tempo ou o consumo de uma regi˜ao. .
4.2 Elementos Arquiteturais 44
4.2.2
Agregadores
Ap´os o consumo dos dados de um t´opico comum, ´e necess´ario realizar operac¸˜oes nos mes- mos. Tais operac¸˜oes, como soma, multiplicac¸˜ao ou agrupamento, s˜ao realizadas pelos agre- gadores. Dois agregadores s˜ao exemplificados na nossa implementac¸˜ao da arquitetura: um agregador homom´orfico e um agregador baseado em Intel SGX. Ambos s˜ao projetados para realizar operac¸˜oes de soma e ser˜ao detalhados nas sec¸˜oes a seguir.
Agregador Homom´orfico
Esse agregador faz uso da criptografia homom´orfica para realizar operac¸˜oes de forma segura e privada nos dados. A abordagem utilizada por esse componente ´e baseada no esquema proposto por BUSOM et al. [60], que faz uso do sistema de criptografia de ElGamal [61]. Tal sistema possui a propriedade homom´orfica multiplicativa mas com possibilidade de adic¸˜ao [62].
Para que esse tipo de agregac¸˜ao funcione ´e necess´ario que cada produtor p ∈ [1, n] de um t´opico comum possua os seguintes itens:
• Um n´umero primo grande q (de pelo menos 2048 bits) e um gerador g de ordem q do grupo multiplicativo G de Z∗q;
• Uma chave privada xp;
• Uma chave p´ublica yp = gxp;
• Um certificado certpa ser validado por uma autoridade certificadora;
Sempre que novos produtores se inscreverem em um t´opico de mensagens, uma fase de configurac¸˜ao ´e obrigat´oria a fim de permitir o envio das informac¸˜oes. O procedimento da configurac¸˜ao ´e descrito a seguir:
1. O agregador envia uma mensagem de requerimento de configurac¸˜ao;
2. Cada produtor envia ype certp ao t´opico;
3. O agregador verifica a validade de cada certpe insere uma mensagem com {y1, ..., yn}
4.2 Elementos Arquiteturais 45
4. Cada produtor verifica a validade de cada certp e calcula uma chave p´ublica global
y =
n
Y
p=1
yp.
Os passos acima s˜ao realizados para garantir que (i) existam somente medidores v´alidos em uma regi˜ao – evitando que um atacante forge um medidor e (ii) a chave p´ublica global seja utilizada na computac¸˜ao de valores intermedi´arios, permitindo que o valor agregado seja conhecido no final de cada coleta.
Os seguintes passos ser˜ao realizados a cada instante de tempo que for necess´aria uma coleta de dados para agregac¸˜ao:
1. O agregador envia uma mensagem de requerimento de dados ou, alternativamente, os produtores podem iniciar uma transmiss˜ao periodicamente;
2. Cada produtor p gera um n´umero aleat´orio zp ∈ Z∗q e calcula Cp = Ey(gvp+zp) =
(cp, dp), em que vp representa o valor coletado por p e a func¸˜ao Ey ´e a func¸˜ao de
criptografia de ElGamal – utiliza-se a chave p´ublica global y para encriptar valores;
3. Todos os valores Cp s˜ao publicados no t´opico do barramento de mensagens associado
`aquele produtor (por exemplo, a regi˜ao em que o medidor est´a instalado);
4. O agregador realiza sua computac¸˜ao: C =
n Y p=1 cp, n Y p=1 dp ! e insere C no t´opico;
5. Cada produtor calcula Tp = cxp.gzpe publica-o no t´opico;
6. O agregador pode, ent˜ao, obter D = d.
n Y p=1 Tp !−1 , em que d = n Y p=1 dp;
7. Por fim, ´e poss´ıvel obter V =
n
X
p=1
vp ao calcular loggD;
8. O agregador publica o resultado obtido no mesmo ou em outro t´opico do barramento de mensagens, de forma que ele fique dispon´ıvel para poss´ıveis consumidores.
Agregador Intel SGX
O agregador Intel SGX faz uso da tecnologia de mesmo nome para prover seguranc¸a e privacidade dos dados sens´ıveis sendo agregados, atrav´es do uso de ´areas protegidas de
4.2 Elementos Arquiteturais 46
mem´oria (enclaves), inacess´ıveis at´e mesmo por usu´arios com mais privil´egios. Em nossa implementac¸˜ao usamos o algoritmo de criptografia sim´etrica AES Galois/Counter Mode (AES-GCM) descrito por DWORKIN [63], com chave de tamanho de 128 bits, para a troca de mensagens confidenciais entre os produtores e o agregador. Este algoritmo permite verifi- car a autenticidade dos dados confidenciais recebidos por meio da detecc¸˜ao de modificac¸˜oes n˜ao intencionais ou modificac¸˜oes intencionais n˜ao autorizadas feitas aos dados. Al´em disso, torna a comunicac¸˜ao imune a ataques do tipo side-channel baseados em software.
As seguintes condic¸˜oes precisam ser satisfeitas para o correto funcionamento deste agre- gador:
• Cada produtor p ∈ [1, n] de um t´opico deve possuir uma chave sim´etrica kp;
• O agregador ter´a acesso a uma chave kp a partir do processo de atestac¸˜ao remota.
Para utilizar chaves de 128 bits na comunicac¸˜ao segura, cada produtor p ∈ [1, n] de um t´opico atesta o agregador, ou seja, verifica se o agregador est´a sendo executado em um en- clave SGX, por meio do processo de Atestac¸˜ao Remota, descrito por ANATI et al. [64]. Em poucas palavras, o processo de atestac¸˜ao remota aproveita os recursos do hardware para pro- duzir uma assinatura criptogr´afica do conte´udo dos enclaves SGX com uma chave somente acess´ıvel pelo processador da plataforma. O servic¸o de atestac¸˜ao fornecido pela Intel (IAS) pode verificar se as informac¸˜oes produzidas realmente vieram de um enclave SGX com o c´odigo correto. Esse processo tamb´em possui um esquema de troca de chave subjacentes baseado no protocolo de troca de chave Diffie-Hellman (ECDH) da curva el´ıptica. Como re- sultado, cada produtor ir´a (i) verificar o agregador com relac¸˜ao a sua integridade e (ii) derivar a chave de 128 bits kp para comunicac¸˜oes seguras – tamb´em derivada pelo agregador.
Ao receber dados confidenciais, o agregador pode decifrar as mensagens usando o mesmo algoritmo AES-GCM e, em seguida, executar a agregac¸˜ao nos dados confidenci- ais decifrados. A confidencialidade e a integridade dos dados s˜ao alcanc¸adas por meio das garantias fornecidas pelos enclaves SGX [65].
Para agregar uma coleta de dados feita em um instante de tempo, os seguintes passos ser˜ao realizados:
1. O agregador envia uma mensagem de requerimento de dados ou, alternativamente, os produtores podem iniciar uma transmiss˜ao periodicamente;
4.3 Requisitos Funcionais 47
2. Cada produtor p cria um valor aleat´orio (nonce) np, e calcula Cp, Mp = Ge(vp, np, kp),
onde Cp ´e o valor coletado por p ap´os a encriptac¸˜ao AES-GCM, Mp ´e o c´odigo de
autenticac¸˜ao de mensagem de vp, onde vp ´e o valor medido por p, e a func¸˜ao Ge ´e a
func¸˜ao de criptografia AES-GCM no modo de encriptac¸˜ao.
3. Cada produtor publica Cp, Mp, e np ao t´opico;
4. O agregador obt´em V = n X p=1 vp ao calcular n X p=1 Gd(Cp, np, kp, Mp), onde a func¸˜ao Gd
´e a func¸˜ao AES-GCM no modo decriptac¸˜ao, ao mesmo tempo em que verifica a inte- gridade de cada uma das mensagens recebidas no t´opico;
5. O agregador publica o resultado obtido no mesmo ou em outro t´opico do barramento de mensagens, de forma que ele fique dispon´ıvel para poss´ıveis consumidores.
Os dados confidenciais processados por este agregador est˜ao livres de vazamento de informac¸˜oes porque a mem´oria dentro de um enclave SGX ´e criptografada. Al´em disso, todos os dados s˜ao trocados usando uma conex˜ao segura estabelecida pelo processo de atestac¸˜ao remota. Esse processo tamb´em garante que o c´odigo em execuc¸˜ao dentro de um enclave SGX n˜ao tenha sido modificado.
4.3
Requisitos Funcionais
Essa arquitetura deve atender aos requisitos citados nas sec¸˜oes 3.1.10, 3.1.11, 3.1.12, assim como os requisitos funcionais a seguir.
4.3.1
Cadastrar Regi˜oes
Descric¸˜ao: A aplicac¸˜ao deve permitir que novas regi˜oes sejam criadas. Justificativa: Os dados devem ser agregados por regi˜ao, logo, ´e necess´ario que
o sistema permita que novas regi˜oes sejam criadas.
Vantagens: Essa separac¸˜ao ´e ´util para facilitar a divis˜ao da agregac¸˜ao dos da- dos em diferentes n´os.
4.3 Requisitos Funcionais 48