Monthly Archives: September 2010

Not every elliptic curve is the same: trough on ECC security





My own ECC curve security and selection analysis

vn9jna1BdgrzDCYNBJHi09q09q.jpg

Most modern crypto use Elliptic Curve Cryptographic (ECC) that, with a smaller key size and reduce computation power, give equivalent security strength of traditional crypto system known as DH (Diffie-Hellman) or RSA (Rivest, Shamir and Adleman) .

Not everyone knows that ECC encryption is selected for any future encryption applications and that even TLS/SSL (encryption used for securing the web) is moving to ECC.

I found plenty of so called “proprietary encryption products” which abandoned RSA and DH to goes with ECC alternatives, that tend to arbitrary use ECC bit key size without even specifying which kind of ECC crypto get used.

However there is a lot of confusion around Elliptic Curves, with a lot of different names and key size making difficult for a non-cryptographically-experienced-user to make your own figure when evaluating some crypto stuff.

Because of so diffused confusion i decided to make my own analysis to find out which are the best ECC encryption curves and right ECC key size to use.

This analysis would like to provide a security industry based choice among various curves and key sizes, leaving the mathematical and crypto analytical considerations that has been already been done during the years, summarizing the various choices taken in several standards and security protocols.

First the conclusion.

From my analysis only the following ECC curves are to be considered for use in encryption systems because are the only one selected among different authorities (ANSI, NSA, SAG, NIST, ECC BrainPool), different security protocol standards (IPSec, OpenPGP, ZRTP, Kerberos, SSL/TLS) and the only one matching NSA Suite B security requirements (de-facto standard also for NATO military environment):

  • Elliptic Prime Curve 256 bit – P-256
  • Elliptic Prime Curve 384 bit – P-384

with optional, just for really paranoid that want to get more key size bit, still not considered useful:

  • Elliptic Prime Curve 521 bit – P-521

I would like to state that Koblitz curves should be avoided, in any key size (163 / 283 / 409 / 571) as they does not have enough warranty on crypto analytic activity and effectively they are:

  • Not part of NSA Suite-B cryptography selection
  • Not part of ECC Brainpool selection
  • Not part of ANSI X9.62 selection
  • Not part of OpenPGP ECC extension selection
  • Not part of Kerberos extension for ECC curve selection

I invite the reader to follow trough my analysis to understand the fundamentals that could be understood even without deep technical background but at least with a good technological background a some basic bit of cryptography.



Here we go with the analysis



 

My goal is to make an analysis on what/how the open scientific and security community choose ECC crypto system for usage in security protocols and standards defined by IETF RFC (the ones who define Internet Standards in a open and peer-reviewed way).

Below a set of RFC introducing ECC into existing system that get analyzed to understand what’s better to use and what’s better to exclude:

  • RFC5639: ECC Brainpool Standard Curves & Curve Generation
  • RFC4869: NSA Suite B Cryptographic Suites for IPsec
  • RFC5430: NSA Suite B profile for Transport Layer Security (TLS)
  • RFC5008: NSA Suite B in in Secure/Multipurpose Internet Mail Extensions (S/MIME)
  • RFC3766: Determining Strengths For Public Keys Used For Exchanging Symmetric Keys
  • RFC5349: Elliptic Curve Cryptography (ECC) Support for Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
  • RFC4492: Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)
  • ZRTP voice encryption by Philip Zimmermann ECC curve
  • ECC in OpenPGP (draft draft-jivsov-openpgp-ecc-06)
  • ECC Curves selected by Microsoft for Smartcard Kerberos login

We will use the choice made by scientist defining Internet Security Protocols to make part of our evaluation.
Additionally it must be understood that the Curve selection comes from different authorities that made their own selection of Curves in order to tell to the industry what to use and what to skip:

We will use the choice made by scientist defining security requirements in the standardization agencies to make part of our evaluation.
Additionally, something that most people does not know, but that it’s extremely relevant to our analysis, is that there are different kind of ECC curve cryptography and their “size” it’s different depending on the kind of curve:

  • ECC Curves over Prime Field (often referred as Elliptic Curve and represented by P-keysize)
  • ECC Curves over Binary Field (often referred as Koblitz Curve and represented by K-keysize)

Given a security strength equivalence the Elliptic Curve and the Kobliz Curve have different key size, for example when we read ECC 571 we are referring to Koblitz Curve with an equivalent strength to ECC 521 Prime curve.

A comparison of strength between Elliptic Curves and Kotbliz Curves is reported below (from Mikey ECC internet Draft):

| Koblitz |  ECC  |  DH/DSA/RSA
|   163   |  192  |     1024
|   283   |  256  |     3072
|   409   |  384  |     7680
|   571   |  521  |    15360

Below there’s a comparison of all selected curves by all the various entities and their respective name (from IETF RFC4492 for ECC usage for TLS) :

Curve names chosen by different standards organizations
------------+---------------+-------------
SECG        |  ANSI X9.62   |  NIST
------------+---------------+-------------
sect163k1   |               |   NIST K-163
sect163r1   |               |
sect163r2   |               |   NIST B-163
sect193r1   |               |
sect193r2   |               |
sect233k1   |               |   NIST K-233
sect233r1   |               |   NIST B-233
sect239k1   |               |
sect283k1   |               |   NIST K-283
sect283r1   |               |   NIST B-283
sect409k1   |               |   NIST K-409
sect409r1   |               |   NIST B-409
sect571k1   |               |   NIST K-571
sect571r1   |               |   NIST B-571
secp160k1   |               |
secp160r1   |               |
secp160r2   |               |
secp192k1   |               |
secp192r1   |  prime192v1   |   NIST P-192
secp224k1   |               |
secp224r1   |               |   NIST P-224
secp256k1   |               |
secp256r1   |  prime256v1   |   NIST P-256
secp384r1   |               |   NIST P-384
secp521r1   |               |   NIST P-521
------------+---------------+-------------

What immediately appear is that there are only two curves selected by all authorities, and that there is a general dumping of koblitz curves by ANSI.The only commonly agreed among the 3 authorities are the following two ECC curve:

  • secp192r1 / prime192v1 / NIST P-192
  • secp256r1 / prime256v1 / NIST P-256

Of those selection of ECC curve for TLS the RFC5430 skipped completely koblitz curves and selected for usage only:

  • P-256, P-384, P-521

The ECC Brainpool skipped completely Koblitz curves and selected for usage the following ECC Curves:

  • P-160, P-192, P-224, P-256, P-320, P-384, P-512 (that’s the only particular because it’s not P-521 but P-512, the only key-size referred by ECC brainpool. Tnx Ian Simons from Athena SCS)

The OpenPGP internet draft for ECC usage in PGP draft-jivsov-openpgp-ecc-06 skipped completely Koblitz curves and selected the following ECC curves

  • P-256, P-384, P-521

The Kerberos protocol extension for ECC use, defined in RFC5349 and defined by Microsoft for smartcard logon skipped completely Koblitz curves and selected the following ECC curves:

  • P-256, P-384, P-521

So, sounds clear that the right selection of ECC is for P-256, P-384 and P-521 while the Koblitz curve have been skipped for Top Secret use and for any security sensitive protocol (IPSec, OpenPGP, ZRTP, Kerberos, SSL/TLS).

Why i made this analysis?

I have done this analysis following a discussion i had regarding certain voice encryption products, all based on custom and proprietary protocols, that are all using Elliptic Curve Diffie Hellman 571 bit / ECDH 571 / 571-bit ECDH / Koblitz 571 bits .
All them are using the K-571 that, as described before, has been removed from all security sensitive environment and protocols and being myself a designer of voice encryption stuff i think that their cryptographic choice is absolutely not the best security choice.
Probably it has been done just for marketing purpose, because K-571 (Koblitz curve) seems stronger than P-521 (Elliptic curve based on Prime number). If you have “more bit” your marketing guys can claim to be “more secure”. Koblitz elliptic curve are faster than the top secret enabled prime elliptic curve and so give the product manager a chance to provide “more bit” in it’s own product while keeping the key exchange fast.

It’s a matter of philosophical choice.

I prefer to follow the trend of scientific community with the humility of not to considering myself a cryptographic expert, knowledgable more than the overall security and scientific community itself.

I prefer instead to use only algorithms that are approved for use in highly sensitive environments (top secret classification), that have been selected by all the authorities and working group analyzing encryption algorithms existing out-there and that represent the choice of almost all standard security protocols (IPSec, OpenPGP, ZRTP, Kerberos, SSL/TLS, etc).
I prefer to count the amount of brains working on the crypto i use, that check that’s really secure, that evaluate whether there’s some weakness.

The number of brais working on Crypto widely diffused are of order of magnitude more than the number of brains working on crypto used by just few people (like Koblitz curve).
So i am not demonizing who use ECDH 571 using Koblitz Curve, but for sure i can affirm that they did not taken the best choice in terms of security and that any security professionals doing a security benchmarking would consider the fact that Elliptic Curve Diffie Hellman 571 bit done with Koblitz Curve is not widely diffused, it’s dumped from standard security protocols and it’s not certified for top secret use.

Share

ESSOR, European Secure Software Defined Radio (SDR)

I had a look at European Defense Agency website and found the ESSOR project, a working project funded for 106mln EUR to develop strategic defense communication products based on new Software Defined Radio approach.

SDR approach is a revolutionary system that’s completely changing the way scientist and industry is approach any kind of wireless technology.

Basically instead of burning hardware chip that implement most of the radio frequency protocols and techniques, they are pushed in “software” to specialized radio hardware that can work on a lot of different frequency, acting as radio interface for a lot of different radio protocols.

For example the USRP (Universal Software Radio Peripheral) from Ettus Research that cost 1000-2000USD fully loaded, trough the opensource GnuRadio framework, have seen opensource implementation of:

And a lot more protocols and transmission technologies.

That kind of new approach to Radio Transmission System is destinated to change the way radio system are implemented, giving new capability such as to upgrade the “radio protocol itself” in software in order to provide “radio protocol” improvements.

In the short terms we have also seen very strong security research using SDR technologies such as the GSM cracking and the Bluetooth Sniffing.

We can expect that other technologies, weak by design but protected by the restriction to hardware devices to hack the low level protocols, will be soon get hacked. In the first list i would really like to see the hacking of TETRA, a technology born with closed mindset and secret encryption algorithms, something i really dislike ;-)

Share

Product management and organization

I had to better understand the concepts, roles and duties related to Product management and Product marketing management in software companies, why are needed, which are the differences and how they fit inside an organization structure.

Most person i know never interested into this specific area of work, but when you want to be a product company (and not a consulting or solution company), you start having different products on different platforms for different target customers sold trough different channels with different pricing with a installation/different delivery process and that complexity must be managed in the proper way.

You realize that in order to let the product company grow in the right direction you need to organize product management activities formally, not closing your mind in rigid organization roles such as Marketing, Sales, R&D.

When we speak about Product Management i recommend the reading of the illuminating The strategic role of Product Management (How a market-driven focus leads companies to build products people want to buy) that clarify a lot of things, even if it outlook net separation of roles in product management, something that’s too heavy for a small company like a startup.

Still it provide a differentiation of duties between Product Management and Product Marketing.

A good understanding of the product management related to startup is given in the article Creating Product Management at Startup showing up different case related to the roles of the product visionary into the company.

It introduce the terms ceo of the product in the sense that the product management duties jump around into the various organization function by providing focus and effort where it’s needed, independently from the fact that the internal function requiring more effort is Development, Marketing, Sales or Communication. That’s means practically enhancing the product vision as it’s needed across all major product-related functions making the vision corporate-wide coherent.

A good representation of product management and product marketing activities is well described with the differentiation of between Strategical, Technical and Marketing sector and is not clearly separated between Management, Marketing(and Sales) and R&D :

Triad.jpg

I read that product manager background and knowledge are different depending on the company focus (where does product management belong in the organization?):

  • B2C -> Marketing experience
  • B2B -> Technical experience

An illuminating (for me) and very important differentiation regarding product management duties is the differentiation between:

  • Product Management
  • Product Marketing

The specific duties belonging to Product Marketing vs Management are greatly explained in Role Definitions For Product Management and Product Marketing that i suggest to read, letting you to better define tasks and responsibilities across your organization. It also provide a good definition of job requirements if you need to look for that figure!

At the same time it’s important to understand what’s NOT product management, effectively Product management is not just feature prioritization.

At the same time it’s important to understand which professional figure is NOT itself a product manager:

  • Product manager is not a marketing manager – while product management is usually seen as a marketing discipline, marketers are focused on the marketing plan and are usually not driving the overall product direction. In that context could however be found Product marketing manager that’s the arms of the marketing of the product, especially in small organization.
  • Product manager is not a sales manager – sales manager are about finding out how to sell a product, following which sales methodology, technique and channels and they could drive the company from a market oriented company (product) to a customer oriented company (solution and consulting)
  • Product manager is not a developer – Developers are focused on the technology and not the overall product. Some great product managers are former developers, but it is difficult to do both at once. There is a natural tension between developers and product managers that should be maintained to create a balanced product.
  • Product manager is not a software manager – the software manager is a functional manager and usually not focused on the product or the customers.
  • Product manager is not a project manager – project managers are about how and when, while the product manager is about what. Project managers work closely with product managers to ensure successful completion of different phases in the product life cycle.

The typical product management activities could be in extreme synthesis summarized as follow:

  • Strategy: Planning a product strategy
  • Technical: leading product developments
  • Marketing: providing product and technical content
  • Sales: provide pre sales support and work effectively with sales

Product management so it’s not precisely development, is not precisely marketing, it’s not precisely sales, so typically it’s difficult to identify “where it should stay” inside the organization structure (it’s even difficult to understand that’s needed)?

The Silicon Valley Product Group provide a nice insight on Product Organization Structure by pointing out which are the advantages and risks of several choices. Still the Cranky Product Manager say that It doesn’t matter where the product manager live in the organization.

It’s relevant to be careful not to have persons that are too much technical or too much sales oriented in order to fill the gap among different organization. Too much fragmentation of assigned duties across the organization may lead to bureaucracy, too much duties on one person may lead to ineffective implementation of needed tasks in some area and to a internal competition perception respect to the traditional roles.

Check there a very nice Resume of a professional with practical experience in product management (it’s an half techie/half marketing guys).

Ah! Another very common misunderstanding is to confuse marketing with communication where a i found a so good definition of Marketing that i really like and understand for strict relationship with Product Management:

Marketing is know the market so well that the product sell itself

But what happen when you don’t handle a product management and product marketing management process in a defined way?

A nice story is shown as example in The strategic role of Product Management :

Your founder, a brilliant technician, started the company years ago when he quit his day job to market his idea full time. He created a product that he just knew other people needed. And he was right. Pretty soon he delivered enough of the product and hired his best friend from college as VP of Sales. And the company grew. But before long, the VP of Sales complained, “We’re an engineering-led company. We need to become customer-driven.” And that sounded fine. Except… every new contract seemed to require custom work. You signed a dozen clients in a dozen market segments and the latest customer’s voice always dominated the product plans. You concluded that “customer-driven” meant “driven by the latest customer” and that couldn’t be right.

If you want to be a product company it’s relevant to precisely follow a strategy driven by product marketing and management and not by sales.

Confusion between duties of product management/marketing and sales could lead to unsuccessful product company that are not able to proceed within their strategy, simply because they getting opportunities that drive the business out-of-scope.

A product company must invest in it’s own product development and marketing in order to let sales activity stay focused and guarantee that the organization is every day more effective on the market.

After this reading, my understanding is that it’s relevant to identify how to create a set of flexible business process on how to handle various product management and product marketing duties separating them from sales.

Share

Remotely intercepting snom VoIP phones

I suggest reading remotely tapping VoIp phones” on VoIP Security Alliance Blog by Shawn Merdinger .

A concrete example on how current telephony infrastructure are getting more vulnerable to cyber attacks.

Share