martin boßlet

software engineer / security consultant

personal

  1. 1980
  2. MSc Mathematics/CS
  3. Saarbrücken, Germany
  4. German

code

  1. emboss
  2. emboss
  3. krypt/krypt
  4. krypt/FuzzBert

education

  1. Universität des Saarlandes (2005-2006) German Literature/Mathematics/Computer Science
  2. TU Kaiserslautern (2000-2005) MSc Mathematics/Computer Science, Final Grade: 1.6
  3. Military Service (1999-2000)
  4. Helmholtz-Gymnasium Zweibrücken (1990-1999) Abitur, Final Grade: 1.0

professional experience

  1. Freelancer (since Oct 2012)

    Freelancer

    I am working as a freelance developer, consultant and trainer. Further infos here.

  2. krypt (since Nov 2011)

    Author / Maintainer

    krypt is my contribution in order to provide the next level of Ruby cryptography by providing a platform- and library-independent framework similar to Java’s JCE. It is designed as an all-purpose cryptography framework with a modular approach that allows to plug in various implementations of low-level cryptographic primitives in order to provide maximum efficiency, interoperability and security on all major Ruby platforms.

  3. Ruby (since Nov 2010)

    Core Team / Maintainer OpenSSL

    I am a member of the core development team of the Ruby language (“ruby-core”) and I’m the maintainer of the OpenSSL extension which is a part of the Ruby standard library.

  4. Dokumenta S.A. (Feb 2010 - Sep 2012)

    Senior Software Engineer / Security Expert

    Project lead for Electronic Signature Service Infrastructure (ESSI) at Dokumenta of a team of five.

    We developed the authentication component of the platform and analyzed requirements and conducted case studies regarding the design of the production platform architecture. Furthermore, we developed the complete redesign of the platform as a SOA architecture exposing REST interfaces, that can be consumed by application clients and browsers alike.

    Development of an application for managing the European “List of Trusted Lists”.

    To optimize communication between client and team, we used Kanban, which increased our efficiency notably. All communication, verbal or written (including technical specification and analysis), was held in English.

  5. European Commission (Oct 2009 - Sep 2012)

    External Consultant for Digital Signatures

    Principal security consultant for Electronic Signature Service Infrastructure (ESSI), the European Commission’s service for creation, extension and validation of electronic document signatures complying with the ETSI standards CAdES, XAdES and PAdES.

    Among others, my responsibilities were the analysis and selection of the platform’s core components, design of the architecture of the production platform, development of its authentication component as well as a complete redesign of the platform as a SOA architecture exposing REST interfaces to be consumed by application clients and browsers alike.

    I was responsible for consulting Commission-internal clients in order to provide them with seamless integration of ESSI into their products.

  6. DIaLOGIKa GmbH (Aug 2006 - Sep 2012)

    Software Engineer / Security Expert

    Lead developer and security/cryptography consultant for several (web) applications dealing with document encryption/signatures, certificate validation and PKI in general as well as low-level interfaces such as PKCS#11, smart cards and HSMs.

    Co-inventor of the standard for digitally signing PNG images (dSIG).

    Expert for actuarial mathematics and cryptography in PenCom, a web-based actuarial application. I also developed various extensions for the Java EE-based backend and the web frontend.

  7. Ruby Association (Nov 2011 - Mar 2012)

    Freelancer

    I won one of the first two Ruby Association Grants for my project krypt, which aims at providing library- and platform-independent cryptography for Ruby.

    During the grant period, I developed a DSL for parsing and generating ASN.1 data structures using a modern pull parser technique to provide streaming support with superior performance. krypt runs on CRuby, JRuby and Rubinius, native Java and C parts were developed in parallel.

    An extensive RSpec test suite, code coverage and Valgrind integration completed my work.

  8. DIaLOGIKa GmbH (Jan 2006 - Aug 2006)

    Freelancer

    Developed the import/export workflow for PenCom, a web-based actuarial application.

    Activities included creation and validation of XML-based data structures, thread-based scheduling and storing, updating and retrieving data and results in an Oracle database using an in-house ORM layer based on EJB. The final product was integrated into the main application as a Java EE Application Client, interfacing with various external sub systems such as the client mail system, external databases and web services.

  9. Fraunhofer ITWM Kaiserslautern (Jan 2004 - Feb 2005)

    Freelancer

    I was a freelancer at ITWM during my time at the university. I majored in financial mathematics, and my job was to develop a GUI application for the analysis of stochastic processes simulating financial scenarios for pricing stocks and options.

    I also developed and maintained the department’s web site, adding dynamic HTML content scripted with Javascript, and I helped designing the CSS to provide a consistent look and feel.

languages

  1. German (native speaker)
  2. English (nearly accent-free US English, bilingual education in school)
  3. French (basic knowledge written and verbal)

programming languages

  1. Java (Expert, 16 years of experience)
  2. Ruby (Expert, 5 years of experience)
  3. Javascript (Expert, 10 years of experience)
  4. C (Advanced, 4 years of experience)
  5. C++ (Intermediate, 3 years of experience)
  6. C# (Intermediate, 3 years of experience)
  7. Python (Intermediate, 1 year of experience)
  8. Groovy (Advanced, 1 year of experience)
  1. PHP (Advanced, 4 years of experience)
  2. CoffeeScript (Intermediate, 1 year of experience)
  3. Scala (Basic, 1 year of experience)
  4. Clojure (Basic, 1 year of experience)
  5. ClojureScript (Basic, 1 year of experience)
  6. Racket (Basic, 1 year of experience)
  7. ML (Basic, 1 year of experience)

skills (signature skills are highlighted)

security

  1. digital / electronic signature
  2. cryptography
  3. asn.1 / der
  4. cades / xades / pades
  5. openssl
  1. pki
  2. tls / ssl
  3. smart cards / pkcs#11
  4. web security
  5. oasis dss
  1. network security
  2. authentication schemes
  3. password security
  4. oauth

web development

  1. ruby on rails
  2. html 5
  3. css 3
  4. backbone.js
  5. marionette.js
  1. rest
  2. dojo
  3. haml
  4. sass
  5. compass
  1. twitter bootstrap
  2. play framework
  3. sinatra
  4. bower
  5. zend framework
  1. heroku
  2. unicorn
  3. puma
  4. nginx

java ee

  1. java security api
  2. bouncy castle
  3. jruby
  4. spring 3 (mvc)
  5. ejb
  6. xml
  1. swing
  2. grails 2
  3. hibernate
  4. jpa 2
  5. concurrency / multithreading
  6. glassfish
  1. jboss
  2. tomcat
  3. jetty
  4. weblogic

software engineering

  1. test-driven development
  2. design patterns
  3. algorithms & data structures
  4. random testing / fuzzing
  5. rspec
  1. cucumber
  2. junit
  3. phantom.js
  4. jasmine.js
  5. code coverage
  1. continuous integration
  2. vagrant
  3. chef
  4. valgrind

databases

  1. sql
  2. mysql
  3. postgres
  1. oracle
  2. sql server
  3. couchdb
  1. mongodb
  2. memcached
  3. redis

mobile development

  1. responsive web design
  2. android sdk
  3. android ndk

project management

  1. kanban
  2. scrum
  3. xp

operating systems

  1. linux
  2. windows
  3. active directory
  4. ldap

activities

  1. OASIS DSS-X TC (since Feb 2014)

    I am a member of the OASIS DSS-X TC.

  2. JRuby Google Summer of Code 2013 (Jun 2013 - Aug 2013)

    I was a mentor for JRuby GSoC 2013 for my project krypt.

  3. HashDoS (Sep 2012 - Dec 2012)

    Together with Jean-Philippe Aumasson and Daniel J. Bernstein, we developed proof of concepts for an algorithmic complexity attack on general-purpose hash functions, this was published as CVE-2012-5370, CVE-2012-5371, CVE-2012-5372 and CVE-2012-5373. I also provided the SipHash C implementation which was used to patch CRuby.

  4. JRuby Google Summer of Code 2012 (Jun 2012 - Aug 2012)

    I was a mentor for JRuby GSoC 2012 for my project krypt.

  5. SipHash Proof of Concept (Jun 2012)

    I developed proof of concepts in C, Java and Ruby for SipHash , a family of pseudo-random functions (PRF) optimized for short inputs.

public talks

  1. Applied Cryptography.rb

    NYC.rb 2014, New York

    Two-day workshop for applied cryptography with examples using Ruby and Ruby OpenSSL.

  2. why browser cryptography matters.

    RealtimeConf 2013, Portland

    How browser cryptography could and hopefully will make an impact in the future.

  3. krypt. semper pi.

    RubyShift 2013, Kiew

    Presentation of krypt and its underlying provider principle.

  4. javascript crypto. ugly duckling with good reason?

    JSConfEU 2013, Berlin

    Presentation of the current state of affairs regarding cryptography and JavaScript.

  5. krypt & jruby. cryptography’s new best friends?

    JRubyConf 2013, Berlin

    Presentation illustrating how to use krypt with JRuby.

  6. javascript crypto. ugly duckling with good reason?

    JSConfBR 2013, Fortaleza

    Presentation of the current state of affairs regarding cryptography and JavaScript.

  7. krypt. semper pi.

    GoRuCo 2013, New York

    Presentation of krypt and its underlying provider principle.

  8. krypt. semper pi.

    Ruby Kaigi 2013, Tokio

    Presentation of krypt and its underlying provider principle.

  9. Hash-flooding DoS reloaded: attacks and defenses

    29C3, Hamburg

    Co-presentation with Jean-Philippe Aumasson and Daniel J. Bernstein of a hash flooding attack that exploits the algorithmic complexity of the underlying hash function even if the hash function’s seed has been randomized (the officially accepted countermeasure to 2011’s original “hashDoS” attack).

  10. Hash-flooding DoS reloaded: attacks and defenses

    AppSec-Forum 2012, Yverdon-les-bains

    Co-presentation with Jean-Philippe Aumasson of a hash flooding attack that exploits the algorithmic complexity of the underlying hash function even if the hash function’s seed has been randomized (the officially accepted countermeasure to 2011’s original “hashDoS” attack).

  11. krypt - The next level of Ruby cryptography

    RubyConf 2012, Denver

    Presentation of krypt and FuzzBert (random testing/fuzzing in Ruby). First details about the “HashDoS” exploit that would be presented later at AppSec-Forum ‘12 in Switzerland.

  12. krypt - The next level of Ruby cryptography

    LoneStar Ruby Conference 2012, Austin

    Presentation of krypt and its subprojects binyo (fast binary IO in Ruby) and FuzzBert (random testing/fuzzing in Ruby).

  13. krypt

    Railsberry 2012, Krakow

    A lightning talk at Railsberry 2012 about krypt, the platform- and library-independent cryptography framework for Ruby, JRuby and Rubinius.

  14. Ruby OpenSSL: Present, Future and why it matters

    RubyConf 2011, New Orleans

    A talk at RubyConf 2011 in New Orleans about my work on the OpenSSL extension and where it would be headed in the future.

training & certificates

online education

  1. Functional Programming Principles in Scala (including practical assignments) Coursera, Nov 2013
  2. CS169.2x Software as a Service (including practical assignments) EdX, Apr 2013
  3. Introduction to Databases (including practical assignments) Stanford Online Class2Go, Mar 2013
  4. Algorithms: Design and Analysis, Part II (including practical assignments) Coursera, Feb 2013
  5. Algorithms, Part I (including practical assignments) Coursera, Sep 2012
  6. Software Testing (CS258) (including practical assignments) Udacity, Sep 2012
  7. Compilers (including practical assignments) Coursera, Jun 2012
  8. Introduction to Logic Coursera, Jun 2012
  9. Applied Cryptography (CS387) (including practical assignments) Udacity, Jun 2012
  10. Automata (including practical assignments) Coursera, Jun 2012
  11. Cryptography (including practical assignments) Coursera, Jun 2012
  12. Algorithms: Design and Analysis, Part I (including practical assignments) Coursera, Apr 2012
  13. Software as a Service (including practical assignments) Coursera, Apr 2012

conferences

  1. Real World Cryptography 2014, New York
  2. RealtimeConf 2013, Portland
  3. RubyShift 2013, Kiew
  4. JSConfEU 2013, Berlin
  5. JRubyConf 2013, Berlin
  6. JSConfBR 2013, Fortaleza
  7. GoRuCo 2013, New York
  8. Ruby Kaigi 2013, Tokio
  9. 29C3 2012, Hamburg
  10. AppSec-Forum 2012, Yverdon-les-bains
  11. RubyConf 2012, Denver
  12. LoneStar Ruby Conference 2012, Austin
  13. Railsberry 2012, Krakow
  14. RubyConf 2011, New Orleans
  15. Webinale 2011, Berlin
  16. TechEd 2010, Berlin
  17. Web Security Days 2009, Frankfurt

workshops

  1. Agile Project Management
  2. Digital Image Processing
  3. Oracle Database Security
  4. Object-Oriented Programming
  5. SOA
  6. Web Security
  7. Java EE
  8. Presentation
  9. .NET 3.5

selected projects

  1. On request (2006 - 2013)

    If you are interested in the details of my project experience, I’m happy to send you an updated version of my CV including a complete list of all relevant projects that I’ve worked on so far.