UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO André Theodoro Carlucci Fax Seguro Trabalho de Conclusão de Curso Prof. Ricardo Felipe Custódio, Dr. Orientador Florianópolis, Julho de 2003 Fax Seguro André Theodoro Carlucci Este Trabalho de Conclusão de Curso foi aprovado em sua forma final pelo Curso de em Ciência da Computação da Universidade Federal de Santa catarina. Prof. Ricardo Felipe Custódio, Dr. Orientador Prof. José Mazzucco Jr., Dr. Coordenador do Curso Banca Examinadora Prof. Daniel Santana de Freitas, Dr. Prof. Julio da Silva Dias, M. Agradecimentos Primeiramente gostaria de agradecer a todas as pessoas que me ajudaram de forma direta ou indireta a realizar este trabalho. Agradeço aos meus amigos pela atenção e ajuda, à minha familia pelo apoio e compreensão, ao Prof. Ricardo Felipe Custódio pela sua orientação e confiança, ao Prof. Daniel Santana de Freitas pelo incentivo e ao Prof. Júlio Da Silva Dias e à equipe do LabSEC pela ajuda. Sumário Lista de Figuras viii Lista de Sı́mbolos x Resumo xii Abstract xiii 1 2 Introdução 1 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Materiais e Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Motivação e Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Trabalhos Correlacionados . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Facsimile 6 2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Importância do FAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Tipos de Facsimiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.1 Grupo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.2 Grupo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 v 2.5 2.6 2.7 2.8 2.9 3 2.4.3 Grupo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.4 Grupo 3 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.5 Grupo 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Funcionamento e Protocolos . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.1 Visão Geral da Operação do Fax . . . . . . . . . . . . . . . . . . 12 Fases de Uma Ligação Fax . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.6.1 Fase A - Estabelecimento da conexão . . . . . . . . . . . . . . . 13 2.6.2 Fase B - Procedimento pré-mensagem . . . . . . . . . . . . . . . 14 2.6.3 Fase C1 e C2 - Envio da mensagem . . . . . . . . . . . . . . . . 15 2.6.4 Fase D - Procedimento pós-mensagem . . . . . . . . . . . . . . . 15 2.6.5 Fase E - Fim da ligação . . . . . . . . . . . . . . . . . . . . . . . 16 Os quadros HDLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.7.1 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.7.2 Sinalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 O padrão de imagem e transmissão do fax T.4 . . . . . . . . . . . . . . . 21 2.8.1 Codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Fax Modem 23 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Active Commands(AT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.1 Classe 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.2 Classe 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.3 Classe 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4.4 Classe 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4.5 Classe 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 vi 4 Tecnologias Utilizadas 28 4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2.1 Java Advanced Imaging - JAI . . . . . . . . . . . . . . . . . . . 29 4.2.2 Java Communications API 2.0 . . . . . . . . . . . . . . . . . . . 29 4.2.3 Java Cryptography Extension . . . . . . . . . . . . . . . . . . . 29 4.2.4 Java Secure Socket Extension - JSSE . . . . . . . . . . . . . . . 30 4.2.5 Java PDDE SDK - Bry . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.6 Java Data Access API - JDBC . . . . . . . . . . . . . . . . . . . 30 4.3 ImageMagick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Servidor IIS (Internet Information Service) . . . . . . . . . . . . . . . . 31 4.5 PDDE - Protocoladora Digital de Documentos Eletrônicos . . . . . . . . 31 4.6 SSL - Secure Socket Layer . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.7 Tecnologias do Lado do Servidor . . . . . . . . . . . . . . . . . . . . . . 33 4.7.1 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Sistemas de Gerenciamento de Banco de Dados . . . . . . . . . . . . . . 34 4.8.1 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.8.2 Microsoft Access . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.8.3 PostGreSql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.8 4.9 5 Sistema Proposto 36 5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2 Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.1 Especificação Informal . . . . . . . . . . . . . . . . . . . . . . . 37 Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3.1 Requisitos de Segurança . . . . . . . . . . . . . . . . . . . . . . 39 5.3.2 Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.3 Escalabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.3.4 Caso de Uso Real - Enviar fax aparelho . . . . . . . . . . . . . . 41 5.3 vii 5.3.5 5.4 6 Caso de Uso Real - Enviar fax WEB . . . . . . . . . . . . . . . . 51 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Considerações Finais 53 6.1 54 Sugestões para Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . Referências Bibliográficas 55 A Fontes 57 Lista de Figuras 2.1 Envio de fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Protocolo T.30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Pacote HDLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4 Sinalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1 Modelo Fax Seguro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2 Modelo das Tabelas do Banco . . . . . . . . . . . . . . . . . . . . . . . 40 5.3 Servidor Fax Seguro esperando ligação . . . . . . . . . . . . . . . . . . . 41 5.4 Ligação para o Servidor Fax Seguro . . . . . . . . . . . . . . . . . . . . 41 5.5 Autenticação no Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.6 Servidor Fax Seguro esperando ligação . . . . . . . . . . . . . . . . . . . 42 5.7 Servidor Fax Seguro pedindo destino real do Fax . . . . . . . . . . . . . 43 5.8 Envio de fax para o Servidor Fax Seguro . . . . . . . . . . . . . . . . . . 43 5.9 Protocolarização digital do fax . . . . . . . . . . . . . . . . . . . . . . . 44 5.10 Terminal protocolando o fax . . . . . . . . . . . . . . . . . . . . . . . . 44 5.11 Acompanhamento do processo via WEB . . . . . . . . . . . . . . . . . . 45 5.12 Envio do fax pela Internet para o Servidor destino . . . . . . . . . . . . . 45 5.13 Recebimento e protocolização do fax pelo Servidor destino . . . . . . . . 46 5.14 Visão do terminal recebendo e protocolizando a chegada o fax . . . . . . 46 5.15 Protocolarização digital do fax . . . . . . . . . . . . . . . . . . . . . . . 47 5.16 Envio do Fax para o aparelho destino . . . . . . . . . . . . . . . . . . . . 47 5.17 Protocolação da chegada do fax no aparelho destino . . . . . . . . . . . . 48 ix 5.18 Terminal mostrando protocolação da chegada do fax no aparelho destino . 48 5.19 Protocolarização digital do fax . . . . . . . . . . . . . . . . . . . . . . . 49 5.20 Protocolarização digital do fax . . . . . . . . . . . . . . . . . . . . . . . 49 5.21 Procolação do aviso da chegada do Fax no destino . . . . . . . . . . . . . 50 5.22 Visão do terminal protocolando o aviso da chegada do fax no destino . . . 50 5.23 Visualização da confirmação da chegada do fax . . . . . . . . . . . . . . 51 5.24 Página para envio de fax . . . . . . . . . . . . . . . . . . . . . . . . . . 52 xi Lista de Siglas API Application Programming Interface ASCII Amsterdam Subversive Code for Information Interchange ASP Active Server Pages AT Active Commands CGI Common Gateway Interface DLL Dynamic-link library DCE Data Circuit Terminating Equipment DTE Data Terminal Equipament HDLC High Level Data Link Control HTML Hypertext Markup Format HTTP Hypertext Transfer Protocol IIS Internet Information Service IP Internet Protocol ITU-T International Telecommunication Union Telecommunication Standardization LabSEC Laboratório de Segurança em Computação - UFSC PDDE Protocoladora Digital de Documentos Eletrônicos PHP Hypertext Preprocessor QoS Quality of Service SGBD Sistema de Gerenciamento de Banco de Dados SQL Structured Query Language SSL Secure Socket Layer TCP Transmission Control Protocol Resumo O presente trabalho apresenta uma forma de integrar a tecnologia facsimile e a Internet, de forma a usá-la como um meio de transmissão de documentos de fax a longa distância. Isto resulta em uma diminuição dos custos de comunicação, transformando ligações interurbanas em ligações locais e adicionando segurança e novos serviços nas transações de fax. Entre os requisitos de segurança agregados tem-se o não repúdio, a autenticidade e a garantia da integridade dos faxes. O Sistema foi criado para ter fácil utilização e garantindo total compatibilidade com o parque instalado de aparelhos de Fax grupo 3. Com o uso de tecnologias de criptografia, o documento de fax é protocolado digitalmente ao entrar no sistema, e trafega por canais seguros até seu destino, podendo o usuário acompanhar o trajeto do fax através de páginas na WEB. Abstract This work presents a way to integrate fax and Internet, using it to transmit facsimile documents over long distances. This results in less communication cost, as it makes long calls as local calls, adds security, non repudiation, authenticity and new fax services. The system was created to be easy to use and totaly compatible with all group 3 fax machines. Using cryptographic techniques, the facsimile document is dated with a PDDE and is transmitted through secure channels. The user can also follow the status of his document from the System webpage. Capı́tulo 1 Introdução A tecnologia facsimile (fax) pode ser definida como uma metodologia para criação de uma cópia exata de um documento à distância. Sua popularização começou a cerca de 70 anos atrás, sendo usada para transmissão de fotografias para publicação destas em jornais. Nos anos 60, surgiram os modems, mas a transmissão das imagens ainda era muito lenta, impedindo a intensificação do uso. No começo dos anos 70, com o desenvolvimento de tecnologias de compressão de dados e melhoria nos modems, houve uma redução drástica na velocidade de transmissão. Isso fez com que as empresas abrissem os olhos para esta forma de comunicação e rapidamente o fax tornou-se um equipamento indispensável. Ele é um importante canal de comunicação, tendo como vantagem sua praticidade e velocidade. As comunicações via fax crescem a cada dia, e representam um grande percentual do custo das ligações telefônicas de uma empresa. Este custo poderia ser drasticamente reduzido utilizando a infra-estrutura da Internet como meio de transmissão do fax em longas distâncias, utilizando a telefonia apenas para ligações locais. A construção de um sistema que possibilite esta integração é o objetivo deste trabalho. 2 1.1 Objetivos 1.1.1 Objetivo Geral Desenvolver um sistema que possibilite o envio e recebimento de documentos utilizando a tecnologia de facsimile, através de aparelhos convencionais ou modems, utilizando a rede telefônica e a Internet como meio de transmissão e garantindo a segurança dos dados. 1.1.2 Objetivos Especı́ficos • Estudo da tecnologia facsimile; • Estudo do funcionamento dos modems e dos seus comandos pró-ativos; • Estudo de técnicas de criptografia • Estudo de bancos de dados • Estudo da linguagem Java e seus pacotes opcionais para comunicações seriais; • Desenvolvimento de um sistema de fax seguro pela Internet. 1.2 Materiais e Métodos Para o desenvolvimento de um Servidor Fax Seguro, os seguintes materiais são necessários: Hardware: • 1 computador • 1 placa de rede • 1 modem classe 2 e classe 8 • 1 linha telefônica 3 Software: • Java 2 SDK v1.4.1 • Pacote Java Advanced Imaging • Pacote Java Communications API 2.0 • Pacote Java Cryptography Extension • Pacote Java Data Access API - JDBC • Bibliotecas ImageMagick v5.5.7 • Java PDDE SDK - Bry • Um servidor WEB qualquer, com suporte a PHP • Um dos bancos de dados - Access, Mysql ou PostgreSQL 1.3 Motivação e Justificativa De maneira geral, vários fatores levaram à escolha deste tema para estudo, mas principalmente o desafio da criação de um Sistema que resolve um problema real e melhora a vida das pessoas. Além disso, Java é uma linguagem que cresce a cada dia e seu aprendizado torna-se fundamental no desenvolvimento de Sistemas. 1.4 Trabalhos Correlacionados Alguns autores já escreveram sobre o uso da Internet como meio de transmissão de fax. O aspecto inovador deste projeto está na agregação de segurança e integridade dos dados neste tipo de comunicação, além de adicionar não repúdio e autenticidade à tecnologia facsimile. Em [INT ], pode ser encontrado um serviço onde o usuário pode enviar fax com textos simples para cidades cadastradas no sistema. 4 Em [TEL ], o usuário recebe um número de fax que fica na empresa FaxFacil, e todo fax enviado para este número é encaminhado para o e-mail informado na contratação do serviço. O preço para recepção do fax é de R$0.20 por página. O usuário pode enviar fax pela página da empresa, ao custo de R$0.70 por página para dentro do paı́s e de R$2.00 à R$15.00 dependendo do paı́s escolhido. Em [GZS 97] é discutido a tecnologia de Internet Gateways como fonte de serviços de fax para uma LAN, com integração com e-mails. No trabalho de [TOS 98] é apresentado um estudo sobre o fax tradicional e duas formas de implementação: Store and Foward Fax, onde o fax é armazenado por um Servidor, enviado pela Internet para outro Servidor, e entregado futuramente e Real time fax, onde o é estabelecida uma conexão entre os Servidores e os 2 aparelhos de fax, e cada comando e resposta trafega de um aparelho para Internet para o outro aparelho, em tempo real. Em 1999 [GIR 99] apresenta um modelo para criação de um gateway de fax entre a rede de telefonia e a Internet. Este gateway integraria aparelhos de fax comuns e e-mails. [KT 01] apresenta em um artigo a cada vez mais crescente substituição do envio de fax tradicional pelo envio pela Internet, mostrando problemas com firewalls, endereçamento e QoS. 1.5 Organização do Texto O presente capı́tulo mostrou os objetivos gerais e especı́ficos do trabalho e nos dá a localização dos conceitos explorados em cada capı́tulo posterior. O Capı́tulo 2 descreve como funcionam os aparelhos de fax existentes e a tecnologia facsimile. É apresentado como o fax evoluiu através da história, os tipos de fax existentes, os protocolos utilizados bem como um documento de fax é codificado. Seu objeto é esclarecer o funcionamento da tecnologia facsimile. O Capı́tulo 3 mostra como são implementados e como programar os modems que possuem a tecnologia facsimile integrada. É descrito os padrões e os principais comandos aceitos pelos modems. O objetivo do capı́tulo é mostrar como um modem pode ser usado 5 para realizar a ponte entre a rede de telefonia e o Sistema Fax Seguro. O Capı́tulo 4 apresenta uma descrição de todas as tecnologias utilizadas no desenvolvimento do Sistema. O objetivo do capı́tulo é apresentar ao leitor os conhecimentos especı́ficos necessários de cada tecnologia. O Capı́tulo 5 apresenta o Sistema proposto, bem como sua análise e seu projeto. É mostrado o esquema do banco de dados e apresentado casos de uso descrevendo o funcionamento do Sistema. O Capı́tulo 6 trás as considerações finais do trabalho. Capı́tulo 2 Facsimile 2.1 Introdução Este capı́tulo descreve a tecnologia facsimile, seu funcionamento e protocolos, apresentando um histórico de sua evolução até os modelos usados atualmente. 2.2 Histórico A transmissão facsimile pode ser definida como a criação de uma cópia exata de um documento a distância [SIG ]. O primeiro equipamento de fax para o uso em telecomunicações foi o telégrafo quı́mico, inventado por um escocês chamado Alexander Bain (1810-1977) em 1842 e patenteado no ano seguinte. Em sua invenção, o documento era escrito utilizando-se um material condutor. Um contato metálico preso a um pêndulo fazia sua leitura, transmitindo impulsos somente quando tocava no material condutor. Do outro lado, uma máquina homóloga, mas com um filme que sofria descoloração nos pontos onde recebia os impulsos elétricos do contato. A sincronização das duas máquinas era feita utilizando-se os pêndulos. O emissor, enviava um sinal elétrico a cada movimento do pêndulo e este sinal mantinha o outro na exata freqüência do emissor. O primeiro modelo do telégrafo quı́mico de Bain foi construı́do e usado em Londres, em 1851. Nesta época uma segunda máquina de fax foi 7 demonstrada por Bakewell, que havia feito sua patente em 1848. O princı́pio da máquina de Bakewell era o mesmo que o de Bain, mas ele substituiu os pêndulos por cilindros que giravam sincronizadamente, o que melhorou a eficiência do telégrafo quı́mico. Por muitos anos, o desenvolvimento de equipamentos de fax teve como prioridade melhoria das funções de leitura e reprodução de documentos. Em 1865, o primeiro equipamento de fax comercialmente viável foi desenvolvido na França por um Italiano, Caselli(1815-1891). Logo depois, Meyer desenvolveu outra máquina que rapidamente passou a ser usada no sistema Francês de telégrafos. Apesar das máquinas de Caselli e Meyer estarem sendo muito usadas, ainda havia duas áreas importantes a serem mais investigadas: sincronização e transmissão. Um método prático de sincronização foi finalmente desenvolvido, o motor de sincronização de La Cour. Em 1870 havia funcionando comercialmente 17 facsimiles de Meyer e conjunto com 4000 telégrafos eletromecânicos. A facilidade do uso do fax fez com que eles fossem muito usados pelo governo Francês e para transmissão de correções nas bolsas de valores. As maiores vantagens eram a eliminação virtual de erros na transmissão e a possibilidade de se colocar uma assinatura no fax. A velocidade de transmissão utilizando os contatos começou a ficar não satisfatória no inı́cio do século 20. Em 1902, Dr Arthur Korn, um professor de fı́sica alemão, desenvolveu um sistema de células sensı́veis à luz, e o usou para a fototelegrafia. A técnica consistia em transmitir luz através de um negativo de filme colocado em um cilindro de vidro e este iluminado somente por uma pequena abertura. Uma luz atravessava o filme e o vidro indo para uma fotocélula que a convertia em sinais elétricos. A parte receptora utilizava um papel sensı́vel que recebia os sinais e o positivo da figura era reproduzido. Em 1910 Dr. Korn enviou uma figura de Berlin para Paris e Londres e em 1922, de Roma para Nova Iorque, mas desta vez com uma transmissão à rádio. Em 1926 uma ligação comercial especialmente para fax foi aberta entre o escritório da Marconi Wireless em Londres e a RCA em Nova Iorque. A partir de 1920, o facsimile foi intensamente usado para transmissão de figuras para jornais. Com a melhoria do serviço na década de 30, transmissões de mapas e fotografias tornaram-se comuns. Na década de 30, a companhia de Telégrafos Western Union realizou uma série de adaptações no facsimile e disponibili- 8 zou modelos em lugares públicos próximos a seu escritório. Estes facsimiles transmitiam as mensagens para o próprio escritório da Western Union e estas eram encaminhadas usando telégrafos comuns. Infelizmente este sistema sofreu diversos atos de vandalismo e deixou de operar. Em 1948 então a Western Union começou a investir nas empresas, com um serviço que foi chamado de ”Desk Fax”. Colocava-se um facsimile em uma empresa, e esta poderia enviar pequenas mensagens ao escritório da Western Union, que as encaminhava como telegramas. A área mais abrangente de uso do facsimile foi trazer facilidades ao telégrafo, transmissões de fotografias, fototelegramas, figuras para jornais, documentos, desenhos de máquinas, e impressões digitais. Este serviço cresceu mais ainda a criação da ligação entre Nova Iorque e Londres em 1926. Em 1950, havia ligações entre 24 paı́ses e em 1963 a empresa Post Office fototelegrafia tinha um sistema com 56 terminais na Europa e 38 fora dela. Em janeiro de 1976 o número de paı́ses chegava a 65. Com o sucesso da fototelegrafia com o facsimile, tentou-se introduzir esta tecnologia para usuários domésticos, como um serviço de envio de mensagens. Esta idéia foi experimentada em 1929-30, mas com a invenção da televisão o facsimile não tinha como competir. O facsimile permaneceu em uso de 1930 a 1960 essencialmente como um sistema especializado em algumas aplicações e com máquinas caras e sofisticadas. Apesar do sistema telefônico estar em uso desde 1930, somente depois de 1960 os facsimiles evoluı́ram para poder transmitir imagens através da PSTN (Public Switched Telephone Network). Ao passar a usar a linha telefônica como meio de transmissão e com o barateamento do aparelho, o facsimile diminuiu o uso do serviço postal dos Estados Unidos. Outro paı́s onde passou a ser muito usado foi o Japão, devido à natureza de seu alfabeto de sı́mbolos. Estas novas máquinas ficaram conhecidas como máquinas de documento facsimiles e foram muito usadas para transmitir documentos escritos à mão, à máquina ou impresso e desenhos. Em 1968, a International Telegraph e a Telephone Consultative Committee (CCITT) introduziram um padrão de funcionamento dos facsimiles chamado de Grupo 1. Isto foi uma etapa significativa no desenvolvimento do facsimile, trazendo compatibilidade a todos os equipamentos. Com este padrão de funcionamento, uma página em formato A4 9 levava cerca de 6 minutos para ser enviada, mas ainda sim era uma alternativa muito mais barata e rápida do que enviar documentos pelo serviço postal para o mundo todo. O padrão Grupo 2 foi criado em 1976. As principais melhorias foram a diminuição do tempo de envio de uma página para 3 minutos (metade) e aumento da capacidade de resolução de leitura para 100 linhas por polegada. Mesmo assim, esta resolução ainda era ruim para documentos com desenhos pequenos e o tempo de transmissão considerado lerdo já que demorava cerca de meia hora para enviar um documento de 10 páginas. Um novo padrão da CCITT foi criado em 1980, o Grupo 3. Este padrão fez uso da transmissão digital e levava menos de 1 minuto para se transmitir uma página. A resolução também aumentou para 200 linhas por polegada. Além disso, o padrão Grupo 3 também obrigava aos novos facsimiles a serem compatı́veis com o padrão Grupo 2, independente do fabricante. 2.3 Importância do FAX O Fax tornou-se um instrumento fundamental principalmente nas empresas, onde o tráfego de documentos antes enviados pelo correio pode ser drasticamente reduzido. Seu uso ganhou força por reduzir custos de comunicação e possuir trivial forma de utilização. Apesar da Internet com o e-mail ter substituı́do parte de sua utilização, a tecnologia continua sendo muito usada, principalmente em documentos onde consta assinaturas e pela maior credibilidade na segurança da informação em uma transmissão de fax. Hoje existem mais de 100 milhões de equipamentos de fax no mundo. Por ano, o tráfego de fax excede 400 bilhões de páginas e as companhias telefônicas faturam aproximadamente 91 bilhões de dólares. 2.4 Tipos de Facsimiles Para garantir a interoperabilidade de facsimiles de fabricantes diferentes, a CCITT e ITU-T definiram alguns padrões que foram evoluindo com o passar do tempo. 10 2.4.1 Grupo 1 Os primeiros facsimiles padronizados foram projetados com o padrão Grupo 1 (ITU-T Recommendation T.2) para linhas analógicas. O Grupo 1 foi definido em 1968 mas encontra-se atualmente removido da ITU-T como recomendação porque não há produção deste tipo de facsimile ha muitos anos. Estes aparelhos eram lerdos e levavam cerca de 6 minutos para enviar uma página A4. A resolução ficava em torno de 100 linhas por polegada. Havia uma opção de diminuir a resolução para transmissões mais rápidas. A freqüência usada para o branco era de 1300Hz e para o preto, 2300Hz de acordo como a CCITT. A América do Norte utilizava 1500Hz para o branco e entre 2300 e 2400Hz para o preto. 2.4.2 Grupo 2 Perto dos anos 70, estas máquinas Grupo 1 foram substituı́das por máquinas Grupo 2 (ITU-T Recommendation T.3). O Grupo 2 foi padronizado em 1976 mas também deixou de ser recomendação por não ser mais usado. Estes facsimiles convertiam as imagens em sinais digitais, utilizando um modem para transmissão. A vantagem de um sinal digital possibilitou uma velocidade de transmissão maior e com maior resolução, já que ele está muito menos sujeito a ruı́dos na linha, ocasionando menos erros. Uma fórmula matemática de compressão foi adicionada, aumentando a velocidade para 3 minutos por página. 2.4.3 Grupo 3 O grupo 3 (ITU-T Recommendation T.4) foi padronizado em 1980 e trouxe mais velocidade ao facsimile. Ele utiliza recursos para melhor performance de sinal, comprimindo os dados (eliminando informação redundante). Quanto a resolução, oferece transmissões em 200x100 e 200x200 (linhas verticais x linhas horizontais). Este padrão permite uma velocidade de envio de menos de 1 minuto por página A4. O Grupo 3 foi projetado para suportar novas funcionalidades sem comprometer a compatibilidade com 11 as funcionalidades-padrão. O Grupo 3 é um padrão largamente usado hoje. 2.4.4 Grupo 3 C O Grupo 3C (ITU-T Recommendation T.30) define uma forma digital da trans- missão facsimile. Também é chamado de Grupo 3 opção C ou Grupo 3-64kb/s. 2.4.5 Grupo 4 O Grupo 4 (ITU-T Recommendation T.563 e CCITT Recommendation T.6) utiliza técnicas de compressão para transmitir, essencialmente sem erros, um documento em tamanho A4 a uma resolução de 8 linhas por milı́metro em menos de 1 minuto. Foi padronizado em 1984 para trabalhar em linhas digitais, como ISDN 64kbps. O sistema é incompatı́vel com o Grupo 3. 2.5 Funcionamento e Protocolos Enviar um fax é uma tarefa simples para o usuário, basta inserir o papel no aparelho, discar o número destino, esperar a resposta e apertar o botão de enviar. Figura 2.1: Envio de fax 12 Internamente, isto consiste em algo bem mais complexo. Um fax deve realizar diversas tarefas e trocas de informação com o fax destino antes de enviar a imagem. Primeiro, o equipamento deve se certificar de que quem atendeu sua ligação foi também um fax, e não um modem de dados, uma secretária eletrônica ou uma pessoa. Depois disso, os dois equipamentos trocam informações sobre suas capacidades (velocidade de transmissão, resolução suportada, tipo de compressão, tamanho do papel, etc.). Eles devem concordar com o melhor conjunto de capacidades que ambos suportam. Após isso, é realizado um teste para determinar a velocidade máxima de transmissão que aquela ligação telefônica permite, tendo como limite máximo o valor acordado. Finalmente a imagem é enviada. Mesmo assim, pode acontecer que ruı́dos ou distorções alterem a imagem, e o fax destinatário deve avaliar a imagem recebida e enviar uma confirmação dizendo se ela chegou corretamente ou com um número inaceitável de erros. 2.5.1 Visão Geral da Operação do Fax O protocolo utilizado para enviar e receber imagens via fax é padronizado pela In- ternational Telecomunications Union (ITU) Recommendation T.30 [UNI 99a]. A seqüência realizada é a seguinte: 1. A imagem a ser transmitida é lida por um scanner e é criado um mapa de bits onde pontos pretos e brancos são representados por zeros e uns; 2. Este mapa de bits é compactado e enviado para o protocolo T.30, um conjunto de rotinas que negociam a configuração que será usada na transmissão da informação; 3. A informação finalmente é passada para um modem que a envia pelo meio de transmissão usado. De uma maneira similar, as imagens são recebidas do protocolo T.30, descompactadas, impressas ou armazenadas. Uma seqüência de eventos de uma ligação simples do fax ”A”para o fax ”B”sem erros é mostrada abaixo: 1. ”A”disca um número de telefone e espera pela resposta; 13 2. ”B”percebe o toque e atende a ligação; 3. ”B”identifica-se como um fax e envia a lista de suas capacidades; 4. ”A”responde especificando os parâmetros de transmissão (velocidade, resolução da imagem, método de compressão, tamanho da imagem, etc.); 5. ”A”envia uma imagem-teste para testar a conexão telefônica; 6. ”B”examina a imagem-teste e reponde aceitando as configurações ou requisitando uma velocidade menor; 7. ”A”envia a imagem; 8. ”B”analisa e envia uma resposta aceitando ou rejeitando a imagem; 9. A ligação acaba. 2.6 Fases de Uma Ligação Fax A transmissão de um documento de fax definida pelo protocolo T.30 é dividida em 5 etapas, descritas a seguir: 2.6.1 Fase A - Estabelecimento da conexão Consiste em criar uma conexão entre os terminais emissor e receptor e trocar os sinais de fax. Isto pode ser realizado manualmente ou automaticamente. Manualmente, o operador do terminal emissor disca um número e escuta o sinal de toque. Quando o terminal receptor responde a chamada, o operador do terminal emissor escuta o sinal de fax imediatamente ou pode haver uma conversa dependendo se o terminal receptor é automático ou manual. O emissor então envia o sinal de fax para a linha. No modo manual do terminal receptor, o operador atende a chamada quando ouve o toque. Dependendo se o terminal emissor está no modo manual ou automático, o operador pode receber uma voz ou o sinal de fax. O operador então envia o sinal de fax para a linha. 14 Figura 2.2: Protocolo T.30 No modo de operação automático, o terminal detecta o sinal de linha e disca o número escolhido. Quando o terminal receptor atende a chamada, o emissor imediatamente transmite o sinal de fax. No modo de operação automático do terminal receptor, o terminal responde a chamada quando detecta o toque e transmite o sinal de fax imediatamente. 2.6.2 Fase B - Procedimento pré-mensagem O procedimento de pré-mensagem consiste na identificação de capacidades de ambos facsimiles e da negociação de quais parâmetros serão usados, como velocidade, resolução da imagem, etc. A fase B possui duas etapas então: identificação e comando. A etapa de identificação consiste em: 1. identificação das capacidades dos facsimiles. O terminal receptor envia suas capacidades ao terminal emissor, isto é, taxa de bits por segundo, altura e largura da página, tipo de compressão suportada, tempo de leitura de linha etc. 2. identificação do terminal (opcional). O terminal receptor envia sua identificação como número de telefone, nome da organização, etc. 15 3. identificação de capacidades não-padrão, como por exemplo maior segurança. A etapa de comando consiste em: 1. escolha das capacidades a serem usadas de acordo com as capacidades identificadas. 2. treino que envolve o envio de uma série de zeros para determinar a qualidade da linha, para a escolha da velocidade de transferência. 3. sincronização entre os dois terminais. 2.6.3 Fase C1 e C2 - Envio da mensagem Enquanto a mensagem é transmitida de acordo com a especificação ITU-T Rec- ommendation T4 [UNI 99b] (C1), é realizado todo o controle de sinalização, detecção e correção de erros (C2). As configurações usadas para a transmissão são as negociadas na fase B. 2.6.4 Fase D - Procedimento pós-mensagem O procedimento de pós-mensagem inclui a troca das seguintes informações: Sinalização de fim da mensagem: isto é enviado pelo terminal emissor para indicar ao receptor que todas as páginas do documento foram transmitidas e para retornar à fase B para recepção de outro documento. Sinalização de multi-páginas: enviado pelo terminal emissor para indicar ao receptor que uma página do documento foi completamente transmitida e para retornar a fase C para recepção da próxima página do mesmo documento. Sinalização de fim de procedimento: enviado pelo terminal emissor ao receptor para indicar que todas as páginas do documento atual foram transmitidas, que nenhum outro documento será enviado e para ir à fase E. Sinalização de confirmação: enviado pelo terminal receptor ao emissor para confirmar a recepção de qualquer sinal descrito acima enviado pelo emissor. 16 2.6.5 Fase E - Fim da ligação O terminal emissor transmite um sinal de desconexão ao receptor para terminar a ligação. Nenhuma resposta é esperada. 2.7 Os quadros HDLC A troca de informação entre dois aparelhos de fax é feita utilizando-se códigos binários baseados no formato HDLC (High Level Data Link Control). O formato HDLC é padrão em diversos protocolos de enlace de dados, provendo entre outras coisas detecção de erros e confirmação de recebimento. 2.7.1 Descrição Figura 2.3: Pacote HDLC 2.7.1.1 Flag O campo Flag possui 8 bits de tamanho e é usado para determinar o inı́cio e o fim de um quadro. Para o procedimento facsimile, o flag é utilizado para estabelecer sincronização de bits e quadros. Formato: 0111 1110 17 2.7.1.2 Address O campo address é utilizado para identificar um terminal especı́fico em uma conexão multi-ponto. No caso de uma conexão pela rede telefônica, esta campo tem um formato sempre igual. Formato: 1111 1111 2.7.1.3 Control Campo de controle para a troca de quadros entre os fax. Ele identifica se o quadro enviado é o último antes de uma resposta ou não. Formato: 1100 X000 X recebe 1 se o quadro enviado é o último ou 0 caso contrário. 2.7.1.4 Facsimile Control (FCF) Este campo possui normalmente 8 bites. Ele pode possuir 16 se o modo opcional de correção de erros for utilizado. O FCF também guarda informação sobre o tipo de quadro está sendo enviado e a posição que a comunicação se encontra no procedimento de fax. 2.7.1.5 Facsimile Information Neste campo é transmitido o informação ou parâmetro do comando a ser recebido pelo outro fax. 2.7.2 Sinalização Cada parte do procedimento de fax é realizado com a troca de pacotes HDLC com os comandos no formato descrito anteriormente. Os principais tipos de sinalização são descritos abaixo: 18 Figura 2.4: Sinalização 2.7.2.1 Identificação inicial Sinais de identificação do terminal que recebeu para o que iniciou a conexão. Formato: 0000 XXXX 1. Digital Identification Signal (DIS) - caracteriza as capacidades padrão ITU-T do terminal. Formato: 0000 0001 2. Called Subscriber Identification (CSI) - este sinal opcional pode ser enviado para identificar o terminal, por exemplo informando seu número. Formato: 0000 0010 3. Non-Standard Facilities (NSF) - este sinal opcional pode ser enviado para informar capacidades especı́ficas que não estão descritas nos padrões ITU-T. Formato: 0000 0100 19 2.7.2.2 Comandos para receber Do facsimile transmissor para o receptor. Formato: X100 XXXX 1. Digital Command Signal (DCS) - comando resposta de configuração às capacidadespadrão identificadas pelo comando DIS. Formato: X100 0001 2. Training Check (TCF) - este comando não utiliza o pacote HDLC. Ele é enviado com a modulação T.4 para verificar se o canal de comunicação aceita a taxa de transmissão escolhida. Formato: Uma série de zeros por 1,5 segundos + ou - 10 2.7.2.3 Comandos de pós-mensagem Sinais transmissor para o receptor do fax Formato: X111 XXXX 1. End Of Message (EOM) - indica o fim de página de um documento e retorna ao inı́cio da fase B. Formato: X111 0001 2. MultiPage Signal (MPS) - indica o fim de página de um documento após sinal de confirmação e retorna ao inı́cio da fase C para a próxima página. Formato: X111 0010 3. End Of Procedure (EOP) - indica o fim do procedimento de fax e após sinal de confirmação vai para a fase E. Formato: X111 0100 4. Procedure Interrupt-End Of Message (PRI-EOM) - para indicar o mesmo comando EOM, mas com a opção adicional para requisição da intervenção de um operador. Se a intervenção do operador acontece, as próximas interações entre os fax devem começar da fase B. Formato: X111 1001 20 2.7.2.4 Respostas de pós-mensagem Sinais receptor para o transmissor do fax Formato: X011 XXXX 1. Message Confirmation (MCF) - indica que uma completa mensagem foi recebida de forma satisfatória e que mensagens adicionais podem ser enviadas. Esta é uma resposta positiva à comandos como EOM, MPS, EOP e outros. Formato: X011 0001 2. Retrain Positive (RTP) - indica que uma mensagem completa foi recebida e que mensagens adicionais podem ser enviadas depois de uma retransmissão do comando CFR. Formato: X011 0011 3. Retrain Negative (RTN) - indica que uma mensagem não foi satisfatoriamente aceita. Novas transmissões devem ser efetuadas somente com o reenvio do comando CFR. Formato: X011 0010 2.7.2.5 Outros sinais Sinais de controle de erros estado da linha. Formato: X011 XXXX 1. Disconnect (DCN) - este comando indica o inı́cio da fase E (fim da ligação) e não requer resposta. Formato: X101 1111 2. Command Repeat (CRP) - este comando indica que o comando anterior foi recebido com erro e deve ser retransmitido. Formato: X101 1000 21 2.8 O padrão de imagem e transmissão do fax T.4 O facsimile Grupo 3 se tornou o padrão mais usado em todo mundo, estando hoje presente em quase todas as empresas. Os documentos enviados e recebidos por este tipo de fax devem seguir um padrão internacional, definido pela ITU-T Recommendation T.4. Este padrão permite transmissão de imagens em branco e preto ou coloridas, caso o terminal suporte o modo opcional que trata de cores. Outras caracterı́sticas que são definidas neste documento incluem dimensões (resolução, tamanho, etc.) que os terminais devem suportar, tempo de transmissão de uma linha escaneada e a codificação do documento. 2.8.1 Codificação Abaixo é descrito a codificação usada pelos facsimiles Grupo 3. - Data: uma linha de informação é composta de uma série de códigos de tamanho variável. Cada código representa uma série de pontos brancos ou pretos. Os pontos brancos e pretos, se alternam. O total de 1728 pontos representam uma linha horizontal de 215mm de tamanho. Para ter certeza que o receptor manterá o sincronismo de cores, toda linha começa com um código representando uma seqüência de pontos brancos. Caso a linha a ser enviada comece com um ponto preto, um código representando zero pontos brancos deve ser enviado antes do primeiro preto. Os códigos que descrevem as seqüências de pontos brancos e pretos podem ser de dois tipos: códigos de terminação e códigos de constituição. Cada código é uma única seqüência de bits. Existe um código de terminação para cada seqüência de 0 a 63 pontos e um código de constituição para cada seqüência de 64 a 1728 pontos. Desta forma, um seqüência de pontos de mesma cor é representada por um código de terminação (caso seja menor que 64 pontos) ou um código de constituição e um de terminação. - End of Line: um código de fim de linha é usado ao final de cada linha e antes da primeira linha do documento. 22 - Fill: este código pode ser transmitido entre o último código de uma linha e o código de fim de linha. Ele pode ser usado para garantir que o tempo de transmissão de uma linha não seja menor que o acordado entre os dois fax. - Return to Control o fim da transmissão de um documento é informado enviando seis códigos de fim de linha consecutivos. Após este comando a comunicação entre os fax retorna para os padrões do protocolo T.30. 2.9 Conclusão Neste capı́tulo foi apresentado os principais conceitos sobre a tecnologia facsimile. Foi mostrado o desenvolvimento e os tipos de facsimiles existentes, suas implementações e como funciona o principal protocolo usado (T.30). Capı́tulo 3 Fax Modem 3.1 Introdução Este capı́tulo apresenta o que são e como funcionam os fax modems. É apresen- tado os de padrões existentes e como estes podem ser programados. 3.2 Definições Entendimento de termos utilizados: Data Terminal Equipament (DTE): um DTE é qualquer computador capaz de enviar comandos para uma porta serial onde se encontra um DCE (definido abaixo). Na prática, são computadores de qualquer tamanho. Data Circuit Terminating Equipment (DCE): é qualquer equipamento que conecta um DTE a uma rede de comunicações. No escopo deste trabalho, a rede de comunicação é a rede telefônica e o equipamento será sempre um modem com funcionalidades de fax. 24 3.3 Padrões Fax Modems são modems com um dispositivo facsimile embutido. Os modems são classificados de acordo com as funcionalidades que possuem incorporadas em hardware. A implementação destas funcionalidades não são mutuamente exclusivas, podendo um modem pertencer a duas ou mais classes. A padronização destas funcionalidades faz com que um programa escrito para trabalhar com certa classe funcione com qualquer modem que a possua, independente do fabricante. 3.4 Active Commands(AT) Para se comunicar com um modem, este deve estar instalado em um computador (DTE) e deve ser aberta uma conexão com a porta serial onde o modem foi instalado. Os comandos enviados para o modem são chamados de comandos AT. Um DTE pode enviar comandos ao DCE para que este realize diversas funções, como iniciar ligações, atender ligações, e outras. A padronização do formato destes comandos está descrita em cada classe, e o protocolo usa caracteres definidos em [UNI 92]. Segue abaixo os comandos mais comuns: - ATA atende uma ligação. - AT+FCLASS=? retorna as classes de comandos suportadas por este fax modem. - ATDx disca para um número onde x é o número destino. - ATH finaliza uma ligação 3.4.1 Classe 1 Modems Classe 1 possuem extensões em seu sistema que fazem com que este possa atuar como um facsimile Grupo 3. Estes modems deixam quase todo seu processamento para seu software, incluindo os protocolos de comunicação e codificação de 25 imagem. O padrão oficial para este tipo de fax modem está descrito no ITU-T Recommendation T.31 [UNI 95a]. Nesta classe, o DCE é responsável por: - fazer a modulação para transmitir quadros HDLC de forma transparente - transmitir flags quando a linha estiver ociosa - implementar o modo de correção de erro opcional da fase C - detectar e verificar os quadros recebidos - reconhecer finais de quadros Todos os outros serviços HDLC devem ser providos pelo DTE. 3.4.1.1 Principais Comandos A tabela abaixo mostra os principais comandos aceitos pela classe 1. AT+FTS=[tempo] Para uma transmissão e pausa AT+FRS=[tempo] Espera por silêncio na linha AT+FTM[mod] Transmite informação com a modulação mod AT+FRM[mod] Recebe informação com a modulação AT+FTH[mod] Transmite informação HDLC com a modulação mod AT+GMI Informa identificação do fabricante AT+GMM Informa modelo do modem AT+IPR= Configura velocidade da porta serial Mais detalhes sobre estes comandos podem ser encontrados em [COR a], [SYS ] e [PCT ]. 26 3.4.2 Classe 2 São modems com as mesmas funcionalidades da Classe 1, porém com o proto- colo de comunicação (T.30) implementado em hardware. Levou muito tempo para que a padronização fosse aprovada, o que fez com que muitos fabricantes se lançassem fora do padrão oficial. A padronização deste tipo de faxmodem está descrito no ITU-T Recommendation T.32 [UNI 95b]. Nesta classe, o DCE é responsável por: - conexão - policiamento do procedimento fax - reportar o estado da sessão - filtrar os dados na fase C - reverter os bits na fase C - inserir zeros para que uma linha seja transmitida de acordo com o tempo mı́nimo para ela negociada - realizar a negociação na fase B de forma automática - prover todos os serviços da classe 1 Todos os outros serviços devem ser providos pelo DTE. A tabela abaixo mostra os principais comandos aceitos pela classe 2. AT+FDT Enviar uma página AT+FDR Receber uma página AT+FKS Terminar uma sessão AT+FIP Inicializa os parâmetros da classe 2 Mais detalhes sobre estes comandos podem ser encontrados em [COR b], [LUC ] 27 3.4.3 Classe 3 A Classe 3 foi proposta para suportar conversão de fluxo de dados em imagens. Suporta o T.30 como a Classe 2, e também o T.4, que serão explicados na parte de protocolos. 3.4.4 Classe 4 Modems Classe 4 possuem além de todas as funcionalidades dos de Classe 3, buffers, que fazem com que a CPU fique liberada para trabalhar em outras coisas de tempo em tempo enquanto recebe informações do fax. 3.4.5 Classe 8 A Classe 8 padroniza como o modem pode manipular voz e o reconhecimento de freqüências DTMF [PCT ]. A tabela abaixo mostra os principais comandos aceitos pela classe 8. 3.5 AT#CID Habilita identificador de chamadas AT#CLS Seleciona modo de dados, fax ou voz AT#VTD Mostra capacidade de detectar tons DTMF AT#VTS Transmite um tom DTMF AT#VTX Entra no modo de transmissão de voz AT#VRX Entra no modo de recepção de voz Conclusão Este capı́tulo apresentou o funcionamento dos fax modems, apresentando os padrões e mostrando como um desenvolvedor pode programar os modems para que possam enviar e receber fax. Capı́tulo 4 Tecnologias Utilizadas 4.1 Introdução Este capı́tulo destina-se a um estudo detalhado sobre as ferramentas e tecnologias utilizadas para o desenvolvimento do projeto, incluindo linguagens de programação; ferramentas e aplicativos; servidores Web e sistema de gerenciamento de banco de dados. Foi feito um estudo detalhado sobre cada uma das tecnologias e ferramentas empregadas procurando encontrar no histórico, vantagens e desvantagens, comparativos com outras tecnologias da mesma linha de funcionamento e o estado da arte, que representa o atual estado em que encontra-se cada tecnologia. 4.2 Java Java é talvez a linguagem que mais cresce em termos de utilização por desen- volvedores em aplicações hoje em dia [JAV e].Sua sintaxe parece muito com o tradicional C/C++, possibilitando uma fácil aprendizado por quem já conhece C. Java é orientado à objetos, possui um gigantesco framework e componentes já desenvolvidos nas mais diversas áreas da computação. Abaixo são descritos os principais pacotes utilizados neste trabalho. 29 4.2.1 Java Advanced Imaging - JAI O Java Advanced Imaging é um conjunto de classes para criação e manipulação de uma grande variedade de imagens [JAV a]. Através do JAI, imagens podem ser criadas dinamicamente, ao carregar uma página de Internet por exemplo, e salvas em diferentes formatos. O JAI também possibilita o uso de filtros para distorções, concatenações e sobreposições de imagens. 4.2.2 Java Communications API 2.0 O Java Communications API é um pacote opcional da linguagem JAVA. Este pa- cote consiste em um conjunto de classes que fornecem suporte para a comunicação através das portas COM do sistema em que o programa se encontra [JAV b]. O pacote pode ser usado para escrever aplicações de comunicação independente de plataforma para o uso de tecnologias como e-mail em voz, fax e smartcards. Esta versão do Java Communications contém suporte para portas seriais padrão RS232 e portas paralelas padrão IEEE 1284. Dentre suas funcionalidades, é destacado: 1. Enumerar as portas disponı́veis no sistema; 2. Abrir e pedir exclusividade da porta ao sistema operacional; 3. Resolver disputas por exclusividade da porta por múltiplas aplicações; 4. Realizar operações de entrada/saı́da nas portas de forma sı́ncrona e assı́ncrona. 5. Notificar aplicações sobre alterações do estado da porta. Este pacote é usado pelo sistema Fax Seguro para troca de informações entre o servidor e o fax modem que envia e recebe os fax que passam pelo sistema. 4.2.3 Java Cryptography Extension O Java Cryptography Extension (JCE) é um conjunto de pacotes que compõem implementações para cifragem, geração de chaves criptográficas e algoritmos MAC (Mes- 30 sage Authentication Code) em Java. O suporte criptografia inclui cifragem simétrica, assimétrica, em bloco e em fluxo. O pacote também suporta fluxos seguros e objetos selados [JAV c]. O JCE era antigamente um pacote opcional ao Java 2 SDK, Standard Edition (Java 2 SDK), versões 1.2.x e 1.3.x, mas na versão 1.4 foi integrado ao SDK. Ele suporta os principais algoritmos como o DES, TripleDES, BlowFish, AES, MD5, SHA e outros. Este pacote é usado pelo sistema Fax Seguro para o cálculo resumo criptográfico (hash) dos documentos recebidos e para implementação da criptografia assimétrica utilizada para garantir a segurança dos dados no tráfego destes entre os servidores. 4.2.4 Java Secure Socket Extension - JSSE O Java Secure Socket Extension (JSSE) é um pacote que habilita comunicações seguras via Internet. Ele implementa uma versão Java do SSL (Secure Sockets Layer) e do TLS (Transport Layer Security). Ele também inclui cifragem de dados, autenticação em servidores, integridade de mensagens e autenticação de cliente opcional [JAV d]. 4.2.5 Java PDDE SDK - Bry O Java PPDE SDK é um conjunto de classes utilizadas para que uma aplicação Java possa contactar uma PDDE e enviar seus documentos para serem protocolados digitalmente. 4.2.6 Java Data Access API - JDBC JDBC é uma API única para acesso à bases de dados. É uma API orientada à objetos, com funções para execução de SQL em bases de dados relacionais. Cada fabricante disponibiliza o driver de acesso para aquele banco de dados, seguindo as normas do JDBC. Desta forma, os acessos ao banco de dados pelas aplicações Java são padronizados, diminuindo o trabalho do desenvolvedor. 31 4.3 ImageMagick ImageMagick é uma coleção robusta de aplicativos e bibliotecas fornecidas para ler, escrever e manipular qualquer tipo de imagem (mais de 89 formatos), incluindo os mais populares como TIFF, JPEG, PNG, PDF e GIF. Essas bibliotecas fornecem capacidade para criar imagens dinamicamente, rotacionar, redefinir tamanho, resolução e outras coisas. É um pacote desenvolvido em ANSI C e possui versões para diversos sistemas operacionais. Além disso, foram desenvolvidas interfaces de acesso ao pacote para serem usados com JAVA, PHP, Delphi e outras linguagens. 4.4 Servidor IIS (Internet Information Service) O Internet Information Service é um servidor de páginas de Internet padrão do Windows. Ele possui grande performance, fácil administração e segurança. O IIS já vem com suporte à ASP integrado, mas pode facilmente integrar outras tecnologias de processamento no servidor. 4.5 PDDE - Protocoladora Digital de Documentos Eletrônicos A PDDE é um sistema de protocolização de documentos eletrônicos composto por um computador servidor de uso especı́fico, um sistema computacional servidor, um software de acesso direto por usuário e um kit de desenvolvimento de aplicativos[TEC ]. Com a PDDE é possı́vel agregar confiança e segurança na utilização de sistemas computacionais que transacionam documentos eletrônicos. Com esse sistema pode-se garantir, no futuro, que um documento eletrônico, conjunto de dados ou arquivo, existia no passado e não foi alterado desde então. Ao protocolizar um documento, agrega-se ao mesmo a datação, o seqüenciamento, a assinatura digital da PDDE e o encadeamento de recibos. A PDDE adiciona importantes requisitos de segurança: 1. Irretroatividade: Pela utilização de algoritmos criptográficos e um sistema exclusivo 32 de encadeamento de recibos, a PDDE garante a impossibilidade de protocolização retroativa no tempo; 2. Privacidade: Por não ter acesso ao conteúdo do arquivo a ser protocolizado, a PDDE garante a privacidade da informação. 3. Auditoria: A PDDE se constitui como a terceira parte confiável em uma relação de troca de documentos eletrônicos, pois permite a auditoria interna em seu banco de dados, e externa, através do recibo emitido. O processo de protocolização digital se inicia com a geração do resumo criptográfico do documento - também conhecido como ”hash- que nada mais é do que uma representação compacta do arquivo original, de tamanho definido. Este processo é realizado diretamente, pelo próprio usuário ou por um sistema aplicativo. O ”hash”é enviado para a PDDE, que requisita a servidores de tempo externos uma data e hora confiáveis. Ocorre então a protocolização do documento eletrônico, gerando um recibo eletrônico assinado digitalmente pela PDDE, com hora, data e um número seqüencial de protocolização. recibo é então enviado ao usuário ou sistema aplicativo. 4.6 SSL - Secure Socket Layer Inicialmente desenvolvido pela Netscape, o protocolo SSL foi universalmente aceito na Web para a comunicação autenticada e cifragem de dados entre clientes e servidores[OPE ]. O protocolo SSL é executado entre a camada de transporte e a camada de aplicação da arquitetura TCP/IP. O SSL permite: 1. Autenticação de servidor 2. Autenticação de cliente 3. Cifragem dos dados 33 Autenticação do Servidor: permite ao usuário confirmar a identidade do servidor. Clientes SSL podem usar técnicas padrão de criptografia por chaves públicas para conferir a validade do certificado do servidor, bem como se este foi emitido por uma autoridade certificadora que esteja em sua lista de AC’s confiáveis. Autenticação do Cliente: permite ao servidor confirmar a identidade do usuário. Para isto são usadas as mesmas técnicas descritas na autenticação do servidor. Conexão cifrada: Exige que toda informação enviada entre cliente e o servidor seja cifrada pelo emissor e decifrada pelo receptor. O SSL é dividido em 2 protocolos: 1. SSL Record Protocol: define o formato usado para transmissão de dados. 2. SSl HandShake Protocol: define os requisitos necessários para que uma conexão SSL seja efetuada. 4.7 Tecnologias do Lado do Servidor 4.7.1 PHP PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma interacção com o utilizador através de formulários, parâmetros da URL e links[MON ]. A diferença do PHP em relação a linguagens semelhantes como o Javascript é que o código PHP é executado no servidor, sendo enviado para o cliente apenas html puro. Desta mforma é possı́vel interagir com bases de dados e aplicações existentes no servidor, com a vantagem do código fonte não ser exposto. O que diferencia o PHP de um script CGI escrito em C ou Perl é que o código PHP fica embutido no próprio HTML, enquanto no outro caso é necessário que o script CGI gere todo o código HTML, ou leia a partir de um outro arquivo. A linguagem foi concebida durante o Outono de 1994 por Rasmus Lerdorf. As primeiras versões não foram disponibilizadas, tendo sido utilizadas apenas na sua página pessoal para que ele pudesse ter informações sobre as visitas. A primeira versão utilizada 34 por outras pessoas foi disponibilizada em 1995, e ficou conhecida como ”Personal Home Page Tools”(ferramentas para página pessoal). Era composta por um sistema bastante simples que interpretava algumas macros e alguns utilitários que rodavam ”por trás”das páginas: um livro de visitas, um contador e algumas outras coisas. Em meados de 1995 o interpretador foi reescrito, e ganhou o nome de PHP/FI, o ”FI”veio de um outro pacote escrito por Rasmus que interpretava dados de formulários HTML (Form Interpreter). Ele combinou os scripts do pacote Personal Home Page Tools com o FI e adicionou suporte a mSQL, nascendo assim o PHP/FI, que cresceu bastante, e as pessoas passaram a contribuir com o projecto. Estima-se que em 1996 PHP/FI estava a ser utilizado por cerca de 15.000 sites em todo mundo, e em meados de 1997 esse número subiu para mais de 50.000. Nessa época houve uma mudança no desenvolvimento do PHP. Ele deixou de ser um projecto de Rasmus com contribuições de outras pessoas para ter uma equipa de desenvolvimento mais organizada. O interpretador foi reescrito por Zeev Suraski e Andi Gutmans, e esse novo interpretador foi a base para a versão 3. Actualmente PHP encontra-se na versão 4. Basicamente, tudo o que pode ser feito por um programa CGI pode ser feito também com PHP, como recolher dados de um formulário, gerar páginas dinamicamente ou enviar e receber cookies. PHP também tem como uma das caracterı́sticas mais importantes o suporte de um grande número de base de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vários outros. Construir uma página baseada numa base de dados torna-se uma tarefa extremamente simples com PHP. Além disso, PHP tem suporte a outros serviços através de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda é possı́vel abrir sockets e interagir com outros protocolos. 4.8 Sistemas de Gerenciamento de Banco de Dados 4.8.1 MySQL O MySQL é um sistema de banco de dados com suporte a multi-usuários baseado em comandos SQL (Server Query Language). A versão distribuı́da gratuitamente pela 35 Internet é oferecida em um pacote com o código-fonte, a fim de ser compilado para a plataforma desejada. O mysql é um banco de dados bem rápido, porém, não possui todas as funcionalidades que os bancos de dados tradicionais possuem. 4.8.2 Microsoft Access O Microsoft Access é um banco de dados de fácil utilização. As mais diversas fer- ramentas de desenvolvimento Windows possuem acesso nativo aos arquivos do Microsoft Access. Além disso, muitos programas atuais para Windows possuem algum tipo de filtro que permite a leitura/escrita em seus arquivos. Ele é um pouco lento, monousuário e não possui interface TCP/IP. 4.8.3 PostGreSql O PostgreSQL é um Sistema Gerenciador de Banco de Dados (SGBD) relacional. Oferece mecanismos eficientes de segurança e integridade de dados, além de suportar quase todas as instruções SQL. É um software de livre distribuição e, em termos de recursos, pode ser comparado aos melhores Banco de Dados comerciais existentes no mercado. O PostgreSQL é open-source e freeware e é mantido por vários desenvolvedores no mundo. 4.9 Conclusão Este capı́tulo apresentou uma descrição das principais tecnologias utilizadas no desenvolvimento deste trabalho, bem como suas funcionalidades. Capı́tulo 5 Sistema Proposto 5.1 Introdução O Sistema Fax Seguro consiste em uma aplicação desenvolvida em JAVA, que recebe e envia documentos de fax utilizando como meio a rede telefônica e a Internet. O maior benefı́cio deste sistema mostra-se quando um usuário deseja enviar um fax para outra cidade. Em uma ligação normal interurbana ou internacional, a tarifa cobrada pela companhia telefônica chega a ser 15 vezes maior que uma ligação local. Utilizando o sistema Fax Seguro, o usuário faria apenas uma ligação local, e o fax seria enviado pela Internet até a cidade destino e lá, entregue com mais uma ligação local. 5.2 Análise Entre as funcionalidades do sistema, podemos encontrar: 1. Receber ligações de fax 2. Enviar imagens de fax 3. Transmitir através da Internet uma imagem de fax para outro servidor 4. Cifrar e garantir a segurança dos dados trafegados pela Internet. Trata-se de um sistema ( hardware + software ) que funciona como um provedor de serviços de fax. A idéia é aproveitar a infra-estrutura de equipamentos de fax existentes e propiciar uma melhoria na qualidade dos serviços ofertados, adicionar novos serviços e agregar mecanismos de segurança, tudo isso com uma diminuição dos custos de envio e 37 recebimento de fax pelos clientes. 5.2.1 Especificação Informal 1. A ligação telefônica será regional (local), ou seja, o cliente conecta-se ao provedor de serviço mais próximo para enviar seu fax ao destinatário; 2. O sistema recebe o fax, cifra-o e o envia via Internet (Intranet) ao provedor mais próximo do destinatário; 3. O provedor mais próximo do destinatário, decifra o fax, conecta-se ao aparelho de fax do destinatário e envia o fax original; 4. O emissor pode enviar o mesmo fax a vários destinatários ao mesmo tempo, podendo personalizá-los através do sistema eletrônico de mala direta; 5. É utilizado a tecnologia de infra-estrutura de chaves públicas para garantir a autenticidade, integridade, confidencialidade, irretratabilidade e protocolização dos fax e dados dos cliente; 6. O emissor pode receber a confirmação da entrega do fax no destinatário no seu aparelho de fax ou recibo assinado de forma digital via e-mail ou sı́tio personalizado do cliente; 7. Para o cliente de fax, utilizando o seu aparelho de fax normal, o sistema será muito simples. A autenticação do usuário será realizada por um protocolo de desafio resposta, impossibilitando um ataque ao sistema; 8. O provedor pode gerenciar contas de usuários, pode ser designado uma cota de fax por usuário, e pode enviar relatório mensais ao cliente maior da utilização dos serviços. 38 5.3 Projeto O sistema Fax Seguro implementado utilizando-se a linguagem JAVA. A escolha da linguagem foi feita levando em consideração sua portabilidade e grande quantidade de bibliotecas disponı́veis. O sistema pode ser dividido nos seguintes módulos, de acordo com a Figura 5.3: Figura 5.1: Modelo Fax Seguro Cada Servidor Fax Seguro funciona de forma independente. Para interagir com o Sistema, o usuário pode utilizar um aparelho de fax comum, um modem ou um navegador de Internet. 39 5.3.1 Requisitos de Segurança Toda comunicação entre os Servidores é feita pela Internet. Desta forma, para haver segurança nos dados e no acesso ao Sistema, os seguintes ı́tens foram explorados: 1. Autenticação: os usuários são autenticados no Sistema informando seu número de usuário e senha. Isto é feito no telefone e na página WEB. 2. Segurança dos dados: todo tráfego de dados pela Internet é feito utilizando a tecnologia SSL, garantindo a autenticação dos Servidores e cifragem dos dados. Além disso, é aplicada uma polı́tica de emph’friends only’, onde somente é aceito conexões de IPs cadastrados no Servidor. 3. Integridade dos dados: todo documento que entra no Sistema é protocolado digitalmente, garantindo a integridade do mesmo ligado a uma data. Cada transação de documentos no Sistema também é protocolada digitalmente. 4. Mesmo se o fax for interceptado na Internet, seu conteúdo não será legı́vel por estar cifrado, garantindo a entrega do fax somente para o destinatário informado. 5.3.2 Banco de Dados O banco de dados armazena todas as informações sobre a configuração, localização dos documentos e contas de usuários. O modelo escolhido foi o Relacional, devido à sua performance e grande aceitação no mercado. Foram feitos testes com 3 bases: Microsoft Access, PostgreSQL e Mysql. A Figura 5.3.2 mostra o esquema das tabelas utilizadas: Descrição das Tabelas: 1. tab config: guarda informações sobre o Servidor Fax Seguro local, como porta onde o modem se encontra e porta de comunicação SSL com os outros Servidores. 2. tab doc: contém informações sobre cada documento de fax digitalizado. 40 Figura 5.2: Modelo das Tabelas do Banco 3. tab fax in: guarda informações de cada fax que chega ao Sistema Fax Seguro por um usuário. 4. tab fax out: possui informações de um fax que chegou ao Servidor Fax Seguro por uma conexão SSL para ser enviado à um aparelho de fax final. 5. tab servers: contém o cadastro de cada Servidor Fax Seguro conhecido por este Servidor. 6. tab usuários: contém os dados dos usuários e permissões. 5.3.3 Escalabilidade O presente protótipo implementa o Servidor Fax Seguro com 1 modem apenas, mas a aplicação pode ser facilmente expandida para vários deles. Isto trás a vantagem de vários fax poderem ser enviados e recebidos ao mesmo tempo, aumentando a eficiência do Sistema. 41 5.3.4 Caso de Uso Real - Enviar fax aparelho Este caso de uso descreve a interação entre um usuário que deseja enviar um doc- umento de fax utilizando o sistema Fax Seguro, mostrando todas as etapas: 1 - O Servidor encontra-se em estado de espera. O usuário insere um documento no fax, disca o número do servidor e espera o atendimento do modem. Figura 5.3: Servidor Fax Seguro esperando ligação Figura 5.4: Ligação para o Servidor Fax Seguro 42 2 - O Servidor atende e envia mensagem de boas vindas e pede para que o Usuário se autentique. O Usuário digita seu login e sua senha utilizando os números do telefone. Figura 5.5: Autenticação no Sistema Figura 5.6: Servidor Fax Seguro esperando ligação 43 3 - O Servidor valida o usuário, consultando o banco de dados e pede o ddd e o número destino do fax. Figura 5.7: Servidor Fax Seguro pedindo destino real do Fax 4 - O Servidor recebe o número e envia o sinal de fax. O usuário então envia o fax ao servidor. Figura 5.8: Envio de fax para o Servidor Fax Seguro 44 5 - O servidor envia o fax para protocolarização junto a PDDE e o insere na base de dados. Figura 5.9: Protocolarização digital do fax Figura 5.10: Terminal protocolando o fax 45 6 - Neste momento, o Usuário já pode visualizar sua requesição na Internet utilizando um navegador comum. Figura 5.11: Acompanhamento do processo via WEB 7 - O servidor envia o fax para o servidor Fax Seguro que corresponde à cidade destino do fax. Figura 5.12: Envio do fax pela Internet para o Servidor destino 46 8 - O Servidor Fax Seguro destino recebe o fax, procola sua chegada e envia o recibo para o servidor remetente. Figura 5.13: Recebimento e protocolização do fax pelo Servidor destino Figura 5.14: Visão do terminal recebendo e protocolizando a chegada o fax 47 9 - O Usuário pode visualizar a chegada de sua requesição no servidor destino. Figura 5.15: Protocolarização digital do fax 10 - O documento é encaminhado para o fax destino. Figura 5.16: Envio do Fax para o aparelho destino 48 11 - O servidor destino protocola o envio do fax com a PDDE. Figura 5.17: Protocolação da chegada do fax no aparelho destino Figura 5.18: Terminal mostrando protocolação da chegada do fax no aparelho destino 49 12 - O servidor destino avisa o servidor remetente que o fax foi enviado com sucesso. Figura 5.19: Protocolarização digital do fax Figura 5.20: Protocolarização digital do fax 50 13 - O servidor Fax Seguro remetente protocoliza o aviso da chegada do fax. Figura 5.21: Procolação do aviso da chegada do Fax no destino Figura 5.22: Visão do terminal protocolando o aviso da chegada do fax no destino 51 14 - O Usuário pode visualizar a chegada do fax no destino Figura 5.23: Visualização da confirmação da chegada do fax 5.3.5 Caso de Uso Real - Enviar fax WEB O usuário também pode enviar um fax através da página do Projeto. Para isso, ele se autentica e entra na página de envio. Nela, digita o DDD, o número de telefone destino do fax e o texto do corpo do fax. Este texto é transformado em imagem e enviado ao Servidor Fax Seguro local, como se tivesse sido enviado por um aparelho de fax. Após o envio, todo o procedimento é o mesmo do caso de uso descrito anteriormente. 52 Figura 5.24: Página para envio de fax 5.4 Conclusão Este capı́tulo mostrou como foi projetado o protótipo do Sistema Fax Seguro. Os Casos de Uso descrevem a interação do usuário com o Sistema e como o fax viaja ao destinatário, passo a passo. Capı́tulo 6 Considerações Finais O presente trabalho mostrou que a Internet pode ser utilizada para o envio de fax a longas distâncias. Isto permite a diminuição de custos nas ligações de fax interurbanas e no custo global de comunicação de uma empresa. Foi desenvolvido um Sistema que possibilita o envio e recebimento de documentos de fax, através de aparelhos convencionais (aproveitando todo o parque instalado) ou modems, utilizando a rede telefônica e a Internet como meio de transmissão. O documento de fax é protocolado digitalmente ao entrar no Sistema e ao ser entregue ao destinatário final, acrescentando o não repúdio e a autenticidade na transação de fax. Toda a comunicação entre os servidores é feita utilizando-se SSL, garantindo o sigilo e segurança dos dados. Foi criado também uma interface WEB para gerenciamento e configuração do Servidor Fax Seguro. Através dessa interface, o usuário pode acompanhar o trajeto de seu fax enviado ao Sistema, além de poder enviar um fax diretamente por ela, sem a necessidade de se possuir um aparelho ou modem. Para isto, foi feito um estudo profundo sobre a tecnologia facsimile, o funcionamento dos modems, técnicas de criptografia, bancos de dados e das linguagens de programação Java e PHP. 54 6.1 Sugestões para Trabalhos Futuros - aumentar a diversidade de tipos de arquivos que podem ser enviado através da página do Sistema - envio de fax por telefone/voz - roteamento para a cidade mais próxima do destino, quando este não pode ser alcançado - faturamento da utilização do Sistema - integração do e-mail com o Sistema - agendamento de envios de fax Referências Bibliográficas [COR a] CORPORATION, S. Supra Technical Support Bulletin Class 1 Fax Commands for Supra Faxmodems. Disponı́vel em <http://www.hylafax.org/modems/supra/class1.html>. Acesso em: Junho, 1992. [COR b] CORPORATION, S. Supra Technical Support Bulletin Class 2 Fax Commands for Supra Faxmodems. Disponı́vel em <http://www.hylafax.org/modems/supra/class2.html>. Acesso em: Junho, 1992. [GIR 99] GIRISH, B. Facsimile Communication over IP Networks. Indian Institute of Technology, Kanpur, Março, 1999. Dissertação de Mestrado. [GZS 97] GUO ZHEN SHENG, W. C. T. Intranet-based mail fax gateway technology. IEEE International Conference on Intelligent Processing Systems, [S.l.], p.1607–1611, Outubro, 1997. [INT ] INTERNET, A. FaxNet. Disponı́vel em <http://www.faxnet.com.br/>. Acesso em: Julho, 2003. [JAV a] JAVA. Java Advanced Imaging 1.1 API Documentation. Disponı́vel em <http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/>. Acesso em: Julho, 2003. [JAV b] JAVA. Java Communications 2.0 API Documentation. Disponı́vel em <http://java.sun.com/products/javacomm/javadocs/index.html>. Acesso em: Julho, 2003. [JAV c] JAVA. Java Cryptography Extension (JCE) 1.2.1 API Documentation. Disponı́vel em <http://java.sun.com/products/jce/doc/apidoc/>. Acesso em: Julho, 2003. [JAV d] JAVA. Java Secure Socket Extension (JSSE) 1.0.2 API Specification. Disponı́vel em <http://java.sun.com/products/jsse/doc/apidoc/>. Acesso em: Julho, 2003. [JAV e] JAVA. JavaTM 2 Platform, Standard Edition, v 1.4.2 API Specification. Disponı́vel em <http://java.sun.com/j2se/1.4.2/docs/api/>. Acesso em: Julho, 2003. 56 [KT 01] KIYOSHI TOYODA, SHIRO TAMOTO, D. H. C. Internet facsimile as an internet office appliance. IEEE Communications Magazine, [S.l.], Outubro, 2001. [LUC ] LUCENT. ModemModule Developer´s Guide. [MON ] MONCUR, M. PHP3: Manual: Introduction. Disponı́vel em <http://www.php.net/manual/introduction.php3>. Acesso em: Janeiro, 2003. [OPE ] OPENSSL. OpenSSL Project. Disponı́vel em <http://www.openssl.org/>. Acesso em: Março, 2003. [PCT ] PCTEL. HSP56 MicroModem AT Command Summary. Disponı́vel em <http://www.multitech.com/documents/manuals/s000262a class1.pdf>. Acesso em: Julho, 1998. [SIG ] SIGTEL. History And Development Of Facsimile. Disponı́vel em <http://www.sigtel.com/tel hist fax.html>. Acesso em: Janeiro, 2003. [SYS ] SYSTEMS, M. Fax Service Class1 and Fax Service class 1.0 Developer´s Guide. Disponı́vel em <http://www.multitech.com/documents/manuals/s000262a class1.pdf>. Acesso em: Julho, 2002. [TEC ] TECNOLOGIA, B. BRy PDDE - Servidor de Confiança. Disponı́vel em <http://www.bry.com.br/produtos/pdde/default.asp>. Acesso em: Julho, 2003. [TEL ] TELEMIKRO. FaxFacil. Disponı́vel em <http://www.passafax.com.br/>. Acesso em: Julho, 2003. [TOS 98] TOSHNIWAL, R. A Study on Internet Fax. [UNI 92] UNION, I. T. T.50 international reference alphabet (ira). Fevereiro, 1992. Relatório técnico. [UNI 95a] UNION, I. T. T.31 asynchronous facsimile dce control - service class 1. Agosto, 1995. Relatório técnico. [UNI 95b] UNION, I. T. T.32 asynchronous facsimile dce control - service class 2. Agosto, 1995. Relatório técnico. [UNI 99a] UNION, I. T. T.30 procedures for document facsimile transmission in the general switched telephone network. Abril, 1999. Relatório técnico. [UNI 99b] UNION, I. T. T.4 standardization of group 3 facsimile terminals for document transmission. Abril, 1999. Relatório técnico. Apêndice A Fontes