Resumo: | Protocolos de segurança baseados em REST, como o OAuth e o OpenID, foram propostos para permitir mecanismos de autenticação e autorização distribuída em ambientes abertos, cujos usuários em potencial são geralmente desconhecidos com antecedência. No entanto, as instituições possuem também a necessidade de se comunicar umas com as outras em ambientes fechados, de modo que elas possam integrar automaticamente os seus processos de negócio. Neste trabalho, relata-se o uso de Haskell, uma linguagem de programação puramente funcional e estaticamente tipada, para a implementação de um protocolo criptográfico baseado em REST para ambientes fechados. Apesar do desenvolvimento experimental de Haskell, que dificulta o uso pragmático da linguagem (principalmente devido a inconsistências de bibliotecas e versões do compilador), os resultados sugerem que Haskell é uma opção interessante para o desenvolvimento de aplicações baseadas em REST em geral (mas, em especial, para o desenvolvimento de protocolos criptográficos), levando a uma baixa utilização de recursos e tempo de inicialização, pequeno esforço de desenvolvimento, alto nível de modularidade através de typeclasses, e maior segurança, devido ao sistema de tipos da linguagem. ________________________________________________________________________________ ABSTRACT REST-based security protocols, such as OAuth and OpenID, have been proposed to allow a form of distributed authentication and authorization mechanism target to open environments, whose potential users are usually unknown in advance. However, there also exists the need for institutions to communicate to each other within closed environments — so that they could automatically integrate their business processes. In this work, we report on the use of Haskell, a statically typed, purely functional programming language, to implement a REST-based cryptographic protocol for closed environments.
Apart from the experimental development of Haskell, which hinders the pragmatic use of the language (mostly due to libraries and compiler versions’ inconsistencies), our findings suggest that Haskell is a compelling choice for developing REST-based applications in general (but in particular for the development of cryptographic protocols), leading to a small footprint and initialisation time, small development effort, extensive modularity through typeclasses, and improved safety thanks to the language’s type system. |