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
- EX057 — Dentro do campo. Por que
purchase_historypode imprimirneededenquanto uma linha de insulina guardada nele ainda é uma falha? Rúbrica: 3 = o script testa o nome do campo contra a união, não os valores dentro do campo; o nome de um medicamento tem de ficar fora da exportação;; 2 = o script não lê o interior do campo;; 1 = vago;; 0 = nenhuma. - EX058 — Duas conferências. O formulário tem os cinco campos permitidos e a exportação ainda lista insulina. Qual conferência passou, qual falhou, e Sofia fecha a ação? Rúbrica: 3 = a conferência dos campos passou; a do conteúdo falhou; ela não fecha a ação;; 2 = ela não fecha;; 1 = ela fecha;; 0 = nenhuma.
Exercícios
- EX039 — Parcela desnecessária. Que parcela dos campos da fidelidade era desnecessária? Rubrica: 3 = 5 de 10, 50%;; 2 = parcialmente correta;; 1 = errada;; 0 = nenhuma.
- EX040 — Rastro de localização. Por que o rastro de localização preocupa? Rubrica: 3 = rastreamento invasivo e inesperado;; 2 = menciona rastreamento;; 1 = vago;; 0 = nenhuma.
- EX041 — Padrões do fornecedor. De onde podem ter vindo gênero, CEP e telefone? Rubrica: 3 = do modelo padrão de cadastro do fornecedor;; 2 = parcialmente correta;; 1 = vago;; 0 = nenhuma.
- EX042 — Princípios violados. Que dois princípios a coleta desnecessária viola? Rubrica: 3 = minimização e limitação da finalidade;; 2 = os dois;; 1 = um;; 0 = nenhuma.
- EX043 — Ações do plano. Quantas ações o plano de Sofia contém? Rubrica: 3 = cinco;; 2 = parcialmente correta;; 1 = errada;; 0 = nenhuma.
- EX044 — Detalhes do plano. O que cada ação tem? Rubrica: 3 = responsável, estimativa de custo, data-alvo;; 2 = a maioria;; 1 = um;; 0 = nenhuma.
- EX045 — Problema principal. Que problema Sofia apresentou primeiro? Rubrica: 3 = as compras de medicamentos chegando ao fornecedor da fidelidade;; 2 = parcialmente correta;; 1 = outro;; 0 = nenhuma.
- EX046 — Preocupação do dono. Com o que o dono se preocupou? Rubrica: 3 = retirar campos reduzir o valor do aplicativo;; 2 = parcialmente correta;; 1 = vago;; 0 = nenhuma.
- EX047 — Campos restantes. Quantos campos o formulário pede depois da mudança? Rubrica: 3 = cinco;; 2 = parcialmente correta;; 1 = dez;; 0 = nenhuma.
- EX048 — Exportação do caixa. O que a exportação do caixa contém agora? Rubrica: 3 = gasto total e categorias que não são medicamentos;; 2 = parcialmente correta;; 1 = medicamentos;; 0 = nenhuma.
- EX049 — Conferência posterior. Por que conferir depois de uma mudança? Rubrica: 3 = para confirmar que o plano funcionou;; 2 = menciona confirmação;; 1 = vago;; 0 = nenhuma.
- EX050 — Próximo estudo. O que Sofia planeja estudar a seguir? Rubrica: 3 = governança, riscos e compliance;; 2 = parcialmente correta;; 1 = vago;; 0 = nenhuma.
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.