Secure Signing (2024)

To submit transactions to the XRP Ledger, you need a way to digitally sign them without compromising the security of your secret keys. (If others gain access to your secret keys, they have as much control over your accounts as you do, and can steal or destroy all your money.) This page summarizes how to set up such an environment so you can sign transactions securely.

Tip: If you are not submitting transactions to the network, you can safely use a trustworthy public server, such as the ones run by Ripple, to monitor for incoming transactions or read other network activity. All transactions, balances, and data in the XRP Ledger are public.

There are several configurations with varying levels of security that may be acceptable for your situation. Choose one of the following that best fits your needs:

  • Run rippled locally, or in the same LAN.
  • Use a client library that can do local signing.
  • Use a dedicated signing device that supports XRP Ledger signatures.
  • Use a secure VPN to connect to a remote rippled machine you trust.

Insecure Configurations

Any configuration in which outside sources may gain access to your secret key is dangerous, and is likely to result in a malicious user stealing all your XRP (and anything else your XRP Ledger address has). Examples of such configurations include ones where you use the sign method of someone else's rippled server over the internet, or you send your secret key in plain text over the internet to your own server.

You should maintain the secrecy of your secret keys at all times, which includes things like not emailing them to yourself, not typing them visibly in public, and saving them encrypted—never in plain text—when you are not using them. The balance between security and convenience depends in part on the value of your addresses' holdings, so you may want to use multiple addresses with different security configurations for different purposes.

Run rippled Locally

In this configuration, you run rippled on the machine that generates the transactions. Since the secret key never leaves your machine, no one without access to your machine can get access to the secret key. You should, of course, follow industry-standard practices for securing your machine. To use this configuration:

  1. Install rippled.

    Be sure that your local machine meets the minimum system requirements for rippled.

  2. When you need to sign transactions, connect to your server on localhost or 127.0.0.1. Use the sign method (for single signatures) or sign_for method (for multi-signatures).

    The example config file listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin.

    Caution: Using the commandline API for signatures is less secure than using the Websocket or JSON-RPC APIs through non-commandline clients. When using the commandline syntax, your secret key may be visible to other users in the system's process listing, and your shell history may save the key in plain text.

  3. Maintain the server to keep it running, updated, and in sync with the network while you're using it.

    Note: You can turn off your rippled server when you're not sending transactions, but it can take up to 15 minutes to sync with the network when you start it up again.

Run rippled on the same LAN

In this configuration, you run a rippled server on a dedicated machine in the same private local area network (LAN) as the machine that generates the transactions to be signed. This configuration lets you assemble transaction instructions on one or more machines with very modest system specs, while using a single dedicated machine for running rippled. This may appeal to you if you run your own datacenter or server room.

To use this configuration, set the rippled server to accept wss and https connections within your LAN. You can use a self-signed certificate if you use certificate pinning, or you can use a certificate signed by an in-house or well-known Certificate Authority. Some certificate authorities, such as Let's Encrypt issue certificates automatically for free.

As always, follow industry-standard practices for securing your machines, such as using a firewall, anti-virus, appropriate user permissions, and so on.

Use a Client Library with Local Signing

This configuration uses a client library with built-in signing, in the programming language you use. For a list of libraries that can perform local signing, see Client Libraries.

Security Best Practices for Signing Libraries

To optimize the security of your signing library:

  • Make sure the signing library you use has properly and securely implemented its signing algorithm(s). For example, if the library uses the default ECDSA algorithm, it should also use deterministic nonces as described in RFC-6979.

    All of the published libraries listed above follow industry best practices.

  • Keep your client library updated to the latest stable version.

  • For enhanced security, you can load your secret keys from a management tool such as Vault.

Local Signing Example

Here are examples of how to sign transaction instructions locally using the following languages and libraries:

// Sample code demonstrating secure offline signing using xrpl.js library.const xrpl = require('xrpl')// Load seed value from an environment variable:const my_wallet = xrpl.Wallet.fromSeed(process.env['MY_SEED'])// For offline signing, you need to know your address's next Sequence number.// Alternatively, you could use a Ticket in place of the Sequence number.// This is useful when you need multiple signatures and may want to process transactions out-of-order.// For details, see: https://xrpl.org/tickets.htmllet my_seq = 21404872// Provide *all* required fields before signing a transactionconst txJSON = { "Account": my_wallet.address, "TransactionType":"Payment", "Destination":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Amount":"13000000", "Flags":2147483648, "LastLedgerSequence":7835923, // Optional, but recommended. "Fee":"13", "Sequence": my_seq}const signed = my_wallet.sign(txJSON)console.log("tx_blob is:", signed.tx_blob)console.log("tx hash is:", signed.hash)

Use a Dedicated Signing Device

Some companies sell dedicated signing devices, such as the Ledger Nano S, which are capable of signing XRP Ledger transactions using a secret key that never leaves the device. Some devices may not support all types of transactions.

Setting up this configuration depends on the specific device. You may need to run a "manager" application on your machine to interact with the signing device. See the manufacturer's instructions for how to set up and use such a device.

Use a Secure VPN with a Remote rippled Server

This configuration uses a rippled server hosted remotely, such as in a colocation facility or a distant datacenter, but connects to it securely using an encrypted VPN.

To use this configuration, follow the steps for running rippled on a private LAN, but use a VPN to connect to the LAN of the remote rippled server. Instructions for setting up the VPN are specific to your environment and are not described in this guide.

See Also

Previous page

Next page

Secure Signing (2024)

FAQs

How does secure signing work? ›

Secured Signing service utilises a trusted Digital Signature (PKI) technology, which allows you to verify signatures and validate the document's integrity on your desktop or by using Secured Signing Free Verification Service online.

Is secured signing legit? ›

Compliance: Compliant with a number of industry regulations, including HIPAA, GDPR, and MISMO. This makes it a safe and secure way to sign documents for businesses in regulated industries.

What is a secured signature? ›

Digital Signatures. Ensure that signatures are non-forgeable with our secure technology, including video confirmation and ID Verification that allows you to verify who is behind the device at the signature moment.

What is secure code signing? ›

Code signing is the process of applying a digital signature to a software binary or file. This digital signature validates the identity of the software author or publisher and verifies that the file has not been altered or tampered with since it was signed.

How do I create a secure digital signature? ›

To make a digital signature secure, you need a pair of keys – a public key and a private key. The private key is kept secret by the signer and is used to encrypt the signature, while the public key is available for anyone to use to verify the signature.

What are the risks of digital signature? ›

While digital signatures offer many benefits, several risks are associated with their use. Some of the most pertinent risks to be aware of include: Forgery and Identity Theft: Cybercriminals can steal private trusted keys and execute signatures on documents not intended to be signed.

Is DocuSign legally binding? ›

Are DocuSign's electronic signatures legally binding? DocuSign eSignatures are valid and legally binding across the globe and in use in 188 countries around the world.

What are the three types of signature? ›

The three different types of electronic signatures are simple electronic signatures (SES), advanced electronic signatures (AES), and qualified electronic signatures (QES).

What makes a signature invalid? ›

Signing with different pens

It doesn't matter if everything else is perfect, different colours, or a fountain pen with ballpoint means the document is invalid. Both you and your witnesses must use the same pen throughout the entirety of the document – including when you are dating it.

How much does code signing cost? ›

How Much Does a Code Signing Certificate Cost?
Product NameValidationList Price
Sectigo Code Signing CertificateBusiness$379.00/yr
Sectigo EV Code Signing CertificateBusiness$498.00/yr
Digicert Code Signing CertificateBusiness$539.00/yr
Digicert EV Code Signing CertificateBusiness$755.00/yr
3 more rows
Apr 11, 2023

What is an example of code signing? ›

Some examples of code-signed software are Windows applications, Windows software updates, Apple software, Microsoft Office VBA objects and macros, . jar, . air, and . airi files, and any type of executable file.

How does secure authentication work? ›

In authentication, the user or computer has to prove its identity to the server or client. Usually, authentication by a server entails the use of a user name and password. Other ways to authenticate can be through cards, retina scans, voice recognition, and fingerprints.

How does signature verification works? ›

Manual signature verification uses humans to compare signatures. Software verification tools also compare presented signatures with reference signatures. They use image processing, pattern recognition and machining learning to look for minute variations between the two signatures.

How does signature authentication work? ›

When someone attempts to verify the signature, the process involves decrypting the signature using the signer's public key, generating a hash from the received document, and comparing it to the original hash. If they match, the signature is valid.

How does secure login work? ›

A secure login is a process that ensures only authorized users can access a particular system or website. It is a fundamental component of cybersecurity, and it involves using various authentication methods such as passwords, biometrics, and two-factor authentication to verify a user's identity.

Top Articles
How many pence in 1 pound? (How many 1p in £1?)
Advantages and disadvantages of GPS - GeeksforGeeks
Canya 7 Drawer Dresser
Kreme Delite Menu
jazmen00 x & jazmen00 mega| Discover
Monthly Forecast Accuweather
Goodbye Horses: The Many Lives of Q Lazzarus
craigslist: kenosha-racine jobs, apartments, for sale, services, community, and events
Nwi Police Blotter
Our History | Lilly Grove Missionary Baptist Church - Houston, TX
13 The Musical Common Sense Media
ocala cars & trucks - by owner - craigslist
Nebraska Furniture Tables
Seattle Rpz
Eka Vore Portal
Mary Kay Lipstick Conversion Chart PDF Form - FormsPal
Lesson 8 Skills Practice Solve Two-Step Inequalities Answer Key
Craftology East Peoria Il
Divina Rapsing
Msu 247 Football
V-Pay: Sicherheit, Kosten und Alternativen - BankingGeek
Why Does Lawrence Jones Have Ptsd
Morristown Daily Record Obituary
Jc Green Obits
Mythical Escapee Of Crete
D2L Brightspace Clc
Plost Dental
2004 Honda Odyssey Firing Order
Tomb Of The Mask Unblocked Games World
Will there be a The Tower season 4? Latest news and speculation
Life Insurance Policies | New York Life
Chapaeva Age
Solarmovie Ma
M3Gan Showtimes Near Cinemark North Hills And Xd
Unlock The Secrets Of "Skip The Game" Greensboro North Carolina
Google Jobs Denver
Greater Keene Men's Softball
Merge Dragons Totem Grid
R Nba Fantasy
Captain Billy's Whiz Bang, Vol 1, No. 11, August, 1920
America's Magazine of Wit, Humor and Filosophy
SF bay area cars & trucks "chevrolet 50" - craigslist
062203010
'The Night Agent' Star Luciane Buchanan's Dating Life Is a Mystery
John M. Oakey & Son Funeral Home And Crematory Obituaries
Canada Life Insurance Comparison Ivari Vs Sun Life
Jane Powell, MGM musical star of 'Seven Brides for Seven Brothers,' 'Royal Wedding,' dead at 92
Pas Bcbs Prefix
Meee Ruh
Craigslist Pets Lewiston Idaho
Hy-Vee, Inc. hiring Market Grille Express Assistant Department Manager in New Hope, MN | LinkedIn
Lake County Fl Trash Pickup Schedule
Bunbrat
Latest Posts
Article information

Author: Nathanial Hackett

Last Updated:

Views: 6617

Rating: 4.1 / 5 (72 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Nathanial Hackett

Birthday: 1997-10-09

Address: Apt. 935 264 Abshire Canyon, South Nerissachester, NM 01800

Phone: +9752624861224

Job: Forward Technology Assistant

Hobby: Listening to music, Shopping, Vacation, Baton twirling, Flower arranging, Blacksmithing, Do it yourself

Introduction: My name is Nathanial Hackett, I am a lovely, curious, smiling, lively, thoughtful, courageous, lively person who loves writing and wants to share my knowledge and understanding with you.