Capítulo 1 — Pergunta de pesquisa e método de revisão da literatura
Mapa da aula
Aula 01 publicada. Mapa, exemplo, EX001.
flowchart TD
N0["1.1 O caso"]
N1["1.2 Afinar a pergunta"]
N2["1.3 Uma busca documentada"]
N3["Laboratório — Funil de triagem"]
N4["1.4 Ler o funil"]
N5["1.5 Registrar as decisões"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX001"]
Desenho lógico
flowchart LR
N0["1.1 O caso"]
N1["1.2 Afinar a pergunta"]
N2["1.3 Uma busca documentada"]
N3["Laboratório — Funil de triagem"]
N4["1.4 Ler o funil"]
N5["1.5 Registrar as decisões"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX001"]
[1.1 O caso]
|
v
[1.2 Afinar a pergunta]
|
v
[1.3 Uma busca documentada]
|
v
[Laboratório — Funil de triagem]
|
v
[1.4 Ler o funil]
|
v
[1.5 Registrar as decisões]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX001]
Objetivos de aprendizagem
Você vai (1) transformar uma dor operacional numa questão pesquisável sobre o ciclo de vida dos certificados; (2) conduzir uma busca documentada na literatura com um funil de triagem; (3) registrar por que cada fonte foi mantida ou descartada.
1.1 O caso
Felipe Arantes é mestrando na fictícia Coldwater Polytechnic, sob orientação da Dra. Ingrid Solberg. A fictícia Briarwood Health Network mantém cerca de 1.400 certificados TLS em portais de pacientes, sistemas de laboratório e APIs internas. No ano passado, vários expiraram sem que ninguém percebesse, e os profissionais de saúde perderam brevemente o acesso aos resultados de exames. Alguns certificados se renovam automaticamente por meio de um cliente ACME, conforme definido na RFC 8555, enquanto outros são renovados à mão a partir de uma planilha. A pergunta de trabalho de Felipe é se a renovação automatizada está associada a menos incidentes de expiração por certificado-ano do que a renovação manual, e o que mais explica os incidentes que ainda acontecem. Todos os hosts e números deste livro são sintéticos.
1.2 Afinar a pergunta
Uma boa pergunta de mestrado é estreita o bastante para ser respondida em um ano e clara quanto à sua unidade. Felipe define um incidente de expiração como uma falha visível ao usuário causada por um certificado que passou da data notAfter, o campo de validade definido na RFC 5280. Sua unidade é o certificado-ano, para que um serviço com muitos certificados de vida curta não seja contado de forma injusta. Ele escreve uma pergunta primária sobre o modo de renovação e uma secundária sobre outras causas, e exclui explicitamente as falhas de revogação e as fraquezas de algoritmos, que são problemas reais, mas exigiriam outros dados. A Dra. Solberg pede que ele escreva os temas excluídos, para que o escopo não se expanda depois.
1.3 Uma busca documentada
Felipe faz buscas em três bases acadêmicas, além do índice de RFCs e das publicações do NIST, usando uma string escrita que combina termos de certificados (certificate, X.509, TLS, PKI) com termos de ciclo de vida (expiry, renewal, ACME, outage). Ele guarda as strings exatas, as datas e os números de resultados num log, para que outro estudante possa repetir a busca. As normas são buscadas separadamente, porque raramente aparecem nos índices acadêmicos, mas definem o vocabulário. As etapas de triagem seguem um padrão comum de revisão sistemática: remover duplicatas, triar títulos e resumos contra as regras de inclusão, ler os textos completos e manter apenas os estudos que relatam um desfecho de indisponibilidade ou de expiração.
Laboratório — Funil de triagem
"""Literature screening funnel for a synthetic review of certificate-lifecycle studies."""
STAGES = [("records found (3 databases + RFC/NIST search)", 412), ("after duplicate removal", 297),
("after title/abstract screen", 64), ("after full-text eligibility", 21),
("included with outage or expiry outcome", 9)]
def main():
prev = None
for name, n in STAGES:
drop = "" if prev is None else f" (-{prev - n})"
print(f"{n:>4} {name}{drop}")
prev = n
print(f"inclusion rate from deduplicated pool: {100 * STAGES[-1][1] / STAGES[1][1]:.1f}%")
if __name__ == "__main__":
main()
Execute com python3 lab_screen.py. Saída verificada:
412 records found (3 databases + RFC/NIST search)
297 after duplicate removal (-115)
64 after title/abstract screen (-233)
21 after full-text eligibility (-43)
9 included with outage or expiry outcome (-12)
inclusion rate from deduplicated pool: 3.0%
1.4 Ler o funil
A busca encontra 412 registros; restam 297 depois da remoção das duplicatas, 64 passam pela triagem de títulos e resumos, 21 passam pela elegibilidade do texto completo e 9 relatam um desfecho de expiração ou de indisponibilidade. Só 3,0 por cento do conjunto sem duplicatas acaba incluído, o que é normal para uma pergunta estreita. A maior queda, 233 registros, acontece na triagem de títulos e resumos, sobretudo artigos sobre bugs de validação de certificados, e não sobre o gerenciamento do ciclo de vida. Felipe relata cada número, porque um leitor que vê apenas os nove estudos incluídos não consegue julgar se trabalhos relevantes foram perdidos ou excluídos por motivos fracos.
1.5 Registrar as decisões
Para cada artigo lido na íntegra, Felipe escreve uma linha: citação, população, medida de desfecho, se a renovação era automatizada e o motivo da inclusão ou exclusão. Doze artigos são descartados na leitura completa, a maioria porque mediu a emissão indevida de certificados pelas autoridades certificadoras, e não a expiração nos operadores. Ele registra separadamente a literatura cinzenta, como relatórios de indisponibilidade de fornecedores, marcada como não revisada por pares, porque descreve falhas reais, mas raramente declara seus métodos. Esse log se torna um apêndice da dissertação e permite que os examinadores testem se suas conclusões decorrem das evidências que ele de fato leu.
Exemplo resolvido
Felipe escreve a pergunta com a unidade certificado-ano, registra as strings de busca e relata um funil de 412 para 9, com os motivos de cada exclusão na leitura completa.
Caso sintético. A Coldwater, a Briarwood e todos os hosts são inventados; a RFC 5280 e a RFC 8555 são reais.
Erros e limites
As buscas perdem trabalhos indexados com outras palavras, e a literatura cinzenta é irregular. Um funil mostra diligência, e não completude, então declare a data e os limites da busca.
Exercícios
-
EX001 — Pergunta de trabalho. Enuncie a pergunta primária de Felipe com sua unidade. Rubrica: 3 = a renovação automatizada com ACME está associada a menos incidentes de expiração por certificado-ano do que a renovação manual;; 2 = sem unidade;; 1 = "resolver a expiração";; 0 = nenhuma.
-
EX002 — Definição de incidente. Como é definido um incidente de expiração, e que campo marca a expiração? Rubrica: 3 = falha visível ao usuário causada por um certificado após o notAfter (RFC 5280);; 2 = definição sem o campo;; 1 = qualquer aviso;; 0 = nenhuma.
-
EX003 — Temas excluídos. Que dois temas Felipe excluiu, e por quê? Rubrica: 3 = falhas de revogação e fraquezas de algoritmos; exigem outros dados;; 2 = só os temas;; 1 = um;; 0 = nenhuma.
-
EX004 — Números do funil. Dê as contagens em cada uma das cinco etapas. Rubrica: 3 = 412, 297, 64, 21, 9;; 2 = quatro certas;; 1 = só as pontas;; 0 = nenhuma.
-
EX005 — Maior queda. Onde ocorreu a maior queda, e o que causou a maior parte dela? Rubrica: 3 = títulos/resumos, 233 registros, sobretudo artigos sobre bugs de validação;; 2 = só a etapa;; 1 = duplicatas;; 0 = nenhuma.
-
EX006 — Exclusões na leitura completa. Por que a maioria dos artigos lidos na íntegra foi excluída? Rubrica: 3 = estudavam a emissão indevida por ACs, e não a expiração nos operadores;; 2 = fora do tema;; 1 = qualidade;; 0 = nenhuma.
-
EX007 — Literatura cinzenta. Como Felipe trata os relatórios de indisponibilidade de fornecedores? Rubrica: 3 = registra-os separadamente, marcados como não revisados por pares, pois os métodos raramente são declarados;; 2 = marca-os;; 1 = ignora;; 0 = nenhuma.
Síntese
Uma pergunta estreita com uma unidade justa, uma busca reproduzível e um registro completo de decisões são a base de um estudo de mestrado crível.
Continue estudando — aula 01 (capítulo 01 de 08)
← Início do curso · Índice das aulas · Capítulo 02 →
Continue para a próxima aula já escrita.