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.

Preguntas similare

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
Respuesta Responder a este mensaje
#2 ulises
01/03/2004 - 19:25 | Informe spam
La verdad que no le veo una salida, no he encontrado tools
de terceros que encripten los sps (generalmente se enfocan
más en los datos) y no es posible no ponerlas en la base
de datos porque son necesarios cuando el SQL identifica
que necesita una recompilación del sp.

En todo caso, si te preocupa tu propiedad intelectual
podrías manejar todo a través de extended storeprocedure,
las podrías programar en C# como un anticipo a
Yukon :), ... y por supuesto registrarla ante el órgano
competente.

Saludos,
Ulises

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.
.

Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
01/03/2004 - 23:58 | Informe spam
Si Ulises pero me gustaria agregar un temita:

Si usas Xp que armas vos y ese Xp se llegara a Colgar estarias en serios
problemas, claro no hay solucion magica como sabemos y sabiendo que se
`pierde y que riesgos pueden existir mejor no?


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"ulises" escribió en el mensaje
news:51e201c3ffba$82b05520$
La verdad que no le veo una salida, no he encontrado tools
de terceros que encripten los sps (generalmente se enfocan
más en los datos) y no es posible no ponerlas en la base
de datos porque son necesarios cuando el SQL identifica
que necesita una recompilación del sp.

En todo caso, si te preocupa tu propiedad intelectual
podrías manejar todo a través de extended storeprocedure,
las podrías programar en C# como un anticipo a
Yukon :), ... y por supuesto registrarla ante el órgano
competente.

Saludos,
Ulises

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.
.

Respuesta Responder a este mensaje
#4 ulises
02/03/2004 - 00:50 | Informe spam
Correcto, por eso ese tipo de solución debería pasar por
pruebas muy exhaustivas ...

Saludos,
Ulises

Si Ulises pero me gustaria agregar un temita:

Si usas Xp que armas vos y ese Xp se llegara a Colgar


estarias en serios
problemas, claro no hay solucion magica como sabemos y


sabiendo que se
`pierde y que riesgos pueden existir mejor no?


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...desarrolla


dor/default.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"ulises" escribió en el


mensaje
news:51e201c3ffba$82b05520$
La verdad que no le veo una salida, no he encontrado tools
de terceros que encripten los sps (generalmente se enfocan
más en los datos) y no es posible no ponerlas en la base
de datos porque son necesarios cuando el SQL identifica
que necesita una recompilación del sp.

En todo caso, si te preocupa tu propiedad intelectual
podrías manejar todo a través de extended storeprocedure,
las podrías programar en C# como un anticipo a
Yukon :), ... y por supuesto registrarla ante el órgano
competente.

Saludos,
Ulises

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.
.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida