Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to fully encrypt data in Ruby using Private Key encryption?
    primarykey
    data
    text
    <p>First, some info on our system, which is basically an eTendering solution for the construction industry.</p> <p>So:</p> <ul> <li>List item</li> <li>Our system has multiple companies</li> <li>Each company has multiple users</li> <li>Each company can create multiple auctions</li> <li>Other companies can then submit their bids for the available auctions. A bid consists of hundreds or thousands of individual items, and we would just need to encrypt the 'price' section of these records.</li> </ul> <p>The problem that we're facing is that our large customers do not want us to ever have access to the bid prices, at least while the bidding is in progress, which is totally understandable. Right now, we are simply encrypting the prices via a symmetric encryption, so even though the prices are effectively encrypted in the database, their concern is that we have the key to decrypt the prices.</p> <p>We're thus looking at some form of public key encryption system. Here is our initial thoughts on the solution:</p> <ol> <li>When a company signs up, we create a public/private keypair using OpenSSL for it and we save it in S3 or straight into the database. For this to be really useful, we would enforce the user to use a strong password for the private key, which would of course not be saved in the database.</li> <li>When a company submits a bid for an auction, we encrypt the prices using the public key of the auction's owner company and we save them into the database.</li> <li>When the auction bidding period is over and the issuing company wants to generate the report the first time, we ask him to input his password and use that along with his company's private key to decrypt the prices.</li> <li>To make subsequent traffic faster, we cache the decrypted data (and maybe encrypt it using a simple symetrical encryption system)</li> </ol> <p>So here are the questions (and we're unfortunately not security experts, so sorry if those are stupid questions):</p> <ul> <li>Does this make any sense or is it a totally ludicrous or overkill solution?</li> <li>Would we generate the keys using OpenSSL, OpenPGP or another solution?</li> <li>What happens if a user wants to change his password or generate a new key? Would there be no other way but to decrypt/re-encode everything with the new key?</li> <li>What would some of the pitfalls be with this solution?</li> <li>Are there any better solutions that you could recommend?</li> </ul>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload