Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR BLOCKING A TICKET-BASED COMPUTER SYSTEM
Document Type and Number:
WIPO Patent Application WO/2023/180804
Kind Code:
A1
Abstract:
The present document discloses a method and system for blocking a computer system based on tickets issued by a remote server, with an operating system configured for booting from a UEFI, wherein the blocking system comprises: a transfer engine, i.e. an agent, of tickets comprised in an application or module of the operating system; an authentication engine comprised in said UEFI; a data or file transfer area accessible by both engines; wherein the transfer engine is configured for receiving tickets and storing tickets; wherein the authentication engine is configured for: reading a stored ticket; checking authentication and obtaining read ticket type; and if the authenticity is verified, processing the verified ticket, depending on the type: a normal ticket, setting the system to a leased state in which the operating system can boot; or a block ticket, setting the system to a blocked state in which the operating system cannot boot.

Inventors:
FERREIRA DOS SANTOS JOÃO GABRIEL (BG)
ZÚQUETE ANDRÉ (PT)
NUNO ROCHA MIGUEL (PT)
PINHEIRO DE SOUSA CAMPOS ANTÓNIO PEDRO (PT)
BARREIRA DE JESUS PAULO JOSÉ (PT)
Application Number:
PCT/IB2022/062937
Publication Date:
September 28, 2023
Filing Date:
December 30, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SOFTI9 INOVACAO INFORMATICA LDA (PT)
UNIV AVEIRO (PT)
International Classes:
G06F21/62; G06F21/12; G06F21/57; H04L9/40
Foreign References:
EP3098744A12016-11-30
US20190243630A12019-08-08
US6834351B12004-12-21
Attorney, Agent or Firm:
PATENTREE (PT)
Download PDF:
Claims:
R E I V I N D I C A Ç Õ E S Método de bloqueio de um sistema informático à base de bilhetes emitidos por um servidor remoto, com um sistema operativo que está configurado para arrancar a partir de uma UEFI, Unified Extensible Firmware Interface, em que o sistema de bloqueio compreende:um motor de transferência de tickets compreendido numa aplicação ou módulo do sistema operativo;um motor de autenticação compreendido na referida UEFI;uma área de transferência de dados ou ficheiros acessível por ambos os motores de transferência e autenticação; em que o método compreende: pelo motor de transferência, receber tickets emitidos pelo servidor e guardar os tickets recebidos na referida área de transferência; pelo motor de autenticação: ler um ticket guardado na referida área de transferência; verificar autenticidade e obter tipo do ticket lido; caso a autenticação seja verificada como autenticada, processar o ticket verificado, consoante o tipo do ticket seja: um primeiro tipo de ticket, referido como ticket normal, colocando o sistema num estado alugado em que o motor de autenticação autoriza que o sistema operativo possa arrancar; um segundo tipo de ticket, referido como ticket de bloquear, colocando o sistema num estado bloqueado em que o motor de autenticação não autoriza que o sistema operativo possa arrancar exceto em condições de exceção predeterminadas. Método de acordo com a reivindicação anterior que compreende o motor de autenticação remover o ticket já processado da área de transferência. Método de acordo com qualquer uma das reivindicações anteriores que compreende, adicionalmente, o motor de autenticação processar o ticket verificado consoante o tipo do ticket seja: um terceiro tipo de ticket, referido como ticket libertar, colocando o sistema num estado livre em que o motor de autenticação autoriza que o sistema operativo possa arrancar livre e indefinidamente; um quarto tipo de ticket, referido como ticket iniciar, colocando o sistema num estado alugado em que o motor de autenticação autoriza que o sistema operativo possa arrancar desde que condições de operação predeterminadas estejam satisfeitas. Método de acordo com qualquer uma das reivindicações anteriores que compreende o motor de autenticação incrementar um contador de arranque (UC) em cada arranque autorizado do sistema operativo. Método de acordo com a reivindicação anterior que compreende, caso o contador de arranque (UC) seja maior que um número predeterminado máximo de arranques autorizados (T.MaxUC), o motor de autenticação colocar o sistema no estado bloqueado. Método de acordo com a reivindicação anterior que compreende o motor de autenticação quando colocar o sistema no estado bloqueado e o sistema informático arrancar: colocar um contador de arranque de desbloqueio (UBC) a zero; apresentar ao utilizador o contador de arranque (UC); solicitar um código de desbloqueio; esperar até receber um código de desbloqueio submetido pelo utilizador; verificar se o código de desbloqueio corresponde a uma função hash calculada incluindo o contador de arranque (UC); se a função hash corresponder, autorizar que o sistema operativo possa arrancar provisoriamente (502), incrementando o contador de arranque (UC). Método de acordo com a reivindicação anterior que compreende o motor de autenticação: se o resultado da função hash não corresponder, incrementar o contador de arranque de desbloqueio (UBC); caso o contador de arranque de desbloqueio (UBC) seja maior que um número predeterminado máximo de arranques de desbloqueio autorizados (MaxUBC), incrementar o contador de arranque (UC) e colocar o sistema no estado bloqueado (504). Método de acordo com qualquer uma das reivindicações 5-7 em que o número predeterminado máximo de arranques autorizados (T.MaxUC) é um número predeterminado máximo de arranques autorizados recebido no ticket normal mais recente. Método de acordo com qualquer uma das reivindicações 4-8 que compreende o motor de autenticação, ao processar o ticket verificado, em que o tipo do ticket é um ticket normal, colocar o contador de arranque (UC) a zero. Método de acordo com qualquer uma das reivindicações 6-9 em que a função de hash inclui o contador de arranque (UC), o número de série do sistema informático (SN), o tempo de emissão do ticket normal (CT) recebido mais recentemente, e uma chave de autenticação específica para autenticar códigos de desbloqueio (UK). Método de acordo com qualquer uma das reivindicações anteriores em que cada ticket inclui o seu tipo de ticket, o número de série do sistema informático (SN), um número predeterminado máximo de arranques autorizados (T.MaxUC), uma chave de autenticação específica para autenticar tickets (AK), em que o tipo de ticket inclui o ticket de iniciar, ticket normal, ticket de bloqueio ou ticket de libertar. Método de acordo com a reivindicação anterior em que cada ticket inclui ainda um tempo de emissão do ticket (CT) e um limiar máximo de tempo (LD+TW) de utilização. Método de acordo com a reivindicação anterior em que cada ticket inclui ainda uma chave de autenticação específica para autenticar códigos de desbloqueio (UK). Método de acordo com qualquer uma das reivindicações anteriores que compreende o motor de autenticação ignorar tickets recebidos, mesmo que autenticados, com um valor de tempo de emissão de ticket anterior ao ticket recebido mais recente. Método de acordo com qualquer uma das reivindicações anteriores que compreende o motor de autenticação, para caso o relógio do sistema informático seja maior que um limiar máximo de tempo (LD+TW) recebido no ticket normal mais recente, colocar o sistema no estado bloqueado. Método de acordo com qualquer uma das reivindicações anteriores que compreende o motor de autenticação, para caso o relógio do sistema informático seja menor que um valor de tempo de emissão de ticket recebido no ticket normal mais recente, colocar o relógio do sistema informático igual ao tempo de emissão de ticket. Método de acordo com qualquer uma das reivindicações anteriores em que o ticket recebido é autenticado por uma chave simétrica secreta recebida no ticket de iniciar mais recente ou é autenticado por um par de chaves assimétrico em que uma chave privada está guardada pelo servidor e uma chave pública correspondente está guardada no motor de autenticação. Método de acordo com qualquer uma das reivindicações anteriores em que o motor de autenticação e arranque está compreendido num driver UEFI. Sistema de bloqueio e respetivo sistema informático, à base de bilhetes emitidos por um servidor remoto com um sistema operativo configurado para arrancar a partir de uma UEFI, Unified Extensible Firmware Interface, compreendida no referido sistema informático, em que o sistema de bloqueio compreende: um motor de transferência de tickets compreendido numa aplicação ou módulo para o sistema operativo; um motor de autenticação compreendido na referida UEFI; uma área de transferência de dados ou ficheiros acessível por ambos os motores de transferência e autenticação; em que o motor de transferência está configurado para receber tickets emitidos pelo servidor e guardar os tickets recebidos na referida área de transferência; em que o motor de autenticação está configurado para: ler um ticket guardado na referida área de transferência; verificar autenticidade e obter tipo do ticket lido; caso a autenticidade seja verificada como autenticada, processar o ticket verificado, consoante o tipo do ticket seja: um primeiro tipo de ticket, referido como ticket normal, colocando o sistema num estado alugado em que o motor de autenticação autoriza que o sistema operativo possa arrancar; um segundo tipo de ticket, referido como ticket de bloquear, colocando o sistema num estado bloqueado em que o motor de autenticação não autoriza que o sistema operativo possa arrancar exceto em condições de exceção predeterminadas. Sistema de acordo com a reivindicação em que o motor de autenticação está configurado adicionalmente para remover o ticket já processado da área de transferência. Sistema de acordo com qualquer uma das reivindicações 19-20 em que o motor de autenticação, adicionalmente, está configurado para processar o ticket verificado consoante o tipo do ticket seja: um terceiro tipo de ticket, referido como ticket libertar, colocando o sistema num estado livre em que o motor de autenticação autoriza que o sistema operativo possa arrancar livre e indefinidamente; um quarto tipo de ticket, referido como ticket iniciar, colocando o sistema num estado alugado em que o motor de autenticação autoriza que o sistema operativo possa arrancar desde que as condições de operação predeterminadas estejam satisfeitas. Sistema de acordo com qualquer uma das reivindicações 19-21 em que o motor de autenticação compreende um contador de arranque (UC) e está configurado para incrementar o contador de arranque (UC) em cada arranque autorizado do sistema operativo. Sistema de acordo com a reivindicação anterior em que o motor de autenticação está configurado para caso o contador de arranque (UC) seja maior que um número predeterminado máximo de arranques autorizados (T.MaxUC), colocar o sistema no estado bloqueado. Sistema de acordo com a reivindicação anterior em que o motor de autenticação compreende um contador de arranque de desbloqueio (UBC) e está adicionalmente configurado para quando colocar o sistema no estado bloqueado e o sistema informático arrancar: colocar o contador de arranque de desbloqueio (UBC) a zero; apresentar ao utilizador o contador de arranque (UC); solicitar um código de desbloqueio; esperar até receber um código de desbloqueio submetido pelo utilizador; verificar se o código de desbloqueio corresponde ao resultado de uma função hash calculada incluindo o contador de arranque (UC); se o resultado da função hash corresponder, autorizar que o sistema operativo possa arrancar provisoriamente, incrementando o contador de arranque (UC). Sistema de acordo com a reivindicação anterior em que o motor de autenticação está adicionalmente configurado para: se o resultado da função hash não corresponder, incrementar o contador de arranque de desbloqueio (UBC); caso o contador de arranque de desbloqueio (UBC) seja maior que um número predeterminado máximo de arranques de desbloqueio autorizados (MaxUBC), incrementar o contador de arranque (UC) e colocar o sistema no estado bloqueado. Sistema de acordo com qualquer uma das reivindicações 22-25 em que o motor de autenticação está configurado para, ao processar o ticket verificado, em que o tipo do ticket é um ticket normal, colocar o contador de arranque (UC) a zero. Sistema de acordo com qualquer uma das reivindicações 23-26 em que o número predeterminado máximo de arranques autorizados (T.MaxUC) é um número predeterminado máximo de arranques autorizados recebido no ticket normal mais recente. Sistema de acordo com qualquer uma das reivindicações 24-27 em que a função de hash inclui o contador de arranque (UC), o número de série do sistema informático (SN), o tempo de emissão do ticket normal (CT) recebido mais recentemente, e uma chave de autenticação específica para autenticar códigos de desbloqueio (UK). Sistema de acordo com qualquer uma das reivindicações 19-28 em que cada ticket inclui o seu tipo de ticket, o número de série do sistema informático (SN), um número predeterminado máximo de arranques autorizados (T.MaxUC), uma autenticação específica para autenticar tickets (AK), em que o tipo de ticket inclui o ticket iniciar, ticket normal, ticket de bloqueio ou ticket de libertar. Sistema de acordo com a reivindicação anterior em que cada ticket inclui ainda um tempo de emissão do ticket (CT) e um limiar máximo de tempo (LD+TW) de utilização. Sistema de acordo com a reivindicação anterior em que cada ticket iniciar inclui ainda uma chave de autenticação específica para autenticar códigos de desbloqueio (UK). Sistema de acordo com qualquer uma das reivindicações 19-31 em que o motor de autenticação compreende um contador de arranque (UC) e está configurado para incrementar o contador de arranque (UC) em cada arranque autorizado do sistema operativo. Sistema de acordo com qualquer uma das reivindicações 19-32 em que o motor de autenticação está configurado para ignorar tickets recebidos, mesmo que autenticados, com um valor de tempo de emissão de ticket anterior ao ticket recebido mais recente. Sistema de acordo com qualquer uma das reivindicações 19-33 em que o motor de autenticação está configurado para caso o relógio do sistema informático seja maior que um limiar máximo de tempo (LD+TW) recebido no ticket normal mais recente, colocar o sistema no estado bloqueado. Sistema de acordo com qualquer uma das reivindicações 19-34 em que o motor de autenticação está configurado para caso o relógio do sistema informático seja menor que um valor de tempo de emissão de ticket, recebido no ticket normal mais recente, colocar o relógio do sistema informático igual ao tempo de emissão de ticket. Sistema de acordo com qualquer uma das reivindicações 19-35 em que o ticket recebido é autenticado por uma chave simétrica secreta recebida no ticket de iniciar mais recente ou é autenticado por um par de chaves assimétricas em que uma chave privada está guardada pelo servidor e uma chave pública correspondente está guardada no motor de autenticação. Sistema de acordo com qualquer uma das reivindicações 19-36 em que o motor de autenticação e arranque está compreendido num driver UEFI. Um programa de computador para implementar um método de bloqueio de um sistema informático à base de bilhetes emitidos por um servidor remoto compreendendo instruções que, quando o programa é executado por um computador, fazem com que o computador execute o método de qualquer uma das reivindicações 1-18. Um suporte não-transiente legível por computador que inclui o programa de computador de acordo com a reivindicação anterior.
Description:
D E S C R I Ç Ã O

MÉTODO E SISTEMA DE BLOQUEIO DE UM SISTEMA INFORMÁTICO À BASE DE BILHETES

DOMÍNIO TÉCNICO

[0001] A presente descrição diz respeito a um método de bloqueio informático para diversos tipos de sistemas informáticos, nomeadamente computadores, computadores portáteis e outros dispositivos portáteis, por exemplo, tablets e telemóveis, e respetivo sistema de bloqueio.

ANTECEDENTES

[0002] Há várias limitações das soluções utilizadas hoje em dia, por exemplo, apenas garantem a proteção de sistemas computacionais a partir do sistema operativo neles instalado, geralmente, Windows™ e dependem exclusivamente do relógio de tempo real do sistema computacional.

[0003] A proteção contra manipulações do relógio de tempo real é normalmente um dos principais problemas com que se confronta qualquer solução de controlo de arranque com limites temporais, sendo usual o recurso a serviços externos como fonte de tempo confiável, consumindo dessa forma mais recursos de memória.

[0004] Tecnologias baseadas em chip físico TPM que pretende combater o roubo de computadores portáteis, fornecendo os seguintes serviços: rastreio de um computador portátil a executar esta tecnologia, proteção dos dados armazenados no disco rígido de um computador portátil e o bloqueio remoto do computador portátil. Porém, estas soluções apresentam várias desvantagens, nomeadamente, o rastreio deste é feito por partilha do endereço IP, não sendo este um meio de localização preciso e fiável, e a chave de cifra utilizada para cifrar os ficheiros é armazenada num local seguro de hardware e se o portátil estiver no modo bloqueado, a chave está inacessível.

[0005] Tecnologias baseadas em verificação e reposição de elementos de software permitem bloquear, localizar e proteger os dados de dispositivos móveis roubados que executam o sistema operativo Windows™. Porém, como estas soluções poderão estar desenhadas para um sistema operativo.

[0006] Tecnologias baseadas em software que permite localizar e bloquear à distância um dispositivo perdido ou roubado, bem como a recuperação ou eliminação de dados. Como estas soluções não possuem nenhum componente de firmware de hardware faz com que um atacante possa remover completamente este software quer o dispositivo esteja bloqueado ou não, através da substituição ou formatação do disco rígido.

[0007] Estes factos são descritos de forma a ilustrar o problema técnico resolvido pelas realizações do presente documento.

DESCRIÇÃO GERAL

[0008] Um dos objetivos da presente divulgação refere-se a um sistema computacional para deteção de roubos ou do incumprimento de situações contactuais em vigor, celebradas entre o comprador e o vendedor do equipamento, ou entre o alugador e o locatário do equipamento e um bloqueio do respetivo sistema operativo.

[0009] A proteção faz-se através da incapacitação funcional, ou bloqueio, do arranque do sistema operativo, de qualquer tipo, após a deteção da ocorrência da referida violação. A incapacitação é revertida quando forem acionadas as ações necessárias para terminar a violação que a originou.

[0010] A presente descrição diz respeito a um sistema de bloqueio informático a embeber em componentes fundamentais e não modificáveis de sistemas computacionais.

[0011] Apresenta-se, portanto, um sistema de bloqueio informático parcialmente embebido em chips com software/firmware de arranque de sistemas computacionais. Este sistema permite a desativação autónoma do sistema computacional, sendo simultaneamente resistente a tentativas de desbloqueio/desativação não autorizadas. Tirando partido do software/firmware executado durante o arranque do sistema computacional pela UEFI (Unified Extensible Firmware Interface), ou sistema equivalente, ou seja, um sistema que atua antes do arranque do sistema operativo, sendo independente do mesmo. Mas a principal inovação deste sistema consiste no facto de o mesmo tomar decisões autonomamente com base em parâmetros previamente fornecidos. Este sistema permite bloquear o arranque de um sistema computacional cujo detentor não tenha cumprido um requisito que lhe permita continuar a usá-lo. Esse requisito pode ser a posse autorizada do sistema computacional ou o pagamento de um montante em falta, por exemplo.

[0012] O sistema compreende um módulo de controlo de arranque incorporado nos chips de software ou firmware de arranque do sistema operacional de um dispositivo tecnológico móvel, como um tablet ou telefone. Desta forma, permite a funcionalidade de incapacitar o uso dos mesmos de forma autónoma e resistente a tentativas de desbloqueio/desativação não autorizadas.

[0013] Tirando partido do software/ firm ware baseado nas especificações Interface Extensível Unificada de Firmware (UEFI, sigla do inglês Unified Extensible Firmware Interface), desenvolveu-se um módulo de controlo de arranque para a UEFI que atua no arranque primordial de um sistema computacional. Este ocorre sempre antes do arranque de qualquer sistema operativo no mesmo, tornando-o assim independente do sistema operativo utilizado no sistema computacional.

[0014] Um aspeto distinto da presente descrição é que o módulo descrito não precisar de comunicar com serviços ou entidades terceiras exteriores para bloquear um dispositivo. De acordo com parâmetros pré-definidos na altura da sua instalação, podendo ser atualizados em cada arranque do sistema computacional, o módulo descrito toma autonomamente a decisão de deixar prosseguir o arranque ou bloquear o sistema computacional sem ser necessário realizar qualquer contacto com terceiros.

[0015] Outra vantagem desta solução é que as decisões do módulo descrito, no caso de se estar a lidar com autorizações de arranque com limites temporais, não dependem exclusivamente do relógio de tempo real do sistema computacional, o qual poderá ser assim ser manipulado, sem que tal afete irreversivelmente a eficácia da verificação de segurança realizada.

[0016] Uma outra vantagem deste sistema é que pode ser concretizado utilizando padrões de firmware funcionais transversais a hardware heterogéneo, nomeadamente o padrão UEFI, logo é passível de ser utilizado em qualquer hardware que disponha dos requisitos estabelecidos pelas especificações UEFI.

[0017] Numa outra forma de realização, o módulo descrito para UEFI é realizado em hardware próprio.

[0018] Uma outra vantagem em termos de segurança é que este sistema autoprotege- se de tentativas de mudança de versão do software/firmware do módulo descrito. Só será possível atualizar o software/firmware do mesmo caso a sua funcionalidade de controlo não esteja ativa, ou seja, caso não esteja a tomar a decisão, em cada arranque do sistema computacional, se o mesmo deve prosseguir o arranque ou não.

[0019] A comunicação de terceiros com o módulo descrito, instalado na infraestrutura base do sistema computacional, por exemplo, na placa-mãe, é efetuada através do envio de blocos de dados, designados como bilhetes, com informação produzida por uma fonte autorizada e devidamente autenticada. O módulo descrito verifica a autenticidade dos bilhetes que lhe são enviados e só usa a sua informação se ela for autêntica, isto é, se vier de uma fonte conhecida e autorizada, e corretamente destinada, ou seja, destinar-se ao sistema computacional em causa e para o seu estado atual de funcionamento. Os bilhetes destinados a um sistema computacional nunca podem ser usados noutro. Os bilhetes já usados num sistema computacional não podem igualmente ser reutilizados no mesmo.

[0020] Após uma situação de bloqueio de um sistema computacional no seu arranque, devido à ação do módulo descrito, o desbloqueio do sistema computacional pelo utilizador terá de ser efetuado através da introdução de um código de desbloqueio que só será válido naquela máquina e naquele momento, não podendo ser reutilizado na mesma máquina, nem noutra qualquer. Este código de desbloqueio será fornecido pelo gestor da fonte autorizada descrita, que é a entidade que gere a emissão dos bilhetes. Mediante a verificação de condições previamente acordadas entre o utilizador do sistema computacional e o gestor da fonte autorizada descrita, será dado ao utilizador um código de desbloqueio de 11 dígitos calculado partir de informação disponibilizada pelo próprio utilizador a partir do ecrã de bloqueio, e a partir de informação que só o gestor da fonte autorizada descrita dispõe. [0021] Numa forma de realização, o referido código de desbloqueio compreende dados biométricos, por exemplo, uma impressão digital ou um reconhecimento facial.

[0022] O emissor dos bilhetes, através da fonte autorizada descrita, é uma qualquer entidade responsável pela segurança ou dona de um conjunto de sistemas computacionais. Por exemplo, o próprio utilizador do sistema computacional, o qual pode fazer uso do respetivo módulo de bloqueio para forçar o seu bloqueio após a sua perda ou roubo. Ou uma empresa, caso a mesma seja dona do sistema computacional e o mesmo esteja sujeito a um contrato onde haja contrapartidas do utilizador (e.g. uma renda de um aluguer, prestações de uma compra, etc.).

[0023] Os componentes de hardware e software/firmware que compõem este sistema de segurança compreendem: Chipset com módulo descrito, Bilhetes, um Agente e um Servidor da fonte autorizada de bilhetes.

[0024] O Chipset com módulo descrito compreende uma placa-mãe com hardware e software/firmware com o módulo de controlo descrito. Este módulo fará parte da lista de módulos que serão compilados aquando da criação da versão de software/firmware que o fornecedor do sistema computacional irá fornecer com base em acordo comercial previamente estabelecido.

[0025] O módulo descrito compreende vários critérios para impedir o arranque do sistema computacional, por exemplo: a. O instante temporal em que o arranque está a ser realizado. O arranque pode ser impedido se se estiver fora de uma janela temporal de autorização do arranque. Ajanela temporal autorizada é sempre indicada pelo bilhete atual. O instante temporal atual, considerado no referencial UTC, deverá ser obtido do relógio de tempo real da máquina ou de uma outra fonte alternativa de tempo real do sistema computacional. b. O número de arranques realizados com o mesmo bilhete. Um bilhete especifica sempre um número máximo de arranques que poderá autorizar, sendo impossível usar um bilhete num arranque após o mesmo ter usado previamente no número máximo de arranques que permite. c. A posição geográfica do sistema computacional. Caso seja possível determinar a posição geográfica do sistema computacional, por exemplo, através de um sistema de GPS, e caso o bilhete possua restrições geográficas (por exemplo, permitir o arranque apenas numa área centrada numa coordenada absoluta, permitir o arranque apenas num país, etc.). d. Elementos de identidade do dono do sistema computacional que estejam especificados no bilhete e que possam ser recebidos pela UEFI e confrontados com os do bilhete.

[0026] Os Bilhetes são blocos de dados autenticados com instruções para o módulo descrito.

[0027] Numa realização, estas instruções (comunicadas através de tickets com o mesmo nome), que originam uma alteração do estado do módulo, são uma de quatro estados: START, NORMAL, BLOCK, FREEDOM.

[0028] START - ativação do módulo de segurança descrito. Se não houver ativação, o modulo descrito na UEFI estará sempre dormente, não atuando durante o arranque do sistema computacional. O arranque do sistema computacional não poderá ser controlado sem existir esta ativação.

[0029] NORMAL - prolongamento do tempo de utilização do sistema computacional sem bloqueios caso se verifiquem as condições impostas pela entidade emissora dos bilhetes para que tal aconteça.

[0030] BLOCK - ordem de bloqueio imediato do sistema computacional por falta de cumprimento das condições impostas pela entidade emissora dos bilhetes para que tal não aconteça. Assim que este bilhete for aceite pelo módulo descrito, o sistema computacional irá sempre passar pela fase de desbloqueio no seu arranque. Para sair deste modo é necessário enviar ao módulo descrito um bilhete NORMAL ou FREEDOM.

[0031] FREEDOM - libertação do controlo de arranque do sistema computacional através do seu módulo descrito. O módulo descrito volta ao seu estado dormente e o sistema computacional deixa de estar sob controlo do mesmo. Isto não impede que mais tarde se possa voltar a ativar o módulo com um novo bilhete do tipo START. [0032] Um bilhete START possui um número de série que condiciona a aceitação de outros bilhetes no futuro: terão de possuir o mesmo número de série. Um bilhete START possui uma chave de autenticação AK, simétrica ou assimétrica (do inglês, Authentication Key), que deverá ser usada para autenticar futuros bilhetes que sejam inseminados em sua substituição, ou em substituição dos seus substitutos.

[0033] Um bilhete START possui uma chave simétrica UK (do inglês, Unblocking Key) que deverá ser usada para validar códigos de desbloqueio caso o módulo descrito tenha bloqueado o sistema computacional no seu arranque e esteja a solicitar um desses códigos.

[0034] Um bilhete START só pode ser inseminado se o módulo descrito não estiver já a usar outro bilhete para controlar o arranque.

[0035] O Agente descrito é o software escrito para cada tipo de sistema operativo, por exemplo, Windows™, Linux™, MacOS™, Android™, etc., com o objetivo de solicitar periodicamente bilhetes a um servidor da fonte autorizada, e colocar os mesmos numa zona de transferência acessível ao módulo descrito aquando do arranque do sistema computacional (e.g. zona de transferência de dados UEFI). A assimilação de um novo bilhete pelo módulo descrito só é feita durante o arranque do sistema computacional, altura em que o módulo opera e toma decisões. Preferencialmente o sistema operativo é o Windows™, Linux™ ou Android™.

[0036] O Servidor da fonte autorizada de bilhetes é um serviço que controla a emissão de bilhetes para o módulo descrito. Pode ser um serviço pessoal ou empresarial.

[0037] O módulo descrito só usa bilhetes que conseguir validar como vindo de um servidor reconhecido. Para isso os bilhetes terão de ter preferencialmente: a. A sua estrutura corretamente definida; b. Um número de série igual ao do bilhete START que ativou o módulo descrito; c. Um código de autenticação (autenticador) validável com a chave de autenticação AK (do inglês, Authentication Key) indicada no bilhete START que ativou o módulo descrito. [0038] Numa forma de realização, a validação é feita com chaves AK secretas e códigos MAC (do inglês, Message Authentication Codes) ou com chaves assimétricas e assinaturas digitais.

[0039] No primeiro caso, a chave secreta AK é a indicada no bilhete START e deverá ser usada igualmente pelo emissor do bilhete para gerar o seu autenticador. As funções de cálculo dos códigos MAC são baseadas em funções de síntese seguras, e.g. SHA-256, SHA-512, SHA-3, etc., aplicadas segundo construções demonstradas como seguras (HMAC) ao conjunto formado pelo bilhete (sem o autenticador) e a chave secreta.

[0040] No segundo caso, com chaves assimétricas e assinaturas digitais, a chave AK é a componente pública de um par de chaves assimétricas indicada no bilhete START. A chave privada correspondente deverá ser usada pelo emissor do bilhete para gerar o seu autenticador. As funções de cálculo e validação das assinaturas digitais são baseadas em funções de síntese seguras, e.g. SHA-256, SHA-512, SHA-3, etc., cujo resultado é cifrado/decifrado com uma cifra assimétrica RSA. A função de síntese é aplicada à totalidade do bilhete excluindo o autenticador.

[0041] Descreve-se um método de bloqueio de um sistema informático à base de bilhetes emitidos por um servidor remoto (6), com um sistema operativo que está configurado para arrancar a partir de uma UEFI (2), Unified Extensible Firmware Interface, em que o sistema de bloqueio compreende: um motor, do inglês engine, de transferência de tickets (10), i.e. um agente, compreendido numa aplicação ou módulo do sistema operativo (3); um motor, do inglês engine, de autenticação (1), i.e. autenticação e arranque, compreendido na referida UEFI; uma área de transferência de dados ou ficheiros (13) acessível por ambos os motores de transferência e autenticação; em que o método compreende: pelo motor de transferência, receber tickets emitidos pelo servidor e guardar os tickets recebidos na referida área de transferência; pelo motor de autenticação: ler um ticket guardado na referida área de transferência; verificar autenticidade e obter tipo do ticket lido; caso a autenticação seja verificada como autenticada, processar o ticket verificado, consoante o tipo do ticket seja: um primeiro tipo de ticket, referido como ticket normal (408, 508), colocando o sistema num estado alugado (403, 503) em que o motor de autenticação autoriza que o sistema operativo possa arrancar; um segundo tipo de ticket, referido como ticket de bloquear (407, 507), colocando o sistema num estado bloqueado (404, 504) em que o motor de autenticação não autoriza que o sistema operativo possa arrancar exceto em condições de exceção predeterminadas.

[0042] Descreve-se ainda um sistema de bloqueio de um sistema informático à base de bilhetes emitidos por um servidor remoto, do inglês tickets, em que o sistema informático tem um sistema operativo que está configurado para arrancar a partir de uma UEFI, Unified Extensible Firmware Interface, em que o sistema de bloqueio compreende: um motor, do inglês engine, de transferência, i.e. um agente, de tickets compreendido numa aplicação ou módulo do sistema operativo; um motor, do inglês engine, de autenticação, i.e. autenticação e arranque, compreendido na referida UEFI; uma área de transferência de dados ou ficheiros que é acessível por ambos os motores de transferência e autenticação; em que o motor de transferência está configurado para receber tickets emitidos pelo servidor e guardar os tickets recebidos na referida área de transferência; em que o motor de autenticação está configurado para: ler um ticket guardado na referida área de transferência; verificar autenticidade (e normalmente, também verificar a correção, ou seja, a sua conformidade com a sua especificação) do ticket lido e obter tipo do ticket lido; caso a autenticidade seja verificada como autenticada, processar o ticket verificado, consoante o tipo do ticket seja: um primeiro tipo de ticket, referido como ticket normal, colocando o sistema num estado alugado em que o motor de autenticação autoriza que o sistema operativo possa arrancar; um segundo tipo de ticket, referido como ticket de bloquear, colocando o sistema num estado bloqueado em que o motor de autenticação não autoriza que o sistema operativo possa arrancar exceto em condições de exceção predeterminadas.

[0043] Numa realização, o motor de autenticação está configurado adicionalmente para remover o ticket já processado da área de transferência.

[0044] Numa realização, o motor de autenticação está configurado para processar o ticket verificado, adicionalmente, consoante o tipo do ticket seja: um terceiro tipo de ticket, referido como ticket libertar (406, 506), colocando o sistema num estado livre (401, 501) em que o motor de autenticação autoriza que o sistema operativo possa arrancar livre e indefinidamente; um quarto tipo de ticket, referido como ticket iniciar (405, 505), colocando o sistema num estado alugado (403, 503) em que o motor de autenticação autoriza que o sistema operativo possa arrancar desde que certas condições de operação predeterminadas estejam satisfeitas.

[0045] Numa realização, o motor de autenticação compreende um contador de arranque (UC) e está configurado para incrementar o contador de arranque (UC) em cada arranque autorizado do sistema operativo.

[0046] Numa realização, o motor de autenticação está configurado para caso o contador de arranque (UC) seja maior que um número predeterminado máximo de arranques autorizados (T.MaxUC), colocar o sistema no estado bloqueado.

[0047] Numa realização, o motor de autenticação compreende um contador de arranque de desbloqueio (UBC) e está adicionalmente configurado para quando colocar o sistema no estado bloqueado e o sistema informático arrancar: colocar o contador de arranque de desbloqueio (UBC) a zero; apresentar ao utilizador o contador de arranque (UC); solicitar um código de desbloqueio (509); esperar até receber um código de desbloqueio submetido pelo utilizador; verificar se o código de desbloqueio corresponde ao resultado de uma função hash calculada incluindo o contador de arranque (UC); se o resultado da função hash corresponder, autorizar que o sistema operativo possa arrancar provisoriamente, incrementando o contador de arranque (UC). [0048] Numa realização, o motor de autenticação está adicionalmente configurado para: se o resultado da função hash não corresponder, incrementar o contador de arranque de desbloqueio (UBC); caso o contador de arranque de desbloqueio (UBC) seja maior que um número predeterminado máximo de arranques de desbloqueio autorizados (MaxUBC), incrementar o contador de arranque (UC) e colocar o sistema no estado bloqueado.

[0049] Numa realização, o motor de autenticação está configurado para, ao processar o ticket verificado, em que o tipo do ticket é um ticket normal, colocar o contador de arranque (UC) a zero.

[0050] Numa realização, o número predeterminado máximo de arranques autorizados (T.MaxUC) é um número predeterminado máximo de arranques autorizados recebido no ticket normal mais recente.

[0051] Numa realização, a função de hash inclui o contador de arranque (UC), o número de série do sistema informático (SN), o tempo de emissão do ticket normal (CT) recebido mais recentemente, e uma chave de autenticação específica para autenticar códigos de desbloqueio (UK).

[0052] Numa realização, cada ticket inclui o seu tipo de ticket, o número de série do sistema informático (SN), um número predeterminado máximo de arranques autorizados (T.MaxUC), uma autenticação específica para autenticar tickets (AK), em que o tipo de ticket inclui o ticket iniciar, ticket normal, ticket de bloqueio ou ticket de libertar.

[0053] Numa realização, cada ticket inclui ainda um tempo de emissão do ticket (CT) e um limiar máximo de tempo (LD+TW) de utilização.

[0054] Numa realização, cada ticket iniciar inclui ainda uma chave de autenticação específica para autenticar códigos de desbloqueio (UK).

[0055] Numa realização, o motor de autenticação compreende um contador de arranque (UC) e está configurado para incrementar o contador de arranque (UC) em cada arranque autorizado do sistema operativo. [0056] Numa realização, o motor de autenticação está configurado para ignorar tickets recebidos, mesmo que autenticados, com um valor de tempo de emissão de ticket anterior ao ticket recebido mais recente.

[0057] Numa realização, o motor de autenticação está configurado para caso o relógio do sistema informático seja maior que um limiar máximo de tempo (LD+TW) recebido no ticket normal mais recente, colocar o sistema no estado bloqueado.

[0058] Numa realização, o motor de autenticação está configurado para caso o relógio do sistema informático seja menor que um valor de tempo de emissão de ticket, recebido no ticket normal mais recente, colocar o relógio do sistema informático igual ao tempo de emissão de ticket.

[0059] Numa realização, o ticket recebido é autenticado por uma chave simétrica secreta recebida no ticket de iniciar mais recente ou é autenticado por um par de chaves assimétricas em que uma chave privada está guardada pelo servidor e uma chave pública correspondente está guardada no motor de autenticação.

[0060] Numa realização, o motor, do inglês engine, de autenticação e arranque está compreendido num driver UEFI.

BREVE DESCRIÇÃO DAS FIGU RAS

[0061] Para uma mais fácil compreensão, juntam-se em anexo as figuras, as quais representam realizações preferenciais que não pretendem limitar o objeto da presente descrição.

[0062] Figura 1: Representação esquemática de uma arquitetura do sistema de bloqueio informático.

[0063] Figura 2: Fluxograma do método de configuração de um computador com o referido sistema de bloqueio de um estado liberto para um estado sob controlo.

[0064] Figura 3: Fluxograma do método de bloqueio quando detetado o limite máximo de arranques com o mesmo bilhete ou quando ultrapassada a data-limite de uso do mesmo e respetiva atualização do sistema com um novo bilhete. [0065] Figura 4: Representação esquemática dos estados dos bilhetes e os estados do sistema informático.

[0066] Figura 5: Representação esquemática detalhada dos estados dos bilhetes e os estados do sistema informático.

DESCRIÇÃO DETALHADA

[0067] Figura 1 mostra uma representação esquemática de uma arquitetura do sistema de bloqueio informático, onde 1 representa um módulo como aqui descrito, 2 representa um sistema de arranque primordial do sistema computacional, 3 representa um sistema operativo que executa no sistema computacional, 4 representa um sistema computacional onde opera o módulo descrito, 5 representa uma placa-mãe do sistema computacional, 6 representa um servidor da fonte de bilhetes autorizada descrito, 7 representa um bilhete enviado pela zona de transferência de bilhetes, 8 representa um código de desbloqueio temporário enviado pelo utilizador do sistema computacional protegido, 9 representa um código de desbloqueio temporário enviado por um gestor do servidor descrito, 10 representa um agente descrito, 11 representa um bilhete enviado pelo servidor descrito, 12 representa um bilhete enviado pelo agente descrito, 13 representa uma zona de transferência de bilhetes, 14 representa dispositivos conectados à placa-mãe, 15 representa um sistema computacional onde opera o servidor descrito, e 16 representa um sistema operativo sobre o qual se executa o servidor descrito.

[0068] Estão também referenciadas as várias entidades intervenientes no processo de proteção: o utilizador do sistema computacional protegido (4), o sistema computacional onde opera o servidor descrito (15), fornecendo bilhetes para manter em funcionamento o computador protegido, e o gestor do servidor descrito, que gere políticas de fornecimento de bilhetes.

[0069] Figura 2 mostra um fluxograma do método de configuração de um computador com o referido sistema de bloqueio de um estado liberto para um estado sob controlo, respetivamente nomeados como um estado "FREE" e estado "LEASED".

[0070] O método de configuração (212) pode compreender os seguintes passos: 1. Produzir um bilhete START (201);

2. Instalar numa diretoria do sistema de ficheiros do computador (203), que é observada pela UEFI (202);

3. Reiniciar o computador (204);

4. Deteção da presença do bilhete START pela UEFI (205);

5. Questionar o utilizador se pretende a sua instalação (206): a. Se for dada a confirmação, i. Configurar o sistema de bloqueio com os dados do bilhete (207); ii. Mudar o estado para LEASED (208); iii. Apagar o bilhete do local onde foi gravado (209); b. Se não for dada a confirmação, i. Manter o bilhete no local onde foi gravado (210).

[0071] Numa forma de realização, um computador à saída de produção do fabricante do equipamento original tem o sistema de bloqueio no estado FREE.

[0072] Numa forma de realização, um computador que foi adquirido no âmbito de um contrato de pagamento faseado, o seu sistema de bloqueio é configurado de um estado FREE para um estado LEASED.

[0073] Figura 3 mostra um fluxograma do método de bloqueio quando detetado o limite máximo de arranques com o mesmo bilhete ou quando é ultrapassada a data- limite de uso do mesmo e respetiva atualização do sistema com um novo bilhete.

[0074] O método de bloqueio (310) pode compreender os seguintes passos:

1. Iniciar um computador no estado LEASED (301);

2. Detetar uma situação irregular (302) do tipo: atingir um limite máximo de arranques com o mesmo bilhete (indicado no mesmo), ultrapassar a data- limite de uso do mesmo (também indicada pelo bilhete) ou receber um bilhete de bloqueio;

3. Iniciar diálogo antes do arranque do computador (303);

4. Introduzir código especial (304) facultado pela empresa que controla a emissão de bilhetes; 5. Obter novo bilhete durante essa sessão (305) nesse mesmo computador;

6. Instalar o bilhete (306) na diretoria do sistema de ficheiros do computador associada ao sistema de bloqueio;

7. Reiniciar o sistema (307);

8. Atualizar o sistema de bloqueio com o novo bilhete (308).

[0075] O código especial (304) serve apenas para conseguir realizar o arranque nessa vez, e em mais nenhuma, e tem como objetivo exclusivo permitir que o utilizador obtenha um novo bilhete para atualizar o sistema de bloqueio.

[0076] Numa forma de realização, o referido método de bloqueio (310) é ativado para todos os equipamentos informáticos no estado LEASED.

[0077] Para um utilizador não estar a ser confrontado com o cenário de bloqueio (310) frequentemente, este deverá obter os seus bilhetes em devido tempo, com uma frequência adequada caso reinicie muitas vezes o computador.

[0078] De forma a evitar o bloqueio (310), deve ser obtido e instalado um bilhete válido antes de se reiniciar o computador.

[0079] Numa forma de realização, uma entidade que gere a emissão de bilhetes apenas fornece bilhetes após confirmar se um protocolo de pagamento faseado acordado estiver a ser cumprido.

[0080] Numa forma de realização, este método de bloqueio (310) é desativado pela entidade que gere os bilhetes para um dado computador, terminando assim o seu processo de controlo sobre esse computador. Neste caso, quando o utilizador do computador for buscar um novo bilhete, este mudará o estado do sistema de bloqueio de LEASED para FREE no próximo arranque do computador.

[0081] Numa forma de realização, este método de bloqueio (310) pode ser ativado por um bilhete de bloqueio (BLOCK) emitido por uma entidade que gere os bilhetes para um dado computador no caso de se verificar o incumprimento do contrato acordado.

[0082] Um bilhete BLOCK, uma vez observado pela UEFI num arranque, impede o arranque do computador e leva-no novamente para o diálogo em que é pedido um código especial para arrancar. [0083] É descrito um método para controlar o arranque de um sistema operativo num computador usando um componente/módulo (1) ativado durante o processo primordial de arranque do sistema computacional (2), gerido pela UEFI (sigla do inglês, Unified Extensible Firmware Interface) e sem qualquer interação, nessa fase, com entidades externas ao sistema computacional. Daqui em diante refere-se genericamente esse componente/módulo por módulo descrito (1). O módulo descrito pode ser concretizado com hardware específico para o efeito ou com uma combinação de hardware de uso genérico existente nos sistemas operacionais e software/firmware, tanto instalado em dispositivos (firmware) como fazendo parte do software executado pela UEFI.

[0084] É igualmente descrito um método para permitir decidir, autonomamente, se o módulo descrito (1) deixa ou não prosseguir o arranque do sistema computacional (4). O módulo descrito usa credenciais internas, previamente inseminadas (7), designadas por bilhetes, para tomar a decisão se deve ou não permitir o arranque de um sistema operativo (3) no sistema computacional.

[0085] É ainda descrito um método para evitar a reutilização de bilhetes. Os bilhetes usados pelo módulo descrito (1) são específicos de cada sistema computacional. Cada bilhete só é válido para um e um só sistema computacional (5). O módulo descrito nunca instala um bilhete que não se destine a si, a menos que seja um bilhete especial de ativação do módulo descrito (bilhete START).

[0086] O módulo descrito (1) pode usar vários critérios para impedir o arranque do sistema computacional, incluindo a ultrapassagem de uma determinada hora indicada no bilhete atual (tendo em conta a hora do relógio de tempo real do sistema computacional), a ultrapassagem do número sucessivo de arranques com o mesmo bilhete (limite esse indicado no próprio bilhete atual), a localização do sistema computacional, dada por um equipamento de GPS, fora dos limites estipulados pelo bilhete atual, ou a identidade do utilizador que está a arrancar o sistema computacional, tendo em conta as identidades autorizadas pelo bilhete atual.

[0087] É adicionalmente descrito um método para arrancar temporariamente o sistema computacional, após um impedimento de tal arranque por incapacidade de cumprir com os requisitos impostos por um bilhete usado pelo módulo descrito. O método passa pela introdução de um código de desbloqueio temporário (8) que é obtido a partir da entidade (6) que gere a emissão de bilhetes para o sistema computacional em causa. A forma de contacto com a entidade (9) que tem a responsabilidade de emitir códigos de desbloqueio temporário não é de forma alguma coberta por esta patente. O código de desbloqueio temporário (8) apenas pode ser usado uma vez com sucesso, e apenas no sistema computacional para o qual foi emitido. O código de desbloqueio é gerado e validado com a chave UK (sigla do inglês, Unblocking Key), que é conhecida tanto pelo servidor descrito (6) como pelo módulo descrito (1).

[0088] É ainda descrito um método para ativar o módulo descrito (1), fazendo-o sair de um estado dormente. Tal ativação faz-se através da inseminação de um bilhete (7) START válido no módulo descrito. O utilizador do sistema computacional é inquirido acerca da sua concordância com essa inseminação, podendo abortá-la.

[0089] É também descrito um método para desativar o módulo descrito (1). Tal desativação faz-se através da inseminação de um bilhete (7) FREEDOM válido no módulo descrito.

[0090] É igualmente descrito um método para explicitamente solicitar o bloqueio do sistema computacional pelo módulo descrito (1). Tal bloqueio faz-se através da inseminação de um bilhete (7) BLOCK válido no módulo descrito. Após a inseminação deste bilhete, o sistema computacional, no seu arranque, entrará num modo de bloqueio de que apenas sairá com o anteriormente indicado código de arranque temporário (8), após o qual poderá ser possível inseminar um bilhete (7) que o retire desse estado de bloqueio.

[0091] É também descrito um método para prolongar a exploração do sistema computacional, permitindo que o mesmo consiga passar as condições impostas ao módulo descrito (1). Tal prolongamento faz-se através da inseminação de bilhetes (7) NORMAL válidos no módulo descrito. Um bilhete NORMAL pode alterar as condições anteriormente usadas no controlo de arranque (hora limite, número de arranques, localização, identificação do utente).

[0092] Descreve-se ainda um método para inseminar novos bilhetes no módulo descrito (1). A inseminação faz-se em duas fases: na primeira fase um agente descrito (uma aplicação que se executa no sistema operativo da máquina (10)) obtém um bilhete (11) e coloca-o (12) numa zona de transferência pré-acordada (13), acessível tanto ao sistema operativo como ao módulo descrito. Na segunda fase o módulo descrito, na sua execução aquando do arranque do sistema computacional, verifica se existe um novo bilhete válido nessa zona de transferência (13) e, após um sucesso na sua validação, guarda o seu valor, finalizando a inseminação (7).

[0093] Descreve-se também um método para validar bilhetes a inseminar quando o módulo descrito se encontra ativo. Os bilhetes terão de ter uma estrutura correta, um número de série correto e um autenticador válido tendo em conta a chave AK conhecida do módulo descrito.

[0094] Descreve-se ainda um método para controlar tentativas de violação do estado interno e do código do módulo descrito (1). Tanto o estado interno como o código executado pelo módulo descrito não podem ser alterados caso o mesmo esteja ativo, ou seja, tenha sido inseminado por um bilhete START e ainda não tenha sido posteriormente inseminado com um bilhete FREE. Caso se verifique alguma das circunstâncias acima referidas o módulo descrito bloqueia a prossecução do arranque, desligando imediatamente o sistema computacional.

[0095] Numa forma de realização, existem 4 tipos de bilhete que podem ser emitidos: START, NORMAL, FREEDOM e BLOCK. O bilhete START é usado para passar o sistema de bloqueio do estado FREE para o estado LEASED, o bilhete NORMAL permite que um computador arranque no estado LEASED, o bilhete FREEDOM permite mudar do estado LEASED para FREE, e o bilhete BLOCK permite forçar o bloqueio no arranque, caso o equipamento esteja previamente no estado LEASED.

[0096] Numa forma de realização, o computador ou equipamento informático precisa da autorização do utilizador e da entidade emissora de bilhetes para mudar do estado FREE para o estado LEASED.

[0097] A Figura 4 mostra uma representação esquemática dos estados dos bilhetes e os estados do sistema informático, onde 401 representa o estado FREE (LIVRE) do sistema informático, 403 representa o estado LEASED (ALUGADO) do sistema informático, 404 representa um estado BLOQUEADO, 405 representa um bilhete START (INICIAR), 406 representa um bilhete FREEDOM (LIBERTAR), 407 representa um bilhete BLOCK (BLOQUEAR) e 408 representa um bilhete NORMAL.

[0098] A Figura 5 mostra uma representação esquemática mais detalhada dos estados dos bilhetes e os estados do sistema informático, onde 501 representa o estado FREE (LIVRE) do sistema informático, 502 representa o subestado UNBLOCKING (DESBLOQUEIO TEMPORÁRIO) do estado bloqueado, 503 representa o estado LEASED (ALUGADO) do sistema informático, 504 representa um estado BLOQUEADO, 505 representa um bilhete START (INICIAR), 506 representa um bilhete FREEDOM (LIBERTAR), 507 representa um bilhete BLOCK (BLOQUEAR), 508 representa um bilhete NORMAL, 509 representa um CÓDIGO DE DESBLOQUEIO TEMPORÁRIO que permite apenas um arranque provisório do sistema informático, 510 representa um arranque provisório do sistema que devolve o sistema ao estado de bloqueado, a não ser que um bilhete NORMAL (508) seja entretanto recebido fazendo o sistema transitar para o estado ALUGADO (503).

EXEMPLOS DE APLICAÇÃO

[0099] A autorização de arranque de um sistema computacional destina-se a evitar que o mesmo seja usado em condições que violem requisitos do dono do equipamento. Há três cenários de particular interesse para a aplicação da presente descrição: no aluguer de sistemas computacionais, na venda de sistemas computacionais a prestações e na retaliação em caso de roubo do sistema computacional.

[00100] No cenário de aluguer de sistemas computacionais, existe uma entidade alugadora de um sistema computacional que quer garantir que quem o aluga não deixa de o fazer sem antes devolver o sistema computacional. Neste caso, a entidade alugadora pré-instala um bilhete START no sistema computacional antes de o ceder sob aluguer, e controla o seu uso, através de autorizações de arranque dadas por bilhetes NORMAL, se as condições contratuais do aluguer não forem violadas. Em casos mais graves, o alugador pode emitir um bilhete BLOCK, limitando de forma mais drástica o tempo de uso do sistema computacional após a verificação de uma situação considerada anómala.

[00101] No cenário da venda de sistemas computacionais a prestações é similar ao anterior, mas a propriedade do sistema computacional é do utilizador. [00102] No cenário da retaliação em caso de roubo do sistema computacional, o utilizador pode usar este sistema para garantir que o seu sistema computacional entra em bloqueio, após um número finito de arranques, após ser roubado. Esta solução não protege o utilizador contra o roubo dos dados no sistema computacional, nem contra a reutilização do mesmo para outros fins, mas garante que a infraestrutura base do sistema computacional, a sua placa-mãe, só arrancará um número finito de vezes. Caso haja recuperação pelo dono legítimo, o sistema computacional poderá ser desbloqueado através das ações previamente descritas de: introdução de código de desbloqueio para arranque temporário do sistema operativo, introdução de um bilhete NORMAL no módulo descrito através do agente descrito.

[00103] O termo "compreende" ou "compreendendo" quando utilizado neste documento destina-se a indicar a presença das características, elementos, inteiros, passos e componentes mencionados, mas não impede a presença ou a adição de uma ou mais outras características, elementos, inteiros, passos e componentes, ou grupos dos mesmos.

[00104] A presente invenção não é, naturalmente, de modo algum restrita às realizações descritas neste documento e uma pessoa com conhecimentos médios da área poderá prever muitas possibilidades de modificação da mesma e de substituições de características técnicas por outras equivalentes, dependendo dos requisitos de cada situação, tal como definido nas reivindicações anexas.

[00105] As seguintes reivindicações definem realizações adicionais da presente descrição.