Política de Restrição de Software
As configurações de SRP (política de restrição de software) foram introduzidas com a versão do Windows XP para ajudar a proteger os sistemas contra códigos desconhecidos e possivelmente perigosos. O SRP fornece um mecanismo em que somente o código confiável recebe acesso irrestrito aos privilégios de um usuário. Código desconhecido, que pode conter vírus ou código que entra em conflito com programas atualmente instalados, tem permissão para ser executado somente em um ambiente restrito (geralmente chamado de área restrita) em que ele não é permitido de acessar quaisquer privilégios de usuário sensíveis à segurança. Usar corretamente o SRP pode tornar sua empresa mais ágil porque fornece uma estrutura proativa para evitar problemas, em vez de uma estrutura reativa que depende da alternativa dispendiosa de restaurar um sistema após o problema.
O SRP depende da atribuição de níveis de confiança ao código que pode ser executado em um sistema. Atualmente, existem dois níveis de confiança: irrestrito e não permitido. O código que tem um nível de confiança irrestrito recebe acesso irrestrito aos privilégios do usuário, portanto, esse nível de confiança deve ser aplicado somente ao código totalmente confiável. O código com um nível de confiança não permitido não é permitido de acessar quaisquer privilégios de usuário sensíveis à segurança e pode ser executado somente em uma área restrita para que o código irrestrito não possa carregar o código não permitido em seu espaço de endereço.
A configuração SRP de aplicativos COM individuais é feita por meio do valor SRPTrustLevel na chave appID do aplicativo no registro. Se o nível de confiança SRP não for especificado para um aplicativo COM, o valor padrão de Disallowed será usado. Um aplicativo COM que tem um nível de confiança irrestrito tem acesso irrestrito aos privilégios do usuário, mas pode carregar apenas componentes com um nível de confiança irrestrito, enquanto um aplicativo COM não permitido pode carregar componentes com qualquer nível de confiança, mas não pode acessar privilégios de usuário sensíveis à segurança.
Além dos níveis de confiança SRP de aplicativos COM individuais, duas outras propriedades SRP determinam como o SRP é usado para todos os aplicativos COM. Se SRPRunningObjectChecks estiver habilitado, as tentativas de conexão com objetos em execução serão verificadas quanto aos níveis de confiança srp apropriados. O objeto em execução não pode ter um nível de confiança SRP menos rigoroso do que o objeto cliente. Por exemplo, o objeto em execução não poderá ter um nível de confiança não permitido se o objeto cliente tiver um nível de confiança irrestrito.
A segunda propriedade determina como o SRP lida com conexões ativadas como ativadoras. Se SRPActivateAsActivatorChecks estiver habilitado, o nível de confiança SRP configurado para o objeto de servidor será comparado com o nível de confiança SRP do objeto cliente e o nível de confiança mais rigoroso será usado para executar o objeto do servidor. Se SRPActivateAsActivatorChecks não estiver habilitado, o objeto do servidor será executado com o nível de confiança SRP do objeto cliente, independentemente do nível de confiança SRP com o qual ele foi configurado. Por padrão, SRPRunningObjectChecks e SRPActivateAsActivatorChecks estão habilitados.