Resumo
- CRYPTO leva um bloco contíguo, identificado por offset e length, do fluxo de handshake de um único nível de criptografia.
- Os limites do quadro e do pacote não provam mensagem TLS completa, sequência de mensagens, aceitação de certificado, disponibilidade de chave ou aplicação pronta.
- O registro deve separar transporte QUIC, remontagem por nível, análise TLS, chaves, retransmissão e recibos de conclusão.
O erro costuma nascer de uma observação verdadeira, mas pequena demais: depois de remover a proteção do pacote QUIC, alguém vê um quadro CRYPTO e registra um ClientHello ou Finished completo. O quadro, porém, só identifica um intervalo contíguo de bytes de handshake por deslocamento e comprimento, dentro de um nível de criptografia. Ele não declara que o intervalo coincide com uma mensagem TLS e não possui marcador explícito de fim.
O quadro cabe inteiro em um pacote QUIC. Isso não significa que a mensagem transportada caiba no pacote. Uma mensagem ou sequência de mensagens TLS pode atravessar vários quadros CRYPTO e vários pacotes. Um único quadro também pode começar no meio de uma mensagem e terminar antes dela. Quando há perda, a informação criptográfica necessária é reenquadrada em novos quadros CRYPTO e protegida com as chaves do mesmo nível de criptografia dos bytes originais. A nova embalagem não prova uma segunda mensagem, duplicação semântica ou repetição.
Os offsets não formam uma sequência única da conexão. Cada nível de criptografia tem seu próprio fluxo CRYPTO, começando no offset zero. Pacotes Initial, Handshake e 1-RTT podem carregar CRYPTO; pacotes 0-RTT não. Offsets iguais em níveis diferentes não devem ser concatenados. O QUIC coloca os dados na sequência correta, mantém lacunas e pode guardar dados de um nível futuro até que o TLS esteja pronto. Apenas bytes contíguos recém-disponíveis são entregues ao TLS em ordem.
Essa divisão é essencial. O QUIC ordena e armazena dados fora de ordem; o TLS armazena os bytes entregues em ordem e decide quando possui uma mensagem ou sequência completa. O TLS pode processar os dados progressivamente ou esperar. Remover a proteção do pacote não equivale a concluir a análise TLS. A disponibilidade de uma chave resulta do processamento TLS e não é comprovada pela simples presença do quadro. O quadro tampouco comprova que uma chave tenha sido instalada.
O registro operacional deve conter versão QUIC, tipo de pacote, espaço de números de pacote, nível de criptografia, resultado da proteção e número de pacote. Deve registrar também deslocamento, comprimento e um resumo criptográfico seguro para a privacidade; a faixa contígua recebida por nível; lacunas ainda armazenadas pelo QUIC; e a faixa e o momento da entrega ao TLS. Só depois da análise de uma mensagem completa deve aparecer o tipo de mensagem TLS. Validação de certificado, alertas, disponibilidade e descarte de chaves, handshake TLS completo, confirmação QUIC e aplicação pronta são recibos separados.
CRYPTO transporta apenas mensagens de handshake TLS. Alertas TLS são mapeados para códigos de erro QUIC CONNECTION_CLOSE; dados de aplicação e outros tipos de conteúdo TLS não podem ser transportados em quadros CRYPTO. CRYPTO não tem controle de fluxo, identificador de fluxo, FIN nem fim explícito. A implementação deve aceitar pelo menos 4096 bytes de CRYPTO fora de ordem. Um deslocamento máximo excessivo pode gerar FRAME_ENCODING_ERROR ou CRYPTO_BUFFER_EXCEEDED. Esses sinais tratam do transporte e da proteção de recursos; não atestam certificado aceito, transição de chave ou disponibilidade do serviço.
Se o TLS avançar para um nível superior enquanto ainda houver dados não consumidos do nível anterior, o endpoint trata a condição como PROTOCOL_VIOLATION. Quando as chaves do espaço correspondente são descartadas, os dados Initial ou Handshake também são descartados. Isso não define o limite semântico de uma mensagem TLS. O handshake TLS só termina quando a pilha TLS informa conclusão depois de enviar seu Finished e verificar o Finished do par. Confirmação do handshake QUIC e aplicação pronta são estados posteriores e independentes.
É importante manter cinco separações. TR-048 trata de confirmação do handshake e prontidão da aplicação. TR-049 trata de pacotes coalescidos no mesmo datagrama UDP. TR-045 trata do que um ACK prova. TR-056 trata da reconstrução de números de pacote. TR-063 trata da migração para um endereço preferencial. Nenhum desses temas transforma a embalagem CRYPTO em fronteira TLS.
A regra é exigir evidência na mesma camada da afirmação. A frame prova uma faixa de bytes de handshake carregada em um nível específico. A remontagem prova continuidade por nível. O parser TLS prova uma mensagem completa. Certificado, chaves, conclusão TLS, confirmação QUIC e prontidão da aplicação exigem recibos próprios.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance

