Está en la página 1de 9

Cifrado de datos transparente (TDE)

Dirigido a: Administradores de Bases de Datos | rea: Bases de Datos Autor: Pablo F. Dueas | Servicios Profesionales Danysoft

Introduccin
UnadelasprincipalespreocupacionesdelosDBAesquepuedansalirdatosdelaempresa.Eltpicoejemplo esqueseguardendatosdetarjetasdecrdito,cuentasbancariasocualquierotrainformacinpersonal. Inclusolosdatosdesalariosodepreciospodranserbastanteproblemticos,yesolotienentodaslas empresas.Estoesalgoquesesueledejaralcentrarseenlacorrupcindedatos,problemasdehardware, redesycualquiercosaquepuedapararelservidorSQL.Sinembargoahoraesmsrelevantequenuncapor laLeydeProteccindeDatos. ApartirdeSQLServer2005,seimplementaroncambiossignificativosparaasegurarsequeSQLServeres msseguroquelasversionesanteriores.Entreloscambiosseincluyeunaestrategiadeseguridadpor diseo,seguridaddeformapredeterminadayseguridadenlaimplementacinproyectadaparaayudara protegerlainstanciadelservidorysusbasesdedatosdelosataquesdeseguridad.Elcifradotransparente dedatosseaadealarespuestadeMicrosotenSQLServer2008.

Elcifradodedatostransparente
HastaquesaliSQLServer2008nohabaunmtodonativodeasegurarlosficherosfsicosdelabasede datos.Sepodausarelsistemaoperativoparaasegurardirectoriosoficherososepodanasegurarceldas usandoelcifradodelaversin2005.Tambinexistaalgunaherramientaparaelcifradodeficheros,pero eranadicionalesyexternosaSQLServer. Podramosdefinirelcifradocomoelprocesodetransformarinformacindirectamenteinteligible,usando unalgoritmoquelohaceininteligibleacualquierotrapersonaquenotengalaclave.Hayvariosmtodos (algoritmosmatemticos)decifrado,algunosmejoresqueotros.Aunquenosonperfectos,enseguridad hayunprincipiomuyimportante:sabercuntocuestaromperlaclaveycuntoseobtendradesuruptura. Esdecir,siobtenerlosdatosestancostosoentrminosdeprocesamiento,hardware,redes,etc.,quenose vaaobtenerelbeneficiosuficiente,losdatosestnseguros. Paradefinircorrectamenteelcifradodedatostransparente(TDEporsunombreeningls:Transparent DataEncryption)recurriremosasuscreadores,Microsoft:Elcifradodedatostransparente(TDE)realiza elcifradoydescifradodeE/Sentiemporealdelosdatosylosarchivosderegistro.Elcifradoutilizauna clavedecifradodelabasededatos(DEK),queestalmacenadaenelregistrodearranquedelabasede datosparaqueestdisponibledurantelarecuperacin.LaDEKesunaclavesimtricaprotegidautilizando uncertificadoalmacenadoenlabasededatosmaestradelservidorounaclaveasimtricaprotegidaporun mduloEKM.TDEprotegelosdatosenreposo,esdecir,losarchivosdedatosyderegistro. Laprincipalventajarespectoaotrastecnologas,esquenonecesitacambiosenlaaplicacinquesetenga desarrollada.EstepermitealosDBAcodificarlabasededatosusandoAESo3DESsintenerquehacer ningncambioalaaplicacinclientenialosobjetosdebasededatos.

Cifradodedatos
CuandosehabilitaelTDE,SQLServeriniciaunhiloensegundoplanoqueexaminatodoslosficherosdela basededatosyloscodifica.Estehilocreaunbloqueocompartidoenlabasededatos.Elhilode codificacinseejecutaasincrnicamenteimpidiendonicamentelamodificacindelaestructurade archivosyponerlabasededatosfueradelnea.Esdecir,seefectadeformatransparentemientraslos usuariosaccedenalabasededatos.Lacodificacintambinactasobreelficherovirtualderegistropara quelassiguientesescriturasalregistroestncodificadas.

Valor aadido Danysoft | www.danysoft.com

Comosehadichoantes,losalgoritmosdecifradoquesepuedenusarsonAESyTripleDES.Enelprimerose puedenusarclavesde128,196y256bits.Estosalgoritmosnohacenquelosficherosdebasededatos aumentenentamao,aunquesqueseusarellenoenelregistro,porloqueestosficherosssernms grandes.

Implementacin
ComenzaratrabajarconelTDEesmuysencillo: Secreaunaclavemaestra. Secreaoseobtieneuncertificadoprotegidoporlaclavemaestra. Secreaunaclavedebasededatosqueseprotegeconelcertificado. Sehabilitalabasededatosparausarcifrado.

Veamosestospasosunoauno.Paracrearlaclavemaestra,seejecutalainstruccinCREATEMASTERKEY enlabasededatosmaster.Siqueremosversiexistenyaclaves,tenemosanuestradisposicinlavista:

ComovemoshayunaclavepordefectoparaelserviciodeSQLServer,peronoeslaquebuscamos,porlo quecrearemosnuestraclavemaestra:

Directivadecontraseas
Antesdeseguir,vamosarecordarcmoesunacontraseadeSQLServer:puedecontenerhasta128 caracteres,entrelosquesepermiteincluirletras,smbolosydgitos. ComosesuponequeestastareaslasejecuteunDBA,nodeberasernecesarioinsistirsobreelusode contraseasseguras.SvamosarecogerlasrecomendacionesdeMicrosoft: Debetenerunalongitudde8caracterescomomnimo. Debecontenerunacombinacindeletras,nmerosysmbolos.Enestepuntoaadirqueno esconvenientesustituirlaiconel1,laoconelcero,etc. Noesunapalabraquepuedaencontrarseeneldiccionario.Estoincluyelasrecomendaciones siguientes:Noeselnombredeuncomando,unapersona,unusuarioounequipo. Secambiaconfrecuencia.Estarecomendacinparalascontraseasdeusuario,avecesnoes posibleparaloscertificados. Presentadiferenciasnotablesconrespectoacontraseasanteriores.

Comosabemos,lasdirectivasdecomplejidaddecontraseasseaplicanalosiniciosdesesin,perotambin atodotipodecontraseasenSQLServer,y,enconcretoalacreacindeclaves.Estndiseadaspara impedirataquesporfuerzabrutamedianteelaumentodelnmerodecontraseasposibles.Segnel sistemaoperativoenqueseejecutaSQLServerladirectivaaplicadaesmssencillaomscompleja. CuandoseejecutaSQLServerenWindows2000,seimpidelacreacindecontraseasquesean: NULLovacas.

Igualesalnombredelequipooeliniciodesesin. Unadelassiguientes:password,admin,administrator,saosysadmin. Porejemplo,siqueremoscrearunaclaveusandounacontraseavacanossaleelsiguientemensaje:

ParasistemasoperativosWindows2003yposteriores,lasexigenciassonmsacordesconlas recomendacionesexpuestasanteriormente:

Nopuedecontenerparteotodoelnombredelacuentadelusuario.Unapartedeunnombre decuentasedefinecomotresomscaracteresalfanumricosconsecutivosdelimitadosen ambosextremosporunespacioenblancoqueincluyeademsdelespacio,latabulacin,el retorno,etc.,oporalgunodelossiguientescaracteres:coma(,),punto(.),guin(),carcter desubrayado(_)osignodealmohadilla(#). Debetenerunalongituddeochocaracterescomomnimo. Debecontenercaracteresdetresdelassiguientescategoras: o o o o LetrasenmaysculasdelalfabetoLatn(delaAalaZ). LetrasenminsculasdelalfabetoLatn(delaaalaz). Dgitosenbase10(del0al9). Caracteresquenoseanalfanumricos,comosignodeadmiracin(!),signode moneda($),signodealmohadilla(#)oporcentaje(%).Encasodequeseuseuna conexinODBC,debetenerseencuentaquealgunoscaracteresnosepuedenusar enconcreto[]{}(),;?*!@porqueseutilizanparainiciarunaconexinopara separarvaloresdeconexin.

Clavemaestra
Ahorayanospodemosponeracrearlaclavemaestra: Valor aadido Danysoft | www.danysoft.com 3

Comopodemosveralvolveraejecutarlaconsultaanterior,yaexisteunaclavemaestradelabasededatos. TambinvemosqueelalgoritmoqueempleaesTRIPLEDESconunaclavede128bits.Estoesporquees unaclavemaestra:otrotipodeclavespermitenelegirelproveedordecodificacin.Tambinvemosquees

unaclavesimtrica:seusaparaprotegerlasclavesprivadasdecertificadosylasclavesasimtricas presentesenlabasededatos.Esdecir,vaaprotegerelcertificadoquecreemosenelsiguientepaso. Parapermitireldescifradoautomticodelaclavemaestra,secifraunacopiadelaclavemediantelaclave maestradeservicio(laquehemosvistoantesquecreaautomticamenteSQLServer ##MS_ServiceMasterKey##enlabasededatosmaster)ysealmacenaenlabasededatosyenlabasede datosmaestra.Enestecaso,comolahemoscreadoenlabasededatosmaestra,sloapareceenella.Silo hubisemoshechotambinenAdventureWorks,apareceraenambas:

Lacolumnais_master_key_encrypted_by_serverindicasilaclavemaestradelabasededatossehacifrado conlaclavemaestradeservicio. EsimportanterealizarunacopiadeseguridaddelaclavemaestrautilizandoBACKUPMASTERKEYy almacenardichacopiaenunlugarseguro.

Creacincertificado
Elsegundopaso,comohemosindicado,escrearuncertificadoprotegidoporlaclavemaestra.Estosehace delamanerasiguiente:

Veamoslosdetallesdelnuevocertificado:

Comoestamosusandounaclavesimtricaparacodificarelcertificado,nousamoslaopcinENCRYPTION BYPASSWORD.Deestamanerasepuedeusarautomticamente.Comotampocohemosespecificado fechas,ladeinicioeselmomentoenquesecreaelcertificadoyladeexpiracinunaodespus.Como tampocohemosespecificadoquincreaelcertificado,usaelasuntodelcertificado.

Nadamssealar,quesiseposeealgncertificadoexterno,sepuedenusartambinconlamisma instruccin,indicandodndeest.Encasodecrearlonosotros,sedebeguardarenlugarsegurocreando unacopiadeseguridadmedianteBACKUPCERTIFICATE.

Clavedecifrado
Ahoraquetenemosconquprotegerlaclavedecifradoqueseutilizaparacifrardeformatransparente unabasededatos,podemoscrearla:

Comoenelpasoanteriornohemoscreadounacopiadeseguridaddelcertificado,nosdalaadvertencia: noseharealizadounacopiadeseguridaddelcertificadousadoparacifrarlaclavedecifradodelabasede datos.Deberahacerinmediatamenteunacopiadeseguridaddelcertificadoydelaclaveprivadaasociada conelcertificado.Sielcertificadollegaraanoestardisponibleosituvieraquerestauraroasociarlabasede datosenotroservidor,necesitarcopiasdeseguridadtantodelcertificadocomodelaclaveprivada.Delo contrario,nopodrabrirlabasededatos. Despusdecrearlacopiadeseguridaddelcertificado,podemosproseguir.Convendrasealarqueantesse haestadotrabajandoconlabasededatosmaster,porquetantolaclavemaestracomoelcertificadoes obligatorioqueestnenella.Peroparacifrarunabasededatos,laclavecorrespondientedebeestaren dichabasededatos,poresohemoscambiadoaAdventureWorks. Porqunohacemoscopiadeseguridaddelaclavedecifrado?Porquenosepuedeexportardelabasede datos:Soloestdisponibleparaelsistema,paralosusuariosquetienenlospermisosdedepuracinenel servidoryparalosusuariosquetienenaccesoaloscertificadosquecifranydescifranlaclavedecifradode labasededatos. Paraverlascaractersticasdelaclavecreada:

VemosquelaclaveperteneceaAdventureWorks,comohemosmencionado,quenoestcifradatodava (encryption_state=1)yelalgoritmodecodificacinespecificado.

Cifrado
Yaporfinpodemoscifrarlabasededatos.Tengamosencuentaqueningunadelasetapasquenosexige SQLServeresgratuita.Esdecir,laclavedecifradoladebetenerlabasededatosparaqueelcifradosea transparente.Porlotanto,necesitaunmedioseguroparaguardarla.Comotienequeserunaclave asimtricaocertificadoquedebeestartambinenSQLServerparaquesigasiendotransparente,hayque guardarestecertificadobajollave.Paraactivarelcifradousamos:

Valor aadido Danysoft | www.danysoft.com

Cmopodemossabersiseestcifrandolabasededatos?Yahemosvistolaconsulta:

Sorpresa!,noslocifralabasededatosAdventureWorks(cuyoidentificadores7comosabemos),sinoque tambincifralatempdb(identificador2).Lgico,puesvaaguardarlosdatostemporalesdecualquierade lasbasesdedatoscifradas,ysinolohicieraseraunagujerodeseguridad.Tambinvemosquelabasede datostempdb>yaestcifrada(estado=3)yqueAdventureWorksseestcifrando(estado=2)yllevayaun 80%.Cuandolleguealestado3,habremosterminado. Nota:elporcientocompletadoserefierealcambiodeestado.Unavezquehaterminadodecambiarel estado(de2a3),escero,porquenohayningncambiodeestadoencurso.

Verificacin
UnaformafcildeverificarsisehacifradolabasededatosespararlosserviciosdeSQLServeryabrirel ficherodedatos.Silohacemosconunabasededatossincodificar,veremosquehaydatosquesepueden leerasimplevista,aquelloscontexto.Silabasededatosestcifradaveremosquetodoesbasura, imposibledeleer,inclusoelrellenodelabasededatos. Tambinpodemosprobarhacercopiadeseguridadyrestaurarlabasededatos.Primerohacemoslacopia deseguridad:

AcontinuacinvamosatratarderestaurarestabasededatosenotroservidoroinstanciadeSQLServer:

Estainstruccin,comoesperbamos,fallaconelsiguientemensaje:

Deestamanerahemospodidoverqueunacopiadeseguridadobtenidadespusdelcifradonosepuede restaurarenotroservidorsinhaberrestauradotambinelcertificado. Peroqupasasiseobtienenlosficherosdelabasededatos?Lopodemoscomprobarcopiandolos ficherosdebasededatosenfroeintentandoadjuntarlosparaleerlos:

Comoeradeesperar,nosdaelmismoerrorquealrestaurar:

Restaurarunabasededatoscifrada
Yahemosvistoque,unavezcifradaunabasededatos,nohayaccesoalosdatosdeformaclaraniatravs delosficherosdedatos,deregistro,datostemporalesocopiadeseguridad.Luegolanicaformade restauraroadjuntarlabasededatoscifradaenotroservidoroinstanciaesaadiendoelmismocertificado. Paraelloprimerotenemosquehacerunacopiadeseguridaddelcertificadoydesuclaveprivada:

Ahorasqueyapodemosusarestacopiadeseguridaddelcertificadoparapasarloalanuevainstanciao servidor.Deahqueseinsistatantosobreguardarensitiosegurocualquierclaveocertificado,puesdeotra manerasetendraaccesopblicoalosdatos.Paralacreacindelaclaveprivadaseguimoslospasosya dichosdecrearunaclavemaestra,certificado(enestecasoloimportamos)yclavedecifrado(quetambin laimportamosdentrodelcertificado).Enlanuevainstanciaoservidorejecutamos: Valor aadido Danysoft | www.danysoft.com 7

Comohemoscreadoelcertificadoylaclaveprivadaenelnuevoservidoroinstancia,yasepuederestaurar labasededatoscifrada:

Ahorasqueserestauralabasededatosconxito,comopodemoscomprobartantoporelmensajedeSQL Servercomoporquepodemosnavegarsinproblemasporellayversusdatos.Porlotanto,slosepuede verloquecontienesiseposeeelcertificadoconlaclaveprivadaqueprotegelosdatos.

Qutenerencuenta
HayunproblemaconocidoqueafectaaTDEyalosgruposdearchivosdeslolectura.Nosepuede habilitarTDEcuandohaygruposdearchivosdeslolectura,locualeslgico,porquedejarandeser archivosdeslolectura.Elestadodelabasededatossequedaencifradoenprogresoynotermina.Por lotanto,primerohayquepermitirlaescrituraentodoslosgruposdearchivos,luegocifrarlabasededatos yporltimo,volveraponercomoslolecturalosgruposdearchivoscorrespondientes. RespectoaltipodedatosFileStream,sepuedecifrarlabasededatos,perolosdatosreales(losficheros)en elsistemadearchivosnosecifran.Paraestohayqueusaralgnsistemadecifradodesistemaoperativo porqueenrealidadeslquienseencargadeestosficherosodatosFileStream. Porltimo,cualquieraccinqueimpliquerestaurarlabasededatos,moverlaohacerunespejovaa necesitar,obviamente,elcertificado.Es,portanto,muyimportantequeseguardencorrectamentelas copiasdeseguridaddeloscertificados,sino,lascopiasdeseguridaddelosdatosnosirvennisepuede hacerunespejo.

Efectossecundarios
ElbeneficiofundamentaldeTDEeselcifradonativodetodoslosdatosenelnivelfsico.Nosenecesitan programasexternosdecifrado,niprocedimientosalmacenadosoCLR,nielsistemaoperativo:esnativode SQLServer.Ademsprotegenoslociertosdatos,sinolosficheroscompletos. Perotambintienesusproblemas.Elprimeroyalohemosvisto:secifralabasededatostempdb,quees usadaportodaslasbasesdedatosdelainstancia.Aunqueelcifradonosuponemuchadegradacindela respuestadelservidor,cadavezqueunabasededatosabierta(nocifrada)usedatostemporales,vana tenerquesercifradosydescifrados,loqueafectaasurendimiento. Otroproblemasonlascopiasdeseguridadcomprimidas.Unabasededatoscifradacomprimemuypoco. Estoesdeesperarsiaceptamosqueloquehayenlosficherosdebesercompletamentealeatorio,sin patronesqueindiquenquhaydetrsy,portanto,sinpatronescomprimibles.Adems,noslonovaa haberprcticamentediferenciaentamaoentreunacopiadeseguridadcomprimidaysincomprimir,sino quetambinvaahaberporcadiferenciaentiempo. Porltimo,unaadvertenciaquesehalanzadoenlosforosesque,unavezquesecifraunabasededatos, aunqueluegosequiteelcifrado,siemprehayunareferenciaalcertificadoysevaanecesitarenlainstancia dondeserestaure.Deotromododarerror.Porsiacasolaversinqueseusatieneesteproblema,mejor comprobarloantesconuntest,ytenerlopresenteparanoperderlacopiadelcertificado.

Conclusin
Hemosvistoqueelcifradotransparentededatostrabajabienyesmuyfcildeinstalar.Nosdacifrado nativocompletamentetransparenteparaelusuario,detodoslosdatosindependientedelsistema operativooserviciosdeterceros.Cifratodoslosdatossinpreocuparnossicambiamosdesitioocreamos

algnfichero.Deestamanerasepuedencumplirconlosrequisitosdeprivacidaddelestadoointernosdela compaa,conclavesycertificadosfuertes,sinaumentareltamaodelabasededatos. Peronodebemosolvidarquetieneunallavesinlacuallosdatossepuedenconvertirenbasura.Portanto, lomejorestenervariascopiasdelcertificadoalmacenadasenlugaresseguros:nosloporquenolopuedan robaronosepuedaperderenunincendio,sinotambinporqueelmediodondeestalmacenadonose degradeysevuelvailegible.Deestamanera,sitenemosvariascopiasrepartidas,encasodeperderalguna porlacausaquesea,siempredispondremosdeotra. Porltimounpensamiento:Estoesmuytilparabasesdedatosporttiles,peroslovieneenlaedicin Enterprise. Paramsinformacin. Danysoft,esGoldcertifiedPartnerdeMicrosoftofrecindoletantolaslicenciasdeSQLServerenlas mejorescondicionescomolosserviciosdeformacinyconsultoranecesariosparasucorrectouso.Puede contactarconDanysoftenel902123146,overmsinformacinenwww.danysoft.com

Valor aadido Danysoft | www.danysoft.com

También podría gustarte