SISTEMA DE COMPUTADOR E MÉTODO PARA DEPURAR UMA MEMÓRIA DE SISTEMA.
O Grupo de Computação Confiável (TCG) especificou o conceito de um bit de depuração de memória (MOR) . Se o 5 bit MOR for definido, um Sistema Básico de Entrada/Saida de dados (BIOS) executa uma depuração da memória durante um processo de boot para garantir que os segredos armazenados na memória do sistema sejam apagados antes de serem expostos.
Embora o bit MOR possa ser usado para evitar que ataques (p.ex., ataques de religação ou de ciclagem de energia) sejam efetivos, algumas implementações existentes carecem de sofisticação. Por exemplo, alguns sistemas de computador mantêm o bit MOR em uma condição ativada, o que faz o BIOS executar desnecessariamente uma depuração da memória durante cada processo de boot. Também, cada depuração da memória causa um atraso no processo de boot, o que pode fazer um usuário acreditar que o sistema do computador esteja pendurado.
Descrição resumida dos desenhos
Para uma descrição detalhada de configurações exemplares da invenção, referência será feita agora aos desenhos anexos nos quais:
A figura 1 ilustra um sistema de acordo com configurações;
A figura 2 ilustra acesso e uso de um bit de depuração de memória (MOR) de acordo com configurações;
A figura 3 ilustra um método de acordo com configurações;
A figura 4 ilustra um outro método de acordo com 30 configurações; e
A figura 5 ilustra ainda um outro método de acordo com configurações.
Notação e nomenclatura
Certos termos são usados através de toda a descrição e 35 reivindicações seguintes para se referir a particulares componentes do sistema. Como alguém experiente na técnica apreciaria, as companhias de computadores podem se referir a um componente por nomes diferentes. Este documento não pretende distinguir entre componentes que diferem de nome mas não de função. Na discussão seguinte e nas reivindicações, os termos incluindo e compreendendo são usados de devem ser interpretados limitado a.... Também, o termo um modo ilimitado, e portanto mas não acopla é intencionado a conexão elétrica indireta, a significar incluindo, acoplar ou significar qualquer de uma direta, ótica ou sem fio.
dispositivo se
Portanto, se um primeiro dispositivo, aquela conexão elétrica direta, por uma via outros dispositivos e acopla a um segundo conexão indireta pode ser conexão por uma elétrica conexões, por uma conexão elétrica ótica, ou por uma conexão elétrica sem fio.
Descrição detalhada
A discussão seguinte é dirigida a várias configurações da invenção. Embora uma ou mais destas configurações possam ser preferidas, as configurações divulgadas não devem ser interpretadas, ou de outra forma usadas, como limitando o escopo da divulgação, incluindo as reivindicações. Em adição, alguém experiente na técnica compreenderá que a descrição seguinte tem ampla aplicação, e a discussão de qualquer configuração é pretendida a ser somente exemplar daquela configuração, e não intencionada a sugerir que o escopo da divulgação, incluindo as reivindicações, está limitado àquela configuração.
Configurações permitem depurações de memória serem executadas seletivamente durante um processo de desligamento ou um processo de boot. O processo de desligamento pode ser parte de um desligamento, um reinicio, ou de um processo de hibernação. A depuração de memória pode ser baseada em um bit de depuração de memória (MOR) ou um outro mecanismo de controle. Se a depuração de memória for executada durante um processo de desligamento, o bit MOR é anulado tal que o Sistema Básico de Entrada/Saida (BIOS) não execute uma outra depuração de memória durante o processo de boot subsequente. Em pelo menos algumas configurações, um indicador de depuração de memória é provido tal que um usuário fique ciente que uma depuração de memória está sendo executada.
A figura 1 ilustra um sistema 100 de acordo com configurações. O sistema 100 compreende um computador 102 tendo um processador 104 acoplado a uma memória de sistema 108, a qual pode ser Memória de Acesso Randômico (RAM) . A memória de sistema 108 tem pelo menos uma área confidencial 110 que é usada para armazenar segredos tais como senhas, chaves de criptografia ou outras informações sensíveis. A área confidencial 110 pode ser fixa ou variável dentro da memória de sistema 108. Em pelo menos algumas configurações, uma ponte hospedeira (algumas vezes referidas como ponte Norte) 106 é colocada entre o processador 104 e a memória de sistema 108. Em configurações alternativas, um módulo de ponte explícito entre o processador 104 e a memória de sistema 108 não é necessário.
Como mostrado, uma ponte de entrada/saída (I/O) (algumas vezes referida como uma ponte Sul) 112 acopla vários componentes na ponte hospedeira 106. Em pelo menos algumas configurações, um display 118 e um indicador de depuração de memória 120 se acoplam à ponte I/O 112.
O display 118 pode compreender um display de cristal líquido (LCD) ou um outro display que depende de uma placa de vídeo e/ou drivers de vídeo. Se uma depuração de memória é executada durante um processo de boot, a placa de vídeo e/ou os drivers de vídeo podem não ser inicializados e portanto o display 118 não pode ser usado para notificar um usuário que a depuração de memória está sendo executada. Em contraste, se uma depuração de memória é executada durante um processo de desligamento, a placa de vídeo e os drivers de vídeo podem estar operativos e mensagens podem ser fornecidas a um usuário via o display 118. Por exemplo, mensagens no display 118 podem indicar quanto de uma depuração de memória foi executada, o tempo restante antes do término da depuração de memória e/ou outras informações.
Mesmo se o display 118 estiver não operante (durante o processo de boot ou o processo de desligamento), o indicador de depuração de memória 120 pode fornecer informações para um usuário. Em pelo menos algumas configurações, o indicador de depuração de memória 120 compreende um diodo emissor de luz (LED) que indica a 10 duração ou término de uma depuração de memória. Por exemplo, um certo padrão de piscadas ou atividade sólida do LED pode indicar quando uma depuração de memória está sendo executada e/ou quando uma depuração de memória está terminada. Em configurações alternativas, o indicador de 15 depuração de memória 120 compreende um LCD que não depende de uma placa de video e/ou drivers de video como o faz o display 118. Em tal caso, o indicador de depuração de memória 120 pode exibir texto que indique quanto de uma depuração de memória foi executada, tempo 20 remanescente para uma depuração de memória e/ou outras informações apesar de o display 118 estar não operante. O indicador de depuração de memória 120 pode estar localizado no display 118, no teclado, ou algum outro local visível para um usuário do sistema 100. Alertas de 25 áudio podem adicionalmente ou alternativamente ser usados sujeitos a condições similares (p.ex., alertas de áudio não dependem de uma placa de áudio e/ou drivers de áudio).
Em pelo menos algumas configurações, a ponte de I/O 112 30 também se acopla a um controlador de Super I/O 114, um
BIOS 130, um acionador de disco 140 e um Módulo de Plataforma Confiável (TPM) 150. O controlador de Super I/O 114 provê uma interface para um teclado/mouse 116. Em pelo menos algumas configurações, o controlador de Super 35 I/O 114 e/ou a ponte de I/O 112 são capazes de detectar uma solicitação para desligar o sistema de computador 100 (incluindo solicitações de desligamento, hibernação ou reinicio). A solicitação pode ser recebida, por exemplo, a partir do teclado 116. Em resposta, o controlador de Super I/O 114 e/ou a ponte de I/O 112 são capazes de capturar a solicitação de desligamento e notificar o BIOS 130. O BIOS 130 é então capaz de depurar a memória de sistema 108 antes que a solicitação de desligamento esteja completa.
O acionador de disco 140 compreende um sistema operacional (OS) 142 e aplicações 144, que são executáveis pelo processador 104. Durante o tempo de funcionamento do sistema de computador 100 (ou antes), certas instruções ou dados relacionados com o OS 142 e/ou as aplicações 144 podem ser armazenados na memória de sistema 108. Estas instruções ou dados podem ser armazenados na área confidencial 110 ou em algum outro lugar na memória de sistema 108. Segredos também podem ser armazenados na área confidencial 110 como mencionado anteriormente.
Como mostrado, o acionador de disco 140 também pode compreender uma área protegida 146, que corresponde a parte ou todo o acionador de disco 140. A área protegida 146 é acessível através de um processo de autenticação que envolve, por exemplo, uma senha, uma frase de passe, uma chave de criptografia, uma leitura biométrica ou um outro segredo. Embora não requerido, algumas configurações dependem do TPM 150 para auxiliar com o processo de autenticação.
O TPM 150 é configurado para prover funções criptográficas (p.ex., um algoritmo assimétrico RSA para assinatura digital e para criptografia), combinação SHA1, uma função de Código de Autenticação de Mensagem baseado em Combinação (HMAC), armazenagem segura, geração de número randômico, ou outras funções. O TPM 150 é implementado usando software, firmware [programa residente de inicialização] e/ou hardware. As arquiteturas e funções de TPM podem possivelmente mudar com o tempo como autorizado pelo TCG. Usando o TPM 150, um segredo pode ser autenticado para permitir um usuário acessar a área protegida 146.
Em pelo menos algumas configurações, o OS 142 compreende um OS seguro que suporta usar o bit MOR como especificado pelo Grupo de Computação Confiável (TCG). Como um exemplo, se um usuário solicitar acesso à área protegida 146, o OS 142 pode ativar o bit MOR e armazenar um segredo associado com a solicitação do usuário na área confidencial 110. Depois que o usuário tiver terminado de acessar a área protegida 146, o OS 142 pode anular o bit MOR e depurar a área confidencial 110 para eliminar o segredo. A particular sincronia com relação a quando o bit MOR é ativado e anulado pode variar (p.ex., o bit MOR pode ser ativado antes ou depois do segredo ser armazenado na área confidencial 110 e pode ser anulado antes ou depois do segredo ter sido eliminado) . Se a segurança do OS estiver habilitada, o bit MOR pode permanecer ativo independente de se um segredo foi armazenado em ou anulado de a área confidencial 110. Com o bit MOR ativo, toda a memória 108 (não somente a área confidencial 110) seria depurada durante um processo de boot subsequente.
O BIOS 130 é armazenado em um meio lido pelo computador (p.ex., uma ROM flash [instantânea]) e compreende várias instruções executáveis pelo processador 104. Em pelo menos algumas configurações, o BIOS 130 permite depurações de memória serem seletivamente executadas desligamento ou um processo BIOS 130 pode interface de bit MOR 132, instruções durante um boot. Como processo de mostrado, o compreender de uma de memória 134, instruções de controle de
Alguns uma interface de usuário 138.
componentes do BIOS são parte
BIOS. Estes componentes acessados usando um Modo do de de depuração indicador 136 e ou todos destes de um bloco
BIOS também
Gerenciamento de boot do podem ser de Sistema (SMM).
A interface de bit MOR 132 permite o BIOS 130 acessar e atualizar o bit MOR, o qual pode ser armazenado em um local seguro da memória do BIOS 130 ou em algum outro lugar. Por exemplo, durante o processo de boot, o BIOS 130 pode checar o status de um sinalizador [flag] de MOR. Se o bit MOR for definido para depuração, o BIOS 130 executa uma depuração de memória baseado nas instruções de depuração de memória 134 como serão descritas posteriormente. Se o valor do bit MOR não for definido para depuração, o BIOS 130 continua o processo de boot. Antes ou após a depuração de memória ser executada, a interface de bit MOR 132 pode fazer o bit
MOR ser anulado. O valor de depuração do bit MOR pode ser alto ou baixo em diferentes configurações. Como um exemplo, se o valor de depuração do bit MOR for alto, anular o bit MOR corresponde a definir o bit MOR para um valor baixo (p.ex., um 0 lógico). Se o valor de depuração do bit MOR for baixo, anular o bit MOR corresponde a definir o MOR para um valor alto (p.ex., um 1 lógico).
Em pelo menos algumas configurações, o BIOS 130 usa a interface de bit MOR 132 para checar o status do bit MOR durante um processo de desligamento. Por exemplo, a ponte
|
de I/O 112 |
e/ou o controlador de Super I/O 114 podem |
|
detectar e |
capturar uma solicitação para desligar o |
|
sistema de |
computador 100. A solicitação pode ser |
identificada detectando quando o OS 142 tenta escrever um ou mais registros (p.ex., um registro para dormir ou um registro para reiniciar). Em resposta, a ponte de I/O 112 e/ou o controlador de super I/O 114 comutam o sistema de computador 100 para um Modo de Gerenciamento de Sistema (SMM), o qual opera sem envolvimento do OS 142.
Durante o SMM, o BIOS 130 é capaz de anular seletivamente o bit MOR. Por exemplo, se o bit MOR tiver sido definido pelo OS 142 durante o tempo de funcionamento, o BIOS 130 pode anular o bit MOR mesmo se a segurança do OS estiver habilitada. Antes ou após o BIOS 130 anular o bit MOR, o BIOS 130 também pode depurar a memória de sistema 108 usando as instruções de depuração de memória 134. Em pelo menos algumas configurações, as instruções de depuração de memória 134 permitem ao BIOS 130 anular todos os conteúdos da memória de sistema 108. Como um exemplo, se 5 a memória de sistema 108 tiver uma capacidade de 16 GB e a operação de depuração de memória anular memória em uma taxa de 1-2 GB/a, então a depuração de memória duraria entre 8-16 segundos. Anulando o bit MOR e executando a depuração de memória durante o desligamento, o BIOS 130 10 não tem que executar a depuração de memória durante o boot subsequente.
Existem vantagens em executar a depuração de memória durante o processo de desligamento ao invés do processo de boot. Por exemplo, um usuário que esteja saindo do 15 sistema de computador 100 usualmente não se preocupa se o processo de desligamento é demorado para a depuração de memória. Em contraste, um usuário que chega e faz o boot do sistema de computador 100 usualmente deseja atingir o momento de funcionamento tão rapidamente quanto possível 20 e não aprecia que o tempo de boot seja estendido para executar a depuração de memória. Adicionalmente, placas de áudio/vídeo e/ou drivers podem estar disponíveis durante o processo de desligamento, mas não durante o processo de boot. Assim, se a depuração de memória for executada durante o processo de desligamento, um usuário pode receber informações com relação ao status da depuração de memória via o display 118.
Mesmo se placas de áudio/vídeo e/ou drivers não estiverem disponíveis no momento que a depuração de memória é executada, o de indicador indicador de
BIOS 130 implementa instruções de controle 136 que permitem o BIOS 130 controlar o depuração de memória 120.
o indicador de depuração não
Como discutido anteriormente, pode compreender um LED ou LCD que placa de vídeo e/ou drivers de vídeo. Ao de memória depende de i contrário, uma as instruções de controle de indicador 136 fazem o indicador de depuração de memória 120 fornecer informações para um
120 *
usuário na forma de padrões de luz do LED ou texto de LCD que indicam quanto de uma depuração de memória foi executada, tempo remanescente par uma depuração de memória e/ou outras informações.
A interface de usuário 138 do BIOS 130 permite um usuário selecionar várias opções relacionadas com depurações de memória executadas pelo BIOS 130. Em pelo menos algumas configurações, o usuário pode acessar a interface de usuário 138 via uma opção de ajuste F10 que apresenta um menu ao usuário. Como um exemplo, o menu pode permitir um usuário selecionar opções como quando depurações de memória são executadas (p.ex., imediatamente, durante o boot e/ou durante desligamento), ativação/desativação do bit MOR 132 (p.ex., alguns OSs podem não suportar operações com bit MOR), uma depuração de bit MOR (p.ex., o BIOS 130 pode executar depurações de memória sem depender do bit MOR ou pode executar depurações de memória mesmo se o bit MOR for anulado) , ativação/desativação do indicador de depuração de memória 120 ou outras opções.
Resumindo, o sistema de computador 100 é capaz de responder a ataques de reinicio ou ataques de ciclagem de energia executando uma depuração de memória antecipadamente no processo de boot subsequente. Adicionalmente, o sistema de computador 100 reforça a usabilidade de depurações de memória e do bit MOR fornecendo várias opções. Por exemplo, as depurações de memória podem ser executadas durante um processo de desligamento e o bit MOR pode ser seletivamente anulado pelo BIOS 130 para impedir uma depuração de memória de ser executada durante um processo de boot subsequente. À medida do necessário, o BIOS 130 pode controlar o indicador de depuração de memória 120 para melhorar a conscientização do usuário com relação a operações de depuração.
A figura 2 mostra o acesso e uso de um bit de depuração de memória (MOR) 206 de acordo com configurações. Como mostrado, um OS 202 e um BIOS 204 seletivamente definem e anulam o bit MOR 206. O valor de depuração do bit MOR pode ser alto ou baixo em diferentes configurações. Como um exemplo, se o valor de depuração do bit MOR for alto, 5 definir o bit MOR corresponde a um valor de bit MOR alto (p.ex., um 1 lógico) e anular o bit MOR corresponde a um valor de bit MOR baixo (p.ex., um 0 lógico). Alternativamente, se o valor de depuração do bit MOR for baixo, definir o bit MOR corresponde a um valor de bit 10 MOR baixo (p.ex., um 0 lógico) e anular o bit MOR corresponde a um valor de bit MOR alto (p.ex., um 1 lógico).
Em pelo menos algumas configurações, o OS 202 define o bit MOR se um evento A ocorrer. Por exemplo, o evento A 15 pode corresponder a um segredo ser armazenado na área confidencial 110 da memória 108 ou na segurança do OS ser ativada. Em pelo menos algumas configurações, o OS 202 anula o bit MOR se um evento B ocorrer. Por exemplo, o evento B pode corresponder a um segredo ser eliminado da 20 área confidencial 110 da memória 108 ou à segurança do OS ser desabilitada. Em algumas configurações, o OS executa seletivamente uma depuração de memória da área confidencial 110 da memória 108 para eliminar segredos, mas não anula toda a memória de sistema 108.
Em pelo menos algumas configurações, o BIOS 204 anula o bit MOR se um evento C ocorrer. Por exemplo, o evento C pode corresponder a um segredo ser eliminado da área confidencial 110 da memória de sistema 108 enquanto a segurança do OS está habilitada. Em outras palavras, com 30 a segurança do OS habilitada, algumas configurações do OS
202 não anulam o bit MOR mesmo se a área confidencial 110 tiver sido anulada. Em tal caso, o BIOS 204 pode anular seletivamente o bit MOR. Por exemplo, o BIOS 204 pode anular o bit MOR durante um processo de desligamento tal 35 que uma depuração de memória não seja executada durante um processo de boot subsequente. Como mostrado, um modo SMM pode ser usado seletivamente para permitir o BIOS 204 t
anular o bit MOR. Alternativamente, o evento C pode corresponder ao BIOS 204 executar uma depuração de memória durante um processo de boot. Em tal caso, o BIOS 204 anula o bit MOR antes ou depois que a depuração de 5 memória está completa.
Em pelo menos algumas configurações, o BIOS 204 ativa o bit MOR se um evento D ocorrer. Por exemplo, o vento D pode corresponder a um usuário selecionar uma opção do BIOS para executar uma depuração de memória e com 10 depender do bit MOR. A depuração de memória pode ser executada no momento que o usuário seleciona a opção, durante um processo de boot ou durante um processo de desligamento. Se um usuário selecionar executar uma depuração de memória imediatamente, o BIOS 204 executa a 15 depuração e memória e o computador passa por novo boot.
Em algumas configurações, o BIOS 204 depende do bit MOR ser definido como um pré-requisito para executar a depuração de memória. Alternativamente, o BIOS 204 pode executar depurações de memória independente do bit MOR ou 20 do valor do bit MOR. Por exemplo, o BIOS 204 pode executar seletivamente uma depuração de memória de toda a memória de sistema 108 durante o desligamento sem checar o valor do bit MOR ou pode executar a depuração de memória mesmo se o bit MOR for anulado. Mesmo se uma 25 depuração de memória de toda a memória de sistema 108 ocorrer durante o desligamento, o BIOS 204 ainda pode executar uma outra depuração de memória durante um boot subsequente se o bit MOR estiver ativo.
A figura 3 ilustra um método 300 de acordo com 30 configurações. Como mostrado, o método 300 inicia no bloco 302. No bloco 304, o método 300 espera receber uma solicitação de desligamento. Se uma solicitação de desligamento for recebida (bloco de determinação 304), a solicitação de desligamento é capturada (bloco 306) e o 35 bit MOR é anulado (bloco 308) . Por exemplo, um BIOS operando em SMM pode anular o bit MOR. Em pelo menos algumas configurações, o bit MOR pode ser definido (p.ex., devido à segurança do OS estar habilitada) mesmo se nenhum segredo for armazenado na memória a ser anulada. Se uma depuração de memória tiver sido solicitada (bloco de determinação 310), a depuração de 5 memória é executada (bloco 312) . Por exemplo, um BIOS operando em SMM pode executar a depuração de memória. Se uma depuração de memória não tiver sido solicitada (bloco de determinação 310) ou se depuração de memória no bloco 312 já tiver sido executada, o método 300 completa o 10 processo de desligamento (bloco 314). O processo de desligamento pode ser parte de um processo de hibernação ou de um processo de reinicio.
A figura 4 ilustra um outro método 400 de acordo com configurações. Como mostrado, o método 400 inicia no 15 bloco 402. No bloco 404, o método 400 espera até que uma depuração de memória seja solicitada. Se uma depuração de memória for solicitada (bloco de determinação 404), o método 400 determina se um indicador de depuração de memória é provido no bloco 406. Se um indicador de 20 depuração de memória estiver provido (bloco de determinação 406) , a duração da depuração de memória é indicada pelo indicador de depuração de memória (bloco 408). Por exemplo, o indicador de depuração de memória pode ser um LED ou LCD que não depende uma placa de vídeo 25 e/ou um driver de vídeo. Se um indicador de depuração de memória não estiver provido (bloco de determinação 406) ou a duração da depuração de memória tiver sido indicada (bloco 408), o método 400 executa a depuração de memória (bloco 410). Em configurações alternativas, o indicador 30 de depuração de memória pode começar a exibir informações após a depuração de memória ter iniciado. O método 400 pode ser executado, por exemplo, durante um processo de boot ou durante um processo de desligamento.
A figura 5 ilustra ainda um outro método 500 de acordo 35 com configurações. Como mostrado, o método 500 começa no bloco 502. Se uma operação segura tiver que ser executada (bloco de determinação 504), um bit MOR é definido (bloco
506). Como um exemplo, a operação segura compreende acessar uma área protegida de um acionador de disco baseado em um processo de autenticação. Se a operação segura estiver terminada (bloco de determinação 508), o 5 bit MOR é seletivamente anulado (bloco 512). Por exemplo, se a segurança do OS estiver desabilitada, um segredo relacionado com a operação segura pode ser eliminado uma vez que a operação segura está terminada e o bit MOR pode ser anulado. Se a segurança do OS estiver habilitada, o 10 bit MOR permanece definido independente de se um segredo relacionado com a operação segura foi anulado. Uma vez que o bit MOR é seletivamente anulado, o método 500 determina se um BIOS é capaz de executar uma depuração de memória durante o desligamento no bloco 514.
Voltando para o bloco 508, se a operação segura não tiver terminado (bloco de determinação 508) e um desligamento anormal ocorrer (bloco de determinação 510), o método 500 executa uma depuração de memória durante um processo subsequente de boot se o bit MOR estiver definido (bloco 20 516) . Se a operação segura não tiver terminado (bloco de determinação 508) e um desligamento anormal não ocorrer (bloco de determinação 510), o método 500 se ramifica para o bloco 514. O método 500 também se ramifica para o bloco 514 se uma operação segura não tiver que ser 25 executada (bloco de determinação 504) . Se um BIOS está preparado para executar uma depuração de memória durante ctesligamento (bloco de determinação 514), uma depuração de memória é executada durante o desligamento independente do valor do bit MOR e o bit MOR é anulado 30 (bloco 518) . Se o BIOS não é capaz de executar uma depuração de memória durante desligamento (bloco de determinação 514), o método 500 executa uma depuração de memória durante um processo de boot subsequente se o bit MOR estiver ativo (bloco 516).
A discussão acima é pretendida a ser ilustrativa dos princípios e das várias configurações da presente invenção. Numerosas variações e modificações tornar-se-ão aparentes àqueles experientes na técnica uma vez que a divulgação acima seja apreciada completamente. Por exemplo, em algumas configurações, as depurações de memória executadas pelo BIOS 130 não necessitam anular 5 toda a memória de sistema 108. É pretendido que as reivindicações seguintes sejam interpretadas a abranger todas tais variações e modificações.