SlideShare uma empresa Scribd logo
1 de 95
Baixar para ler offline
Faster P wninG A ssured: New
Adventures with FPGAs


ClubHACK 2007
David Hulton <david@ toorcon.org>

Chairman, ToorCon
Director Security Applications, Pico Computing, Inc.
Researcher, The OpenCiphers Project



Midnight Research Labs
The Church of W iFi
The Hacker's Choice
Overview

   FPGAs – Quick Intro
   New to 2007! (Since Last Defcon)
        CoWPAtty – WPA Cracking
        VileFault – Mac OS-X FileVault
   New Cracking Tools! (Since ShmooCon)
        BTCrack – Bluetooth Authentication
        WinZipCrack – WinZip AES Encryption
        The A5 Cracking Project – GSM Encryption
   Conclusions



ClubHACK 2007                              2007 © The OpenCiphers Project
FPGAs




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs

     Quick Intro
         Chip with a ton of general purpose logic
             ANDs, ORs, XORs
             FlipFlops (Registers)
             BlockRAM (Cache)
             DSP48’s (ALUs)
             DCMs (Clock Multipliers)




ClubHACK 2007                                   2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs (448)




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs
         Slices (10,752)




ClubHACK 2007               2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs
         Slices
         DCMs (8)




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs
         Slices
         DCMs
         BlockRAMs (72)




ClubHACK 2007              2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs
         Slices
         DCMs
         BlockRAMs
         DSP48s (48)




ClubHACK 2007           2007 © The OpenCiphers Project
FPGAs

     Virtex-4 LX25
         IOBs
         Slices
         DCMs
         BlockRAMs
         DSP48s
         Programmable Routing Matrix
          (~18 layers)




ClubHACK 2007                           2007 © The OpenCiphers Project
Introduction to WPA

     WiFi Protected Access




ClubHACK 2007                         2007 © The OpenCiphers Project
Introduction to WPA

     PSK
         MK is your passphrase
         It’s run through PBKDF2
          to generate the PMK




ClubHACK 2007                         2007 © The OpenCiphers Project
Introduction to WPA

     PSK
         MK is your passphrase
         It’s run through PBKDF2
          to generate the PMK




ClubHACK 2007                         2007 © The OpenCiphers Project
Introduction to WPA

     PSK
         MK is your passphrase
         It’s run through PBKDF2
          to generate the PMK




ClubHACK 2007                         2007 © The OpenCiphers Project
Introduction to WPA

        For every possible PMK compute PTK and see if it
         matches the handshake captured on the network




ClubHACK 2007                                2007 © The OpenCiphers Project
FPGA coWPAtty

   Uses 8 SHA-1 Cores
   Uses BlockRAM to buffer the words fed to the

    cores
   As long as the machine is able to supply words

    fast enough, the SHA-1 cores will be utilized
    fully




ClubHACK 2007                        2007 © The OpenCiphers Project
Performance Comparison

  PC                               FPG A

  Cowpatty                         Cowpatty
     800MHz P3          ~25/sec     LX25                ~430/sec
     3.6GHz P4          ~60/sec     1 5 Cluster         ~6,500/sec
     AMD Opteron        ~70/sec     LX50                ~650/sec
     2.16GHz IntelDuo   ~70/sec


  Aircrack
     3.6GHz P4          ~100/sec




ClubHACK 2007                                 2007 © The OpenCiphers Project
Results

     Decided to compute hash tables for a 1,000,000
      passphrase wordlist for the top 1,000 SSIDs

       “That million word list that I fed you incorporated a
       430,000 word list from Mark Burnett and Kevin Mitnick
       (of all people) and was made up of actual harvested
       passwords acquired through some google hacking.
       They are passwords that people have actually used. I
       padded it out to 1 million by adding things like
       websters dictionary, and other such lists, and then
       stripped the short word (<8 chars.) out of it.”


ClubHACK 2007                               2007 © The OpenCiphers Project
Results

   Finally have the 40GB WPA tables on the tubes
   Thanks Shmoo! (3ricJ & Holt!)


   Check the Torrent trackers for seeds


   CoWPAtty FPGA support has recently been

    added to wicrawl




ClubHACK 2007                      2007 © The OpenCiphers Project
Demo
Bluetooth PIN Cracking

     Pairing bluetooth devices is similar to wifi
      authentication
     Why not crack the bluetooth PIN?
     Uses a modified version of SAFER+
     SAFER+ inherently runs much faster in
      hardware
     Attack originally explained and published by
      Yaniv Shaked and Avishai Wool
     Thierry Zoller originally demonstrated his
      implementation at hack.lu

ClubHACK 2007                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking

     How it works
         Capture a bluetooth authentication
          (sorry, requires an expensive protocol analyzer)
         This is what you'll see

  Master                      Slave
  in_rand                                      master sends a random nonce
  m_comb_key
                              s_comb_key       sides create key based on the pin
  m_au_rand                                    master sends random number
                              s_res            slave hashes with E1 and replies
                              s_au_rand        slave sends random number
  m_sres                                       master hashes with E1 and replies


ClubHACK 2007                                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking

     Just try a PIN and if the hashes match the
      capture, it is correct
     Extremely small keyspace since most devices just
      use numeric PINs (1016)
     My implementation is command line and should
      work on all systems with or without FPGA(s)




    ClubHACK 2007                        2007 © The OpenCiphers Project
Bluetooth PIN Cracking

     FPGA Implementation
           Requires implementations of E21, E22, and E1 which
            all rely on SAFER+
           Uses 16-stage pipeline version of SAFER+ which feeds
            back into itsself after each stage
           To explain, here's some psuedocode




    ClubHACK 2007                              2007 © The OpenCiphers Project
Bluetooth PIN Cracking
for(pin = 0; ; pin++) {
     Kinit = E22(pin, s_bd_addr, in_rand);         // determine initialization key

        m_comb_key ^= Kinit;                       // decrypt comb_keys
        s_comb_key ^= Kinit;

        m_lk = E21(m_comb_key, m_bd_addr);         // determine link key
        s_lk = E21(s_comb_key, s_bd_addr);
        lk = m_lk ^ s_lk;

        m_sres_t = E1(lk, s_au_rand, m_bd_addr); // verify authentication
        s_sres_t = E1(lk, m_au_rand, s_bd_addr);

        if(m_sres_t == m_sres && s_sres_t == s_sres)
             found!
}

    ClubHACK 2007                                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking
for(pin = 0; ; pin++) {
     Kinit = E22(pin, s_bd_addr, in_rand);         // determine initialization key

        m_comb_key ^= Kinit;                       // decrypt comb_keys
        s_comb_key ^= Kinit;

        m_lk = E21(m_comb_key, m_bd_addr);         // determine link key
        s_lk = E21(s_comb_key, s_bd_addr);
        lk = m_lk ^ s_lk;

        m_sres_t = E1(lk, s_au_rand, m_bd_addr); // verify authentication
        s_sres_t = E1(lk, m_au_rand, s_bd_addr);

        if(m_sres_t == m_sres && s_sres_t == s_sres)
             found!
}

    ClubHACK 2007                                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                              E22
                  16 PINs
   PIN Gen                  SAFER+




ClubHACK 2007                        2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                    E21           16 clock cycles later

   PIN Gen                       SAFER+




                 Output loops back and SAFER+ now does
                            E21 for the Master




ClubHACK 2007                                     2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                      E21            16 clock cycles later

   PIN Gen                         SAFER+




                    Then does the second E21 for the Slave
                  and combines the keys to create the link key




ClubHACK 2007                                         2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                       E1               16 clock cycles later

   PIN Gen                          SAFER+




                  Then the first part of E1 for the Slave




ClubHACK 2007                                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                       E1             16 clock cycles later

   PIN Gen                          SAFER+




                 Then the second part of E1 for the Slave




ClubHACK 2007                                          2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                       E1              16 clock cycles later

   PIN Gen                          SAFER+




                  Then the first part of E1 for the Master




ClubHACK 2007                                           2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                      E1              16 clock cycles later

   PIN Gen                         SAFER+




                 Then the second part of E1 for the Master




ClubHACK 2007                                         2007 © The OpenCiphers Project
Bluetooth PIN Cracking

                                             E22            16 clock cycles later

   PIN Gen                               SAFER+



                     SRES                Compare

                                         N      Y
                                                               Stop


                Then checks all of the sres values to see if any match
                           while the process starts over




ClubHACK 2007                                                2007 © The OpenCiphers Project
Bluetooth PIN Cracking

     If the cracker stops the computer reads back
      the last generated PIN from the pin generator to
      determine what the valid PIN was
     The last generated PIN – 16 should be the
      cracked PIN
     I built a commandline version
     Thierry Zoller integrated support into BTCrack
     I added some hollywood FX !



ClubHACK 2007                           2007 © The OpenCiphers Project
Performance Comparison

  PC                               FPGA

  btpincrack                       btpincrack
     3.6GHz P4      ~40,000/sec     LX25       ~7,000,000/sec
                                    15 Cluster ~105,000,000/sec
  BTCrack                           LX50       ~10,000,000/sec
     3.6GHz P4      ~100,000/sec




     0.24 secs to crack 4 digit     0.001 secs to crack 4 digit
     42 min to crack 8 digit        10 secs to crack 8 digit


ClubHACK 2007                                   2007 © The OpenCiphers Project
Demo
WinZip AES Encryption

     Somewhat proprietary standard
     No open source code available (until now!)
     Format
           Uses the standard ZIP format
           Adds a new compression type (99)
           Uses PBKDF2 (1000 iterations) for key derivation
           Individual files can be encrypted inside the ZIP file
           Supports 128/192/256-bit key lengths
           Uses a 16-bit verification value to verify passwords
           Otherwise you verify by using the checksum
           Uses a salt (sorry, can't do a dictionary attack!)


    ClubHACK 2007                                  2007 © The OpenCiphers Project
WinZip AES Encryption

     Cracking algorithm
           Scan through ZIP file until you find the encrypted file
           Get the 16-bit password verification value
           Hash a password with PBKDF2 and see if the
            verification value matches
                No – Try next password
                Yes – Decrypt file and see if checksum matches
                   No – Try next password

                   Yes – Password found!




    ClubHACK 2007                                        2007 © The OpenCiphers Project
WinZip AES Encryption

     Uses the same PBKDF2 core as the WPA and
      FileVault cracking code
     Requires extra iterations for longer key lengths
     Tool takes a ZIP file, encrypted file name, and
      dictionary file as input




    ClubHACK 2007                         2007 © The OpenCiphers Project
Performance Comparison

  PC                               FPGA

  winzipcrack                      winzipcrack
     800MHz P3          ~100/sec    LX25              ~2,000/sec
     3.6GHz P4          ~180/sec    LX50              ~6,000/sec
     AMD Opteron        ~200/sec    15 Cluster        ~30,000/sec
     2.16GHz IntelDuo   ~200/sec




ClubHACK 2007                                2007 © The OpenCiphers Project
Demo
VileFault

   “FileVault secures your home directory by
    encrypting its entire contents using the
    Advanced Encryption Standard with 128-
    bit keys. This high-performance algorithm
    automatically encrypts and decrypts in
    real time, so you don’t even know it’s
    happening.”




ClubHACK 2007                    2007 © The OpenCiphers Project
VileFault

     We wanted to know what was happening




    ClubHACK 2007                   2007 © The OpenCiphers Project
VileFault

   Stores the home directory in a DMG file
   DMG is mounted when you login
   hdi framework handles everything
   Blocks get encrypted in 4kByte “chunks” AES-
    128, CBC mode
   Keys are encrypted (“wrapped”) in header of
    disk image
   Wrapping of keys done using 3DES-EDE
   Two different header formats (v1, v2)
   Version 2 header: support for asymmetrically
    (RSA) encrypted header

ClubHACK 2007                       2007 © The OpenCiphers Project
VileFault

     Apple's FileVault
     Uses PBKDF2 for the password hashing
     Modified version of the WPA attack can be used
      to attack FileVault
     Just modified the WPA core to 1000 iterations
      instead of 4096
     Worked with Jacob Appelbaum & Ralf-Philip
      Weinmann to reverse engineer the FileVault
      format and encryption




ClubHACK 2007                         2007 © The OpenCiphers Project
VileFault

   Login password used to derive key for
    unwrapping
        PBKDF2 (PKCS#5 v2.0), 1000 iterations

   Crypto parts implemented in CDSA/CSSM
        DiskImages has own AES implementation,
         pulls in SHA-1 from OpenSSL dylib

   “Apple custom” key wrapping loosely
    according to RFC 2630 in Apple's CDSA
    provider (open source)
ClubHACK 2007                        2007 © The OpenCiphers Project
VileFault

   vfdecrypt (Ralf Philip-Weinmann & Jacob Appelbaum)
        Will use the same method with a correct password to
         decrypt the DMG file and output an unencrypted DMG
         file
        Result can be mounted on any system without a
         password
   vfcrack (me!)
        Unwrap the header
        Use header to run PBKDF2 with possible passphrases
        Use PBKDF2 hash to try and decrypt the AES key, if it
         doesn't work, try next passphrase
        With the AES key decrypt the beginning of the DMG file
         and verify the first sector is correct (only needed with
         v2)
ClubHACK 2007                                    2007 © The OpenCiphers Project
VileFault

   Other attacks
        Swap
               The key can get paged to disk (whoops!)
               Encrypted swap isn't enabled by default
        Hibernation
               You can extract the FileVault key from a hibernation file
               Ring-0 code can find the key in memory
        Weakest Link
               The password used for the FileVault image is the same as
                your login password
               Salted SHA-1 is much faster to crack than PBKDF2 (1
                iteration vs 1000)
               The RSA key is easier to crack than PBKDF2



ClubHACK 2007                                             2007 © The OpenCiphers Project
Performance Comparison

  PC                               FPGA

  vfcrack                          vfcrack
     800MHz P3          ~100/sec    LX25              ~2,000/sec
     3.6GHz P4          ~180/sec    LX50              ~6,000/sec
     AMD Opteron        ~200/sec    15 Cluster        ~30,000/sec
     2.16GHz IntelDuo   ~200/sec




ClubHACK 2007                                2007 © The OpenCiphers Project
Demo
The A5 Cracking Project

     Capturing GSM Traffic
           GNU Radio USRP board ($900 USD)
           We developed software to decode GSM
           Lets you fire up wireshark on a GSM channel
           Can sometimes capture SMS messages
           Couldn't capture voice calls :-(
           We wanted to change that




    ClubHACK 2007                               2007 © The OpenCiphers Project
The A5 Cracking Project

     Luckily you don't need to break crypto

     India
           IDEA - A5/0
           AirTel - A5/0
           Essar - A5/0
           Orange - A5/0
           Dolphin - A5/0




    ClubHACK 2007                        2007 © The OpenCiphers Project
The A5 Cracking Project

     Focusing on A5/1
           Used widely throughout the US, Europe, and some
            Asian countries
           The strongest algorithm for GSM (3G is better)
           Looking at only practical attacks
           Originally looked at ciphertext only attacks
           Found out that there is a lot of known-plaintext
           Known-plaintext attacks are a lot easier
     Researched a few different attacks
           Real-time attack with known-plaintext + FPGAs
                Anderson & Roe / Keller + our mods
           Pre-computation + less FPGAs
                Biryukov, Shamir, & Wagner + our mods

    ClubHACK 2007                                        2007 © The OpenCiphers Project
Real-time Attack

     A register is clocked if it's clocking bit agrees with
      the majority




    ClubHACK 2007                           2007 © The OpenCiphers Project
Real-time Attack

     First 64 clock cycles key is xor'ed with registers
      here




    ClubHACK 2007                          2007 © The OpenCiphers Project
Real-time Attack

     Second, 22-bit frame number is xored in here




    ClubHACK 2007                       2007 © The OpenCiphers Project
Real-time Attack

     Third, A5/1 is run for 100 clock cycles




    ClubHACK 2007                         2007 © The OpenCiphers Project
Real-time Attack

     And then the output is xor'ed with the plaintext




    ClubHACK 2007                         2007 © The OpenCiphers Project
Real-time Attack

     Using known-plaintext you can reduce the
      keyspace by brute forcing R1/R2 and calculating
      a matching R3 using the plaintext as parity




    ClubHACK 2007                       2007 © The OpenCiphers Project
Real-time Attack

     Output bits are related to register bits




    ClubHACK 2007                          2007 © The OpenCiphers Project
Real-time Attack

     Must essentially brute force the clock bits




    ClubHACK 2007                         2007 © The OpenCiphers Project
Real-time Attack

     Certain clock bit possibilities can be initially ruled
      out by looking at registers that don't get clocked
      and output doesn't match




    ClubHACK 2007                           2007 © The OpenCiphers Project
Real-time Attack

     After a while certain possibilities can be ruled out
      by clock bits not matching output




    ClubHACK 2007                          2007 © The OpenCiphers Project
Real-time Attack

     And possibilities can be ruled out once the tap
      bits are computed and propagate up the registers




    ClubHACK 2007                       2007 © The OpenCiphers Project
Real-time Attack

     With enough known-plaintext you will be able to
      resolve all possible R1/R2 down to a valid R3




    ClubHACK 2007                       2007 © The OpenCiphers Project
Results

     FPGA code requires around 6000 clock cycles for
      each R1/R2 state
     100 cores at 100MHz will do 1.6M per sec
     One FPGA will crack key in 15 days
     100 FPGAs will crack in 3.6 hours
     PCs will take a really long time (~2,000 times
      slower)
     (code is free and available if you want to offload it
      to your botnet ;-)




    ClubHACK 2007                          2007 © The OpenCiphers Project
Real-time Attack

     Once the internal state of A5/1 is derived you can
      reverse clock A5/1 back to the state after the key
      is mixed in




    ClubHACK 2007                        2007 © The OpenCiphers Project
Real-time Attack

     To reverse A5/1 you calculate the only states for
      the clocking bits that are possible




    ClubHACK 2007                        2007 © The OpenCiphers Project
Real-time Attack

     Eventually there are only a few possibilities left




    ClubHACK 2007                          2007 © The OpenCiphers Project
Real-time attack

     This can be done quickly in software
           Because there are multiple possible states you need
            multiple packets to locate the correct state
           2 packets is enough, we happen to have 4
           Calculate the possible initial states for 2 packets
           Find the possible state that's common between the two




    ClubHACK 2007                               2007 © The OpenCiphers Project
Decrypting Packets

     If you have the A5/1 state after the key is mixed in
     It is the same as having the key
     You can mix in any frame number and generate
      the proper A5/1 output to xor to any ciphertext or
      plaintext




    ClubHACK 2007                         2007 © The OpenCiphers Project
Pre-computation Attack

     Reversing 64-bits of A5/1 output to 64-bits of A5/1
      internal state
           Essentially the same concept as a one-way function
           Rainbowtables are good at reversing one-way
            functions
           Decided to focus on building a table of 2^58
           1/64 chance of finding the key with a given packet
           We have 200 different 64-bit A5/1 outputs
           Good chance that we'll find the key




    ClubHACK 2007                               2007 © The OpenCiphers Project
Pre-computation Attack

     Time-space tradeoff basics
           You have a one-way function




                        in                out




    ClubHACK 2007                               2007 © The OpenCiphers Project
Pre-computation Attack

     Time-space tradeoff basics
           You have a one-way function
           You need to find the in that created an out


                         in                     out




    ClubHACK 2007                                     2007 © The OpenCiphers Project
Pre-computation Attack

     Naïve implementation
           Pre-computation
                Compute and store all possible in/out's
           Real-time
                Search through table until you find your out, it's in is the key

                              in                           out




                                   0   8
                                   1   2
                                   2   5
                                   3   1



    ClubHACK 2007                                                2007 © The OpenCiphers Project
Pre-computation Attack

        Basic time-space tradeoff implementation
            Pre-computation
                 Compute an in -> out, and then take the out and compute
                  another out, etc. (using a “reduction function”)
                 Just store the start and end values of the chain




    in                              R(out)                 R(out)              ...




                                0        8
                                1        2
                                2        5
                                3        1
    ClubHACK 2007                                         2007 © The OpenCiphers Project
Pre-computation Attack

       Basic time-space tradeoff implementation
             Real-time
                  To reverse a hash, you compute a chain for your out value and
                   compare all out values with all of the end points in your table
                  When you find a matching one, compute a chain from it's start
                   value
                  Your in will be right before your out in its chain


My out                               R(out)                   R(out)              ...

                       ?               ?           ?           ?

                                 0         8
                                 1         2
                                 2         5                                            out
                                 3         1
      ClubHACK 2007                                          2007 © The OpenCiphers Project
Pre-computation Attack

     Problems with time-space tradeoff
           Algorithms have collisions (especially when you're
            mapping output to input which have differing entropy)
           Collisions cause chains to merge or loop
           Different algorithms are used to mitigate this




    ClubHACK 2007                                2007 © The OpenCiphers Project
Pre-computation Attack

     Different time-space tradeoff algorithms
           Basic
                Use a different reduction function for different tables
                Increase the amount of tables you have depending on how
                 collision prone your algorithm is
           Distinguished Points
                Instead of having all of your chains be the same length you
                 stop when you see a certain pattern of bits
                You can detect collisions and reject chains by looking for other
                 chains that end in the same distinguished point
           Rainbow
                Use a different reduction function for each stage of the chain
                Requires more real-time computation




    ClubHACK 2007                                           2007 © The OpenCiphers Project
Pre-computation Attack

     Distinguished Points
           We first assumed that it wasn't very collision prone
           Turned out we were wrong
           Very efficient on FPGAs because it requires really low
            bandwidth and table lookups
           Can be used to speed up the real-time lookup phase
           Requires lots of tweaking to find the right parameters to
            provide the least number of collisions and loops




    ClubHACK 2007                                  2007 © The OpenCiphers Project
Pre-computation Attack

     Rainbow tables
           Provides the best collision resistance
           Requires a lot of real-time computation
             n(n+1)/2 * chain_length
           The real-time computation can be done on an FPGA
            (not as well as DP attack)
           Best attack parameters we could come up with
                Requires 5TB of disk storage
                Can reverse a key in 5 min with 1 FPGA
                Multiple FPGAs can be used to parallelize cracking multiple
                 keys
           You can adjust table to use less storage and require
            more time


    ClubHACK 2007                                         2007 © The OpenCiphers Project
Pre-computation Attack

     Final Analysis
           Talked to Elad Barkan
           Distinguished Points was the best solution
           Had to reduce chain length to provide the best
            collision/loop resistance (average length of 2^19)
           Used a different reduction function for each table
           Provides around 40% coverage (rainbow table
            provided only ~20%)
           Still deciding on the best parameters for the tables




    ClubHACK 2007                                  2007 © The OpenCiphers Project
Pre-computation Attack

     Limiting factor right now is pre-computation
           Computing 2^58 requires ~ 100 FPGAs running for 2
            months (6,000 times slower on PCs)
           We have a cluster of 70 FPGAs ready to start
            computing
           Once the parameters are finalized we'll be able to
            compute a full table in ~3 months
           Will be the largest rainbowtable ever built
                Typical Lanman rainbowtables cover 2^36 at most
                This will be 4 million times larger
           Resulting table will be 2TB




    ClubHACK 2007                                       2007 © The OpenCiphers Project
Real-time Attack

     Result
           Because of hard drive access time it will need to be
            spread across multiple hard drives
           6 hard drives and 1 FPGA will crack a conversation in
            ~30 min
           Double the hard drives and FPGAs to halve the time
           32 FPGAs and a network of 200 PCs will crack a
            conversation in < 1 minute




    ClubHACK 2007                                2007 © The OpenCiphers Project
FPGA Implementation

     Implementation
           Implemented A5/1 as a 64-stage pipeline
           Much more efficient than state-machines
           Get 1 A5/1 per clock cycle
           Output is looped back into the input (after reduction
            function is applied) until the last 19 bits are 0
           Results are written to BlockRAM which is polled by the
            PC
           Each core runs at 200MHz and 5 cores fit on an LX50
           Total A5/1's/sec is 200,000,000 * 5 = 1,000,000,000
           Single CPU does around 150,000/sec



    ClubHACK 2007                                2007 © The OpenCiphers Project
Demo
The A5 Cracking Project

     Currently building 2TB table
     Will eventually build the 28TB table
     If you want to help, check out wiki.thc.org/gsm




    ClubHACK 2007                        2007 © The OpenCiphers Project
Hardware

     Pico E-16
           ExpressCard 34
                2.5Gbps full-duplex
           Virtex-5 LX50
           32MB SRAM
           External ExpressCard Chip




    ClubHACK 2007                       2007 © The OpenCiphers Project
Hardware

     E-16 SuperCluster
           Up to 77 E-16's
           2 Quad-core Xeon's
           8GB of RAM
           6TB HDD Space



             Equivalent computing
             power of ~400,000 CPUs
             for cracking A5/1




    ClubHACK 2007                     2007 © The OpenCiphers Project
Conclusion

     Get an FPGA and start cracking!
     Make use if your hardware to break crypto
     <64-bit just doesn't cut it anymore
     Choose bad passwords (please!)




ClubHACK 2007                         2007 © The OpenCiphers Project
Thanks

     Aaron Peterson (wicrawl)
     The Church of WiFi (CoWPAtty)
     Jacob Appelbaum & Ralf-Philip Weinmann
      (FileVault)
     Thierry Zoller & Eric Sesterhenn (BTCrack)
     Steve, Josh, & The Hacker's Choice Cr3w
      (A5 Cracking Project)
     The Shmoo Group (bittorrent seeding)
     Viewers like you

ClubHACK 2007                          2007 © The OpenCiphers Project
Questions?

     David Hulton
         david@toorcon.org
         http://openciphers.sf.net
         http://www.picocomputing.com
         http://www.toorcon.org




ClubHACK 2007                            2007 © The OpenCiphers Project

Mais conteúdo relacionado

Mais procurados

CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicatornpsg
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchJim St. Leger
 
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Later
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Laterjohn-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Later
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types LaterPositive Hack Days
 
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...Michelle Holley
 
NetBSD syslogd with IETF Syslog Protocols
NetBSD syslogd with IETF Syslog ProtocolsNetBSD syslogd with IETF Syslog Protocols
NetBSD syslogd with IETF Syslog ProtocolsMartin Schütte
 
SmartCore System for Dependable Many-core Processor with Multifunction Router...
SmartCore System for Dependable Many-core Processor with Multifunction Router...SmartCore System for Dependable Many-core Processor with Multifunction Router...
SmartCore System for Dependable Many-core Processor with Multifunction Router...Shinya Takamaeda-Y
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaJim St. Leger
 
Short Introduction to IPv6
Short Introduction to IPv6Short Introduction to IPv6
Short Introduction to IPv6Martin Schütte
 
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel ArchitectureDPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel ArchitectureJim St. Leger
 
DPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollDPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollJim St. Leger
 
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)Martin Schütte
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Grayharryvanhaaren
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...ESUG
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvIntel
 
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...CODE BLUE
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKMaxime Coquelin
 
Chapter 22 : network address translation for IPv4
Chapter 22 : network address translation for IPv4Chapter 22 : network address translation for IPv4
Chapter 22 : network address translation for IPv4teknetir
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)Motonori Shindo
 

Mais procurados (19)

CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicator
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
 
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Later
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Laterjohn-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Later
john-devkit: 100 типов хешей спустя / john-devkit: 100 Hash Types Later
 
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
 
NetBSD syslogd with IETF Syslog Protocols
NetBSD syslogd with IETF Syslog ProtocolsNetBSD syslogd with IETF Syslog Protocols
NetBSD syslogd with IETF Syslog Protocols
 
SmartCore System for Dependable Many-core Processor with Multifunction Router...
SmartCore System for Dependable Many-core Processor with Multifunction Router...SmartCore System for Dependable Many-core Processor with Multifunction Router...
SmartCore System for Dependable Many-core Processor with Multifunction Router...
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
Short Introduction to IPv6
Short Introduction to IPv6Short Introduction to IPv6
Short Introduction to IPv6
 
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel ArchitectureDPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
 
DPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollDPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'Driscoll
 
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)
The IPv6 Snort Plugin (at Troopers 14 IPv6 Security Summit)
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
 
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...
[CB20] Reverse Engineering archeology : Reverse engineering multiple devices ...
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDK
 
Chapter 22 : network address translation for IPv4
Chapter 22 : network address translation for IPv4Chapter 22 : network address translation for IPv4
Chapter 22 : network address translation for IPv4
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
 

Destaque

consejos para la realizacion de una mamografia
consejos para la realizacion de una mamografiaconsejos para la realizacion de una mamografia
consejos para la realizacion de una mamografiaClínica Internacional
 
Cole Collective, Ghana, Company Profile
Cole Collective, Ghana, Company ProfileCole Collective, Ghana, Company Profile
Cole Collective, Ghana, Company ProfileDavid Coleman
 
I'll Show You Mine If You Show Me Yours...
I'll Show You Mine If You Show Me Yours...I'll Show You Mine If You Show Me Yours...
I'll Show You Mine If You Show Me Yours...Neil Crosby
 
Final_Report_Rohit-Neha
Final_Report_Rohit-NehaFinal_Report_Rohit-Neha
Final_Report_Rohit-Nehaneha agarwal
 
Murillo juliomayo
Murillo juliomayoMurillo juliomayo
Murillo juliomayofjgn1972
 
Pub bar room 82
Pub bar room 82 Pub bar room 82
Pub bar room 82 AlexiaVS
 

Destaque (9)

Plan de tranzactionare
Plan de tranzactionarePlan de tranzactionare
Plan de tranzactionare
 
consejos para la realizacion de una mamografia
consejos para la realizacion de una mamografiaconsejos para la realizacion de una mamografia
consejos para la realizacion de una mamografia
 
Cole Collective, Ghana, Company Profile
Cole Collective, Ghana, Company ProfileCole Collective, Ghana, Company Profile
Cole Collective, Ghana, Company Profile
 
I'll Show You Mine If You Show Me Yours...
I'll Show You Mine If You Show Me Yours...I'll Show You Mine If You Show Me Yours...
I'll Show You Mine If You Show Me Yours...
 
From Sieve to Silver
From Sieve to SilverFrom Sieve to Silver
From Sieve to Silver
 
Final_Report_Rohit-Neha
Final_Report_Rohit-NehaFinal_Report_Rohit-Neha
Final_Report_Rohit-Neha
 
Murillo juliomayo
Murillo juliomayoMurillo juliomayo
Murillo juliomayo
 
Pub bar room 82
Pub bar room 82 Pub bar room 82
Pub bar room 82
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 

Semelhante a David - Fpga - ClubHack2007

Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersAlexandre Moneger
 
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteSREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteHostedGraphite
 
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonicsTrack F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonicschiportal
 
AlgorithmStatus2005FEB
AlgorithmStatus2005FEBAlgorithmStatus2005FEB
AlgorithmStatus2005FEBBo Lin
 
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...mjaganm
 
The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)Martin Schütte
 
Resume_DigitalIC_1
Resume_DigitalIC_1Resume_DigitalIC_1
Resume_DigitalIC_1Eunice Chen
 
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584]
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584] Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584]
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584] David Buck
 
Crypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsCrypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsHannes Tschofenig
 
Ccna prep ip subnetting from networkers
Ccna prep  ip subnetting from networkersCcna prep  ip subnetting from networkers
Ccna prep ip subnetting from networkersJerome Luison
 
2014/09/02 Cisco UCS HPC @ ANL
2014/09/02 Cisco UCS HPC @ ANL2014/09/02 Cisco UCS HPC @ ANL
2014/09/02 Cisco UCS HPC @ ANLdgoodell
 
What is SDN and how to approach it with Python
What is SDN and how to approach it with PythonWhat is SDN and how to approach it with Python
What is SDN and how to approach it with PythonJustin Park
 
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)Kentaro Ebisawa
 
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728jieun kim
 
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHz
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHzRedes de Comunicação Sem Fio Sub-GHz e 2.4GHz
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHzandrerasminio
 
Cryptography and encryption and security network
Cryptography and encryption and security networkCryptography and encryption and security network
Cryptography and encryption and security networkNirajKumar620142
 
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDY
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDYINTERNET OF THINGS DEFINITION APPLICATION CASE STUDY
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDYimman gwu
 

Semelhante a David - Fpga - ClubHack2007 (20)

David-FPGA
David-FPGADavid-FPGA
David-FPGA
 
seminar
seminarseminar
seminar
 
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
 
Next Stop, Android
Next Stop, AndroidNext Stop, Android
Next Stop, Android
 
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteSREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
 
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonicsTrack F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonics
 
AlgorithmStatus2005FEB
AlgorithmStatus2005FEBAlgorithmStatus2005FEB
AlgorithmStatus2005FEB
 
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
 
The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)
 
Resume_DigitalIC_1
Resume_DigitalIC_1Resume_DigitalIC_1
Resume_DigitalIC_1
 
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584]
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584] Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584]
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584]
 
Crypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsCrypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M Processors
 
Ccna prep ip subnetting from networkers
Ccna prep  ip subnetting from networkersCcna prep  ip subnetting from networkers
Ccna prep ip subnetting from networkers
 
2014/09/02 Cisco UCS HPC @ ANL
2014/09/02 Cisco UCS HPC @ ANL2014/09/02 Cisco UCS HPC @ ANL
2014/09/02 Cisco UCS HPC @ ANL
 
What is SDN and how to approach it with Python
What is SDN and how to approach it with PythonWhat is SDN and how to approach it with Python
What is SDN and how to approach it with Python
 
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
 
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
 
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHz
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHzRedes de Comunicação Sem Fio Sub-GHz e 2.4GHz
Redes de Comunicação Sem Fio Sub-GHz e 2.4GHz
 
Cryptography and encryption and security network
Cryptography and encryption and security networkCryptography and encryption and security network
Cryptography and encryption and security network
 
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDY
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDYINTERNET OF THINGS DEFINITION APPLICATION CASE STUDY
INTERNET OF THINGS DEFINITION APPLICATION CASE STUDY
 

Mais de ClubHack

India legal 31 october 2014
India legal 31 october 2014India legal 31 october 2014
India legal 31 october 2014ClubHack
 
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ Bangalore
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ BangaloreCyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ Bangalore
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ BangaloreClubHack
 
Cyber Insurance
Cyber InsuranceCyber Insurance
Cyber InsuranceClubHack
 
Summarising Snowden and Snowden as internal threat
Summarising Snowden and Snowden as internal threatSummarising Snowden and Snowden as internal threat
Summarising Snowden and Snowden as internal threatClubHack
 
Fatcat Automatic Web SQL Injector by Sandeep Kamble
Fatcat Automatic Web SQL Injector by Sandeep KambleFatcat Automatic Web SQL Injector by Sandeep Kamble
Fatcat Automatic Web SQL Injector by Sandeep KambleClubHack
 
The Difference Between the Reality and Feeling of Security by Thomas Kurian
The Difference Between the Reality and Feeling of Security by Thomas KurianThe Difference Between the Reality and Feeling of Security by Thomas Kurian
The Difference Between the Reality and Feeling of Security by Thomas KurianClubHack
 
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...ClubHack
 
Smart Grid Security by Falgun Rathod
Smart Grid Security by Falgun RathodSmart Grid Security by Falgun Rathod
Smart Grid Security by Falgun RathodClubHack
 
Legal Nuances to the Cloud by Ritambhara Agrawal
Legal Nuances to the Cloud by Ritambhara AgrawalLegal Nuances to the Cloud by Ritambhara Agrawal
Legal Nuances to the Cloud by Ritambhara AgrawalClubHack
 
Infrastructure Security by Sivamurthy Hiremath
Infrastructure Security by Sivamurthy HiremathInfrastructure Security by Sivamurthy Hiremath
Infrastructure Security by Sivamurthy HiremathClubHack
 
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar Kuppan
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar KuppanHybrid Analyzer for Web Application Security (HAWAS) by Lavakumar Kuppan
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar KuppanClubHack
 
Hacking and Securing iOS Applications by Satish Bomisstty
Hacking and Securing iOS Applications by Satish BomissttyHacking and Securing iOS Applications by Satish Bomisstty
Hacking and Securing iOS Applications by Satish BomissttyClubHack
 
Critical Infrastructure Security by Subodh Belgi
Critical Infrastructure Security by Subodh BelgiCritical Infrastructure Security by Subodh Belgi
Critical Infrastructure Security by Subodh BelgiClubHack
 
Content Type Attack Dark Hole in the Secure Environment by Raman Gupta
Content Type Attack Dark Hole in the Secure Environment by Raman GuptaContent Type Attack Dark Hole in the Secure Environment by Raman Gupta
Content Type Attack Dark Hole in the Secure Environment by Raman GuptaClubHack
 
XSS Shell by Vandan Joshi
XSS Shell by Vandan JoshiXSS Shell by Vandan Joshi
XSS Shell by Vandan JoshiClubHack
 
Clubhack Magazine Issue February 2012
Clubhack Magazine Issue  February 2012Clubhack Magazine Issue  February 2012
Clubhack Magazine Issue February 2012ClubHack
 
ClubHack Magazine issue 26 March 2012
ClubHack Magazine issue 26 March 2012ClubHack Magazine issue 26 March 2012
ClubHack Magazine issue 26 March 2012ClubHack
 
ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012ClubHack
 
ClubHack Magazine Issue May 2012
ClubHack Magazine Issue May 2012ClubHack Magazine Issue May 2012
ClubHack Magazine Issue May 2012ClubHack
 
ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack
 

Mais de ClubHack (20)

India legal 31 october 2014
India legal 31 october 2014India legal 31 october 2014
India legal 31 october 2014
 
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ Bangalore
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ BangaloreCyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ Bangalore
Cyberlaw by Mr. Pavan Duggal at ClubHack Infosec KeyNote @ Bangalore
 
Cyber Insurance
Cyber InsuranceCyber Insurance
Cyber Insurance
 
Summarising Snowden and Snowden as internal threat
Summarising Snowden and Snowden as internal threatSummarising Snowden and Snowden as internal threat
Summarising Snowden and Snowden as internal threat
 
Fatcat Automatic Web SQL Injector by Sandeep Kamble
Fatcat Automatic Web SQL Injector by Sandeep KambleFatcat Automatic Web SQL Injector by Sandeep Kamble
Fatcat Automatic Web SQL Injector by Sandeep Kamble
 
The Difference Between the Reality and Feeling of Security by Thomas Kurian
The Difference Between the Reality and Feeling of Security by Thomas KurianThe Difference Between the Reality and Feeling of Security by Thomas Kurian
The Difference Between the Reality and Feeling of Security by Thomas Kurian
 
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...
Stand Close to Me & You're pwned! Owning Smart Phones using NFC by Aditya Gup...
 
Smart Grid Security by Falgun Rathod
Smart Grid Security by Falgun RathodSmart Grid Security by Falgun Rathod
Smart Grid Security by Falgun Rathod
 
Legal Nuances to the Cloud by Ritambhara Agrawal
Legal Nuances to the Cloud by Ritambhara AgrawalLegal Nuances to the Cloud by Ritambhara Agrawal
Legal Nuances to the Cloud by Ritambhara Agrawal
 
Infrastructure Security by Sivamurthy Hiremath
Infrastructure Security by Sivamurthy HiremathInfrastructure Security by Sivamurthy Hiremath
Infrastructure Security by Sivamurthy Hiremath
 
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar Kuppan
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar KuppanHybrid Analyzer for Web Application Security (HAWAS) by Lavakumar Kuppan
Hybrid Analyzer for Web Application Security (HAWAS) by Lavakumar Kuppan
 
Hacking and Securing iOS Applications by Satish Bomisstty
Hacking and Securing iOS Applications by Satish BomissttyHacking and Securing iOS Applications by Satish Bomisstty
Hacking and Securing iOS Applications by Satish Bomisstty
 
Critical Infrastructure Security by Subodh Belgi
Critical Infrastructure Security by Subodh BelgiCritical Infrastructure Security by Subodh Belgi
Critical Infrastructure Security by Subodh Belgi
 
Content Type Attack Dark Hole in the Secure Environment by Raman Gupta
Content Type Attack Dark Hole in the Secure Environment by Raman GuptaContent Type Attack Dark Hole in the Secure Environment by Raman Gupta
Content Type Attack Dark Hole in the Secure Environment by Raman Gupta
 
XSS Shell by Vandan Joshi
XSS Shell by Vandan JoshiXSS Shell by Vandan Joshi
XSS Shell by Vandan Joshi
 
Clubhack Magazine Issue February 2012
Clubhack Magazine Issue  February 2012Clubhack Magazine Issue  February 2012
Clubhack Magazine Issue February 2012
 
ClubHack Magazine issue 26 March 2012
ClubHack Magazine issue 26 March 2012ClubHack Magazine issue 26 March 2012
ClubHack Magazine issue 26 March 2012
 
ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012
 
ClubHack Magazine Issue May 2012
ClubHack Magazine Issue May 2012ClubHack Magazine Issue May 2012
ClubHack Magazine Issue May 2012
 
ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack Magazine – December 2011
ClubHack Magazine – December 2011
 

Último

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Último (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

David - Fpga - ClubHack2007

  • 1. Faster P wninG A ssured: New Adventures with FPGAs ClubHACK 2007 David Hulton <david@ toorcon.org> Chairman, ToorCon Director Security Applications, Pico Computing, Inc. Researcher, The OpenCiphers Project Midnight Research Labs The Church of W iFi The Hacker's Choice
  • 2. Overview  FPGAs – Quick Intro  New to 2007! (Since Last Defcon)  CoWPAtty – WPA Cracking  VileFault – Mac OS-X FileVault  New Cracking Tools! (Since ShmooCon)  BTCrack – Bluetooth Authentication  WinZipCrack – WinZip AES Encryption  The A5 Cracking Project – GSM Encryption  Conclusions ClubHACK 2007 2007 © The OpenCiphers Project
  • 3. FPGAs ClubHACK 2007 2007 © The OpenCiphers Project
  • 4. FPGAs ClubHACK 2007 2007 © The OpenCiphers Project
  • 5. FPGAs  Quick Intro  Chip with a ton of general purpose logic  ANDs, ORs, XORs  FlipFlops (Registers)  BlockRAM (Cache)  DSP48’s (ALUs)  DCMs (Clock Multipliers) ClubHACK 2007 2007 © The OpenCiphers Project
  • 6. FPGAs  Virtex-4 LX25 ClubHACK 2007 2007 © The OpenCiphers Project
  • 7. FPGAs  Virtex-4 LX25  IOBs (448) ClubHACK 2007 2007 © The OpenCiphers Project
  • 8. FPGAs  Virtex-4 LX25  IOBs  Slices (10,752) ClubHACK 2007 2007 © The OpenCiphers Project
  • 9. FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs (8) ClubHACK 2007 2007 © The OpenCiphers Project
  • 10. FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs (72) ClubHACK 2007 2007 © The OpenCiphers Project
  • 11. FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs  DSP48s (48) ClubHACK 2007 2007 © The OpenCiphers Project
  • 12. FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs  DSP48s  Programmable Routing Matrix (~18 layers) ClubHACK 2007 2007 © The OpenCiphers Project
  • 13. Introduction to WPA  WiFi Protected Access ClubHACK 2007 2007 © The OpenCiphers Project
  • 14. Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK ClubHACK 2007 2007 © The OpenCiphers Project
  • 15. Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK ClubHACK 2007 2007 © The OpenCiphers Project
  • 16. Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK ClubHACK 2007 2007 © The OpenCiphers Project
  • 17. Introduction to WPA  For every possible PMK compute PTK and see if it matches the handshake captured on the network ClubHACK 2007 2007 © The OpenCiphers Project
  • 18. FPGA coWPAtty  Uses 8 SHA-1 Cores  Uses BlockRAM to buffer the words fed to the cores  As long as the machine is able to supply words fast enough, the SHA-1 cores will be utilized fully ClubHACK 2007 2007 © The OpenCiphers Project
  • 19. Performance Comparison PC FPG A Cowpatty Cowpatty 800MHz P3 ~25/sec LX25 ~430/sec 3.6GHz P4 ~60/sec 1 5 Cluster ~6,500/sec AMD Opteron ~70/sec LX50 ~650/sec 2.16GHz IntelDuo ~70/sec Aircrack 3.6GHz P4 ~100/sec ClubHACK 2007 2007 © The OpenCiphers Project
  • 20. Results  Decided to compute hash tables for a 1,000,000 passphrase wordlist for the top 1,000 SSIDs “That million word list that I fed you incorporated a 430,000 word list from Mark Burnett and Kevin Mitnick (of all people) and was made up of actual harvested passwords acquired through some google hacking. They are passwords that people have actually used. I padded it out to 1 million by adding things like websters dictionary, and other such lists, and then stripped the short word (<8 chars.) out of it.” ClubHACK 2007 2007 © The OpenCiphers Project
  • 21. Results  Finally have the 40GB WPA tables on the tubes  Thanks Shmoo! (3ricJ & Holt!)  Check the Torrent trackers for seeds  CoWPAtty FPGA support has recently been added to wicrawl ClubHACK 2007 2007 © The OpenCiphers Project
  • 22. Demo
  • 23. Bluetooth PIN Cracking  Pairing bluetooth devices is similar to wifi authentication  Why not crack the bluetooth PIN?  Uses a modified version of SAFER+  SAFER+ inherently runs much faster in hardware  Attack originally explained and published by Yaniv Shaked and Avishai Wool  Thierry Zoller originally demonstrated his implementation at hack.lu ClubHACK 2007 2007 © The OpenCiphers Project
  • 24. Bluetooth PIN Cracking  How it works  Capture a bluetooth authentication (sorry, requires an expensive protocol analyzer)  This is what you'll see Master Slave in_rand master sends a random nonce m_comb_key s_comb_key sides create key based on the pin m_au_rand master sends random number s_res slave hashes with E1 and replies s_au_rand slave sends random number m_sres master hashes with E1 and replies ClubHACK 2007 2007 © The OpenCiphers Project
  • 25. Bluetooth PIN Cracking  Just try a PIN and if the hashes match the capture, it is correct  Extremely small keyspace since most devices just use numeric PINs (1016)  My implementation is command line and should work on all systems with or without FPGA(s) ClubHACK 2007 2007 © The OpenCiphers Project
  • 26. Bluetooth PIN Cracking  FPGA Implementation  Requires implementations of E21, E22, and E1 which all rely on SAFER+  Uses 16-stage pipeline version of SAFER+ which feeds back into itsself after each stage  To explain, here's some psuedocode ClubHACK 2007 2007 © The OpenCiphers Project
  • 27. Bluetooth PIN Cracking for(pin = 0; ; pin++) { Kinit = E22(pin, s_bd_addr, in_rand); // determine initialization key m_comb_key ^= Kinit; // decrypt comb_keys s_comb_key ^= Kinit; m_lk = E21(m_comb_key, m_bd_addr); // determine link key s_lk = E21(s_comb_key, s_bd_addr); lk = m_lk ^ s_lk; m_sres_t = E1(lk, s_au_rand, m_bd_addr); // verify authentication s_sres_t = E1(lk, m_au_rand, s_bd_addr); if(m_sres_t == m_sres && s_sres_t == s_sres) found! } ClubHACK 2007 2007 © The OpenCiphers Project
  • 28. Bluetooth PIN Cracking for(pin = 0; ; pin++) { Kinit = E22(pin, s_bd_addr, in_rand); // determine initialization key m_comb_key ^= Kinit; // decrypt comb_keys s_comb_key ^= Kinit; m_lk = E21(m_comb_key, m_bd_addr); // determine link key s_lk = E21(s_comb_key, s_bd_addr); lk = m_lk ^ s_lk; m_sres_t = E1(lk, s_au_rand, m_bd_addr); // verify authentication s_sres_t = E1(lk, m_au_rand, s_bd_addr); if(m_sres_t == m_sres && s_sres_t == s_sres) found! } ClubHACK 2007 2007 © The OpenCiphers Project
  • 29. Bluetooth PIN Cracking E22 16 PINs PIN Gen SAFER+ ClubHACK 2007 2007 © The OpenCiphers Project
  • 30. Bluetooth PIN Cracking E21 16 clock cycles later PIN Gen SAFER+ Output loops back and SAFER+ now does E21 for the Master ClubHACK 2007 2007 © The OpenCiphers Project
  • 31. Bluetooth PIN Cracking E21 16 clock cycles later PIN Gen SAFER+ Then does the second E21 for the Slave and combines the keys to create the link key ClubHACK 2007 2007 © The OpenCiphers Project
  • 32. Bluetooth PIN Cracking E1 16 clock cycles later PIN Gen SAFER+ Then the first part of E1 for the Slave ClubHACK 2007 2007 © The OpenCiphers Project
  • 33. Bluetooth PIN Cracking E1 16 clock cycles later PIN Gen SAFER+ Then the second part of E1 for the Slave ClubHACK 2007 2007 © The OpenCiphers Project
  • 34. Bluetooth PIN Cracking E1 16 clock cycles later PIN Gen SAFER+ Then the first part of E1 for the Master ClubHACK 2007 2007 © The OpenCiphers Project
  • 35. Bluetooth PIN Cracking E1 16 clock cycles later PIN Gen SAFER+ Then the second part of E1 for the Master ClubHACK 2007 2007 © The OpenCiphers Project
  • 36. Bluetooth PIN Cracking E22 16 clock cycles later PIN Gen SAFER+ SRES Compare N Y Stop Then checks all of the sres values to see if any match while the process starts over ClubHACK 2007 2007 © The OpenCiphers Project
  • 37. Bluetooth PIN Cracking  If the cracker stops the computer reads back the last generated PIN from the pin generator to determine what the valid PIN was  The last generated PIN – 16 should be the cracked PIN  I built a commandline version  Thierry Zoller integrated support into BTCrack  I added some hollywood FX ! ClubHACK 2007 2007 © The OpenCiphers Project
  • 38. Performance Comparison PC FPGA btpincrack btpincrack 3.6GHz P4 ~40,000/sec LX25 ~7,000,000/sec 15 Cluster ~105,000,000/sec BTCrack LX50 ~10,000,000/sec 3.6GHz P4 ~100,000/sec 0.24 secs to crack 4 digit 0.001 secs to crack 4 digit 42 min to crack 8 digit 10 secs to crack 8 digit ClubHACK 2007 2007 © The OpenCiphers Project
  • 39. Demo
  • 40. WinZip AES Encryption  Somewhat proprietary standard  No open source code available (until now!)  Format  Uses the standard ZIP format  Adds a new compression type (99)  Uses PBKDF2 (1000 iterations) for key derivation  Individual files can be encrypted inside the ZIP file  Supports 128/192/256-bit key lengths  Uses a 16-bit verification value to verify passwords  Otherwise you verify by using the checksum  Uses a salt (sorry, can't do a dictionary attack!) ClubHACK 2007 2007 © The OpenCiphers Project
  • 41. WinZip AES Encryption  Cracking algorithm  Scan through ZIP file until you find the encrypted file  Get the 16-bit password verification value  Hash a password with PBKDF2 and see if the verification value matches  No – Try next password  Yes – Decrypt file and see if checksum matches  No – Try next password  Yes – Password found! ClubHACK 2007 2007 © The OpenCiphers Project
  • 42. WinZip AES Encryption  Uses the same PBKDF2 core as the WPA and FileVault cracking code  Requires extra iterations for longer key lengths  Tool takes a ZIP file, encrypted file name, and dictionary file as input ClubHACK 2007 2007 © The OpenCiphers Project
  • 43. Performance Comparison PC FPGA winzipcrack winzipcrack 800MHz P3 ~100/sec LX25 ~2,000/sec 3.6GHz P4 ~180/sec LX50 ~6,000/sec AMD Opteron ~200/sec 15 Cluster ~30,000/sec 2.16GHz IntelDuo ~200/sec ClubHACK 2007 2007 © The OpenCiphers Project
  • 44. Demo
  • 45. VileFault  “FileVault secures your home directory by encrypting its entire contents using the Advanced Encryption Standard with 128- bit keys. This high-performance algorithm automatically encrypts and decrypts in real time, so you don’t even know it’s happening.” ClubHACK 2007 2007 © The OpenCiphers Project
  • 46. VileFault  We wanted to know what was happening ClubHACK 2007 2007 © The OpenCiphers Project
  • 47. VileFault  Stores the home directory in a DMG file  DMG is mounted when you login  hdi framework handles everything  Blocks get encrypted in 4kByte “chunks” AES- 128, CBC mode  Keys are encrypted (“wrapped”) in header of disk image  Wrapping of keys done using 3DES-EDE  Two different header formats (v1, v2)  Version 2 header: support for asymmetrically (RSA) encrypted header ClubHACK 2007 2007 © The OpenCiphers Project
  • 48. VileFault  Apple's FileVault  Uses PBKDF2 for the password hashing  Modified version of the WPA attack can be used to attack FileVault  Just modified the WPA core to 1000 iterations instead of 4096  Worked with Jacob Appelbaum & Ralf-Philip Weinmann to reverse engineer the FileVault format and encryption ClubHACK 2007 2007 © The OpenCiphers Project
  • 49. VileFault  Login password used to derive key for unwrapping  PBKDF2 (PKCS#5 v2.0), 1000 iterations  Crypto parts implemented in CDSA/CSSM  DiskImages has own AES implementation, pulls in SHA-1 from OpenSSL dylib  “Apple custom” key wrapping loosely according to RFC 2630 in Apple's CDSA provider (open source) ClubHACK 2007 2007 © The OpenCiphers Project
  • 50. VileFault  vfdecrypt (Ralf Philip-Weinmann & Jacob Appelbaum)  Will use the same method with a correct password to decrypt the DMG file and output an unencrypted DMG file  Result can be mounted on any system without a password  vfcrack (me!)  Unwrap the header  Use header to run PBKDF2 with possible passphrases  Use PBKDF2 hash to try and decrypt the AES key, if it doesn't work, try next passphrase  With the AES key decrypt the beginning of the DMG file and verify the first sector is correct (only needed with v2) ClubHACK 2007 2007 © The OpenCiphers Project
  • 51. VileFault  Other attacks  Swap  The key can get paged to disk (whoops!)  Encrypted swap isn't enabled by default  Hibernation  You can extract the FileVault key from a hibernation file  Ring-0 code can find the key in memory  Weakest Link  The password used for the FileVault image is the same as your login password  Salted SHA-1 is much faster to crack than PBKDF2 (1 iteration vs 1000)  The RSA key is easier to crack than PBKDF2 ClubHACK 2007 2007 © The OpenCiphers Project
  • 52. Performance Comparison PC FPGA vfcrack vfcrack 800MHz P3 ~100/sec LX25 ~2,000/sec 3.6GHz P4 ~180/sec LX50 ~6,000/sec AMD Opteron ~200/sec 15 Cluster ~30,000/sec 2.16GHz IntelDuo ~200/sec ClubHACK 2007 2007 © The OpenCiphers Project
  • 53. Demo
  • 54. The A5 Cracking Project  Capturing GSM Traffic  GNU Radio USRP board ($900 USD)  We developed software to decode GSM  Lets you fire up wireshark on a GSM channel  Can sometimes capture SMS messages  Couldn't capture voice calls :-(  We wanted to change that ClubHACK 2007 2007 © The OpenCiphers Project
  • 55. The A5 Cracking Project  Luckily you don't need to break crypto  India  IDEA - A5/0  AirTel - A5/0  Essar - A5/0  Orange - A5/0  Dolphin - A5/0 ClubHACK 2007 2007 © The OpenCiphers Project
  • 56. The A5 Cracking Project  Focusing on A5/1  Used widely throughout the US, Europe, and some Asian countries  The strongest algorithm for GSM (3G is better)  Looking at only practical attacks  Originally looked at ciphertext only attacks  Found out that there is a lot of known-plaintext  Known-plaintext attacks are a lot easier  Researched a few different attacks  Real-time attack with known-plaintext + FPGAs  Anderson & Roe / Keller + our mods  Pre-computation + less FPGAs  Biryukov, Shamir, & Wagner + our mods ClubHACK 2007 2007 © The OpenCiphers Project
  • 57. Real-time Attack  A register is clocked if it's clocking bit agrees with the majority ClubHACK 2007 2007 © The OpenCiphers Project
  • 58. Real-time Attack  First 64 clock cycles key is xor'ed with registers here ClubHACK 2007 2007 © The OpenCiphers Project
  • 59. Real-time Attack  Second, 22-bit frame number is xored in here ClubHACK 2007 2007 © The OpenCiphers Project
  • 60. Real-time Attack  Third, A5/1 is run for 100 clock cycles ClubHACK 2007 2007 © The OpenCiphers Project
  • 61. Real-time Attack  And then the output is xor'ed with the plaintext ClubHACK 2007 2007 © The OpenCiphers Project
  • 62. Real-time Attack  Using known-plaintext you can reduce the keyspace by brute forcing R1/R2 and calculating a matching R3 using the plaintext as parity ClubHACK 2007 2007 © The OpenCiphers Project
  • 63. Real-time Attack  Output bits are related to register bits ClubHACK 2007 2007 © The OpenCiphers Project
  • 64. Real-time Attack  Must essentially brute force the clock bits ClubHACK 2007 2007 © The OpenCiphers Project
  • 65. Real-time Attack  Certain clock bit possibilities can be initially ruled out by looking at registers that don't get clocked and output doesn't match ClubHACK 2007 2007 © The OpenCiphers Project
  • 66. Real-time Attack  After a while certain possibilities can be ruled out by clock bits not matching output ClubHACK 2007 2007 © The OpenCiphers Project
  • 67. Real-time Attack  And possibilities can be ruled out once the tap bits are computed and propagate up the registers ClubHACK 2007 2007 © The OpenCiphers Project
  • 68. Real-time Attack  With enough known-plaintext you will be able to resolve all possible R1/R2 down to a valid R3 ClubHACK 2007 2007 © The OpenCiphers Project
  • 69. Results  FPGA code requires around 6000 clock cycles for each R1/R2 state  100 cores at 100MHz will do 1.6M per sec  One FPGA will crack key in 15 days  100 FPGAs will crack in 3.6 hours  PCs will take a really long time (~2,000 times slower)  (code is free and available if you want to offload it to your botnet ;-) ClubHACK 2007 2007 © The OpenCiphers Project
  • 70. Real-time Attack  Once the internal state of A5/1 is derived you can reverse clock A5/1 back to the state after the key is mixed in ClubHACK 2007 2007 © The OpenCiphers Project
  • 71. Real-time Attack  To reverse A5/1 you calculate the only states for the clocking bits that are possible ClubHACK 2007 2007 © The OpenCiphers Project
  • 72. Real-time Attack  Eventually there are only a few possibilities left ClubHACK 2007 2007 © The OpenCiphers Project
  • 73. Real-time attack  This can be done quickly in software  Because there are multiple possible states you need multiple packets to locate the correct state  2 packets is enough, we happen to have 4  Calculate the possible initial states for 2 packets  Find the possible state that's common between the two ClubHACK 2007 2007 © The OpenCiphers Project
  • 74. Decrypting Packets  If you have the A5/1 state after the key is mixed in  It is the same as having the key  You can mix in any frame number and generate the proper A5/1 output to xor to any ciphertext or plaintext ClubHACK 2007 2007 © The OpenCiphers Project
  • 75. Pre-computation Attack  Reversing 64-bits of A5/1 output to 64-bits of A5/1 internal state  Essentially the same concept as a one-way function  Rainbowtables are good at reversing one-way functions  Decided to focus on building a table of 2^58  1/64 chance of finding the key with a given packet  We have 200 different 64-bit A5/1 outputs  Good chance that we'll find the key ClubHACK 2007 2007 © The OpenCiphers Project
  • 76. Pre-computation Attack  Time-space tradeoff basics  You have a one-way function in out ClubHACK 2007 2007 © The OpenCiphers Project
  • 77. Pre-computation Attack  Time-space tradeoff basics  You have a one-way function  You need to find the in that created an out in out ClubHACK 2007 2007 © The OpenCiphers Project
  • 78. Pre-computation Attack  Naïve implementation  Pre-computation  Compute and store all possible in/out's  Real-time  Search through table until you find your out, it's in is the key in out 0 8 1 2 2 5 3 1 ClubHACK 2007 2007 © The OpenCiphers Project
  • 79. Pre-computation Attack  Basic time-space tradeoff implementation  Pre-computation  Compute an in -> out, and then take the out and compute another out, etc. (using a “reduction function”)  Just store the start and end values of the chain in R(out) R(out) ... 0 8 1 2 2 5 3 1 ClubHACK 2007 2007 © The OpenCiphers Project
  • 80. Pre-computation Attack  Basic time-space tradeoff implementation  Real-time  To reverse a hash, you compute a chain for your out value and compare all out values with all of the end points in your table  When you find a matching one, compute a chain from it's start value  Your in will be right before your out in its chain My out R(out) R(out) ... ? ? ? ? 0 8 1 2 2 5 out 3 1 ClubHACK 2007 2007 © The OpenCiphers Project
  • 81. Pre-computation Attack  Problems with time-space tradeoff  Algorithms have collisions (especially when you're mapping output to input which have differing entropy)  Collisions cause chains to merge or loop  Different algorithms are used to mitigate this ClubHACK 2007 2007 © The OpenCiphers Project
  • 82. Pre-computation Attack  Different time-space tradeoff algorithms  Basic  Use a different reduction function for different tables  Increase the amount of tables you have depending on how collision prone your algorithm is  Distinguished Points  Instead of having all of your chains be the same length you stop when you see a certain pattern of bits  You can detect collisions and reject chains by looking for other chains that end in the same distinguished point  Rainbow  Use a different reduction function for each stage of the chain  Requires more real-time computation ClubHACK 2007 2007 © The OpenCiphers Project
  • 83. Pre-computation Attack  Distinguished Points  We first assumed that it wasn't very collision prone  Turned out we were wrong  Very efficient on FPGAs because it requires really low bandwidth and table lookups  Can be used to speed up the real-time lookup phase  Requires lots of tweaking to find the right parameters to provide the least number of collisions and loops ClubHACK 2007 2007 © The OpenCiphers Project
  • 84. Pre-computation Attack  Rainbow tables  Provides the best collision resistance  Requires a lot of real-time computation n(n+1)/2 * chain_length  The real-time computation can be done on an FPGA (not as well as DP attack)  Best attack parameters we could come up with  Requires 5TB of disk storage  Can reverse a key in 5 min with 1 FPGA  Multiple FPGAs can be used to parallelize cracking multiple keys  You can adjust table to use less storage and require more time ClubHACK 2007 2007 © The OpenCiphers Project
  • 85. Pre-computation Attack  Final Analysis  Talked to Elad Barkan  Distinguished Points was the best solution  Had to reduce chain length to provide the best collision/loop resistance (average length of 2^19)  Used a different reduction function for each table  Provides around 40% coverage (rainbow table provided only ~20%)  Still deciding on the best parameters for the tables ClubHACK 2007 2007 © The OpenCiphers Project
  • 86. Pre-computation Attack  Limiting factor right now is pre-computation  Computing 2^58 requires ~ 100 FPGAs running for 2 months (6,000 times slower on PCs)  We have a cluster of 70 FPGAs ready to start computing  Once the parameters are finalized we'll be able to compute a full table in ~3 months  Will be the largest rainbowtable ever built  Typical Lanman rainbowtables cover 2^36 at most  This will be 4 million times larger  Resulting table will be 2TB ClubHACK 2007 2007 © The OpenCiphers Project
  • 87. Real-time Attack  Result  Because of hard drive access time it will need to be spread across multiple hard drives  6 hard drives and 1 FPGA will crack a conversation in ~30 min  Double the hard drives and FPGAs to halve the time  32 FPGAs and a network of 200 PCs will crack a conversation in < 1 minute ClubHACK 2007 2007 © The OpenCiphers Project
  • 88. FPGA Implementation  Implementation  Implemented A5/1 as a 64-stage pipeline  Much more efficient than state-machines  Get 1 A5/1 per clock cycle  Output is looped back into the input (after reduction function is applied) until the last 19 bits are 0  Results are written to BlockRAM which is polled by the PC  Each core runs at 200MHz and 5 cores fit on an LX50  Total A5/1's/sec is 200,000,000 * 5 = 1,000,000,000  Single CPU does around 150,000/sec ClubHACK 2007 2007 © The OpenCiphers Project
  • 89. Demo
  • 90. The A5 Cracking Project  Currently building 2TB table  Will eventually build the 28TB table  If you want to help, check out wiki.thc.org/gsm ClubHACK 2007 2007 © The OpenCiphers Project
  • 91. Hardware  Pico E-16  ExpressCard 34  2.5Gbps full-duplex  Virtex-5 LX50  32MB SRAM  External ExpressCard Chip ClubHACK 2007 2007 © The OpenCiphers Project
  • 92. Hardware  E-16 SuperCluster  Up to 77 E-16's  2 Quad-core Xeon's  8GB of RAM  6TB HDD Space Equivalent computing power of ~400,000 CPUs for cracking A5/1 ClubHACK 2007 2007 © The OpenCiphers Project
  • 93. Conclusion  Get an FPGA and start cracking!  Make use if your hardware to break crypto  <64-bit just doesn't cut it anymore  Choose bad passwords (please!) ClubHACK 2007 2007 © The OpenCiphers Project
  • 94. Thanks  Aaron Peterson (wicrawl)  The Church of WiFi (CoWPAtty)  Jacob Appelbaum & Ralf-Philip Weinmann (FileVault)  Thierry Zoller & Eric Sesterhenn (BTCrack)  Steve, Josh, & The Hacker's Choice Cr3w (A5 Cracking Project)  The Shmoo Group (bittorrent seeding)  Viewers like you ClubHACK 2007 2007 © The OpenCiphers Project
  • 95. Questions?  David Hulton  david@toorcon.org  http://openciphers.sf.net  http://www.picocomputing.com  http://www.toorcon.org ClubHACK 2007 2007 © The OpenCiphers Project