Re: puede cualquier tipo de archivo de ser firmado digitalmente, utilizando RSA, una certificado, y esas cosas, o si solo ciertos tipos de archivos se pueden firmar?
A: Sí y no. Por un lado, se puede calcular una firma digital estándar para cualquier paquete de bits, incluyendo un archivo de texto plano, archivos de imágenes, archivos binarios, cualquier cosa que pueda imaginar.
Pero entonces las preguntas se convierten en:
¿Cómo se asocia la firma digital (que en sí es una carrera binaria de bits) con el archivo de datos? ¿El formato del archivo de datos permite agregar la firma digital a los datos? ¿O necesita administrar la firma digital usted mismo, quizás como un archivo separado, tal vez usando su propio formato de datos inventado?
Una vez que tiene los datos firmados digitalmente y su firma, cómo un destinatario verifica los datos y su firma para asegurar al destinatario de quién firmó los datos (identidad) y que los datos no se han modificado desde que se firmó (integridad)?
formatos de archivo que soportan firmas digitales
La gran ventaja de los formatos de archivo que, intrínsecamente, soportan firmas digitales es que los destinatarios puedan verificar la firma digital y la integridad del archivo, simplemente al recibir el archivo firmado y luego usar su propio software de verificación. El destinatario no necesita instalar nada del remitente.
Hay muchos formatos de archivos compatibles que admiten firmas digitales. Por ejemplo, pdf, Word .doc, .docx. Excel .xls, .xlsx. Hay un standard for signing xml files. Su ventaja es que xml puede usarse como un sobre para cualquier tipo de datos. Por ejemplo, un archivo pdf se puede firmar digitalmente y enviarse a alguien. El destinatario puede usar el Adobe Reader estándar/gratuito para abrir el pdf y verificar su (s) firma (s) digital (es).
El "formato" para archivos de texto sin formato (archivo lleno de caracteres) no admite firmas digitales. Por lo tanto, necesitaría un sobre para el texto y su firma digital o tratar con la firma digital por separado. En cualquier caso, el destinatario necesitaría su software para verificar los datos. (O tendría que escribir el suyo después de proporcionar una especificación para el texto sin formato y la firma.)
S/MIME ofrece una forma estándar de firmar digitalmente texto u otro correo electrónico/mimo de datos organizados. Ver rfc 5751. Pero no se usa ampliamente más allá de los agentes de correo electrónico que pueden generar o recibir/verificar mensajes de correo electrónico firmados. Outlook no es compatible con esto.
Gracias por su respuesta. Probé la firma digital para un archivo de texto plano, y funciona bien. Todavía no he probado en archivos binarios, porque no estoy seguro de si la firma digital romperá el archivo. Voy a intentar phpseclib. –
¿Puedo usar esto para archivos de alguna manera? Decir como una imagen cargada? Gracias de antemano –
Claro - simplemente haga '$ plaintext = file_get_contents ('filename.ext')' – neubert