Friday, November 27, 2009

Microprocessadores - Arquitetura Superpipeline e VLIW







O que e pipeline?

De um modo grosseiro, é a capacidade que o processador tem de fazer o processamento através de fases, tornando-se, assim, muito mais otimizado e rápido. Explico: Imagine uma linha de montagem de carros, onde o carro passa por diversas fases, de funilaria, peças, etc. Essa produção funciona em paralelo para diferentes tipos de carro.
Essa é a idéia básica colocada no pipeline.

O tempo para executar um programa é determinado por três fatores principais [Joh91]:

número de instruções necessárias para executar a aplicação;
• o número médio de ciclos do processador necessários para executar a instrução;
• o tempo do ciclo do processador.


• As técnicas Superescalares tomam vantagem do paralelismo de instruções para reduzir o número de ciclos por instrução.

• Os processadores VLIW tomam vantagem do paralelismo de operações para reduzir o número de instruções.

• Os processadores Superpipeline tomam vantagem do paralelismo de instruções para reduzir o tempo do ciclo.


O SUPERPIPELINING:

Consiste em se colocar um grande número de estágios, no caso, sendo mais que 6 estágios.

Vantagens: Maior número de instruções sendo processadas ao mesmo tempo e maior freqüência de Clock.


Desvantagens: Aumenta a complexidade, dependências e desvios.


O PIPELINE SUPERESCALAR:

Consiste em se aumentar o número de pipelines, ao invés de 1, teríamos 2 ou 3 pipelines em paralelo.

Vantagens: Paralelismo real, com 2 ou mais instruções sendo processadas em paralelo, com melhora significativa de performance.


Desvantagens: Necessidade do código ser preparado, aumento de complexidade e problemas de dependências e desvios.


Sistemas Operacionais - Troca de Contexto




Troca de contexto – Também conhecida como chaveamento ou mudança de contexto é o processo de armazenar e restaurar o estado (contexto) de uma CPU.
Isso permite que múltiplos processos possam compartilhar uma única instância de CPU.

É garantido que quando o contexto anterior armazenado seja restaurado, o ponto de execução volte ao mesmo estado que foi deixado durante o armazenamento.

Termo referente a sistemas operacionais, encontrado também sobre a designação troca de contexto ou mudança de contexto, que se refere à saída de uma tarefa do processamento para que outra assuma, podendo a primeira não ter sido concluída.

O chaveamento garante que quando a primeira novamente voltar a ser processada todo o seu contexto de software volte ao ponto de onde ela permitiu a entrada de outro processo.

Procedimento
Em uma troca de contexto, o estado do primeiro processo deve ser armazenado de alguma forma, para que quando o escalonador retorne sua execução, o estado seja antes restaurado.

O estado de um processo inclui todos os registradores que o processo pode estar usando, especialmente o contador de programa, e qualquer outro dado específico do sistema operacional. A estrutura que armazena todas essas informações é chamada de bloco de controle de processo.

O bloco pode ser armazenado na pilha de execução do processo na memória do kernel, ou em algum outro local específico definido pelo sistema operacional. A seguir é feita a restauração do bloco de controle do processo que irá executar. Com a atualização do contador de programa, a execução do novo processo pode iniciar.

Thursday, November 26, 2009

SSL - Questão 108

O Transport Layer Security - TLS (em português: Protocolo de Camada de Sockets Segura) e o seu predecessor, Secure Sockets Layer - SSL, são protocolos criptográficos que conferem segurança de comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados.

O protocolo SSL 3.0 também é conhecido como SSL3, e o TLS 1.0 como TLS1 ou ainda SSL3.1.

Funcionamento

O servidor do site que está sendo acessado envia uma chave pública ao browser, usada por este para enviar uma chamada secreta, criada aleatoriamente. Desta forma, fica estabelecida a trocas de dadoscriptografados entre dois computadores.
Baseia-se no protocolo TCP da suíte TCP/IP e utiliza-se do conceito introduzido por Diffie-Hellman nos anos 70 (criptografia de chave pública) e Phil Zimmerman (criador do conceito PGP).

O SSL permite autenticação das 2 partes envolvidas na comunicação (cliente e servidor) baseando-se em certificados digitais.





Certificado Digital

Um certificado digital é um arquivo de computador que contém um conjunto de informações referentes a entidade para o qual o certificado foi emitido (seja uma empresa, pessoa física ou computador) mais a chave pública referente a chave privada que acredita-se ser de posse unicamente da entidade especificada no certificado.

Uso

Um certificado digital normalmente é usado para ligar uma entidade a uma chave pública. Para garantir digitalmente, no caso de uma Infraestrutura de Chaves Públicas (ICP), o certificado é assinado pelaAutoridade Certificadora que o emitiu e no caso de um modelo de Teia de Confiança (Web of trust) como o PGP, o certificado é assinado pela própria entidade e assinado por outros que dizem confiar naquela entidade. Em ambos os casos as assinaturas contidas em um certificado são atestamentos feitos por uma entidade que diz confiar nos dados contidos naquele certificado.



Auditoria - Windows - questão 116

Auditoria - Windows
 Os tipos mais comuns de eventos a serem submetidos à auditoria ocorrem quando:
·         Objetos, como arquivos e pastas, são acessados.
·         Contas de usuário e contas de grupos são gerenciadas.
·         Usuários fazem logon e logoff do sistema.

Uma Diretiva de auditoria define os tipos de eventos de segurança que o Windows Server 2003 grava no log de segurança em cada computador. O Windows Server 2003 grava eventos no log de segurança do computador específico onde ocorreu o evento.
Configure a diretiva de auditora em um computador para:
·         Rastrear os eventos de êxito ou de falha, como tentativas de fazer logon, tentativas de um usuário em particular de ler um arquivos específico, alterações em uma conta de usuário ou membro de grupo, e alterações das configurações de segurança.
·         Minimizar o risco de uso não autorizado de recursos.
·         Manter um registro de atividades do usuário e do administrador.
O primeiro passo para a implementação de uma diretiva de auditoria é a seleção dos tipos de eventos dos quais você deseja que o Windows Server 2003 faça a auditoria. Abaixo descreve esses eventos.
·         Logon de conta 
Uma conta é autenticada por um banco de dados de segurança. Quando um usuário faz logon no computador local, o computador registra o evento LogonDeConta. Quando um usuário faz logon no domínio, o controlador de domínio de autenticação registra o evento Logon de conta.

·         Gerenciamento de Conta
Um administrador cria, altera ou exclui uma conta de usuário ou grupo; uma conta de usuário é renomeada, desativada ou reativada; ou uma senha é definida ou alterada.

·         Acesso ao serviço de diretório
Um usuário acessa um objeto do Active Directory. Para fazer o log desse tipo de acesso, você deve configurar objetos para auditoria específicos do Active Directory.

·         Logon
Um usuário faz logon ou logoff de um computador local, ou efetua ou cancela uma conexão de rede ao computador. O evento é registrado no computador que o usuário acessa, independente de uma conta local ou de uma conta de domínio se usada.

·         Acesso ao objeto
Um usuário acessa um arquivo, pasta ou impressora. O administrador deve configurar arquivos, pastas ou impressoras específicos para auditoria.

·         Alteração de diretiva 
Um alteração é feita nas opções de segurança do usuário ( por exemplo, opções de senha ou configurações de logon de conta), direitos de usuários ou diretivas de auditoria.

·         Uso de privilégios
Um usuário exercita o seu direito, como quando altera a hora do sistema (que não inclui direitos relacionados ao logon de conta), direitos de usuário ou diretivas de auditoria.

·         Rastreamento do processo
Um aplicativo executa uma ação. Em geral esta informação é útil somente para programadores que desejam controlar os detalhes sobre aplicativos em execução.

·         Sistema
Um usuário reinicia ou desliga o computador, ou ocorre um evento que afeta a segurança ou log de segurança do Windows Server 2003.



MD5 - Controle de integridade- Questão 117

O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins.

Foi desenvolvido em 1991 por Ronald Rivest para suceder ao MD4 que tinha alguns problemas de segurança.
Por ser um algoritmo unidirecional, uma hash md5 não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida).
O MD5 também é usado para verificar a integridade de um ficheiro através, por exemplo, do programa md5sum, que cria a hash de um ficheiro. Isto pode-se tornar muito útil para downloads de ficheiros grandes, para programas P2P que constroem o ficheiro através de pedaços e estão sujeitos a corrupção dos mesmos. Como autenticação de login é utilizada em vários sistemas operacionais unix e em muitos sites com autentificação.

Vulnerabilidade

Como o MD5 faz apenas uma passagem sobre os dados, se dois prefixos com o mesmo hash forem construídos, um sufixo comum pode ser adicionado a ambos para tornar uma colisão mais provável.
Deste modo é possível que duas strings diferentes produzam o mesmo hash.






Tripwire e Hash

Boas funções hash devem, em teoria, tornar impossível a obtenção da cadeia de bits original a partir do hash.
A técnica de obtenção de hashes é usada, por exemplo, no armazenamento de senhas em sistemas GNU/Linux, de modo que não se armazena a senha propriamente dita, apenas seu hash, o qual é comparado com o hash da senha que o usuário digita quando do login.

O tripwire gera uma base de dados contendo informações como hash, permissões e data de modificação de cada arquivo pré-estabelecido para proteção.

No processo de verificação, uma nova base de dados é gerada e comparada à primeira, emitindo um relatório para o administrador.

Syslog – Sistema de log do linux - Questão 118

Syslog – Sistema de log do linux

Um sistema crítico (24/7) com centenas de milhares de acesso por dia, como se sabe se uma parte do hardware está com problemas? Se aconteceu ataques durante a noite? Se foi invadido? 

Os arquivos de log proporcionam um radiografia completa do sistema, do funcionamento do hardware, de acesso, emails, programas... 


O syslogd possui duas funcionalidades;

  1. Fazer os logs do sistema – Concentra o log de todas as aplicações do sistema
  2. Capturar as mensagens do kernel – Concentra os log específicos do kernel

Tuesday, November 24, 2009

Registro do Windows - Questão 119

Registro do Windows


O Registro do Windows é uma espécie de banco de dados, onde são armazenadas as informações sobre todos os: 

  1. programas instalados
  2. estrutura de diretórios
  3. informações do usuário
  4. informações de drivers

O Registro, numa comparação grosseira, pode ser entendido como "sangue do Windows", pois todas as atividades no sistema operacional dependem da sua existência.

Ex: Um exemplo bem simples, é que é através do Registro que o sistema consegue saber onde os programas estão armazenados e quais arquivos se relacionam a eles. É por isso que um simples corrompimento do Registro do Windows faz o sistema parar.
Se isso ocorre, não será possível encontrar programas, drivers e configurações.



A estrutura do Registro do Windows
Conforme pode ser visto na janela acima, quando você acessa o Regedit, aparece uma estrutura contendo 6 chaves. Trata-se da estrutura básica do Registro do Windows. Cada uma tem uma finalidade:



HKEY_CLASSES_ROOT - esta chave, na verdade, não é muito importante a princípio. É um atalho para a chave HKEY_LOCAL_MACHINE\SOFTWARE\Classes e sua finalidade é manter compatibilidade com programas antigos, que rodam a 16 bits;



HKEY_CURRENT_USER - esta chave é um atalho para a chave HKEY_USERS\infowester, onde infowester deve ser o nome do usuário do Windows. Ela mostra somente informações do usuário atual do sistema, como configurações personalizadas;

HKEY_LOCAL_MACHINE - esta é a chave mais importante do Registro, pois nela é que estão as informações sobre programas e hardware. Para se ter noção da importante desta chave, seus dados são guardados num arquivo chamado system.dat. Clicando no sinal de mais ao lado desta chave, aparece uma estrutura que indica onde estão os dados.


HKEY_USERS - no Windows é possível ter vários usuários num único computador. A função desta chave é guardar informações de cada um deles. Quando o sistema está configurado apenas para um usuário (muito comum no Windows 95/98), esta chave possui apenas uma entrada, de nome default ou padrão. Todas as limitações dos usuários, assim como todas as suas configurações podem ser manipuladas aqui.


HKEY_CURRENT_CONFIG - é um atalho que contém configurações do usuário atual do computador relativas ao hardware. Este atalho é útil quando é necessário procurar informações do usuário que está logado, pois todas as suas informações aparecem nesta chave.