Fundamentos de la Programación y Ciberseguridad Esencial

La Programación en la Sociedad Digital Actual

Los lenguajes de programación son un conjunto de símbolos y reglas que, siguiendo una estructura lógica, permiten escribir las líneas de código que componen las aplicaciones informáticas.

Creación de un Programa Informático: El Ciclo de Vida del Software

Un algoritmo es un conjunto de instrucciones y reglas ordenadas que guían el desarrollo de actividades para resolver un problema.

Un programa informático es un conjunto de instrucciones escritas en un lenguaje de programación para que el ordenador las pueda entender. Para crear un programa informático, se siguen distintas fases de desarrollo conocidas como el Ciclo de Vida del Software:

  • Análisis del problema.
  • Diseño del algoritmo.
  • Codificación del programa.
  • Pruebas y depuración.
  • Documentación.

Fases del Ciclo de Vida del Software

Análisis del Problema

Consiste en realizar un estudio detallado del problema planteado con el propósito de que el resultado final coincida con lo esperado.

Diseño de Algoritmos

En la fase de diseño se crean los algoritmos que permiten resolver el problema. Para representarlos, se utilizan diagramas de flujo y pseudocódigos.

Codificación del Programa

La codificación es la traducción del lenguaje algorítmico a un lenguaje de programación que el ordenador pueda entender, como Java, Python, C++ o Ruby. Estas instrucciones se almacenan en ficheros denominados código fuente, que se traducen con un compilador a lenguaje máquina, es decir, a programas ejecutables.

Pruebas y Depuración

Una vez escrito el programa, hay que someterlo a una serie de pruebas para detectar posibles errores de funcionamiento y corregirlos.

Documentación del Software

Cada uno de los pasos anteriores debe llevar asociado un documento con todas las especificaciones necesarias para su comprensión y mantenimiento.

Diseño de Algoritmos y sus Características

¿Qué es un Algoritmo?

Un algoritmo es un conjunto de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permite solucionar un problema determinado. Una de las características fundamentales que debe cumplir todo algoritmo es que sus propiedades sean:

  • Finitos: Solamente hay un inicio y un final, de forma que el algoritmo debe estar constituido por un conjunto determinado de pasos.
  • Definidos: Si se aplica el algoritmo varias veces para los mismos datos de entrada, se debe obtener siempre el mismo resultado.
  • Precisos: Establece claramente los pasos a seguir sin posibilidad de ambigüedad en ningún momento.

Herramientas para la Representación de Algoritmos

Diagrama de Flujo

Es una representación gráfica del algoritmo, utilizando símbolos estandarizados para cada tipo de operación.

Pseudocódigo

Se utiliza para describir un algoritmo en un lenguaje natural estructurado, facilitando su comprensión antes de la codificación.

Lenguajes de Programación: Evolución y Clasificación

Evolución Histórica de los Lenguajes de Programación

A continuación, se presenta una clasificación general de los lenguajes de programación, atendiendo a su evolución histórica desde su aparición:

  • Primera Generación: Lenguaje Máquina. Los primeros ordenadores se programaban directamente en código binario, utilizando ceros y unos.
  • Segunda Generación: Lenguaje Ensamblador. Este lenguaje utiliza un traductor (ensamblador) para convertir cada instrucción simbólica a su equivalente en lenguaje máquina.
  • Tercera Generación: Lenguajes de Alto Nivel. Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina y mucho más cercanos al lenguaje natural. Necesitan un compilador para generar el programa en código máquina.
  • Cuarta Generación: Programación Orientada a Objetos (POO). Se centran en la creación de objetos que encapsulan datos y comportamientos, facilitando el desarrollo de software complejo.
  • Quinta Generación: Lenguaje Natural e Inteligencia Artificial (IA). Basadas en el uso del lenguaje natural y la capacidad del ordenador para resolver problemas mediante técnicas de inteligencia artificial.

Seguridad en la Red: Principios, Amenazas y Medidas de Protección

Para que un sistema de red sea seguro, debe cumplir las siguientes características fundamentales:

  • Confidencialidad: Solo deben tener acceso a los datos los usuarios autorizados para ello.
  • Autenticación: Se debe confirmar que cada usuario es quien dice ser a través de su identidad digital.
  • Autorización: El acceso a los diferentes servicios debe estar condicionado por la identidad y los permisos atribuidos a cada usuario.
  • Integridad: Los datos enviados deben ser los mismos que los recibidos, evitando la manipulación o corrupción de estos en su recorrido.
  • Disponibilidad: Es la característica, cualidad o condición de la información para estar a disposición de quienes deben acceder a ella, ya sean personas, procesos o aplicaciones.

Amenazas a la Seguridad Informática

Las amenazas a la seguridad pueden clasificarse en:

  • Causas Humanas: Son usuarios que, intencionada o accidentalmente, pueden dañar el sistema (ej. usuarios inexpertos, piratas informáticos, espías).
  • Causas Lógicas: Principalmente el malware (software malicioso).
  • Causas Físicas: Fallos en dispositivos, interrupciones de suministro eléctrico, desastres naturales, etc.

Legislación Relevante en la Red

Las leyes más relevantes para la seguridad y privacidad en el entorno digital son:

  • LOPD: Ley Orgánica de Protección de Datos Personales y garantía de los derechos digitales.
  • LPI: Ley de la Propiedad Intelectual.

Adopción de Medidas de Seguridad Adecuadas

Protección contra Amenazas Digitales

En los últimos tiempos, y debido al uso generalizado de Internet, han aparecido diversas amenazas de malware (malicious software) que pueden resultar muy dañinas, tanto por causar pérdida de datos como por afectar la productividad. Algunas medidas de protección esenciales incluyen:

  • Uso de contraseñas robustas.
  • Gestión de permisos de acceso.
  • Implementación de cortafuegos (firewalls).
  • Uso de software anti-malware.
  • Establecimiento de conexiones seguras.

Dos herramientas clave en la protección son:

  • Antivirus: Un programa diseñado para detectar, bloquear y eliminar malware.
  • Cortafuegos (Firewall): Un programa o dispositivo hardware que se utiliza para controlar las comunicaciones e impedir accesos no autorizados a un ordenador o a una red.

Mecanismos de Recuperación de Datos

Son mecanismos diseñados para recuperar los datos cuando el sistema ha sufrido algún daño o pérdida:

  • Copias de Seguridad (Backup): Son duplicados de todos los datos que permiten recuperar la información original en caso de ser necesario.
  • Información en la Nube: La ventaja de estas copias de seguridad es que se puede acceder a ellas desde cualquier dispositivo y lugar, ofreciendo alta disponibilidad.
  • SAN (Storage Area Network): Es una red de dispositivos que proporciona alta capacidad de almacenamiento a gran velocidad para redes empresariales, optimizando la recuperación y el acceso a datos críticos.

Conexiones Seguras y Cifradas

Los usuarios se autentican a través de su identidad digital, utilizando herramientas como:

  • DNIe: Documento Nacional de Identidad electrónico, que acredita electrónicamente la identidad de la persona que lo utiliza.
  • Certificados Digitales: Archivos electrónicos que vinculan una clave pública con la identidad de una persona o entidad, garantizando la autenticidad y el cifrado.

Por su parte, las empresas y demás organismos deben garantizar la seguridad en las comunicaciones, especialmente en transacciones relacionadas con el comercio electrónico, mediante:

  • HTTPS (HyperText Transfer Protocol Secure): El protocolo seguro de transferencia de hipertexto es la versión cifrada de HTTP, que protege la comunicación entre el navegador y el servidor.
  • Certificado Electrónico (SSL/TLS): Para verificar la autenticidad del protocolo HTTPS, se requiere un certificado emitido por una entidad autorizada. Los detalles del certificado se pueden consultar haciendo clic sobre el botón o candado que aparece en la barra de navegación.

Configuración Segura del Navegador Web

Para mejorar la seguridad al navegar por internet, es recomendable configurar el navegador con las siguientes opciones:

  • Navegación Privada: Permite navegar sin dejar rastro de historial, cookies o datos de formulario.
  • Filtro contra la Suplantación de Identidad (Phishing): Protege al usuario de páginas web fraudulentas que imitan a sitios legítimos (ej. entidades bancarias) para robar credenciales.
  • Bloqueador de Elementos Emergentes (Pop-ups): Evita la aparición de ventanas no deseadas que pueden contener publicidad o software malicioso.
  • Gestión de Cookies: Las cookies son pequeños archivos que se almacenan en el ordenador al visitar determinadas páginas web. Recopilan información para personalizar la oferta de contenidos en la web. Es importante revisar y configurar su aceptación.
  • Configuración de Otros Contenidos: Ajustar permisos para JavaScript, plugins, notificaciones, etc., para controlar el comportamiento de las páginas web.