The subject disclosure relates to digital file security, and more particularly to a system and process for verifying digital media content authenticity.
Currently digital media can be modified from the original content after a change of custody. It is difficult to determine if a given digital media file is the exact original content since the previous owner may have modified the contents unbeknownst to the new owner. The problem is particularly acute in distributed network environments where multiple copies of a media file may exist and are persisted amongst several different computer/server systems. Each copy is susceptible to being modified at a waypoint in the network path from the source to the end destination. Thus, multiple copies of the file may have a change(s) that can persist geometrically the more a file is distributed within the network.
As can be seen, there is a need for a system and process that can track media files and their content to verify the content of a media file is authentic or unmodified.
In one aspect of the disclosure, a method for verifying the authenticity of digital media file content, comprises hashing a plurality of frames of an original, unaltered digital media file to generate a plurality of hash values associated with the original, unaltered digital media file; generating a hash chain from the hashed plurality of frames, the hash chain associated with the original, unaltered digital media file; storing the generated hash chain in a distributed ledger network; hashing a digital media file copy; receiving a copy of the stored hash chain from the distributed ledger network; comparing the hashed digital media file copy with the received copy of the stored hash chain from the distributed ledger network; determining whether the hashed digital media file copy matches the received copy of the stored hash chain from the distributed ledger network; and verifying an authenticity of the hashed digital media file copy as an unaltered copy of the original, unaltered file.
In another aspect of the disclosure a computer program product for verifying the authenticity of digital media file contents comprises a non-transitory computer readable storage medium having computer readable program code embodied therewith. The computer readable program code is configured to: hash a plurality of frames of an original, unaltered digital media file to generate a plurality of hash values associated with the original, unaltered digital media file; generate a hash chain from the hashed plurality of frames, the hash chain associated with the original, unaltered digital media file; store the generated hash chain in a distributed ledger network; hash a digital media file copy; receive a copy of the stored hash chain from the distributed ledger network; compare the hashed digital media file copy with the received copy of the stored hash chain from the distributed ledger network; determine whether the hashed digital media file copy matches the received copy of the stored hash chain from the distributed ledger network; and verify an authenticity of the hashed digital media file copy as an unaltered copy of the original, unaltered file.
In still yet another aspect of the disclosure, a computer server system for verifying the authenticity of digital media file contents comprises a non-transitory computer readable storage medium having computer readable program code. The system further comprises a processing unit configured to, according to the computer readable code: hash a selected digital media file copy; receive a copy of a stored hash chain from a distributed ledger network; compare the hashed digital media file copy with the received copy of the stored hash chain from the distributed ledger network; determine whether the hashed digital media file copy matches the received copy of the stored hash chain from the distributed ledger network; and verify an authenticity of the hashed digital media file copy as an unaltered copy of an original, unaltered file.
It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, it will be apparent to those skilled in the art that the subject technology may be practiced without these specific details. Like or similar components are labeled with identical element numbers for ease of understanding.
Generally, embodiments of the subject technology provide a system and process verifying the authenticity of digital media file contents. Exemplary embodiments incorporate the added benefits from an electronic distributed ledger network to provide security to the authentication process. Embodiments disclosed below generally exist within an electronic online environment. In an exemplary embodiment, a the hash of a digital media file is accessible from a trusted source in a distributed ledger network. Copies of the digital media are hashed and compared against a retrieved copy of the hash from the distributed ledger network. In some embodiments, copies of the digital media file may also be retrieved from the distributed ledger network. However, copies of the digital media file obtained from outside a distributed ledger network may especially benefit from the security provided by embodiments disclosed herein. As may be appreciated, within a network or the Internet in general, there may be many opportunities for third parties to intercept the digital media file while it is in transit to alter the content to deceive the recipient. Conventional video streaming safeguards may use a hash function or Merkle tree approach to verify that the transfer of packets in a direct one-to-one transaction has been uncorrupted. However, there is a problem in that some astute hackers may intercept the single file in transit from the source and may exploit weaknesses in the hash algorithm so that the end recipient is never aware that the file has been corrupted. Aspects of the invention disclosed herein overcome such an attack on a secured media file. In order to overcome the safeguards of the disclosed invention, a hacker would have to alter both multiple copies of the digital media file persisted in the network and the original hashed file, which in some embodiments may exist in multiple servers within the distributed ledger network. As such, any attempt to alter or corrupt even the digital media file can be detected by the system checking against copies in other servers in the distributed ledger network.
A distributed ledger protocol used herein may be for example a blockchain protocol such as, Bitcoin, Ethereum, Ripple or RibbitRewards, a permissioned distributed ledger, a metadata protocol on top of a distributed ledger protocol, such as CounterParty or ColoredCoins, or any other derivation of metadata protocols or distributed ledger protocols.
Referring now to
The computer system/server 10 may be generally be for example, server computer systems, personal computer systems, multiprocessor systems, microprocessor-based systems, network PCs, and distributed cloud computing environments that include any of the above systems or devices, and the like. In some embodiments, the computer system/server 10 may include one or more tablet devices, mobile telephone devices, handheld or laptop devices, smart electronics (for example, security cameras), set top boxes, and/or programmable consumer electronics as part of a network. The computer system/server 10 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system (described for example, below). In some embodiments, the computer system/server 10 may be a cloud computing node connected to a cloud computing network (not shown). The computer system/server 10 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud-computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
The computer system/server 10 may typically include a variety of computer system readable media. Such media could be chosen from any available media that is accessible by the computer system/server 10, including non-transitory, volatile and non-volatile media, removable and non-removable media. The system memory 28 could include one or more computer system readable media in the form of volatile memory, such as a random access memory (RAM) 30 and/or a cache memory 32. By way of example only, a storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media device. The system memory 28 may include at least one program product 40 having a set (e.g., at least one) of program modules 42 that are configured to carry out the functions of embodiments of the invention. The program product/utility 40, having a set (at least one) of program modules 42, may be stored in the system memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. The program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
The computer system/server 10 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; and/or any devices (e.g., network card, modem, etc.) that enable the computer system/server 10 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Alternatively, the computer system/server 10 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via a network adapter 20. As depicted, the network adapter 20 may communicate with the other components of the computer system/server 10 via the bus 18.
As will be appreciated by one skilled in the art, aspects of the disclosed invention may be embodied as a system, method or process, or computer program product. Accordingly, aspects of the disclosed invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, aspects of the disclosed invention may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
Any combination of one or more computer readable media (for example, storage system 34) may be utilized. In the context of this disclosure, a computer readable storage medium may be any tangible or non-transitory medium that can contain, or store a program (for example, the program product 40) for use by or in connection with an instruction execution system, apparatus, or device. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
Aspects of the disclosed invention are described below with reference to block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to the processor 16 of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Referring now to
For the following processes, the steps may be performed automatically or by user control, and are generally performed by a processing unit unless otherwise stated.
Referring now to
frame1: hash: 0x94856 . . . , previous: 0x0
frame2: hash: 0x48362 . . . , previous: 0x94856 . . .
frame3: hash: 0x84772 . . . , previous: 0x48362 . . .
When frames remain to be hashed, a next frame undergoes the storing 220 process for the hash value. A determination 230 may be performed as to whether the selected frame is multipart. In the event a multipart frame is selected, the parts of the frame me be split 240 into segments that may each have their own hash value resulting in newly defined frames 250. An example of hashing over a multi-part audio file is shown in
Referring now to
As will be appreciated, many applications may benefit from aspects of the verification process. For example, the integrity of video footage which may be used as evidence may be authenticated using the aspects described herein. A police bodycam or vehicle dashcam (autonomous vehicle or human driven) might contain a chip designed to use embodiments described under license. As the cameras record footage the hashchain is embedded into the file and alternatively stored in some protected space within the camera. If the video is needed as evidence for some event, the secure storage of the camera can be queried by some third party and used to authenticate the footage supplied as evidence. This verification will prove the chain of custody did not compromise the footage at any stage (no one removed frames that would convict or exculpate an accused of wrongdoing or no one modified footage or “enhanced” it).
Referring now to
Those of skill in the art would appreciate that various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects.
Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention.
A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples. A phrase such an embodiment may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such a configuration may refer to one or more configurations and vice versa.
The word “exemplary” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.
This application claims benefit under 35 U.S.C. §119(e) of U.S. Provisional Application having Ser. No. 62/253,679 filed Nov. 10, 2015, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62253679 | Nov 2015 | US |