Potencialidades
Conceptual, uma potencialidade é como a fileira de uma matriz do controle de acesso. Cada assunto associou com ela um jogo dos pares, com cada par que contem um objeto e um jogo das direitas. O assunto associado com esta lista pode alcançar o objeto nomeado em algumas das maneiras indicadas pelas direitas nomeadas. Mais formalmente:
Nós abreviamos da "a lista potencialidade" como a C-Lista. As potencialidades encapsulate a identidade do objeto. Quando um processo apresenta uma potencialidade em nome de um usuário, o sistema operando-se examina a potencialidade para determinar o objeto e o acesso a que o processo é intitulado. Isto reflete como os capabiliies para a gerência da memória trabalham; a posição do objeto na memória encapsulated na potencialidade. Sem uma potencialidade, o processo não pode nomear o objeto em uma maneira que lhe dê o acesso desejado.
Os "codewords" de Iliffe são similares às potencialidades. as "potencialidades" são uma maneira controlar o acesso aos objetos na memória ou armazenamento secundário. Fabry generalizou esta idéia executar dirigir-se potencialidade-baseado. A arquitetura das potencialidades é mais interessante do que aquela de listas do controle de acesso. O Access Control List e a identidade process estão sob o controle do sistema operando-se. Na ausência das falhas, os processos do usuário podem mudá-las somente invocando os serviços de sistema operando-se. Entretanto, um processo deve identificar uma potencialidade a fim usá-la, assim que o processo deve ter algum controle sobre as potencialidades. Se o processo puder forjar uma potencialidade e então a usar, os controles de acesso falham. Execução das potencialidadesTrês mecanismos são usados proteger potencialidades: Tag, memória protegida, e cryptography. Uma arquitetura etiquetada tem um jogo dos bocados associados com cada palavra da ferragem. O Tag tem dois estados: o jogo e unset. Se o Tag for ajustado, um processo ordinário pode ler mas não modificar a palavra. Se o Tag for unset, um processo ordinário pode ler e modificar a palavra. Mais mais, um processo ordinário não pode mudar o estado do Tag; o processador deve estar em uma modalidade privilegiada a fazer assim.
Mais comum é usar os bocados da proteção associados com a paginação ou a segmentação. Todas as potencialidades são armazenadas em uma página (segmento) que o processo possa ler mas não alterar. Isto não requer nenhuma ferragem special-purpose à excepção daquele usado pelo esquema da gerência da memória. Mas o processo deve reference potencialidades indiretamente, geralmente através dos ponteiros, melhor que diretamente.
Uma terceira alternativa deve usar o cryptography. O objetivo dos Tag e da proteção da memória é impedir que as potencialidades estejam alteradas. Isto é akin a verificar da integridade. As somas de controle cryptographic são um outro mecanismo para verificar a integridade da informação. Cada potencialidade tem uma soma de controle cryptographic associada com ela, e a soma de controle enciphered digital usando um cryptosystem cuja a chave seja sabida ao sistema se operando. Quando o processo apresentar uma potencialidade ao sistema se operando, os primeiros recomputes que do sistema a soma de controle cryptographic associou com a potencialidade. Então enciphers a soma de controle usando a chave cryptographic e compara-a com essa armazenada na potencialidade, ou decifra-a a soma de controle fornecida com a potencialidade e compara-a com a soma de controle computada. Se combinarem, a potencialidade é unaltered. If.not, a potencialidade é rejeitada.
Potencialidades de copi e de amplificaçãoA abilidade de copí potencialidades implica a abilidade de dar direitas. Para impedir que os processos dêem indiscriminately direitas ausentes, uma bandeira da cópia é associada com as potencialidades. Um processo não pode copí uma potencialidade a um outro processo a menos que a bandeira da cópia for ajustada. Se o processo copí a potencialidade, a bandeira da cópia pode ser desligada (na discreção do processo ou da semente).
O amplification é o aumento dos privilégios. A idéia da programação modular, e especial de tipos de dados abstratos, requer que as direitas que um processo tem sobre um objeto estejam amplificadas. Para compreender porque, considere o seguinte tipo de dados abstrato para um contador. contador do módulo; ctr increment(var da entrada do procedimento: inteiro); comece o ctr: = ctr + 1; extremidade; getval(ctr da entrada da função: inteiro); comece getval: = ctr; extremidade; ctr clear(var da entrada do procedimento: inteiro); comece o ctr: = 0; extremidade; extremidade. Suponha que x está declarado para ser um contador. As réguas de tipos de dados abstratos concedem que objeto a ser alcançado somente pelo módulo contrário. Assim, inicialmente a potencialidade para x conteria a direita invocar o módulo contrário somente. Mas quando o objeto é passado ao módulo contrário, o processo deve agora poder ler e escrever a esse objeto. Daqui, a potencialidade deve ser amplificada temporariamente quando o contador do módulo for ativo.
Revogação das direitasEm um sistema da potencialidade, revogar o acesso a um objeto requer que todas as potencialidades que concedem o acesso a esse objeto estejam revogadas. Conceptual, cada processo podia ser verificado, e as potencialidades ser suprimido. O custo de tal operação seria inaceitável, entretanto, assim que os métodos alternativos são usados. O mecanismo o mais simples é ação indireta. Defina um ou mais tabela global do objeto. Neste esquema, cada objeto tem uma entrada correspondente em uma tabela. As potencialidades não nomeiam o objeto diretamente; nomeiam a entrada na tabela que corresponde ao objeto. Este esquema tem diversas vantagens. Primeiramente, para revogar potencialidades, a entrada na tabela global do objeto invalidated. Todas as referências obterão uma entrada inválida da tabela e serão rejeitadas então. Em segundo, se somente algumas das potencialidades deverem ser revogadas, o objeto pode ter entradas múltiplas, cada uma que correspondem a um jogo diferente das direitas ou um grupo diferente dos usuários.
Um mecanismo alternativo da revogação usa o tipo de dados abstrato gerentes. É incluído com cada tipo de dados abstrato um procedimento da revogação. Quando o acesso deve ser revogado, o tipo gerente simpy disallows uns acessos mais adicionais pelo assunto cujas as direitas estão sendo revogadas. Isto não afeta métodos alternativos de alcançar os objetos subjacentes os tipos de dados abstratos. Para o exemplo, alcance a uma lima pode ser revogado, mas esta técnica não obstruiria o acesso aos segmentos subjacentes através de um tipo alternativo gerente. O sistema SCP3 usou esta técnica. Comparação com listas do controle de acessoDuas perguntas underlie o uso de controles de acesso:
Na teoria, as listas ou as potencialidades do controle de acesso podem responder a estas perguntas. Para a primeira pergunta, as potencialidades são as mais simples; lista justa os elementos da C-Lista associada do assunto. Para a segunda pergunta, ACLs são os mais simples; lista justa os elementos do Access Control List do objeto. Em um sistema de ACL-based, responder à primeira pergunta requer todos os objetos ser feito a varredura. O sistema extrai todas as entradas do ACL associadas com o assunto na pergunta. Em um sistema potencialidade-baseado, responder à segunda pergunta requer todos os assuntos ser feito a varredura. O sistema extrai todas as potencialidades associadas com o objeto na pergunta. Karger e Herbert speculate que a diferença prática em responder à segunda pergunta é a razão mais listas do controle de acesso do uso dos sistemas do que potencialidades. Esta pergunta é feita mais frequentemente do que o primeiro. Porque o foco da resposta do incident desloca de "quem alcançou o objeto" para incluir "que outro fêz esse acesso sujeito," os sistemas potencialidade-baseados podem tornar-se mais comuns. este é um artigo adicionado por Fred Promover
|
|||||||||||
|