Vés al contingut

Principi de robustesa: diferència entre les revisions

De la Viquipèdia, l'enciclopèdia lliure
Contingut suprimit Contingut afegit
Creada per traducció de la pàgina «Robustness principle»
(Cap diferència)

Revisió del 14:45, 7 abr 2021

En informàtica, el principi de robustesa (en anglès robustness principle) és una pauta de disseny per al programari que diu: "sigueu conservadors en el que feu, sigueu liberals en el que accepteu d'altres". Sovint es redacta com: "sigueu conservadors en el que envieu, sigueu liberals en el que accepteu". El principi també es coneix com a llei de Postel, després de Jon Postel, que va utilitzar la frase en una primera especificació de TCP.

En altres paraules, els programes que envien missatges a altres màquines (o a altres programes de la mateixa màquina) s’han d’ajustar completament a les especificacions, però els programes que reben missatges haurien d’acceptar entrades no conformes sempre que el significat sigui clar.

Entre els programadors, per produir funcions compatibles, el principi també es coneix en la forma de ser contravariant en el tipus d'entrada i covariant en el tipus de sortida.

Interpretació

RFC 1122 (1989) va ampliar el principi de Postel recomanant als programadors "assumir que la xarxa està plena d'entitats malèvoles que enviaran paquets dissenyats per tenir el pitjor efecte possible". Els protocols haurien de permetre afegir nous codis per als camps existents en futures versions de protocols, acceptant missatges amb codis desconeguts (possiblement registrant-los). Els programadors haurien d’evitar l’enviament de missatges amb "funcions de protocol legals però obscures" que puguin exposar deficiències en els receptors i dissenyar el seu codi "no només per sobreviure a altres hostes que es comportin malament, sinó també per cooperar per limitar la quantitat de pertorbacions que aquests hostes poden causar al contingut compartit facilitant la comunicació".[1]

Crítica

El 2001, Marshall Rose va caracteritzar diversos problemes de desplegament en aplicar el principi de Postel en el disseny d'un nou protocol d'aplicació. Per exemple, una implementació defectuosa que envia missatges no conformes només es pot utilitzar amb implementacions que tolerin aquestes desviacions de l'especificació fins que, possiblement, diversos anys després, es connecti amb una aplicació menys tolerant que rebutgi els seus missatges. En aquesta situació, identificar el problema sovint és difícil i desplegar una solució pot ser costós. Per tant, Rose va recomanar "comprovacions de consistència explícites en un protocol... fins i tot si imposen despeses generals d'implementació".

From 2015 to 2018, in a series of Internet-Drafts, Martin Thomson argues that Postel's robustness principle actually leads to a lack of robustness, including security:[2]

« A flaw can become entrenched as a de facto standard. Any implementation of the protocol is required to replicate the aberrant behavior, or it is not interoperable. This is both a consequence of applying the robustness principle, and a product of a natural reluctance to avoid fatal error conditions. Ensuring interoperability in this environment is often referred to as aiming to be "bug for bug compatible". »

El 2018, un document sobre tecnologies que milloren la privadesa de Florentin Rochet i Olivier Pereira va mostrar com explotar el principi de robustesa de Postel dins del protocol d’encaminament Tor per comprometre l’anonimat dels serveis de ceba i dels clients Tor.[3]

Vegeu també

  • Filosofia Unix

Referències

 

Enllaços externs

  1. Wilde, Erik. Wilde's WWW: Technical Foundations of the World Wide Web. Springer‑Verlag, 2012, p. 26. DOI 10.1007/978-3-642-95855-7. ISBN 978-3-642-95855-7. 
  2. Thomson, Martin (May 2019), The Harmful Consequences of the Robustness Principle, IETF, <https://tools.ietf.org/html/draft-iab-protocol-maintenance>. Consulta: October 4, 2019
  3. Rochet, Florentin; Pereira, Olivier Proceedings of the Privacy Enhancing Technologies Symposium, 2, 2018, pàg. 27–46. ISSN: 2299-0984.