#encriptacion — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #encriptacion, aggregated by home.social.
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
Apple demanda al Reino Unido para impugnar una orden técnica que le exigiría habilitar acceso excepcional a datos cifrados. https://aidoo.news/noticia/r1vYpK
#Tecnologia #ReinoUnido #Encriptacion #DerechosDigitales #Apple
-
📰 «Encrypted Spaces, un proyecto de código abierto que facilitará el encriptado»
🔗 https://proxy.jesusysustics.com/2026/08/31398/ Exingenieros de Signal lanzan la tecnología que podría hacer privados Slack, Discord y Google Docs https://computerhoy.20minutos.es/tecnologia/exingenieros-signal-lanzan-tecnologia-que-podria-hacer-privados-slack-discord-google-docs_6982381_0.htmlEncriptar nuestras comunicaciones en la nube con un sistema de código abierto suena genial… pero lo que entiendo de todo el artículo es que se trata de algo que puede ser muy útil para proyectos pequeños y medianos al facilitarles este proceso. WhatsApp, Slack, Discord y Google Docs? son proyectos mastodónticos que podrían cifrar todo de extremo a extremo con la máxima seguridad y si no lo hacen no es por incompetencia sino como decisión de diseño (de la intención tras ello mejor no hablemos).
En definitiva: no sé si es humo, una nota de prensa agrandada o simplemente no he entendido bien la idea… pero me lo guardo, por si acaso.
#️⃣ #códigoAbierto #encriptación #privacidad -
Empecé a grabar y buscando contenido sobre criptografía simétrica y cifrado de bloques, me encontré con un artículo mío que documentaba todo bastante bien 😆
Se los dejo para que lo vayan leyendo, luego actualizo y enlazo al video que va a salir en el canal de youtube de #JuncoTIC
https://juncotic.com/cifrado-simetrico-por-bloques/
Espero que les guste y les sirva!
Cualquier duda ya saben, me dejan su comentario 💬
#ciberseguridad #criptografia #cifrado #encriptacion #openssl #encryption #crytpography #cybersecurity
-
Empecé a grabar y buscando contenido sobre criptografía simétrica y cifrado de bloques, me encontré con un artículo mío que documentaba todo bastante bien 😆
Se los dejo para que lo vayan leyendo, luego actualizo y enlazo al video que va a salir en el canal de youtube de #JuncoTIC
https://juncotic.com/cifrado-simetrico-por-bloques/
Espero que les guste y les sirva!
Cualquier duda ya saben, me dejan su comentario 💬
#ciberseguridad #criptografia #cifrado #encriptacion #openssl #encryption #crytpography #cybersecurity
-
Empecé a grabar y buscando contenido sobre criptografía simétrica y cifrado de bloques, me encontré con un artículo mío que documentaba todo bastante bien 😆
Se los dejo para que lo vayan leyendo, luego actualizo y enlazo al video que va a salir en el canal de youtube de #JuncoTIC
https://juncotic.com/cifrado-simetrico-por-bloques/
Espero que les guste y les sirva!
Cualquier duda ya saben, me dejan su comentario 💬
#ciberseguridad #criptografia #cifrado #encriptacion #openssl #encryption #crytpography #cybersecurity
-
Empecé a grabar y buscando contenido sobre criptografía simétrica y cifrado de bloques, me encontré con un artículo mío que documentaba todo bastante bien 😆
Se los dejo para que lo vayan leyendo, luego actualizo y enlazo al video que va a salir en el canal de youtube de #JuncoTIC
https://juncotic.com/cifrado-simetrico-por-bloques/
Espero que les guste y les sirva!
Cualquier duda ya saben, me dejan su comentario 💬
#ciberseguridad #criptografia #cifrado #encriptacion #openssl #encryption #crytpography #cybersecurity
-
Signal llama «vigilancia masiva» al plan del Reino Unido de escanear dispositivos
El primer ministro Keir Starmer anunció en la London Tech Week que Apple y Google deberán activar herramientas para detectar imágenes de desnudos en dispositivos de menores. Signal respondió con un documento titulado «La vigilancia no es seguridad», advirtiendo que el sistema sentaría las bases para el control estatal sobre cualquier contenido privado (Fuente Signal).
El gobierno del Reino Unido quiere que cada teléfono y tablet se convierta en un punto de control de imágenes. Signal dice que eso es exactamente el problema. La propuesta de escaneo de dispositivos fue anunciada por el primer ministro Keir Starmer durante la London Tech Week. Bajo el plan, compañías como Apple y Google deberían activar funciones integradas en smartphones y tablets para detectar y bloquear imágenes de desnudos en dispositivos de menores.
El alcance de lo que se pide es amplio. El gobierno quiere que las protecciones se apliquen en todo el dispositivo, incluyendo cámaras, aplicaciones de terceros, funciones de búsqueda y servicios de mensajería. Los adultos podrían seguir viendo o compartiendo contenido para adultos, pero solo después de pasar una verificación de edad. Si las empresas tecnológicas no actúan en un plazo de tres meses, el gobierno dice que impulsará una legislación con multas para las compañías y posible responsabilidad penal para sus ejecutivos.
Apple ya tiene algo similar en funcionamiento. La compañía ofrece su función Communication Safety, que usa aprendizaje automático en el propio dispositivo para detectar fotos y videos de desnudos, difuminar el contenido y advertir a los menores antes de que lo vean o envíen. Apple recientemente presentó herramientas ampliadas de seguridad infantil en la WWDC26, aunque la propuesta del Reino Unido va más lejos al hacer el enfoque obligatorio y extenderlo más allá del ecosistema de Apple.
La respuesta de Signal fue contundente. En un documento titulado «La vigilancia no es seguridad», la app de mensajería cifrada señaló que obligar a los residentes del Reino Unido a probar su edad o tener su contenido escaneado simplemente para comunicarse es una propuesta peligrosa. Aunque el escaneo ocurra en el dispositivo, Signal argumenta que el sistema normalizaría la inspección de contenido privado antes de que pueda enviarse o verse.
El argumento central de los críticos no es técnico, sino político. «Sabemos que las capacidades de vigilancia masiva y censura, por más sinceras que suenen las promesas de quienes las inician, nunca permanecen acotadas de forma estrecha», escribió Signal. Una vez que los teléfonos estén obligados a inspeccionar contenido para una categoría de material, el mismo sistema puede expandirse a lo que los gobiernos consideren amenazas o contenido dañino.
Signal también advirtió que el sistema fortalecería el control que Apple, Google y Microsoft ya tienen sobre la información más personal de los usuarios, y sostuvo que la verdadera seguridad infantil debería significar mejor educación financiada, servicios sociales más sólidos y salvaguardas reales en plataformas de IA, no escaneo predeterminado en cada dispositivo.
No es la primera vez que el Reino Unido choca con las grandes plataformas de mensajería cifrada. WhatsApp y Signal habían dicho anteriormente que preferirían abandonar el país antes que debilitar el cifrado bajo la Online Safety Bill. Más recientemente, las reglas de verificación de edad de la Online Safety Act impulsaron un aumento en el uso de VPNs.
#APPLE #ciberseguridad #cifrado #clientsidescanning #encriptacion #google #KeirStarmer #mensajeria #OnlineSafetyAct #PORTADA #privacidad #ReinoUnido #SeguridadInfantil #signal #Vigilancia -
Signal llama «vigilancia masiva» al plan del Reino Unido de escanear dispositivos
El primer ministro Keir Starmer anunció en la London Tech Week que Apple y Google deberán activar herramientas para detectar imágenes de desnudos en dispositivos de menores. Signal respondió con un documento titulado «La vigilancia no es seguridad», advirtiendo que el sistema sentaría las bases para el control estatal sobre cualquier contenido privado (Fuente Signal).
El gobierno del Reino Unido quiere que cada teléfono y tablet se convierta en un punto de control de imágenes. Signal dice que eso es exactamente el problema. La propuesta de escaneo de dispositivos fue anunciada por el primer ministro Keir Starmer durante la London Tech Week. Bajo el plan, compañías como Apple y Google deberían activar funciones integradas en smartphones y tablets para detectar y bloquear imágenes de desnudos en dispositivos de menores.
El alcance de lo que se pide es amplio. El gobierno quiere que las protecciones se apliquen en todo el dispositivo, incluyendo cámaras, aplicaciones de terceros, funciones de búsqueda y servicios de mensajería. Los adultos podrían seguir viendo o compartiendo contenido para adultos, pero solo después de pasar una verificación de edad. Si las empresas tecnológicas no actúan en un plazo de tres meses, el gobierno dice que impulsará una legislación con multas para las compañías y posible responsabilidad penal para sus ejecutivos.
Apple ya tiene algo similar en funcionamiento. La compañía ofrece su función Communication Safety, que usa aprendizaje automático en el propio dispositivo para detectar fotos y videos de desnudos, difuminar el contenido y advertir a los menores antes de que lo vean o envíen. Apple recientemente presentó herramientas ampliadas de seguridad infantil en la WWDC26, aunque la propuesta del Reino Unido va más lejos al hacer el enfoque obligatorio y extenderlo más allá del ecosistema de Apple.
La respuesta de Signal fue contundente. En un documento titulado «La vigilancia no es seguridad», la app de mensajería cifrada señaló que obligar a los residentes del Reino Unido a probar su edad o tener su contenido escaneado simplemente para comunicarse es una propuesta peligrosa. Aunque el escaneo ocurra en el dispositivo, Signal argumenta que el sistema normalizaría la inspección de contenido privado antes de que pueda enviarse o verse.
El argumento central de los críticos no es técnico, sino político. «Sabemos que las capacidades de vigilancia masiva y censura, por más sinceras que suenen las promesas de quienes las inician, nunca permanecen acotadas de forma estrecha», escribió Signal. Una vez que los teléfonos estén obligados a inspeccionar contenido para una categoría de material, el mismo sistema puede expandirse a lo que los gobiernos consideren amenazas o contenido dañino.
Signal también advirtió que el sistema fortalecería el control que Apple, Google y Microsoft ya tienen sobre la información más personal de los usuarios, y sostuvo que la verdadera seguridad infantil debería significar mejor educación financiada, servicios sociales más sólidos y salvaguardas reales en plataformas de IA, no escaneo predeterminado en cada dispositivo.
No es la primera vez que el Reino Unido choca con las grandes plataformas de mensajería cifrada. WhatsApp y Signal habían dicho anteriormente que preferirían abandonar el país antes que debilitar el cifrado bajo la Online Safety Bill. Más recientemente, las reglas de verificación de edad de la Online Safety Act impulsaron un aumento en el uso de VPNs.
#APPLE #ciberseguridad #cifrado #clientsidescanning #encriptacion #google #KeirStarmer #mensajeria #OnlineSafetyAct #PORTADA #privacidad #ReinoUnido #SeguridadInfantil #signal #Vigilancia -
Signal llama «vigilancia masiva» al plan del Reino Unido de escanear dispositivos
El primer ministro Keir Starmer anunció en la London Tech Week que Apple y Google deberán activar herramientas para detectar imágenes de desnudos en dispositivos de menores. Signal respondió con un documento titulado «La vigilancia no es seguridad», advirtiendo que el sistema sentaría las bases para el control estatal sobre cualquier contenido privado (Fuente Signal).
El gobierno del Reino Unido quiere que cada teléfono y tablet se convierta en un punto de control de imágenes. Signal dice que eso es exactamente el problema. La propuesta de escaneo de dispositivos fue anunciada por el primer ministro Keir Starmer durante la London Tech Week. Bajo el plan, compañías como Apple y Google deberían activar funciones integradas en smartphones y tablets para detectar y bloquear imágenes de desnudos en dispositivos de menores.
El alcance de lo que se pide es amplio. El gobierno quiere que las protecciones se apliquen en todo el dispositivo, incluyendo cámaras, aplicaciones de terceros, funciones de búsqueda y servicios de mensajería. Los adultos podrían seguir viendo o compartiendo contenido para adultos, pero solo después de pasar una verificación de edad. Si las empresas tecnológicas no actúan en un plazo de tres meses, el gobierno dice que impulsará una legislación con multas para las compañías y posible responsabilidad penal para sus ejecutivos.
Apple ya tiene algo similar en funcionamiento. La compañía ofrece su función Communication Safety, que usa aprendizaje automático en el propio dispositivo para detectar fotos y videos de desnudos, difuminar el contenido y advertir a los menores antes de que lo vean o envíen. Apple recientemente presentó herramientas ampliadas de seguridad infantil en la WWDC26, aunque la propuesta del Reino Unido va más lejos al hacer el enfoque obligatorio y extenderlo más allá del ecosistema de Apple.
La respuesta de Signal fue contundente. En un documento titulado «La vigilancia no es seguridad», la app de mensajería cifrada señaló que obligar a los residentes del Reino Unido a probar su edad o tener su contenido escaneado simplemente para comunicarse es una propuesta peligrosa. Aunque el escaneo ocurra en el dispositivo, Signal argumenta que el sistema normalizaría la inspección de contenido privado antes de que pueda enviarse o verse.
El argumento central de los críticos no es técnico, sino político. «Sabemos que las capacidades de vigilancia masiva y censura, por más sinceras que suenen las promesas de quienes las inician, nunca permanecen acotadas de forma estrecha», escribió Signal. Una vez que los teléfonos estén obligados a inspeccionar contenido para una categoría de material, el mismo sistema puede expandirse a lo que los gobiernos consideren amenazas o contenido dañino.
Signal también advirtió que el sistema fortalecería el control que Apple, Google y Microsoft ya tienen sobre la información más personal de los usuarios, y sostuvo que la verdadera seguridad infantil debería significar mejor educación financiada, servicios sociales más sólidos y salvaguardas reales en plataformas de IA, no escaneo predeterminado en cada dispositivo.
No es la primera vez que el Reino Unido choca con las grandes plataformas de mensajería cifrada. WhatsApp y Signal habían dicho anteriormente que preferirían abandonar el país antes que debilitar el cifrado bajo la Online Safety Bill. Más recientemente, las reglas de verificación de edad de la Online Safety Act impulsaron un aumento en el uso de VPNs.
#APPLE #ciberseguridad #cifrado #clientsidescanning #encriptacion #google #KeirStarmer #mensajeria #OnlineSafetyAct #PORTADA #privacidad #ReinoUnido #SeguridadInfantil #signal #Vigilancia -
Signal llama «vigilancia masiva» al plan del Reino Unido de escanear dispositivos
El primer ministro Keir Starmer anunció en la London Tech Week que Apple y Google deberán activar herramientas para detectar imágenes de desnudos en dispositivos de menores. Signal respondió con un documento titulado «La vigilancia no es seguridad», advirtiendo que el sistema sentaría las bases para el control estatal sobre cualquier contenido privado (Fuente Signal).
El gobierno del Reino Unido quiere que cada teléfono y tablet se convierta en un punto de control de imágenes. Signal dice que eso es exactamente el problema. La propuesta de escaneo de dispositivos fue anunciada por el primer ministro Keir Starmer durante la London Tech Week. Bajo el plan, compañías como Apple y Google deberían activar funciones integradas en smartphones y tablets para detectar y bloquear imágenes de desnudos en dispositivos de menores.
El alcance de lo que se pide es amplio. El gobierno quiere que las protecciones se apliquen en todo el dispositivo, incluyendo cámaras, aplicaciones de terceros, funciones de búsqueda y servicios de mensajería. Los adultos podrían seguir viendo o compartiendo contenido para adultos, pero solo después de pasar una verificación de edad. Si las empresas tecnológicas no actúan en un plazo de tres meses, el gobierno dice que impulsará una legislación con multas para las compañías y posible responsabilidad penal para sus ejecutivos.
Apple ya tiene algo similar en funcionamiento. La compañía ofrece su función Communication Safety, que usa aprendizaje automático en el propio dispositivo para detectar fotos y videos de desnudos, difuminar el contenido y advertir a los menores antes de que lo vean o envíen. Apple recientemente presentó herramientas ampliadas de seguridad infantil en la WWDC26, aunque la propuesta del Reino Unido va más lejos al hacer el enfoque obligatorio y extenderlo más allá del ecosistema de Apple.
La respuesta de Signal fue contundente. En un documento titulado «La vigilancia no es seguridad», la app de mensajería cifrada señaló que obligar a los residentes del Reino Unido a probar su edad o tener su contenido escaneado simplemente para comunicarse es una propuesta peligrosa. Aunque el escaneo ocurra en el dispositivo, Signal argumenta que el sistema normalizaría la inspección de contenido privado antes de que pueda enviarse o verse.
El argumento central de los críticos no es técnico, sino político. «Sabemos que las capacidades de vigilancia masiva y censura, por más sinceras que suenen las promesas de quienes las inician, nunca permanecen acotadas de forma estrecha», escribió Signal. Una vez que los teléfonos estén obligados a inspeccionar contenido para una categoría de material, el mismo sistema puede expandirse a lo que los gobiernos consideren amenazas o contenido dañino.
Signal también advirtió que el sistema fortalecería el control que Apple, Google y Microsoft ya tienen sobre la información más personal de los usuarios, y sostuvo que la verdadera seguridad infantil debería significar mejor educación financiada, servicios sociales más sólidos y salvaguardas reales en plataformas de IA, no escaneo predeterminado en cada dispositivo.
No es la primera vez que el Reino Unido choca con las grandes plataformas de mensajería cifrada. WhatsApp y Signal habían dicho anteriormente que preferirían abandonar el país antes que debilitar el cifrado bajo la Online Safety Bill. Más recientemente, las reglas de verificación de edad de la Online Safety Act impulsaron un aumento en el uso de VPNs.
#APPLE #ciberseguridad #cifrado #clientsidescanning #encriptacion #google #KeirStarmer #mensajeria #OnlineSafetyAct #PORTADA #privacidad #ReinoUnido #SeguridadInfantil #signal #Vigilancia -
Signal llama «vigilancia masiva» al plan del Reino Unido de escanear dispositivos
El primer ministro Keir Starmer anunció en la London Tech Week que Apple y Google deberán activar herramientas para detectar imágenes de desnudos en dispositivos de menores. Signal respondió con un documento titulado «La vigilancia no es seguridad», advirtiendo que el sistema sentaría las bases para el control estatal sobre cualquier contenido privado (Fuente Signal).
El gobierno del Reino Unido quiere que cada teléfono y tablet se convierta en un punto de control de imágenes. Signal dice que eso es exactamente el problema. La propuesta de escaneo de dispositivos fue anunciada por el primer ministro Keir Starmer durante la London Tech Week. Bajo el plan, compañías como Apple y Google deberían activar funciones integradas en smartphones y tablets para detectar y bloquear imágenes de desnudos en dispositivos de menores.
El alcance de lo que se pide es amplio. El gobierno quiere que las protecciones se apliquen en todo el dispositivo, incluyendo cámaras, aplicaciones de terceros, funciones de búsqueda y servicios de mensajería. Los adultos podrían seguir viendo o compartiendo contenido para adultos, pero solo después de pasar una verificación de edad. Si las empresas tecnológicas no actúan en un plazo de tres meses, el gobierno dice que impulsará una legislación con multas para las compañías y posible responsabilidad penal para sus ejecutivos.
Apple ya tiene algo similar en funcionamiento. La compañía ofrece su función Communication Safety, que usa aprendizaje automático en el propio dispositivo para detectar fotos y videos de desnudos, difuminar el contenido y advertir a los menores antes de que lo vean o envíen. Apple recientemente presentó herramientas ampliadas de seguridad infantil en la WWDC26, aunque la propuesta del Reino Unido va más lejos al hacer el enfoque obligatorio y extenderlo más allá del ecosistema de Apple.
La respuesta de Signal fue contundente. En un documento titulado «La vigilancia no es seguridad», la app de mensajería cifrada señaló que obligar a los residentes del Reino Unido a probar su edad o tener su contenido escaneado simplemente para comunicarse es una propuesta peligrosa. Aunque el escaneo ocurra en el dispositivo, Signal argumenta que el sistema normalizaría la inspección de contenido privado antes de que pueda enviarse o verse.
El argumento central de los críticos no es técnico, sino político. «Sabemos que las capacidades de vigilancia masiva y censura, por más sinceras que suenen las promesas de quienes las inician, nunca permanecen acotadas de forma estrecha», escribió Signal. Una vez que los teléfonos estén obligados a inspeccionar contenido para una categoría de material, el mismo sistema puede expandirse a lo que los gobiernos consideren amenazas o contenido dañino.
Signal también advirtió que el sistema fortalecería el control que Apple, Google y Microsoft ya tienen sobre la información más personal de los usuarios, y sostuvo que la verdadera seguridad infantil debería significar mejor educación financiada, servicios sociales más sólidos y salvaguardas reales en plataformas de IA, no escaneo predeterminado en cada dispositivo.
No es la primera vez que el Reino Unido choca con las grandes plataformas de mensajería cifrada. WhatsApp y Signal habían dicho anteriormente que preferirían abandonar el país antes que debilitar el cifrado bajo la Online Safety Bill. Más recientemente, las reglas de verificación de edad de la Online Safety Act impulsaron un aumento en el uso de VPNs.
#APPLE #ciberseguridad #cifrado #clientsidescanning #encriptacion #google #KeirStarmer #mensajeria #OnlineSafetyAct #PORTADA #privacidad #ReinoUnido #SeguridadInfantil #signal #Vigilancia -
Michael Geist: “The disconnect is dizzying: the government cannot claim privacy as a fundamental right in the morning and enact mandatory metadata retention that overrides it in the afternoon.”
#privacy #digitalrights #encriptacion #surveillance -
Michael Geist: “The disconnect is dizzying: the government cannot claim privacy as a fundamental right in the morning and enact mandatory metadata retention that overrides it in the afternoon.”
#privacy #digitalrights #encriptacion #surveillance -
Michael Geist: “The disconnect is dizzying: the government cannot claim privacy as a fundamental right in the morning and enact mandatory metadata retention that overrides it in the afternoon.”
#privacy #digitalrights #encriptacion #surveillance -
Michael Geist: “The disconnect is dizzying: the government cannot claim privacy as a fundamental right in the morning and enact mandatory metadata retention that overrides it in the afternoon.”
#privacy #digitalrights #encriptacion #surveillance -
Michael Geist: “The disconnect is dizzying: the government cannot claim privacy as a fundamental right in the morning and enact mandatory metadata retention that overrides it in the afternoon.”
#privacy #digitalrights #encriptacion #surveillance -
YellowKey: zero-day que con acceso físico salta BitLocker por defecto en Windows 11 y da acceso al disco cifrado en segundos mediante USB y recuperación. https://aidoo.news/noticia/W00aBZ
-
Signal amenaza con abandonar Canadá por el proyecto de ley C-22
Udbhav Tiwari, vicepresidente de estrategia y asuntos globales de Signal, advirtió que la empresa podría retirarse de Canadá si se le exige cumplir con el proyecto de ley C-22, conocido como la ley de «acceso legal». Afirmó que Signal «preferiría salir del país» antes que comprometer las promesas de privacidad que ha hecho a sus usuarios (The Globe and Mail).
Tiwari también advirtió que los cambios técnicos que exige la ley podrían dejar servicios de mensajería como Signal vulnerables a ciberataques, permitiendo potencialmente que hackers o adversarios extranjeros exploten las vulnerabilidades creadas deliberadamente.
¿Qué hace exactamente el proyecto de ley C-22?
La ley obligaría a empresas de telecomunicaciones, compañías de internet y otros proveedores de servicios electrónicos a modificar sus sistemas para permitir que la policía y el Servicio Canadiense de Inteligencia de Seguridad utilicen capacidades de vigilancia para detectar amenazas y actividad criminal.
Tiene dos componentes principales:
Uno exige que los «proveedores principales» conserven metadatos hasta por un año — no correos ni mensajes de texto, sino información como qué números de teléfono han estado en contacto entre sí y datos que podrían ubicar geográficamente a una persona.
La parte más polémica permitiría al gobierno federal ordenar en secreto a las empresas que debiliten el cifrado o creen puertas traseras para acceder a información — lo que debilitaría el cifrado en general y crearía nuevas vulnerabilidades explotables por delincuentes.
#accesolegal #APPLE #billc22 #canada #ciberseguridad #cifrado #encriptacion #internet #mensajeria #PORTADA #privacidad #señal #SEGURIDAD #tecnologia #telecomunicaciones #Vigilancia
Signal no está sola. Apple también ha expresado su preocupación y declaró que «jamás» añadirá una puerta trasera a su cifrado de extremo a extremo, advirtiendo que podría no poder ofrecer ciertas funciones en Canadá como resultado. -
Signal amenaza con abandonar Canadá por el proyecto de ley C-22
Udbhav Tiwari, vicepresidente de estrategia y asuntos globales de Signal, advirtió que la empresa podría retirarse de Canadá si se le exige cumplir con el proyecto de ley C-22, conocido como la ley de «acceso legal». Afirmó que Signal «preferiría salir del país» antes que comprometer las promesas de privacidad que ha hecho a sus usuarios (The Globe and Mail).
Tiwari también advirtió que los cambios técnicos que exige la ley podrían dejar servicios de mensajería como Signal vulnerables a ciberataques, permitiendo potencialmente que hackers o adversarios extranjeros exploten las vulnerabilidades creadas deliberadamente.
¿Qué hace exactamente el proyecto de ley C-22?
La ley obligaría a empresas de telecomunicaciones, compañías de internet y otros proveedores de servicios electrónicos a modificar sus sistemas para permitir que la policía y el Servicio Canadiense de Inteligencia de Seguridad utilicen capacidades de vigilancia para detectar amenazas y actividad criminal.
Tiene dos componentes principales:
Uno exige que los «proveedores principales» conserven metadatos hasta por un año — no correos ni mensajes de texto, sino información como qué números de teléfono han estado en contacto entre sí y datos que podrían ubicar geográficamente a una persona.
La parte más polémica permitiría al gobierno federal ordenar en secreto a las empresas que debiliten el cifrado o creen puertas traseras para acceder a información — lo que debilitaría el cifrado en general y crearía nuevas vulnerabilidades explotables por delincuentes.
#accesolegal #APPLE #billc22 #canada #ciberseguridad #cifrado #encriptacion #internet #mensajeria #PORTADA #privacidad #señal #SEGURIDAD #tecnologia #telecomunicaciones #Vigilancia
Signal no está sola. Apple también ha expresado su preocupación y declaró que «jamás» añadirá una puerta trasera a su cifrado de extremo a extremo, advirtiendo que podría no poder ofrecer ciertas funciones en Canadá como resultado. -
Signal amenaza con abandonar Canadá por el proyecto de ley C-22
Udbhav Tiwari, vicepresidente de estrategia y asuntos globales de Signal, advirtió que la empresa podría retirarse de Canadá si se le exige cumplir con el proyecto de ley C-22, conocido como la ley de «acceso legal». Afirmó que Signal «preferiría salir del país» antes que comprometer las promesas de privacidad que ha hecho a sus usuarios (The Globe and Mail).
Tiwari también advirtió que los cambios técnicos que exige la ley podrían dejar servicios de mensajería como Signal vulnerables a ciberataques, permitiendo potencialmente que hackers o adversarios extranjeros exploten las vulnerabilidades creadas deliberadamente.
¿Qué hace exactamente el proyecto de ley C-22?
La ley obligaría a empresas de telecomunicaciones, compañías de internet y otros proveedores de servicios electrónicos a modificar sus sistemas para permitir que la policía y el Servicio Canadiense de Inteligencia de Seguridad utilicen capacidades de vigilancia para detectar amenazas y actividad criminal.
Tiene dos componentes principales:
Uno exige que los «proveedores principales» conserven metadatos hasta por un año — no correos ni mensajes de texto, sino información como qué números de teléfono han estado en contacto entre sí y datos que podrían ubicar geográficamente a una persona.
La parte más polémica permitiría al gobierno federal ordenar en secreto a las empresas que debiliten el cifrado o creen puertas traseras para acceder a información — lo que debilitaría el cifrado en general y crearía nuevas vulnerabilidades explotables por delincuentes.
#accesolegal #APPLE #billc22 #canada #ciberseguridad #cifrado #encriptacion #internet #mensajeria #PORTADA #privacidad #señal #SEGURIDAD #tecnologia #telecomunicaciones #Vigilancia
Signal no está sola. Apple también ha expresado su preocupación y declaró que «jamás» añadirá una puerta trasera a su cifrado de extremo a extremo, advirtiendo que podría no poder ofrecer ciertas funciones en Canadá como resultado. -
Signal amenaza con abandonar Canadá por el proyecto de ley C-22
Udbhav Tiwari, vicepresidente de estrategia y asuntos globales de Signal, advirtió que la empresa podría retirarse de Canadá si se le exige cumplir con el proyecto de ley C-22, conocido como la ley de «acceso legal». Afirmó que Signal «preferiría salir del país» antes que comprometer las promesas de privacidad que ha hecho a sus usuarios (The Globe and Mail).
Tiwari también advirtió que los cambios técnicos que exige la ley podrían dejar servicios de mensajería como Signal vulnerables a ciberataques, permitiendo potencialmente que hackers o adversarios extranjeros exploten las vulnerabilidades creadas deliberadamente.
¿Qué hace exactamente el proyecto de ley C-22?
La ley obligaría a empresas de telecomunicaciones, compañías de internet y otros proveedores de servicios electrónicos a modificar sus sistemas para permitir que la policía y el Servicio Canadiense de Inteligencia de Seguridad utilicen capacidades de vigilancia para detectar amenazas y actividad criminal.
Tiene dos componentes principales:
Uno exige que los «proveedores principales» conserven metadatos hasta por un año — no correos ni mensajes de texto, sino información como qué números de teléfono han estado en contacto entre sí y datos que podrían ubicar geográficamente a una persona.
La parte más polémica permitiría al gobierno federal ordenar en secreto a las empresas que debiliten el cifrado o creen puertas traseras para acceder a información — lo que debilitaría el cifrado en general y crearía nuevas vulnerabilidades explotables por delincuentes.
#accesolegal #APPLE #billc22 #canada #ciberseguridad #cifrado #encriptacion #internet #mensajeria #PORTADA #privacidad #señal #SEGURIDAD #tecnologia #telecomunicaciones #Vigilancia
Signal no está sola. Apple también ha expresado su preocupación y declaró que «jamás» añadirá una puerta trasera a su cifrado de extremo a extremo, advirtiendo que podría no poder ofrecer ciertas funciones en Canadá como resultado. -
Signal amenaza con abandonar Canadá por el proyecto de ley C-22
Udbhav Tiwari, vicepresidente de estrategia y asuntos globales de Signal, advirtió que la empresa podría retirarse de Canadá si se le exige cumplir con el proyecto de ley C-22, conocido como la ley de «acceso legal». Afirmó que Signal «preferiría salir del país» antes que comprometer las promesas de privacidad que ha hecho a sus usuarios (The Globe and Mail).
Tiwari también advirtió que los cambios técnicos que exige la ley podrían dejar servicios de mensajería como Signal vulnerables a ciberataques, permitiendo potencialmente que hackers o adversarios extranjeros exploten las vulnerabilidades creadas deliberadamente.
¿Qué hace exactamente el proyecto de ley C-22?
La ley obligaría a empresas de telecomunicaciones, compañías de internet y otros proveedores de servicios electrónicos a modificar sus sistemas para permitir que la policía y el Servicio Canadiense de Inteligencia de Seguridad utilicen capacidades de vigilancia para detectar amenazas y actividad criminal.
Tiene dos componentes principales:
Uno exige que los «proveedores principales» conserven metadatos hasta por un año — no correos ni mensajes de texto, sino información como qué números de teléfono han estado en contacto entre sí y datos que podrían ubicar geográficamente a una persona.
La parte más polémica permitiría al gobierno federal ordenar en secreto a las empresas que debiliten el cifrado o creen puertas traseras para acceder a información — lo que debilitaría el cifrado en general y crearía nuevas vulnerabilidades explotables por delincuentes.
#accesolegal #APPLE #billc22 #canada #ciberseguridad #cifrado #encriptacion #internet #mensajeria #PORTADA #privacidad #señal #SEGURIDAD #tecnologia #telecomunicaciones #Vigilancia
Signal no está sola. Apple también ha expresado su preocupación y declaró que «jamás» añadirá una puerta trasera a su cifrado de extremo a extremo, advirtiendo que podría no poder ofrecer ciertas funciones en Canadá como resultado. -
Gmail despliega cifrado de extremo a extremo: solo emisor y receptor leen el correo. Ya funciona en Android, iOS y web (incluso si el destinatario no usa la app). https://aidoo.news/noticia/rqmv9a
#Privacidad #Encriptacion #CorreoElectronico #Google #SeguridadDigital
-
📰 «Desactivar Bitlocker es MUY fácil»
🔗 https://proxy.jesusysustics.com/2026/03/30045/
Puedes desactivar Bitlocker en Windows 11 muy fácil: descubre cómo hacerlo paso a paso y sus riesgos https://www.softzone.es/noticias/windows/desactivar-bitlocker-windows-11-precauciones/Bitlocker es un sistema de cifrado del almacenamiento que ofrece seguridad a cambio de una pérdida de rendimiento bastante notable. No vengo yo a recomendar desactivarlo sin más, pero esta pequeña guía puede ser útil para quien lo necesite.
Siendo sincero, solamente he necesitado asegurarme de su desactivación al actualizar la BIOS de mi equipo… y si alguien se atreve a llegar hasta ahí, está claro que encontrar la ocpión para desactivar el cifrado es totalmente trivial.
#️⃣ #Bitlocker #encriptación #guía #privacidad #SistemaOperativo #tutorial #Windows -
6 of 10
It's all automatic. Message Management: The modern system is designed for instant messaging. Messages are delivered and deleted from the server immediately after download. This solves the old problem of "email staying on the server," making the experience less secure and identical to Signal or Telegram, but with the fundamental difference that it uses the open MIME standard. Security and Servers: Since the app now handles account creation anonymously, you aren't giving your number or personal email to anyone. 100% Open Source, European, German, and now offers truly anonymous and simple registration.
#THREEMA 🇨🇭💼
The strength: Reliability and European Compliance. Threema is the standard for those who want security without too much technical thought, widely used by administrations and doctors in Germany and Switzerland. How it works: Uses an anonymous ID (a string of numbers and letters).
6 of 10 ⤵️
#Verschlüsselung #Encriptación #Decentralization #Decentralizzazione
-
6 of 10
It's all automatic. Message Management: The modern system is designed for instant messaging. Messages are delivered and deleted from the server immediately after download. This solves the old problem of "email staying on the server," making the experience less secure and identical to Signal or Telegram, but with the fundamental difference that it uses the open MIME standard. Security and Servers: Since the app now handles account creation anonymously, you aren't giving your number or personal email to anyone. 100% Open Source, European, German, and now offers truly anonymous and simple registration.
#THREEMA 🇨🇭💼
The strength: Reliability and European Compliance. Threema is the standard for those who want security without too much technical thought, widely used by administrations and doctors in Germany and Switzerland. How it works: Uses an anonymous ID (a string of numbers and letters).
6 of 10 ⤵️
#Verschlüsselung #Encriptación #Decentralization #Decentralizzazione
-
6 of 10
It's all automatic. Message Management: The modern system is designed for instant messaging. Messages are delivered and deleted from the server immediately after download. This solves the old problem of "email staying on the server," making the experience less secure and identical to Signal or Telegram, but with the fundamental difference that it uses the open MIME standard. Security and Servers: Since the app now handles account creation anonymously, you aren't giving your number or personal email to anyone. 100% Open Source, European, German, and now offers truly anonymous and simple registration.
#THREEMA 🇨🇭💼
The strength: Reliability and European Compliance. Threema is the standard for those who want security without too much technical thought, widely used by administrations and doctors in Germany and Switzerland. How it works: Uses an anonymous ID (a string of numbers and letters).
6 of 10 ⤵️
#Verschlüsselung #Encriptación #Decentralization #Decentralizzazione
-
6 of 10
It's all automatic. Message Management: The modern system is designed for instant messaging. Messages are delivered and deleted from the server immediately after download. This solves the old problem of "email staying on the server," making the experience less secure and identical to Signal or Telegram, but with the fundamental difference that it uses the open MIME standard. Security and Servers: Since the app now handles account creation anonymously, you aren't giving your number or personal email to anyone. 100% Open Source, European, German, and now offers truly anonymous and simple registration.
#THREEMA 🇨🇭💼
The strength: Reliability and European Compliance. Threema is the standard for those who want security without too much technical thought, widely used by administrations and doctors in Germany and Switzerland. How it works: Uses an anonymous ID (a string of numbers and letters).
6 of 10 ⤵️
#Verschlüsselung #Encriptación #Decentralization #Decentralizzazione
-
6 of 10
It's all automatic. Message Management: The modern system is designed for instant messaging. Messages are delivered and deleted from the server immediately after download. This solves the old problem of "email staying on the server," making the experience less secure and identical to Signal or Telegram, but with the fundamental difference that it uses the open MIME standard. Security and Servers: Since the app now handles account creation anonymously, you aren't giving your number or personal email to anyone. 100% Open Source, European, German, and now offers truly anonymous and simple registration.
#THREEMA 🇨🇭💼
The strength: Reliability and European Compliance. Threema is the standard for those who want security without too much technical thought, widely used by administrations and doctors in Germany and Switzerland. How it works: Uses an anonymous ID (a string of numbers and letters).
6 of 10 ⤵️
#Verschlüsselung #Encriptación #Decentralization #Decentralizzazione
-
4 of 10
...messages are encrypted during sending and are decoded by the other phone which has the key to read it; anyone intercepting the message intercepts an incomprehensible message that can only be deciphered by the recipient's mobile phone and no one else. Security: Offers very high metadata protection compared to standard apps.The compromise: Being so focused on privacy, the user experience can be less fluid than #WhatsApp.You have to save your contacts via long code strings or QR codes, and there isn't an "integrated address book" that automatically downloads contacts from your SIM.#SIMPLEX 🇬🇧
The strength: "No Metadata" Architecture. SimpleX has a unique and revolutionary approach. How it works: Unlike almost all other apps, SimpleX does not use a permanent "user identifier" like a phone number or a fixed username on their servers; instead, it uses temporary addresses for each connection.
4 of 10 ⤵️
#Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization
-
4 of 10
...messages are encrypted during sending and are decoded by the other phone which has the key to read it; anyone intercepting the message intercepts an incomprehensible message that can only be deciphered by the recipient's mobile phone and no one else. Security: Offers very high metadata protection compared to standard apps.The compromise: Being so focused on privacy, the user experience can be less fluid than #WhatsApp.You have to save your contacts via long code strings or QR codes, and there isn't an "integrated address book" that automatically downloads contacts from your SIM.#SIMPLEX 🇬🇧
The strength: "No Metadata" Architecture. SimpleX has a unique and revolutionary approach. How it works: Unlike almost all other apps, SimpleX does not use a permanent "user identifier" like a phone number or a fixed username on their servers; instead, it uses temporary addresses for each connection.
4 of 10 ⤵️
#Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization
-
4 of 10
...messages are encrypted during sending and are decoded by the other phone which has the key to read it; anyone intercepting the message intercepts an incomprehensible message that can only be deciphered by the recipient's mobile phone and no one else. Security: Offers very high metadata protection compared to standard apps.The compromise: Being so focused on privacy, the user experience can be less fluid than #WhatsApp.You have to save your contacts via long code strings or QR codes, and there isn't an "integrated address book" that automatically downloads contacts from your SIM.#SIMPLEX 🇬🇧
The strength: "No Metadata" Architecture. SimpleX has a unique and revolutionary approach. How it works: Unlike almost all other apps, SimpleX does not use a permanent "user identifier" like a phone number or a fixed username on their servers; instead, it uses temporary addresses for each connection.
4 of 10 ⤵️
#Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization
-
4 of 10
...messages are encrypted during sending and are decoded by the other phone which has the key to read it; anyone intercepting the message intercepts an incomprehensible message that can only be deciphered by the recipient's mobile phone and no one else. Security: Offers very high metadata protection compared to standard apps.The compromise: Being so focused on privacy, the user experience can be less fluid than #WhatsApp.You have to save your contacts via long code strings or QR codes, and there isn't an "integrated address book" that automatically downloads contacts from your SIM.#SIMPLEX 🇬🇧
The strength: "No Metadata" Architecture. SimpleX has a unique and revolutionary approach. How it works: Unlike almost all other apps, SimpleX does not use a permanent "user identifier" like a phone number or a fixed username on their servers; instead, it uses temporary addresses for each connection.
4 of 10 ⤵️
#Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization
-
4 of 10
...messages are encrypted during sending and are decoded by the other phone which has the key to read it; anyone intercepting the message intercepts an incomprehensible message that can only be deciphered by the recipient's mobile phone and no one else. Security: Offers very high metadata protection compared to standard apps.The compromise: Being so focused on privacy, the user experience can be less fluid than #WhatsApp.You have to save your contacts via long code strings or QR codes, and there isn't an "integrated address book" that automatically downloads contacts from your SIM.#SIMPLEX 🇬🇧
The strength: "No Metadata" Architecture. SimpleX has a unique and revolutionary approach. How it works: Unlike almost all other apps, SimpleX does not use a permanent "user identifier" like a phone number or a fixed username on their servers; instead, it uses temporary addresses for each connection.
4 of 10 ⤵️
#Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization
-
2 of 10
🎖️ #THREEMA 🇨🇭
Very popular in Germany
Uses an anonymous 8-digit Threema ID. Proprietary code (but audited).
Threema is used extensively by Swiss and German doctors and military due to the app's military-grade security. One-time payment of €5. @threemaap🐐 #ELEMENT X - #MATRIX 🇬🇧
Federated. Communicates with anyone using the Matrix protocol (you can write to anyone with a Matrix address even if they use a different app than yours = bridge). A bit complex for the general public; some have concerns about the security of bridges. Much loved by geeks, activist groups, and journalists who need to maintain an invisible but online profile.FREE&100% Open Source. @matrix
@element2 of 10 ⤵️
#Encryption #Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization #Decentralizzazione #Gedecentraliseerd
-
2 of 10
🎖️ #THREEMA 🇨🇭
Very popular in Germany
Uses an anonymous 8-digit Threema ID. Proprietary code (but audited).
Threema is used extensively by Swiss and German doctors and military due to the app's military-grade security. One-time payment of €5. @threemaap🐐 #ELEMENT X - #MATRIX 🇬🇧
Federated. Communicates with anyone using the Matrix protocol (you can write to anyone with a Matrix address even if they use a different app than yours = bridge). A bit complex for the general public; some have concerns about the security of bridges. Much loved by geeks, activist groups, and journalists who need to maintain an invisible but online profile.FREE&100% Open Source. @matrix
@element2 of 10 ⤵️
#Encryption #Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization #Decentralizzazione #Gedecentraliseerd
-
2 of 10
🎖️ #SIMPLEX 🇬🇧
Focus on maximum privacy
No user ID or phone number required. Seems slightly more complex to use. Uses decentralized servers. FREE&100% Open Source. @simplex🎖️ #THREEMA 🇨🇭
Very popular in Germany
Uses an anonymous 8-digit Threema ID. Proprietary code (but audited).
Threema is used extensively by Swiss and German doctors and military due to the app's military-grade security. One-time payment of €5. @threemaap🐐 #ELEMENT X - #MATRIX 🇬🇧
Federated. Communicates with anyone using the Matrix protocol (you can write to anyone with a Matrix address even if they use a different app than yours = bridge). A bit complex for the general public; some have concerns about the security of bridges. Much loved by geeks, activist groups, and journalists who need to maintain an invisible but online profile.FREE&100% Open Source. @matrix
@element2 of 10 ⤵️
#Encryption #Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization #Decentralizzazione #Gedecentraliseerd
-
2 of 10
🎖️ #THREEMA 🇨🇭
Very popular in Germany
Uses an anonymous 8-digit Threema ID. Proprietary code (but audited).
Threema is used extensively by Swiss and German doctors and military due to the app's military-grade security. One-time payment of €5. @threemaap🐐 #ELEMENT X - #MATRIX 🇬🇧
Federated. Communicates with anyone using the Matrix protocol (you can write to anyone with a Matrix address even if they use a different app than yours = bridge). A bit complex for the general public; some have concerns about the security of bridges. Much loved by geeks, activist groups, and journalists who need to maintain an invisible but online profile.FREE&100% Open Source. @matrix
@element2 of 10 ⤵️
#Encryption #Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization #Decentralizzazione #Gedecentraliseerd
-
2 of 10
🎖️ #SIMPLEX 🇬🇧
Focus on maximum privacy
No user ID or phone number required. Seems slightly more complex to use. Uses decentralized servers. FREE&100% Open Source. @simplex🎖️ #THREEMA 🇨🇭
Very popular in Germany
Uses an anonymous 8-digit Threema ID. Proprietary code (but audited).
Threema is used extensively by Swiss and German doctors and military due to the app's military-grade security. One-time payment of €5. @threemaap🐐 #ELEMENT X - #MATRIX 🇬🇧
Federated. Communicates with anyone using the Matrix protocol (you can write to anyone with a Matrix address even if they use a different app than yours = bridge). A bit complex for the general public; some have concerns about the security of bridges. Much loved by geeks, activist groups, and journalists who need to maintain an invisible but online profile.FREE&100% Open Source. @matrix
@element2 of 10 ⤵️
#Encryption #Crittografia #Encryptie #Verschlüsselung #Encriptación #Decentralization #Decentralizzazione #Gedecentraliseerd
-
📰 «Contraseña y cifrado, dos conceptos diferentes»
¿Contraseña o encriptación? Solo uno mantiene realmente nuestros datos a salvo https://www.softzone.es/noticias/seguridad/contrasena-encriptar-seguridad-datos/
🔗 https://proxy.jesusysustics.com/2025/10/27159/Son dos conceptos íntimamente relacionados y que a veces pueden confundirse a pesar de ser aspectos totalmente diferentes de una misma ambición, nuestra seguridad. La contraseña es la llave que da acceso a un servicio mientras que la encriptación impide que cualquiera (incluso con la contraseña filtrada) sepa lo que estamos haciendo en ese servicio.
#️⃣ #cifrado #conceptoInformático #contraseña #encriptación #Informática #seguridad
-
📰 «Contraseña y cifrado, dos conceptos diferentes»
¿Contraseña o encriptación? Solo uno mantiene realmente nuestros datos a salvo https://www.softzone.es/noticias/seguridad/contrasena-encriptar-seguridad-datos/
🔗 https://proxy.jesusysustics.com/2025/10/27159/Son dos conceptos íntimamente relacionados y que a veces pueden confundirse a pesar de ser aspectos totalmente diferentes de una misma ambición, nuestra seguridad. La contraseña es la llave que da acceso a un servicio mientras que la encriptación impide que cualquiera (incluso con la contraseña filtrada) sepa lo que estamos haciendo en ese servicio.
#️⃣ #cifrado #conceptoInformático #contraseña #encriptación #Informática #seguridad
-
#CryptoParty | Esta mesa se enfoca en el uso de VeraCrypt, una herramienta de software libre, para cifrar discos y resguardas la información sensible.
Esta mesa estará guiada por La Libre Tecnologías Comunitarias.
#cuidadosdigitales #cifrado #encriptacion #seguridadinformatica
-
#CryptoParty | Esta mesa se enfoca en el uso de VeraCrypt, una herramienta de software libre, para cifrar discos y resguardas la información sensible.
Esta mesa estará guiada por La Libre Tecnologías Comunitarias.
#cuidadosdigitales #cifrado #encriptacion #seguridadinformatica
-
#CryptoParty | Esta mesa se enfoca en el uso de VeraCrypt, una herramienta de software libre, para cifrar discos y resguardas la información sensible.
Esta mesa estará guiada por La Libre Tecnologías Comunitarias.
#cuidadosdigitales #cifrado #encriptacion #seguridadinformatica
-
Hoy en nuestro #SabadodeComunes (en primer sábado de cada mes)
#Assange #espionaje #vigilancia #encriptación #inteligenciaartificial
y avancemos en Repensar Internet, el #SoftwareLibre y la #CulturaLibrehttps://sursiendo.org/2024/07/hay-un-sabado-de-comun-denominadores-496/
-
Hoy en nuestro #SabadodeComunes (en primer sábado de cada mes)
#Assange #espionaje #vigilancia #encriptación #inteligenciaartificial
y avancemos en Repensar Internet, el #SoftwareLibre y la #CulturaLibrehttps://sursiendo.org/2024/07/hay-un-sabado-de-comun-denominadores-496/
-
Hoy en nuestro #SabadodeComunes (en primer sábado de cada mes)
#Assange #espionaje #vigilancia #encriptación #inteligenciaartificial
y avancemos en Repensar Internet, el #SoftwareLibre y la #CulturaLibrehttps://sursiendo.org/2024/07/hay-un-sabado-de-comun-denominadores-496/
-
Hoy en nuestro #SabadodeComunes (en primer sábado de cada mes)
#Assange #espionaje #vigilancia #encriptación #inteligenciaartificial
y avancemos en Repensar Internet, el #SoftwareLibre y la #CulturaLibrehttps://sursiendo.org/2024/07/hay-un-sabado-de-comun-denominadores-496/
-
Hoy en nuestro #SabadodeComunes (en primer sábado de cada mes)
#Assange #espionaje #vigilancia #encriptación #inteligenciaartificial
y avancemos en Repensar Internet, el #SoftwareLibre y la #CulturaLibrehttps://sursiendo.org/2024/07/hay-un-sabado-de-comun-denominadores-496/
-
Datos encriptados con llave publica PGPEn estos días de APIs e integraciones entre empresas la seguridad de los datos ya se empieza a tomar en serio, por lo que no es extraño que le soliciten encripte los datos antes de enviarlos.
Uno de los métodos de encriptados mas comúnmente usados con esos fines es la encriptación asimétrica vía una llave publica PGP/GPG, así que veamos como se hace.
Llave publica PGP / GPG
La encriptación asimétrica funciona de la siguiente manera, nosotros tenemos dos llaves diferentes, una que solo sirve para encriptar, la llave publica y una que solo sirve para desencriptar, la llave privada.
La llave publica la distribuimos con toda la gente de la que planeemos recibir información y con esta pueden generar un mensaje que solo puede ser descifrado con la llave privada.
La llave privada no la compartimos fuera de la organización y con esta podemos descifrar los mensajes encriptados con la llave publica.
Las llaves no son intercambiables la llave privada no sirve para generar mensajes y la llave publica no puede desencriptarlos por lo que debe ser cuidadoso en como maneja estos dos archivos.
Las llaves son manejadas por varios programas siendo los mas comunes, y los que le dan el nombre que usamos en esta entrada, el Pretty Good Privacy o PGP y el GNU Privacity Guard o GPG ambos son compatibles entre si y esas llaves funcionaran con el ejemplo que veremos a continuación.
Bouncy Castle
El framework mas popular y completo para encriptación en Java es Bouncy Castle y lo usaremos para
Dado que este framework cubre muchos métodos de encriptación esta dividido en múltiples módulos, para lo que necesitamos usaremos dos, el modulo bcpkix y bcpg los cuales puede encontrar en el repositorio de Maven en los siguientes enlaces:
Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
Detalle muy importante, Bouncy Castle es MUY dependiente de la versión del Kit de Desarrollo Java (JDK) que este utilizando y por tanto de la versión de la maquina virtual donde lo desea correr, estos enlaces son para el Java 18, si va a utilizar otra versión busque en Maven las versiones con versión JDK que planea usar y utilice esos, de otro modo es posible vea errores extraños al ejecutar su programa.
Si esta utilizando NetBeans le recomiendo agregue ambos módulos desde el dialogo de agregar dependencias al proyecto, ya que se ese se encargara de buscar la versión adecuada según la plataforma Java que halla configurado en su proyecto.
Crear una llave publica GPG / PGP
Si apenas esta agregando el encriptado a su programa lo mas posible es que no tenga una llave publica para realizar pruebas, en ese caso le recomiendo genere una para pruebas con ayuda de este muy útil sitio:
pgpkeygen.com, utileria web para generar llaves GPG / PGPSu uso es sencillo, solo llene la información, presione «Generate Keys» y después de unos momentos tendrá el par de llaves la publica y privada, las cuales podrá descargar con el botón correspondiente, para nuestro ejemplo solo requeriremos de la llave publica.
Usando ese sitio se crearon las llaves usadas en este ejemplo, las cuales se incluyen como los archivos llave.gpg que contiene la llave publica y llavePrivada.gpg que contiene la llave privada.
Notara que uno de los campos en la utilería es PassPhrase, esta es la contraseña de la llave privada, la cual distingue entre mayúsculas y minúsculas y es necesaria para descifrar el mensaje, no hay forma de recuperarla desde las llaves así que asegúrese de no perderla.
La contraseña de la llave privada del ejemplo es hashHash téngalo en mente ya que usaremos esto al final del ejemplo.
Ejemplo
El proceso para aplicar la encartación es el siguiente:
- Cargar la llave publica desde su archivo a un InputFileStream
- Inicializar Bouncy Castle
- Convertir el mensaje que deseamos encriptar a un arreglo de bytes
- Obtener el tamaño de ese arreglo de bytes
- Convertir el arreglo de bytes a un ByteArrayInputStream
- Crear un OutputStream para almacenar el resultado
- Crear el objeto compresor de datos
- Crear la configuración del encriptador
- Crear el encriptador
- Convertir el Stream de la llave publica a PGPPublicKey
- Creamos el método de encriptado JcePublicKeyKeyEncryptionMethodGenerator
- Agregamos ese método al encriptador
- Si se usara la armadura convertirmos el Stream de salida en ArmoredOutputStream
- Aplicamos la encriptacion
- Convertidos los datos encriptados a un outputStream con PGPLiteralDataGenerator
- Convertimos el OutputStream a un arreglo de bytes
- Convertimos el arreglo de bytes a String
- Mostramos en pantalla
Notara que los datos a encriptar, la llave publica y los datos encriptados se manejan como Streams de diversos tipos, esto es por requerimientos de Bouncy Castle
Ahora veamos el código, para este ejemplo se usan dos clases, App que es la clase principal y EncriptadorDAO que efectúa el grueso del proceso, las lineas estan comentadas para hacer fácil seguir lo que hacen.
App.java
package mx.hash.encriptado;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.openpgp.PGPException;public class App { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.App"); public static void main(String[] args) { FileInputStream streamLlavePublica = null; try { File llavePublica = new File("llave.gpg"); streamLlavePublica = new FileInputStream(llavePublica); EncriptadorDAO encriptadorDAO = new EncriptadorDAO(); encriptadorDAO.inicializarBouncyCastle(); String texto = "HOLA-MUNDO"; byte[] datos = texto.getBytes(); ByteArrayInputStream datosStream = new ByteArrayInputStream(datos); Integer longitudDatos = datos.length; ByteArrayOutputStream salidaStream = new ByteArrayOutputStream(); encriptadorDAO.encriptar(salidaStream, datosStream, longitudDatos, streamLlavePublica); byte[] datosEncriptados = salidaStream.toByteArray(); String resultado = new String(datosEncriptados); LOGGER.log(Level.INFO, resultado); streamLlavePublica.close(); } catch (FileNotFoundException ex) { LOGGER.log(Level.SEVERE, "Archivo llave no encontrado"); ex.printStackTrace(); } catch (IOException | PGPException ex) { LOGGER.log(Level.SEVERE, "Error de entrada/salida"); ex.printStackTrace(); } }}EncriptadorDAO.java
/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */package mx.hash.encriptado;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.security.SecureRandom;import java.security.Security;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.util.Arrays;import java.util.Date;import java.util.Iterator;import java.util.Optional;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.bcpg.ArmoredOutputStream;import org.bouncycastle.bcpg.CompressionAlgorithmTags;import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.openpgp.PGPCompressedDataGenerator;import org.bouncycastle.openpgp.PGPEncryptedDataGenerator;import org.bouncycastle.openpgp.PGPException;import org.bouncycastle.openpgp.PGPLiteralData;import org.bouncycastle.openpgp.PGPLiteralDataGenerator;import org.bouncycastle.openpgp.PGPPublicKey;import org.bouncycastle.openpgp.PGPPublicKeyRing;import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;import org.bouncycastle.openpgp.PGPUtil;import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator;import org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder;import org.bouncycastle.openpgp.operator.jcajce.JcePublicKeyKeyEncryptionMethodGenerator;/** * * @author david */public class EncriptadorDAO { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.EncriptadorDAO"); private final int algoritmoCompresion = CompressionAlgorithmTags.ZIP; private final int algoritmoLlaveSimetrica = SymmetricKeyAlgorithmTags.AES_128; private final boolean armadura = true; private final boolean chequeoIntegridad = true; private final int bufferSize = 1 << 16; public void inicializarBouncyCastle() { LOGGER.log(Level.INFO, "Inicializando Bouncy Castle"); Security.addProvider(new BouncyCastleProvider()); } public void encriptar(OutputStream encriptado, InputStream datosStream, long longitudDatos, InputStream llavePublicaStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Encriptando datos"); // Compresor de datos PGPCompressedDataGenerator compresor = new PGPCompressedDataGenerator(algoritmoCompresion); // Objeto con las configuraciones para encriptacion JcePGPDataEncryptorBuilder constructorPGP = new JcePGPDataEncryptorBuilder(algoritmoLlaveSimetrica); constructorPGP.setWithIntegrityPacket(chequeoIntegridad); constructorPGP.setSecureRandom(new SecureRandom()); constructorPGP.setProvider(BouncyCastleProvider.PROVIDER_NAME); // Encriptador de datos PGPEncryptedDataGenerator pgpEncryptedDataGenerator = new PGPEncryptedDataGenerator(constructorPGP); // Objeto de la llave publica PGPPublicKey llavePublica = obtenerLlavePublica(llavePublicaStream); // Metodo de encriptado JcePublicKeyKeyEncryptionMethodGenerator metodo = new JcePublicKeyKeyEncryptionMethodGenerator(llavePublica); // Agregamos el metodo de encriptado deseado al encriptador pgpEncryptedDataGenerator.addMethod(metodo); // Si se esta usando la armadura generamos el Stream adecuado if (armadura) { encriptado = new ArmoredOutputStream(encriptado); } // Creamos el Stream con los datos encriptados OutputStream cipherOutStream = pgpEncryptedDataGenerator.open(encriptado, new byte[bufferSize]); // Generamos datos finales apartir del Stream de datos encriptados generarDatos(compresor.open(cipherOutStream), datosStream, longitudDatos, bufferSize); // Cerramos los streams compresor.close(); cipherOutStream.close(); encriptado.close(); } public PGPPublicKey obtenerLlavePublica(InputStream keyInputStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Obteniendo llave Publica"); PGPPublicKeyRingCollection pgpPublicKeyRings = new PGPPublicKeyRingCollection( PGPUtil.getDecoderStream(keyInputStream), new JcaKeyFingerprintCalculator()); Iterator<PGPPublicKeyRing> keyRingIterator = pgpPublicKeyRings.getKeyRings(); while (keyRingIterator.hasNext()) { PGPPublicKeyRing pgpPublicKeyRing = keyRingIterator.next(); Optional<PGPPublicKey> pgpPublicKey = extraerPGPKey(pgpPublicKeyRing); if (pgpPublicKey.isPresent()) { return pgpPublicKey.get(); } } throw new PGPException("Llave publica invalida"); } public Optional<PGPPublicKey> extraerPGPKey(PGPPublicKeyRing pgpPublicKeyRing) { LOGGER.log(Level.INFO, "Extrayendo llave PGP"); for (PGPPublicKey publicKey : pgpPublicKeyRing) { if (publicKey.isEncryptionKey()) { return Optional.of(publicKey); } } return Optional.empty(); } public void generarDatos(OutputStream copia, InputStream datosOriginales, long longitudDatos, int bufferSize) throws IOException { LOGGER.log(Level.INFO, "Generandos datos finales"); PGPLiteralDataGenerator literalDataGenerator = new PGPLiteralDataGenerator(); OutputStream pOut = literalDataGenerator.open(copia, PGPLiteralData.BINARY, PGPLiteralData.CONSOLE, Date.from(LocalDateTime.now().toInstant(ZoneOffset.UTC)), new byte[bufferSize]); byte[] buffer = new byte[bufferSize]; try { int len; long totalBytesWritten = 0L; while (totalBytesWritten <= longitudDatos && (len = datosOriginales.read(buffer)) > 0) { pOut.write(buffer, 0, len); totalBytesWritten += len; } pOut.close(); } finally { // Clearing buffer Arrays.fill(buffer, (byte) 0); // Closing inputstream datosOriginales.close(); } }}Bastante mas código de lo que tal vez esperaba, ¿No? Esto es mas que nada por la necesidad de un par de funciones conversoras de formatos relacionadas con la estructura interna de una llave publica, algo que no ocupamos mover por el momento.
Si recuerda del proceso listado a principio de esta sección los pasos del 7 al 14 ocurren en la función EncriptadorDAO.encriptar.
Ya que corra el programa obtendrá una salida similar a esta, la encriptación usa la fecha y hora del sistema como uno de los parámetros así que no le extrañe si cada vez que corra el programa obtiene una salida diferente.
Salida del programaDonde lo que esta entre —–BEGIN PGP MESSAGE—– y —–END PGP MESSAGE—– es nuestro mensaje encriptado
-----BEGIN PGP MESSAGE-----Version: BCPG v1.70hQEMAwOZTa/i2J0tAQf/YhzovUXVdSxFAeQNkWrBFnVx32wa6P2o+dqrlGSAxXs1XIsFxgbu/9ZXv2OTbHGj3X/TblRbw4+tnAqkrYyjwnzfhC1eqgcel4uT/mqsmNKh5JOstOQENDvHzd8G6yvFEUAXA+UJDOhudME5vxtj6yV8VNWgimqCXBFkU2Yd47KutI1W+2nrtjliYPbZybhBCdi0lN9w9HSCoNZY9CBN8OGSq1G7ukIT89X8r0p0pOzI2RwsLt1/7GZRGgrU7VZNumaxxxFah3ETjlOAOPNyN/O0IO+a7fWsMbTldGv0c1jD43i+uArhWehaFcDMPbDwDb9NkvbKCHSzsCZJayfzqdJHAfDbfiih0Iz2U+w0PEPJlVKymUuIJwYdc2gSr0QOeWwV8vI9LGCmQMzSkj37WtZ9ZdBK0BJxbDyBaAhfRmKmZSnW1R7SwdU==q8RV-----END PGP MESSAGE-----
Verificando salida del programa
Y seguramente se preguntara, ¿Hay alguna forma de validar que todo saliera bien?, claro que la hay, ya que tenemos la llave privada y la contraseña de la misma podemos ir a cualquier aplicación que descifre PGP / GPG y descifrar el mensaje.
Para este ejemplo suguiero https://pgptool.org/ en especifico la pestaña Decrypt (+Verify)
Decrypt (+Verify) de PGP ToolEn «Receiver’s Private Key (For decryption purpose)» cargaremos la llave privada del ejemplo (llavePrivada.gpg) , pondremos la contraseña de la llave privada en «Passphrase for private key» y copiaremos TODO el mensaje encriptado (incluso los guiones) al cuadro de texto «Encrypted PGP Message»
Datos ingresadosYa que tenga todos los datos en si lugar presione «Decrypt the message»
Mensaje descifradoY obtendrá el mensaje que encriptamos HOLA-MUNDO.
Con esto podemos estar seguros que la encriptación se aplico correctamente, ya que una aplicación adicional fue capaz de descifrar el mensaje.
Notara que aparece un mensaje amarillo que dice «Decrypted, but incorrect fingerprint – signature not verified. If this message encrypted without signature – ignore this message.» esto se debe a que no aplicamos una firma a la encriptación, esto es un proceso adicional que por el momento no requerimos.
Si desea el código completo de este ejemplo puede encontrarlo aquí:
https://gitlab.com/ticomWebcomic/encriptadopgp
Espero que esta entrada le fuera de utilidad, nos vemos en la próxima y si desea cooperar con la causa.
https://hashblogeando.wordpress.com/2024/07/02/encriptar-con-una-llave-publica-pgp-gpg-en-java/
-
Datos encriptados con llave publica PGPEn estos días de APIs e integraciones entre empresas la seguridad de los datos ya se empieza a tomar en serio, por lo que no es extraño que le soliciten encripte los datos antes de enviarlos.
Uno de los métodos de encriptados mas comúnmente usados con esos fines es la encriptación asimétrica vía una llave publica PGP/GPG, así que veamos como se hace.
Llave publica PGP / GPG
La encriptación asimétrica funciona de la siguiente manera, nosotros tenemos dos llaves diferentes, una que solo sirve para encriptar, la llave publica y una que solo sirve para desencriptar, la llave privada.
La llave publica la distribuimos con toda la gente de la que planeemos recibir información y con esta pueden generar un mensaje que solo puede ser descifrado con la llave privada.
La llave privada no la compartimos fuera de la organización y con esta podemos descifrar los mensajes encriptados con la llave publica.
Las llaves no son intercambiables la llave privada no sirve para generar mensajes y la llave publica no puede desencriptarlos por lo que debe ser cuidadoso en como maneja estos dos archivos.
Las llaves son manejadas por varios programas siendo los mas comunes, y los que le dan el nombre que usamos en esta entrada, el Pretty Good Privacy o PGP y el GNU Privacity Guard o GPG ambos son compatibles entre si y esas llaves funcionaran con el ejemplo que veremos a continuación.
Bouncy Castle
El framework mas popular y completo para encriptación en Java es Bouncy Castle y lo usaremos para
Dado que este framework cubre muchos métodos de encriptación esta dividido en múltiples módulos, para lo que necesitamos usaremos dos, el modulo bcpkix y bcpg los cuales puede encontrar en el repositorio de Maven en los siguientes enlaces:
Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
Detalle muy importante, Bouncy Castle es MUY dependiente de la versión del Kit de Desarrollo Java (JDK) que este utilizando y por tanto de la versión de la maquina virtual donde lo desea correr, estos enlaces son para el Java 18, si va a utilizar otra versión busque en Maven las versiones con versión JDK que planea usar y utilice esos, de otro modo es posible vea errores extraños al ejecutar su programa.
Si esta utilizando NetBeans le recomiendo agregue ambos módulos desde el dialogo de agregar dependencias al proyecto, ya que se ese se encargara de buscar la versión adecuada según la plataforma Java que halla configurado en su proyecto.
Crear una llave publica GPG / PGP
Si apenas esta agregando el encriptado a su programa lo mas posible es que no tenga una llave publica para realizar pruebas, en ese caso le recomiendo genere una para pruebas con ayuda de este muy útil sitio:
pgpkeygen.com, utileria web para generar llaves GPG / PGPSu uso es sencillo, solo llene la información, presione «Generate Keys» y después de unos momentos tendrá el par de llaves la publica y privada, las cuales podrá descargar con el botón correspondiente, para nuestro ejemplo solo requeriremos de la llave publica.
Usando ese sitio se crearon las llaves usadas en este ejemplo, las cuales se incluyen como los archivos llave.gpg que contiene la llave publica y llavePrivada.gpg que contiene la llave privada.
Notara que uno de los campos en la utilería es PassPhrase, esta es la contraseña de la llave privada, la cual distingue entre mayúsculas y minúsculas y es necesaria para descifrar el mensaje, no hay forma de recuperarla desde las llaves así que asegúrese de no perderla.
La contraseña de la llave privada del ejemplo es hashHash téngalo en mente ya que usaremos esto al final del ejemplo.
Ejemplo
El proceso para aplicar la encartación es el siguiente:
- Cargar la llave publica desde su archivo a un InputFileStream
- Inicializar Bouncy Castle
- Convertir el mensaje que deseamos encriptar a un arreglo de bytes
- Obtener el tamaño de ese arreglo de bytes
- Convertir el arreglo de bytes a un ByteArrayInputStream
- Crear un OutputStream para almacenar el resultado
- Crear el objeto compresor de datos
- Crear la configuración del encriptador
- Crear el encriptador
- Convertir el Stream de la llave publica a PGPPublicKey
- Creamos el método de encriptado JcePublicKeyKeyEncryptionMethodGenerator
- Agregamos ese método al encriptador
- Si se usara la armadura convertirmos el Stream de salida en ArmoredOutputStream
- Aplicamos la encriptacion
- Convertidos los datos encriptados a un outputStream con PGPLiteralDataGenerator
- Convertimos el OutputStream a un arreglo de bytes
- Convertimos el arreglo de bytes a String
- Mostramos en pantalla
Notara que los datos a encriptar, la llave publica y los datos encriptados se manejan como Streams de diversos tipos, esto es por requerimientos de Bouncy Castle
Ahora veamos el código, para este ejemplo se usan dos clases, App que es la clase principal y EncriptadorDAO que efectúa el grueso del proceso, las lineas estan comentadas para hacer fácil seguir lo que hacen.
App.java
package mx.hash.encriptado;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.openpgp.PGPException;public class App { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.App"); public static void main(String[] args) { FileInputStream streamLlavePublica = null; try { File llavePublica = new File("llave.gpg"); streamLlavePublica = new FileInputStream(llavePublica); EncriptadorDAO encriptadorDAO = new EncriptadorDAO(); encriptadorDAO.inicializarBouncyCastle(); String texto = "HOLA-MUNDO"; byte[] datos = texto.getBytes(); ByteArrayInputStream datosStream = new ByteArrayInputStream(datos); Integer longitudDatos = datos.length; ByteArrayOutputStream salidaStream = new ByteArrayOutputStream(); encriptadorDAO.encriptar(salidaStream, datosStream, longitudDatos, streamLlavePublica); byte[] datosEncriptados = salidaStream.toByteArray(); String resultado = new String(datosEncriptados); LOGGER.log(Level.INFO, resultado); streamLlavePublica.close(); } catch (FileNotFoundException ex) { LOGGER.log(Level.SEVERE, "Archivo llave no encontrado"); ex.printStackTrace(); } catch (IOException | PGPException ex) { LOGGER.log(Level.SEVERE, "Error de entrada/salida"); ex.printStackTrace(); } }}EncriptadorDAO.java
/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */package mx.hash.encriptado;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.security.SecureRandom;import java.security.Security;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.util.Arrays;import java.util.Date;import java.util.Iterator;import java.util.Optional;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.bcpg.ArmoredOutputStream;import org.bouncycastle.bcpg.CompressionAlgorithmTags;import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.openpgp.PGPCompressedDataGenerator;import org.bouncycastle.openpgp.PGPEncryptedDataGenerator;import org.bouncycastle.openpgp.PGPException;import org.bouncycastle.openpgp.PGPLiteralData;import org.bouncycastle.openpgp.PGPLiteralDataGenerator;import org.bouncycastle.openpgp.PGPPublicKey;import org.bouncycastle.openpgp.PGPPublicKeyRing;import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;import org.bouncycastle.openpgp.PGPUtil;import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator;import org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder;import org.bouncycastle.openpgp.operator.jcajce.JcePublicKeyKeyEncryptionMethodGenerator;/** * * @author david */public class EncriptadorDAO { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.EncriptadorDAO"); private final int algoritmoCompresion = CompressionAlgorithmTags.ZIP; private final int algoritmoLlaveSimetrica = SymmetricKeyAlgorithmTags.AES_128; private final boolean armadura = true; private final boolean chequeoIntegridad = true; private final int bufferSize = 1 << 16; public void inicializarBouncyCastle() { LOGGER.log(Level.INFO, "Inicializando Bouncy Castle"); Security.addProvider(new BouncyCastleProvider()); } public void encriptar(OutputStream encriptado, InputStream datosStream, long longitudDatos, InputStream llavePublicaStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Encriptando datos"); // Compresor de datos PGPCompressedDataGenerator compresor = new PGPCompressedDataGenerator(algoritmoCompresion); // Objeto con las configuraciones para encriptacion JcePGPDataEncryptorBuilder constructorPGP = new JcePGPDataEncryptorBuilder(algoritmoLlaveSimetrica); constructorPGP.setWithIntegrityPacket(chequeoIntegridad); constructorPGP.setSecureRandom(new SecureRandom()); constructorPGP.setProvider(BouncyCastleProvider.PROVIDER_NAME); // Encriptador de datos PGPEncryptedDataGenerator pgpEncryptedDataGenerator = new PGPEncryptedDataGenerator(constructorPGP); // Objeto de la llave publica PGPPublicKey llavePublica = obtenerLlavePublica(llavePublicaStream); // Metodo de encriptado JcePublicKeyKeyEncryptionMethodGenerator metodo = new JcePublicKeyKeyEncryptionMethodGenerator(llavePublica); // Agregamos el metodo de encriptado deseado al encriptador pgpEncryptedDataGenerator.addMethod(metodo); // Si se esta usando la armadura generamos el Stream adecuado if (armadura) { encriptado = new ArmoredOutputStream(encriptado); } // Creamos el Stream con los datos encriptados OutputStream cipherOutStream = pgpEncryptedDataGenerator.open(encriptado, new byte[bufferSize]); // Generamos datos finales apartir del Stream de datos encriptados generarDatos(compresor.open(cipherOutStream), datosStream, longitudDatos, bufferSize); // Cerramos los streams compresor.close(); cipherOutStream.close(); encriptado.close(); } public PGPPublicKey obtenerLlavePublica(InputStream keyInputStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Obteniendo llave Publica"); PGPPublicKeyRingCollection pgpPublicKeyRings = new PGPPublicKeyRingCollection( PGPUtil.getDecoderStream(keyInputStream), new JcaKeyFingerprintCalculator()); Iterator<PGPPublicKeyRing> keyRingIterator = pgpPublicKeyRings.getKeyRings(); while (keyRingIterator.hasNext()) { PGPPublicKeyRing pgpPublicKeyRing = keyRingIterator.next(); Optional<PGPPublicKey> pgpPublicKey = extraerPGPKey(pgpPublicKeyRing); if (pgpPublicKey.isPresent()) { return pgpPublicKey.get(); } } throw new PGPException("Llave publica invalida"); } public Optional<PGPPublicKey> extraerPGPKey(PGPPublicKeyRing pgpPublicKeyRing) { LOGGER.log(Level.INFO, "Extrayendo llave PGP"); for (PGPPublicKey publicKey : pgpPublicKeyRing) { if (publicKey.isEncryptionKey()) { return Optional.of(publicKey); } } return Optional.empty(); } public void generarDatos(OutputStream copia, InputStream datosOriginales, long longitudDatos, int bufferSize) throws IOException { LOGGER.log(Level.INFO, "Generandos datos finales"); PGPLiteralDataGenerator literalDataGenerator = new PGPLiteralDataGenerator(); OutputStream pOut = literalDataGenerator.open(copia, PGPLiteralData.BINARY, PGPLiteralData.CONSOLE, Date.from(LocalDateTime.now().toInstant(ZoneOffset.UTC)), new byte[bufferSize]); byte[] buffer = new byte[bufferSize]; try { int len; long totalBytesWritten = 0L; while (totalBytesWritten <= longitudDatos && (len = datosOriginales.read(buffer)) > 0) { pOut.write(buffer, 0, len); totalBytesWritten += len; } pOut.close(); } finally { // Clearing buffer Arrays.fill(buffer, (byte) 0); // Closing inputstream datosOriginales.close(); } }}Bastante mas código de lo que tal vez esperaba, ¿No? Esto es mas que nada por la necesidad de un par de funciones conversoras de formatos relacionadas con la estructura interna de una llave publica, algo que no ocupamos mover por el momento.
Si recuerda del proceso listado a principio de esta sección los pasos del 7 al 14 ocurren en la función EncriptadorDAO.encriptar.
Ya que corra el programa obtendrá una salida similar a esta, la encriptación usa la fecha y hora del sistema como uno de los parámetros así que no le extrañe si cada vez que corra el programa obtiene una salida diferente.
Salida del programaDonde lo que esta entre —–BEGIN PGP MESSAGE—– y —–END PGP MESSAGE—– es nuestro mensaje encriptado
-----BEGIN PGP MESSAGE-----Version: BCPG v1.70hQEMAwOZTa/i2J0tAQf/YhzovUXVdSxFAeQNkWrBFnVx32wa6P2o+dqrlGSAxXs1XIsFxgbu/9ZXv2OTbHGj3X/TblRbw4+tnAqkrYyjwnzfhC1eqgcel4uT/mqsmNKh5JOstOQENDvHzd8G6yvFEUAXA+UJDOhudME5vxtj6yV8VNWgimqCXBFkU2Yd47KutI1W+2nrtjliYPbZybhBCdi0lN9w9HSCoNZY9CBN8OGSq1G7ukIT89X8r0p0pOzI2RwsLt1/7GZRGgrU7VZNumaxxxFah3ETjlOAOPNyN/O0IO+a7fWsMbTldGv0c1jD43i+uArhWehaFcDMPbDwDb9NkvbKCHSzsCZJayfzqdJHAfDbfiih0Iz2U+w0PEPJlVKymUuIJwYdc2gSr0QOeWwV8vI9LGCmQMzSkj37WtZ9ZdBK0BJxbDyBaAhfRmKmZSnW1R7SwdU==q8RV-----END PGP MESSAGE-----
Verificando salida del programa
Y seguramente se preguntara, ¿Hay alguna forma de validar que todo saliera bien?, claro que la hay, ya que tenemos la llave privada y la contraseña de la misma podemos ir a cualquier aplicación que descifre PGP / GPG y descifrar el mensaje.
Para este ejemplo suguiero https://pgptool.org/ en especifico la pestaña Decrypt (+Verify)
Decrypt (+Verify) de PGP ToolEn «Receiver’s Private Key (For decryption purpose)» cargaremos la llave privada del ejemplo (llavePrivada.gpg) , pondremos la contraseña de la llave privada en «Passphrase for private key» y copiaremos TODO el mensaje encriptado (incluso los guiones) al cuadro de texto «Encrypted PGP Message»
Datos ingresadosYa que tenga todos los datos en si lugar presione «Decrypt the message»
Mensaje descifradoY obtendrá el mensaje que encriptamos HOLA-MUNDO.
Con esto podemos estar seguros que la encriptación se aplico correctamente, ya que una aplicación adicional fue capaz de descifrar el mensaje.
Notara que aparece un mensaje amarillo que dice «Decrypted, but incorrect fingerprint – signature not verified. If this message encrypted without signature – ignore this message.» esto se debe a que no aplicamos una firma a la encriptación, esto es un proceso adicional que por el momento no requerimos.
Si desea el código completo de este ejemplo puede encontrarlo aquí:
https://gitlab.com/ticomWebcomic/encriptadopgp
Espero que esta entrada le fuera de utilidad, nos vemos en la próxima y si desea cooperar con la causa.
https://hashblogeando.wordpress.com/2024/07/02/encriptar-con-una-llave-publica-pgp-gpg-en-java/
-
Datos encriptados con llave publica PGPEn estos días de APIs e integraciones entre empresas la seguridad de los datos ya se empieza a tomar en serio, por lo que no es extraño que le soliciten encripte los datos antes de enviarlos.
Uno de los métodos de encriptados mas comúnmente usados con esos fines es la encriptación asimétrica vía una llave publica PGP/GPG, así que veamos como se hace.
Llave publica PGP / GPG
La encriptación asimétrica funciona de la siguiente manera, nosotros tenemos dos llaves diferentes, una que solo sirve para encriptar, la llave publica y una que solo sirve para desencriptar, la llave privada.
La llave publica la distribuimos con toda la gente de la que planeemos recibir información y con esta pueden generar un mensaje que solo puede ser descifrado con la llave privada.
La llave privada no la compartimos fuera de la organización y con esta podemos descifrar los mensajes encriptados con la llave publica.
Las llaves no son intercambiables la llave privada no sirve para generar mensajes y la llave publica no puede desencriptarlos por lo que debe ser cuidadoso en como maneja estos dos archivos.
Las llaves son manejadas por varios programas siendo los mas comunes, y los que le dan el nombre que usamos en esta entrada, el Pretty Good Privacy o PGP y el GNU Privacity Guard o GPG ambos son compatibles entre si y esas llaves funcionaran con el ejemplo que veremos a continuación.
Bouncy Castle
El framework mas popular y completo para encriptación en Java es Bouncy Castle y lo usaremos para
Dado que este framework cubre muchos métodos de encriptación esta dividido en múltiples módulos, para lo que necesitamos usaremos dos, el modulo bcpkix y bcpg los cuales puede encontrar en el repositorio de Maven en los siguientes enlaces:
Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
Detalle muy importante, Bouncy Castle es MUY dependiente de la versión del Kit de Desarrollo Java (JDK) que este utilizando y por tanto de la versión de la maquina virtual donde lo desea correr, estos enlaces son para el Java 18, si va a utilizar otra versión busque en Maven las versiones con versión JDK que planea usar y utilice esos, de otro modo es posible vea errores extraños al ejecutar su programa.
Si esta utilizando NetBeans le recomiendo agregue ambos módulos desde el dialogo de agregar dependencias al proyecto, ya que se ese se encargara de buscar la versión adecuada según la plataforma Java que halla configurado en su proyecto.
Crear una llave publica GPG / PGP
Si apenas esta agregando el encriptado a su programa lo mas posible es que no tenga una llave publica para realizar pruebas, en ese caso le recomiendo genere una para pruebas con ayuda de este muy útil sitio:
pgpkeygen.com, utileria web para generar llaves GPG / PGPSu uso es sencillo, solo llene la información, presione «Generate Keys» y después de unos momentos tendrá el par de llaves la publica y privada, las cuales podrá descargar con el botón correspondiente, para nuestro ejemplo solo requeriremos de la llave publica.
Usando ese sitio se crearon las llaves usadas en este ejemplo, las cuales se incluyen como los archivos llave.gpg que contiene la llave publica y llavePrivada.gpg que contiene la llave privada.
Notara que uno de los campos en la utilería es PassPhrase, esta es la contraseña de la llave privada, la cual distingue entre mayúsculas y minúsculas y es necesaria para descifrar el mensaje, no hay forma de recuperarla desde las llaves así que asegúrese de no perderla.
La contraseña de la llave privada del ejemplo es hashHash téngalo en mente ya que usaremos esto al final del ejemplo.
Ejemplo
El proceso para aplicar la encartación es el siguiente:
- Cargar la llave publica desde su archivo a un InputFileStream
- Inicializar Bouncy Castle
- Convertir el mensaje que deseamos encriptar a un arreglo de bytes
- Obtener el tamaño de ese arreglo de bytes
- Convertir el arreglo de bytes a un ByteArrayInputStream
- Crear un OutputStream para almacenar el resultado
- Crear el objeto compresor de datos
- Crear la configuración del encriptador
- Crear el encriptador
- Convertir el Stream de la llave publica a PGPPublicKey
- Creamos el método de encriptado JcePublicKeyKeyEncryptionMethodGenerator
- Agregamos ese método al encriptador
- Si se usara la armadura convertirmos el Stream de salida en ArmoredOutputStream
- Aplicamos la encriptacion
- Convertidos los datos encriptados a un outputStream con PGPLiteralDataGenerator
- Convertimos el OutputStream a un arreglo de bytes
- Convertimos el arreglo de bytes a String
- Mostramos en pantalla
Notara que los datos a encriptar, la llave publica y los datos encriptados se manejan como Streams de diversos tipos, esto es por requerimientos de Bouncy Castle
Ahora veamos el código, para este ejemplo se usan dos clases, App que es la clase principal y EncriptadorDAO que efectúa el grueso del proceso, las lineas estan comentadas para hacer fácil seguir lo que hacen.
App.java
package mx.hash.encriptado;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.openpgp.PGPException;public class App { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.App"); public static void main(String[] args) { FileInputStream streamLlavePublica = null; try { File llavePublica = new File("llave.gpg"); streamLlavePublica = new FileInputStream(llavePublica); EncriptadorDAO encriptadorDAO = new EncriptadorDAO(); encriptadorDAO.inicializarBouncyCastle(); String texto = "HOLA-MUNDO"; byte[] datos = texto.getBytes(); ByteArrayInputStream datosStream = new ByteArrayInputStream(datos); Integer longitudDatos = datos.length; ByteArrayOutputStream salidaStream = new ByteArrayOutputStream(); encriptadorDAO.encriptar(salidaStream, datosStream, longitudDatos, streamLlavePublica); byte[] datosEncriptados = salidaStream.toByteArray(); String resultado = new String(datosEncriptados); LOGGER.log(Level.INFO, resultado); streamLlavePublica.close(); } catch (FileNotFoundException ex) { LOGGER.log(Level.SEVERE, "Archivo llave no encontrado"); ex.printStackTrace(); } catch (IOException | PGPException ex) { LOGGER.log(Level.SEVERE, "Error de entrada/salida"); ex.printStackTrace(); } }}EncriptadorDAO.java
/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */package mx.hash.encriptado;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.security.SecureRandom;import java.security.Security;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.util.Arrays;import java.util.Date;import java.util.Iterator;import java.util.Optional;import java.util.logging.Level;import java.util.logging.Logger;import org.bouncycastle.bcpg.ArmoredOutputStream;import org.bouncycastle.bcpg.CompressionAlgorithmTags;import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.openpgp.PGPCompressedDataGenerator;import org.bouncycastle.openpgp.PGPEncryptedDataGenerator;import org.bouncycastle.openpgp.PGPException;import org.bouncycastle.openpgp.PGPLiteralData;import org.bouncycastle.openpgp.PGPLiteralDataGenerator;import org.bouncycastle.openpgp.PGPPublicKey;import org.bouncycastle.openpgp.PGPPublicKeyRing;import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;import org.bouncycastle.openpgp.PGPUtil;import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator;import org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder;import org.bouncycastle.openpgp.operator.jcajce.JcePublicKeyKeyEncryptionMethodGenerator;/** * * @author david */public class EncriptadorDAO { static private final Logger LOGGER = Logger.getLogger("mx.hash.encriptado.EncriptadorDAO"); private final int algoritmoCompresion = CompressionAlgorithmTags.ZIP; private final int algoritmoLlaveSimetrica = SymmetricKeyAlgorithmTags.AES_128; private final boolean armadura = true; private final boolean chequeoIntegridad = true; private final int bufferSize = 1 << 16; public void inicializarBouncyCastle() { LOGGER.log(Level.INFO, "Inicializando Bouncy Castle"); Security.addProvider(new BouncyCastleProvider()); } public void encriptar(OutputStream encriptado, InputStream datosStream, long longitudDatos, InputStream llavePublicaStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Encriptando datos"); // Compresor de datos PGPCompressedDataGenerator compresor = new PGPCompressedDataGenerator(algoritmoCompresion); // Objeto con las configuraciones para encriptacion JcePGPDataEncryptorBuilder constructorPGP = new JcePGPDataEncryptorBuilder(algoritmoLlaveSimetrica); constructorPGP.setWithIntegrityPacket(chequeoIntegridad); constructorPGP.setSecureRandom(new SecureRandom()); constructorPGP.setProvider(BouncyCastleProvider.PROVIDER_NAME); // Encriptador de datos PGPEncryptedDataGenerator pgpEncryptedDataGenerator = new PGPEncryptedDataGenerator(constructorPGP); // Objeto de la llave publica PGPPublicKey llavePublica = obtenerLlavePublica(llavePublicaStream); // Metodo de encriptado JcePublicKeyKeyEncryptionMethodGenerator metodo = new JcePublicKeyKeyEncryptionMethodGenerator(llavePublica); // Agregamos el metodo de encriptado deseado al encriptador pgpEncryptedDataGenerator.addMethod(metodo); // Si se esta usando la armadura generamos el Stream adecuado if (armadura) { encriptado = new ArmoredOutputStream(encriptado); } // Creamos el Stream con los datos encriptados OutputStream cipherOutStream = pgpEncryptedDataGenerator.open(encriptado, new byte[bufferSize]); // Generamos datos finales apartir del Stream de datos encriptados generarDatos(compresor.open(cipherOutStream), datosStream, longitudDatos, bufferSize); // Cerramos los streams compresor.close(); cipherOutStream.close(); encriptado.close(); } public PGPPublicKey obtenerLlavePublica(InputStream keyInputStream) throws IOException, PGPException { LOGGER.log(Level.INFO, "Obteniendo llave Publica"); PGPPublicKeyRingCollection pgpPublicKeyRings = new PGPPublicKeyRingCollection( PGPUtil.getDecoderStream(keyInputStream), new JcaKeyFingerprintCalculator()); Iterator<PGPPublicKeyRing> keyRingIterator = pgpPublicKeyRings.getKeyRings(); while (keyRingIterator.hasNext()) { PGPPublicKeyRing pgpPublicKeyRing = keyRingIterator.next(); Optional<PGPPublicKey> pgpPublicKey = extraerPGPKey(pgpPublicKeyRing); if (pgpPublicKey.isPresent()) { return pgpPublicKey.get(); } } throw new PGPException("Llave publica invalida"); } public Optional<PGPPublicKey> extraerPGPKey(PGPPublicKeyRing pgpPublicKeyRing) { LOGGER.log(Level.INFO, "Extrayendo llave PGP"); for (PGPPublicKey publicKey : pgpPublicKeyRing) { if (publicKey.isEncryptionKey()) { return Optional.of(publicKey); } } return Optional.empty(); } public void generarDatos(OutputStream copia, InputStream datosOriginales, long longitudDatos, int bufferSize) throws IOException { LOGGER.log(Level.INFO, "Generandos datos finales"); PGPLiteralDataGenerator literalDataGenerator = new PGPLiteralDataGenerator(); OutputStream pOut = literalDataGenerator.open(copia, PGPLiteralData.BINARY, PGPLiteralData.CONSOLE, Date.from(LocalDateTime.now().toInstant(ZoneOffset.UTC)), new byte[bufferSize]); byte[] buffer = new byte[bufferSize]; try { int len; long totalBytesWritten = 0L; while (totalBytesWritten <= longitudDatos && (len = datosOriginales.read(buffer)) > 0) { pOut.write(buffer, 0, len); totalBytesWritten += len; } pOut.close(); } finally { // Clearing buffer Arrays.fill(buffer, (byte) 0); // Closing inputstream datosOriginales.close(); } }}Bastante mas código de lo que tal vez esperaba, ¿No? Esto es mas que nada por la necesidad de un par de funciones conversoras de formatos relacionadas con la estructura interna de una llave publica, algo que no ocupamos mover por el momento.
Si recuerda del proceso listado a principio de esta sección los pasos del 7 al 14 ocurren en la función EncriptadorDAO.encriptar.
Ya que corra el programa obtendrá una salida similar a esta, la encriptación usa la fecha y hora del sistema como uno de los parámetros así que no le extrañe si cada vez que corra el programa obtiene una salida diferente.
Salida del programaDonde lo que esta entre —–BEGIN PGP MESSAGE—– y —–END PGP MESSAGE—– es nuestro mensaje encriptado
-----BEGIN PGP MESSAGE-----Version: BCPG v1.70hQEMAwOZTa/i2J0tAQf/YhzovUXVdSxFAeQNkWrBFnVx32wa6P2o+dqrlGSAxXs1XIsFxgbu/9ZXv2OTbHGj3X/TblRbw4+tnAqkrYyjwnzfhC1eqgcel4uT/mqsmNKh5JOstOQENDvHzd8G6yvFEUAXA+UJDOhudME5vxtj6yV8VNWgimqCXBFkU2Yd47KutI1W+2nrtjliYPbZybhBCdi0lN9w9HSCoNZY9CBN8OGSq1G7ukIT89X8r0p0pOzI2RwsLt1/7GZRGgrU7VZNumaxxxFah3ETjlOAOPNyN/O0IO+a7fWsMbTldGv0c1jD43i+uArhWehaFcDMPbDwDb9NkvbKCHSzsCZJayfzqdJHAfDbfiih0Iz2U+w0PEPJlVKymUuIJwYdc2gSr0QOeWwV8vI9LGCmQMzSkj37WtZ9ZdBK0BJxbDyBaAhfRmKmZSnW1R7SwdU==q8RV-----END PGP MESSAGE-----
Verificando salida del programa
Y seguramente se preguntara, ¿Hay alguna forma de validar que todo saliera bien?, claro que la hay, ya que tenemos la llave privada y la contraseña de la misma podemos ir a cualquier aplicación que descifre PGP / GPG y descifrar el mensaje.
Para este ejemplo suguiero https://pgptool.org/ en especifico la pestaña Decrypt (+Verify)
Decrypt (+Verify) de PGP ToolEn «Receiver’s Private Key (For decryption purpose)» cargaremos la llave privada del ejemplo (llavePrivada.gpg) , pondremos la contraseña de la llave privada en «Passphrase for private key» y copiaremos TODO el mensaje encriptado (incluso los guiones) al cuadro de texto «Encrypted PGP Message»
Datos ingresadosYa que tenga todos los datos en si lugar presione «Decrypt the message»
Mensaje descifradoY obtendrá el mensaje que encriptamos HOLA-MUNDO.
Con esto podemos estar seguros que la encriptación se aplico correctamente, ya que una aplicación adicional fue capaz de descifrar el mensaje.
Notara que aparece un mensaje amarillo que dice «Decrypted, but incorrect fingerprint – signature not verified. If this message encrypted without signature – ignore this message.» esto se debe a que no aplicamos una firma a la encriptación, esto es un proceso adicional que por el momento no requerimos.
Si desea el código completo de este ejemplo puede encontrarlo aquí:
https://gitlab.com/ticomWebcomic/encriptadopgp
Espero que esta entrada le fuera de utilidad, nos vemos en la próxima y si desea cooperar con la causa.
https://hashblogeando.wordpress.com/2024/07/02/encriptar-con-una-llave-publica-pgp-gpg-en-java/
-
¡⚠️ Microsoft escucha! Recall de #Copilot+ tendrá #encriptación y será #optin tras el #revuelo 😅 Por #seguridad y #privacidad 🔒 ¡Cambios vienen! https://bit.ly/45jvV4P