Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Government Programming Software Encryption Privacy Security News Apple Build Hardware Politics Technology Your Rights Online

TSA Paid $1.4 Million For Randomizer App That Chooses Left Or Right (geek.com) 334

An anonymous reader writes: For those of you who have traveled through U.S. airports in recent years, you may have noticed the Transport Security Administration (TSA) use a Randomizer app to randomly search travelers in the Pre-Check lane. The app randomly chooses whether travelers go left or right in the Pre-Check lane so they can't predict which lane each person is assigned to and can't figure out how to avoid the random checks. Developer Kevin Burke submitted a Freedom of Information Act request asking for details about the app. The documents he received reveals the TSA purchased the Randomizer iPad app for $336,413.59. That's $336,413.59 for an app, which is incredibly simple to make as most programming languages of choice have a randomizing function available to use. What may be even more intriguing is that the contract for the TSA Randomizer app was won by IBM. The total amount paid for the project is actually $1.4 million, but the cost is not broken down in Burke's documents. It's possible IBM supplied all the iPads and training in addition to the app itself.
This discussion has been archived. No new comments can be posted.

TSA Paid $1.4 Million For Randomizer App That Chooses Left Or Right

Comments Filter:
  • by Anonymous Coward on Monday April 04, 2016 @06:03PM (#51841647)

    TSA soon to be appearing in the Panama Papers...

    • [Tinfoil] It's not a real randomizer app, it's an advanced layered neural network program (IBM...Watson?) that automates racial profiling so that TSA workers are in the clear, they can say the machine made the decision for someone to go through heightened security, "at random." Teaching the program to pick out the right minorities took a lot of work. [/Tinfoil]

  • by Anonymous Coward on Monday April 04, 2016 @06:04PM (#51841655)

    $413 dollars in developer time to create the app and $336,000.59 in corporate overhead and bloat, the additional $1,000,000 is just for Evil

    • by jd2112 ( 1535857 )

      $413 dollars in developer time to create the app and $336,000.59 in corporate overhead and bloat, the additional $1,000,000 is just for Evil

      Much more than that. The requirements document was probably several thousand pages and required a dozen rewrites before it finally met specs.

    • by raymorris ( 2726007 ) on Monday April 04, 2016 @09:32PM (#51842627) Journal

      Seriously, 80%-85% of the bid covers dealing with the US government. Multiple thousand-documents over the course of years, flying back and forth for pointless meetings, and maybe you eventually get paid.

      Here are my rates as a developer , for similar software delivered:
      Order online, by submitting my order form: $159
      Email me and discuss: $500
      Meetings to discuss, demo (local businesses): $1,500
      Local government bureaucracy: $8,000
      Federal government: $400,000

      • The rates I mentioned above for "similar software" meant for software of the kind I write (network security), not the TSA app. For a random left/right app like the TSA wanted, prices would be a bit lower. Not much lower for the federal government though, they'll require a thousand man hours of BS for the simplest application. I used to work at a place that did federal contracts.

  • I have practical and fool-proof system that requires no electricity or internet connection to operate.

    I can sell it to you for about $5 per TSA agent. Actual cost to me is $0. Just tell me where you want me to ship this jar of pennies.

    • Just tell me where you want me to ship this jar of pennies.

      . . . but didn't IBM's precursor to their Cognitive Computer Platform named Watson beat Gary Kasparov at chess, "Deep Blue", and beat some dork at "Jeopardy", "Deep Cleavage on the assistant", and "Deep Pockets" at pitching pennies . . . ?

      So it's probably more than just a random number generator:

      "Watson, should this guy go left or right?"

      "Warning, Will Robertson . . . Danger! Danger!

  • by Etherwalk ( 681268 ) on Monday April 04, 2016 @06:05PM (#51841667)

    The question is whether it is truly random or not. If they spent $1.4M and got a truly random result, fine. It's absurdly pricey, but it works. If they spend $1.4M and got the rand() function, then terrorists might be able to exploit it to escape random searches.

    • by rwven ( 663186 ) on Monday April 04, 2016 @06:14PM (#51841721)

      That's really stretching things. If you use something as simple as microseconds on a clock as the seed for your "random" number generation, there's "pretty much" no way you can exploit that short of hacking the device itself. It's not like people are going to stand there with a stopwatch and tell the TSA guy "OK....press the button...Now!"

      • by AK Marc ( 707885 )
        And what if you don't rand() each result? You rand() the day, so each result is not random compared to the previous choice. Thus, watching long enough (or knowing the system it was built on and watching some shorter time), one could be able to predict the outcomes.
      • by Anonymous Coward on Monday April 04, 2016 @07:22PM (#51842065)

        If you use something as simple as microseconds on a clock as the seed for your "random" number generation, there's "pretty much" no way you can exploit that short of hacking the device itself.

        You would be surprised in just how many ways random numbers can be screwed up.

        First "simple as microseconds on a clock" is good, I have seen quite a bit of "randomized" code seeded with the system time. 15 milisecond resolution is the normal case and often leads to duplicated random sequences. High resolution timers exist and are widely available today, however they have to be actually used to help. Alternatively why use a random number generator if you could just request the microsecond time for each request - the low bits should be rather random.

        Second mapping the range of the random number generator to your target range without killing the distribution is often non trivial. C++11 came with a whole library to replace rand() and several presentations on the topic, including how rand() % 2 isn't a 50:50 split when the original range has an uneven amount of values.

        Third you often don't want a random selection - a fully random sequence can contain long stretches of only left or only right, which can overburden the affected lane while the other remains empty. Which means you somehow have to enforce the wanted distribution over shorter sequences. A simple solution can be implemented by shuffling a list with the wanted ratio of left/right values and a reshuffle each time the list is used up, games sometimes use this to avoid long loose streaks and prevent long win streaks.

      • by mysidia ( 191772 )

        Since it's random and all; If they keep sending a number of new bad guys through, instead of just one, someone will get in eventually.

    • Re: (Score:2, Informative)

      by Anonymous Coward

      Well, you don't even need a cryptographically secure random number. You just need one that can't be predicted by anyone on that day, which isn't really a tall order. You could do it in any language of your choice, let everyone see the code, and seed the generator with the current time in seconds (or ms or whatever). Still nobody would be able to guess, because they can't predict when you're gonna press that button.

      • Slashdot has gone way downhill because this sentiment above has been repeated multiple times.

        If you seed the generator before every call, you are doing it very very wrong.
    • by ceoyoyo ( 59147 )

      I'll give you an iPad that gives you a truly random result for only $1 million. It will just feed numbers from https://www.random.org/ [random.org].

    • "If they spend $1.4M and got the rand() function, then terrorists might be able to exploit it to escape random searches." Like lining up sequentially with 2, maybe 3 people?
    • by gweihir ( 88907 )

      There is absolutely no need for "true" random (whatever that is, the physical processes called "true random" are actually "we have no clue how it works, but we have a statistical model"). CPRNGs (Cryptographic Pseudo Random Number Generators) are entirely fine for this, because they are not predictable, unless you have the full state. Nobody needs "random" for this application here, non-predictable is entirely fine. As to seeding, a few precisely timed button-presses on start, a seed file from the day befor

      • by KGIII ( 973947 )

        A couple of things to add to the above...

        While it's a philosophical matter, I do not know if we even have true random. We have unpredictable pretty well covered and we have some things (like radioactive decay) that aren't yet understood well enough to be predicted. There are suitable sources for unpredictable results but I'm not really sure that we've got true random. I think that, in the few areas where we do have something close, that it's actually a lack of understanding on our part that makes us think t

    • They possibly used the rand() function in their billing department.

    • A) If IBM discovered a way to make something that is truly random, then $1.4M is not only a bargain, it's revolutionary.

      B) IBM didn't make something truly random. They used a psuedo-random number generator (PRNG), the same as the rest of us, and we already have ones that are good enough for advanced cryptography. For a left/right decision, you could seed it with something trivial like the time of day accurate to the ms and have a degree of randomness sufficient to thwart attempts at exploiting the randomnes

      • A) Radioactive decay is probably truly random, and you can get generators based on it for a lot less than $1.4M.

        C) Assuming random selection with a fixed probability, it doesn't matter whether the terrorists are lined up consecutively or not.

  • Maybe (Score:3, Insightful)

    by Anonymous Coward on Monday April 04, 2016 @06:07PM (#51841683)

    "as most programming languages of choice have a randomizing function available to use"
    You mean has a psudo-random function that is not that hard to predict.
    Casino Level Randomization is a little harder.

    • Re:Maybe (Score:5, Informative)

      by Anonymous Coward on Monday April 04, 2016 @06:24PM (#51841797)

      A little harder, yes, but not by much.

      I work on regulated casino software. And we use the Mersenne Twister [wikipedia.org] rather than any sort of dedicated randomization hardware.

      • by gweihir ( 88907 )

        Interesting. Do you encrypt the output or put it through a keyed hash? Or are you using little enough randomness that attacks become too hard? I would have expected a CPRNG being the minimal requirement, though.

    • Re:Maybe (Score:5, Informative)

      by Anonymous Coward on Monday April 04, 2016 @06:28PM (#51841805)
      Some casinos are using actual quantum RNGs. For $1k I can get a USB RNG that emits one photon at a time and a polarized mirror with a perfect 50% chance to go through or reflect off of. 4Mbit/s of RNG. For $35 you can get a pretty strong opensource USB RNG that uses a combination of several quantum level electric, electro-thermal, and EM noise. http://www.bitbabbler.org/ [bitbabbler.org]
      • Re:Maybe (Score:5, Informative)

        by TechyImmigrant ( 175943 ) on Monday April 04, 2016 @06:55PM (#51841929) Homepage Journal

        Some casinos are using actual quantum RNGs. For $1k I can get a USB RNG that emits one photon at a time and a polarized mirror with a perfect 50% chance to go through or reflect off of. 4Mbit/s of RNG. For $35 you can get a pretty strong opensource USB RNG that uses a combination of several quantum level electric, electro-thermal, and EM noise. http://www.bitbabbler.org/ [bitbabbler.org]

        All nondeterministic RNGs are quantum in nature. All physical things are.

        What people mean by quantum RNG is actually that they are isolating a single quantum event from all the others. So it has a nice distribution. Only this does not happen. As far as I've been able to ascertain (and it's my job to know) all quantum RNGs are measuring the sum of multiple events and so getting a binomial distribution that then needs a traditional entropy extraction algorithm to get to data with nondeterminism, a uniform distribution and something close to 100% Renye min entropy. This is therefore no different to normal RNGs except there's a smaller number of things in the core nondeterministic process.

        For $0 extra, you can use the RNG in your computer. They're pretty good these days.

        • by gweihir ( 88907 )

          Look at reverse-breakdown noise in a storage oscilloscope with bandwidth > 100MHz. Individual tunneling events are visible as you get a randomized saw-tooth. True, that are not individual electrons tunneling, but individual avalanches caused by individual electrons tunneling. A bit similar to what a photo-multiplier or a Geiger-Mueller tube gives you, but a _lot_ cheaper.

          As to getting a good distribution, no physical system can do that. That is why anybody competent feeds the noise to a CPRNG instead of

      • by gweihir ( 88907 )

        The $1k thing is for idiots. Unless they do whitening, it _will_ have bias. Reverse-breakdown noise feeding a CPRNG is by far enough.

        • Even if there's a bias, they can eliminate it by taking two readings and then reacting as follows:

          Left-Left => Ditch the result and try again
          Left-Right => Direct the user left
          Right-Left => Direct the user right
          Right-Right => Ditch the result and try again

          This should even out any bias and leave you with a 50-50 result.

          • by gweihir ( 88907 )

            And if you do that, you get higher-order non-random behavior. Seriously, it is known how to do this right.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Reset the seed to the millisecond the button was pressed each time it's pressed. Its breakable, but if you can bribe the guard to time it exactly, you can also bribe him to simply put you in one line regardless of what the app says. If you can't bribe the guard, good luck syncing the device's time and trying to social engineer the guy to press the button at an exact moment.

    • by gweihir ( 88907 )

      Depends on the language. Some use MT19997 and that is pretty good and still fast (not directly suitable for crypto though). And as soon as you have a crypto-library, you will get a CPRNG that is a lot better than what is needed here even if it is pretty bad, because of the low number of bits used.

  • Training? (Score:5, Interesting)

    by Feral Nerd ( 3929873 ) on Monday April 04, 2016 @06:15PM (#51841729)
    The TSA's employees need training on an app that randomly tells people to go left or right?
    • by Sebby ( 238625 )
      Better to train/pay a human then to buy robots or mechanical gateways to direct people randomly.
    • by BeauHD ( 4450103 ) Works for Slashdot
      This may be the most surprising tidbit in the article.
    • Re: (Score:2, Funny)

      by Anonymous Coward

      The TSA employees first needed to be trained to understand "left" and "right".

      • Re:Training? (Score:5, Insightful)

        by argumentsockpuppet ( 4374943 ) on Monday April 04, 2016 @07:02PM (#51841957)

        It's possible IBM supplied all the iPads and training in addition to the app itself.

        I know it is fun and easy to criticize the TSA, and I am in favor of replacing them entirely with any of a dozen different possibilities. That said, there is a big difference between developing an app and supplying hardware and doing testing and training. I could build the app but I have no idea what the cost would be to test it sufficiently to meet government standards, then train the staff to use them, then equip the staff with hardware to use it. The cost of the app could literally be $0 and still top $1 million after the testing, training and equipment costs.

        Someone else pointed out this is typical clickbait. It's got a shocking headline but then scant details on what actually caused the scenario. If they'd instead said "TSA has IBM develop an app that IBM contributed for free in exchange for exclusive rights to train staff for $10/hr each on how to handle customer service. Additionally, IBM will supply sufficient devices to have a minimum of two for each airport line at 5% profit per device" then the headline wouldn't generate nearly so much interest and the criticisms would be much better founded.

        I wouldn't be at all surprised to find out that the bureaucracy that guides the TSA spent far more than is reasonable. I just didn't see enough details in TFA to assume that is actually the case. Does *anyone* have a breakdown on what kind of training, what kind of testing, what kind of devices were purchased?

    • Presumably the app takes inputs like lanes open, pre-check lanes open, historical information on speed of processing each lane, etc, to decide how many people get assigned to the pre-check lane. And training the supervisors to upload all that data is a major cost, right?

      I do see the ipad on a nice ruggedized stand/enclosure, and I'd imagine the 1M non-development costs include those units.

    • by Intron ( 870560 )

      The TSA's employees need training on an app that randomly tells people to go left or right?

      The app was the easy part. The expensive part was being able to answer "Do you mean my right or your right?" every time they tell someone which line to get in. Anti-violence training is expensive.

      • The TSA's employees need training on an app that randomly tells people to go left or right?

        The app was the easy part. The expensive part was being able to answer "Do you mean my right or your right?" every time they tell someone which line to get in. Anti-violence training is expensive.

        Hehe... I hadn't thought of that problem.

  • by Anonymous Coward on Monday April 04, 2016 @06:15PM (#51841737)

    ZOMG $1.4M for an app that randomizes a single bit!!! (*)

    * Note that it may have actually been $1.4M for hardware, training, and app.

    Seriously, how fucking asinine are these clickbait articles getting? If you can decisively say that they charged $300k+ or $1.4M+ for an app that simple, do so. Otherwise you're just full of shit.

  • by Trachman ( 3499895 ) on Monday April 04, 2016 @06:19PM (#51841753) Journal

    He means precisely instances like that. One needs to find a more idiotic view: the app tells TSA person which way to show the finger. If anybody wants an example of fraud, waste and abuse: this is it. We could listen ad nauseum to TSA explanations, saying that app needs to be secure, or that they have to follow the procedures, or they needed many licenses.... blah blah blah

    The point is that if airport security would be private that kind of nonsense would not exist by definition. Now it is public money that were spent.

    This is not the only software that uses random function. There is another software that randomly selects passengers for additional screening. Here is how Israel does it, does it for free and very effectively: they let the screening agents to pick and choose any passenger that they want or have a hunch. So fare they are very effective in preventing bad dudes in boarding their planes.

    • by E-Rock ( 84950 )

      Except this is America, and the TSA seems to pick from the bottom of the barrel, so your plan would just result in extra 'screening' for all the hot chicks? If you think that's absurd, see how good a job they did picking who to run through the body scanners.

    • by beelsebob ( 529313 ) on Monday April 04, 2016 @06:36PM (#51841847)

      He means precisely instances like that.

      The problem is, that what he proposes, is more of this... He proposes that more of the country should be privatised, because "businesses can do it much more efficiently".

      The correct solution here was not to get any business involved at all, because as soon as you do that, they try and make a (huge) profit out of it. The correct solution was instead to get a software engineering intern on the government's payroll to write this app in one day.

    • When Mr. Trump says fraud and waste, he means not the kind where he's making a profit.

    • by Afty0r ( 263037 )

      Here is how Israel does it, does it for free and very effectively: they let the screening agents to pick and choose any passenger that they want or have a hunch.

      Yeah but errr... they're not private. What's your argument? We should privatise? OR we should do it like Israel? To do it like Israel will cost billions of dollars of public money because... the Israelis hire they're smart people and give them a great deal of training. Your average TSA grunt is so dumb they would have died off before reaching breed

  • Perhaps it snaps a picture of the person, analyzes it with deep neural learning, and decides whether or not the person looks suspicious.
  • This is one of those things that sounds like it could be tricky to actually get right. Still they could just do what that secret service does when choose travel options for the President; you flip a coin with one agent calling it in air and the other doing the flipping. Seems reasonable free from exploits.

    FWIW I don't think this about cryptographically secure random and more about a system that by design can't be hacked and such that you'd need to bribe an entire team to get through the line you want.

  • If the random number generator used in the algorithm came from the National Institute of Science and Technology (NIST), it might not be as random as possible.
  • Honestly having worked with government, it sounds about right probably a 1000 hours of meetings to choose the colours, shape, discuss the randomizing algorithm etc. prob took no time at all to write.
    • This.

      Heck any large organization comes with a very high decision tax. Some underling effed something in the past, so going forward VP level authority is needed to do anything that affects more than your part of the office. VP's are just as error prone and even more risk adverse, not to mention busy as hell. So pre-meeting meetings are held, consultants are brought in to provide unbiased opinions, lawyers have to be consulted since it crosses state lines, and finally the finance department will lose the d

  • by TechyImmigrant ( 175943 ) on Monday April 04, 2016 @06:44PM (#51841885) Homepage Journal

    Are you selling it to the federal government? [YES]
    Is a random number generator used in the product? [YES]
    Is the product intended for a security application? [YES]

    Requirement: The Random Number Generator be CAVS certified to SP800-90A and the module within which is operates be FIPS140-2 certified.

    That's $100,000 before you've got out of bed, to meet the government procurement requirements.

  • by kheldan ( 1460303 ) on Monday April 04, 2016 @06:47PM (#51841891) Journal
    I read stuff like this and it makes me question having ethics and conscience.
  • Come on now, what could go wrong? Well, OK
    http://www.footballzebras.com/... [footballzebras.com]

  • In this thread you will find out why it is unusual to find a software developer that can start a successful software development business.

  • by PPH ( 736903 ) on Monday April 04, 2016 @07:30PM (#51842117)

    Build a device with a small radioisotope source, detector, poison vial and cat. Calibrate the source to provide a 50% probability of a particle emission for the average passenger rate. Open the box and check the cat. Cat alive: Right lane. Cat dead: Left lane, reset vial, replace the cat and proceed.

  • The TSA ended the managed inclusion [travelmarketreport.com] program for which this app was built and deployed.

    They ended it when a notorious felon [dhs.gov]was allowed to go through the pre-check line.

  • #include
    #include
    int main(int ac, char* av[])
    {
          srand(time(NULL));
          while( 1 )
                printf("%s\n", (rand() RAND_MAX/2) ? "Left" : "Right" );
    }

  • This should fall under the government's recently published commitment to publish publically financed software. I'm thinking this should be one of the 1st pieces of software we get to see and criticize. Eh? https://news.slashdot.org/stor... [slashdot.org]
  • Frankly, for $1.4million, I'd at least expect it to sense movement (you know, like the sensors on the automated doors about 5 meters away from the people in this video that cost a few dollars each) and automatically tell people left or right, without requiring an actual human to stand there and press the screen to randomly change left to right when they feel like pressing the screen (which is random, how??).

    Or if they insist on an iPad, at least use the camera to determine someone is there and then say l
  • by Required Snark ( 1702878 ) on Monday April 04, 2016 @10:32PM (#51842863)
    Department of Homeland Pork, Transportation Pork Administration

The faster I go, the behinder I get. -- Lewis Carroll

Working...