Buscar este blog

jueves, 23 de abril de 2020

Diseño 2

2. Creación de clases a partir de análisis

En el tema anterior vimos las pautas de seguir para descomponer un programa como una serie de clases que se relacionan entre sí. Sin embargo, para el programa de la agenda una descomposición en clases sería muy forzada debido a la poca complejidad del programa.

Pero se puede optar por separar la parte visual (aplicación principal) y la parte lógica (lista de personas) para reutilizar la mayor cantidad posible de código por si se creara otra versión del programa en el entorno gráfico o con otra interfaz. Para ello es posible crear una clase lista de personas que cargue y guarde datos permitiendo el acceso a ellos. Así los datos pasarían de se un struct a una clase con los mismos campos pero con métodos que permitieran obtener y fijar los valores de los campos al igual que simplificar la búsqueda.



Aquí os dejo un vídeo sobre como se podría hacer lo explicado anteriormente.

martes, 21 de abril de 2020

Diseño


1. Decisión de tarea a partir del análisis
Una vez analizados los requisitos que debe cumplir el programa, debemos decidir la estructura que llevará el programa. El programa propuesto de agenda de contactos es un programa simple y la estructura podría ser:
  •  Cada dato se almacena en un struct para guardar todos los datos deseados, los struct individuales se almacenarán en un vector
Las funciones del programa serían:
  • mostrar  menú: muestra las opciones disponibles conforme al prototipo ya realizado.
  • nuevaFicha: pide los datos de una nueva persona  y los añade a la lista.
  • verFichas: muestra la primera ficha y con las teclas se podrá elegir entre ver la ficha posterior, la interior, modificar la actual o borrarla.
  • modificar: pide los campos de la ficha, en los parámetros que se desee cambiar se volverá a escribir texto, sino basta con pulsar intro.
  • intentarBorrar: solicita confirmación para borrar datos, si el usuario la acepta se borrará.
  • buscarTexto: pide el texto que se desea buscar y muestra las fichas que lo contienen. Al mostrar la ficha resumen da la opción de mostrarla desarrollada, continuar consultando otras o volver al menú.
  • buscarCumpleMes: muestra fechas, nombres y apellidos de las personas que cumplen años en un cierto mes
  • guardar: vuelca todos los datos a fichero, reemplazando el contenido anterior de dicho fichero. Se debe llamar antes de salir del programa, para que los datos queden almacenados e. También es posible guardar los datos tras cada modificación.
  • cargar: lee todos los datos del fichero. Se llama automáticamente al comenzar el programa

lunes, 20 de abril de 2020

Análisis 3

5. Diagramas de casos de uso

El documento de especificación es probable que no sea comprensible para alguien sin conocimientos de programación. Por lo tanto, se elaboran diagramas que muestran los requisitos más importantes. Uno de los más importantes es el diagrama de datos de uso. En el, el sistema se presenta como un rectángulo y las acciones en un elipse utilizándose figuras para representar a las personas que pueden realizar las acciones e interactuar.

Por ejemplo, volvemos al ejemplo de la agenda, una versión mejorada incluiría al usuario normal que podría ver y manipular datos y al administrador que podría consultar y añadir datos además de cambiar la contraseña de acceso.

Os dejó un ejemplo de como sería el diagrama en un programa algo más complejo.



viernes, 17 de abril de 2020

Análisis 2

3. Refinamiento
En empresas de desarrollo de software suele existir la figura del analista, encargado de que el proceso de especificación sea lo más correcto. Sin embargo en empresas pequeñas esta figura no existe, y los programadores habituales no tienen tanta experiencia a la hora de identificar las necesidades del cliente. Por lo tanto una segunda lectura de la especificación ayuda a afinar los detalles. De manera que es cada vez más habitual repetir varias veces análisis- diseño-implementación-verificación, esto incluye varias reuniones para que los errores y carencias sean detectadas lo antes posible.
Veremos un ejemplo de como sería para el ejemplo propuesto en la entrada de análisis punto 1. En el podríamos detectar las siguientes carencias:
  • ¿ No se podrán consultar datos si no se hace la búsqueda?
  • ¿Qué datos de cada persona que cumpla años debe mostrarse?
  • ¿No será necesario modificar ni borrar datos?
  • ¿Los datos se guardaran automáticamente o se necesita una opción determinada?
  • ¿Las búsquedas deben distinguir entre mayúscula y minúscula?

4. Prototipos visuales
Consiste en la creación de maquetas de pantalla con las que se muestra al cliente una idea parecida de como va a ser el resultado. De esta manera se permite al usuario detectar si falta algún detalle, o error, si el vocabulario es el correcto,...

Veremos como sería para el ejemplo anterior: se podría crear el prototipo de la agenda de contactos, del menú, de visualizaciones de datos y de visualización de un resultado de la búsqueda.


Prototipos Visuales (Empresa) – Departamento de Crédito Y Cobranza


miércoles, 15 de abril de 2020

Análisis

Podemos definir el análisis como una de las etapas para crear un proyecto de software cuyo cometido es delimitar la función del programa.

1.Características del análisis de requisitos

Para crear un programa en un tiempo limitado y con unos costes limitados lo primero que se debe hacer es pensar que tareas debe realizar, este trabajo es más importante aun cuando el proyecto es para un cliente.
 Crear una lista con los requisitos que debe cumplir, favorece la orientación del trabajo y en ella se debe saber que tareas son más importantes y cuales no se deben hacer conociendo así cuando estará acabado.
Una vez estimado el tiempo y el presupuesto  las nuevas características que le cliente desee añadir se anotarán para una nueva versión posterior, lo que llevará volver a realizar los pasos anteriores.


2.Especificación

Es habitual elaborar un documento entre que recopile todos los requisitos que debe cumplir un programa. En ella es habitual distinguir entre los requisitos funcionales, lo que el programa hará y los requisitos técnicos, las limitaciones físicas.


Un ejemplo para un programa poco completo:
  •  Agenda de contactos que permita guardar datos de cada persona.
  •  De cada persona deberá almacenar el nombre, apellidos, fecha de nacimiento, domicilio, y correo electrónico siendo el único obligatorio el nombre
  •  Permitirá guardar grandes cantidades de datos.
  •  Los datos se deben guardar en un fichero para disponer de ellos siempre que se desee.
  •  Permitirá guardar datos a partir de cualquier palabra.
  •  Buscará las personas que cumplan años en los próximos 30 días
  •  Deberá haberse programado en html.




lunes, 10 de febrero de 2020

Lenguajes, compiladores e intérpretes

1. Lenguajes de bajo nivel y de alto nivel

Un programa es una secuencia de instrucciones para un ordenador. Un lenguaje de programación se conoce como algoritmo o secuencia de pasos para resolver un problema. Existen dos tipos de lenguaje:
  • Bajo nivel: parecido al código máquina (ceros y unos), difícil de entender.
  • Alto nivel: lenguaje parecido al de los humanos, fácil de entrender.
2. Complicadores e intérpretes

Los compiladores son las herramientas encargadas de convertir nuestro programa escrito en lenguaje de alto nivel (progrma fuerte) a código máquina, a través de lo cual se obtiene un programa ejecutable.
El intérprete es otro tipo de traductor, pero estos no crean ningún programa ejecutable capaz de funcionar por sí mismo.
Por lo tanto, un progrma interpretado comenzará a funcionar antes que un programa compilado, pues no es necesario traducir todo el progrma para empezar, pero será más lento en los programas de cálculo intensico ( porque cada orden se tiene que traducir tantas veces como se ejecute.

3. Pseudónimo

A pesar de que los lenguajes de alto nivel se asemejan al lenguaje natural que los seres humanos empleamos para hablar, es habitual no usar ningún lenguaje de progrmación  concreto cuando queremos plantear únicamente los pasos necesarios para resolver un problema, sino emplear un lenguaje de programación ficitico en muchos casos escrito incluso en lengua castellana. Este lenguaje recibe el nombre de pseudónimo.
Ejemplos:  PEDIR número 1
PEDIR número 2
Si número 2 es <> 0
ESCRIBIR "su división es", número1/número2
SI NO
ESCRIBIR "no se puede dividir entre 0"


 

martes, 4 de febrero de 2020

Esquema resumen unidad 4



1. La seguridad de la información
  • confidencialidad  
  • integridad 
  • disponibilidad
  • autentificación
  • autorización
  • cifrado
  • no repudio
  • vulnerabilidad
  • seguridad de la información
2. Amenazas a la seguridad
  • Amenazas humanas:
    • Ataques pasivos: usuarios con conocimientos básicos y hackers
    • Ataques activos: antiguos empleados de una organización y crackers y otros atacantes.
  • Amenazas lógicas
    • software maliciosos
    • vulnerabilidad del software
  •  Amenazas físicas
    • fallos en los dispositivos
    • accidentes
    • catástrofes naturales
  • Conductas de seguridad
    • Seguridad activa: control de acceso, encriptación, software de seguridad informática, firmas y certificados digitales y protoclos seguros.
    • Seguridad pasiva: herramientas de limpieza, copias de seguridad, sistemas de alimentación ininterrumpida, dispositivos NAS y sistemas redundantes.
3. Malware (no definición)
  • Tipos de malware: virus, gusano, troyano, spyware, adware, ransomware, rogue y rootkit.
  • Otros tipos: phising, pharming, spam y hoax
4. Ataques a los sistemas informativos
  • Tipos de ataques: interrupción, intercepción, modificación y suplantación o fabricación.
  • Ingeniería social
  • Ataques remotos: inyección de código, escaneo de puertos, denegación de servicios, escuchas de red, spoofing, fuerza bruta y elevación de privilegios.
 5. Protección contra el malware
  • Políticas de seguridad
  • Concepto antivirus
6. Cifrado de la información
  • Criptografía, criptología, criptoanálisis 
  • Tipos de criptografía: simétrica, asimétrica y pública
7. Firma electrónica y certificado digital 
  • Firma electrónica
  • Certificado digital
  • Autoridades de certificación
8. Navegación segura
  • Buenas práticas de navegación: configurar el navegarod adecuadamente, no acceder a sitios de web de dudosa reputación, acepta únicamente los cookies deseadas, proteger datos personales, descargar aplicaciones de sitios web oficiales, revisar el correo electrónico y actualizar el sistema operativo. ( no definiciones )
  • Navegación privada
  • Navegación anónima
  • Navegación proxy
9. Privacidad de la información
  • Amenazas a la privacidad: sistemas operativos, contraseñas, registros de visitas web, sesiones del navegador, cookies, formularios, redes sociales, y google.( no definiciones)
  • Antiespías  
10. Protección de las ocnexiones en red
  • Cortafuegos
  • Red privada virtuales VPN
  • Certificado SSL/TLS de servicios web y HTTPS

domingo, 2 de febrero de 2020

Seguridad de las comunicaciones inalámbricas

Las redes inalámbricas son redes que comparten información sin necesitar ningún tipo de cable. Los dispositivos más utilizados para conectarse inalámbricamente son bluetooth y wifi.

1. Seguridad de Bluetooth

Es la especificación que define un estándar global de ocmunicaciones inalámbricas para redes de área personal y que permite la transmición de voz y de datos entre diferentes equipos por medio de un enlace radiofrecuencia en entornos de comunicación móviles. Tiene un alcance de unos 10 metros.
Ataques que se pueden realizar a través de Bluetooth son:
  •  Bluejacking. Consiste ne el envío de spam al usuario por medio de intercambio de una vCard, de una nota o de un contacto en cuyo nombre aparezca el mensaje spam.
  • Bluesnarfing. Aprovecha la vulnerabilidad del protocolo para sustraer información del dispositivo atacado.
  • Bluebugging. Utiliza técnicas de ingeniería social para que las víctimas acepte una conexión inicial para infectar el dispositivo con malware de control remoto. A partir de entonces, el usuario dispondrá de acceso remoto al teléfono.
2. Seguridad de redes Wifi

Las redes wifi utilizan una tecnología inalámbrica que realiza la conexión entre dispositivos situados en un área relativamente pequeña, como una habitación una oficina, una casa o un edificio, a través de ondas electromágneticas. La señal suele tener un alcande de incluso 100 metros.
Algunas medidas para mantener una red Wifi segura son las siguientes:
  • Personalizar la ocntraseña de acesso. Las contraseñas por defecto suelen ser muy vulnerables.
  • Cambiar el SSID. Este es el identificador con el que se etiqueta la red. La mayoría vienen configurados de fábrica algo que es recomendable cambiar.
  • Revisar el cifrado. La señal inalámbrica es interceptada mas fácilmente que la cableada por lo que es necesario utilizar estándares de cifrado como WPA2.
  • Desactivar el acceso por WPS.  Gran parte del malware basa sus ataques en el acceso WPS.
  • Filtrar las Mac. Al configurar la autentificación por Mac, es posible añadir los dispositivos que pueden tener acceso a la red
  • Actualizar el firmware. El firmware es el software que controla los dispositivos.
  • Comprobar el historial de actividad. La actividad puede desvelar información.
  • Utilizar software de auditoría. Herramientas diseñadas para evaluar la seguridad de una red.

viernes, 31 de enero de 2020

Protección de las conecciones web

1. Cortafuegos

Es un dispositivo hardware o software cuya finalidad es controlar la comunicación entre un equipo y la red, por lo que se ha convertido en una de las principales defensas contra ataques informáticos y en una pieza clave para bloqeuar la salida de información del ordenador a Internet.
Todos los mensajes que entran o salen por el cortafuegos son examinados para los que no cumplan los criterios de seguridad especificados son bloqueados para evitar los ataques intrusos, accesos no autorizados,...Para ello debemos configurar las reglas que filtran el tráfico por los puertos, aceptando o bloqueando los paquetes inspeccionados.
El cortafuegos se instala en el dispositivo que da acceso a internet, algunos sistemas operativos o antivirus suelen incluirlo.



Resultado de imagen de el cortafuegos controla las conexiones de la red local con internet 

2. Redes privadas virtuales

Son conexiones punto a punto a través de una red privada o pública insegura, como internet. Los clientes usan protocolo TSP/IP para realizar unaconexión con una red privada, y una vez que el servidor del VPN autentifica al usuario, se establece una conexión cifrada. Existen dos tipos:
  • VPN de acceso remoto: se utiliza para que los usuarios tengan acceso a un servidor de una red privada con la infraestructura proporcionada por una red pública. Es el caso de los usuarios que desean obtener una conexión segura desde lugares públicos (cafeterías, hoteles, bibliotecas, ...)
  • VPN de sitio a sitio: permite a las organizaciones conectar redes a través de Internet utilizando comunicaciones entre ellas. Algunos ejemplos osn la conexión entre oficinas, sucursales, empresas o Administración.

3. Certificados SSL/TLS de servidor web y HTTPS

HTTP + SSL = HTTPS

El SSL es un protocolo criptográfico desarrollado por Netscape hasta la versión 3.0, cuando fue estandarizado y pasó a denominarse TLS. No obstante, hoy en día el termino SSL esta muy extendido, por lo que se suele eludir a ambos indistintamente.
Cuando se utilizan el cifrado basado en SSL/TLS junto al protocolo de navegación web  HTTPS, se crea un canal cifrado seguro denominado <<HTTPS>>. Este canal usa una clave de 128 bits de longitud, conocido únicamente por el dispositivo conectado y por el servidor que facilita la conexión, de modo que encripta los datos convirtiéndolo en un medio seguro.

miércoles, 29 de enero de 2020

Privacidad de la información

Se considera infromación privada toda aquella información protegida por la LOPD o aquella que otros usuarios o entidades no desean que sea conocida.

1. Amenazas a la privacidad

  • Sistemas operativos: la mayoría de dispositivos que se conectan a internet utilizan un sistema informativo que reune información del usuario. Los atacantes podrían aprovechar alguna vulnerabilidad en este software para obtener todos estos datos.
  • Contraseñas: para evitar que otros usuarios consigan apoderarse de información secreta, es importante utilizar autentificaciones biomédicas o generar contraseñas fuertes.
  • Registro de visitas web: Cada vez que se accede aun isito web, el navegador proporciona datos. Estos datos pueden ser utilizados fraudulentamente para obtener información de los usuarios y lanzar ciberataques.
  • Sesiones del navegador: algunos navegadores permiten gestionar el historial o los marcadores desde cualquier lugar, en algunos casos las sesión permanece abierta.
  • Cookies: son utilizadas para obtener información acerca de los hábitos de navegación del usuario o sus datos personales. En ocasiones las cookies puede ser manipuladas con intenciones fraudulentas.
  • Formularios: la web 2.0 ofrece servicios que requieren que el usuarios se registre. En caso de contener campos con información confidencial, es necesario verificar la legitimidad del sitio.
  • Redes sociales: las publicaciones en redes sociales esconden peligros de lo qu el mayoría de usuarios sospechan. Para los ciberataques constituyen un método sencillo y rápido para acceder a información personal.
  • Google: la principal fuente de ingresos de Google esta relacionada con la publicidad. Esta compañía ofrece varios servicios por lo que es capaz de reunir una gran cantidad de información. Una medida de protección consiste en configurar las opciones de privacidad de los servicios.

2. Antiespías

El espionaje se define como la obtención encubierta de datos o de información confidencial. Para llevarlo a cabo se utilizan técnicas varias.
Los programas espías se introducen en los dispositivos en forma de pequeñas aplicaciones que recopilan información para enviarla a ciberatacantes.Estos funcionan de manera similar a los antivirus. Algunas de las aplicaciones antiespías mas populares son: CCleaner, Ad-Aware, Windows Defender, Malwarebytes, SpyBot, ...


3. Borrar archivos de forma segura

Si se elimina un archivo de la papelera e sposible recuperarlo si se emplea el software adecuado. Pero esto compromete la privacidad cuando el usuario quiere eliminar archivos sin que nadie pueda tener acceso a ellos.
De la misma manera existen programas para recuperar archivos, otros garantizan la eliminación segura de archivos para que sean irrecuperables. Otras incluyen la posibilidad de borrar el espacio libre para evitar la recuperación de cualquier archivo eliminado previamente.

domingo, 26 de enero de 2020

Navegación segura

1. Buenas prácticas de navegación segura

El uso adecuado del navegador, de las herramientas de seguridad y del sentido común son las mejores armas para mo convertirse en víctima de ciberataques, Algunas pautas son:

  • Configurar el navegador adecuadamente: el navegador permite configurar diferentes niveles de seguridad, lo que posibilita usar filtros contra la suplantación de identidad, bloquear elementos emergentes y activar el control parental. Además, es recomendable eliminar el historial y la memoria caché.
  • No acceder a sitios web de dudosa reputación y evitar enlaces sospechosos: los vínculos contenidos en páginas web, mensajes de correo electrónico o mensajería instantánea pueden direccionar a las víctimas a sitios web maliciosos.
  • Aceptar únicamente las cookies deseadas: las cookies son archivos con metadatos de una visita: identificadores de sesión, procedencia de la visita. duración de ella, ...
  • Proteger los datos personales: no se deben facilitar datos personalesen las páginas que no sean de absoluta confianza y que no esten bajo protocolo seguro (HTTPS).
  • Revisar el correo electrónico: utilizarlo con cautela, sospechando de los mensajes no esperados, es recomendable activar la detección de spam y revisarla.
  • Actualizar el sistema operativo y sus aplicaciones: es recomendable configurar las actualizaciones automáticas del equipo.

2. Navegación privada

Es una medida de privacidad para que el navegador no almacene la información que se genera en relación con la navegación. Es recomendable su uso al compartir el equipo con otra personas. Su uso permite alejar a curiosos, pero no a atacantes expertos. Para activarla, hay que utilizar la opción nueva ventana de incógnito, navegación privada o navegación inPrivative.


3. Proteger la privacidad en la red con un proxy

Los servicios proxy actúan como intermediarios entre los quipos de los usuarios  y los sitios web que visitan. De este modo las páginas visitadas solo pueden captar datos del proxy. Algunos ejemplos son Anonymouse o hide.me.
Funcionan correctamente para buscar información pero lentos para acceder a contenidos myltimedia o para descargar ficheros.



4. Navegación anónima

Evita el seguimiento de sitios web que intentan obtener iformación de los usuarios y mantener el anonimato en comunicaciones que requieren la máxima privacidad. Estas redes anónimas están diseñadas para proteger la privacidad de los internautas frente a las amenazas de la red pero estos quedan registrados en los servidores anónimos igual qu elos operadores pueden identificar cualquier llamada oculta.En caso, de que un malhechor utilice las redes para cometer un delito, este puede ser identificado por las autoridades con la misma facilidad que con un navegador tradicional.
Un ejemplo de navegador anónimo es Tor.  Otra opción es intalar complementos de navegación anónima como anonymaoX.
 

viernes, 24 de enero de 2020

Firma electrónica y certificado digital

1. La firma electrónica

Es el conjunto de datos asociados a un documento electrónico que permite realizar las siguientes acciones: 
    • Identificar la firma de forma inequívoca:  requiere el uso de una clave que únicamente conoce el firmante.
    • Asegurar la integridad del documento firmado: proporcionar mecanismos para comprobar que el documento firmado es exactamente el mismo que el original y que no ha sufrido alteración ni manipulación.
    • No repudio: certifica que los datos utilizados por el firmante son únicos y exclusivos para que no pueda excusarse de no haber firmado el documento.
Al firmar un documento mediante este método obtiene validez jurídica con la ventaja de que no requiere la presencia física del firmante y no se puede falsificar. Cualquier impresión del documento debe contener un código seguro de verificación (CSV)  que permite contrastar la copia con el original.

  • Firma de documento electrónico
El firmante genera un resumen que es utilizado como huella digital del mensaje. El resultado de este que se cifra con su clave privada se denomina firma digital y se enviará adjunta al mensaje original. 
Cualquier receptor puede comrpobar su autoridad descifrando la firma digital con la clave pública.
Para comprobar que no ha sido modificado el documento se aplica la función hash por medio de la comprobación del resultado obtenido con el resumen cifrado que se ha recibido. Si coinciden el documento queda verificado.

  • ¿Cómo se firma un documento?
 Para realizar la firma electrónica se pueden seguir dos métodos:

    • Utilizar una aplicación en el dispositivo: aplicaciones de firma que se descargan en el equipo, pero es conveniente recurrir a  aplicaciones ofrecidas por las Administraciones Públicas, como AutoFirma, eCoFirma y @firma.
    • Firmar directamente en Internet: se utiliza al firmar formularios o solicitudes en relación con las Administaciones Públicas. El usuario también puede firmar sus propios documentos en internet a través del servicio ofrecido en el sitio oficial del VALIDe.
 Para firmar un documento, necesitas disponer de un certificado digital como el que incluye el DNI electrónico.

2. El certificado digital

Es un documento electrónico, expedido por la autoridad de certificación, cuya misión es validar y certificar que una firma electrónica se corresponde con una empresa, una persona, o un organismo público. Contiene la información necesaria para firmar electrónicamente e identificar a su propietar5io con sus datos.
Este identifica a una persona o entidad con dos claves complementarias, una pública y otra privada, de modo que los datos cifrados con una solo se pueden descifrar con la otra. La clave privada está bajo el control del firmante y la clave pública se puede repartir o enviar a otros usuarios.

  • Autoridades de certificación
Son las instituciones responsables de emitir y revocar  los certificados digitales utilizados en la firma electrónica porque no contarían con las garantías de seguridad. La autoridad de certificación da fe  de que la firma electrónica se corresponde con un usuario concreto, razón por la que los certificados están firmados también por la autoridad de certificación.
En España, los certificados electrónicos emitidos por entidades públicas son el DNI electrónico y el de la Fábrica Nacional de Moneda y Timbre, Real Casa de la Moneda.


 

miércoles, 22 de enero de 2020