Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
04/12/2006

< Segurança no Vista VII: >
<
BitLocker, proteção contra furto
>


Continuando nossa discussão das inovações de segurança incorporadas ao Windows Vista, abordemos o recurso de criptografia de unidades lógicas de disco (partições de discos rígidos) denominado “BitLocker”. Que, confesso, cheguei a pensar em deixar de lado mas acabei por decidir abordar de forma resumida.

A razão da dúvida é simples: o recurso BitLocker somente fará parte das duas versões “topo de linha” do Vista, a corporativa “Enterprise” e a individual “Ultimate”, mais completas e caras (mais adiante será incorporado igualmente ao Windows “Longhorn” Server). E, em minha opinião, segurança não é item opcional, um “add on” que agrega funções ao produto, é recurso essencial que jamais deve ser sonegado e portanto deve obrigatoriamente ser incorporada a toda e qualquer versão.

O curioso é que a MS parece concordar com isso. Tanto assim que sua discutida e polêmica iniciativa “Windows Genuine Advantage”, que detecta a ilegalidade da cópia de Windows e ao constatá-la não apenas emite freqüentes e incômodos avisos como também impede a atualização do sistema e transferência de arquivos gratuitos da MS, abre uma única exceção: justamente as atualizações de segurança, permitidas mesmo para cópias ilegais. Portanto, em princípio, não me pareceu correto fazer com que um recurso de segurança fosse tratado como item acessório, incorporado apenas a certas versões.

Ocorre que, como veremos, devido à própria natureza do BitLocker, ele é um recurso de segurança bastante peculiar. Durante o TechEd 2006 cheguei a discutir o assunto com alguns especialistas em segurança da MS que apresentaram as razões que, em seu modo de ver, justificavam o tratamento de opcional dado ao recurso. Razões que só podem ser sopesadas depois de conhecermos o BitLocker, seu funcionamento e objetivos. Vamos antes a ele então.

De acordo com a definição da MS, “o sistema de criptografia de unidades de discos BitLocker é um recurso de proteção de dados habilitado por hardware que ajuda a proteger os dados de um PC caso a máquina caia em mãos não autorizadas”.

Explicando melhor: o objetivo do BitLocker não é evitar que o computador seja invadido, que vírus ou vermes sejam nele inseminados ou que dados sejam dele extraídos sub-repticiamente sem que se perceba. Se ele um dia lhe for útil, certamente você perceberá antes mesmo que ele faça seu trabalho. Isso porque o BitLocker serve apenas para um fim: evitar que dados armazenados nas unidades de disco de computadores furtados, roubados, perdidos ou subtraídos do legítimo dono de qualquer outra forma caiam em mãos indevidas. Assim como dados contidos em discos rígidos “descomissionados” (removidos de máquinas para serem substituídos, seja por defeito, seja para aumentar a capacidade de armazenamento) sejam recuperados.

Em suma: enquanto o disco rígido estiver instalado na máquina e você estiver de posse dela, o BitLocker não se manifesta. Mas se porventura a máquina ou o disco rígido cair em mãos de terceiros, ele impede que os dados sejam recuperados por mais sofisticados que sejam os recursos empregados para tal fim.

Ao se habilitar o BitLocker, todo o “volume” (drive lógico ou partição) que contém o sistema operacional é criptografado, incluindo as áreas de sistema, o trecho do disco usado para “memória virtual” (“swap file” ou “page file”), todos os arquivos temporários, o arquivo de “hibernação” (cópia da memória RAM quando o micro entra em estado de hibernação) e, evidentemente, todos os arquivos de dados. O único trecho que fica fora do conjunto criptografado é uma pequena partição, que contém o MBR, o “carregador” (“loader”) do sistema operacional e alguns utilitários do sistema que serão usados em caso de necessidade de recuperação (atenção: embora não criptografada, esta pequena partição está rigidamente protegida pelo TPM, como logo veremos).

Tudo isto garante que, mesmo que o disco seja removido fisicamente da máquina e submetido a qualquer tipo de escrutínio capaz de “ler” trilha a trilha, setor a setor do volume criptografado, a criptografia assegura a segurança dos dados. Isso garante que qualquer tentativa de acesso à partição protegida pelo BitLocker, seja modificando o MBR (Master Boot Record, registro mestre de inicialização, que contém as informações sobre o particionamento e está fora da partição criptografada porém protegido pelo TPM), seja alterando a partição criptografada, impede a inicialização do Vista.

O BitLocker garante a integridade da pequena partição deixada fora do volume criptografado usando a versão 1.2 do módulo TPM (“Trusted Platform Module”) para assegurar a proteção da chave usada para criptografia e testar a integridade de cada componente durante o procedimento de inicialização. Se constatar qualquer alteração ou fraude nos arquivos utilizados durante este procedimento, a inicialização é imediatamente interrompida e o sistema é travado.

Figura 1: “Chip” TPM.

Mas o que é o TPM? O acrônimo significa “Trusted Platform Module”, ou “módulo de plataforma confiável”, e designa um circuito integrado, ou “chip”, incrustado nas placas-mãe de computadores que aderem ao padrão Trusted Platform (portanto, para usar o BitLocker não basta dispor de uma das versões “Enterprise” ou “Ultimate” de Vista, é preciso que sua placa-mãe disponha de um chip TPM como o mostrado na Figura 1, obtida da apresentação de Fernando Fonseca no TechEd 2006 juntamente com as demais que ilustram esta coluna).

Este pequenino módulo é capaz de executar um admirável conjunto de funções. Para começar, criptografa dados com chaves “fortes” (de 128 ou 256 bits). Além disso, cria, armazena e gerencia chaves de criptografia, realiza operações de assinatura digital, mantém dados de plataformas (“hashes”), ancora a cadeia de confiança para chaves e protege a si mesmo contra ataques. E fornece uma única chave tipo “SRK”, ou “Storage Root Key” (se desejar mais informações sobre o TPM visite a página do < https://www.trustedcomputinggroup.org > “Trusted Computing Group”).

Figura 2: Carga do Sistema Operacional.

Então, como a coisa funciona? Veja, na Figura 2, um diagrama esquemático que mostra um disco rígido com apenas duas partições e o “chip” TPM, situado na placa-mãe. Este “chip” armazena a chave raiz (SRK ou “Storage Root Key”) usada para criptografar uma segunda chave, a VEK (“Volume Encryption Key”) que por sua vez é usada para criptografar toda a partição Windows. A VEK pode ser armazenada em hardware (“smart card” ou dispositivo USB) ou na outra partição, a de boot, devidamente criptografada pela SRK. Para que qualquer arquivo contido na partição Windows (inclusive os usados durante a inicialização do sistema) venha a ser acessado, é imprescindível decodificar (“descriptografar”) e usar a VEK para, por sua vez, decodificar a partição criptografada.

Para entendermos como funciona o BitLocker precisamos saber o que acontece quando se liga um micro. Como o procedimento de inicialização é longo e complexo, tentemos resumi-lo em poucos passos.

O primeiro é a execução de uma rotina de teste do hardware denominada POST (“Power On Self Test”, ou auto-teste de partida), um programeto gravado em um circuito integrado que costumamos chamar de “BIOS” porque, além de conter dados e ajustes do hardware e parte das rotinas de inicialização, armazena ainda as rotinas responsáveis pelo acesso do sistema operacional ao hardware (o “sistema básico de entrada e saída”, “Basic Input/Output System”, por isso “BIOS”). É durante o POST que se acendem as “luzinhas” (“leds”, para os puristas) do teclado e dos drives e aparecem aquelas mensagens na tela informando o tamanho da memória e coisa e tal. Estas atividades constituem a fase Pre-OS por ser executada muito antes da carga do sistema operacional.

Terminado o POST e constatado que tudo está “nos conformes” (se não estiver, a inicialização é interrompida e são emitidas mensagens de erro ou sucessões de “bips”) inicia-se a fase “Static OS”, ou seja, a fase estática da carga do sistema operacional com um acesso ao disco rígido para ler o conteúdo do MBR (“Master Boot Record”, ou setor mestre de inicialização; que não é a mesma coisa que “setor de boot” como logo veremos). No MBR estão armazenadas, entre outras coisas, a tabela de partições, que informa como o disco foi subdividido, quantas são as partições, que tipo de sistema ou dados estão nelas armazenados, onde começa e acaba cada uma delas e, sobretudo, qual delas é a “ativa”, ou seja, a que contém os arquivos usados para carregar o sistema operacional.

O objetivo de ler estes dados é localizar o “setor de boot” (o primeiro setor da partição ativa) para que ele possa ser transferido para a memória. Este setor contém uma pequena rotina denominada “BootBlock” que dá a partida no procedimento de inicialização propriamente dito, ou seja, de carga do sistema operacional. Quando a máquina dispõe de mais de um sistema operacional instalado, o “BootBlock” carrega o gerenciador de inicialização, ou “boot manager”, um programeto que permite escolher que sistema operacional carregar dentre os disponíveis (ou seja, informa em que setores de que partição estão os arquivos correspondentes a cada sistema instalado).

Somente então tem início a próxima fase com a carga do sistema operacional propriamente dito (aquele escolhido pelo usuário entre os disponíveis na máquina). Isso se dá carregando na memória os “blobs” (conjunto de dados binários; em tese, sigla de “Binary Large OBject”, ou grande objeto binário, mas suspeita-se que a sigla tenha sido inventada depois do nome; veja < http://en.wikipedia.org/wiki/Binary_large_object > artigo sobre blobs na Wikipedia). Blobs são grandes arquivos binários usados na inicialização. Note que é apenas a partir desta fase que entra em cena o sistema operacional escolhido para a inicialização. Portanto, como logo veremos, é somente a partir deste ponto que começa a decodificação (ou seja, a “descriptografia”) dos arquivos de sistema nas máquinas protegidas pelo BitLocker.

Figura 3: Ação do BitLocker durante a inicialização.

Mas acontece que, graças ao chip TPM, o BitLocker não é apenas um recurso de criptografia de discos, mas de proteção de todo o procedimento de inicialização. Repare, na Figura 3, que sua ação se faz sentir imediatamente, antes mesmo da execução do POST (que usualmente o primeiro passo do procedimento de inicialização).

No momento mesmo em que a máquina é ligada o BitLocker entra em ação e solicita autorização para prosseguir. Esta autorização libera a chave raiz, ou SRK, e pode ser fornecida sob a forma de senha introduzida pelo usuário via teclado ou por chave contida em uma peça de hardware (“smart card” ou módulo USB). Esta última é a forma mais segura e recomendada pela MS, já que este dispositivo de hardware pode conter também a chave VEK criptografada, evitando a necessidade de gravá-la na partição de boot do disco rígido (é mais segura desde que não se transporte o dispositivo na mesma maleta ou mochila onde se leva o “notebook” ou não se o guarde embaixo do teclado ou na gaveta de cima da mesa onde repousa o “desktop”, bem entendido).

Note que tudo isto é feito no início da fase de PréOS, garantindo que nada possa ocorrer sem que a chave raiz seja fornecida, reconhecida e aprovada.

Verificada a chave, o chip TPM lê o conteúdo do BIOS e, usando um algoritmo apropriado, gera um código binário, ou “hash”. Em seguida, usando a SRK, decodifica uma cópia deste “hash” previamente gravada no próprio chip TPM antes da última vez que o sistema foi desligado e compara os dois valores.

Conferiu? Ótimo, vamos adiante e executemos o POST. Não conferiu? Bem, então os dados do BIOS foram alterados depois do último desligamento do sistema e o procedimento é imediatamente bloqueado. Andaram fuçando a máquina e isto o BitLocker não admite...

Executado o POST, o procedimento segue para a próxima fase, onde são lidos passo a passo o MBR, o setor de boot, o “BootBlock” e o código do gerenciador de boot. Mas antes de cada um deles o procedimento acima é repetido: um “hash” é gerado e comparado com seu correspondente armazenado no chip TPM após decodificação com a SRK e o passo só é executado caso os valores confiram. Ou seja: se qualquer um desses componentes (todos eles armazenados na “partição de boot”, aquela que não foi criptografada) houver sido alterado, a inicialização é bloqueada.

Repare que tudo isto é feito sem qualquer interferência do sistema operacional, portanto sem a participação de qualquer programa, apenas do próprio TPM. Trata-se simplesmente de comparar, a cada passo, o valor do “hash” gerado para cada componente com seu correspondente criptografado e armazenado no chip TPM. Resultado: qualquer alteração de um único bit que seja dos componentes usados na inicialização e armazenados na partição (não criptografada) de boot implica o imediato bloqueio da carga do sistema. Se foi “mexida”, a máquina simplesmente não parte.

Agora, sim, começa a carga do sistema operacional. Mas seus arquivos estão todos criptografados usando a chave de criptografia do volume (“Volume Encryption Key”, ou VEK). Ocorre que neste caso a própria chave foi por sua vez criptografada usando a chave raiz, ou SRK e armazenada no dispositivo de hardware ou, na falta deste (caso de entrada em operação através de senha) gravada na partição de boot. O BitLocker entra então em ação: usa a SRK para decodificar a VEK e, com ela, inicia a decodificação de todos os “blobs” (arquivos binários) correspondentes ao módulo de carga do sistema operacional (“OS Loader”), arquivos de sistema, drivers, residentes, tudo enfim que é carregado na memória durante a inicialização do sistema operacional.

Agora, com o Vista carregado (já que o “BitLocker”, por enquanto, só foi incorporado ao Vista), é apresentada a tela de “logon” ao usuário. Que entra com sua identidade de usuário (“userid”) e senha para carregar o restante do sistema com suas configurações pessoais (veja tudo isto representado esquematicamente, passo a passo, na Figura 3).

Parece complicado? Bem, para você, que agora sabe como a coisa funciona, talvez pareça. Mas para o usuário que dispõe de uma máquina protegida pelo BitLocker, nem tanto. Na verdade, ele nem ao menos toma conhecimento que tudo isto esta acontecendo: simplesmente entra com uma senha ou chave (“smart card” ou dispositivo USB) para “destravar” o computador e outra para se registrar (ou fazer “logon”) no sistema. Nada muito diferente do que normalmente se faz em um micro protegido por “senha de setup”. E temos conversado. Toda a complicação se dá por detrás dos panos já que o processo é absolutamente transparente para o usuário.

Mas o que ocorre se o micro for surripiado do verdadeiro dono? A resposta mais curta e simples é: nada. Absolutamente nada. Não há como fazer Vista ser carregado sem que a chave raiz seja fornecida ao chip TPM. E se o amigo do alheio que apropriou-se do micro carregar outro sistema operacional através de um meio removível ou se remover o disco rígido para instalá-lo em outra máquina, tudo o que encontrará será uma partição Windows com todos os arquivos de sistema e de dados fortemente criptografados. E uma criptografia muito difícil de ser “quebrada” por qualquer ataque do tipo “força bruta”, já que BitLocker criptografa o volume usando o algoritmo “Advanced Encryption Standard” (AES) com chaves configuráveis de 128 ou 256 bits. Sem a chave raiz, não há como decodificar a partição.

E não há mesmo. O que leva a uma segunda indagação: o que ocorre com o usuário que extraviar sua chave?

Se ele não dispuser de meios de recuperá-la, danou-se: os dados foram-se para sempre. Mas, felizmente, o Vista oferece meios de arquivar as chaves devidamente criptografadas (pelo próprio BitLocker, inclusive) no Active Directory da rede corporativa, de onde podem ser recuperadas pelo usuário com a ajuda do administrador da rede.

Mas e no caso sempre possível dos dados do BIOS ou um dos arquivos da partição de boot, não criptografada, se corromper ou ser alterado inadvertidamente pelo próprio usuário? Bem, neste caso o sistema trava mas o usuário pode entrar no “modo de recuperação” e fornecer uma “chave de recuperação” de 48 caracteres gerada pelo administrador e desbloquear o volume criptografado.

Mas sem a chave de recuperação e sem a SRK dê adeus a seus dados para sempre. O que, aliás, é um dos objetivos do BitLocker: discos rígidos protegidos por ele e substituídos podem simplesmente ser encaminhados à sucata sem susto, já que sem as chaves os dados estão absolutamente seguros (maiores informações sobre o BitLocker, suas características e funcionamento, podem ser obtidas na página da MS < http://www.microsoft.com/whdc/system/platform/hwsecurity/BitLockerFAQ.mspx > “BitLocker Drive Encryption Frequently Asked Questions”).

O que nos leva novamente ao ponto inicial: se o BitLocker é um recurso de segurança tão eficiente, porque limitar seu fornecimento às versões “Enterprise” e “Ultimate”?

Bem, segundo a MS, o cliente-alvo do BitLocker, aquele para o qual o produto foi concebido, é a grande corporação que tem dados confidenciais armazenados em discos rígidos, dados esses que caso venham a cair em mãos erradas poderão causar graves prejuízos. Em outras palavras: organizações que detêm dados são tão importantes que os computadores onde estão armazenados correm o risco de furto, roubo ou outro tipo de desvio físico apenas com objetivo de ter acesso a estes dados.

Esse não é o usuário doméstico. Não é nem mesmo a corporação pequena ou média. Ainda segundo a MS, para estes, a criptografia fornecida pelo EFS (“Encrypting File System”, sistema de arquivos criptografados) incorporada aos sistemas operacionais da MS desde o Windows XP é mais que suficiente e bastante segura.

O BitLocker é destinado fundamentalmente a preservar os dados de servidores instalados em filiais das grandes corporações, em computadores portáteis de executivos que carregam dados extremamente confidenciais e micros de mesa que armazenam dados igualmente delicados.

No que concerne ao grau de segurança da criptografia adotado, os do BitLocker e EFS são equivalentes. A grande diferença é que o primeiro criptografa também os arquivos do sistema operacional e alguns arquivos binários como o de hibernação e o “swap file”. E, ao contrário do EFS, seu grau de segurança não depende de configuração: instalado, ele torna-se transparente e inicia sua tarefa de proteção contra inicializações indevidas e temos conversado.

Segundo a MS, o fato de proteger exclusivamente contra roubo ou furto (desvio físico; depois de inicializada a máquina o BitLocker não a protege, por exemplo, contra invasões ou “malware”), dispor de uma alternativa como o EFS, ser voltado para um grupo tão restrito de possíveis usuários (particularmente aqueles pertencentes a grandes corporações) além de exigir um hardware específico (ou seja, máquinas cujas placas-mãe contenham um chip TPM) justifica o fato de o BitLocker não ter sido incorporado a todas as versões do Vista.

Como diria o Ancelmo Gois:

é, pode ser...

 

B. Piropo