Uma publicação da tecepe. Ano I número 5.
O próximo passo é um sistema operacional orientado a objetos. A Orientação a Objetos consiste em agrupar os dados de uma entidade lógica - um objeto - com as rotinas necessárias para operar e transformar estes dados - seus métodos. Esta é a técnica mais moderna e indicada para lidar com a crescente complexidade de programas de computador, muitos deles com mais de um milhão de linhas.
A boa técnica de Orientação a Objetos dita que apenas a interface de um objeto deve ser acessível a outros objetos. Deste modo o objeto pode ser alterado sem perturbar o funcionamento de outros (desde que a sua interface seja mantida, claro). É o que se chama de encapsulamento.
Este modelo funciona muito bem dentro de programas, mas encontra dificuldades quando extendido para interações entre programas diferentes. O problema é que os sistemas operacionais não foram escritos para suportar este tipo de extensão.
Para corrigir esta dificuldade, a Microsoft já lançou uma série de tentativas diferentes. Começou com OLE (Object Linking and Embeding). Depois veio o OLE 2.0 (nada a ver com o OLE 1.0, exceto o nome). OLE 2.0 permitia a exposição de interfaces geradas pela linguagem C++ na forma de tabelas de métodos. Depois veio o OLE Automation.
Surpreendentemente, o modelo de maior sucesso foram os chamados VBX, elementos da linguagem Visual Basic, que nem é orientada a objetos. Aproveitando a onda, a MS lançou os OCX, versões de 32 bits dos VBX. A nova moda são os Active X, OCX que podem ser baixados por browsers via Internet.
Estas constantes mudanças irritaram alguns programadores, atolados em pesados livros sobre novas tecnologias que são descartadas a cada 6 meses. OLE 2.0 tem vários problemas: é específico para a linguagem C++, não permite o polimorfismo (derivação de objectos a partir de um ancestral) e exige recompilação de programas no caso de alteração da interface. Muitos não entendem porque não é adotado o CORBA, um modelo de objetos mais moderno e suportado por outras plataformas.
Uma nova opção é a adoção da tecnologia JAVA como interface de comunicação entre objetos. JAVA é naturalmente orientada a objetos, é suportada em multiplos sistemas operacionais e sua semelhança com a linguagem C++ facilita o aprendizado. O problema de desempenho de JAVA, uma linguagem interpretada, parece estar sendo contornado por técnicas de otimização. A empresa Asymetrix já tem um otimizador dos byte-codes JAVA que permite um desempenho bem razoável. Outras empresas estão trabalhando em projetos semelhantes.
Parece que a linguagem JAVA tem sorte: criada para escrever sistemas operacionais de eletrodomésticos, como torradeiras e fornos de micro-ondas, ela está sendo usada de muitas maneiras não antecipadas pelos seus criadores.
Embora a chave de 40 bits seja segura para a maioria das transações, a sua quebra é possível em períodos razoáveis de tempo. Estima-se que um ataque por força bruta, testando todas as chaves de 40 bits possíveis, leve em torno de um ano em um PC Pentium. É claro que essa quebra leva menos tempo se forem usados vários computadores trabalhando simultaneamente no problema. Foi o que fizeram os Cypherpunks.
O sistema de ataque idealizado consiste em solicitar doação tempo de processamento via Internet. Funciona assim: você faz o download de um programa para rodar em seu computador. Este programa entra em contato com um servidor e recebe um conjunto de chaves contiguas para testar. Ao termino do teste, tendo ou não atingido sucesso na descoberta da chave, o programa reporta ao servidor central. Deste modo vários computadores conectados a Internet trabalham de maneira coordenada.
O resultado foi surpreendente: As páginas html de desafio, com pedido do cliente e resposta do servidor, foram decifradas em 31.8 horas. O processo foi grandemente facilitado por uma peculiaridade do protocolo SSL da Netscape, que consiste em enviar um "challenge" para ser retornado criptografado. De posse das duas versões do "challenge", o ataque por força bruta é mais facil.
Veja também:
Os maiores culpados desta demora são os modems analógicos. Projetados para usarem linhas telefônicas convencionais, os modems atuais - mesmo os mais modernos - não conseguem falar a mais de 33.600 bits por segundo. Isto corresponde a uns 2000 caracteres por segundo. Muito pouco para transmissão de imagens, sons ou vídeo.
Esta limitação de velocidade está na forma de transmissão das linhas telefônicas. Elas foram concebidas para transmitir voz e são capazes de transmitir sons com freqüências entre 200 e 4000 Hertz (ciclos/seg). Isto resulta em uma banda de transmissão de 3,8 KHz. Sons com frequências acima de 4 KHz são considerados ruídos pelas empresas de telefonia e existem até dispositivos para filtra-los.
Dada essa faixa estreita de freqüências, são realmente surpreendentes as velocidades conseguidas pelos modernos modems análogicos. Estes porém, já atingiram uma barreira física de velocidade. Para velocidades maiores será necessária mudança na forma de transmissão. Os novos modems terão de usar um espectro de frequências bem maior: são os modems de banda larga.
Se você tem TV a cabo, já tem um demodulador de banda larga em sua casa. A caixinha da TV a cabo recebe sinais com frequências entre 50 e 600 MHz. Isto corresponde a 550 MHz de espectro, 140.000 vezes mais largo que o do seu telefone! Cada canal de televisão (e são possíveis uns 70) usa uma faixa de 8 MHz de largura para transmitir as imagens e som estéreo. Um canalzino destes poderia transmitir até 16 Mbps de dados, 500 vezes mais que uma linha telefônica (note que as empresas de TV por assinatura não pagam nada pela concessão de uso destes canais enquanto você paga até R$4000 por uma linha telefônica!).
Mas existem problemas. A topologia em árvore das redes de TV a cabo não é adequada para transmissão bi-direcional de dados. Para tal, seria necessário particionar estas redes em segmentos menores conectados a routers distribuídos pela cidade. Mesmo assim, a rede seria assimétrica, com uma velocidade de transmissão maior na direção Internet-usuário. Uma outra solução possível consiste em usar modems convencionais para comunicação na direção usuário-Internet e a transmissão de alta velocidade do cabo na outra direção. Isto funciona bem para protocolos como o http, que normalmente tem um fluxo de dados muito maior na direção servidor-cliente. Em qualquer dos casos, podem ser atingidas velocidades downstream de até 15 Mbps, 500 vezes mais rápido que os mais modernos modems analógicos!
As empresas de telefonia também estão pesquisando modems de banda larga. Embora mais lentos que os modems a cabo, estes novos modems - conhecidos pela sigla ADSL: Asymetric Digital Subscriber Line - podem atingir 5 Mbps, também uma velocidade respeitável, com a vantagem de que você não vai ter que dividir esta banda com ninguém, como acontece no modem a cabo. Os modems ADSL funcionam em pares de fios semelhantes aos do telefone convencional, com comprimentos não superiores a 4 Km.
Estas tecnologias já estão em operação em alguns lugares e sua viabilidade técnica está comprovada. Faltam apenas a consolidação dos padrões usados, a adaptação das redes de cabo e telefonia e a produção em massa destes modems, o que os faria mais econômicos (Atualmente eles custam entre US$500 e 1500).
É claro que toda a infraestrutura da Internet terá que ser modernizada para suportar esse bólidos ou o gargalo vai apenas mudar de lugar. Analistas prevêm para o final do século a popularização do uso destes modems. Inúmeras novas aplicações, como a video-conferência, serão então possíveis. Vale a pena esperar.
Veja também:
Microsoft e Netscape estão em constante disputa pelo domínio do mercado de software para a Internet. Por vezes essa disputa sai do campo mercadológico para o judicial.
A nova batalha é em torno da limitação de 10 números IP atendidos a cada 10 minutos via TCP/IP, presente na futura versão (4.0) do Windows NT Workstation. Esta limitação na prática inviabiliza o uso do "Workstation" como servidor.
A MS alega que esta limitação visa proteger a performance do sistema: o NT Workstation teria sido desenhado para uso pessoal e não como servidor.
Já a Netscape fareja uma prática comercial desleal. Segundo o advogado da NS, Gary Reback, a MS estaria forçando todos servidores WWW em NT a usar o NT Server, que custa US$ 1.129, no lugar do mais econômico NT Workstation, de US$ 319. Os dois sistemas teriam o mesmo desempenho como Web Server, não fosse a limitação incluída no Workstation 4.0. Reback é um velho conhecido da Microsoft, tendo barrado a compra da Intuit - fabricante do software Quicken - pela MS no ano passado.
A limitação revoltou outros desenvolvedores de software. Bob Denny, criador do servidor WebSite, alega que em testes com até 2.000.000 de hits/dia, saturando uma linha T1, não conseguiu detectar diferença entre o Server e o Workstation. Denny informa que a maioria dos servidores WWW baseados em NT usa o "Workstation".
Tim O'Reilly, da O'Reilly Associates, observa que o TCP/IP não é um produto da Microsoft e que este padrão aberto não pode ser redefinido ou limitado unilateralmente.
Ver também:
O Servidor Http Pessoal Tecepe é um programa para Windows 16 bits e roda em Windows 3.1, Windows 95 ou Windows NT. Fácil de usar, o programa consome poucos recursos da máquina, rodando até em computadores 386 com apenas 4 Mb de memória.
Pode servir até 16 clientes simultaneamente e tem recursos especiais que o fazem ideal para servir imagens em sistemas de chat, como o ti ti ti, da Tecepe.
Clique aqui para fazer o download.
Não olhe agora, mas o Big Brother está olhando prá você.
O presidente Clinton apoiou uma legislação que obriga fabricantes de equipamentos de comunicação (Fax, Modems etc) a usar o chamado Clipper Chip, um dispositivo de encripção destinado a permitir que o FBI e outras agências policiais possam "grampear" as suas comunicações secretas.
A nova investida da Casa Branca é o chamado Clipper III. Este novo esquema envolve o sistema de certificação de chaves e cria a figura das "escrow authorities (EA)" . Estas seriam depositárias das chaves privadas de pessoas e empresas. Mediante ordem judicial, a EA forneceria a chave para a Autoridade Policial.
Já existe atualmente um sistema de Certificação de Chaves Públicas, serviço este prestado por empresas como a RSA. A diferença é que pelo Clipper III, o Governo teria acesso às chaves privadas das pessoas, acesso este que as Autoridades Certificadoras atualmente não tem (as Autoridades Certificadoras certificam somente as chaves públicas).
No mais as chaves funcionariam como assinatura eletrônica das pessoas e também como um meio para codificar mensagens, assegurando a privacidade. Exatamente como no sistema de certificação já existente.
Para muitos, a proposta tenta estabelecer um paralelo entre os dois sistemas, jogando justamente com o desconhecimento do público sobre a questão. A grande sacada do sistema de chave pública/chave privada está justamente na possibilicade de se comunicar com segurança sem ter que revelar seu segredo - a chave privada - para ninguém.
Embora os objetivos de tal legislação sejam de início aceitáveis (i.e. a interceptação de mensagens de criminosos e terroristas), todos sabemos como funciona a mentalidade do Estado policial. Dados os meios tecnológicos, é provável que todas as comunicações, de todas as pessoas, venham a ser grampeadas. E esses meios já existem. É possível instalar programas que detectem palavras ou frases em mensagens e-mail, chamando a atenção da polícia para aqueles que usam estas palavras.
Autoridades policiais em geral tem baixa credibilidade no que diz respeito ao respeito à privacidade e guarda de segredos. Talvez por isso a nova proposta coloque as chaves sobre a guarda de uma outra instituição, teoricamente desvinculada do sistema policial.
Mesmo que você não tenha grandes segredos no momento, vale a pena ficar atento. Na medida que cresce o uso de meios de comunicação via Internet, cresce também o interesse em grampear essas comunicações. Você não vai querer aquele olhão na sua janela.
Veja também:
A jogatina chegou à televisão. Cansados de depender da boa vontade dos patrocinadores, as emissoras de televisão estão apelando para o jogo. Numa associação com as estatais de telefonia, virtualmente todas as redes de televisão estão explorando o jogo eletrônico.
Funciona mais ou menos assim: um programa de televisão coloca no ar uma pergunta sobre um assunto qualquer. Os telespectadores então ligam por telefones de prefixo 0900 para dar a sua opinião. No final do programa, um dos votantes na opção vencedora é sorteado e ganha algum premio.
No "Show do Esporte" (Bandeirantes) você vota no vencedor de um jogo de futebol ou corrida de carros. Na MTV você deixa uma frase esperta ou vota em um video-clip. No programa "Perfil" você escolhe a gatinha mais gostosinha. Pelo privilégio de votar e concorrer a premios você paga em torno de R$3.00 a título de "custo da ligação" (por R$3.00 dá prá falar por 1 minuto com a China!). O valor vem no fim do mês na sua conta telefônica, o que ajuda a escamotear a jogada.
O jogo parece ser uma paixão nacional. Proibi-lo em nosso país não é uma opção realística.
Vira e mexe alguém surge com uma nova modalidade de jogo. Melhor seria regulamentá-lo. Tres regulamentos importantes seriam:
São só sugestões.
O método mais usado é o chamado CGI. Sigla de Commom Gateway Interface, CGI é um padrão de troca de informações entre servidores Http e programas especiais. Ao receber uma solicitação de consulta, o servidor executa o programa, passando para este as informações da solicitação (os campos de um formulário, por exemplo). O programa usa estes campos para fazer a consulta ao banco de dados e formata a resposta em html. A resposta é retornada ao servidor que manda para o usuário. Feito isto, o programa termina.
Em sistemas UNIX, a comunicação entre servidor e programas CGI é feita através de variáveis de ambiente. O programa CGI lê essas variáveis pelos canais padrão do sistema. Em ambientes Windows NT, que não tem este tipo de canal, a comunicação é feita através de arquivos. O Servidor grava as entradas em um arquivo e dispara o programa CGI. Este lê o arquivo e gera a resposta em um outro arquivo. Ao término do programa CGI, o servidor envia a resposta ao usuário e apaga os dois arquivos.
A linguagem mais usada para programas CGI é PERL, uma linguagem interpretada fácil de usar . Em ambientes Windows podem ser usadas ainda C e Visual Basic. Embora o esquema CGI seja funcional, ele tem uma eficiência relativamente baixa em termos de uso dos recursos do servidor, pois incorre em um alto custo de criação e destruição de processos e arquivos. Para serviços com muito movimento são necessárias soluções mais eficientes.
A Microsoft e a Process desenvolveram conjuntamente uma nova interface com seus servidores Http. Batizada de ISApi (Internet Server API), este padrão carrega os programas permanentemente na memória do computador, na forma de DLLs (bibliotecas "linkadas" dinamicamente) . Ao receber uma solicitação, o servidor invoca a DLL correspondente, passando os inputs em memória. A biblioteca gera a resposta e devolve ao servidor, também em memória. O uso de bibliotecas permanentemente carregadas e a passagem de dados na memória asseguram bom desempenho, com um mínimo de acesso a disco.
Por fim a solução de mais alta performance: o desenvolvimento de um servidor http completo e dedicado a uma função. Pode parecer a reinvenção da roda, mas este esquema tem várias vantagens. Como não existe nenhuma interface e o servidor roda em um único programa integrado, a velocidade é máxima. Servidores Http são relativamente simples de programar. Esta foi a solução que foi usada no sistema Intersites da Tecepe.
A Microbase, empresa responsável pelo desenvolvimento do software do sistema, foi proibida* pelo TSE de revelar detalhes sobre o sistema. Embora o zelo do Tribunal seja louvável, a proibição contraria os modernos métodos de teste de sistemas criptográficos.
A "força" de um sistema criptográfico deve residir no segredo das chaves e não no segredo do método criptográfico. Métodos de encripção são segredos difíceis de proteger. Normalmente são conhecidos por muitas pessoas. Um atacante pode obter estes métodos através de acesso não autorizado a um computador ou por engenharia reversa do dispositivo.
De fato, é considerado mais seguro publicar detalhes de sistemas de encripção para que especialistas possam avaliar possíveis falhas no protocolo e apontar pontos fracos. Este escrutínio público, além de corrigir eventuais problemas, gera uma maior confiança no sistema - tanto dos partidos quanto da população.
* Revista Informática Hoje n°407, pg 7