|
@@ -1,4 +1,4 @@
|
|
|
-\chapter{An Empirical Study}
|
|
|
+\chapter{An Empirical Study \label{chap:empirical_study}}
|
|
|
|
|
|
Excluding Dixon's factorization method, all attacks analyzed so far exploit
|
|
|
some peculiarities of a candidate RSA public key $\angular{N, e}$ in order to
|
|
@@ -7,25 +7,26 @@ Summarizingly:
|
|
|
\begin{itemize}
|
|
|
\item Pollard's $p-1$ attack works only if the predecessor of any of
|
|
|
the two primes factorizing the public modulus is composed of very small
|
|
|
- primes;
|
|
|
- \item Williams' $p+1$ attack works under similar conditions - the predecessor
|
|
|
- or the successor of any of the two primes can be easily factorized;
|
|
|
+ prime powers;
|
|
|
+ \item Williams' $p+1$ attack works under similar conditions - on the
|
|
|
+ predecessor or the successor of any of the two primes ;
|
|
|
\item Fermat's factorization is valuable whenever the two primes $p$ and $q$
|
|
|
are really close to each other;
|
|
|
\item Pollard's $\rho$ method is best whenever one of the two primes is
|
|
|
- strictly lower than the other.
|
|
|
+ strictly lower than the other;
|
|
|
+ \item Wiener's attack is guaranteed to work on small private exponents.
|
|
|
\end{itemize}
|
|
|
Dixon's factorization method instead, being a general-purpose factorization
|
|
|
algorithm, can be employed to \emph{measure} the strength of a RSA
|
|
|
keypair: the more relations (satisfying \ref{eq:dixon:fermat_revisited}) are
|
|
|
-found, the less it is assumed resistant.
|
|
|
+found, the less it is assumed to be resistant.
|
|
|
|
|
|
-Given these hypotesis, it has been fairly easy to produce valid RSA candidates
|
|
|
-that are exploitable using the above attacks, and use them to assert the
|
|
|
-correctness of the implementation.
|
|
|
+Given these hypothesis, it has been fairly easy to produce valid RSA candidate
|
|
|
+keys that can be broken using the above attacks. They have been used to assert
|
|
|
+the correctness of the implementation.
|
|
|
|
|
|
On the top of that, there has been a chance to test the software under real
|
|
|
-conditions: we choose download the SSL keys (if any) of the top one million visited
|
|
|
+conditions: we downloaded the SSL keys (if any) of the top one million visited
|
|
|
websites, and survey them with the just developed software. This not only gave
|
|
|
us the opportunity to survey the degree of security on which the internet is
|
|
|
grounded today, but also led to a deeper understanding of the capacities and limits of
|
|
@@ -34,19 +35,19 @@ the most widespread libraries offering crypto nowadays.
|
|
|
\vfill
|
|
|
\section{To skim off the dataset}
|
|
|
|
|
|
-What has been most scandalous above all was to discover was that more than
|
|
|
+What has been most scandalous above all was to discover that more than
|
|
|
\strong{half} of the most visited websites do \strong{not} provide SSL
|
|
|
connection over port 443 - reserved for HTTPS according to IANA
|
|
|
\cite{iana:ports}.
|
|
|
-To put it in numbers, we are talking about $533$ thousands websites either
|
|
|
+To put it in numbers, we are talking about $533, 000$ websites either
|
|
|
unresolved or unreachable in $10$ seconds.
|
|
|
As a side note for this, many websites (like \texttt{baidu.com} or
|
|
|
-\texttt{qq.com}) keep a tcp connection open without writing anything to the
|
|
|
+\texttt{qq.com}) keep a TCP connection open without writing anything to the
|
|
|
channel, requiring us to adopt a combination of non-blocking socket with the
|
|
|
\texttt{select()} system call in order to drop any empty communication.
|
|
|
-It would be intesting to investigate more on these facts, asking ourselves how
|
|
|
-many of those unsuccessful connetion are actually wanted from the server, and
|
|
|
-how many dropped for cernsorship reasons; there's enough room for another
|
|
|
+It would be interesting to investigate more on these facts, asking ourselves how
|
|
|
+many of those unsuccessful connections are actually wanted from the server, and
|
|
|
+how many dropped for censorship reasons; there is enough room for another
|
|
|
project.
|
|
|
|
|
|
Of the remaining $450,000$ keys, $21$ were using different ciphers than RSA. All
|
|
@@ -55,22 +56,23 @@ others represent the dataset upon which we worked on.
|
|
|
\section{To count}
|
|
|
|
|
|
Once all valuable certificate informations have been stored inside a database,
|
|
|
-almost any query can be performed to get a statistically valuable dregree of
|
|
|
-magnitude to which some conditions are satisfied. What follows now is a list of
|
|
|
-commented examples that we believe are relevant parameters for understanding of
|
|
|
-how badly internet is configured today.
|
|
|
+almost any query can be performed to get a statistically valuable measure of
|
|
|
+degree of magnitude to which some conditions are satisfied. What follows now is
|
|
|
+a list of commented examples that we believe are relevant parameters for
|
|
|
+understanding of how badly internet is configured today.
|
|
|
+
|
|
|
|
|
|
\begin{figure}[H]
|
|
|
\includegraphics[width=0.7\textwidth]{e_count.png}
|
|
|
\end{figure}
|
|
|
|
|
|
-The most prolific number we see here, $65537$ in hexadecimal, is the fouth
|
|
|
+The most prolific number we see here, $65537$ in hexadecimal, is the fourth
|
|
|
Fermat number and no other than the largest known prime of the form $2^{2^n} +
|
|
|
1$. Due to its composition, it has been advised by NIST as default public
|
|
|
-exponent, and successfully implemented in most softwares, such as \openssl\!.
|
|
|
+exponent, and successfully implemented in most software, such as \openssl\!.
|
|
|
|
|
|
-Sadly, a negleglible number of websites is using low public exponents,
|
|
|
-which makes the RSA key vulnerable to Coppersmith's attack. Unfortunately, this
|
|
|
+Sadly, a negligible number of websites is using low public exponents,
|
|
|
+which makes the RSA key vulnerable to Coppersmith's attack; though, this
|
|
|
topic goes beyond the scope of this research and hence has not been analyzed
|
|
|
further.
|
|
|
|
|
@@ -79,33 +81,77 @@ further.
|
|
|
\end{figure}
|
|
|
|
|
|
What is interesting to see here is that an enormous portion of our dataset
|
|
|
-shared the same public key, pushing down our of one order of magnitude the
|
|
|
-number of expected keys. Reasons for this are mostly practical: it is extremely
|
|
|
-frequent to have blogs hosted on third-party sercives such as ``Blogspot'' or
|
|
|
+shared the same public key, pushing down the number of expected keys of one
|
|
|
+order of magnitude. Reasons for this are mostly practical: it is extremely
|
|
|
+frequent to have blogs hosted on third-party services such as ``Blogspot'' or
|
|
|
``Wordpress'' which always provide the same X.509 certificate, as they belong to
|
|
|
an unique organization.
|
|
|
Though improbable, it is even possible that exists a millesimal portion of
|
|
|
different websites sharing the same public key due to a
|
|
|
-bad CSRNG, and therefore also the same private key. Such a case has been
|
|
|
-already investigated in \cite{ron:whit}.
|
|
|
+bad cryptographically secure random number generator, and therefore also the
|
|
|
+same private key. Such a case has been already investigated in \cite{ron:whit}.
|
|
|
|
|
|
\begin{figure}[H]
|
|
|
\includegraphics[width=0.6\textwidth]{localhost_certs.png}
|
|
|
\end{figure}
|
|
|
|
|
|
-Here we go. A suprisingly consistent nuber of websites provides certificates
|
|
|
-with dummy, wrong, or even testing informations. Some even inject non-printable
|
|
|
-bytes in the \emph{common name} field.
|
|
|
-Some are certified from authorities, some chinese governmental entities.
|
|
|
+Here we go. A suprisingly consistent number of websites provides certificates
|
|
|
+filled with dummy, wrong, or even testing informations.\\
|
|
|
+Some do have non-printable bytes in the \emph{common name} field.\\
|
|
|
+Some are certified from authorities. \\
|
|
|
+Some are even gonvernmental entities.
|
|
|
+
|
|
|
+\begin{figure}[H]
|
|
|
+ \includegraphics[width=0.9\textwidth]{bits_count.png}
|
|
|
+\end{figure}
|
|
|
+
|
|
|
+According to \cite{nist:keylen_transitions} \S 3, table $2$, all RSA keys of
|
|
|
+bitlength less than $1024$ are to be considered deprecated at the end of $2013$
|
|
|
+and shall no more be issued since the beginning of this year. Not differently
|
|
|
+from the above results, the remark has been globally adopted, yet still with a
|
|
|
+few exceptions: around a dozen of non-self-signed certificates with a 1024 RSA
|
|
|
+key appears to have been issued in 2014.
|
|
|
+
|
|
|
+
|
|
|
+\section{The proof and the concept}
|
|
|
+
|
|
|
+At the time of this writing, we have collected the output of only two
|
|
|
+mathematical tests performed in the university cluster.
|
|
|
+
|
|
|
+\paragraph{Wiener.} The attack described in chapter \ref{chap:wiener} was the
|
|
|
+first employed, being the fastest one above all others. Recalling the different
|
|
|
+public exponents we probed (discussed in the previous sections), we expected all
|
|
|
+private exponents to be $> \rfrac{1}{3}\sqrt[4]{N}$; there is still the
|
|
|
+possibility that the attack works, but there is no guarantee.
|
|
|
+For what concerns our tests, we found no weak keys that could be recovered using
|
|
|
+Wiener's attack.
|
|
|
+
|
|
|
+\paragraph{GCD.} On the wave of \cite{ron:whit}, whe attempted also to perform
|
|
|
+the $\gcd$ of every possible pair of dinstinct public modulus present in the
|
|
|
+dataset. In contrast to our expectations, this test led to no prime factor
|
|
|
+leaked, for any key pair. We have reasons to believe this depends on the
|
|
|
+relatively small size of our dataset, with respect to the one used in
|
|
|
+\cite{ron:whit}.
|
|
|
|
|
|
|
|
|
|
|
|
\chapter{Conclusions \label{conclusions}}
|
|
|
-\noindent
|
|
|
-Everytime we see a certificate, we get this idea the somebody is telling us the
|
|
|
-connection is safe. There is some authority out there telling what to do.
|
|
|
-We should be thinking more about what these authorities are and what they are
|
|
|
-doing.
|
|
|
+
|
|
|
+Everytime we surf the web, we share our communication channel with lots of
|
|
|
+entities around the globe. End-to-end encryption protocols such as TLS can
|
|
|
+provide the security properties that we often take as granted, like
|
|
|
+\emph{confidentiality}, \emph{integrity}, and \emph{authenticity}; though,
|
|
|
+these holds only if we \emph{trust} the authorities certifying the end entity.
|
|
|
+
|
|
|
+%% Wax Taylor - Que Sera
|
|
|
+There is this mindless thinking that whenever we see that small lock icon in the
|
|
|
+browser's url bar, somebody is telling us the connection is safe.
|
|
|
+There is some authority out there telling what to do, and we should be thinking
|
|
|
+more about what these authorities are and what they are doing.
|
|
|
+This issue is no more a technical problem, but instead is becoming more and more
|
|
|
+a social and political problem.
|
|
|
+It is our responsability as citzens to do something about that.
|
|
|
+
|
|
|
|
|
|
%%% Local Variables:
|
|
|
%%% mode: latex
|