Criptografia e Segurança das Comunicações Políticas de segurança : Confidencialidade Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:1/20 BLP - introdução (1) • O modelo Bell-La Padula, desenvolvido por David Elliott Bell e Leonard J. La Padula, é baseado na máquina de estados, e impõe o controlo de acesso a informação classificada militar/governamental. • BLP é destinado a sistemas com níveis estáticos de segurança. As permissões de acesso são estabelecidas através de – uma matrix de controlo de acesso, e – uma ordem parcial dos níveis de segurança. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:2/20 BLP - introdução (2) • A segurança do sistema é garantida pela satisfação de 3 regras de segurança em cada um dos estados por onde o sistema passa. • BLP revela vários inconvenientes – impede apenas o acesso ao conteúdo, quando por vezes há interesse em mascarar a inexistência do objecto. – Não cobre as políticas de alterações nos acesso e criação / eliminação de sujeitos e de objectos. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:3/20 BLP - níveis de segurança (1) • O modelo BLP envolve 2 conjuntos para além do {S,O,A} 1. (H,<) é uma ordem total de classificações Exemplo: H={UC,C,S,TS} – UC-”Unclassified” para distribuição ilimitada, sem controlo. – C-”Confidential” para distribuição limitada dentro da organização. – S-”Secret” para pessoas de confiança, controlada de acesso rotineiro – TS-”Top Secret” para círculo muito restrito de pessoas, controlo de acesso muito apertado. UC < C < S < TS TS S C UC Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade: 4/20 BLP - níveis de segurança (2) 2. (SC,⊆) é uma ordem parcial de segurança sobre compartimentos. {EUR,US,NATO} Exemplo: SC={EUR,NATO,US} {EUR,US} {US,NATO} {EUR,NATO} {US} {EUR} {NATO} ∅ Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:5/20 BLP - níveis de segurança (3) [Def]: O nível de segurança é um reticulado (H×C,≤ ) em que (h1,ca) ≤ (h2,cb) sse h1 < h2 e ca ⊆ cb. [Def]: Dados dois elementos a,b∈H×C, dizemos que b domina a se a≤ b. • Num reticulado, – O mínimo é dominado por todos os outros membros. O máximo domina todos os outros membros. – Para dois objectos a,b um sujeito necessita de se encontrar no nível de segurança a∨b para aceder aos dois objectos. – Para dois sujeitos a,b poderem aceder a um objecto o é necessário que o objecto seja posicionado no nível de segurança a∧b. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:6/20 BLP - ordens Exemplo: Seja H={Public,Private} e C={Personnel, Engineering} – (Public,∅) dominado por todos os outros, (Private,{Public, Engineering}) domina todos os outros. – (Public,{Engineering})≰ (Private,{Engineering}). (Private,{Public, Engineering}) (Private, {Engineering}) (Private, {Personnel}) (Public, {Personnel}) (Private, ∅) (Public, {Engineering}) (Public, ∅) Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:7/20 BLP - estados [Def]: Dados os conjuntos S-sujeitos, A-modos de acesso, M-matrizes de acesso, O-objectos e L-níveis de segurança, um estado é um quádruplo (o,b,M,f) em que: – – – – o ⊆ O : objectos do estado corrente b ⊆ S × O × A : acessos correntes M ∈ M = ℙ (S × O × A) : conjunto das matrizes de acessos f ∈ F = (fS,fO,fc) : funções de níveis de segurança • fS : S→L (nível máximo de segurança do objecto) • fO : O→L (nível de segurança do objecto) • fS : S→L (nível de segurança corrente do sujeito) Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:8/20 BLP - propriedades (1) 1. Propriedade Segurança Simples (ss-security): Um sujeito s∈S pode ler um objecto o∈O, sse lo ≤ls. Exemplo: um sujeito de nível desclassificado não pode ler documentos confidenciais. Read Read Read Níveis segurança Sujeito Objecto Nota: ss-security também designada por NRU-no read up Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:9/20 BLP - propriedades (2) 2. Propriedade Segurança * (*-security): Um sujeito s∈S pode escrever um objecto o∈O, sse ls ≤lo. Exemplo: um sujeito de nível secreto não pode escrever documentos desclassificados. Write Write Write Níveis segurança Sujeito Objecto Nota: *-security também designada por NWD-no write down Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:10/20 BLP - propriedades (3) Problema : NWD impede sujeitos de nível superior de enviar mensagens aos sujeitos posicionados num nível inferior. – – Solução1: baixar temporariamente o nível do sujeito (“nível corrente de segurança). Solução2: determinar que sujeitos podem violar a segurança *. 3. Propriedade Segurança ds (ds-security): Um sujeito s∈S efectua um acesso a∈A ao objecto o∈O, sse a∈M[s,o]. Nota: ds-security afirma que os controlos discricionários de acesso são respeitados. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:11/20 BLP - propriedades (4) [Def]: Um estado é seguro se verificar as propriedades *,ss e ds. • Uma transição entre dois estados v1 e v2 é segura se os estados forem seguros. Teorema básico de segurança: se o estado inicial for seguro e todas as transições forem seguras, então todos os estados por onde o sistema passa são seguros! – Demonstração por indução. – Interesse do teorema: basta partir de um estado seguro e garantir a segurança em todas as transições! Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:12/20 BLP - aplicação ao Multics (1) • O sistema operativo Multics, do qual o Unix é uma versão simplificada, incorporou o modelo de segurança BLP. – Processos são considerados sujeitos – Dispositivos e segmentos de memória são considerados objectos. Cada objecto contém um SDW-segment descriptor word. – b é armazenado no SDW. – M armazenado por ACLs na directoria pai do objecto. – f: para os sujeitos armazenados nas tabelas dos processos correntes, para os objectos armazenados na directoria pai do objecto. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:13/20 BLP - aplicação ao Multics (2) Descriptor segment Parent Current-Process segment-id ptr r: off e: - - w: on Current process Seg-id Lo Lc Segment-id Current level table Current level Lc is dominated by level Lo Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:14/20 BLP - aplicação ao Multics (3) • Os direitos no sistema operativo são geridos por 11 regras, nas quais as propriedades do modelo BLP são verificadas: 1. 2. 3. 4. 5. • Regras de requisição e cedência de acessos: get-read, getexecute, ..., release-read, release-execute,... Regras de requisição e cedência de acessos a sujeito distinto: give-read,... Regras de criação e reclassificação de objectos: create-object e change-object-security-level. Regra de remoção de objectos: delete-object-group Rega de alteração do nível de segurança do sujeito: changesubject-current-security-level. Multics inclui noção de utilizador confiável, que pode violar a segurança-* Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:15/20 HRU – introdução (1) • O modelo HRU de política de segurança na confidencialidade tem por objectivo resolver a falha do BLP na definição de alterações de acesso e na criação / eliminação de sujeitos e objectos. • O modelo HRU definido por duas partes A. Componentes (mesmos do BLP) • • • • S - sujeitos O - objectos A - modos de acesso M - matrizes de acesso Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:16/20 HRU – introdução (2) B. 6 primitivas de manipulação da matriz de acessos. • Inserir e Retirar acesso de M. • Criar e Eliminar sujeito. • Criar e Eliminar objecto. • As primitivas são definidas na forma c(x1,... ,xk) { if (r1 in Ms1,o1 and r2 in Ms2,o2 and rm in Msm,om) { Op1; ... Opn; } /* si e oj retirados de x1,... ,xk */ Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:17/20 HRU – introdução (3) Exemplo 1: comando de criação de um ficheiro f Command create-file (p,f) { create object f ; M[p,f] = union(M[p,f],{own}); /* sujeito passa a ser dono */ M[p,f] = union(M[p,f],{r}); /* sujeito pode ler */ M[p,f] = union(M[p,f],{w}); /* sujeito pode escrever */ } Exemplo 2: comando de permissão do process p ao processo q de ler f a Command grant-read-file (p,f,q) { if ( member(own,M[p,f]) ) M[q,f] = union(M[q,f],{r}); } Só o dono do objecto pode conceder a outros sujeitos o acesso a esse objecto! Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:18/20 HRU – propriedades (1) [Def]: A matriz de acessos M vaza (“leak”) o direito de acesso r, se existir um comando que adicione r numa célula onde era inexistente. [Def]: A matriz de acessos M diz-se segura para o direito de acesso r, se não existir uma sequência de comandos que transforme M num estado que vaza r. [Teorema]: Dada a matriz de acessos M, o direito de acesso r e um conjunto de comandos, a determinação da segurança não é decidível. Apenas se pode decidir a segurança de M se: – Em cada comando só há uma operação. – O número de sujeitos é finito. Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:19/20 HRU – propriedades (2) Exemplo de uma política não segura para os comandos para Alice, que pretende Bruno execute aplicação sem a alterar Command grant-execute (p,f,q) { if ( member(own,M[p,f]) ) M[q,f] = union(M[q,f],{x}); } Command modify-own-right (s,f) { if ( member(x,M[s,f]) ) M[s,f] = union(M[s,f],{w}); } – create-file( Alice, f ); – grant-execute( Alice, f, Bruno ); – modify-own-right( Bruno, f ); Prof RG Crespo Criptografia e Segurança das Comunicações Políticas confidencialiade:20/20