◇ OpenCyber Academy
Curso rápido · Capítulo 4 · Português

Capítulo 4 — Privacidade e proteção de dados: laboratório guiado e síntese aplicada

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 4 — Privacidade e proteção de dados: laboratório guiado e síntese aplicada

Mapa da aula

Aula 04 publicada. Mapa, exemplo, EX057.

flowchart TD
  N0["4.1 O laboratório guiado"]
  N1["4.2 Interpretar o laboratório"]
  N2["4.3 Um plano curto"]
  N3["4.4 Apresentar ao dono"]
  N4["4.5 Conferir e próximos passos"]
  N5["Laboratório — Campos do aplicativo de fidelidade ver"]
  N6["Conceitos — o script testa nomes, não valores"]
  N7["Dados — pertinência aos três conjuntos"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX057"]

Desenho lógico

flowchart LR
  N0["4.1 O laboratório guiado"]
  N1["4.2 Interpretar o laboratório"]
  N2["4.3 Um plano curto"]
  N3["4.4 Apresentar ao dono"]
  N4["4.5 Conferir e próximos passos"]
  N5["Laboratório — Campos do aplicativo de fidelidade ver"]
  N6["Conceitos — o script testa nomes, não valores"]
  N7["Dados — pertinência aos três conjuntos"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX057"]
[4.1 O laboratório guiado]
    |
    v
[4.2 Interpretar o laboratório]
    |
    v
[4.3 Um plano curto]
    |
    v
[4.4 Apresentar ao dono]
    |
    v
[4.5 Conferir e próximos passos]
    |
    v
[Laboratório — Campos do aplicativo de fidelidade ver]
    |
    v
[Conceitos — o script testa nomes, não valores]
    |
    v
[Dados — pertinência aos três conjuntos]
    |
    v
[Exemplo resolvido] --> [Exercício EX057]

Objetivos de aprendizagem

Você vai (1) conduzir um laboratório guiado de minimização; (2) reunir os achados num plano curto; (3) apresentar recomendações ao dono de um negócio.

4.1 O laboratório guiado

O Sr. Patel guia Sofia num laboratório que usa o formulário de cadastro sintético do aplicativo de fidelidade e as finalidades que a Juniper declara no aviso: ganhar e gastar pontos, um vale de aniversário e e-mails de marketing para quem aceitar. O laboratório compara cada campo coletado com os campos de que cada finalidade precisa. Ele mostra que o aplicativo coleta dez campos e que cinco deles, 50%, não são necessários para nenhuma finalidade declarada: telefone, CEP, itens de receita, gênero e um rastro de localização registrado pelo aplicativo em segundo plano.

4.2 Interpretar o laboratório

Sofia examina cada campo desnecessário. Os itens de receita são dados de saúde sem nenhuma finalidade declarada no programa. O rastro de localização acompanha os deslocamentos dos clientes, o que é invasivo e inesperado. Gênero, CEP e telefone podem ter vindo do modelo padrão do fornecedor. Nenhum dos cinco campos serve a uma finalidade declarada. O Sr. Patel lembra que coletar dados sem finalidade declarada viola os princípios da minimização e da limitação da finalidade, e que dados de saúde num programa de fidelidade também carecem da condição do artigo 9 de que precisariam.

4.3 Um plano curto

Sofia reúne os achados do mês num plano de uma página com cinco ações: retirar os cinco campos desnecessários e parar de enviar os itens de medicamentos do caixa ao fornecedor da fidelidade; assinar contratos de proteção de dados com as empresas de fidelidade e de entregas; definir prazos de retenção para os dados de fidelidade, entregas e newsletter; trocar as fotos do balcão por imagens sem clientes; e manter o depósito trancado, com uma rotina de trituração. Cada ação tem um responsável, uma estimativa de custo e uma data-alvo dentro de três meses, e o plano inteiro cabe numa página.

4.4 Apresentar ao dono

Sofia apresenta o plano ao dono da Juniper em quinze minutos. Começa pelo problema mais grave, as compras de medicamentos chegando ao fornecedor da fidelidade, e o explica em palavras simples: as compras de saúde dos clientes estão sendo compartilhadas com uma empresa de aplicativo sem motivo e sem o conhecimento deles. O dono pergunta se retirar os campos vai reduzir o valor do aplicativo. Sofia responde com calma e mostra que os pontos e os vales funcionam com os campos que restam. O dono aprova as cinco ações e pede ao fornecedor que faça as mudanças.

4.5 Conferir e próximos passos

Duas semanas depois, Sofia e o Sr. Patel conferem o aplicativo com um novo cadastro sintético. O formulário agora pede cinco campos, e a exportação do caixa não contém itens de medicamentos, apenas o gasto total e as categorias que não são medicamentos. Os contratos estão em negociação. O Sr. Patel explica que conferir depois de uma mudança confirma que o plano funcionou, em vez de supor que funcionou. Sofia planeja o próximo passo, um curso de governança, riscos e compliance, para aprender como as empresas mantêm essas melhorias ao longo do tempo. O curso termina.

Laboratório — Campos do aplicativo de fidelidade versus finalidades declaradas

"""Compare fields collected by a synthetic pharmacy loyalty app with fields its purposes need (stdlib only)."""
collected = ["name", "email", "phone", "date_of_birth", "postcode", "purchase_history",
             "prescription_items", "gender", "location_trail", "marketing_choice"]
needs = {
    "earn and spend points": {"name", "email", "purchase_history"},
    "birthday voucher": {"email", "date_of_birth"},
    "marketing emails": {"email", "marketing_choice"},
}
used = set().union(*needs.values())
unneeded = [f for f in collected if f not in used]
for f in collected:
    print(f"{f:20s} {'needed' if f in used else 'NOT NEEDED'}")
print(f"fields collected {len(collected)}; not needed for any stated purpose {len(unneeded)} ({100*len(unneeded)/len(collected):.0f}%)")

Execute com python3 lab_loyalty.py. Saída verificada:

name                 needed
email                needed
phone                NOT NEEDED
date_of_birth        needed
postcode             NOT NEEDED
purchase_history     needed
prescription_items   NOT NEEDED
gender               NOT NEEDED
location_trail       NOT NEEDED
marketing_choice     needed
fields collected 10; not needed for any stated purpose 5 (50%)

Exemplo resolvido

Sofia descobre que cinco de dez campos da fidelidade (50%) são desnecessários, incluindo itens de receita e um rastro de localização, reúne os achados do mês num plano de cinco ações, obtém a aprovação do dono e confirma as mudanças no aplicativo.

Caso sintético. O aplicativo é sintético; os artigos 5 e 9 do GDPR são reais.

Erros e limites

As finalidades listadas num aviso podem estar incompletas; pergunte ao negócio se existe outra finalidade antes de excluir campos.

Conceitos — o script testa nomes, não valores

lab_loyalty.py monta used como a união dos três conjuntos de finalidade e pergunta se cada nome coletado está nessa união. Um campo imprime needed quando o nome é membro. O script não abre o campo para ler o que foi guardado dentro dele.

Passo O que o script usa O que ele não vê
Montar used A união de pontos, vale de aniversário e e-mails de marketing Se essa finalidade é lícita
Marcar cada nome coletado Se o nome pertence a used Os valores guardados sob o nome
Contar Nomes em collected que estão fora de used Um medicamento escondido dentro de purchase_history

purchase_history está no conjunto dos pontos, então o script imprime needed. prescription_items não está em conjunto nenhum, então imprime NOT NEEDED. A conferência posterior do caixa é um segundo teste: o gasto total e as categorias que não são medicamentos podem ficar; o nome de um medicamento, não. Passar na lista de campos não faz passar na conferência do conteúdo.

Dados — pertinência aos três conjuntos

Nome coletado Conjunto de finalidade que o contém Marca do script Regra de conteúdo da conferência de duas semanas
name, email Pontos needed Ficam
date_of_birth Vale de aniversário needed Fica
marketing_choice E-mails de marketing needed Fica
purchase_history Pontos needed Não pode carregar o nome de um medicamento
phone, postcode, gender, location_trail, prescription_items Nenhum NOT NEEDED Sair

A contagem continua a verificada: 10 nomes coletados, 5 fora da união.

Fluxo de decisão — alguém diz que o formulário foi corrigido

flowchart TD
  A["Alguém afirma que a mudança da fidelidade está pronta"] --> B["Rodar lab_loyalty.py no formulário novo"]
  B --> C{"phone, postcode, prescription_items, gender e location_trail saíram?"}
  C -->|Não| D["A conferência dos campos falhou"]
  C -->|Sim| E{"A exportação do caixa ainda nomeia um medicamento?"}
  E -->|Sim| F["A lista de campos passou e a conferência do conteúdo falhou"]
  E -->|Não| G["As duas passaram: cinco campos, totais e categorias que não são medicamentos"]
  D --> H["Escrever qual conferência falhou, e a data. Deixar a ação aberta"]
  F --> H
  G --> I["Registrar os dois resultados. A ação pode fechar"]

Exemplo resolvido — cinco nomes limpos, uma linha de insulina

O formulário novo pede nome, e-mail, data de nascimento, histórico de compras e a escolha de marketing. Sofia roda o script. Os cinco nomes estão na união, e nenhum dos cinco nomes rejeitados permanece. Ela abre então a exportação de uma noite do caixa e encontra uma linha que diz insulina. A conferência dos campos passou. A conferência do conteúdo falhou, porque purchase_history é permitido como nome e o script nunca lê o interior. Ela deixa a ação aberta e diz ao dono que a exportação ainda carrega um medicamento. Pontos e o vale de aniversário não precisam desse nome.

Caso sintético. O frasco 44021 no arquivo de terça à noite é inventado. A regra de pertinência é a de lab_loyalty.py. Isto não é aconselhamento jurídico.

Aplicar

Exercícios

Continue estudando — aula 04 (capítulo 04 de 04)

← Capítulo 03 · Índice das aulas · Próximo curso pelo índice →

O índice aponta para o próximo curso do percurso de estudos.

Resoluções

Respostas-modelo para EX001–EX058. Sofia Mendes, o Sr. Raj Patel, o Brightwater Community Learning Centre, a Juniper Pharmacy e todos os números são sintéticos. As respostas do laboratório citam a saída verificada. Qualquer resposta que atenda à rubrica recebe a mesma pontuação.

EX001. Sim, porque a Juniper consegue ligá-lo a um cliente identificável.

EX002. Que o cliente provavelmente tem diabetes, uma condição de saúde.

EX003. Dados pessoais sensíveis.

EX004. Compras como testes ou medicamentos podem revelar condições de saúde.

EX005. Sete.

EX006. Necessidade.

EX007. O aplicativo de fidelidade deve coletar só o que os pontos e os vales exigem.

EX008. Tirar fotos sem clientes presentes ou com permissão clara.

EX009. Promoção nas redes sociais.

EX010. Não, eles não esperavam isso.

EX011. Não, cobre pessoas vivas.

EX012. Uma condição específica do artigo 9.

EX013. Como lista de verificação para todas as decisões seguintes.

EX014. Ler registros individuais de clientes e mudar configurações.

EX015. Para ver como os registros funcionam sem ver clientes reais.

EX016. Numa gaveta trancada e numa pasta criptografada no computador da loja.

EX017. Consultar alguém sem motivo de trabalho é uso indevido do acesso.

EX018. O dono o acrescentou ao escopo por escrito depois de falar com o entregador.

EX019. Cópias antigas de receitas num depósito destrancado.

EX020. Mexer nelas estava fora do escopo e poderia causar mais exposição.

EX021. O local, a hora e o que ela viu.

EX022. Trancou o depósito e providenciou a trituração segura das cópias vencidas.

EX023. Para que o negócio decida se houve violação e se precisa notificar.

EX024. Sim, os funcionários têm direitos pelo GDPR e pela LGPD.

EX025. Suas anotações e capturas de tela podem espalhar dados pessoais.

EX026. Saber que a revisão quer melhorar os processos, e não flagrar pessoas.

EX027. O caixa enviando toda noite as compras de medicamentos ao aplicativo de fidelidade.

EX028. Nomes, endereços e a descrição de um pacote lacrado.

EX029. Quatro.

EX030. Os do aplicativo de fidelidade e das entregas.

EX031. Instruções, confidencialidade, segurança e exclusão.

EX032. O artigo 9(2)(h), a prestação de cuidados de saúde.

EX033. Consentimento explícito, porque usam dados de saúde.

EX034. Trinta dias, depois é sobrescrito.

EX035. Os dados de fidelidade e os registros de entrega no celular do entregador.

EX036. Menos dados guardados significa menos dados que podem ser expostos.

EX037. Antes de o tratamento começar.

EX038. Se os clientes esperariam aquele fluxo.

EX039. Cinco de dez (50%).

EX040. Rastreia os deslocamentos dos clientes de forma invasiva e inesperada.

EX041. Do modelo padrão de cadastro do fornecedor.

EX042. Minimização e limitação da finalidade.

EX043. Cinco.

EX044. Um responsável, uma estimativa de custo e uma data-alvo.

EX045. As compras de medicamentos sendo enviadas ao fornecedor da fidelidade.

EX046. Que retirar campos reduziria o valor do aplicativo.

EX047. Cinco campos.

EX048. Só o gasto total e as categorias que não são medicamentos.

EX049. Para confirmar que o plano funcionou, em vez de supor.

EX050. Governança, riscos e compliance.

EX051. A Juniper consegue ligar 44021 a um cliente, então o número é dado pessoal mesmo sem nome. Pontos não declaram nem revelam uma doença, então ainda não é dado de saúde.

EX052. A linha grampeada torna o papel dado de saúde porque revela uma condição. O papel já era dado pessoal. A recusa da foto do balcão não muda.

EX053. Uma tela viva de dispensação é o registro de um cliente real, o que o escopo assinado exclui, e o celular o copiaria. Ela usa o cliente de teste inventado e guarda a captura na pasta criptografada da loja.

EX054. A comunicação contém o local, a hora e o que ela viu. Ela não move as cópias e não as lê.

EX055. O contrato da fidelidade não cobre uma oferta com o nome do medicamento. Antes de qualquer mensagem dessas, a loja precisa de consentimento explícito para essa finalidade, e o contrato da fidelidade ainda precisa dos termos do artigo 28.

EX056. A limitação da conservação falha porque os registros de entrega não têm data de fim. O dono define um prazo de entrega. Sofia não inventa o prazo profissional de retenção das receitas.

EX057. O script testa se o nome do campo está na união das finalidades. Ele não lê os valores dentro de purchase_history. O nome de um medicamento na exportação continua sendo falha da conferência de conteúdo.

EX058. A conferência dos campos passou e a do conteúdo falhou. Sofia não fecha a ação.