Qual é o sentido de um registro de data e hora no OAuth se um Nonce pode ser usado apenas uma vez?

Inicialmente, eu interpretei mal a implementação do carimbo de data / hora do OAuth, pensando que isso significava que um carimbo de data / hora que não estava dentro de 30 segundos após o horário atual seria negado, mas isso ocorreu errado por algumas razões, incluindo o fato de que não poderíamos garantir que cada relógio do sistema estava sincronizado o suficiente até os minutos e segundos, independentemente do fuso horário. Depois, li novamente para obter mais clareza:

"Salvo indicação em contrário do provedor de serviços, o registro de data e hora é expresso no número de segundos desde 1º de janeiro de 1970 00:00:00 GMT. O valor do registro de data e hora DEVE ser um número inteiro positivo e DEVE ser igual ou superior ao timestamp usado em solicitações anteriores. "

fonte:http: //oauth.net/core/1.0/#nonc

Significando que os carimbos de data e hora são comparados apenas em relação a solicitações anteriores da mesma fonte, não em comparação com o relógio do sistema do servido

Então li uma descrição mais detalhada aqui:http: //hueniverse.com/2008/10/beginners-guide-to-oauth-part-iii-security-architecture

(TL; DR? - pule para as partes em negrito abaixo)

Para impedir que solicitações comprometidas sejam usadas novamente (reproduzidas), o OAuth usa nonce e timestamp. O termo nonce significa "número usado uma vez" e é uma sequência única e geralmente aleatória que visa identificar exclusivamente cada solicitação assinada. Por ter um identificador exclusivo para cada solicitação, o provedor de serviços pode impedir que as solicitações sejam usadas mais de uma vez.Isso significa que o Consumidor gera uma sequência única para cada solicitação enviada ao Provedor de Serviços, e o Provedor de Serviços controla todas as não-regras usadas para impedir que sejam usadas pela segunda ve Como o valor nonce está incluído na assinatura, ele não pode ser alterado por um invasor sem conhecer o segredo compartilhad

O uso de nonces pode ser muito caro para os Provedores de Serviços, pois eles exigem armazenamento persistente de todos os valores recebidos desde sempre. Para facilitar as implementações, o OAuth adiciona um valor de carimbo de data / hora a cada solicitação, permitindo que o provedor de serviços mantenha apenas os valores de nonce por um tempo limitado. Quando uma solicitação é recebida com um carimbo de data e hora mais antigo que o período de tempo retido, ela é rejeitada, pois o Provedor de Serviços não possui mais números desse períod É seguro supor que uma solicitação enviada após o prazo permitido seja um ataque de repetição. O OAuth fornece um mecanismo geral para implementar registros de data e hora, mas deixa a implementação real para cada provedor de serviços (uma área que muitos acreditam que deve ser revisada pela especificação). Do ponto de vista de segurança, o nonce real é a combinação do valor do carimbo de data e hora e da string nonce. Somente juntos, eles fornecem um valor perpétuo e único que nunca pode ser usado novamente por um invasor.

A razão pela qual estou confuso é que se o Nonce for usado apenas uma vez, por que o Provedor de Serviços rejeitaria com base no carimbo de data / hora? "O provedor de serviços não possui mais itens não desse período" é confuso para mim e soa como se um item não pudesse ser reutilizado desde que esteja dentro de 30 segundos apósa última vez que foi usad

Então alguém pode esclarecer isso para mim? Qual é o ponto do carimbo de data / hora se o nonce é usado uma única vez e não estou comparando o carimbo de data / hora com o meu próprio relógio do sistema (porque isso obviamente não seria confiável). Faz sentido que os carimbos de data e hora sejam relativos um ao outro, mas com o requisito exclusivo de nonce parece irrelevant

questionAnswers(4)

yourAnswerToTheQuestion