Geek pop quiz: Brainstorming edition.
Sep. 21st, 2012 01:48 pmImagine, for a moment, that you have a process (as in procedure, not as in "running program").
This process involves downloading an archive file, decrypting it, unpacking it, converting the files inside from one format to another, and printing them. After printing, the resulting prints must be proofread and checked for errors, and if errors are found, the file must be reprinted (possibly reprocessed then reprinted - depends on the kind of error).
Added difficulty #1: As soon as you download the file the remote server deletes it. You cannot affect this behaviour. The file you downloaded in the first step is the only copy you get.
Added difficulty #2: Commercially available software only. No writing a custom app that does all this in one step.
The problem: At no point may any of the files in this process be saved unencrypted to disk, ever. Saving them encrypted is heavily frowned upon but could potentially be acceptable.
I'm looking for solutions.
Obvious solution #1: RAM drive. Have the OS treat a hunk of RAM as really fast disk, save the files and do all the processing there.
Obvious solution #2: Encrypted folder. Each user (oh, did I mention multiple users?) has a passphrase to open it, nothing is stored outside it.
Obvious solution #3: Virtual machine. All storage and processing is done on a VM, which trashes itself without writing "to disk" when closed.
Any other ideas? Anything you'd prioritise trying?
This process involves downloading an archive file, decrypting it, unpacking it, converting the files inside from one format to another, and printing them. After printing, the resulting prints must be proofread and checked for errors, and if errors are found, the file must be reprinted (possibly reprocessed then reprinted - depends on the kind of error).
Added difficulty #1: As soon as you download the file the remote server deletes it. You cannot affect this behaviour. The file you downloaded in the first step is the only copy you get.
Added difficulty #2: Commercially available software only. No writing a custom app that does all this in one step.
The problem: At no point may any of the files in this process be saved unencrypted to disk, ever. Saving them encrypted is heavily frowned upon but could potentially be acceptable.
I'm looking for solutions.
Obvious solution #1: RAM drive. Have the OS treat a hunk of RAM as really fast disk, save the files and do all the processing there.
Obvious solution #2: Encrypted folder. Each user (oh, did I mention multiple users?) has a passphrase to open it, nothing is stored outside it.
Obvious solution #3: Virtual machine. All storage and processing is done on a VM, which trashes itself without writing "to disk" when closed.
Any other ideas? Anything you'd prioritise trying?
(no subject)
Date: 2012-09-21 06:35 pm (UTC)(no subject)
Date: 2012-09-21 06:44 pm (UTC)(no subject)
Date: 2012-09-21 06:54 pm (UTC)(no subject)
Date: 2012-09-21 06:59 pm (UTC)What happens if the original archive is damaged or incomplete? Another archive is generated at the other end?
(no subject)
Date: 2012-09-21 07:07 pm (UTC)Proofing: It's done on the computer first, but it's done AGAIN after printing because the nature of the printing process can expose errors that are not visible in the electronic copy, and the post-conversion documents are hellishly hard to read on a computer screen for most users. The exact details are not important - point is, the process is error-prone, and you can't lose the original until you're sure the output is good.
If the archive is bad: Someone gets called on the phone and a new one is generated on the far end. Same as if you delete it or something needs to be reprinted at a later time. Those are bad events that shouldn't happen, though.
(no subject)
Date: 2012-09-21 07:24 pm (UTC)I don't have anything resembling a better solution here, I'm just intrigued by how thoroughly Cold War paranoid it all seems.
(no subject)
Date: 2012-09-21 07:24 pm (UTC)Oh man, bane of my existence when I worked at a print shop.
(no subject)
Date: 2012-09-21 07:25 pm (UTC)(no subject)
Date: 2012-09-21 07:41 pm (UTC)I was referring to the chunk of actual hard drive that the OS uses as extra, slow RAM for stuff that it's not really concentrating on, like the page file in Windows systems. If that's included in the restriction, it's an extra level of wacky (but not entirely unjustified) paranoia, and correspondingly extra difficult to implement.
(no subject)
Date: 2012-09-21 07:46 pm (UTC)(no subject)
Date: 2012-09-21 07:54 pm (UTC)(no subject)
Date: 2012-09-21 08:09 pm (UTC)(no subject)
Date: 2012-09-21 08:18 pm (UTC)(no subject)
Date: 2012-09-21 08:19 pm (UTC)The comparison to the SSD is mostly in terms of relative size and speed - a RAM disk is crazy fast compared to spinny crap.
(no subject)
Date: 2012-09-21 08:33 pm (UTC)(no subject)
Date: 2012-09-21 08:38 pm (UTC)That's not a terribad analogy - it's the right mindset for these standards anyways. They could be anyone, anywhere!
(no subject)
Date: 2012-09-21 08:40 pm (UTC)Alternately: Truecrypt the entire disk, and accept that someone physically on site will be forevermore required for all reboots.
(no subject)
Date: 2012-09-21 08:45 pm (UTC)(no subject)
Date: 2012-09-21 09:13 pm (UTC)Your solution with a RAM disk obviously relies on the system never going down, for whatever reason, amd if the original file's that important, data loss should be, too. So I'd argue non-volatile storage as inevitable.
Then there's data integrity, so I'd argue multiple copies on different physical media next, and then on different machines in different locations.
And then I'd encrypt the whole systems, with the downside of no unattended reboots.
(no subject)
Date: 2012-09-21 09:54 pm (UTC)(no subject)
Date: 2012-09-21 09:54 pm (UTC)(no subject)
Date: 2012-09-21 10:10 pm (UTC)"At no point may any of the files in this process be saved unencrypted to disk, ever. Saving them encrypted is heavily frowned upon but could potentially be acceptable."
What vector are you (or the client) attempting to protect against?
Physical lifting of your drives? (Hi, I just pulled the drives from the Server and i'm going somewhere else)
or just peeky pokey network snooping?
Finally just how is it possible that you're worried about digital copies and not physical ones?
In addition, how important is it that this service works? reliability wise? Does the client have the ability to resend a document?
I implemented a FTPS -> SFTP intermediary host at one point between a major airline and Mastercard US. We had some pretty crazy security requirements (ASIO T4 essentially) - they did random shit like encrypt the file, send over a VPN via FTPS and SFTP - with physical smart card based certs.
We had to secure erase our disks after the onward transfer.
(no subject)
Date: 2012-09-21 10:43 pm (UTC)Network snooping and "undelete" are the big ones. Physical theft is a secondary concern.
Finally just how is it possible that you're worried about digital copies and not physical ones?
Oh, we're worried about the physical copies, but
a) there's already procedures in place to handle that,
and
b) that's not my department.
Does the client have the ability to resend a document?
Yes. It's not completely trivial (we have to phone them and have a live person log in and click something) but it's not hard. RARELY losing the file is perfectly acceptable - it just has to be rare.
(no subject)
Date: 2012-09-21 11:01 pm (UTC)(no subject)
Date: 2012-09-22 07:56 am (UTC)I take it no actual people will have direct access to the drive? Otherwise they can just copy files off if they feel like industrial espionage.
(no subject)
Date: 2012-09-22 01:35 pm (UTC)(no subject)
Date: 2012-09-24 03:44 pm (UTC)Given difficulty #2, though, you're going to be using separate apps for (a) decrypting the archive, (b) unpacking it, (c) converting files, and (d) printing them. As such, each app is going to need to take input from the file system.
Encrypted folder on a RAM drive sounds like the easiest, if the files are small enough to fit entirely within half of the spare RAM (I say half because presumably the decryption and unpacking processes will work on copies of the files on the filesystem, and produce temporary scratch files.)
(no subject)
Date: 2012-09-24 04:00 pm (UTC)Due to the nature of the printer and mitigating policies this is not an issue. For perfectly valid[1] technical reasons that wheel has long since been re-invented.
presumably the decryption and unpacking processes will work on copies of the files on the filesystem, and produce temporary scratch files
The decryption, no. It's built like that. The unpacking, possibly, but the unpacked files are encrypted and the temp files go into the archive's location, which will be in ram if we go with this plan..
[1]: No, really. Details are spoilers.