# An Efficient Steganographic Protocol for WebP Files
## 3 Results
### Format-Based Methods
#### 3.1.3 Metadata  
The purpose of this experiment was to test the metadata method, including two metadata types: Exif and XMP. These tests were able to choose the appropriate tags or structures, embedding secret messages, analyzing created files in applications, and reading the secrets from carriers. Metadata modification may be achieved with applicable software; in the following experiments, the exiv2 program was used. The first technique uses Exif metadata, specifically Exif.Photo.ImageUniqueID of type Ascii. According to the tag description, it indicates an identifier assigned uniquely to each image. It is presented as a hexadecimal string of 128-bit length.  
Before embedding, this tag looked as shown below.  
Exif.Photo.ImageUniqueID Ascii 33 090 caaf2c085f3e102513b24750041 aa  
As a proof of concept, a memorable value deadbeef1337c0 defeedf00d2137 face has been hidden with the following command.  
exiv2 -M'set Exif.Photo.ImageUniqueID deadbeef1337c0 defeedf00d2137 face' img.webp  
After embedding, the listed metadata contain the modified unique ID of the image.  
Exif.Photo.ImageUniqueID Ascii 33 deadbeef1337c0 defeedf00d2137 face  
They are also visible in other applications. Figure 4 shows how we can read our hexstring in a different way. To do this, we should choose Image \(\rightarrow\) Metadata \(\rightarrow\) Show metadata in GIMP.  
Both the file size and the image contents remained unchanged. In normal applications, this method may be used to embed a small encrypted file with a fixed size of 128 bytes. Bigger files may be divided between a few images, but the receiver must know the order of files to properly recover the secret.  
To conceal a secret in XMP metadata, we used the LocationCreated property from the IPTC Extension schema, designed for the location in which the photo was taken. The secret message has been hidden in newly created TextBag with selected cities. First, provided places have been encoded in the following manner.  
exiv2 -M'set Xmp.iptc.LocationCreated XmpText type=Bag' img.webp exiv2 -M'set Xmp.iptc.LocationCreated[1]/iptcExt:City Helsinki' img.webp exiv2 -M'set Xmp.iptc.LocationCreated[2]/iptcExt:City Edinburgh' img.webp exiv2 -M'set Xmp.iptc.LocationCreated[3]/iptcExt:City Larissa' img.webp exiv2 -M'set Xmp.iptc.LocationCreated[4]/iptcExt:City Las Vegas' img.webp exiv2 -M'set Xmp.iptc.LocationCreated[5]/iptcExt:City Oslo' img.webp  
Figure 4: Embedded metadata visible im GIMP.  
After executing these commands, let us present the resulting XMP metadata.  
<?xml version=\"1.0\"?> <?xpacket begin=\"\" id=\"WSM0 MpCehiHzreSzNTczkc9d\"?> <x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"XMP Core 4.4.0-Exiv2\"> <rdf:RDF xmlns:rdf=\"[[http://www.w3.org/1999/02/22-rdf-syntax-ns#](http://www.w3.org/1999/02/22-rdf-syntax-ns#)]([http://www.w3.org/1999/02/22-rdf-syntax-ns#](http://www.w3.org/1999/02/22-rdf-syntax-ns#))\"> <rdf:Description xmlns:Iptc4 xmpCore=\"[[http://iptc.org/std/Iptc4](http://iptc.org/std/Iptc4) xmpCore/1.0/xmlns/]([http://iptc.org/std/Iptc4](http://iptc.org/std/Iptc4) xmpCore/1.0/xmlns/)\" xmlns:iptcExt=\"[[http://iptc.org/std/Iptc4](http://iptc.org/std/Iptc4) xmpExt/2008-02-29/]([http://iptc.org/std/Iptc4](http://iptc.org/std/Iptc4) xmpExt/2008-02-29/)\" rdf:about=\"\"> <Iptc4 xmpCore:LocationCreated> <rdf:Bag> <rdf:1i iptcExt:City=\"Helsinki\"/> <rdf:1i iptcExt:City=\"Edinburgh\"/> <rdf:1i iptcExt:City=\"Larissa\"/> <rdf:1i iptcExt:City=\"Las Vegas\"/> <rdf:1i iptcExt:City=\"Oslo\"/> </rdf:Bag> </Iptc4 xmpCore:LocationCreated> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end=\"w\"?>  
As can be seen, the embedded cities are visible in the listed metadata (they are formatted for clarity; normally, there are no indentations or white spaces). The secret message may be recovered by reading the first letters: HELLO.