Security Design - Wormhole (2024)

Every design decision in Wormhole begins with the safety and privacy of yourdata in mind. We can't read your files, and no one else can either. Privacyisn’t an optional mode — it’s just the way that Wormhole works.

Your files are end-to-end encrypted.

Your Wormhole files are end-to-end encrypted, and only you hold the keys to decrypt them. We can’t see your Wormhole files, so we can’t use them, share them, or sell them.

No ads. No trackers. No kidding.

There are no ads and no creepy tracking in Wormhole. So focus on sharing the files that matter with the people who matter to you.

We use state-of-the-art security.

Your Wormhole files are end-to-end encrypted to keep them safe at rest and in transit. Our security starts with AES 128-bit encryption, and we use multiple techniques to make sure only you have access to your information. We're continuously working to make sure our code is rock solid.

Wormhole uses state-of-the-art security and end-to-end encryption to protect your files. Your files are always end-to-end encrypted, so they can never be shared or viewed by anyone but you and the intended recipients.

Wormhole encrypts all files with 128-bit AES-GCM encryption before they leave the browser.

Key management

The secret key used for end-to-end encryption is never shared with our servers. It is sent directly to your intended recipient when you send them the "share link". The secret key is added to the URI fragment which is never sent to the server.

When an agent (such as a web browser) requests a web resource from a web server, the agent sends the URI to the server, but does not send the fragment.

The link format looks like this:

https://wormhole.app/<room-id>#<key>

Here's an example link:

https://wormhole.app/nb7dMz#fnQhVRrakH6ZUgQyUeAFfA

Streaming Encryption and Decryption

For streaming encryption and decryption, we use Encrypted Content-Encoding for HTTP.

This standard provides authenticated encryption to ensure that your files can't be seen or modified by an attacker once they leave your browser.

Web Crypto API

We use the browser's built in cryptography primitives via the Web Crypto API to encrypt files in the browser before they are sent to the recipient.

File transport

End-to-end encrypted files may be:

  1. Sent directly to the recipient via a peer-to-peer WebRTC connection
  2. Uploaded to our servers (assuming they are within the file size limit)

A fully peer-to-peer transfer is preferred, since it improves speed and privacy. The server copy helps to ensure files continue to be available even after the sender closes their browser. All files are end-to-end encrypted before they are uploaded or sent peer-to-peer.

Encryption at rest

In addition to Wormhole's end-to-end encryption, your files are protected by an additional layer of encryption on our servers.

Transport Layer Security (TLS)

TLS (formerly known as SSL) is the industry-standard encryption protocol used to encrypt communications between your browser and our servers. It ensures that the Wormhole webpage code is not modified by attackers, and provides an additional layer of protection on top of the client-side end-to-end encryption to ensure data uploads and downloads are private.

We support TLS 1.3 for modern devices and TLS 1.2 for all remaining devices. Deprecated versions of TLS and SSL are not used.

Qualys SSL Labs rates our TLS implementation an A+. See report.

Supply Chain Security

Wormhole depends on Socket to detect and block malicious dependencies from our open source software supply chain. Socket is a security tool built by the Wormhole team to solve one of the hardest problems in security.

The standard approach in industry is to scan for known vulnerabilities (CVEs). But this doesn't proactively catch malware or backdoors in dependencies. It can take months for a CVE to be discovered and reported. In fact, a recent paper found that malware is available on package managers for over 200 days before it's caught. We needed something that could detect and block a bad package before it's been discovered by the open source community, and definitely before it makes it into our codebase.

In order to protect Wormhole users, we audit every open source package we use to detect and block dozens of package issues. Most supply chain attacks follow a similar pattern (stealing environment variables, sending data to the network, etc.) so we built a tool that could catch all of the recent NPM supply chain attacks. The tool analyzes the actual behavior of the package instead of relying on stale data in a CVE database.

On March 1, 2022 we announced the public launch of Socket to help defend the open source ecosystem. Socket provides the most comprehensive open source risk analysis on the market, and we're releasing it for free for the open source community.

Certificate Transparency Logs

We monitor the Certificate Transparency logs for certificate misissuance.

DNS Certification Authority Authorization (CAA) Policy

A Certification Authority Authorization (CAA) policy allows a DNS domain name holder to specify the Certification Authorities (CAs) authorized to issue certificates for that domain.

By publishing a CAA record, we reduce the risk of unintended or malicious certificate misissuance.

Domain Name System Security Extensions (DNSSEC)

DNSSEC is a set of extensions to DNS which provide to DNS clients (resolvers) cryptographic authentication of DNS data, authenticated denial of existence, and data integrity.

We deploy DNSSEC to protect DNS records for wormhole.app.

Datagram Transport Layer Security (DTLS)

DTLS is the standard encrypton protocol used to encrypt WebRTC peer-to-peer communications between browsers. It provides an additional layer of protection on top of our own encryption to keep peer-to-peer transfers on Wormhole private.

Web security

Wormhole is configured with state-of-the-art security options to lock down the site as much as possible.

Mozilla Observatory rates our site configuration an A+.

Here are a few of the security features we deploy.

Strict-Transport-Security

Wormhole uses this header to ensure that your browser always communicates with our servers using the TLS protocol.

We additionally include wormhole.app in all major browser's HTTP Strict Transport Security (HSTS) preload lists. In the case of .app domains, the entire TLD is automatically included in the HSTS preload list.

Cross-Origin-Resource-Policy

Wormhole uses this header to prevent other origins from accessing data on wormhole.app. This is a mitigation for side-channel hardware vulnerabilities such as Meltdown and Spectre.

Cross-Origin-Embedder-Policy

Wormhole uses this header to enable cross-origin isolation. Cross-origin isolation ensures that supported browsers always load Wormhole in a separate renderer process, which protects against side-channel hardware vulnerabilities such as Meltdown and Spectre.

Permissions-Policy

Wormhole uses this header to disable some web browser features that we don't need, like camera and microphone access.

Content-Security-Policy

Wormhole uses Content Security Policy to prevent the site from being tricked into accessing resources (such as scripts, webpages, etc.) that could be used in Cross Site Sripting attacks.

We have a very strict policy that blocks execution of inline JavaScript, JavaScript's eval() function, browser plug-ins, active and passive HTTP content, clickjacking attacks, <base> tag attacks, <form> submissions to exfiltrate data, and more.

Step-by-step

Here's a high-level design document for Wormhole.

From the uploader's perspective

  1. The client generates a main secret key and a salt using the Web Crypto API

  2. The client uses the main secret key and salt to derive more keys via HKDF SHA-256

    • File keys: An encryption key and one salt for each files, via RFC 8188 (AES-GCM)
    • Metadata key: An encryption key for the file metadata (AES-GCM)
    • Reader authorization token: A token for authenticating download requests (HMAC SHA-256)
  3. The client asks the server to create a "room"

    • The server generates a roomId and a "writer authorization token" (which will authenticate all modifications to this room)
    • The server responds to the client with the roomId and the "writer authorization token"
  4. The client displays the "Share URL" as: https://wormhole.app/{roomId}#{mainSecretKey}, where mainSecretKey is base64url encoded.

    • Note: the secret key is stored in the URL fragment so it will never be sent to the server.
  5. The client encrypts each file separately using the derived file key and the per-file salt.

  6. The client creates a .torrent file using the encrypted files as the contents

  7. The client encrypts the .torrent file using the derived metadata key and a random IV

  8. The client uploads the salt, the encrypted files, the encrypted .torrent file, the reader authorization token, and the torrent info hash to the server

    • This request is authenticated by the server using the "writer authorization token"
  9. The client asks the server for a Backblaze upload URL

    • This request is authenticated by the server using the "writer authorization token"
    • The server responds to the client with an authenticated upload URL for uploading files to Backblaze
  10. The client uploads the encrypted files to Backblaze where they are stored at rest with an additional layer of at-rest encryption

From the downloader's perspective

  1. The client reads the roomId and the main secret key from the URL, which follows the pattern https://wormhole.app/{roomId}#{mainSecretKey}

    • Note: the secret key is stored in the URL fragment so it will never be sent to the server.
  2. The client asks server for the salt that corresponds to roomId.

    • This request is not authenticated by the server
    • The server responds to the client with the salt
  3. The client uses the main secret key and salt to derive the following keys (the same ones that the uploader derived):

    • File keys: An encryption key and one salt for each files, via RFC 8188 (AES-GCM)
    • Metadata key: An encryption key for the file metadata (AES-GCM)
    • Reader authorization token: A token for authenticating download requests (HMAC SHA-256)
  4. The client asks the server for the encrypted .torrent file

    • This request is authenticated by the server using the "reader authorization token"
    • The server responds with the encrypted .torrent file
  5. The client decrypts the .torrent file using the derived metadata key and the IV (which is embedded in the ciphertext)

  6. The client asks the server for a Backblaze download URL for roomId

    • This request is authenticated by the server using the "reader authorization token"
    • The server responds with an authenticated download URL to fetch files from Backblaze
  7. The client asks server for WebRTC offers (to connect to WebTorrent peers) for the given torrent info hash

    • The server checks that torrent info hash corresponds to a valid room and if so, responds with WebRTC offers for peers in the given room
  8. The client downloads files from Backblaze and WebRTC peers simultaneously, coordinated by WebTorrent library

  9. WebTorrent hashes all received torrent pieces and compares them to the expected hashes, which are present in the .torrent file

    • File data which fails piece verification is discarded
  10. Data which has been validated by WebTorrent is decrypted using the derived file key and per-file salts (which are embedded in the ciphertext)

    • This decryption process uses authenticated encryption (RFC 8188) so it will also fail if data is tampered with.

Source code

  • wormhole-crypto - Streaming encryption implementation, based on Encrypted Content-Encoding for HTTP (RFC 8188)

How can I report a security vulnerability?

If you've found a security vulnerability in Wormhole, please report it using our Responsible Disclosure Process.

The article delves deeply into Wormhole's security measures, emphasizing their commitment to privacy and data protection. Let's break down the key concepts highlighted in the article:

  1. End-to-End Encryption (E2EE): Wormhole ensures that data remains encrypted from the sender to the recipient. Only the sender and intended receiver possess the decryption keys.

  2. AES 128-bit Encryption: Wormhole employs Advanced Encryption Standard (AES) with 128-bit encryption, a widely accepted encryption method, ensuring strong data security.

  3. Key Management: The secret key used for encryption is never shared with Wormhole's servers. It's directly sent to the recipient when sharing a file through a link.

  4. Streaming Encryption and Decryption: Encrypted Content-Encoding for HTTP ensures files can't be viewed or modified by attackers once they leave the browser.

  5. File Transport: Files are sent directly to the recipient via peer-to-peer WebRTC connections or, if necessary, uploaded to Wormhole's servers. All files are end-to-end encrypted before transmission.

  6. Encryption at Rest: Wormhole employs additional encryption layers on their servers to protect files even after upload.

  7. Transport Layer Security (TLS): TLS encrypts communication between the user's browser and Wormhole's servers, preventing data tampering and ensuring privacy during uploads and downloads.

  8. Supply Chain Security: Wormhole uses "Socket" to detect and block potential malicious dependencies from their open-source software supply chain, ensuring a secure codebase.

  9. Certificate Transparency Logs, CAA Policy, DNSSEC: Measures to authenticate and secure domain certificates, reducing the risk of certificate misissuance and DNS-related attacks.

  10. DTLS: Datagram Transport Layer Security encrypts WebRTC communications between browsers, adding an extra layer of protection to peer-to-peer transfers.

  11. Web Security Measures: Various HTTP security headers and policies are implemented to prevent common web vulnerabilities like Cross-Site Scripting (XSS) and mitigate hardware vulnerabilities.

  12. Step-by-Step Process: Detailed processes are outlined for both uploaders and downloaders, emphasizing how encryption keys are derived, data is encrypted, and secure communication is ensured.

  13. Responsible Disclosure Process: Encourages users to report any security vulnerabilities found in Wormhole, ensuring a transparent and responsible approach to addressing issues.

Wormhole's comprehensive security measures aim to safeguard user data through encryption, secure communication channels, and vigilant monitoring of their systems and supply chain for potential threats or vulnerabilities.

Security Design - Wormhole (2024)

FAQs

Is wormhole safe to use? ›

Wormhole prioritizes the safety and integrity of cross-chain communications and multichain development by leveraging proven technology and decentralized validation via the Guardian Network.

Is magic wormhole secure? ›

By default, Wormhole codes contain 16 bits of entropy. Failed attempts of guessing a code will cause both clients to error out. Thus, an attacker has a one-in-65536 chance of successfully guessing the code, while being detected in all other cases.

Is wormhole p2p? ›

For files larger than 5 GB, Wormhole uses peer-to-peer transfer to send your files directly from your browser to the recipient. So you'll need to keep the page open until the recipient downloads the files.

How does the wormhole app work? ›

Wormhole uses state-of-the-art security and end-to-end encryption to protect your files. Your files are always end-to-end encrypted, so they can never be shared or viewed by anyone but you and the intended recipients.

Has the wormhole been hacked? ›

On Wednesday, the decentralized finance (DeFi) platform Wormhole became the victim of the largest cryptocurrency theft this year — and among the top five largest crypto hacks of all time — when an attacker exploited a security flaw to make off with close to $325 million.

Is wormhole free? ›

Wormhole by Viper Gaming Studio is a free Android app that allows you to watch and control your phone on your PC or Mac. The app offers advanced features like clipboard sharing, gaming keymapping, and file transfer, making it a great option for users who want to bridge the gap between their mobile and desktop devices.

What is wormhole in cyber security? ›

A wormhole attack is a passive attack that creates a separate unauthorized link between two communicating nodes, subsequently causing the legitimate nodes to send data through this link. Thus, the data are intercepted, and the corresponding nodes are compromised.

How did the wormhole hack work? ›

In February 2022, Wormhole, a token bridge between Ethereum and Solana, was the victim of the second most expensive DeFi hack to date. The attacker exploited the use of a deprecated, insecure function to bypass signature verification and steal $326 million (120k wETH).

What is the truth about wormhole? ›

While researchers have never found a wormhole in our universe, scientists often see wormholes described in the solutions to important physics equations. Most prominently, the solutions to the equations behind Einstein's theory of space-time and general relativity include wormholes.

What blockchain is wormhole on? ›

W IS NOW NATIVELY MULTICHAIN ON ETHEREUM AND LAYER-2S

SPL token on Solana, ERC20 on EVM like Ethereum, Arbitrum, Optimism.

Is wormhole trustless? ›

Wormhole leverages a network of Guardian nodes, a group of highly secure validator nodes, to oversee and validate cross-chain transactions. By incorporating Guardians, which consist of highly reputable validators in the blockchain industry, the design guarantees that transfers are both trustless and permissionless.

How does a wormhole work? ›

A wormhole is like a tunnel between two distant points in our universe that cuts the travel time from one point to the other. Instead of traveling for many millions of years from one galaxy to another, under the right conditions one could theoretically use a wormhole to cut the travel time down to hours or minutes.

How do you send files in magic wormhole? ›

To send a file, simply run wormhole send and the file name. To receive a file, just run wormhole receive , and enter the key phrase that given by the sending party. Screenshot from sending party: $ wormhole send Maperitive-1000.

What is the wormhole protocol? ›

Wormhole is a cross-chain blockchain protocol that facilitates the transfer of assets and data across blockchain ecosystems. Posted March 28, 2024 at 9:13 am EST. Cross-chain communication protocol Wormhole enables users to transfer assets like fungible tokens and NFTs between blockchains.

What is the size limit for wormhole app? ›

Files are permanently deleted from the server after 24 hours. === What's the maximum file size? === For files up to 5 GB, Wormhole stores your files on our servers for 24 hours. For files larger than 5 GB, Wormhole uses peer-to-peer transfer to send your files directly from your browser to the recipient.

Can humans use wormholes? ›

If a wormhole contained sufficient exotic matter, whether naturally occurring or artificially added, it could theoretically be used as a method of sending information or travelers through space, according to our sister website Live Science. Unfortunately, human journeys through the space tunnels may be challenging.

Is wormhole bridge safe? ›

In Brief. CertiK discovered and patched a $5 million security flaw in Aptos' Wormhole bridge. The flaw allowed anyone to call the 'publish_event' function, potentially enabling fake transactions.

What are the effects of wormhole? ›

Wormholes make for good science-fiction as ways for faster-than-light-speed travel between two extremely distant points in the universe. In reality, however, Einstein's theory of general relativity shows that it would not be possible for matter to actually cross these “tunnels through space”.

What happens if I enter a wormhole? ›

If you ever happen to fall through a wormhole in space, you won't be coming back. It will snap shut behind you. But you may have just enough time to send a message to the rest of us from the other side, researchers report in the Nov. 15 Physical Review D.

Top Articles
Halloween 2023: The special meaning behind teal, purple and blue pumpkins
HeroBracelets™. Our Products
What to Do For Dog Upset Stomach
³µ¿Â«»ÍÀÇ Ã¢½ÃÀÚ À̸¸±¸ ¸íÀÎ, ¹Ì±¹ Ķ¸®Æ÷´Ï¾Æ ÁøÃâ - ¿ù°£ÆÄ¿öÄÚ¸®¾Æ
Google Sites Classroom 6X
Guardians Of The Galaxy Showtimes Near Athol Cinemas 8
EY – все про компанію - Happy Monday
Directions To 401 East Chestnut Street Louisville Kentucky
Www Craigslist Louisville
Https Www E Access Att Com Myworklife
Concacaf Wiki
Does Publix Have Sephora Gift Cards
Santa Clara Valley Medical Center Medical Records
Ap Chem Unit 8 Progress Check Mcq
Ree Marie Centerfold
Saw X | Rotten Tomatoes
Nitti Sanitation Holiday Schedule
Accuradio Unblocked
Insidekp.kp.org Hrconnect
I Wanna Dance with Somebody : séances à Paris et en Île-de-France - L'Officiel des spectacles
Walmart End Table Lamps
Missed Connections Dayton Ohio
Connect U Of M Dearborn
Truth Of God Schedule 2023
Praew Phat
Jellyfin Ps5
Pickswise Review 2024: Is Pickswise a Trusted Tipster?
Pjs Obits
Dr Ayad Alsaadi
Masterkyngmash
Panolian Batesville Ms Obituaries 2022
Lbrands Login Aces
Shiny Flower Belinda
Miles City Montana Craigslist
Purdue Timeforge
Craigs List Tallahassee
Joplin Pets Craigslist
Google Jobs Denver
Heavenly Delusion Gif
Vivek Flowers Chantilly
“To be able to” and “to be allowed to” – Ersatzformen von “can” | sofatutor.com
Beaufort SC Mugshots
Denise Monello Obituary
N33.Ultipro
New Starfield Deep-Dive Reveals How Shattered Space DLC Will Finally Fix The Game's Biggest Combat Flaw
Iron Drop Cafe
Theater X Orange Heights Florida
Craigslist Pets Charleston Wv
Secondary Math 2 Module 3 Answers
Denys Davydov - Wikitia
Equinox Great Neck Class Schedule
Latest Posts
Article information

Author: Mr. See Jast

Last Updated:

Views: 6207

Rating: 4.4 / 5 (55 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Mr. See Jast

Birthday: 1999-07-30

Address: 8409 Megan Mountain, New Mathew, MT 44997-8193

Phone: +5023589614038

Job: Chief Executive

Hobby: Leather crafting, Flag Football, Candle making, Flying, Poi, Gunsmithing, Swimming

Introduction: My name is Mr. See Jast, I am a open, jolly, gorgeous, courageous, inexpensive, friendly, homely person who loves writing and wants to share my knowledge and understanding with you.