EN CONSTRUCCIÓN

Bienvenid@

En este blog podras encontrar apuntes, libros, software, codigo fuente, y mucho más...

Programacion en JAVA

Ejemplos y Codigo Fuente |POO | Estructura de Datos| Topicos Avanzados de Programación|

Libros en PDF Gratis

Libros de Programación, Algebra, Cálculo, Base de datos, Fisica, y más...

Software

Programas útiles en la carrera de ISC

Aplicaciones Android

Aplicaciones para PC, Celulares y Tablets.

miércoles, 21 de marzo de 2012

Encriptaciòn

Diapositiva 2

¿Que es Encriptación?
La encriptación es básicamente transformar datos en  alguna  forma  que  no  sea  legible  sin el conocimiento  de  la clave o algoritmo adecuado. El  propósito  de  esta  es  mantener  oculta la información que consideramos privada a cualquier persona o sistema que no tenga permitido  verla.

La  encriptación  en  general requiere el uso de información   secreta  para su funcionamiento la  cual  es  llamada  "llave". Algunos  sistemas de encriptación   utilizan   la  misma  llave  para codificar   y   descodificar  los  datos,  otros  utilizan llaves diferentes.
La  técnica de encriptación a aplicar se basa en la  complejidad  de la información a ocultar, es decir, entre  más compleja.

Tipos de Encriptación:
  
Encriptación mediante claves simétricas: son las funciones más clásicas, es decir, se utiliza una determinada clave en la transformación de la información encriptada para conseguir desencriptarla, el problema reside en la necesidad de que todas las partes conozcan la clave. 

Encriptación mediante claves asimétricas o públicas: existen también sistemas asimétricos de cifrado o de clave pública, cada usuario dispone de dos claves, una pública, que debe revelar o publicar para que los demás puedan comunicarse con él, y una privada que debe mantener en secreto..

Encriptación mediante firma digital: Dado un mensaje, basta calcular su huella digital y cifrarla con la clave secreta del remitente para obtener simultáneamente la seguridad de que el contenido no se manipula (integridad), y de que el firmante es quien dice ser autenticación). 


Existen muchos tipos de encriptación, que por el momento solamente mencionaremos su nombre.

       Substitution
       Caesar Chipre
       Monoalphabetic Substitutions
       Gronsfeld
       RSA
       DES
       Chaffing & Winnowing 
       SKIPJACK
       BÍFIDO
       WLBYKYAAOTB
       Cifrado exponencial
        Blowfish



       EncryptionString

       Consiste en tomar un mensaje y una clave de usuario, después sigue la combinación de estos y se produce una cadena modificada.

       Texto a codificar:         ENCRYPTION
       Caracteres del Texto:      E   N   C   R   Y   P   T   I   O   NCódigos ASCII:   69  78  67  82  89  80  84  73  79  78
       Contraseña KEY:            K   E   Y   K   E   Y   K   E   Y   K
       Caracteres de KEY:         75  69  89  75  69  89  75  69  89  75
       Suma de Códigos ASCII:     144 147 156 157 158 169 159 142 168 153
       En caracteres:             �   “   œ   �   ?   ©   Ÿ   ?   ¨   ™
       Texto codificado:          �“œ�?©Ÿ?¨™

Transposition

En este método los mismos caracteres que son usados para la creación del mensaje, son también usados para  la encriptación.




miércoles, 7 de marzo de 2012

Seguridad

Las 10 Leyes Inmutables de la Seguridad
La gente del área de seguridad en Microsoft tiene un decálogo que llaman: las 10 leyes inmutables de la seguridad, que es el resultado de años de atención a sus clientes con todo tipo de problemáticas. Si bien el adjetivo “inmutables” suena pretencioso, pues nada es definitivo cuando se habla de seguridad informática, estos diez puntos son una guía estupenda para ser más conscientes al respecto. Mi recomendación es que los imprimas –en papel reciclando, por supuesto– y los pegues al lado de tu computadora para darles un repaso de cuando en cuando, como un pequeño Zen; tal vez un día te conviertas en un experto –un buen hacker, por qué no– que cree su propio decálogo y lo comparta con los demás. Sin más preámbulo, aquí los tienes:
Ley #1. Si un maloso puede persuadirte de ejecutar su programa en tu computadora, ya no es más tu computadora.
Ley #2. Si un maloso puede alterar el sistema operativo de tu computadora, ya no es más tu computadora.
Ley #3. Si un maloso tienes acceso físico sin restricciones a tu computadora, ya no es más tu computadora.
Ley #4. Si permites que un maloso suba programas a tu sitio web, ya no es más tu sitio web.
Ley #5. Las contraseñas débiles triunfan sobre la seguridad fuerte.
Ley #6. Una computadora es tan segura como digno de confianza sea su administrador.
Ley #7. Los datos cifrados son tan seguros como la llave que los descifra.
Ley #8. Un antivirus desactualizado es apenas mejor que no tener antivirus.
Ley #9. El anonimato absoluto no existe, ni en la vida real ni en la red.
Ley #10. La tecnología no es la solución a todas las cosas.
Conceptos Básicos de Seguridad
Seguridad: Sector de la informática cuya función es establecer medidas de protección y/o seguridad para garantizar el correcto funcionamiento de un sistema informático.
Whackers: expertos especializados. Se mueven por dinero y fama. Provocan daños al sistema.
Crackers: expertos especializados. Se mueven por fama y satisfacción personal. Causan daño.
Crashers: Inhabilitan el sistema, tienen conocimientos informáticos, les mueve el dinero o el aprendizaje. Causan daño.
Lamer: Conocimientos informáticos nulos. Sus intereses son la fama, la experiencia y la satisfación personal. Causan daños.
Phreakers: tienen amplios conocimientos informáticos y se mueven por dinero.
Script kiddies: Muy similares a los lamer.
Newbies: Tienen conocimientos informáticos básicos. Su motivación es aprender. No causan daño.
Cifrado. Evita que la información viaje sin protección (en texto plano) a través de la red.
El software anti-malware. Programa que detecta, bloquea y elimina programas maliciosos para la seguridad del sistema.
Los cortafuegos. Sirve para bloquear el trafico entrante en la red que pueda ser peligroso.   
Spoofing. Hace referencia al uso de técnicas de suplantación de identidad generalmente con usos maliciosos o de investigación.
Se pueden clasificar los ataques de spoofing, en función de la tecnología utilizada. Entre ellos tenemos el IP spoofing (quizás el más conocido), ARP spoofing, DNS spoofing, Web spoofing o email spoofing, aunque en general se puede englobar dentro de spoofing cualquier tecnología de red susceptible de sufrir suplantaciones de identidad.
Pishing. Es un término informático que denomina un tipo de delito encuadrado dentro del ámbito de las estafas cibernéticas, y que se comete mediante el uso de un tipo de ingeniería social caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o información detallada sobre tarjetas de crédito u otra información bancaria). El estafador, conocido como phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico, o algún sistema de mensajería instantánea o incluso utilizando también llamadas telefónicas.
Troyano: se caracteriza por engañar a los usuarios disfrazándose de programas o archivos legítimos/benignos
Virus: es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario.
Worms: Estos malwares son tan dañinos que son capaces de hacer caer cientos de páginas Web y servidores Web muy potentes.
Vulnerabilidad: Probabilidad de que una amenaza se materialice contra un activo.

Las medidas de seguridad en la protección de datos de carácter personal.

Todas las empresas, independientemente de su tamaño, organización y volumen de negocio, son conscientes de la importancia de tener implantadas una serie de políticas de Seguridad tendentes a garantizar la continuidad de su negocio en el caso de que se produzcan incidencias, fallos, actuaciones malintencionadas por parte de terceros, pérdidas accidentales o desastres que afecten a los datos e informaciones que son almacenados y tratados, ya sea a través de sistemas informáticos como en otro tipo de soportes, como el papel.
MEDIDAS DE SEGURIDAD BÁSICO MEDIO ALTO

Identificación y Autenticación:
1.- Existencia de una lista actualizada de usuarios autorizados que tengan acceso autorizado al sistema de información (art.11.1 y 12.3).
2.- Procedimientos de identificación y autenticación informáticos:
a) Contraseñas: procedimiento de creación, asignación, conservación y cambio periódico (art.11.2 y 11.3).
b) Identificación de usuario, de manera inequívoca y personalizada
c) Limitación de acceso incorrecto reiterado
Control de Acceso:

1.- Los usuarios tendrán únicamente acceso a los datos/recursos de acuerdo a su puesto laboral y tareas definidas en el documento (art.12.1).
2.- Deberán implantarse mecanismos que eviten el acceso no autorizado a otros recursos: establecimiento de perfiles de usuario (art.12.2).
3.- Control de acceso físico a servidores y CPD (art.19).
4.- De cada acceso se guardarán: identificación usuario, fecha y hora, fichero accedido, tipo de acceso y su autorización o denegación, guardando la información que permita identificar registro accedido (art.24.2).
5.- Los mecanismos de acceso estarán bajo el control directo del Responsable de Seguridad, sin que pueda permitirse la desactivación (art.24.3).
6.- Registro y conservación de accesos lógicos al fichero por un plazo no inferior a 2 años (art.24.4).
7.- Para accesos a través de redes de telecomunicaciones, deberán tener las mismas medidas que para accesos en modo local (art.5).
Funciones y obligaciones del personal:

1.- Definición en el Documento de Seguridad de las funciones y obligaciones de grupos de usuarios y/o perfiles (art.9.1).
2.- Conocimiento por parte del personal de las normas y medidas de seguridad que les son aplicables (art.9.2).
3.- Identificación y funciones del/los Responsables de Seguridad (art.15 y 16).
4.- Trabajo fuera de ubicación principal debe ser expresamente autorizado (art.6).
5.- Listado de personal con acceso a Servidores y/o CPD (art.19).
6.- Listado de personal con privilegios administrativos informáticos sobre aplicaciones y ficheros (art.12.4).
Estructura de los Ficheros y del Sistema Informático:

1.- Descripción y estructura informática del Fichero (campos ID)
2.- Descripción y estructura del Sistema Informático (enumeración de equipos, redes, programas, etc...)
Gestión de Soportes:

1.- Identificación, inventariado y almacenamiento (art.13.1).
2.- Autorización necesaria para salida de soportes (art.13.2).
3.- Cifrado de soportes en caso de operaciones externas de mantenimiento (art.20.4).
4.- Medidas y procedimientos para la destrucción de soportes (art.20.3).
5.- Registro de Entrada de Soportes (art.20.1).
6.- Registro de Salida de Soportes (art.20.2).
7.- Distribución de soportes con mecanismos de cifrado de datos (art.26).
Ficheros Temporales:

Aplicación de mismo nivel de seguridad que fichero origen
Registro de Incidencias:

1.- Contenido mínimo: tipo de incidencia, momento en que se produce, efectos producidos, persona que comunica, medidas adoptadas (art.10).
2.- Contenido adicional: Procedimiento de restauración de datos, datos restaurados y datos grabados manualmente (art.21.1)
Procedimientos de Copias de Respaldo y Recuperación datos:

1.- Deberán garantizar la restauración de los datos al momento anterior a producirse la pérdida (art.14.2).
2.- Realización de copias de backup al menos con una frecuencia semanal (art.14.3).
3.- Necesaria autorización para la ejecución de procedimientos de restauración de datos (art.21.2).
4.- Almacenamiento externo de copias y procedimientos de restauración de datos (art.25).
Pruebas con datos reales:

Aplicación de mismas medidas según nivel de seguridad de los datos (art.22).
Actualización y Auditoria:

1.- Revisión y actualización del Documento de Seguridad en función de cambios relevantes en la Organización (art.8.3).
2.- Auditoria cada 2 años. Conservación de Informe a disposición AEPD
3.- Revisión periódica de la información de control de los accesos informáticos a ficheros y aplicaciones (art.24.5).
Medidas específicas para datos en soporte papel:

1.- Control de acceso a la documentación.
2.- Medidas de conservación y almacenamiento.
3.- Procedimientos y mecanismos de destrucción que impidan posterior recuperación de la información que contienen.

martes, 6 de marzo de 2012

Software del Servidor

Windows vs Linux


Diseño de Sistema Operativo Windows


La arquitectura de Windows es altamente modular y se basa en dos capas principales:
  • Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso.
  • Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:
  1. Un núcleo híbrido.
  2. Una Capa de Abstracción de Hardware (HAL).
  3. Controladores o drivers.
  4. Executive: Sobre el cual son implementados todos los servicios de alto nivel.

Modo Usuario

El modo usuario está formado por subsistemas que pueden pasar peticiones de E/S a los controladores apropiados del modo núcleo a través del gestor de E/S (que se encuentra en el modo núcleo). Dos subsistemas forman la capa del modo usuario de Windows 2000: el subsistema de Entorno y el subsistema Integral.

Modo núcleo

El modo núcleo de Windows 2000 tiene un acceso completo al hardware y a los recursos del sistema de la computadora y ejecuta su código en un área de memoria protegida. Controla el acceso a la planificación, priorización de hilos, gestión de memoria y la interacción con el hardware. El modo núcleo impide que los servicios y las aplicaciones del modo usuario accedan a áreas críticas del sistema operativo a las que no deberían tener acceso. En lugar de ello, deben pedir al núcleo que realice esas operaciones en su nombre.

Executive

El Executive se relaciona con todos los subsistemas del modo usuario. Se encarga de la Entrada/Salida, la gestión de objetos, la seguridad y la gestión de procesos. Está dividido informalmente en varios subsistemas, entre los que se encuentran el Gestor de Caché, el Gestor de Configuración, el Gestor de Entrada/Salida, las Llamadas a Procedimientos Locales, el Gestor de Memoria, el Gestor de Objetos, la Estructura de Procesos, y el Monitor de Referencias de Seguridad. Todos juntos, los componentes pueden ser llamados Servicios Executive (nombre interno Ex).

Núcleo

El núcleo del sistema operativo se encuentra entre el HAL y el Executive y proporciona sincronización multiprocesador, hilos y envío y planificación de interrupciones, gestión de interrupciones y envío de excepciones. También es responsable de la inicialización de controladores de dispositivos que son necesarios en el arranque para mantener el sistema operativo funcionando. Esto es, el núcleo realiza casi todas las tareas de un micronúcleo tradicional.

Controladores del modo Núcleo

Windows 2000 utiliza cada controlador de dispositivo del modo núcleo para permitirle interactuar con los dispositivos hardware. Cada uno de los controladores tiene rutinas de sistema bien definidas y rutinas internas que exporta al resto de sistemas operativos. Todos los dispositivos son vistos por el modo usuario como un objeto archivo en el gestor de Entrada/Salida. A través del propio gestor de E/S, los dispositivos son vistos como objetos de dispositivo, que él define tanto como objetos archivo, dispositivo o drive.

Capa de Abstracción Hardware

La Capa de Abstracción de Hardware, o HAL (en inglés Hardware Abstraction Layer), es una capa que se encuentra entre el hardware físico de la computadora y el resto del sistema operativo. Fue diseñado para ocultar las diferencias de hardware y por tanto proporciona una plataforma consistente en la cual se puedan ejecutar las aplicaciones. 

Diseño de Sistema Operativo Linux 



Arquitectura 
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones.

Jerarquía de directorios

En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. de los directorios que constituyen todo el sistema.

  • Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
  • Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
  • Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
  • Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)

Kernel panic
En Linux, un panic es un error casi siempre insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario. Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico situada en el archivo header sys/system.h. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas.

Lenguajes de programación

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux.

 


 

lunes, 5 de marzo de 2012

Hardware de Servidor

Elementos o Caracterististicas de un servidor.

Las principales características de un servidor son: 

Procesador: Se elegirá si se usara un Intel o AMD. Un solo núcleo, doble núcleo, 4 núcleos, etc. Normalmente para servidores se llegan a utilizar los Intel Xeon, o los AMD Opteron.

Memoria RAM: Esta llega a ser muy importante, ya que al manejar gran cantidad de datos, es conveniente no quedarnos con poca RAM. Una vez agotada la RAM se empieza a utilizar memoria virtual (o swap), la cual ralentiza los procesos. Lo recomendable son 2GB o más.

 
Disco Duro: Con una buena capacidad de almacenamiento, unos 100GB mínimo. La velocidad (RPM) y la marca del disco duro también es muy importante. Preferentemente SATA.

Velocidad del Internet: En caso de usarse como servidor web, se necesita una velocidad de subida y bajada buena.

Sistema operativo: Hablando en términos de software, también se tiene que decidir que sistema operativo llevara. Ya sea Linux o Windows Server, que son los más usados, dependiendo el ambiente de trabajo en donde se usara, la seguridad que sea necesaria, y el presupuesto con el que se cuenta.

Especificaciones de un hardware de servidor.

       Tamaños de partición mínimos