How to hog disk storage space of banks that are KYC over-achievers (linux version) - eviltoast

All banks are shit but suppose you have a bank that is insideously over-achieving their KYC “compliance¹” and for whatever reason you cannot switch (likely because all the other options are too repugnant). One small thing you can do for every document they demand (id card, utility bill, bank statement, etc) is to fatten the storage footprint of that file as much as possible while simultaneously reducing the quality to barely legible.

I start with a cover letter (“Dear Bank X, a copy of my ID card is attached”). This is not necessary but adding a page really amplifies the filesize. Let’s assume you have a 2 page PDF to start (which is black and white in my case).

Tools needed:

  • GhostScript
  • tiff2pdf
  • ImageMagick
  • exiftool

¹ scare quotes used because they are far exceeding their KYC expectations well beyond compliance. They are “taking the piss” because there are no consequences for them when their overcollection hits you harder in data breeches.

convert PDF to fax TIFF

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg3 -r204x196 -sPAPERSIZE="$paperform" -dFIXEDMEDIA -sOutputFile=fax_format.tiff "$src_pdf"

Replace $paperform with either “A4” or “letter”, depending on where you are. And replace $src_pdf with your input filename.

This command actually has a practical use if you ever send a fax because the fax_format.tiff file is in the group 3 fax format so you can see an accurate representation of what the doc will actually look like on the receiving end without having to just hope that it is not downgraded too much. The significant change is to get it down to ~200 dpi. It can be surprising how decent fax quality is if you start with a good scan and use a good dither algorithm.

convert the TIFF back to PDF

$ tiff2pdf fax_format.tiff im_input.pdf

The output actually shrinks in that step because the PDF contents get compressed. But we do this because when ImageMagick processes a PDF source and produces a PDF target, it’s naturally extremely bloated for some reason. ImageMagick is just terrible with PDFs but this is to our benefit in this case. Add a few key options to really bloat the shit out of it:

bloat it out

$ convert im_input.pdf -quality 100 -colorspace CMYK -resample 600x600 fuck_KYC_assholes.pdf

This triples the number of pixels but it’s still bounded by the A4 or US Letter geometry. It converts the bilevel doc to color. In my test a 38k file grew to 26mb!

im_input.pdf → 38kb
fuck_KYC_assholes.pdf → 26mb

The quality takes a huge hit in this step. I have no idea why. The doc is like 715 times bigger and much worse quality, but the quality is still just barely good enough to be accepted as long as it’s not judged by an asshole with a reject button.

Of course YMMV… might need some tuning if your bank has a filesize limit you need to target. The beauty of this is that since banks are like cops now, they probably treat these KYC files with forensic care. I don’t imagine that if they had excessively bloated files that they would dare risk reducing the quality by further processing in an effort to reduce the size.

cover your tracks

$ exiftool -all= fuck_KYC_assholes.pdf

That final step sanitises some or all of the metadata (e.g. removes Producer: …imagemagick.…). Of course there is an opportunity to tell them what you think in the metadata as well.

(optional) express yourself in the metadata

$ exiftool -author='(╯°□°)╯︵ ┻━┻' -creator='┌∩┐(◣_◢)┌∩┐' fuck_KYC_assholes.pdf

The author in this case is doing a table flip.

Or more constructive:

$ exiftool -Subject='Please stop financing fossil fuels and private prisons' fuck_KYC_assholes.pdf

(optional) embed a hidden file

Suppose you want to add files that are not rendered when the PDF is opened, either to express yourself further but in a less visible way or to bloat it out a little more in a way that’s easy to control. E.g. your file is 10mb under the size limit. Use dd to make a 10 meg file of random chars then add that to the PDF. Or add a manifesto to the PDF.

$ dd if=/dev/random of=/tmp/extra_bloat.raw count=1 bs=10000000
$ pdfattach fuck_KYC_assholes.pdf /tmp/extra_bloat.raw screw_them_harder.pdf

FYI, if they are clever and nibby they can use pdfdetach to see what you did. So choose the filename accordingly. The reason for /dev/random as opposed to /dev/zero is the random bits don’t compress. Perhaps a good file to attach is a Banking-on-Climate-Chaos-$year.pdf report.

2021: 12mb
2022: 8.2mb
2024: 21.8mb

  • breakingcups@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    24 days ago

    I’m sorry, but what a waste of your effort. Even paying list price on cloud storage means I could store (1024^2/26=) ~40.000 files like yours for less than 6 bucks a month.

    • activistPnk@slrpnk.netOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      23 days ago

      It’s like voting. No single drop in the ocean makes a difference. But the least you can do is do your part. Of course, if the commandline is high effort for you then sure, your time could be better spent. This guide is for folks who are comfortable with the commandline and who can understand at first glance what the commands do.

      You may also be underestimating the human cost. When a banker verifies this file, it takes longer to fetch and render (especially on the shitty systems banks tend to run) and then it could chew up a bit of their time deciding whether to accept the file… asking their manager if the quality is good enough, etc. Bankers time is surprisingly costly. A bank insider once told me the cost per support call. I don’t recall the figure but just that it was staggering. I was astonished how high it was. The low quality of the document will certainly give them pause and test their patience. For every one of them there are thousands of customers. So our effort is just a few copied commands and the banker’s effort is higher.

      (edit) One bank’s size limit was 25mb. No idea about others but it would not surprise me if some banks had no size limit.

      • MrQuallzin@lemmy.world
        link
        fedilink
        arrow-up
        0
        arrow-down
        1
        ·
        24 days ago

        So your point is to increase the suffering of the low-paid workers by making them sort through the mess you’re sending them? The banks won’t care, if they were to notice in the first place. Throwing a wrench in the wrong gears.

        • activistPnk@slrpnk.netOPM
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          edit-2
          23 days ago

          Time is money. These so-called low-paid¹ workers may or may not be more miserable doing their other tasks that compete with the verification tasks. I cannot know. The point is to increase cost on time and resources. Should I care if someone notices? I don’t. I’m happy to do my part in increasing their costs whether they notice or not. If the so-called low-paid workers enjoy their job less, lower morale also incurs a cost because turnover is a cost (some corps have an employee morale budget specifically to try to reduce turnover). So if they lose an underpaid worker who by definition provides more value to the company than they are compensated for, that’s just an incidental cherry on top.

          ¹ I highlighted the bit you missed in your reply. Since bankers now have to double as cops, the complexity of their job has increased substantially. The demand for more competency inherently increases their market rate.