Hackable Security Modules Reversing and exploiting a FIPS 140-2 lvl 3 HSM firmware

Video thumbnail (Frame 0) Video thumbnail (Frame 1821) Video thumbnail (Frame 5166) Video thumbnail (Frame 19019) Video thumbnail (Frame 32872) Video thumbnail (Frame 46725) Video thumbnail (Frame 53058) Video thumbnail (Frame 54339) Video thumbnail (Frame 60879)
Video in TIB AV-Portal: Hackable Security Modules Reversing and exploiting a FIPS 140-2 lvl 3 HSM firmware

Formal Metadata

Hackable Security Modules Reversing and exploiting a FIPS 140-2 lvl 3 HSM firmware
Title of Series
Part Number
Number of Parts
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Place

Content Metadata

Subject Area
From Web PKI and digital signatures to PCI-DSS and DNSSEC, a big part of the security industry currently depends on special cryptographic modules to implement cryptography, the so called Hardware Security Modules (HSMs). Every certificate used in the web has been signed by a key stored inside an HSM, and every time a DNSSEC query is being validated, the root keys generated by such an HSM are being used. In this presentation, the security of such a device, the Utimaco SecurityServer, will be evaluated. Inside the device, a Texas Instruments TMS320C64x DSP can be found which performs all operations. The TMS320C64x DSP is an exotic architecture compared to the classic x86, x86 64, ARM, MIPS and other common architectures, due to its unique features, such as the multiple functional units, each having its own assembly commands and the ability to execute multiple commands in parallel. This architecture, together with the ABI and a small introduction to the memory organization will be presented. The research will then mostly focus on the device’s firmware. Due to the inability of IDA pro to correctly disassemble the files, and the minimal number of tools for this architecture, the capstone disassembler has been extended and the TMS320C64x architecture has been added. Finally, a vulnerability to the HSM’s firmware will be presented, together with the methodology that was used in order to find the bug.
Module (mathematics) Loop (music) Computer animation Strategy game Computer science Website Computer font Information security Public key certificate Reverse engineering
Building Machine code State of matter Multiplication sign Sheaf (mathematics) Set (mathematics) Mereology Computer programming Dimensional analysis Optical disc drive Sign (mathematics) Mathematics Computer configuration Different (Kate Ryan album) Semiconductor memory Formal verification Encryption Bus (computing) Cuboid Software framework Endliche Modelltheorie Information security Position operator Descriptive statistics Physical system Algorithm File format Staff (military) Bit Price index Degree (graph theory) Type theory Proof theory Arithmetic mean Process (computing) Right angle Summierbarkeit Quicksort Sinc function Spacetime Game controller Functional (mathematics) Server (computing) Service (economics) Random number generation Computer file Process capability index Web browser BEEP Binary file Product (business) Hypothesis Number Revision control Latent heat Root Internet forum Operator (mathematics) String (computer science) Computer hardware Authorization Energy level Software testing Form (programming) Module (mathematics) Time zone Standard deviation Key (cryptography) Validity (statistics) Information Weight Surface Graph (mathematics) Plastikkarte Basis <Mathematik> Extreme programming Symbol table Computer animation Integrated development environment Software Statement (computer science) Limit set Free module Family Communications protocol Marginal distribution
Logical constant Thread (computing) Machine code Execution unit Inverse element Computer programming Software bug Mechanism design Different (Kate Ryan album) Cloning Descriptive statistics Social class Mapping Structural load Gradient Keyboard shortcut Constructor (object-oriented programming) Electronic mailing list Sound effect Staff (military) Bit Instance (computer science) Complete metric space Arithmetic mean Data storage device Summierbarkeit Quicksort Cycle (graph theory) Figurate number Reading (process) Spacetime Directed graph Point (geometry) Slide rule Beat (acoustics) Computer file Open source Letterpress printing Branch (computer science) Barrelled space Code Number Computer architecture Goodness of fit Term (mathematics) Computer hardware Energy level Representation (politics) Selectivity (electronic) Metropolitan area network Form (programming) Standard deviation Assembly language Interface (computing) Line (geometry) System call Symbol table Uniform resource locator Word Block diagram Integrated development environment Personal digital assistant Table (information) Disassembler Length State of matter Multiplication sign Sheaf (mathematics) Set (mathematics) Parameter (computer programming) Mereology Semiconductor memory Software framework Data conversion Programming language Binary decision diagram Email Flow separation Type theory Self-organization output Kurtosis Ocean current Functional (mathematics) Game controller Implementation Link (knot theory) Observational study Displacement Mapping Heat transfer Graph coloring Field (computer science) Power (physics) Twitter Operator (mathematics) Multiplication Inheritance (object-oriented programming) Cellular automaton Projective plane Axiom Sphere Computer animation
Functional (mathematics) Identifiability Machine code Key (cryptography) Military base Set (mathematics) Database Parameter (computer programming) Mereology Pointer (computer programming) Computer animation Personal digital assistant String (computer science) Website Monster group Logic gate Information security Metropolitan area network Buffer overflow Social class Physical system
Point (geometry) Slide rule Functional (mathematics) Presentation of a group Machine code Open source Multiplication sign View (database) Set (mathematics) Goodness of fit Programmschleife Core dump Selectivity (electronic) Area Email Key (cryptography) Sampling (statistics) Sound effect Cartesian coordinate system System call Microprocessor Process (computing) Loop (music) Computer animation Digital signal processor Thermal conductivity
Our and Al-Aam MMR Lemont moods and you are on the loop over here and there are a lot of poaching thousand strategy so
hello body uh them then talk about traversing the secured the modules so some things about me and my name is so for this local site will as assembled comb a CA for this non necessarily and gold and certificates article the bids the in computer science and my work focuses on CA security by of the someone lab in the reserves and some reverse engineering the outline of the talk we start with some boring stuff about letters and it's the same as the security requirements and then we'll move on to the more interesting stuff there migrate seminar target the film where the the Amistad and the 64 x the adding support cups so and finally finding parable liability so what is an
nexus and it's especially cryptographic module that implements the rapid algorithms methods and protocols you can orbital graphic PC can z keys generate the performance of the graphic operations like increase degree sign verify and then to the government most of them come in 2 forms he that the device or PCI card there are also some years BA 2 centers but they're not usable because players amount uh the boat safe uh Satan is famous for their luminosities of products as some of body for an exorcism 3rd decayed years dollars None of the players families who bought book that inside uh some of money for a USB at a certain 10 thousand dollars these are some of the products uh I just could break their PCI card with me convey that look it's a 7 yeah and the target with the Marco A. Michael uh is famous for the could pursue so could the services of products and they have a right to be below PKI solution using their it initiates B C is a very famous product for said not but uh CA some value for a negative it's same 15 thousand euros so as you can see it's a business with a lot of money where the user to sense PKI falsification authorities must use a 2 cents it's a acquirement by this given a foreign some browsers forum the NSA again if you read the that the intersex practice statement for the root zone right uh KSK operator or you need to use in its assent little intersections PCI DSS specifies that must use medicines for a certain amount of sections so don't implements a discrete all you need an a and
so as a systems are used in the critical get some says it before the other standards that have been proposed to evaluate the security dimension 1 set of features uh 1 for the best deal and the common criteria this on for the best of the full name is the federal information processing standard obligation 140 that's 2 and it's the US stuff the 1st person there was made at 2001 by these and then updated 2002 it's what everybody uses and it supersedes fits 1 for the best on and we this it superseded by there is a very famous sonnet story behind the efficient for the that's the 3 different graphs have been married than so far about none has been signed by the Secretary of Commerce it specifies serve for different security levels of the 1st level uh has has some requirements about the algorithms that are implemented in the 11th to what some peace and security controls level of their 3 has more secure that is the security controls level for is about to you the medicines that can be used in the fiscal a protected their environments there's a special program that cryptographic Module was validation program uh but uh that tended to laboratories that are accredited through uh make this type of validation for ITER sense the common criteria is denied by the summer the use staff and his the 1 muscles levels similar to the feature 1 4 and that's the elevens so there are also some other stuff like protection provides security targets uh the standard IEEE aloof for uh so that all later sense are methodical designed tested reviewed and the best suited Abraxis should be used during the design and testing I'm not sure so sure about this so let's see their Democritus said this some models of the model at December could the server that is not that important so specifications it's if it's on for the that bus to level of 3 device it also confuse their common criteria uh for augmented the it can be used for uh these used by the C a so because of the support for many algorithms gum symbol for the PCI Express card and the middle criticism and depending on the lessons you can get the more transactions per 2nd 0 this licensing is single take inside the framework and you can change at any time but you will have to fits a validated framework but the funny thing is that I canister you know CA users surf validated the thing worse because if it sees tool and our state with a 48 bit key is not a valid small so no CA uses surface when they did their fingers the hardware uh actually network into Samsara singly Linux boxes with at BCI expressed at the same side uh in the BCI expressed so uh it assumes is considered this onto that have birds bestseller free scholar protection layer uh there's about inside if you try to erase if about to breed so this thing over here the comments of the memory arrays uh even that when data since part of their sensors that detect changes in temperature involved doubts uh this is supposed to be the it is supposed to be a number of proof inside the it's a expressed status and we can find that the Amistad twenties C 64 x DSP and this is the this is performed so could about abrasives there's a true random number generator and there I could the security a pseudo number generator for and we have this year and on contains the space and the called the device the actually this is some something like a positive monitor everything is encrypted using this device the and the the device the cannot be extracted cannot be exported important you have no access to the sky a further you number with a basis on this if I ask it gets the needed so you lose everything there are also the master but that he's which are according to the specifications 256 Serbia uh ASQ sort 128 be to this thesis that's where this specifications and say is the money and further open-mindedness and of course to build this does not support 108 the indignities no idea when there'll told this stuff uh this muscle but he said used to encrypt the but capsule of the graphic keys they work using can 9 out of them unless he uh using some receipt and then staring and kisses that there's a similar are always engraved with a previously the by sky and the when you and export them the encryption using this must about that piece there are some things that come together with a they system there's command like command line to read so both the exact Prescott and then and there and command line tools so uh for a common over there begins 11 API and especially guy the CXI excite API and the odds of versions of them both tools and the some later on uh is its own free will and this would mean would uh as we will see later on this would be very useful there are some other stuff like he uses PrimeSense you're not going to sit this they're not that important at a Catalan cations probable an at network access and use a net regret systems use exactly the same probable not problems forgive some would just know that it's encrypted then use this mess of indication codes it and now I will move on to the topic of the model framework the film where is a single blow in my custom formats they're both the beeps and non Phipps versus versions so after reversing a lot of things uh figured out that you see a sudden that than that and that comes with the dataset and has an option Bonn but this files so 1st lesson learnt always read the funny money on yeah and other could this npkc you get that a number of embassy finds the search for some means there and this files from the latest thing where for the NCs series other this insofar as individual from where margins it's of limited set associated with the specifics for what their specific function for example you can see here this is for it and say so and this is for implementing their uh AES encryption and decryption of functional status and the Plum uh encoding and decoding and everything is in here so that's his main walk and we get this for copyright things and wanting sparse know whether users from the from months OK let's use the example so if you use it hits extended in C over here there's something that seems like a much extreme and the see here there may be there's also a description and later on consists 2 strings built text and build data that seem to be names of 6 sums so maybe it's a modified thunder from out and that's why I mean what people could couldn't find out whether these OK let's reverse that misstates including and c couldn't find bin infants the after some hours you would find these things
so this should be cofinanced but for widening been what word organize this someone filled it would be nice to other on such stuff inside the list on the core for much OK so now what we 1st identified the length of the 6 and here the we can find the difference between that the names of the sex cells and this should be the length of the section header within the District Court the standard uh call 1st Kidder the next step is to make a exactly the same thing but there for the call for the final hidden and finally we've got a fight so now what of course use either by the supposes that pixel we open the file and we get this thing Of course this is not the same you go the and now considered multi slides if a sponsor and part 2 uh some being you use uh staff on the Texas Instruments had uh disassembler but it is completely and usable and they also found some bugs and there's us and OK so let's stop by their own disassembly the own somebody must 1st study the architects of this be then study the memory organizations some studied maybe I find some potential framework so you can use and finally arrived at assembler the pixel vague so the picture compared to x 8 seats needs anything have as I have seen that means it's a very long as that of audience be it has 8 functional units the functional units are as something like means to use inside the this be uh functional unit has its own assembly terms going to execute multiple instructions in parallel at different functional units has to that parts sit with their separate register files and across but the transfer data between those 2 that of what's this is the block diagram of this this is the 1st the that above and this is the 2nd 1 is absence effects and that the this but the correct the function you need and the followed the find some units that it's that about it said that not functional unit which season you that that that's fine so you need to see if there there's also a multiplier and another a thoughtful and and there is the file with if fitted to fitted with racist and as a said before so this is the cross-product between man and that do that evolves 8 executes the units can execute up to 8 the commonsense pollen of course at a single dime only 1 compared command can use use the cross paths color this succeeded environment uh that this before it's it's uh not a single insights some but it's it's a towards uh missing defects spike at so this can be scheduled to be executed at different uh functional units and you can execute this sections in parallel that belong to two different the spike it's there it's there's there are 6 and 64 examples so it's there's all functions operate on a 16th at the door for the be data not 64 bit for it and for the beat operations 1 that's the from they even is the file is used and that the corresponding grades the from the old file is used for the uh take the beats so if you use this as the parents said the bits of it from a 10 and 8 bits from 8 11 there so instructions that operate them but they they're like this to see for example the and the the only such as that operate on 64 bit power loads and stores that are performed in a secular operations furthermore uh uh success there are successes under also conditional there is there's uh honest some sense this this been they conditional graphics and does insects inside secured only when the corresponding press there is either 0 or nonzero there's also there it's the control uh the Pisa control registers like the program counter In the update the clearest and upsets threads and a lot of stuff there some some blue sections this is inside some SIFT I will be executed at that this 1 the functional unit and society a 1 by 10 and supposes outplayed to this is another is that some that's executed at the same points on unit but it uses the cross stuff and this is the x over here because needs transfer from reads the file the threads of finally this such cells will be executing pollen this to what's over here means that they will be executed at the same cycle but that different functional units and this is an if then else in that a single set that would be exceeded missing citing if a 0 is equal to 0 then this command will be executed otherwise this command will be executed and all this is a figure in a single cycle but not such as oxygen in the air in at a single citing there are some of the 2nd sections that through this social presence at 1 cycle and writers out at different on for example branches branches read the example I did at cycle light and under this target at cycling i + 5 In the meantime decides that made sense is value make everything might have an there's a stable over here is not that important specifies the right cycles so it is still under way notice are available it's basic exotic at that's so I mean been difficult to make sort of this thing that's the memory I say some have a thing to do would be the uh by the sum other space and they can use the using the because durations either on the memory or off to memory if you use a nonstick memory have to separate the as space is about the space and the problem space uh if you use an act of tip memory then this a unified the but the external memory interface some calling conventions and knows that exists that is as we know it from X 6 6 the qualifying semi you need that calculate their they're not this by adding can the program counter to the relative offset of their dead mothers using a specialist in use some then add you store they to erase the B 3 and did some of the targets and finally to return you exam but through the 3 if the displacement is so lot of them attended the than the 1 what you must bear the link must generate some metabolites example the final location this is an example of a damn so you have the Bronx over here the target set that a 2nd 1 let's say this is executed cycle 3 the 2nd to visited a cycle 3 it slows but this sort this on over here is been if there people said I that's this to the program counter expose it to be 3 then this extended sections except executed the following do that oxygen pollen finally the 5th the instructions execute it and then the breadth Francis Bacon then that this is a return and over here so this is how you call a function there are collusive reds there's some special erase this as a set for B 3 keeps them but their numbers a you can pass so that the 1st then arguments there's so we know that it takes you know the memory layout we
know they the I know what who have heard some framework kurtosis good use BDD sort Olympian but this is too much work the news and then you set out to do which is about as and so is but I've found it much more attractive to implement new architecture that so perhaps some cups on as a baseline and M and its open-source read and QC uh it has bindings for many programming languages but unfortunately you can't find any the command based on on adding a new architecture so crowded with their but in this this clone the project to see how other architectures are implemented and 21 barrels the implement them at a at this we must there right that tables and find that it's and find and his description of the contextual and they can generate the experienced axioms sub targeting for finds this assembler tables so the Simula a writer using the space ln eventually but there's a lot of stuff that we need to implement to so let's 1st generate this file and you say about the rest the tables in the file from what insuffi complaining about gets sub targets procesos then Saturn states registers calling conventions but in our case we want made the call interventions afterwards after I think there is a simpler uh we want to and combine a sum we know that we don't need that such a selection but the low it's this to convert from my value to their final assembly and we want maybe there are many flights what who need the is there in a description of the it's there's and description of this large sums with the hardware encoding think about this there's no grounds and the the simplest thing this Koch and define the register we 1st define the it's the glass MS appendices 64 x that is a subclass of threat this number it's the class the specify the caliber encoding and we define instances of this class which that some races so this is pretty similar let's see how define sections with that we 1st have to define all operands then certain classes are among the glaciers and finally we defined the sections how do we define an operator we all know it's uh make a subclass of movement of with mechanisms of this class no ground last and you have to define and a decoder Mathilde encoder method and the print level what this method so do is and the decoded takes the traveler and the however then called the and converts it to and don't know as LEP emotivism based on the print methods takes this and that'll BMI representation and poverty the thing then called there is the inverse of the decoder now let's see how we define in Section glasses make sub from the foot of the bed in Section class and we 1st made the superclass common for all of the instructions we define the completion on uh a uh there is there 0 or remote beside it their insects and to get involved with the rest of the instructions must define and doubtable grants they include all grants over here uh all these are considered grants because Ms. no other way to describe them as a input to the decoder and you specify at with the it's there every up around there can be found at the size of this section and deserves some standard stuff then we define that uh some subclasses for every type of construction for example for instructions the 1st type of infections and their dope the functional units sphere this form of they have to social currents 1 this may some of around and the value of the place of the also Burnside's thought that this fields of this nation apparently this sort there uh the brazen stored and this leads and this is a constant this is another example of his also the cross profits for some sections that use across but like out there in the end the uh in such a multiclass essentially like something like them plates uh define and insects among when you have 2 or more such sums that are similar in this example look you have the 2 sides of the signal but the only difference is that this some uh has its own purpose it's the it's the 1st the social but on and this is if 5 bit unsigned constant and finally we define instructions the as you can see over here this is the instruction selection problem which is empty because with on the symbol and have the the sink Belper so this is uh the operation on and this defines this section so we must take the diversity and implement these think for all distractions from the foreign old-fashioned units so them based on done not even close when we need that to implement all the code for encoding decoding copper ions we need the implements section mappings we need to add a lot of supporting gold and would lead we need at least the Python bindings to start working on these and but the some hours not some hours some days had we found some I found some problems the 1st problem was that the converter there was not the standard will be a mom but different based on that produces C code instead of surrealist last uh Allenby aims at an insu + + capstone isn't in C. so I had to do converted the convert uh decoding of fulfills must be done manually whatever have the kind based on we can do it I instructions with facility but uh addressing must become especially it's pretty difficult you must the way people is the program counter make the correctly uh well it was called in-kind support for the circuit picture I found in several bites at other architectures that in the implementation of the selected by addressing the directly on the problem of the branches branches must be coming with care because there's not a relative the current fact some but the delay relative to the 1st is that some in spike at so you must get that a program counter find that a fixed fight it find the 1st section of the fits it and think that make the target others another problem is the polity as the so forward and and assembly put 2 bars 2 so that this is like some will be executing bottle with the previous on but this is not that they're encoded in the construction but it's encoded at the previous 2 sections so it's pretty difficult due to the wake up some Mandelbrot elegant books it had to be done using some post-processing that after under null these look at the December we could use so what can to do now you this disassemble everything but we have no symbols and you have thousands of lines of this trend assembly code but you can't even calculate clinic some some other delegations queried Willard 3rd there it's all form OK so let's take Medef inward we use exactly the same as used to extract that and all binary and this time it's of the 11 so we've got symbols can what can we do to correlate sink
references in both in worse the same things should be uh referenced by the same functions is pretty is the complete then we take out answers same functions should balance the same uh functions there's we refuse by and it would emit the cold and profit so can we actually profit we said that this fall that's are methodical tested the best the practices so use during design so bytes should not exist right so at least the same moon these identify bytes bytes should be eliminated let's see an example this is a function that these cues to extract the then became and that databases and then and then the cannot be extracted according to the documentation this is a security check 1st all instructions load that itself the string v K 1 to register a 5 uh 1 is obstructed slowly play for b for so it's it's a pointer to the database and the stink that's the name of that ways that we've gone blue old and all this is a part of the men compare not the flamenco back it so what this status if the 6 if this thing starts with the and became a 1 MB K or system of some sensitive bases that you can't extract you that this class an the common man opened the function is used to open the database after reversing this find some I found that uh that argument that the 1st item that this function is the name of the database for example see excite he built DB which can prefixed with that in the case of this set of a 6 I p . being exists in the class so we can use for last month last 6 Ikeda DB to extract the sediments so what if we extract from last month's less Savimbi gave note that the K 1 DB sometimes 1 this problem is not enough you can accept it then what about other bikes I OK all the code has the same quality and I'm absolutely so that there are more and more of logical layers and 100 % so and I haven't for buffer overflows gate I have some stronger evidence that buffer overflows exist something that's very and this think is their disclosure timeline I 1st started to come back to the Michael and the temple of monster 2016 I just wanted their PGP keys so or certificate because of confined domenica their website after 2 months I finally got the pitch he's still months next they send them the days and after 1 month I received the 1st of answer and after 4 months I got access to and that its assigned with that data for you so 1st led to collect them at marks and if Vick stated that Thumba and the final step over here well can
so who this should be a and you can loneliness so any
questions the of it and do the might the if I'm only who is how did you the body stuff how did you divided the stuff so I have
access to and Democritus and and I do that by this I mean I tested the cold and starting time hold stuff and the related to same because for me for my point of view it seems a very odd nasty they were means that BiIly you eat for what I mean for its mature enough for us and to call a function like how many selection seeks 7 account of something like that and see that thinking about the whole and you they are able to the bottle with the other so that is why and no clues exist it may find this slide good that's why this this is that sample is a set you have called let's like this and this is a simple example we divide this by sickout uh Gustav loop or something like this no way you can find out what's going on inside the everything at y and that is my my question why did he do agrees with this kind of stuff for only a job asked excess instruments the but we will recorded presentation the yeah I can comment on on this this initiative the thing is that this this be it's digital signal processor is supposed to to was at the a main purpose is not execute quota like functional code is just process data so is optimized for for loops for process senior areas of data and that's why it has long delay slots and stuff like that is optimized for for for person because of data does raise layers out yeah and then I'm male question yet and assume that you when you so this feature in the either widened and e-mail history support because otherwise we have him good going doc where you live were not implemented the capstone which is open source I guess they need you wanted to have some fun then maybe this is why the high the I mean from nice using the but the the hi thank you very much that was carried out in a 320 very often comes with 2 calls to warmer being us adjust the self and use 1 the can be an or by conduction she series hydrogen which is some kind of was a day that suggest that the US hide more applications entry processor could be on the same die uh as far as I know this status and comes so only with uh this the just this doesn't have an iron core anything goes yeah now on the yeah the hi just a quiz question did you minus the find of vigilance in liking that would allow you to find presence of keys or to notice how keys are stored inside the edge of some because that's the what the things that should be the effect of the some OK I can we discuss deceptive course yeah I have I think so a lot
of attention thank you