Announcement

Collapse
No announcement yet.

X Developer Keith Packard's ChaosKey Hardware RNG Is Almost Here

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by Brane215 View Post
    1. Why do you trust their RND implementation ? How do you know they can't circumvent it ? I remember reading materials, showing how easy it would be for them to poison that RND implementation with predictable component.
    Predictable patterns would be very easy to detect, and a RND Source is only a small part of a secure stack. If you are concerned about the quality of the RND (whcih you always should), then you dont blindy depend on it but use multiple sources and possibly a Mersenne Twister on top.
    Originally posted by Brane215 View Post
    WRT to USB, RTFM. USB was meant to be as promiscuous as a cheap hooker. It was meant to be a bus for every trivial thing. Main selling poiunt of this bus is cheapness, accessibility and PnP, not security in any way. PCIe is substantially different.
    Its not different, as both are busses and all they do is ensuring error detection or correction and nothing in terms of security. Its not their responsibility to secure the connection. You can RTFM and point me to the exact feature that PCIe supposedly has over USB in that regard if you want to make an argument, since YOU make the claim YOU should prove it.

    Comment


    • #32
      Cannot an Intel CPU act as a RNG?

      Comment


      • #33
        What sort of usage does this have?
        The kernel can generate true random numbers just through high resolution timing of hardware events


        This kind of USB TRNG dongles are useful when you do not completely trust the interfaces your kernel relies upon to fill up its "entropy buffers". Conditions where this happens may be the following ones: (1) in some application you consume entropy at a very high rate and you do not trust the interfaces your kernel use to provide entropy at a similarly high rate; (2) systems where there is not a hardware TRNG "piggyback" on noise-like phenomena from some of their peripherals to gather entropy (human activity on keyboards and mouse, latencies of rotating media, etc.) However, there are systems that do not have these sort of peripherals (think of an embedded system, an IoT device, a piece of network equipment). In this latter case, your sources of entropy are severely reduced. There is also another option but it is probably not the most important one: (3) you have dedicated TRNG hardware on your system but you are paranoid and you do not trust it because its design is not open.

        Why not, for example, small PCIex1 card with cheap FPGA on it?

        You need analog phenomena to generate random data. TRNGs based on digital hardware (e.g. an FPGA) rely on the fact that all digital systems are eventually analog and end up trying to observe and deploy the analog phenomena in the digital hardware. Namely you may design oscillators and try to observe their phase noise, or use metastability, or set up sequential logic purposely to have races. The most common approach is to use the phase noise of ring oscillators. However, analog phenomena in digital hardware are obviously poorly characterized and can be affected by many things (power supply, lot of production of your device, environmental conditions, etc.). So designing good TRNGs in this way can be harder than it may initially appear.

        So how do you know that that Cypress PSoC thingie is truely random?

        It is not the PSOC that is random. The PSOC is a mixed mode configurable SoC that provides a microcontroller, programmable logic (digital) and programmable analog blocks. The programmable analog blocks are sufficiently flexible to design a TRNG on them, using a chaotic dynamical system as the approach to collect entropy.

        The chaos based approach is very appealing, because it lets you use the analog primitives for the function they are designed and not for side effects (e.g. noiseness) that may be poorly characterized by the manufacturer or very sensitive to environmental conditions or interference. Additionally, for some operating conditions, chaos based sources can rely on mathematical proofs of their ability to generate independent identically distributed symbols, and not just an ex-post empirical verification.

        Incidentally, do not get confused by the "chaos" word. A lot of TRNG use this label, but not all of them use a little artificial chaotic dynamical system as the entropy harvesting mechanism.

        You may want to take a look at http://arxiv.org/abs/1412.6067. This is a different approach than the PSOC based one and requires external components in addition to a microcontroller, but it may give you some ideas. Another example of a chaos based TRNG is the infnoise (https://github.com/waywardgeek/infnoise). The proponent does not recognize that the system he proposes makes use of chaotic dynamics and presents it as an invention, but in fact the system uses nonlinear dynamics principles that have been known for a long time. There is also an implementation of such principle on a PSOC (https://github.com/alwynallan/redoubler), but differently from the ISCAS 2016 paper, it requires external components, so you cannot just take a PSOC and get a TRNG by merely uploading some firmware/configware on it.

        Comment


        • #34
          Originally posted by Brane215 View Post
          WRT to USB, RTFM. USB was meant to be as promiscuous as a cheap hooker. It was meant to be a bus for every trivial thing. Main selling poiunt of this bus is cheapness, accessibility and PnP, not security in any way. PCIe is substantially different.
          Are you on drugs?

          USB is a Master-slave system, all communication is run by the onboard USB controller, the slave device knows jackshit of the system it is attached to and it has no kind of access to its hardware, it just sends packets to the onboard USB controller that then decides what to do with them.
          USB was designed to run unsafe/untrusted devices all the time after all.

          With PCIe devices can access physical address space which allows you to pwn whatever, as the PCIe is not secured in any way (being internal and high-speed and low-level), and you can do DMA (direct memory access) attacks all day and all the night with it, in some cases you can also hack the BIOS. Unless the PC has IOMMU/VT-d active that firewalls that (but it is a feature used mostly for VM servers, not in consumer stuff).

          I still remember the shitstorm that raged over Thunderbolt ports because of their debatable choice of running pcie lanes to an external port I could connect whatever to. (Ok, horribly expensive devices, still an issue)
          Last edited by starshipeleven; 11 July 2016, 06:54 AM.

          Comment


          • #35
            Originally posted by starshipeleven View Post
            Are you on drugs?

            USB is a Master-slave system, all communication is run by the onboard USB controller, the slave device knows jackshit of the system it is attached to and it has no kind of access to its hardware, it just sends packets to the onboard USB controller that then decides what to do with them.
            Wow. You nailed it. Your "argument" caused BSOD between my ears. Now I'll have to relearn everything I have known before that point.

            Seriously, dude, there is a debate and there is education. I don't have the time to educate you on basic stuff.
            If perception of victory is what you are after, you can start masturbating. You won, I fold.

            Comment


            • #36
              Originally posted by callegar View Post
              [I]What sort of usage does this have?

              Why not, for example, small PCIex1 card with cheap FPGA on it?

              You need analog phenomena to generate random data. TRNGs based on digital hardware (e.g. an FPGA) rely on the fact that all digital systems are eventually analog and end up trying to observe and deploy the analog phenomena in the digital hardware. Namely you may design oscillators and try to observe their phase noise, or use metastability, or set up sequential logic purposely to have races.
              I didn't mean to use FPGA for that, just for processing acquired data, PCIe comm and perhaps auxiliary functions ( anti tamper etc). You could easily use external A/D frontend with noise gen, preferably shielded and within more controlled environment. Like digital input, biased to a transition point, feeding DC coupled external diode(s) noise etc.

              Also, FPGA itself has plenty of analog electronics. All modern "digital inputs", especially differential, are awwfully close to an opamp....

              The most common approach is to use the phase noise of ring oscillators. However, analog phenomena in digital hardware are obviously poorly characterized and can be affected by many things (power supply, lot of production of your device, environmental conditions, etc.). So designing good TRNGs in this way can be harder than it may initially appear.
              Things like FPGAs are very noisy environment for observin such phenomena. There is a reason why most A/Ds on cheap microcontrolers are just 10-12 bits.

              [/QUOTE]
              It is not the PSOC that is random. The PSOC is a mixed mode configurable SoC that provides a microcontroller, programmable logic (digital) and programmable analog blocks. The programmable analog blocks are sufficiently flexible to design a TRNG on them, using a chaotic dynamical system as the approach to collect entropy.[/QUOTE]

              Yes, but that electronics is not meant for such things. Compared to upper part of the spectrum of their discrete cousins, such building blocks are a bad joke for precision useage.

              Last edited by Brane215; 11 July 2016, 08:04 AM.

              Comment


              • #37
                Originally posted by Brane215 View Post
                If perception of victory is what you are after, you can start masturbating. You won, I fold.
                No shitstain, it's not like that.
                You were asked also by others to back up your outlandish claim that PCIe is somehow safer than USB when anyone that can google can see that PCIe allows direct memory access to devices, and you answered with gibberish about USB being a cheap whore or something.

                Please provide some kind of explanation or link, or GTFO plz.

                Comment


                • #38
                  Originally posted by starshipeleven View Post
                  NO DUH!!!

                  I meant things where having TRUE RNG and not pseudorandom would make a difference. USB ports are cheap nowadays, but...
                  I wonder if we could start seeing RNG's like this build onto server motherboards

                  Comment


                  • #39
                    Originally posted by boxie View Post
                    I wonder if we could start seeing RNG's like this build onto server motherboards
                    Unlikely, as officially both Intel and AMD CPUs have already that capability (issue is can you trust them over a simple and opensource/hardware dongle like this... ummmm.... no, but companies don't usually care).

                    Server mobos have at least one internal usb port soldered to the board usually, and there are large stocks of usb header-to-internal-USB-port adapters for cheep, so I'm not crying if It does not happen.

                    Comment


                    • #40
                      Originally posted by boxie View Post

                      I wonder if we could start seeing RNG's like this build onto server motherboards
                      I think so. TPM/LPC port looks like a natural candidate for such role.

                      Comment

                      Working...
                      X