1/17/2013

Infraestructura de clave publica II

Realmente debería de haber empezado por esta introducción pero ya que voy a comentar como configurar ahora nuestro EJBCA, entonces lo voy a denotar..

En cualquier infraestructura de clave publica, es muy importante la etapa de Diseño previa la cual se detallan las reglas de juego, como :

¿Como se llamara nuestra CA?
¿Cuantas sub-CA's va a tener?
¿Quien va  a ser el administrador?
¿A que entidad le pertenece la administración de la CA o Sub-CA's?
¿Que servicios va a ofrecer cada CA o Sub-CA?
¿Con que seguridad se va a permitir el acceso?
¿Cuanto tiempo de vida va a tener los Certificados emitidos o la propia CA?
¿Cuales van a ser los requerimientos para la emisión?
¿Que seguridad Perimetral va a contar la infraestructura?
¿Como se van o cual va a ser el procedimiento mas seguro para otorgar los certificados?
...
...etc.. etc

y algunas preguntas mas que tenemos que ir respondiendo enfocado en el negocio de la fase de producción que tendrá la infraestructura de clave publica antes incluso de la etapa de instalación en el diseño de la misma, Una implementación Correcta desde su etapa de diseño nos puede Resolver en un menor % de riesgo durante la fase de producción

Entonces vamos a empezar una vez ya instalada y dentro del Panel Administrador que lo deje en Post >> "Infraestructura de clave publica I" , creando  la CA root Inicial

(Ojo, los nombres de los paneles voy a dejarlos en ingles, aunque los pueden cambiar en la parte inferior a la izquierda en las configuraciones verán para poder modificar el lenguaje en Español o desde el Archivo que les comente en el primer post de esta serie)

Ahora con la Instalación , básica, dentro del panel de administración vamos a 
 Edit >>Certificate Authorities 
Después en en la pagina podemos  poner Cyttek Root CA como nuestro nombre de la Autoridad de certificación  y luego en el Boton "Create", Deberemos hacer los siguientes cambios :



Signing Algorithm: SHA256WithRSA
RSA key size: 4096
Description: Root CA de Cyttek Group.
Validity (*y *mo *d) or end date of the certificate: 20y
Subject DN: CN=Cyttek Root CA,O=Cyttek Group.,C=RS
Use Issuing Distribution Point on CRLs: On
Default CRL Dist. Point: http://crl.cyttek.com/rootca.crl
CRL Expire Period (*y *mo *d *h *m): 1y
CRL Overlap Time (*y *mo *d *h *m): 2d


Una vez que la información este rellenada, podemos darle al botón "Crear". una vez terminado el proceso ya veras que La CA esta dentro de la Lista de CA's Disponibles 

Una vez creada la CA root en este caso vamos a crear una Sub-CA por ejemplo o sí estamos en una instalación para alguna entidad o país deberemos delegar el Root para la entidad encargada de la administración y calcular cuantas Sub-CA's vamos a tener que implementar y quienes serán los destinatarios. en mi caso , solo voy a comentar una única instalación.


Uno de los parámetros que me gusta crear por seguridad es una Jerarquía de Sub-Ca que no sea Root, el cual ayuda para poder distinguir los permisos, y los perfiles.


En  Edit Certificate Profiles , Selecciona >>>  SUBCA (FIXED) de la lista
en la caja de texto puedes poner  "cyttek Sub-CA" , y luego lo vamos a usar como una plantilla para nuestro >>> Use selected as template . Esto creara un perfil de SubCA del perfial de SUBCA (FIXED) que anteriormente hemos seleccionado


Ahora en la nueva subCA que hemos creado seleccionamos y le damos click en el botón de >> Edit Certificate Profile . 
Vamos a ajustar algunas opciones para nuestro caso:


Available bit lengths: 4096 bits
Validity: 15y
Allow validity override: Off
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Available CAs: Cyttek Root CA


Una vez ajustado estos prametros, le damos en el boton Save o Guardar ;)

Ok ahora vamos a la parte que mola, la creacion de la entidad de certificación la que sirve los Certificados a las entidades finales.

En >>Edit Certificate Authorities y en la caja de texto podemos escribir  "Cyttek-Bl4ckD4wn CA" (sin las comillas) y luego en el boton  Create...  .para crear la entidad de la cual deberemos ajustar algunos parametros según los necesitemos en nuestro caso serán los siguientes:


Signing Algorithm: SHA256WithRSA
RSA key size: 4096
Description: Example's CA in charge of issuing certificates for individuals within the organisation.
Validity (*y *mo *d) or end date of the certificat: 15y
Subject DN: CN=Cyttek-Bl4ckD4wn CA,O=Cyttek Group,C=RS
Signed By: Cyttek Root CA
Certificate Profile: Cyttek Sub-CA
Use Issuing Distribution Point on CRLs: On
Default CRL Dist. Point: http://crl.cyttek.com/personca.crl
CRL Expire Period (*y *mo *d *h *m): 14d
CRL Overlap Time (*y *mo *d *h *m): 12h
Default OCSP Service Locator: http://ocsp.cyttek.com/ejbca/publicweb/status/ocsp



Después de ajustar las opciones y crear la nueva CA, aparecerá en el apartado como nueva entidad de certificación disponible.

Ahora que ya tenemos quien se encargara de sacar los Certificados vamos a configurar la creación de perfiles para las entidades finales.  osea los perfiles necesario de los certificados de las entidades finales

Vamos a >>> Edit Certificate Profiles , Seleccionamos >> ENDUSER (FIXED) .
Metemos en la caja de texto el nuevo nombre que le queramos dar Cyttek-Bl4ckD4wn Signingy lo vamos a usar como base seleccionando en el boton "Use selected as template" ahora que lo tenemos como una plantilla vamos a ajustar unos parámetros dentro del "Cyttek-Bl4ckD4wn Signing " con los siguientes ajustes:



Available bit lengths: 1024, 2048, 4096
Validity (*y *mo *d) or end date of the certificate: 1y
Key Usage: Digital Signature, Non-repudiation
Extended Key Usage: Client Authentication, Email Protection
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On
Available CAs: Cyttek-Bl4ckDwn CA


Cuando la info este modificada, Guarda en el boton "Save"  en el inferior de la pagina de configuración (Ojo con la opcion " Key encipherment " que este apagada, si no lo podrá tomar para otro uso que por el momento no nos interesa).

Ahora le vamos a meter mano al perfil de  ENDUSER (FIXED) , vamos a darle el nombre de "Cyttek-bl4ckD4wn Encriptacion" como el nuevo perfile que vamos a cargar también.. Seleciona " Use selected as template" .
Luego le damos al perfil que le hemos dado nombre anteriormente y le damos a >> Edit Certificate Profile . Para hacer los siguientes ajustes:

Available bit lengths: 1024, 2048, 4096
Validity (*y *mo *d) or end date of the certificate: 1y
Key Usage: Key encipherment, Data encipherment
Extended Key Usage: Email Protection
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On

Available CAs: Example Person CA

Para Terminar lo guardamos con el botón en la parte inferior.

Añadiremos a esta configuración un perfil mas para Servidores llamado SERVER (FIXED) el cual sera el perfil que vamos a usar como template, ok repetimos otra vez las configuraciones anteriores., Escribimos "Bl4ckD4wn Server"  como el nombre del perfil que vamos a crear y lo seleccionamos como perfil con el botón  "Use selected as template." luego repetimos el proceso anterior con la plantilla  nueva creada, y le damos al boton  "Certificate Profile" . para ejecutar algunos ajustes:


Available bit lengths: 1024, 2048, 4096
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On
Available CAs: 
Cyttek-Bl4ckDwn CA


Para Terminar lo guardamos con el botón en la parte inferior. y con eso tenemos concluido la configuración de los perfiles de certificados para poder emitirlos ...

Ok, ahora estamos en fase Rambo II, creando perfiles de entidades final

Bueno los perfiles de los certificados definen para que van a ser usados los certificados, pero los perfiles de entidades finales  define el contenido del certificado , esta es una parte importante para mantener la información que se requiere para emitir el certificado, para su uso ya pueda ser SSL, VPN, Email , DNIe, etc...
Ahora vamos a crear 2 perfiles uno para la organización y otro para los servidores

Vamos al  Administration >> Edit End Entity Profiles . luego dentro del campo de texto escribimos el nombre de la persona Person y la agregamos con el botón "Add".  Seleccionamos el nuevo perfil creado y le damos en " Edit End Entity Profile " para poder agregar los atributos siguientes "Subject DN Attributes":
  • UID, Identificador Único     
  • O, Organización
  • C, País que en ingles es Country 
Con estos 3 Atributos agregas y modificables , tenemos que agregar un campo alternativo para Nombre  RFC 822 Name (e-mail address).

Entonces los ajustes del perfil persona seran los siguientes para nuestro caso:

E-mail Domain: cyttek.com
O, Organization: Cyttek Group.
C, Country (ISO 3166): CO
RFC 822 Name (e-mail address) Required: On
Default Certificate Profile: Cyttek-Bl4ckD4wn Signing
Available Certificate Profiles: 
Cyttek-Bl4ckD4wn Signing, Cyttek-Bl4ckD4wn Encryption
Default CA: 
Cyttek-Bl4ckD4wn CA
Available CAs: 
Cyttek-Bl4ckD4wn CA
Default Token: P12 file
Number of allowed requests: 2
Number of allowed requests use: On
Key Recoverable Use: On


Ok, para terminal el perfil lo guardamos como las anteriores.con el botón "Save".


Ok ahora vamos a configurar el segundo perfil de servidor. ( básicamente voy a repetir el proceso anterior para los que no lo pillen a la primera.)
Vamos atrás al panel de Administration >> Edit End Entity Profiles luego en el campo de texto agregamos el nombre " Server " y le damos al boton " Add ".
 Seleccionamos el nuevo perfil creado y le damos en " Edit End Entity Profile " para poder agregar los atributos siguientes "Subject DN Attributes":
  • O, Organización    
  • C, Pais que en ingles es Country  
 Tenemos que agregar un campo alternativo para Nombre  RFC 822 Name (e-mail address).

Ajustamos los campos del perfil servidor con:
Batch generation (clear text pwd storage) use: On
E-mail Domain: Cyttek.com
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
RFC 822 Name (e-mail address) Required: On
Default Certificate Profile: Bl4ckd4wn Server
Available Certificate Profiles: Bl4ckD4wnServer
Default CA: Cyttek-Bl4ckd4wn CA
Available CAs: 
Cyttek-Bl4ckd4w CA
Default Token: PEM file


 para terminal el perfil lo guardamos como las anteriores.con el botón "Save".

Ok ahora vamos a remplazar los valores para poder poner en producción nuestro PKI calvin klein
Vamos a remplazar los certificados del frontend por los certificados que tenemos que emitir desde nuestra CA configurada anteriormente con sus perfiles para poder autentificar al administrador.

Vamos a preparar el Certificado para el administrador de la interfaz administrativa y poder remplazarlo para la fase de producción:
Vamos a >> Administration >> Add End Entity . Selecionamos el perfil de la entidad final de Person y le metemos mano a estas configuraciones:

Username: {{admin_username}}
Password: {{admin_password}}
Confirm Password: {{admin_password}}
Email: {{admin_mail}} @ cyttek.com
CN, Common name: {{admin_name}} {{admin_surname}}
UID, Unique Identifier: {{user_id}}
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
Use data from E-mail address field: On
Certificate Profile: Example Person Signing
CA: Cyttek-Bl4ckD4wn CA
Token: P12 file
Number of allowed requests: 2
Key Recoverable: Off



Ojo, ajustar los parámetros con los valores que queráis.
Y terminamos este proceso con el botón "Add End Entity"

Ahora vamos a obtener los certificados que hemos configurado mediante la interfaz publica que se encontraba al principio . >> Public Web Seleccionamos la opcion del menu >> Create Browser Certificate  y dentro de las cajas de texto ponemos las credenciales que hemos escrito anteriormente para la entidad de administración final del Administrador.( Ten en cuenta que el perfil que tenemos que seleccionar para esta descarga debe de ser Cyttek-Bl4ckd4wn Signing ), y luego lle damos al "OK".

Ok ya tenemos el "Famoso" .p12 para poder importarlo en nuestro Firefox o browser de preferencia para poder a la próxima vez acceder a la consola de administración , el tema es que sera tan seguro como el password que hayamos configurado para la entidad final  . Obviamente el atacante debe de contar con el archivo .p12 y el user y password de accesos para poder logearse a la interfaz de administración.

Por el momento no le hemos metido mano a la terminal para ajustar y configurar no se desesperen, no todo se hace con clicks }:)


Ahora vamos a la page del >> Administration >> Edit Administrator Privileges .
Seleccionamos en el link de " Add " y podemos un super adminsitrador el cual el nombre puede ser >> "Super Administrator".  Ahora debemos hacer una configuración mas en el panel del Administrador en el link cercano al grupo de  Super Administrators y le metemos mano a esta información el cual sera necesari:

CA: Cyttek-Bl4ckD4wn CA
Match with: Certificate serial number (recommended)
Match type: Equals, case sens.
Match value: {{SERIAL_PARA_EL_CERTIFICADO}}

El campo {{SERIAL_PARA_EL_CERTIFICADO}}debe ser remplazado por el numero de serial del certificado que hemos emitido. Y para terminar con esta configuración le damos click al botón "Add" y luego >>> Edit Access Rules en la misma pagina , con el Rol de Super Administrator, para terminar guardando la información que acabamos de configurar.

Ahora dentro del perfil de Servidor en la configuración de >> Administration >> Add End Entity , vamos a ajustar unos parámetros básicamente para ajustar la entrada:

Username: ca.cyttek.com_ejbca
Password: {{
CONTRASEÑA_Keystore_CA}}
Confirm Password: {{CONTRASEÑA_Keystore_CA}}
Batch generation (clear text pwd storage): On
E-mail address: ejbca @ cyttek.com
CN, Common name: Cyttek CA Server
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
DNS Name: ca.cyttek.com
Use data from E-mail address field: On
Certificate Profile: Example Server
CA: Cyttek.Bl4ckD4wn CA
Token: JKS file

Ojo el password debe ser el mismo que el que especificamos en el archivo  web.properties de la primera serie ( Infraestructura de clave publica I ) en el archivo >>  ejbca_https_keystore_password . Una vez terminado estos ajustes repetimos con el botón  Add.

Luego despues de volvernos a logear , añadimos al final del archivo siguiente la linea especificada
# /opt/ejbca/bin/batchtool.properties
----BEGIN----
keys.spec=4096
-----END-----

Y generamos el keystore con el siguiente comando:

$ su ejbca
$ cd /opt/ejbca/
$ bin/ejbca.sh batch

Ahora después de generar el Keystore, también sera necesario crear un nuevo truststore, el cual servirá para identificar que certificados se deben de creer en la cadena de confianza para poder acceder a la interfaz de administración del nuestra infraestructura Calvin Klein.

----BEGIN----$
cd /opt/ejbca/
bin/ejbca.sh ca getrootcert 'Cyttek Root CA' rootca.der -der
bin/ejbca.sh ca getrootcert 'Cyttek-Bl4ckD4wn CA' personca.pem
openssl x509 -in personca.pem -out personca.der -outform DER
keytool -importcert -alias cyttekrootca -file rootca.der -keystore p12/truststore_new.jks
keytool -importcert -alias cyttekbl4ckd4wnca -file personca.der -keystore p12/truststore_new.jks
-----END-----$

Ojo, la contraseña que le metimos al nuevo truststore debe ser la misma que le metimos en el archivo  web.properties dentro de la configuración de ejbca_truststore_password

Antes de seguir con el nuevo Keystore y truststore vamos a bajar el servicio:

$ su root
$ service ejbca stop

Y para hacer el deploy con el servicio abajo debemos hacer ;

$ su ejbca
$ cd /opt/ejbca/p12/
$ cp ca.cyttek.com_ejbca.jks /opt/jboss/server/ejbca/conf/keystore/keystore.jks
$ cp truststore_new.jks /opt/jboss/server/ejbca/conf/keystore/truststore.jks

y luego levantando el servicio

$ su root
$ service ejbca start

Ok ahora ya tenemos nuestros ajustes por seguridad para poder acceder a la pantalla de adminstracion de nuestro PKI necesitaremos la nueva llave y certificado , Ojo, con el cache del browser y el antiguo certificado que no les dejaran entrar a la pantalla de administración.
para comodidad aremos que esta llave y certificado sea por defecto en futuras llamadas o extensiones de EJBCA:

% su ejbca
$ cd /opt/ejbca/p12/
$ mv ca.example.com_ejbca.jks tomcat.jks
$ mv truststore_new.jks truststore.jks


Para ir terminado esto , por que supongo que estaréis mas cansados que Rambo en bilmania. ahora para ir finalizando vamos a terminar con nuestras configuraciones de seguridad,Vamos a >> Administration >>; Edit Administrator Privileges  y en esa pagina le damos a >> delete en el grupo>> Temporary Super Administrator Group. y cuando tengamos eso vamos a la pagina de Administración >> CA Activation,>>> Make off-line  en la caja seleccionamos Off para la caja de monitoreo cercana a  ExampleTempAdminCA. y le damos a aplicar >> Apply .

ademas de Revocar el certificado anterior, para la configuración inicial como lo hacemos??

Ahí vamos en la configuración de panel >>  Administration >> Search/Edit End Entities .Vamos a buscar las entidades con un estatus generado, en el checkbox cercano a superadmin y Tomcat las entidades , le damos click a Revoke and Delete(revocar y eliminar )  

**Esta ultima configuración la vamos a hacer para entornos de producción mas exigentes


Todavía no tenemos el servicio 100% habilitado, ahora vamos a configurar el cola de procesos para publicar, en caso de que el certificado y las CRL's  fallen por lo menos cuando consigamos resolver esos errores siga el proceso de emisión..

Vamos a >> Administration >>>; Edit Services . En >>Publis Queue Process Service  y lo agregamos con el botón de >> "Add"  y con el servicio creado lo vamos a editar con la siguiente información :


Select Worker: Publish Queue Process Service
Select Interval: Periodical Interval
Period: 1 minutes
Select Action: No Action
Active: On
Pin to Specific Node(s): ca.cyttek.com
Description: Publish certificates and CRL's from the publisher queue.


Y para terminar como todo le damos al botón Guardar


Charlyyyy no siento los botones del Ratón.. no te preocupes que vamos a automatizar un poco esto..

Configurando el Actualizador de la CRL se encargara  de cuando la CRL se expire pueda ser regenerada periódicamente   Todavía no me voy a meter en la publicación de la CRL por que debemos de configurar la correctamente, Entonces en la pagina de >> Administration >>> Edit Services >>. CRL Updater y en le damos al botón >> Add . luego con este servicio creado lo vamos a configurar con unos ajustes:

Select Worker: CRL Updater
CAs to Check: Cyttek Root CA, Cyttek-Bl4ckD4wn CA, cyttek Server CA
Select Interval: Periodical Interval
Period: 5 minutes
Select Action: No Action
Active: On
Pin to Specific Node(s): ca.cyttek.com
Description: Updates the CRL's if necessary. Checks are made every 5 minutes.


Luego después de guardar esta ultima configuración terminamos con nuestro ajuste y configuración de EJBCA nuestra PKI calvin klein por este capitulo



Saludos

Bl4ckD4wn

1/13/2013

HoneyDark Opensource

En que consiste este HoneyDark bueno básicamente necesitaba una red donde poder recolectar info , analizarla y correr trabajos predefinidos donde se analicen algunos patrones, (lo podéis usar para análisis de ataques malware, virus,gusanos etc.. ) y la idea me vino de la DarkNet de Chile . Pero me apetecía darle un enfoque mas practico y adelantando un poco lo que les faltaba de implementar honeypots y trabajar con mas trafico y identificar a quien están atacando  ,

Es una red diseñada para poder inicialmente soportar un trafico de 9 a 10GB ( en el caso de mi DC la tengo cableado con fibra ) poder detectar y procesar incidentes en ese trafico, analizarlo  y reportar diferentes eventos y analizarlos.

En que consiste la idea que se me paso para resolver unas cosas.... :) ( y el esqueleto de la red que les voy  a pasar )


Algunos requisitos:
1) En que consiste bueno necesitamos que cualquier trafico entre a la red pero que no salga nada,
2) Necesitamos almacenar el trafico
3) Necesitamos procesarlo 
4) Necesitamos buscar eventos de seguridad generados por ese trafico.
5) Que sea esclable, y que soporte cualquier cantidad de trafico desde donde venga 
6) Evidenciarlo
7) Reportarlo

Entonces en el archivo lo podrán descargar la estructura básica de la red, no es el que tengo para producción pero algo con las ideas que les voy a dejar seguro que algunos lo pillan por donde van los tiros.

Entonces Con:
El pfsense ya le instale  Cron's, Tcpdump, Snort, countryblocker, ntop
En el Server (ubuntu) tenemos NOVA , etherape, Moncube, AfterGlow
OSSIM no creo que necesite presentación.
El servidor de evidencias es simplemente recolectar información de las tools y procesarla

La idea inicial es simple de conceptualizar no tiene ninguna complicación, entonces entremos al detalle de como esa la versión beta que :

___________________________________________________________________________
Servidor Pfsense:
IP:192.168.3.51
user : admin
Pass : 1q2w3e

Mediante el TCPdump podemos capturar el trafico que queramos y almacenarlo donde necesitemos.
El Cron nos ayudara a automatizar unas tareas, 
Contryblocker como dice el nombre nos permite bloquear por país el Trafico que queremos que NO entre a la red  (lo podríamos hacer por IP pero por tiempo es mejor tener una app que te maneje eso para casos que posiblemente tenga a futuro de revisión en tiempo real)
y el Ntop podemos adquirir muy buena información de trafico bien detallada..
El Pfflowd nos ayudara para generar los Netflows y reportarlos al Ossim. 
Las reglas que cada uno ponga en el firewall ya es vuestra Configuración.
Ojo la interfaz WAN del Pfsense deben cambiar la IP ;)

HoneyDark::
IP:192.168.3.53
user: HoneyDark
pass: 1q2w3e

En el Servidor llamado "HoneyDark" para correr NOVA simpelmente en la termial tipear "$ quasar" y listo en https://localhost:8080 se encontrara NOVA ,
 Etherape, es mas simple desde la terminal tipear "etherape" y listo

Con Nova el cual nos permiten generar una red de honeypots mediante el haystack de nova y mediante las otra herramientas no solo monitorizamos lo que llega a nuestro server sino a todas las conexiones peticiones y trafico de nuestra red de honeypots con la configuración que le queramos dar dentro de la interfaz grafica Web

OSSIM 4.1:
Datos de acceso a la interfaz Web.
IP:192.168.3.50
user: admin
Pass: 1q2w3e


Bueno como dije no creo que necesite presentación pero para esta red, yo personalmente lo usare por la parte de recolleción de logs, OCS, OSSEC  para poder monitorizar al detalle los eventos y si algún tipo de trafico que entre a la red, puede llegar a instalar algún archivo o instalar algún rootkit etc..

Evidencias:

IP:192.168.3.52
user: evidencias
pass: 1q2w3e

En este Debian cuentan con un servidor SSH y Los aplicativos instalados en /opt Moncube y Afterglow
 le pueden mandar los Pcaps del TCpdump del Pfsense o los Pcaps del  Ossim, para que los grafique bien bonito..

La Red de la Darknet se llama "NetProperties" >> 192.168.3.0/24
_________________________________________________________________________________

Los aplicativos ya están instalados y listo para poder usarse en sus ultimas versiones , simplemente en cada aplicativo se debe ajustar a tus requerimientos de producción pero el esqueleto lo dejo ya para descarga.. (ojo asumo por falta de tiempo conocimientos en uso de las diferentes herramientas.. es por eso que no me alargo con sus instalaciones y configuraciones)
Me gustaría haber tenido un poco mas de tiempo, para poder documentar cada procedimiento, pero hacer un documental de 100 hojas todavía no estoy tan loco.. así que si te animas solo escríbeme un correo o un twitt  y te echo una mano.

La idea de esta red en forma de agujero negro, es que cualquier trafico que se enrute hacia el pfsense entre dentro de la red, y mediante las diferentes herramientas poder extraerlo , analizarlo y reportar el todo tipo de eventos, sin importar la magnitud de conexiones ni trafico.

Otra cosa lo tengo echo en un Datacenter en Vmware vCloud 5.1 así que todavía estoy trabajando para bajarle los requisitos ..

Luego la que versión que les dejo para descargar  sigo adelantando; corrigiendo la automatización y la capacidad de escalabilidad y procesamiento de trafico masivo.., el cual la red me esta quedando así multiplico por mas de 10 la capacidad de poder soportar trafico almacenarlo, pintarlo con las gráficas bonitas, generar  honeypots, almacenar sus logs, y otras funciones que quiera con trabajos pre echos en Mapreduce.
Básicamente se rutea en esta red desde la ip publica del exterior hacia el pfsense el pfsense rutea el trafico hacia un honeypot especifico de la plantilla del haystack luego el ossim hace otro trabajo con los netflows, y el nova colecciona todo el ataque aparte de la redundancia del Tcpdump en el pfsense , luego todo lo mando para una partición montada de hadoop le añado los Slave que quiera al master y corro los trabajos finales eliminan la data tal cual encontraran en el PDF de la Darknet de chile , pero desde NOVA y pfsense y ossim puedo tener un control mucho mas especifico de a que supuesto cliente le están atacando mediante alias pre definidos y como le están atacando su frecuencia y otras cosas que quiera ver..

No se si sera mejor o peor pero es un acercamiento que el de Chile pero es diferente para poder solucionar el problema de los análisis de ataques masivos,  pero fue interesante montarla como pasatiempo..



Así que si eres un Cert, Csirt, Banco o ISP ya pueden usarlo para que dejen de tocarse las #$%#&"  y empezar a analizar trafico  y intercambiaros incidentes y no delegar todo a las redes inteligentes esas de los antivirus.. :)
(ojo para entornos de producción el BETA que les dejo no esta diseñado  para poder soportar cargas masivas analizar mas de 10G de trafico en una futura versión posiblemente haga el release de producción que soporta cualquier trafico y colección mediante HDFS)

Saludos

Bl4ckD4wn

PD.El link de Descarga de la HoneyDark es: HoneyDark

1/12/2013

Cumpliendo el criptograma de shannon por partida doble

Bueno para que luego digan que los Valencianos no podemos hacer cosas chulas,acaso no les basto con el post anterior de infraestructura de clave publica , ahora viene otro valenciano y monta una patente..

Según la explicación corta de la patente dice lo siguiente:

Inventor/es: MARTINEZ SANCHO, Vicent (ES);





Resumen: Una invención en el ámbito de la sociedad de la información para dotar una inaccesibilidad de los datos y de información frente a personas no autorizadas para proteger la privacidad en la transmisión electrónica de datos e información mediante un procedimiento de criptografía para un cifrado fiable, rápido y seguro de amplia aplicación industrial ( sectores privados y públicos de las telecomunicaciones, informática, Defensa nacional, programas de ordenador, transacciones de pagos electrónicos y operaciones bancarias, criptografía de obras musicales y audiovisuales, y firmas y certificados digitales ) mediante el empleo de medios técnicos por orden secuencial y sucesivo de: 1º.Una matriz alfanumérica, 2º. una matriz base de residuos numéricos, 3º. una clave de equivalencias, 4º. una tabla de equivalencias, 5º. un criptograma reducido de residuos o plantilla, 6º.una clave de protocolo, 7º. un algoritmo de codificación, 8º. un criptograma final de residuos y 9º. un algoritmo de decodificación.

Ok, vamos a explicar un poco en que consiste esta patente y en que se diferencia o basa la patente para asegurar que puede ser mas robusto que AES, DES o 3DES entre otros sistemas de cifrado.

Inicialmente es un sistema de cifrado simétrico la criptografía de residuos del Señor Vicent Martinez,
el cual se usan 2 tipos de claves una clave de Equivalencias y otra clave de protocolo (según la nomenglatura dentro de la patente).

Bueno pues el Sr Vicent para su publicación se basa en la teoría de shannon el cual se puede decir que la criptografía moderna se inició después de tres hechos: el primero fue la publicación de la "Teoría de la Información" por Shannon; el segundo, la aparición del estándar del sistema de cifrado DES (Data Encryption Standard) en 1974 y finalmente con la aparición del estudio realizado por Whitfield Diffie y Martin Hellman sobre la aplicación de funciones matemáticas de un solo sentido a un modelo de cifrado, denominado cifrado de llave pública en 1976.

Entonces como ya sabemos existen 2 big brothers en las familias de cifrados  cifrado simétrico y cifrado asimétrico, Bueno pues este sistema se basa en que en sus procedimientos iniciales matriciales puede parir en una versatilidad casi inexpugnable.. (ahora explicamos que es)
Bueno Segun el Sr Vicent los sistemas actuales se basan en haber cumplido 2 condiciones de Claude shannon la Confusión ( a confusión la podemos entender como el proceso de sustituciones )  y Difusión (la podemos entender como el proceso tranposición) y en eso basan la seguridad actual.

OK de donde parte su idea de cumplir el criptograma seguro de shannon,  que la parte del texto cifrado Tenga una entropia de 0. Entonces vamos a detallar como el cifrado de residuos cumple a diferencia de otros cifrados famosos como AES y DES en las bases de seguridad de Shannon, entonces este sistema de cifrado cumple con la teoría por que aplica los principios Difusión, Confusión y Trasformación  . Entonces como Bien dice el Sr Vicent para este doble cumplimiento usa los siguientes procedimientos

1º. Una matriz alfanumérica, 
2º. Una matriz base de residuos numéricos, 
3º. Una clave de equivalencias, 
4º. Una tabla de equivalencias, 
5º. Un criptograma reducido de residuos o plantilla, 
6º. Una clave de protocolo, 
7º. Un algoritmo de codificación, 
8º. Un criptograma final de residuos 
9º. Un algoritmo de decodificación.


1º. Una matriz alfanumérica

Basicamente esta matriz se basa en crear una matrix de "X" por "X"  en el cual los caracteres alfanumericos esten definidos en un espectro limitado por el limite que se entiende entre las partes de la comunicación
Algo asi como si solo entendemos numeros y letras entonces la matriz  lo interesante de esta matriz es que permite la inserccion de caracteres en blanco en espacios limitantes a las filas finales o espacios prediseñados con los caracteres que necesitemos para la conversión entre las partes.

2º. Una matriz base de residuos numéricos

La segunda fase de basa en una creación de una matriz de residuos numericos de los cuales puede ser de "N" residuos pero la matrix debe de cumplir la regla de "X" ( Filas ) por "Y" (Columnas ), el cual N puede ser cualquier muestra finita de numero Reales que se deseen entre las partes de la conversación, obievmente cuando N tienda a un numero Real muy muy Grande podemos asegurar una mayor compeljidad matematica. (en nuestro caso la matriz sera cuadrada)
ejemplo N=3
       
11 12 13  1
21 22 23  2
31 32 33  3
 1   2    3


3º. Una clave de equivalencias, 

Basicamente esta clave actuara sobra la matriz de residuos  numeros reordenando  los residuos 
Entonces nuestra clave elejida con una complejidad Conjunto Finito ={a1,a2,a3.....aN} el cual el conjunto sea par  actuara dentro de la matriz como un permutador de filas entre las filas designadas dentro de la clave , Algo como cuando en la universidad haciamos calculo vectorial :P

Ejemplo de clave:
2,3,4,5,6,7,33,66,

Entonces separamos los grupos

Primer grupo {2,3}
Segundo grupo {4,5}
Tercer grupo {6,7}
Cuarto grupo {33,66}

Si contasemos con esas filas simplemente las desplazariamos entre si.

Que pasa con esta seguridad que si nos damos cuenta con una matriz de N con residuos de agrupaciones de 3 tendriamos  N elevado a los 3 elementos, que significa que existirian
N^3=B  entonces existirian B! ( "B" factorial cantidad  de residuos ) que significa que se empiez a poner chungo el numero de cantidad de matrices de residuos que podemos tener ..comparado con otros sistemas de cifrado se empieza a complicar.


4º. Una tabla de equivalencias


Mediante una regla pactada entre las partes se usa una equivalencia entre las matrices  de residuos numericos y la alfanumerica, teniendo en cuenta solamente una regla que no exista ninguna equilateralididad entre las mismas ( que no se repitan numeros joder)..
Conexiones del tipo :
Matriz A11 <-> Matriz B4,3
Matriz A0,5 <-> Matriz B2,2
etc..etc..etc.
Se pactan conexiones entre las matrices A y B y sus correspondientes filas columnas.


5º. Un criptograma reducido de residuos o plantilla

 En el quinto paso se toman el mensaje entre el emisor y el receptor y te asocian a las letras a las ternas permutadas de la matriz de residuos , algo como el cifrado por asociación

Ejemplo :
Pepe ven a comer 

P=23 e=44 p=11 e=64  =55  v=92   e=25  n=14  =57 a=9   =37  c=13 o=26 m=43 e=41 r=39

Para este caso estamos tomando que nuestra matriz numerica del 2 paso fuese mas grande , Ojo tambine se cuentan los espacios Vacios y de pueden otorgar difenes valores}:)


6º. Una clave de protocolo

La clave pactada entre las partes (excluyendo el numero 0) de  para esta fase de codificación tendra una función de actuación ciclica entre la calve B={a1,a2,a3,....aN}y la matriz {MxN} el cual  segun el ejemplo


Lo interesante es que se puede reiniciar la secuencia de la clave que se pacta usar tantas veces queramos si la secuencia elegida no es lo sificiente mente grandes como Campos en la matriz, entonces esto se vuelve como una cantidad indigente de posibilidades de cifrado .


7º. Un algoritmo de codificación

Pero se usa los indices del protocolo utilizados anteriormente para poder identificar si su valor es menor o igual a 3 o mayo a 3 para poder aplicar la formula que se ve en la siguiente imagen
  
En la cual si  el numero del protocolo usado anteriormente es menor o igual a 3 generara un numero aleatorio entre 1 y 9 llamado "A" y remplazara R por el residuo natural y J el indice del protocolo en el caso que el indice del protocolo llamado J sea igual o mayor a 4 el programa debera generar:

 
un numero entre 1 y (j-2) , luego en las operaciones para poder definir un numero estable para "J" se ejecutan basadas en la

8º. Un criptograma final de residuos


Al final después de todo este procedimiento sobre los datos en formato que necesitamos terminamos con el Sistema de cifrado por residuos, cumpliendo por partida doble el criptograma de shannon, haciendo uso de los tres método de cifrados y asegurando la seguridad entre la comunicación entre el usuario A y el usuario B .


La observación que veo reside en que se toma como asumido que la Función RGN que le dará el Sistema dentro del Paso 7 va a ser completamente aleatoria el cual hubiese detallado mejor como psealeatoria , sabiendo que es difícil encontrar algo aleatorio dentro de esas funciones llamas directamente en seco al método. y deja demasiadas variables entre los entes de la comunicación , me parece para una aplicación especifica que las partes sean entendidas, puede ser pero para una seguridad en producción masiva no lo veo claro.

Pero mola mazo que la patente sea Valenciana!...

P.D que mas podemos pedir,patentes criptograficas,  La mejor paella , todo tipo de apoyo a deportes, aaaah si políticos que no sean corruptos 

Saludos 
Bl4ck_D4wn