Seguridad
Seguridad
Seguridad
1. Seguridad Logica
2. Seguridad Fisica
3. Manejo de Virus
4. Seguridad en la WEB
5. Manejo de Seguridad en BD
a. Esquemas
b. Roles y Grupos
c. Expiración de claves
d. Encriptamiento de claves
6. Encriptamiento, Certificados digitales
7. Arquitectura de un computador, Acceso y denegación de accesos a hardware
Evaluación:
Encriptamiento:
SHA es similar a MD5, aunque más moderno y más seguro. El código java sería
exactamente igual, pero
reemplezando MessageDigestAlgorithms.MD5 por MessageDigestAlgorithms.SHA_1, Mes
sageDigestAlgorithms.SHA_256, MessageDigestAlgorithms.SHA_384 o MessageDigestAl
gorithms.SHA_512.
SHA suele usarse para garantizar que un texto no ha sido modificado. Se obtiene el
encriptado SHA del texto y se envía junto con el texto. El receptor, vuelve a calcular el
SHA del texto y verifica que coincide con el SHA que ha recibido de origen. Para evitar
que alguien mal intencionado modifique el texto y genere el nuevo SHA, el SHA original
suele encriptarse con RSA o algún otro mecanismo que garantice quién lo ha generado.
El que envía el texto encriptado tiene la garantía de que sólo el receptor puede
desencriptarlo, ya que es el único que tiene la clave pareja de la suya.
El receptor que desencripta el mensaje tiene la garantía de que ha sido generado por
el emisor, ya que es el único que tiene la clave pareja de la suya.
No es un algoritmo eficiente para encriptar textos largos. Se usa para encriptar claves
cortas y poder pasarlas de uno a otro de una forma segura, o para encriptar firmas
digitales (texto encriptado SHA o MD5. también cortas).
El código java para este tipo de encriptado puede ser el siguiente
AES es un algortimo que usa la misma clave para encriptar y para desencriptar. Es
adecuado para encriptar textos largos. La clave tiene que tener una longitud fija en bits
(en bytes), en nuestro caso serán 128 bits (o 16 bytes).
Encriptamiento en java:
Método de Encriptación
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digestOfPassword =
md.digest(secretKey.getBytes("utf-8"));
cipher.init(Cipher.ENCRYPT_MODE, key);
return base64EncryptedString;
try {
byte[] message =
Base64.decodeBase64(textoEncriptado.getBytes("utf-8"));
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digestOfPassword =
md.digest(secretKey.getBytes("utf-8"));
decipher.init(Cipher.DECRYPT_MODE, key);
return base64EncryptedString;
Criptografía Asimétrica:
La criptografía asimétrica (en inglés asymmetric key cryptography), también
llamada criptografía de clave pública (en inglés public key cryptography) o criptografía de
dos claves1(en inglés two-key cryptography), es el método criptográfico que usa un par de
claves para el envío de mensajes. Las dos claves pertenecen a la misma persona que recibirá
el mensaje. Una clave es pública y se puede entregar a cualquier persona, la otra clave
es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. Además,
los métodos criptográficos garantizan que esa pareja de claves sólo se puede generar una
vez, de modo que se puede asumir que no es posible que dos personas hayan obtenido
casualmente la misma pareja de claves.
Certificado digital:
Tarea:
Generar un certificado y activarlo en el servidor, encriptar un archivo en el cliente web, cifrarlo
asimétricamente y enviarlo al servidor a través del canal web encriptado, usando SSL o TLS,
desencriptarlo con un programa y mostrar el contenido en el servidor.