US20100293383A1 - Storage device authentication - Google Patents

Storage device authentication Download PDF

Info

Publication number
US20100293383A1
US20100293383A1 US12/453,614 US45361409A US2010293383A1 US 20100293383 A1 US20100293383 A1 US 20100293383A1 US 45361409 A US45361409 A US 45361409A US 2010293383 A1 US2010293383 A1 US 2010293383A1
Authority
US
United States
Prior art keywords
storage device
manifest
digital signature
transfer station
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/453,614
Other versions
US9270683B2 (en
Inventor
Chesley B. Coughlin
Eric M. Wagner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US12/453,614 priority Critical patent/US9270683B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Priority to JP2012511003A priority patent/JP5443596B2/en
Priority to EP21185103.5A priority patent/EP3917111A1/en
Priority to CA2761684A priority patent/CA2761684C/en
Priority to SG2011082831A priority patent/SG175987A1/en
Priority to PCT/US2010/034678 priority patent/WO2010132647A1/en
Priority to CN201080021510.7A priority patent/CN102428448B/en
Priority to EP10775523.3A priority patent/EP2430548B1/en
Assigned to AMAZON TECHNOLOGIES, INC. reassignment AMAZON TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: COUGHLIN, CHESLEY B., WAGNER, ERIC M.
Publication of US20100293383A1 publication Critical patent/US20100293383A1/en
Priority to US15/050,082 priority patent/US10061716B2/en
Publication of US9270683B2 publication Critical patent/US9270683B2/en
Application granted granted Critical
Priority to US16/112,487 priority patent/US10719455B2/en
Priority to US16/931,686 priority patent/US11520710B2/en
Priority to US18/061,363 priority patent/US11954046B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Definitions

  • a developer may use a fiber optic line, such as a T1 line.
  • a T1 line can carry data at a rate of approximately 1.544 megabits per second. Using a single T1 line to continuously transfer data, it would take approximately an entire month to transfer 400 gigabytes of data. If a developer wishes to transfer data at a faster rate or does not wish to burden a T1 line with a large data transfer, the developer is faced with the question of whether to acquire additional T1 lines. Acquiring additional T1 lines comes at additional expense. Furthermore, the developer may not have a need for the increased data capacity for day-to-day operations, making acquiring additional T1 lines cost inefficient.
  • FIG. 1 is a diagram of an example of a system for authenticating a storage device
  • FIG. 2 is a flow diagram of an example of a routine for preparing and authenticating a storage device
  • FIG. 3 is a flow diagram of an example of a routine for preparing a storage device.
  • FIG. 4 is a flow diagram of an example of a routine for authenticating a storage device.
  • Disclosed embodiments provide computer-implemented systems and methods for identifying and authenticating storage devices.
  • Storage devices may include any media, such as universal serial bus (USB) drives, CD-ROMs, DVD-ROMs, other optical discs, etc., that can store data.
  • Disclosed embodiments may make use of one or more storage devices to transmit, for example, hundreds of gigabytes or terabytes of data via physical media.
  • disclosed embodiments provide systems and methods whereby a recipient of a storage device can identify and authenticate the sender.
  • a sender who wants to have his or her data uploaded to a remotely accessible storage device may store the data on a portable storage device, such as an internal hard drive, external USB hard drive, flash memory device, or compact disc, among other possibilities.
  • the sender may create a manifest that includes an identifier of a destination or storage location, such as an account, a unique identifier of the sender, and a return shipping address.
  • the sender may electronically transmit the manifest to a provider of the network storage device.
  • the provider of the network storage device may return a unique device identifier, such as a device or job identifier.
  • the sender may sign, for example, the manifest, the device or job identifier, and/or the sender identifier with a secret key to create a digital signature. Creation of the digital signature may be according to any number of cryptographic techniques (e.g., Public Key Infrastructure (PKI), etc.). The resulting digital signature may be copied to a location on the portable storage device, such as the root directory. The sender may then pack and ship the storage device to the provider.
  • PKI Public Key Infrastructure
  • the provider may mount the storage device to a port of a transfer station or load the storage device via a drive of the transfer station.
  • the provider may then identify and authenticate the storage device using the digital signature that was previously saved to the storage device.
  • the provider may send the digital signature to an external service to validate the signature and confirm that the sender was in possession of the secret key.
  • the external service may check the digital signature with the secret key, which may be in the external service's possession.
  • the external service may retrieve the correct secret key by using, for example, a public key identifier, which may be stored on the storage device.
  • the provider may then transfer the data from the storage device to the network storage device via the transfer station. Accordingly, disclosed embodiments allow the provider to authenticate that the storage device came from someone in control of the sender's secret key.
  • a method for authenticating a storage device.
  • the method may include receiving, from a sender, a manifest.
  • the manifest may identify a destination.
  • the method may further include validating a format of the manifest and transmitting, to the sender, a device identifier.
  • the method may further include receiving the storage device from the sender.
  • the storage device may have a digital signature stored thereon.
  • a transfer station may read the digital signature from the storage device.
  • the method may further include validating the digital signature, retrieving the manifest based on the device identifier, and authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
  • a computer-implemented method for authenticating a storage device.
  • the method may include receiving a manifest.
  • the manifest may identify a destination.
  • the method may further include reading, by a transfer station, a digital signature from the storage device, validating the digital signature, and authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
  • a system for authenticating a storage device.
  • the system may include a server that is in communication with a network.
  • the server may include a processor and a data store.
  • the system may further include a transfer station in communication with the network.
  • the transfer station may be operable to receive a manifest that identifies a destination, read a digital signature from the storage device, validate the digital signature, and authorize, based on the validation of the digital signature, a transfer of one or more files from the storage device to the destination identified in the manifest.
  • a computer-readable storage medium may store program instructions, which when executed by a processor, perform any of the above-described methods.
  • FIG. 1 is an example of a system 100 for authenticating a storage device, consistent with a disclosed embodiment.
  • System 100 may provide functionality for a network storage provider to authenticate a storage device.
  • terminals 102 - 106 , storage server 110 , service server 118 , and transfer stations 120 - 124 are connected to a network 108 .
  • network 108 One of skill in the art will appreciate that although three terminals, one storage server, one service server, and three transfer stations are depicted in FIG. 1 , any number of these components may be provided.
  • one or more components of system 100 may be combined and/or divided into subcomponents. For example, functionality provided by the transfer stations and the storage server may be combined and/or functionality provided by the service server and storage server may be combined.
  • Network 108 provides communications between the various components in system 100 , such as terminals 102 - 106 , storage server 110 , service server 118 , and transfer stations 120 - 124 .
  • terminals 102 - 106 , storage server 110 , service server 118 , and/or transfer stations 120 - 124 may access legacy systems (not shown) via network 108 , or may directly access legacy systems, data stores, or other network applications.
  • Network 108 may be a shared, public, or private network, may encompass a wide area or local area, and may be implemented through any suitable combination of wired and/or wireless communication networks.
  • Network 108 may further comprise an intranet or the Internet.
  • Terminals 102 - 106 may be any type device for communicating with storage server 110 and/or service server 118 over network 108 .
  • users of terminals 102 - 106 may access and/or receive data from storage server 110 and/or service server 118 .
  • Terminals 102 - 106 may be personal computers, handheld devices (e.g., PDAs, cellular phones, etc.), or any other appropriate computing platform or device capable of exchanging data with network 108 .
  • Terminals 102 - 106 may each include a processor (not shown), a memory (not shown), and one or more ports (not shown) for mounting storage devices (e.g., USB drives) and/or one or more drives for loading media (e.g., optical discs).
  • terminals 102 - 106 may execute program modules that provide one or more graphical user interfaces (GUIs) for interacting with network resources, such as storage server 110 and/or service server 118 .
  • GUIs graphical user interfaces
  • Storage server 110 may comprise a general purpose computer (e.g., a personal computer, network computer, server, or mainframe computer) having one or more processors that may be selectively activated or reconfigured by a computer program.
  • Storage server 110 may be implemented in a distributed network.
  • storage server 110 may communicate via network 108 with additional storage servers (not shown), which may enable storage server 110 to distribute processes for parallel execution by a plurality of storage servers.
  • additional storage servers may comprise a storage area network (SAN).
  • SAN storage area network
  • storage server 110 may be specially constructed for carrying-out methods consistent with disclosed embodiments.
  • Storage server 110 may include a processor 112 , a memory 114 , and a data store 116 .
  • Memory 114 may comprise one or more memory or storage devices that store data as well as software.
  • Memory 114 may also comprise, for example, one or more of RAM, ROM, magnetic storage, or optical storage.
  • Memory 114 may store program modules that, when executed by processor 112 , perform one or more processes for enabling access to data residing on data store 116 .
  • Data store 116 may comprise a plurality of storage devices, such as disk storage devices, optical storage devices, etc.
  • data store 116 may comprise multiple disk drives that combine to form a disk array.
  • the disk array may include, for example, a disk array controller, a cache, disk enclosures, and a power supply.
  • the disk array controller may connect to network 108 via a port (not shown), which may serve as an interface between the disk array controller and network 108 .
  • Storage server 110 may host various data, including data providing Internet sites, as well as provide functionality for authenticating users and providing access to the data.
  • data store 116 may store pages that are displayable by a computer executing software, such as an Internet browser.
  • Storage server 110 may allow users at, for example, terminals 102 - 106 to access Internet sites being hosted by storage server 110 .
  • storage server 110 may allow providers of Internet sites (e.g., developers, site administrators, etc.) being hosted by storage server 110 to access, modify, and load data onto storage server 110 .
  • These users may access storage server 110 over network 108 through an Internet browser or software application running on any one of terminals 102 - 106 .
  • the data may be accessible through other network mechanism, such as through an application program interface (API) of a Web Service.
  • API application program interface
  • Storage server 110 may transmit a document (e.g., a JavaScript Object Notation (JSON) document, an Extensible Markup Language (XML) document, or a web page) that is accessible by an Internet browser executing on one of terminals 102 - 106 .
  • the document may include options for a user to log onto a secure site provided by storage server 110 .
  • users may log onto a secure site provided by storage server 110 by supplying credentials, such as a username and a password.
  • the Internet site may use a secure communication environment, such as an HTTPS (hypertext transfer protocol secure) environment to transfer data over network 108 , data transfer is assumed to be secure.
  • HTTPS hypertext transfer protocol secure
  • Service server 118 may comprise a general purpose computer (e.g., a personal computer, network computer, server, or mainframe computer) having one or more processors (not shown) that may be selectively activated or reconfigured by a computer program stored in memory (not shown).
  • Service server 118 may be implemented in a distributed network, such that service server 118 may communicate via network 108 with additional service servers (not shown).
  • service server 118 may be specially constructed for carrying-out methods consistent with disclosed embodiments.
  • service server 118 may coordinate operations of a service for authenticating storage devices.
  • service server 118 may allow users at terminals 102 - 106 to access the service to submit and/or monitor requests to ship physical media to a provider that will upload data from the physical media to storage server 110 .
  • a user who wants to have his or her data uploaded to storage server 110 may submit a request from one of terminals 102 - 106 .
  • the request may include a manifest pertaining to the request, which may be in the form of a manifest file that identifies the user and specifies a storage location for the data.
  • Manifest files are discussed below in further detail.
  • Service server 118 may further store the manifest and return data and/or instructions to the user at one of terminals 102 - 106 .
  • the instructions may indicate an address to which the user should ship a storage device, such as an external USB hard drive.
  • Service server 118 may further provide status information to users at terminals 102 - 106 , as discussed below in further detail.
  • Transfer stations 120 - 124 may comprise general purpose computers (e.g., personal computers, network computers, servers, or mainframe computers) having one or more processors (not shown) that may be selectively activated or reconfigured by a computer program. Transfer stations 120 - 124 may communicate via network 108 with storage server 110 . Furthermore, in some embodiments, transfer stations 120 - 124 may implement restrictive safeguards such that data may only be loaded from transfer stations 120 - 124 to storage server 110 . Transfer stations 120 - 124 may include one or more access ports (not shown) and/or drives (not shown) for mounting or loading storage devices, such as USB drives, CD-ROMs, DVD-ROMs, other optical discs, etc.
  • transfer technicians may mount or load storage devices to the access ports and/or drives of transfer stations 120 - 124 .
  • the storage device may be authenticated by reading a signature file saved to the storage device. Further details concerning the authentication of storage devices are discussed below.
  • FIG. 2 is a flow diagram of an example of a routine 200 for preparing and authenticating a storage device, consistent with a disclosed embodiment.
  • Routine 200 provides an overview of a process in which data files are stored on a storage device, which is then transported, authenticated, and uploaded to a network storage location (e.g., storage server 110 ). Further details regarding the process are discussed in connection with FIGS. 3 and 4 .
  • a user at one of terminals 102 - 106 may store data on a storage device.
  • the data may include, for example, data files intended for upload to a network storage device, such as storage server 110 .
  • the user may transfer the data from terminal 102 to a portable storage device, such as a USB drive, CD-ROM, DVD-ROM, other optical disc, etc., which may be mounted or inserted into a port or drive that is in communication with terminal 102 .
  • the user may store a digital signature on the storage device.
  • the user may transfer the digital signature to the storage device via terminal 102 .
  • the user may store the digital signature on the root directory of the storage device or in a particular folder.
  • the user may ship the storage device to a provider that will host the data on a network storage device, such as storage server 110 .
  • a network storage device such as storage server 110 .
  • the user may pack the storage device, print a shipping label, and transfer the package to a shipping service.
  • the shipping service may then physically transport the package to the provider using one or more modes of transportation (vehicles, airplanes, trains, ships, etc.).
  • the provider may receive the storage device from the shipping service.
  • the provider may determine whether the storage device includes a valid digital signature.
  • the provider may mount or load the storage device to one of transfer stations 120 - 124 . Once mounted or loaded, one of transfer stations 120 - 124 may read the digital signature and determine whether the digital signature is valid. As part of the validation process, transfer stations 120 - 124 may access data residing on, for example, service server 118 . If the digital signature is valid, then the process proceeds to block 208 . If the digital signature is not valid, then the process ends. Further details regarding authenticating digital signatures are discussed below.
  • the provider may upload the data files to a destination, such as an account associated with the user.
  • a destination such as an account associated with the user.
  • the provider may use one of transfer stations 120 - 124 to transfer the data files over network 108 to storage server 110 .
  • FIG. 3 is a flow diagram of an example of a routine 300 for preparing a storage device, consistent with a disclosed embodiment. Routine 300 provides further details regarding a process in which a user prepares a storage device for shipment.
  • a user may be authenticated by, for example, service server 118 .
  • service server 118 may transmit a document (e.g., a web page) that is accessible by an Internet browser executing on one of terminals 102 - 106 .
  • the document may include options for a user to log onto a secure site provided by service server 118 .
  • the user may log onto the secure site by supplying credentials, such as a username and a password.
  • routine 300 may begin.
  • the user may copy data to a portable storage device.
  • a user at one of terminals 102 - 106 may store data that may include, for example, data files intended for upload to a network storage device, such as storage server 110 .
  • the user may transfer the data from, for example, terminal 102 to a portable storage device, such as an internal hard drive, an external USB hard drive, flash memory device, CD-ROM, DVD-ROM, other optical disc, etc., which may be mounted to a port or loaded into a drive that is in communication with terminal 102 .
  • the storage device may need to support a particular file system format (e.g., FAT32, ext3, NTFS, HFS) and each file that is stored on the storage device may need to be less than or equal to a particular file size (e.g., five gigabytes).
  • a particular file size e.g., five gigabytes.
  • the user may encrypt the data that is stored on the storage device.
  • the user may create a manifest, which may identify the contents of the storage device.
  • the user may create the manifest at, for example, terminal 102 , using a text editor.
  • the manifest may comprise a text file.
  • the user may use a web user interface (UI) to create the manifest.
  • UI web user interface
  • the manifest may be of a particular file format (e.g., YAML, XML, JSON, etc.) and may include several pieces of information.
  • the manifest may include an identifier of a destination or storage location, such as an account.
  • the manifest may further include a public key identifier (ID) of the user or a recipient of the storage device.
  • ID may constitute a string that uniquely identifies the user or recipient.
  • any unique identifier of the user, sender, recipient, or the storage device may be used.
  • the public key ID may have a corresponding secret key ID.
  • the secret key may be used to generate a digital signature, which is discussed below in further detail, to authenticate the storage device.
  • a manifest e.g., a manifest file named “manifest123.txt”.
  • the manifest file specifies an identifier of a destination, e.g., a single storage location for uploading files (e.g., “my-account”).
  • the manifest further includes an access key ID (e.g., “0FF36Q3V0WFFSRW0EXG2”), a manifest version (e.g., “1.0”), and a return address.
  • the provider may use the return address so that, once the storage device has been processed, it may be returned to the user.
  • manifests may include additional information or less information than shown above.
  • the manifest may include additional information, such as one or more content types for files, metadata, instructions to ignore certain files (e.g., ignore files with a particular extension), and may specify storage locations for certain files (e.g., all files of type “.jpg” should be uploaded to a folder named “/images/”).
  • the manifest include a disk inventory (e.g., a list of files and checksums).
  • a manifest may not necessarily include all of the information shown in the exemplary manifest file. For example, in some implementations, after processing, the storage device may not been returned and may instead be destroyed. In such an implementation, the return address may be omitted from the manifest.
  • the provider of a data hosting service may receive the manifest from the user via a secure channel.
  • the user may send the manifest over network 108 from terminal 102 to service server 118 .
  • the manifest may be submitted via email as an attachment.
  • the manifest may be submitted via a web UI or a web API (e.g., implemented through a protocol such as SOAP).
  • the provider may further receive an encryption key from the user via the secure channel.
  • the user may have encrypted the contents of the storage device. Accordingly, the provider (e.g., a provider of storage server 110 ) may later use the encryption key to decrypt the contents of the storage device.
  • service server 118 may validate the format of the manifest and/or content of the manifest. For example, service server 118 may invoke a service to determine whether the manifest includes a minimum amount of required information and whether the manifest is properly formatted. Furthermore, as part of the validation process, service server 118 may confirm that the user has identifier a valid storage location or locations (e.g., an account) in the manifest.
  • service server 118 may create a device or job ID. For example, one of transfer stations 120 - 124 may use the job ID to retrieve the manifest and/or to identify the transfer job at a later time. In other implementations, service server 118 may not need to assign a job ID, because the user may have provided the job ID in block 306 . For example, service server 118 may have previously assigned the user a globally unique identifier (GUID), which service server 118 may subsequently use to retrieve the manifest and the job ID.
  • GUID globally unique identifier
  • service server 118 may store the manifest.
  • Service server 118 may optionally store the encryption key as part of this block.
  • service server 118 may transmit the job ID to storage server 110 .
  • service server 118 may transmit the job ID to the user at terminal 102 via network 108 .
  • service server 118 may send a success message (e.g., an e-mail message) to the user with the job ID.
  • a success message e.g., an e-mail message
  • the user may create a digital signature.
  • the digital signature may uniquely identify the transfer job and be used to authenticate the request at a later time.
  • the user may need a job ID, the manifest, a public key ID, and a secret key ID.
  • an encryption service being executed at terminal 102 or being provided over network 108 via, for example, service server 118 , may be passed parameters, such as the manifest (e.g., “manifest123.txt”), the job ID (e.g., 3343), and the user's public key ID (e.g., 0FF36Q3V0WFFSRW0EXG2) or the recipient's public key ID.
  • the service may prompt the user for the user's secret key ID.
  • the service may prompt the user for a secret key ID of a recipient of the storage device, such as a provider of a network storage device.
  • the service may create a digital signature, using the secret key ID to sign the passed parameters (e.g., the manifest, the job ID, and/or the public key ID). Accordingly, as the digital signature is based on the manifest, the digital signature can be later used to validate that the manifest on the storage device is the same as the manifest that was received by service server 118 in block 306 (e.g., the digital signature can validate that the manifest at the time of the signing and the one sent to the provider are byte-for-byte identical).
  • the user may copy the digital signature to the storage device.
  • the user may use terminal 102 to store the digital signature on the root directory of the storage device or in a particular folder.
  • the user may store the job ID and/or the public key ID to the storage device, along with the digital signature.
  • the job ID, the public key, and the digital signature may be stored separately on the storage device.
  • the user may create a signature file that comprises the job ID, the public key ID, and the digital signature.
  • the name of the signature file may have a required format (e.g., the signature file may be required to be named “Signature”).
  • the user may also copy the data files that the user wishes to transfer from terminal 102 to the storage device. Copying the data files may occur before or after this step, as deemed appropriate by the user.
  • the storage device includes the job ID
  • the provider may use the job ID to retrieve the manifest from service server 118 .
  • the actual manifest is not stored on the storage device.
  • the user may pack the storage device and ship the storage device to the provider, which will host the data on network storage, such as storage server 110 .
  • the user may pack the storage device, print a shipping label, and transfer the package to a shipping service provider.
  • the shipping service provider may then physically transport the package using one or more modes of transportation (vehicles, airplanes, trains, ships, etc.).
  • service server 118 may convert the digital signature into a barcode such that a package or physical object itself could be authenticated according to disclosed embodiments.
  • FIG. 4 is a flow diagram of an example of a routine 400 for authenticating a storage device, consistent with a disclosed embodiment.
  • Routine 400 provides further details regarding a process in which a provider receives a storage device, authenticates the storage device, and transfers the data from the storage device. Accordingly, routine 400 may occur after routine 300 , for example.
  • the provider may receive the storage device at a facility. For example, as part of the intake process of the storage device, the provider may check the package (i.e., verify that the package is on an expected package list), check where the package originated from, and perform a security check before forwarding the package to a data center, which may house transfer stations 120 - 124 .
  • the provider may create a ticket for the storage device (i.e., assign the package a tracking number). For example, receipt of the package may be input into a terminal (not shown) in communication service server 118 . Accordingly, service server 118 may create a ticket number that is associated with the ticket and the package.
  • the provider may mount the storage device to one of transfer stations 120 - 124 , such as transfer station 120 .
  • transfer stations 120 - 124 may include one or more access ports (not shown) or drives for mounting or loading storage devices, such as internal hard drives, USB drives, CD-ROMs, DVD-ROMs, other optical discs, etc.
  • transfer station 120 may read the signature file from the storage device.
  • the job ID and/or the public key ID may be stored together as part of a signature file.
  • transfer station 120 may read the job ID, the public key ID, and/or the digital signature from the storage device, which may each be stored as separate files.
  • transfer station 120 may send the digital signature (either separately or as part of a signature file) via network 108 to an external service to validate the digital signature, which may verify that the sender was in possession of the secret key.
  • the external service may be provided by, for example, service server 118 .
  • the external service may check the digital signature with the secret key (e.g., the user's secret key or a secret key of the recipient), which may be in the external service's possession (e.g., stored by service server 118 ).
  • the external service may retrieve the correct secret key by using, for example, the public key ID, which transfer station 120 may pass to the external service. Accordingly, the external service may authenticate that the storage device came from someone in control of the user's secret key ID.
  • the external service may transmit a “success” result to transfer station 120 and the process proceeds to block 410 . If the digital signature is not valid, then the process ends.
  • storage server 110 may perform a process to authorize the transfer of the files to the user's account from transfer station 120 .
  • the user's account may only authorize the user to upload files.
  • transfer station 120 since transfer station 120 is going to perform the upload, transfer station 120 may need authorization, because the user is not in control transfer station 120 .
  • a security token service may submit a request to, for example, storage server 110 or another service, in order to allow transfer station 120 to upload data to the user's account.
  • block 410 may be optional as such authorization may not be required and transfer station 120 may implicitly have authorization to upload data.
  • transfer station 120 may transfer or upload the data files to an account or storage location associated with the user.
  • the provider may use one of transfer stations 120 - 124 to transfer the data files over network 108 to storage server 110 .
  • transfer station 120 may retrieve an encryption key sent by the user from service server 118 to decrypt the contents of the storage device.
  • the transfer of the files may occur according to the manifest.
  • transfer station 120 may retrieve the manifest from service server 118 according to the job ID.
  • the manifest may indicate a destination, such as a single storage location (e.g., a directory of the user's account) of storage server 110 where the files should be uploaded.
  • the manifest may further include additional rules or parameters, which may designate, for example, certain storage locations for certain files (e.g., all image files are to be uploaded to an existing directory named “/images/” on the user's account).
  • transfer station 120 may create one or more log files.
  • transfer station 120 may create an upload report, which may be uploaded to the user's account on storage server 110 .
  • the upload report may include checksums and file stamps (e.g., date and time of upload).
  • the report may provide, on a line item basis, for every file, an upload time, name on disk, disk in storage server 110 , a checksum, a status code, a number of bytes, etc.
  • Transfer station 120 may further create a history log file that may be retained by the provider for billing purposes.
  • the provider may use the history log file to determine a monetary charge for uploading the data (e.g., a monetary charge per unit of uploaded data). Furthermore, the provider may retain the history log for purposes of dispute resolution.
  • Transfer station 120 may transmit the history log file to, for example, service server 118 for storage.
  • Transfer station 120 may further create an error log file that may identify errors that occurred during the upload and/or a performance log file that reflects performance data (e.g., how long each file took to upload, how many retries, etc.) for efficiency monitoring purposes.
  • transfer station 120 may transmit an update request to service server 118 in order to update the ticket corresponding to the job.
  • service server 118 may update the ticket to indicate that the job has been successfully completed.
  • service server 118 may send a notification to the user that the process has been successfully completed.
  • the notification may be sent, for example, via an e-mail message to an e-mail address associated with the user.
  • the notification may indicate that the provider will ship the storage device (e.g., provide a tracking number for the return package) or may indicate that the job has been completed and the storage device will be destroyed.
  • service server 118 may provide status information to the user at terminal 102 .
  • Status information may indicate where a storage device is physically located or a status of a job (e.g., mailroom, data room, job processed, in progress, complete, log access) or may provide information regarding errors during an upload process (e.g., certain files were corrupted, so the user can upload those specific files over network 108 ).
  • blocks 202 - 212 , 302 - 320 , and 402 - 418 may be optional and may be omitted from implementations in certain embodiments. Furthermore, functionality provided by one or more of blocks 202 - 212 , 302 - 320 , and 402 - 418 may be subdivided into multiple blocks or combined.
  • aspects of the disclosed embodiments are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer-readable media, such as secondary storage devices, for example, hard disks, floppy disks, or CD-ROM, or other forms of RAM or ROM, USB media, DVD, or other optical drive media.
  • secondary storage devices for example, hard disks, floppy disks, or CD-ROM, or other forms of RAM or ROM, USB media, DVD, or other optical drive media.
  • Programs based on the written description and disclosed methods are within the skill of an experienced developer.
  • the various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software.
  • program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets.
  • One or more of such software sections or modules can be integrated into a computer system or existing e-mail or browser software.

Abstract

Systems and methods authenticate storage devices. In one implementation, a computer-implemented method is provided for authenticating a storage device. According to the method, a manifest that identifies a destination is receive. A transfer station reads a digital signature from the storage device. The digital signature is validated and, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station is authorized to the destination identified in the manifest.

Description

    BACKGROUND
  • Anyone who wishes to transfer data over a network to a storage location is faced with the question of how to securely transfer the data in a timely manner. In cloud computing, for example, developers and other users access a service that provides dynamic and resizable compute capacity without requiring the developers to have knowledge of, or control over, the technological infrastructure that provides the service. Developers, for example, that use cloud computing sometimes have a need to upload substantial amounts of data to a network storage location.
  • To access a network, for example, a developer may use a fiber optic line, such as a T1 line. A T1 line can carry data at a rate of approximately 1.544 megabits per second. Using a single T1 line to continuously transfer data, it would take approximately an entire month to transfer 400 gigabytes of data. If a developer wishes to transfer data at a faster rate or does not wish to burden a T1 line with a large data transfer, the developer is faced with the question of whether to acquire additional T1 lines. Acquiring additional T1 lines comes at additional expense. Furthermore, the developer may not have a need for the increased data capacity for day-to-day operations, making acquiring additional T1 lines cost inefficient.
  • Similar to developers, others may also want to transfer data to a network storage location. For example, others may wish to simply backup their data with a copy that resides at another location. These users may also transfer large amounts of data over a network, which can take a substantial amount of time to transfer. Consequently, any entity that wishes to transfer a large amount of data is faced with the question of how to securely transfer the data in a reasonable amount of time without unduly burdening its own network resources or without incurring an additional expense to obtain a greater data transfer rate capacity.
  • To avoid data transfer delays and capacity limitations, individuals who wish to transfer large amounts of data to network storage devices can simply avoid transferring their data over a network altogether. Instead, these individuals can store their data on portable media and send the media by courier to a location where the data is transferred from the media. Since the data is transferred directly from the media, transfer rates to a network storage device are dramatically faster. However, when sending data in this manner, the recipient of the media (e.g., the service provider) who loads the data to a customer's account may want to confirm that the media was sent pursuant to the customer's authorization. Without proper safeguards, an imposter could send media that includes malicious code or code that is designed to steal information, which could then be unsuspectingly transferred to a network storage device.
  • In view of the foregoing, there are data transfer rate and capacity limitations that limit the amount of data that can be transferred over a network during a given time period. As an alternative to transferring data over a network, one may send data on physical media for direct transfer, but safeguards are needed to ensure that, for example, only data that is actually authorized is transferred. Therefore, there is a need for improved systems and methods that overcome the above problems.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various disclosed embodiments. In the drawings:
  • FIG. 1 is a diagram of an example of a system for authenticating a storage device;
  • FIG. 2 is a flow diagram of an example of a routine for preparing and authenticating a storage device;
  • FIG. 3 is a flow diagram of an example of a routine for preparing a storage device; and
  • FIG. 4 is a flow diagram of an example of a routine for authenticating a storage device.
  • DETAILED DESCRIPTION
  • The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. While several exemplary embodiments are described herein, modifications, adaptations and other implementations are possible. For example, substitutions, additions or modifications may be made to the components illustrated in the drawings, and the exemplary methods described herein may be modified by substituting, reordering, or adding blocks to the disclosed methods. Accordingly, the following detailed description is not limiting of the disclosed embodiments. Instead, the proper scope is defined by the appended claims.
  • Disclosed embodiments provide computer-implemented systems and methods for identifying and authenticating storage devices. Storage devices may include any media, such as universal serial bus (USB) drives, CD-ROMs, DVD-ROMs, other optical discs, etc., that can store data. Disclosed embodiments may make use of one or more storage devices to transmit, for example, hundreds of gigabytes or terabytes of data via physical media. Furthermore, disclosed embodiments provide systems and methods whereby a recipient of a storage device can identify and authenticate the sender.
  • In one embodiment, a sender who wants to have his or her data uploaded to a remotely accessible storage device, such as a network storage device may store the data on a portable storage device, such as an internal hard drive, external USB hard drive, flash memory device, or compact disc, among other possibilities. The sender may create a manifest that includes an identifier of a destination or storage location, such as an account, a unique identifier of the sender, and a return shipping address. Next, the sender may electronically transmit the manifest to a provider of the network storage device. The provider of the network storage device may return a unique device identifier, such as a device or job identifier. The sender may sign, for example, the manifest, the device or job identifier, and/or the sender identifier with a secret key to create a digital signature. Creation of the digital signature may be according to any number of cryptographic techniques (e.g., Public Key Infrastructure (PKI), etc.). The resulting digital signature may be copied to a location on the portable storage device, such as the root directory. The sender may then pack and ship the storage device to the provider.
  • Once at a data center of the provider, the provider may mount the storage device to a port of a transfer station or load the storage device via a drive of the transfer station. The provider may then identify and authenticate the storage device using the digital signature that was previously saved to the storage device. For example, the provider may send the digital signature to an external service to validate the signature and confirm that the sender was in possession of the secret key. As part of the validation, the external service may check the digital signature with the secret key, which may be in the external service's possession. The external service may retrieve the correct secret key by using, for example, a public key identifier, which may be stored on the storage device. Once verified, the provider may then transfer the data from the storage device to the network storage device via the transfer station. Accordingly, disclosed embodiments allow the provider to authenticate that the storage device came from someone in control of the sender's secret key.
  • Consistent with a disclosed embodiment, a method is provided for authenticating a storage device. The method may include receiving, from a sender, a manifest. The manifest may identify a destination. The method may further include validating a format of the manifest and transmitting, to the sender, a device identifier. The method may further include receiving the storage device from the sender. The storage device may have a digital signature stored thereon. A transfer station may read the digital signature from the storage device. The method may further include validating the digital signature, retrieving the manifest based on the device identifier, and authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
  • Consistent with another disclosed embodiment, a computer-implemented method is provided for authenticating a storage device. The method may include receiving a manifest. The manifest may identify a destination. The method may further include reading, by a transfer station, a digital signature from the storage device, validating the digital signature, and authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
  • Consistent with yet another disclosed embodiment, a system is provided for authenticating a storage device. The system may include a server that is in communication with a network. The server may include a processor and a data store. The system may further include a transfer station in communication with the network. The transfer station may be operable to receive a manifest that identifies a destination, read a digital signature from the storage device, validate the digital signature, and authorize, based on the validation of the digital signature, a transfer of one or more files from the storage device to the destination identified in the manifest.
  • Consistent with other disclosed embodiments, a computer-readable storage medium may store program instructions, which when executed by a processor, perform any of the above-described methods.
  • It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of disclosed embodiments, as claimed.
  • FIG. 1 is an example of a system 100 for authenticating a storage device, consistent with a disclosed embodiment. System 100 may provide functionality for a network storage provider to authenticate a storage device. As shown in system 100, terminals 102-106, storage server 110, service server 118, and transfer stations 120-124 are connected to a network 108. One of skill in the art will appreciate that although three terminals, one storage server, one service server, and three transfer stations are depicted in FIG. 1, any number of these components may be provided. Furthermore, one of ordinary skill in the art will recognize that one or more components of system 100 may be combined and/or divided into subcomponents. For example, functionality provided by the transfer stations and the storage server may be combined and/or functionality provided by the service server and storage server may be combined.
  • Network 108 provides communications between the various components in system 100, such as terminals 102-106, storage server 110, service server 118, and transfer stations 120-124. In addition, terminals 102-106, storage server 110, service server 118, and/or transfer stations 120-124 may access legacy systems (not shown) via network 108, or may directly access legacy systems, data stores, or other network applications. Network 108 may be a shared, public, or private network, may encompass a wide area or local area, and may be implemented through any suitable combination of wired and/or wireless communication networks. Network 108 may further comprise an intranet or the Internet.
  • Terminals 102-106 may be any type device for communicating with storage server 110 and/or service server 118 over network 108. For example, users of terminals 102-106 may access and/or receive data from storage server 110 and/or service server 118. Terminals 102-106 may be personal computers, handheld devices (e.g., PDAs, cellular phones, etc.), or any other appropriate computing platform or device capable of exchanging data with network 108. Terminals 102-106 may each include a processor (not shown), a memory (not shown), and one or more ports (not shown) for mounting storage devices (e.g., USB drives) and/or one or more drives for loading media (e.g., optical discs). Furthermore, terminals 102-106 may execute program modules that provide one or more graphical user interfaces (GUIs) for interacting with network resources, such as storage server 110 and/or service server 118.
  • Storage server 110 may comprise a general purpose computer (e.g., a personal computer, network computer, server, or mainframe computer) having one or more processors that may be selectively activated or reconfigured by a computer program. Storage server 110 may be implemented in a distributed network. For example, storage server 110 may communicate via network 108 with additional storage servers (not shown), which may enable storage server 110 to distribute processes for parallel execution by a plurality of storage servers. Collectively, storage server 110 and these additional storage servers may comprise a storage area network (SAN). Alternatively, storage server 110 may be specially constructed for carrying-out methods consistent with disclosed embodiments.
  • Storage server 110 may include a processor 112, a memory 114, and a data store 116. Memory 114 may comprise one or more memory or storage devices that store data as well as software. Memory 114 may also comprise, for example, one or more of RAM, ROM, magnetic storage, or optical storage. Memory 114 may store program modules that, when executed by processor 112, perform one or more processes for enabling access to data residing on data store 116.
  • Data store 116 may comprise a plurality of storage devices, such as disk storage devices, optical storage devices, etc. For example, data store 116 may comprise multiple disk drives that combine to form a disk array. The disk array may include, for example, a disk array controller, a cache, disk enclosures, and a power supply. The disk array controller may connect to network 108 via a port (not shown), which may serve as an interface between the disk array controller and network 108.
  • Storage server 110 may host various data, including data providing Internet sites, as well as provide functionality for authenticating users and providing access to the data. For example, data store 116 may store pages that are displayable by a computer executing software, such as an Internet browser. Storage server 110 may allow users at, for example, terminals 102-106 to access Internet sites being hosted by storage server 110. Furthermore, storage server 110 may allow providers of Internet sites (e.g., developers, site administrators, etc.) being hosted by storage server 110 to access, modify, and load data onto storage server 110. These users may access storage server 110 over network 108 through an Internet browser or software application running on any one of terminals 102-106. In some embodiments, the data may be accessible through other network mechanism, such as through an application program interface (API) of a Web Service.
  • Storage server 110 may transmit a document (e.g., a JavaScript Object Notation (JSON) document, an Extensible Markup Language (XML) document, or a web page) that is accessible by an Internet browser executing on one of terminals 102-106. The document may include options for a user to log onto a secure site provided by storage server 110. For example, users may log onto a secure site provided by storage server 110 by supplying credentials, such as a username and a password. Because the Internet site may use a secure communication environment, such as an HTTPS (hypertext transfer protocol secure) environment to transfer data over network 108, data transfer is assumed to be secure.
  • Service server 118 may comprise a general purpose computer (e.g., a personal computer, network computer, server, or mainframe computer) having one or more processors (not shown) that may be selectively activated or reconfigured by a computer program stored in memory (not shown). Service server 118 may be implemented in a distributed network, such that service server 118 may communicate via network 108 with additional service servers (not shown). Alternatively, service server 118 may be specially constructed for carrying-out methods consistent with disclosed embodiments.
  • In operation, service server 118 may coordinate operations of a service for authenticating storage devices. For example, service server 118 may allow users at terminals 102-106 to access the service to submit and/or monitor requests to ship physical media to a provider that will upload data from the physical media to storage server 110. For example, a user who wants to have his or her data uploaded to storage server 110 may submit a request from one of terminals 102-106. The request may include a manifest pertaining to the request, which may be in the form of a manifest file that identifies the user and specifies a storage location for the data. Manifest files are discussed below in further detail. Service server 118 may further store the manifest and return data and/or instructions to the user at one of terminals 102-106. For example, the instructions may indicate an address to which the user should ship a storage device, such as an external USB hard drive. Service server 118 may further provide status information to users at terminals 102-106, as discussed below in further detail.
  • Transfer stations 120-124 may comprise general purpose computers (e.g., personal computers, network computers, servers, or mainframe computers) having one or more processors (not shown) that may be selectively activated or reconfigured by a computer program. Transfer stations 120-124 may communicate via network 108 with storage server 110. Furthermore, in some embodiments, transfer stations 120-124 may implement restrictive safeguards such that data may only be loaded from transfer stations 120-124 to storage server 110. Transfer stations 120-124 may include one or more access ports (not shown) and/or drives (not shown) for mounting or loading storage devices, such as USB drives, CD-ROMs, DVD-ROMs, other optical discs, etc. For example, transfer technicians may mount or load storage devices to the access ports and/or drives of transfer stations 120-124. Once a storage device is attached or loaded to one of transfer stations 120-124, the storage device may be authenticated by reading a signature file saved to the storage device. Further details concerning the authentication of storage devices are discussed below.
  • FIG. 2 is a flow diagram of an example of a routine 200 for preparing and authenticating a storage device, consistent with a disclosed embodiment. Routine 200 provides an overview of a process in which data files are stored on a storage device, which is then transported, authenticated, and uploaded to a network storage location (e.g., storage server 110). Further details regarding the process are discussed in connection with FIGS. 3 and 4.
  • In block 202, a user at one of terminals 102-106 may store data on a storage device. The data may include, for example, data files intended for upload to a network storage device, such as storage server 110. The user may transfer the data from terminal 102 to a portable storage device, such as a USB drive, CD-ROM, DVD-ROM, other optical disc, etc., which may be mounted or inserted into a port or drive that is in communication with terminal 102.
  • In block 204, the user may store a digital signature on the storage device. The user may transfer the digital signature to the storage device via terminal 102. For example, the user may store the digital signature on the root directory of the storage device or in a particular folder.
  • In block 206, the user may ship the storage device to a provider that will host the data on a network storage device, such as storage server 110. As part of the process, the user may pack the storage device, print a shipping label, and transfer the package to a shipping service. The shipping service may then physically transport the package to the provider using one or more modes of transportation (vehicles, airplanes, trains, ships, etc.).
  • In block 208, the provider may receive the storage device from the shipping service. Next, in decision block 210, the provider may determine whether the storage device includes a valid digital signature. To determine whether the storage device includes a valid signature, the provider may mount or load the storage device to one of transfer stations 120-124. Once mounted or loaded, one of transfer stations 120-124 may read the digital signature and determine whether the digital signature is valid. As part of the validation process, transfer stations 120-124 may access data residing on, for example, service server 118. If the digital signature is valid, then the process proceeds to block 208. If the digital signature is not valid, then the process ends. Further details regarding authenticating digital signatures are discussed below.
  • In block 212, the provider may upload the data files to a destination, such as an account associated with the user. For example, the provider may use one of transfer stations 120-124 to transfer the data files over network 108 to storage server 110.
  • Although the above discussion and the following discussion refers to the provider of storage server 110 as being the party that operates transfer stations 120-124, one of ordinary skill in the art will recognize that a third party could perform similar functions as the provider or on the provider's behalf.
  • FIG. 3 is a flow diagram of an example of a routine 300 for preparing a storage device, consistent with a disclosed embodiment. Routine 300 provides further details regarding a process in which a user prepares a storage device for shipment.
  • Prior to the start of routine 300, a user may be authenticated by, for example, service server 118. For example, prior to the start of routine 300, service server 118 may transmit a document (e.g., a web page) that is accessible by an Internet browser executing on one of terminals 102-106. The document may include options for a user to log onto a secure site provided by service server 118. The user may log onto the secure site by supplying credentials, such as a username and a password. Once authenticated, routine 300 may begin.
  • In block 302, the user may copy data to a portable storage device. As discussed above, a user at one of terminals 102-106 may store data that may include, for example, data files intended for upload to a network storage device, such as storage server 110. The user may transfer the data from, for example, terminal 102 to a portable storage device, such as an internal hard drive, an external USB hard drive, flash memory device, CD-ROM, DVD-ROM, other optical disc, etc., which may be mounted to a port or loaded into a drive that is in communication with terminal 102. In some implementations, the storage device may need to support a particular file system format (e.g., FAT32, ext3, NTFS, HFS) and each file that is stored on the storage device may need to be less than or equal to a particular file size (e.g., five gigabytes). In still other implementations, the user may encrypt the data that is stored on the storage device.
  • In block 304, the user may create a manifest, which may identify the contents of the storage device. The user may create the manifest at, for example, terminal 102, using a text editor. In one implementation, the manifest may comprise a text file. In other implementations, the user may use a web user interface (UI) to create the manifest.
  • The manifest may be of a particular file format (e.g., YAML, XML, JSON, etc.) and may include several pieces of information. For example, the manifest may include an identifier of a destination or storage location, such as an account. The manifest may further include a public key identifier (ID) of the user or a recipient of the storage device. The public key ID may constitute a string that uniquely identifies the user or recipient. In some implementations, any unique identifier of the user, sender, recipient, or the storage device may be used. Furthermore, the public key ID may have a corresponding secret key ID. The secret key may be used to generate a digital signature, which is discussed below in further detail, to authenticate the storage device.
  • The following is an example of a manifest (e.g., a manifest file named “manifest123.txt”):
  • destination: my-account
  • accessKeyId: 0FF36Q3V0WFFSRW0EXG2
  • manifestVersion: 1.0
  • returnAddress:
      • name: Mr. Smith
      • street1: 123 Main Street
      • city: Seattle
      • stateOrProvince: WA
      • postalCode: 98104
      • phoneNumber: 206-555-1000
      • country: USA
  • In the above example, the manifest file specifies an identifier of a destination, e.g., a single storage location for uploading files (e.g., “my-account”). The manifest further includes an access key ID (e.g., “0FF36Q3V0WFFSRW0EXG2”), a manifest version (e.g., “1.0”), and a return address. The provider may use the return address so that, once the storage device has been processed, it may be returned to the user.
  • The above is merely illustrative and manifests may include additional information or less information than shown above. For example, the manifest may include additional information, such as one or more content types for files, metadata, instructions to ignore certain files (e.g., ignore files with a particular extension), and may specify storage locations for certain files (e.g., all files of type “.jpg” should be uploaded to a folder named “/images/”). For additional security, the manifest include a disk inventory (e.g., a list of files and checksums). In some embodiments, a manifest may not necessarily include all of the information shown in the exemplary manifest file. For example, in some implementations, after processing, the storage device may not been returned and may instead be destroyed. In such an implementation, the return address may be omitted from the manifest.
  • In block 306, the provider of a data hosting service (e.g., a provider of storage server 110) may receive the manifest from the user via a secure channel. For example, the user may send the manifest over network 108 from terminal 102 to service server 118. In one implementation, the manifest may be submitted via email as an attachment. In other implementations, the manifest may be submitted via a web UI or a web API (e.g., implemented through a protocol such as SOAP).
  • In some implementations, in block 306, the provider may further receive an encryption key from the user via the secure channel. For example, in block 302, the user may have encrypted the contents of the storage device. Accordingly, the provider (e.g., a provider of storage server 110) may later use the encryption key to decrypt the contents of the storage device.
  • In block 308, service server 118 may validate the format of the manifest and/or content of the manifest. For example, service server 118 may invoke a service to determine whether the manifest includes a minimum amount of required information and whether the manifest is properly formatted. Furthermore, as part of the validation process, service server 118 may confirm that the user has identifier a valid storage location or locations (e.g., an account) in the manifest.
  • In block 310, service server 118 may create a device or job ID. For example, one of transfer stations 120-124 may use the job ID to retrieve the manifest and/or to identify the transfer job at a later time. In other implementations, service server 118 may not need to assign a job ID, because the user may have provided the job ID in block 306. For example, service server 118 may have previously assigned the user a globally unique identifier (GUID), which service server 118 may subsequently use to retrieve the manifest and the job ID.
  • In block 312, service server 118 may store the manifest. Service server 118 may optionally store the encryption key as part of this block. Optionally, service server 118 may transmit the job ID to storage server 110.
  • In block 314, service server 118 may transmit the job ID to the user at terminal 102 via network 108. For example, service server 118 may send a success message (e.g., an e-mail message) to the user with the job ID.
  • In block 316, the user may create a digital signature. The digital signature may uniquely identify the transfer job and be used to authenticate the request at a later time. To create the digital signature, the user may need a job ID, the manifest, a public key ID, and a secret key ID.
  • In one implementation, as part of the process of creating the digital signature, an encryption service being executed at terminal 102 or being provided over network 108 via, for example, service server 118, may be passed parameters, such as the manifest (e.g., “manifest123.txt”), the job ID (e.g., 3343), and the user's public key ID (e.g., 0FF36Q3V0WFFSRW0EXG2) or the recipient's public key ID. The service may prompt the user for the user's secret key ID. In other embodiments, the service may prompt the user for a secret key ID of a recipient of the storage device, such as a provider of a network storage device.
  • After entering the secret key ID, the service may create a digital signature, using the secret key ID to sign the passed parameters (e.g., the manifest, the job ID, and/or the public key ID). Accordingly, as the digital signature is based on the manifest, the digital signature can be later used to validate that the manifest on the storage device is the same as the manifest that was received by service server 118 in block 306 (e.g., the digital signature can validate that the manifest at the time of the signing and the one sent to the provider are byte-for-byte identical).
  • In block 318, the user may copy the digital signature to the storage device. For example, the user may use terminal 102 to store the digital signature on the root directory of the storage device or in a particular folder. In addition, as part of block 318, the user may store the job ID and/or the public key ID to the storage device, along with the digital signature.
  • In one implementation, the job ID, the public key, and the digital signature may be stored separately on the storage device. In another implementation, the user may create a signature file that comprises the job ID, the public key ID, and the digital signature. The name of the signature file may have a required format (e.g., the signature file may be required to be named “Signature”).
  • As part of block 318, the user may also copy the data files that the user wishes to transfer from terminal 102 to the storage device. Copying the data files may occur before or after this step, as deemed appropriate by the user. As the storage device includes the job ID, the provider may use the job ID to retrieve the manifest from service server 118. In a preferred embodiment, the actual manifest is not stored on the storage device.
  • In block 320, the user may pack the storage device and ship the storage device to the provider, which will host the data on network storage, such as storage server 110. For example, the user may pack the storage device, print a shipping label, and transfer the package to a shipping service provider. The shipping service provider may then physically transport the package using one or more modes of transportation (vehicles, airplanes, trains, ships, etc.). In other implementations, service server 118 may convert the digital signature into a barcode such that a package or physical object itself could be authenticated according to disclosed embodiments.
  • FIG. 4 is a flow diagram of an example of a routine 400 for authenticating a storage device, consistent with a disclosed embodiment. Routine 400 provides further details regarding a process in which a provider receives a storage device, authenticates the storage device, and transfers the data from the storage device. Accordingly, routine 400 may occur after routine 300, for example.
  • In block 402, the provider may receive the storage device at a facility. For example, as part of the intake process of the storage device, the provider may check the package (i.e., verify that the package is on an expected package list), check where the package originated from, and perform a security check before forwarding the package to a data center, which may house transfer stations 120-124.
  • In block 404, the provider may create a ticket for the storage device (i.e., assign the package a tracking number). For example, receipt of the package may be input into a terminal (not shown) in communication service server 118. Accordingly, service server 118 may create a ticket number that is associated with the ticket and the package.
  • In block 406, the provider may mount the storage device to one of transfer stations 120-124, such as transfer station 120. As discussed above, transfer stations 120-124 may include one or more access ports (not shown) or drives for mounting or loading storage devices, such as internal hard drives, USB drives, CD-ROMs, DVD-ROMs, other optical discs, etc.
  • In decision block 408, transfer station 120 may read the signature file from the storage device. For example, the job ID and/or the public key ID may be stored together as part of a signature file. Alternatively, as discussed above, in other embodiments, transfer station 120 may read the job ID, the public key ID, and/or the digital signature from the storage device, which may each be stored as separate files.
  • As part of block 408, transfer station 120 may send the digital signature (either separately or as part of a signature file) via network 108 to an external service to validate the digital signature, which may verify that the sender was in possession of the secret key. For example, the external service may be provided by, for example, service server 118. As part of the validation, the external service may check the digital signature with the secret key (e.g., the user's secret key or a secret key of the recipient), which may be in the external service's possession (e.g., stored by service server 118). The external service may retrieve the correct secret key by using, for example, the public key ID, which transfer station 120 may pass to the external service. Accordingly, the external service may authenticate that the storage device came from someone in control of the user's secret key ID.
  • If the digital signature is valid, the external service may transmit a “success” result to transfer station 120 and the process proceeds to block 410. If the digital signature is not valid, then the process ends.
  • In block 410, storage server 110 may perform a process to authorize the transfer of the files to the user's account from transfer station 120. For example, the user's account may only authorize the user to upload files. However, since transfer station 120 is going to perform the upload, transfer station 120 may need authorization, because the user is not in control transfer station 120. Accordingly, in block 410, a security token service may submit a request to, for example, storage server 110 or another service, in order to allow transfer station 120 to upload data to the user's account. In some implementations, block 410 may be optional as such authorization may not be required and transfer station 120 may implicitly have authorization to upload data.
  • In block 412, transfer station 120 may transfer or upload the data files to an account or storage location associated with the user. For example, the provider may use one of transfer stations 120-124 to transfer the data files over network 108 to storage server 110. Optionally, as part of block 412, transfer station 120 may retrieve an encryption key sent by the user from service server 118 to decrypt the contents of the storage device.
  • The transfer of the files may occur according to the manifest. For example, transfer station 120 may retrieve the manifest from service server 118 according to the job ID. At a minimum, the manifest may indicate a destination, such as a single storage location (e.g., a directory of the user's account) of storage server 110 where the files should be uploaded. The manifest may further include additional rules or parameters, which may designate, for example, certain storage locations for certain files (e.g., all image files are to be uploaded to an existing directory named “/images/” on the user's account).
  • In block 414, transfer station 120 may create one or more log files. For example, transfer station 120 may create an upload report, which may be uploaded to the user's account on storage server 110. The upload report may include checksums and file stamps (e.g., date and time of upload). For example, the report may provide, on a line item basis, for every file, an upload time, name on disk, disk in storage server 110, a checksum, a status code, a number of bytes, etc.
  • Transfer station 120 may further create a history log file that may be retained by the provider for billing purposes. The provider may use the history log file to determine a monetary charge for uploading the data (e.g., a monetary charge per unit of uploaded data). Furthermore, the provider may retain the history log for purposes of dispute resolution. Transfer station 120 may transmit the history log file to, for example, service server 118 for storage. Transfer station 120 may further create an error log file that may identify errors that occurred during the upload and/or a performance log file that reflects performance data (e.g., how long each file took to upload, how many retries, etc.) for efficiency monitoring purposes.
  • In block 416, transfer station 120 may transmit an update request to service server 118 in order to update the ticket corresponding to the job. For example, service server 118 may update the ticket to indicate that the job has been successfully completed.
  • In block 418, service server 118 may send a notification to the user that the process has been successfully completed. The notification may be sent, for example, via an e-mail message to an e-mail address associated with the user. Furthermore, the notification may indicate that the provider will ship the storage device (e.g., provide a tracking number for the return package) or may indicate that the job has been completed and the storage device will be destroyed.
  • During the above process, service server 118 may provide status information to the user at terminal 102. Status information may indicate where a storage device is physically located or a status of a job (e.g., mailroom, data room, job processed, in progress, complete, log access) or may provide information regarding errors during an upload process (e.g., certain files were corrupted, so the user can upload those specific files over network 108).
  • As one of ordinary skill in the art will appreciate, one or more of blocks 202-212, 302-320, and 402-418 may be optional and may be omitted from implementations in certain embodiments. Furthermore, functionality provided by one or more of blocks 202-212, 302-320, and 402-418 may be subdivided into multiple blocks or combined.
  • The foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed embodiments. For example, the described implementations include software, but systems and methods consistent with the disclosed embodiments be implemented as a combination of hardware and software or in hardware alone. Examples of hardware include computing or processing systems, including personal computers, servers, laptops, mainframes, micro-processors and the like. Additionally, although aspects of the disclosed embodiments are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer-readable media, such as secondary storage devices, for example, hard disks, floppy disks, or CD-ROM, or other forms of RAM or ROM, USB media, DVD, or other optical drive media.
  • Computer programs based on the written description and disclosed methods are within the skill of an experienced developer. The various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software. For example, program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets. One or more of such software sections or modules can be integrated into a computer system or existing e-mail or browser software.
  • Moreover, while illustrative embodiments have been described herein, the scope of any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those skilled in the art based on the present disclosure. The limitations in the claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification or during the prosecution of the application, which examples are to be construed as non-exclusive. Furthermore, the blocks of the disclosed routines may be modified in any manner, including by reordering blocks and/or inserting or deleting blocks. It is intended, therefore, that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents.

Claims (37)

1. A method for authenticating a storage device, comprising:
receiving, from a sender, a manifest, the manifest identifying a destination;
validating a format of the manifest;
transmitting, to the sender, a device identifier;
receiving the storage device from the sender, the storage device having a digital signature stored thereon;
reading, by a transfer station, the digital signature from the storage device;
validating the digital signature;
retrieving the manifest based on the device identifier; and
authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
2. The method of claim 1, wherein the manifest comprises a text file.
3. The method of claim 1, wherein the destination comprises a storage location of an account of the sender.
4. The method of claim 3, wherein the transfer station comprises a computer that includes the storage location.
5. The method of claim 3, wherein the transfer station comprises a computer that does not include the storage location.
6. The method of claim 1, wherein the destination comprises a storage location of a storage server that is external to the transfer station.
7. The method of claim 1, wherein the destination is a storage location available over a network.
8. The method of claim 7, wherein the manifest further comprises instructions specifying a directory of the storage location for transferring the one or more files.
9. The method of claim 1, further comprising:
transferring, when the digital signature is valid, the one or more files from the storage device via the transfer station to the destination.
10. The method of claim 1, wherein the storage device further has the device identifier stored thereon.
11. The method of claim 10, further comprising:
reading the device identifier from the storage device.
12. The method of claim 10, wherein the storage device further has an identifier of the sender stored thereon.
13. The method of claim 10, wherein the device identifier and the digital signature are stored on the storage device as a signature file.
14. The method of claim 1, wherein validating the digital signature comprises sending the digital signature to an external service.
15. The method of claim 14, wherein the external service uses a secret key of the sender.
16. The method of claim 14, wherein the external service uses a secret key of a recipient of the storage device.
17. A computer-implemented method for authenticating a storage device, comprising:
receiving a manifest, the manifest identifying a destination;
reading, by a transfer station, a digital signature from the storage device;
validating the digital signature; and
authorizing, based on the validation of the digital signature, a transfer of one or more files from the storage device via the transfer station to the destination identified in the manifest.
18. The computer-implemented method of claim 17, further comprising:
validating a format of the manifest.
19. The computer-implemented method of claim 17, further comprising:
transmitting, to a sender of the manifest, a device identifier.
20. The computer-implemented method of claim 19, further comprising:
retrieving the manifest based on the device identifier.
21. The computer-implemented method of claim 17, wherein the storage device further has the device identifier stored thereon.
22. The computer-implemented method of claim 17, wherein the storage device further has an identifier of the sender stored thereon.
23. The computer-implemented method of claim 17, further comprising:
transferring, when the digital signature is valid, the one or more files from the storage device via the transfer station to the destination.
24. The computer-implemented method of claim 17, further comprising:
storing the manifest to a memory location that is accessible by the transfer station over a network.
25. The computer-implemented method of claim 17, wherein reading the digital signature by the transfer station further comprises reading the storage device via a port of the transfer station.
26. The computer-implemented method of claim 17, wherein reading the digital signature by the transfer station further comprises reading the storage device via a drive of the transfer station.
27. The computer-implemented method of claim 17, wherein the destination comprises a storage location of a storage server that is external to the transfer station.
28. The computer-implemented method of claim 17, wherein the destination is a storage location available over a network.
29. The computer-implemented method of claim 28, wherein the manifest further comprises instructions specifying a directory of the storage location for transferring the one or more files.
30. The computer-implemented method of claim 17, wherein validating the digital signature comprises sending the digital signature to an external service.
31. The computer-implemented method of claim 30, wherein the external service uses a secret key of the sender.
32. The computer-implemented method of claim 30, wherein the external service uses a secret key of a recipient of the storage device.
33. A system for authenticating a storage device, the system comprising:
a server comprising a processor and a data store, the server being in communication with a network; and
a transfer station in communication with the network, the transfer station operable to:
receive a manifest, the manifest identifying a destination;
read a digital signature from the storage device;
validate the digital signature; and
authorize, based on the validation of the digital signature, a transfer of one or more files from the storage device to the destination identified in the manifest.
34. The system of claim 33, wherein the transfer station is further operable to retrieve the manifest.
35. The system of claim 33, wherein the transfer station uses the destination to identify a storage location of the data store to which the one or more files are uploaded.
36. The system of claim 35, wherein the manifest further comprises instructions specifying a directory of the storage location for transferring the one or more files.
37. The system of claim 33, wherein validating the digital signature comprises sending the digital signature from the transfer station to an external service over the network.
US12/453,614 2009-05-15 2009-05-15 Storage device authentication Active 2034-04-16 US9270683B2 (en)

Priority Applications (12)

Application Number Priority Date Filing Date Title
US12/453,614 US9270683B2 (en) 2009-05-15 2009-05-15 Storage device authentication
EP10775523.3A EP2430548B1 (en) 2009-05-15 2010-05-13 Storage device authentication
EP21185103.5A EP3917111A1 (en) 2009-05-15 2010-05-13 Storage device authentication
CA2761684A CA2761684C (en) 2009-05-15 2010-05-13 Storage device authentication
SG2011082831A SG175987A1 (en) 2009-05-15 2010-05-13 Storage device authentication
PCT/US2010/034678 WO2010132647A1 (en) 2009-05-15 2010-05-13 Storage device authentication
JP2012511003A JP5443596B2 (en) 2009-05-15 2010-05-13 Storage device authentication
CN201080021510.7A CN102428448B (en) 2009-05-15 2010-05-13 Storage device authentication
US15/050,082 US10061716B2 (en) 2009-05-15 2016-02-22 Storage device authentication
US16/112,487 US10719455B2 (en) 2009-05-15 2018-08-24 Storage device authentication
US16/931,686 US11520710B2 (en) 2009-05-15 2020-07-17 Storage device authentication
US18/061,363 US11954046B2 (en) 2022-12-02 Storage device authentication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/453,614 US9270683B2 (en) 2009-05-15 2009-05-15 Storage device authentication

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/050,082 Continuation US10061716B2 (en) 2009-05-15 2016-02-22 Storage device authentication

Publications (2)

Publication Number Publication Date
US20100293383A1 true US20100293383A1 (en) 2010-11-18
US9270683B2 US9270683B2 (en) 2016-02-23

Family

ID=43069460

Family Applications (4)

Application Number Title Priority Date Filing Date
US12/453,614 Active 2034-04-16 US9270683B2 (en) 2009-05-15 2009-05-15 Storage device authentication
US15/050,082 Active 2029-10-17 US10061716B2 (en) 2009-05-15 2016-02-22 Storage device authentication
US16/112,487 Active US10719455B2 (en) 2009-05-15 2018-08-24 Storage device authentication
US16/931,686 Active 2029-05-27 US11520710B2 (en) 2009-05-15 2020-07-17 Storage device authentication

Family Applications After (3)

Application Number Title Priority Date Filing Date
US15/050,082 Active 2029-10-17 US10061716B2 (en) 2009-05-15 2016-02-22 Storage device authentication
US16/112,487 Active US10719455B2 (en) 2009-05-15 2018-08-24 Storage device authentication
US16/931,686 Active 2029-05-27 US11520710B2 (en) 2009-05-15 2020-07-17 Storage device authentication

Country Status (7)

Country Link
US (4) US9270683B2 (en)
EP (2) EP3917111A1 (en)
JP (1) JP5443596B2 (en)
CN (1) CN102428448B (en)
CA (1) CA2761684C (en)
SG (1) SG175987A1 (en)
WO (1) WO2010132647A1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202753A1 (en) * 2010-02-15 2011-08-18 Sony Europe Limited Customisation of notifications provided by a computer apparatus
US20110314135A1 (en) * 2009-03-05 2011-12-22 Telecom Italia S.P.A. Distributed system for storing digital data
US20120176222A1 (en) * 2009-09-09 2012-07-12 Hyundai Heavy Industries Co., Ltd. Apparatus for managing the operation of a ship block
US20130067600A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Selective file access for applications
US20130111609A1 (en) * 2011-11-01 2013-05-02 Cleversafe, Inc. Highly secure method for accessing a dispersed storage network
US20130246460A1 (en) * 2011-03-09 2013-09-19 Annai Systems, Inc. System and method for facilitating network-based transactions involving sequence data
US20150154059A1 (en) * 2012-08-16 2015-06-04 Tencent Technology (Shenzhen) Company Limited Method and apparatus for implementing extended application
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US9679130B2 (en) 2011-09-09 2017-06-13 Microsoft Technology Licensing, Llc Pervasive package identifiers
US20170178069A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Data transfer tool for secure client-side data transfer to a shippable storage device
US9756031B1 (en) 2011-12-21 2017-09-05 Amazon Technologies, Inc. Portable access to auditing information
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US20180026800A1 (en) * 2016-07-22 2018-01-25 Alberto J. Munoz Techniques to verify and authenticate resources in a data center computer environment
US20180284987A1 (en) * 2017-03-29 2018-10-04 Amazon Technologies, Inc. Migration of information via storage devices
US20180285369A1 (en) * 2017-03-29 2018-10-04 Amazon Technologies, Inc. Manifest generation for data transfers
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270683B2 (en) 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication
GB2505297B (en) * 2012-07-16 2014-11-26 Owl Computing Technologies Inc File manifest filter for unidirectional transfer of files
US9736121B2 (en) 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
US8776254B1 (en) 2013-01-23 2014-07-08 Owl Computing Technologies, Inc. System and method for the secure unidirectional transfer of software and software updates
US10218586B2 (en) 2013-01-23 2019-02-26 Owl Cyber Defense Solutions, Llc System and method for enabling the capture and securing of dynamically selected digital information
US9306953B2 (en) 2013-02-19 2016-04-05 Owl Computing Technologies, Inc. System and method for secure unidirectional transfer of commands to control equipment
US9311329B2 (en) 2014-06-05 2016-04-12 Owl Computing Technologies, Inc. System and method for modular and continuous data assurance
US9575987B2 (en) 2014-06-23 2017-02-21 Owl Computing Technologies, Inc. System and method for providing assured database updates via a one-way data link
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US10360529B2 (en) * 2015-06-30 2019-07-23 Amazon Technologies, Inc. Shippable network-attached data storage device with updateable electronic display
US10394762B1 (en) 2015-07-01 2019-08-27 Amazon Technologies, Inc. Determining data redundancy in grid encoded data storage systems
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US10642813B1 (en) 2015-12-14 2020-05-05 Amazon Technologies, Inc. Techniques and systems for storage and processing of operational data
US9934389B2 (en) * 2015-12-18 2018-04-03 Amazon Technologies, Inc. Provisioning of a shippable storage device and ingesting data from the shippable storage device
US9887998B2 (en) * 2015-12-18 2018-02-06 Amazon Technologies, Inc. Security model for data transfer using a shippable storage device
US10592336B1 (en) 2016-03-24 2020-03-17 Amazon Technologies, Inc. Layered indexing for asynchronous retrieval of redundancy coded data
US10678664B1 (en) 2016-03-28 2020-06-09 Amazon Technologies, Inc. Hybridized storage operation for redundancy coded data storage systems
US10366062B1 (en) 2016-03-28 2019-07-30 Amazon Technologies, Inc. Cycled clustering for redundancy coded data storage systems
US10061668B1 (en) 2016-03-28 2018-08-28 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10496327B1 (en) 2016-09-28 2019-12-03 Amazon Technologies, Inc. Command parallelization for data storage systems
US10437790B1 (en) 2016-09-28 2019-10-08 Amazon Technologies, Inc. Contextual optimization for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US10657097B1 (en) 2016-09-28 2020-05-19 Amazon Technologies, Inc. Data payload aggregation for data storage systems
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US10614239B2 (en) 2016-09-30 2020-04-07 Amazon Technologies, Inc. Immutable cryptographically secured ledger-backed databases
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US10346071B2 (en) 2016-12-29 2019-07-09 Western Digital Technologies, Inc. Validating firmware for data storage devices
US11016954B1 (en) 2017-09-01 2021-05-25 Amazon Technologies, Inc. Distributed data set extraction for migration
SG10202105796SA (en) 2021-06-01 2021-07-29 Flexxon Pte Ltd Module and method for authenticating data transfer between a storage device and a host device

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US20030009365A1 (en) * 2001-01-09 2003-01-09 Dermot Tynan System and method of content management and distribution
US6546492B1 (en) * 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
US20030078880A1 (en) * 1999-10-08 2003-04-24 Nancy Alley Method and system for electronically signing and processing digital documents
US20030233552A1 (en) * 2001-06-04 2003-12-18 Adrian Baldwin Packaging evidence for long term validation
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US20070005758A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Application security in an interactive media environment
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
US20070294457A1 (en) * 2006-06-16 2007-12-20 Alexander Gantman USB wireless network drive
US20090006640A1 (en) * 2007-06-28 2009-01-01 Michael Lambertus Hubertus Brouwer Incremental secure backup and restore of user settings and data
US20100251390A1 (en) * 2007-11-01 2010-09-30 Kazuhiko Shimura Electronic camera, storage medium, and data transfer method
US7814551B2 (en) * 2003-09-09 2010-10-12 Microsoft Corporation System and method for manifest generation
US20110225640A1 (en) * 2008-08-14 2011-09-15 Microsoft Corporation Cloud-based device information storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144745A (en) 1997-04-07 2000-11-07 Fujitsu Limited Method of and apparatus for retaining and verifying of data on recording medium
JP2001092827A (en) 1999-09-20 2001-04-06 Toshiba Corp Device and method for managing data
US7493497B1 (en) * 2000-02-03 2009-02-17 Integrated Information Solutions Digital identity device
US20030188183A1 (en) 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
JP3897613B2 (en) * 2002-02-27 2007-03-28 株式会社日立製作所 Operation method of registration authority server, registration authority server, and program in public key cryptosystem
US20080215667A1 (en) * 2003-10-09 2008-09-04 Pb&J Software, Llc Method and system for sharing storage space on a computer
JP2006157399A (en) * 2004-11-29 2006-06-15 Hitachi Ltd Method for supporting exchange of electronic document with electronic signature, and information processing apparatus
GB2431249A (en) * 2005-10-11 2007-04-18 Hewlett Packard Development Co Removable data storage item and key distribution
US20080021857A1 (en) * 2006-07-10 2008-01-24 Kabushiki Kaisha Toshiba Electronic Data Storing Apparatus
JP2008046830A (en) 2006-08-15 2008-02-28 Fuji Xerox Co Ltd Image output device, electronic manuscript submission system, and program
WO2008088856A1 (en) * 2007-01-17 2008-07-24 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
JP2009087053A (en) 2007-09-28 2009-04-23 Nec Corp File transmitting and receiving system, mobile terminal, and terminal program
US9270683B2 (en) 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6546492B1 (en) * 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
US20030078880A1 (en) * 1999-10-08 2003-04-24 Nancy Alley Method and system for electronically signing and processing digital documents
US20030009365A1 (en) * 2001-01-09 2003-01-09 Dermot Tynan System and method of content management and distribution
US20030233552A1 (en) * 2001-06-04 2003-12-18 Adrian Baldwin Packaging evidence for long term validation
US7814551B2 (en) * 2003-09-09 2010-10-12 Microsoft Corporation System and method for manifest generation
US20070005758A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Application security in an interactive media environment
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
US20070294457A1 (en) * 2006-06-16 2007-12-20 Alexander Gantman USB wireless network drive
US20090006640A1 (en) * 2007-06-28 2009-01-01 Michael Lambertus Hubertus Brouwer Incremental secure backup and restore of user settings and data
US20100251390A1 (en) * 2007-11-01 2010-09-30 Kazuhiko Shimura Electronic camera, storage medium, and data transfer method
US20110225640A1 (en) * 2008-08-14 2011-09-15 Microsoft Corporation Cloud-based device information storage

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314135A1 (en) * 2009-03-05 2011-12-22 Telecom Italia S.P.A. Distributed system for storing digital data
US9479586B2 (en) * 2009-03-05 2016-10-25 Telecom Italia S.P.A. Distributed system for storing digital data
US20120176222A1 (en) * 2009-09-09 2012-07-12 Hyundai Heavy Industries Co., Ltd. Apparatus for managing the operation of a ship block
US8653945B2 (en) * 2009-09-09 2014-02-18 Hyundai Heavy Industries Co., Ltd. Apparatus for managing the operation of a ship block
US20110202753A1 (en) * 2010-02-15 2011-08-18 Sony Europe Limited Customisation of notifications provided by a computer apparatus
US20130246460A1 (en) * 2011-03-09 2013-09-19 Annai Systems, Inc. System and method for facilitating network-based transactions involving sequence data
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US20130067600A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Selective file access for applications
US9679130B2 (en) 2011-09-09 2017-06-13 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) * 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US10469622B2 (en) 2011-09-12 2019-11-05 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US20130111609A1 (en) * 2011-11-01 2013-05-02 Cleversafe, Inc. Highly secure method for accessing a dispersed storage network
US9304843B2 (en) * 2011-11-01 2016-04-05 Cleversafe, Inc. Highly secure method for accessing a dispersed storage network
US9756031B1 (en) 2011-12-21 2017-09-05 Amazon Technologies, Inc. Portable access to auditing information
US20150154059A1 (en) * 2012-08-16 2015-06-04 Tencent Technology (Shenzhen) Company Limited Method and apparatus for implementing extended application
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US10482413B2 (en) * 2015-12-18 2019-11-19 Amazon Technologies, Inc. Data transfer tool for secure client-side data transfer to a shippable storage device
US20170178069A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Data transfer tool for secure client-side data transfer to a shippable storage device
US10489156B2 (en) * 2016-07-22 2019-11-26 Intel Corporation Techniques to verify and authenticate resources in a data center computer environment
CN109328351A (en) * 2016-07-22 2019-02-12 英特尔公司 For verifying the technology with the resource in authentication data central computer environment
WO2018017986A1 (en) * 2016-07-22 2018-01-25 Intel Corporation Techniques to verify and authenticate resources in a data center computer environment
US20180026800A1 (en) * 2016-07-22 2018-01-25 Alberto J. Munoz Techniques to verify and authenticate resources in a data center computer environment
US20200053438A1 (en) * 2016-07-22 2020-02-13 Intel Corporation Techniques to verify and authenticate resources in a data center computer environment
US11838113B2 (en) * 2016-07-22 2023-12-05 Intel Corporation Techniques to verify and authenticate resources in a data center computer environment
US20180285369A1 (en) * 2017-03-29 2018-10-04 Amazon Technologies, Inc. Manifest generation for data transfers
US20180284987A1 (en) * 2017-03-29 2018-10-04 Amazon Technologies, Inc. Migration of information via storage devices
US10768849B2 (en) * 2017-03-29 2020-09-08 Amazon Technologies, Inc. Migration of information via storage devices
US11409458B2 (en) 2017-03-29 2022-08-09 Amazon Technologies, Inc. Migration of information via storage devices

Also Published As

Publication number Publication date
CN102428448A (en) 2012-04-25
EP2430548A1 (en) 2012-03-21
CA2761684C (en) 2015-07-14
US20230229601A1 (en) 2023-07-20
US10719455B2 (en) 2020-07-21
US20200349092A1 (en) 2020-11-05
CA2761684A1 (en) 2010-11-18
WO2010132647A1 (en) 2010-11-18
US20160170908A1 (en) 2016-06-16
SG175987A1 (en) 2011-12-29
CN102428448B (en) 2015-09-02
EP2430548B1 (en) 2021-08-11
JP2012527188A (en) 2012-11-01
US20190012272A1 (en) 2019-01-10
US11520710B2 (en) 2022-12-06
EP3917111A1 (en) 2021-12-01
EP2430548A4 (en) 2014-05-21
US9270683B2 (en) 2016-02-23
JP5443596B2 (en) 2014-03-19
US10061716B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
US11520710B2 (en) Storage device authentication
US20220156706A1 (en) File vault and cloud based document notary service
JP7204070B2 (en) Electronic document signature using blockchain
US20190146773A1 (en) Systems and processes for updating computer applications
US10530752B2 (en) Efficient device provision
US9276887B2 (en) Systems and methods for managing security certificates through email
TWI575398B (en) A terminal verification registration system, a terminal verification registration method, and a recording
US10621055B2 (en) Adaptive data recovery for clustered data devices
US20180288049A1 (en) Data access interface for clustered devices
US9092612B2 (en) Method and system for secure access to data files copied onto a second storage device from a first storage device
TW201335777A (en) Distributed data storing and accessing system and method
US11954046B2 (en) Storage device authentication
Arpitha et al. Data Storage, Security And Techniques In Cloud Computing
Logapriya et al. Data Storage in Cloud Computing
Bhujbal et al. Data Integrity Proof (Dip) in Cloud Storage

Legal Events

Date Code Title Description
AS Assignment

Owner name: AMAZON TECHNOLOGIES, INC., NEVADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COUGHLIN, CHESLEY B.;WAGNER, ERIC M.;REEL/FRAME:025045/0913

Effective date: 20090514

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8