Pregunta

Lo siento, no pude encontrar el mejor título para esta pregunta. Lo siguiente es mi requisito.

Estoy trabajando en un proyecto que trata qué gran cantidad de transacciones de dinero a una cuenta diferente. El sistema transfiere dinero automáticamente a las cuentas de A, B, C, etc., etc. Pero antes de que esto se haga, alguien de A, B o C debe aprobar (electrónicamente) el monto a transferir.

¿Cuál crees que es la mejor manera de hacerlo? Quiero que el sistema envíe un archivo (PDF de algo) que esté firmado digitalmente (?) Y la persona autorizada de A, B y C debe verificar y confirmar que la cantidad es correcta.

Dado que la cantidad es alta, debo asegurarme de que el archivo enviado por el sistema no esté alterado y, al mismo tiempo, también quiero asegurarme de que el archivo (respuesta) enviado por A, B o C tampoco esté alterado. ¿Cuál es la mejor manera de lograrlo? ¿Alguna idea?

¿Fue útil?

Solución

Firmas digitales es lo que estás buscando. Adobe PDF (ya que mencionó pdf) le permite firmar el pdf en la versión gratuita de Adobe Reader y la verificación también se realiza automáticamente, tan pronto como abra el documento pdf.

La diferencia entre DigSig y (H) MAC según lo publicado por Noldorin es que los MAC usan cifrado simétrico, donde se requiere un canal seguro para intercambiar la clave, mientras que en un PKI entorno que no requiere un canal seguro.

Depende de cómo desee distribuir sus claves.

Otros consejos

Querrá examinar MACs (Códigos de autenticación de mensajes). Hay varias bibliotecas disponibles para varios idiomas que implementan algoritmos comunes como HMAC .

EDITAR: Consulte también DSA ( http://en.wikipedia.org/wiki/Digital_Signature_Algorithm), que es un algoritmo popular para las firmas digitales, y está completamente implementado en el marco .NET estándar (System.Cryptography namespace).

Mi primera reacción serían las firmas digitales, pero tienen un defecto fatal: son datos digitales que podrían verse comprometidos por un usuario descuidado.

Si eso es una preocupación, puede seguir el proceso que utilizan los bancos sudafricanos, una contraseña de un solo uso. Esta contraseña se les transfiere a través de un medio que no está involucrado en la transacción (en Sudáfrica, esto es por SMS, lo cual recomiendo encarecidamente). Primero escribimos un nombre de usuario y contraseña, y luego recibimos la OTP por SMS, que luego debemos ingresar para cualquier transacción que conduzca a que el dinero salga de nuestras cuentas.

Las formas fuertes de seguridad (para aumentar la efectividad) incluyen (no soy un experto, pero conozco algunas):

  • Conocimiento (una contraseña)
  • Posesión (una tarjeta SIM de teléfono celular que puede recibir SMS, o una memoria USB con un certificado)
  • Ubicación (una computadora con un sistema de administración de certificados basado en hardware, CellID)
  • Tiempo (OTP caduca, la transacción debe ocurrir en un momento específico)
  • Identidad (un lector de huellas digitales, efectivamente una contraseña, pero increíblemente larga)
  • Singularidad (un cable de fibra óptica codificado en la polarización de los fotones)

Por lo que sé, si tiene tres de estos, puede sentirse cómodo con su seguridad. Agregar más aumenta la seguridad exponencialmente, pero también aumenta el factor inconveniente. Los bancos usan el conocimiento, la posesión y el tiempo en Sudáfrica, y el phishing realmente no funciona contra los bancos sudafricanos.

Espero que esto te haya ayudado un poco.

Para firmar digitalmente un archivo, puede usar cualquiera de los socios de Microsoft. Arx, por ejemplo, le proporciona una herramienta llamada CoSign que puede usar de forma gratuita (o al menos su versión de prueba). Esto le permitirá agregar firmas electrónicas a la mayoría de los formatos disponibles (word, pdf, xml, etc.).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top