Encriptación de Procedimientos almacenados, triggers y vistas

01/03/2004 - 18:13 por Miguel | Informe spam
Existe alguna otra forma de utilizar el WITH ENCRYPTION
que no pueda ser descifrada?


Me he encontrado con algunos procedimientos que descifran
la encriptacion que hace microsoft a los Procedimientos
almacenados, triggers, vistas.


referencia: http://difisec.sytes.net/modules.php?
name=News&file=article&sid2


y para sorpresas esta esto:


CREATE PROCEDURE DECRYPTSP2K (@objName varchar(50))
AS
DECLARE @a nvarchar(4000), @b nvarchar(4000), @c nvarchar
(4000), @d nvarchar(4000), @i int
SET @a=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='ALTER PROCEDURE '+ @objName +' WITH ENCRYPTION
AS '+REPLICATE('-', 4000-62)
EXECUTE (@b)
SET @c=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='CREATE PROCEDURE '+ @objName +' WITH ENCRYPTION
AS '+REPLICATE('-', 4000-62)
SET @i=1
SET @d = replicate(N'A', (datalength(@a) / 2))
WHILE @i<=datalength(@a)/2
BEGIN
SET @d = stuff(@d, @i, 1,
NCHAR(UNICODE(substring(@a, @i, 1)) ^
(UNICODE(substring(@b, @i, 1)) ^
UNICODE(substring(@c, @i, 1)))))
SET @i=@i+1
END
EXECUTE ('drop PROCEDURE '+ @objName)
SET @d=REPLACE((@d),'WITH ENCRYPTION', '')
SET @d=REPLACE((@d),'With Encryption', '')
SET @d=REPLACE((@d),'with encryption', '')
IF CHARINDEX('WITH ENCRYPTION',UPPER(@d) )>0
SET @d=REPLACE(UPPER(@d),'WITH ENCRYPTION', '')
execute( @d)
GO



mi pregunta es: microsoft tendra respuesta a su codigo de
encriptación tan simple o existe algun otro metodo para
encriptar los procedure, trigger o vistas.. que no sea tan
a la ligera. La privacidad deja de existir.
 

Leer las respuestas

#1 Maximiliano D. A.
01/03/2004 - 18:21 | Informe spam
:o a la pelota no lo probe pero sabia que existia algo por el estilo, dejame
darte mi punto de vista si?

Seguridad: es un tema muy pero muy dificil en todos los aspectos, no hay
nada 100% seguro ni desifrable, por lo tanto no estamos a salvo de nadie que
se le ocurra hacer este tipo de cosas.
Un viejo amigo y muy especialista en seguridad informatica me decia:
Max, la seguridad esta pensada para resolver hasta un cierto porcentaje
cosas, el resto es totalmente viable por lo tal y por mas que le busques la
vuelta habra otro que la buscara mejor que vos (se dedican a ello).

Con esto y en mis años trabajando e implementando politicas de seguridad en
las empresas te comento que estas dentro del otro lado del 90% que
garantizan generalmente en algo de seguridad.

Que hago yo ahora? los encripto igual para no tener alteraciones de mi
codigo, con esto el 80 o 90% de la gente que utiliza estas aplicaciones ni
lo intentara desifrar,el otro 10 porciento es lo que admito como posible
saqueo, es lamentable pero es asi, ni la NASA o FBI estan seguros imaginate
nosotros :(


Se que esto no es defender a Microsoft ni mucho menos pero hay veces que son
injustas las acusaciones, eso si la empresa deberia revisar estas politicas
y yo que vos hasta les enviaria un mail como aporte, la seguridad la hacemos
entre todos, si descubris una puerta tenes 2 opciones:

1) La reportas al fabricante para protegerlo
2) la usas con malas intenciones

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Miguel" escribió en el mensaje
news:4b6101c3ffb0$80ddeaa0$
Existe alguna otra forma de utilizar el WITH ENCRYPTION
que no pueda ser descifrada?


Me he encontrado con algunos procedimientos que descifran
la encriptacion que hace microsoft a los Procedimientos
almacenados, triggers, vistas.


referencia: http://difisec.sytes.net/modules.php?
name=News&file=article&sid2


y para sorpresas esta esto:


CREATE PROCEDURE DECRYPTSP2K (@objName varchar(50))
AS
DECLARE @a nvarchar(4000), @b nvarchar(4000), @c nvarchar
(4000), @d nvarchar(4000), @i int
SET @a=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='ALTER PROCEDURE '+ @objName +' WITH ENCRYPTION
AS '+REPLICATE('-', 4000-62)
EXECUTE (@b)
SET @c=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='CREATE PROCEDURE '+ @objName +' WITH ENCRYPTION
AS '+REPLICATE('-', 4000-62)
SET @i=1
SET @d = replicate(N'A', (datalength(@a) / 2))
WHILE @i<=datalength(@a)/2
BEGIN
SET @d = stuff(@d, @i, 1,
NCHAR(UNICODE(substring(@a, @i, 1)) ^
(UNICODE(substring(@b, @i, 1)) ^
UNICODE(substring(@c, @i, 1)))))
SET @i=@i+1
END
EXECUTE ('drop PROCEDURE '+ @objName)
SET @d=REPLACE((@d),'WITH ENCRYPTION', '')
SET @d=REPLACE((@d),'With Encryption', '')
SET @d=REPLACE((@d),'with encryption', '')
IF CHARINDEX('WITH ENCRYPTION',UPPER(@d) )>0
SET @d=REPLACE(UPPER(@d),'WITH ENCRYPTION', '')
execute( @d)
GO



mi pregunta es: microsoft tendra respuesta a su codigo de
encriptación tan simple o existe algun otro metodo para
encriptar los procedure, trigger o vistas.. que no sea tan
a la ligera. La privacidad deja de existir.



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 23/02/2004

Preguntas similares