Partilhar via


Backup e restauração de arquivos criptografados

O Sistema de Encriptação de Ficheiros (EFS) filtra a abertura de um ficheiro encriptado de tal forma que a aplicação que abriu o ficheiro obtém acesso às informações não encriptadas, desde que, claro, tenha as credenciais adequadas para aceder ao ficheiro e obter a chave necessária para desencriptar o ficheiro. As operações de leitura subsequentes neste ficheiro produzirão texto não encriptado. Isto é muito desejável para o acesso típico a ficheiros encriptados, e mantém a encriptação e desencriptação dos ficheiros transparentes. No entanto, isso dificulta o backup de arquivos criptografados, porque se o backup for tentado com as chamadas de E/S de arquivo padrão, como CreateFile, ReadFilee WriteFile, os arquivos de backup serão a versão de texto simples.

As funções de criptografia bruta são fornecidas para resolver esse problema. Os aplicativos de backup são o principal usuário pretendido para essas funções. As funções de criptografia bruta diferem de outras funções do sistema de arquivos na medida em que as funções de abertura, leitura e gravação permitem o acesso aos fluxos de dados criptografados brutos e também permitem a leitura/gravação do fluxo de $EFS. Portanto, o chamador das funções de criptografia brutas não precisa acessar as chaves criptográficas que descriptografam o arquivo. As seguintes APIs de criptografia bruta estão disponíveis para uso com aplicativos de backup e restauração:

API de criptografia bruta Descrição
OpenEncryptedFileRaw Abra um ficheiro encriptado com acesso aos dados em formato encriptado. Se o chamador não tiver acesso à chave do arquivo, ele precisará SeBackupPrivilege para exportar arquivos criptografados ou SeRestorePrivilege para importar arquivos criptografados.
CloseEncryptedFileRaw Feche um ficheiro encriptado aberto com OpenEncryptedFileRaw
ReadEncryptedFileRaw Ler um ficheiro encriptado deixando os seus dados em formato encriptado
WriteEncryptedFileRaw Escreva um ficheiro encriptado deixando os seus dados em formato encriptado
ImportCallback Retorno de chamada definido pelo aplicativo para uso com WriteEncryptedFileRaw
ExportCallback Retorno de chamada definido pelo aplicativo para uso com ReadEncryptedFileRaw