¿Cómo comprobar la autenticidad de una fotografía digital?

Vía: El pais

El 19 de junio, la policía federal mexicana desalojó a un grupo de maestros que bloqueaban una autopista en Oaxaca en protesta por las reformas al sistema educativo nacional. Esa tarde, en las redes sociales comenzaron a circular fotografías, propiedad de las agencias Associated Press y Xinhua, que mostraban a miembros de la policía portando y apuntando armas durante el desalojo. En un comunicado, la Comisión Nacional de Seguridad aseguró que las fotografías que mostraban a la policía accionado armas de fuego “son totalmente falsas, y no corresponden a los hechos que se están generando en la entidad”, pues, según las autoridades, los agentes iban desarmados.

Para demostrar la autenticidad de sus imágenes, Xinhua envió a la web Aristegui Noticias la versión original de la fotografía para que sus editores comprobaran que había sido tomada durante el día y la hora del desalojo. Associated Presspublicó su fotografía que mostraba a los policías utilizando armas, en su web. Esta imagen también contiene información que indica el día, la hora y en su caso, el lugar donde fue tomada. Más tarde, el jefe de la Policía Federal informó que los agentes sí habían utilizado armas de fuego durante el desalojo.


Associated Press publicó los metadatos de su fotografía que muestra a policías usando armas durante el desalojo de Oaxaca. Tomada de apimages.com

¿Cómo demostraron las agencias que sus fotos eran auténticas?

Todas las fotografías digitales contienen metadatos, es decir, información que se guarda automáticamente en la fotografía sobre sus características, explica el investigador en imagen digital Bruce Fraser en su guía Real World Camera Raw with Adobe Photoshop CS2. Además de su fecha de creación, también se puede saber cómo se tomó una foto, ya que muestra la velocidad de obturación, la apertura del diafragma (cantidad de luz que pasa por la lente) y hasta con qué tipo de cámara se tomó. Los metadatos pueden revelar si la fotografía fue modificada en un programa de edición como Photoshop, explica en su web Four and Six, compañía dedicada a autentificar fotografías, cofundada por Kevin Connor, uno de los desarrolladores de Photoshop.

Exif (Exchangeable Image File) es el formato de metadatos que utilizan la mayoría de las cámaras y softwares. El Exif de una fotografía puede ser consultada en programas como Photoshop y Bridge y herramientas más especializadas como Exif Tool. “A menos que seas un programador o un súper experto en script, no puedes sacarle mucho provecho a toda la información que ofrecen los metadatos”, explica Fraser en su libro.

Le pedimos a David de la Paz, coordinador de la oficina regional de Xinhua en América Latina, la fotografía original de los policías federales en Oaxaca, tomada por Max Núñez. Revisamos sus metadatos con Exif Tool y izitru, el programa deFour and Six para comprobar el origen de las fotografías y si estas han sido modificadas. Ambos muestran que la fotografía fue tomada el 19 de junio a las 12:05 pm con una cámara Canon EOS 50D. Los resultados de izitru además indican que la “evidencia de la imagen sugiere que se trata de un archivo original proveniente de una cámara”. Guillermo Soto, fotógrafo y editor de fotografía, también corroboró estos datos en su estudio Giclée en la Ciudad de México.


Los resultados de la foto original de Xinhua en el programa ‘izitru’

¿Pero es posible alterar la información en los metadatos?

Sí, existen varias herramientas, como Photoshop Lightroom que permiten modificar la información que contiene el formato Exif, incluida la fecha y lugar de creación. De la Paz explica a Verne que cuando el sistema de archivo fotográficode Xinhua, por ejemplo, modifica algunos datos cuando las fotografías se suben a su sistema. “La agencia modifica la fecha de creación cuando la fotogragfía se sube al sistema con el horario de Beijijng. También agrega un sello de copyright de forma automática”, dice vía telefónica. “Si tu bajas la fotografía de nuestra sistema, verás que los datos han cambiado. Por eso enviamos la fotografía original a Aristegui Noticias, que fue la que recibí del fotógrafo vía correo electrónico”.


Los resultados en ‘izitru’ de la fotografía tomada de sistema de Xinhua, el cual modifica los metadatos de forma automática. El programa indica que la información ha sido alterada.

En el documento Digital Image Authentication from JPEG Headers(autentificación de imágenes digitales de encabezados (información) de archivos jpeg) de la Universidad Dartmouth se explica que aunque la información en el exif puede ser modificada, la información que produce una cámara siempre es distinta a la que produce un software utilizado para alterar esta información. Si hay dudas sobre la autenticidad de los datos, se pueden comparar con los de una fotografía original proveniente de una cámara. “Cualquier modificación hecha a través de un software, provocará alguna alteración a la firma o sello original en los metadatos creados por la cámara”, explica el documento. Según sus autores, estas diferencias pueden ser detectadas por expertos forenses en fotografía.

De la Paz, de Xinhua, agrega que aunque una fotografía tomada con unafotografía Canon, como la de los policías, es alterada, los software de edición de fotografía creados por la empresa son capaces de encontrar la información original de la imagen. “Son tan potentes que incluso pueden detectar el número de serie de la cámara con la que se toman y así se pueden rastrear cámaras robadas”, comenta.

El también fotoperiodista añade: “Como agencia de noticias, tenemos un compromiso de entregar información y fotografías veraces. Seguimos protocolos muy estrictos con nuestros fotógrafos, no sólo para procurar esto, sino como una medida de seguridad para ellos. Hablamos con ellos cada media hora y les pedimos que nos describan lo que ven y lo que han fotografiado antes de enviar sus fotografías para así saber la mejor forma de manejar la noticia”.

Crear una base de datos desde un boton Visual Basic

El siguiente código permite crear una base de datos en Microsoft SQL Server simplemente con hacer clic en un botón.
El codigo es para Visual Basic

Imports System.Data.SqlClient
Public Class Form1
    Private ConnectionString As String = "Integrated Security=SSPI;" + "Initial Catalog=;" + "Data Source=localhost;"
    Private reader As SqlDataReader = Nothing
    Private conn As SqlConnection = Nothing
    Private cmd As SqlCommand = Nothing
    Private AlterTableBtn As System.Windows.Forms.Button
    Private sql As String = Nothing
    Private CreateOthersBtn As System.Windows.Forms.Button
    Private button1 As System.Windows.Forms.Button
    Public ndtb As String


    Private Sub ExecuteSQLStmt(ByVal sql As String)
        ' Open the connection
        If conn.State = ConnectionState.Open Then
            conn.Close()
        End If
        ConnectionString = "Integrated Security=SSPI;" + "Initial Catalog=mydb;" + "Data Source=localhost;"
        conn.ConnectionString = ConnectionString
        conn.Open()
        cmd = New SqlCommand(sql, conn)
        Try
            cmd.ExecuteNonQuery()
        Catch ae As SqlException
            MessageBox.Show(ae.Message.ToString())
        End Try
    End Sub 'ExecuteSQLStmt

    Private Sub CreateDBBtn_Click_1(sender As Object, e As EventArgs) Handles CreateDBBtn.Click
        ' //creating and initializing the connection string
        Dim myConnectionString As SqlConnection = New SqlConnection("Data Source=(local)\SQLEXPRESS;Initial Catalog=master;Integrated Security=True;Pooling=False")
        ' //since we need to create a new database set the Initial Catalog as Master
        ' //Which means we are creating database under master DB
        Dim myCommand As String '//to store the sql command to be executed
        myCommand = "CREATE database my_db" '//the command that creates new database
        Dim cmd As SqlCommand = New SqlCommand(myCommand, myConnectionString) '// creating command for execution
        Try
            cmd.Connection.Open() '//open a connection with cmd
            cmd.ExecuteNonQuery() '//Execute the query
            cmd.Connection.Close() ' //Close the connection
        Catch
            MsgBox(" Already installed database", MsgBoxStyle.Critical, " MaS InfoTech- Warning")
        End Try
        ' //Creating table to the dynamicaly created database
        Try
            Dim cn As SqlConnection = New SqlConnection("Data Source=(local)\SQLEXPRESS;Initial Catalog=my_db;Integrated Security=True;Pooling=False")
            ' //here the connection string is initialized with Initial Catalog as my_db
            Dim sql As String '//sql query string
            sql = "CREATE TABLE customer(cus_name varchar(50) NULL,address varchar(50) NULL,mobno numeric(18, 0) NULL,tin varchar(50) NULL,kg varchar(50) NULL)"
            cmd = New SqlCommand(sql, cn) '// create command with connection and query string 
            cmd.Connection.Open()
            cmd.ExecuteNonQuery()
            cmd.Connection.Close()
        Catch
            MsgBox(" Already installed database", MsgBoxStyle.Critical, " MaS InfoTech- Warning")
        End Try
    End Sub
End Class