Para os mais saudosos aqui fica um site para matar saudades.
www.zxspectrum.net
Site criado para transmitir algum do conhecimento que fui ganhando durante a minha vida profissional.
sexta-feira, 27 de novembro de 2009
sábado, 1 de agosto de 2009
Ocultar password em asp.net
Uma das coisas que me faz muita confusão é ter a password e o username em texto simples nos ficheiros de web.config.
Isto faz-me confusão porque na realidade em caso de falha de segurança damos muito pouco trabalho aos hackers... :)
Uma das formas de ocultar a informação relativa ao utilizador e à sua password é ocultando a no registo da máquina.
A ferramenta a usar é o aspnet_setreg.exe, uma ferramenta que vem com a Framework da Microsoft. (Microsoft .Net Framework).
Esta ferramenta permite-nos guardar no registo informações como o utilizador e a password de uma ligação como por exemplo ao SQL. Assim escusamos de ter a connection string com user e password no ficheiro web.config.
A ferramenta utiliza internamente 2 funções ou métodos que são locais na máquina, a CryptProtectData e a CryptUnprotectData, uma é o método que usamos para cifrar a nossa ligação a outra é o que usamos para decifrar a nossa ligação.
Atenção que quem tiver acesso à máquina tem acesso a estes métodos e por isso pode ver a informação cifrada.
Ao utilizarmos o aspnet_setreg.exe usamos uma sintaxe do género
aspnet_setreg.exe -k:SOFTWARE\MINHA_APLICACAO_SEGURA\identity -u:"dominio\password" -p:"password"
Este comando cifra o utilizador e a sua password na chave de registo indicada com a flag -k: também gera o output que devemos colocar no nosso web.config ou na nossa machine.config para que o user asp.net possa saber como localizar as chaves no registo e usa-las.
O output que recebemos é semelhante a este:
username="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,username"
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password"
O Windows atribui à chave de registry FULL control ao utilizador de system, aos administradores e ao utilizador que a criou.
Se os administradores não tiverem nada a ver com isto podem ser removidos que não fazem falta... Atenção que ao removerem as permissões dos administradores ficam com menos apoio na tentativa de resolução de erros. Deixem sempre o user system e o que criou a chave se esta tiver sido criada com o user que corre o site. Para estas alterações ou adicionar outro utilizador podem usar o regedt32.exe para dar permissões às pastas.
Agora é só alterar a aplicação correspondente no seu web.config ou na suma machinec.config com o retorno do aspnet_setreg para começar a funcionar com as password e users menos visíveis
username="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,username"
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password" />
Deixei o nome dos métodos usados internamente para mais tarde num outro texto do blog falar deles.
Isto faz-me confusão porque na realidade em caso de falha de segurança damos muito pouco trabalho aos hackers... :)
Uma das formas de ocultar a informação relativa ao utilizador e à sua password é ocultando a no registo da máquina.
A ferramenta a usar é o aspnet_setreg.exe, uma ferramenta que vem com a Framework da Microsoft. (Microsoft .Net Framework).
Esta ferramenta permite-nos guardar no registo informações como o utilizador e a password de uma ligação como por exemplo ao SQL. Assim escusamos de ter a connection string com user e password no ficheiro web.config.
A ferramenta utiliza internamente 2 funções ou métodos que são locais na máquina, a CryptProtectData e a CryptUnprotectData, uma é o método que usamos para cifrar a nossa ligação a outra é o que usamos para decifrar a nossa ligação.
Atenção que quem tiver acesso à máquina tem acesso a estes métodos e por isso pode ver a informação cifrada.
Ao utilizarmos o aspnet_setreg.exe usamos uma sintaxe do género
aspnet_setreg.exe -k:SOFTWARE\MINHA_APLICACAO_SEGURA\identity -u:"dominio\password" -p:"password"
Este comando cifra o utilizador e a sua password na chave de registo indicada com a flag -k: também gera o output que devemos colocar no nosso web.config ou na nossa machine.config para que o user asp.net possa saber como localizar as chaves no registo e usa-las.
O output que recebemos é semelhante a este:
username="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,username"
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password"
O Windows atribui à chave de registry FULL control ao utilizador de system, aos administradores e ao utilizador que a criou.
Se os administradores não tiverem nada a ver com isto podem ser removidos que não fazem falta... Atenção que ao removerem as permissões dos administradores ficam com menos apoio na tentativa de resolução de erros. Deixem sempre o user system e o que criou a chave se esta tiver sido criada com o user que corre o site. Para estas alterações ou adicionar outro utilizador podem usar o regedt32.exe para dar permissões às pastas.
Agora é só alterar a aplicação correspondente no seu web.config ou na suma machinec.config com o retorno do aspnet_setreg para começar a funcionar com as password e users menos visíveis
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password" />
Deixei o nome dos métodos usados internamente para mais tarde num outro texto do blog falar deles.
quinta-feira, 30 de julho de 2009
Como arrancar o windows Vista com o minimo de aplicações a correr.
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Hoje tive um problema relacionado com isto.
Quis instalar um software e não conseguia. Ele estava constantemente a gerar excepções e não se deixava instalar.
Decidi validar se poderia ser alguma coisa que tivesse instalado ou a correr que fosse incompatível ou que provocasse a excepção de memória que o programa dá.
Para podermos testar se existe alguma aplicação que está a causar a falha na instalação de outra temos de desactivar o máximo possível de aplicações que a nossa máquina tenha.
Para isso o Windows vista vem com uma ferramenta útil que se chama msconfig .
Para a correr basta ir ao nosso start menu e escrever no run msconfig.
Depois aparece-nos a seguinte janela:

Escolho a pasta services, fiz o hide Microsoft services ( não quero desabilitar estes para já ) e depois escolho a opção de disable all.

Seguidamente escolho a pasta startup e opção disablle all ( assim ficam a maior parte das aplicações e drivers sem arrancar. )

Arranquei o sistema e tentei instalar a aplicação.
Esta instalou bem sem qualquer problema.
Agora se tivesse tempo para validar qual dos programas estaria a procurar causar o problema bastaria ir activando um a um os serviços e aplicações desligados e tentando instalar a aplicação até esta repetir o erro.
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Subscrever:
Mensagens (Atom)