[Bug 1380038] [NEW] SSL problems: doesn't check certificate chain and hostname when ssl connecting

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in pacemaker, the following is details:

1.
file :  /pacemaker-1.1.6/lib/common/remote.c 
problem : Certificate chain verification is missing

2.
file : /pacemaker-1.1.6/lib/common/remote.c
problem : Hostname verification is missing

More specifically , we can take hostname check for example, the function
verify_certificate() can only guarantee the validity of the certificate
but cannot guarantee that the host you are trying to connect is the one
you intend to visit, which may lead to man-in-the-middle attack or other
security issues. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, my email : rainkin1...@gmail.com

Thanks.

** Affects: pacemaker (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to pacemaker in Ubuntu.
https://bugs.launchpad.net/bugs/1380038

Title:
  SSL problems: doesn't check certificate chain and hostname when ssl
  connecting

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pacemaker/+bug/1380038/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs


[Bug 1376592] [NEW] X509 certificate verification problem

2014-10-02 Thread rainkin
Public bug reported:

Hostname verification is an important step when verifying X509
certificates, however, people tend to miss the step or to misunderstand
the APIs when using SSL/TLS, which might cause severe man in the middle
attack and break the entire TLS mechanism.

We believe that freetds-bin didn't check whether the hostname matches
the name in the SSL certificate and the expired date of the certificate.

We found the vulnerability by static analysis, typically, a process of
verification involves calling a chain of API, and we can deduce whether
the communication process is vulnerable by detecting whether the
function call process matches a certain model. For example, when using
OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
we should verify the certificate by calling the function
SSL_get_peer_certificate() to get the certificate. If the source code
does not match this model, then we can deduce this code is vulnerable.
What’ more , Gnutls is the same as Openssl.

To verify the result:

一.Hostname verification:
1. configure the file freetds.conf :
   # A typical Microsoft server
[sqlserver2000]
host = hackbyfun.sqlserver.com
port = 1433
tds version = 8.0
encrpytion = require
2.wirte the file /etc/hosts in order to simulate DNS hijack:
  10.214.146.123 hackbyfun.sqlserver.com
 (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )

3.connect with freetds-bin
tsql -S sqlserver2000 -U sa -P your password

4.result:connect succeed!!

The fetch succeeded, indicating freetds-bin didn't check the hostname
against the signee of the certificate.

二. Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.
2. the same as the above process. Run freetds-bin to connect a normal sql server
3. result :connect succeed!!

The fetch succeeded again and no warning was given, indicating freetds-
bin didn't check whether the certificate expired or not.

(PS: I have saved the wireshark packages, and upload these files)

I am running freetds-bin 9.1-5 in ubuntu 14.04 LTS.

for more information about the importance of checking hostname:
see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.

** Affects: freetds (Ubuntu)
 Importance: Undecided
 Status: New


** Tags: ssl

** Attachment added: wireshark ssl conneting packages
   
https://bugs.launchpad.net/bugs/1376592/+attachment/4222110/+files/freetds.zip

** Information type changed from Private Security to Public

** Description changed:

  Hostname verification is an important step when verifying X509
  certificates, however, people tend to miss the step or to misunderstand
  the APIs when using SSL/TLS, which might cause severe man in the middle
  attack and break the entire TLS mechanism.
  
  We believe that freetds-bin didn't check whether the hostname matches
  the name in the SSL certificate and the expired date of the certificate.
  
  We found the vulnerability by static analysis, typically, a process of
  verification involves calling a chain of API, and we can deduce whether
  the communication process is vulnerable by detecting whether the
  function call process matches a certain model. For example, when using
  OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
  we should verify the certificate by calling the function
  SSL_get_peer_certificate() to get the certificate. If the source code
  does not match this model, then we can deduce this code is vulnerable.
  What’ more , Gnutls is the same as Openssl.
  
  To verify the result:
  
  一.Hostname verification:
  1. configure the file freetds.conf :
-# A typical Microsoft server
+    # A typical Microsoft server
  [sqlserver2000]
- host = hackbyfun.sqlserver.com
- port = 1433
- tds version = 8.0
- encrpytion = require
+ host = hackbyfun.sqlserver.com
+ port = 1433
+ tds version = 8.0
+ encrpytion = require
  2.wirte the file /etc/hosts in order to simulate DNS hijack:
-   10.214.146.123 hackbyfun.sqlserver.com 
-  (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )
+   10.214.146.123 hackbyfun.sqlserver.com
+  (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )
  
  3.connect with freetds-bin
  tsql -S sqlserver2000 -U sa -P your password
  
- result:connect succeed!!
+ 4.result:connect succeed!!
  
+ The fetch succeeded, indicating freetds-bin didn't check the hostname
+ against the signee of the certificate.
  
- The fetch succeeded, indicating freetds-bin didn't check the hostname against 
the signee of the certificate.
- 
- Also for expired time check,
+ 二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. the same as the above process. Run freetds-bin to connect a normal sql 
server
  3. 

[Bug 1376595] [NEW] X509 certificate verification problem

2014-10-02 Thread rainkin
Public bug reported:

Hostname verification is an important step when verifying X509
certificates, however, people tend to miss the step or to misunderstand
the APIs when using SSL/TLS, which might cause severe man in the middle
attack and break the entire TLS mechanism.

We believe that scrollz didn't check whether the hostname matches the
name in the SSL certificate and the expired date of the certificate.

We found the vulnerability by static analysis, typically, a process of
verification involves calling a chain of API, and we can deduce whether
the communication process is vulnerable by detecting whether the
function call process matches a certain model. For example, when using
OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
we should verify the certificate by calling the function
SSL_get_peer_certificate() to get the certificate. If the source code
does not match this model, then we can deduce this code is vulnerable.
What’ more , Gnutls is the same as Openssl.

Static analysis result :
/scrollz-2.1/source/server.c login_to_server() have problems.

We provide this result to help developers to locate the problem faster.

To verify the result:
一.Hostname verification
1. write the file /etc/hosts in order to simulate DNS hijack:
64.32.24.176irc.mibbit.net
46.137.23.30chat.freenode.net
(PS:exchange the ip between these two irc servers)

2. connecting chat.freenode.net with scrollz
/server -ssl irc.mibbit.net:6697

3. result : we connected irc.mibbit.net!!

The fetch succeeded, indicating srcollz didn't check the hostname
against the signee of the certificate.

二. Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.
2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
3. result : connect succeed!!

The fetch succeeded again and no warning was given, indicating scrollz
didn't check whether the certificate expired or not.

I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.


for more information about the importance of checking hostname:
see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.

** Affects: scrollz (Ubuntu)
 Importance: Undecided
 Status: New


** Tags: ssl

** Information type changed from Private Security to Public

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376595

Title:
  X509 certificate verification problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/scrollz/+bug/1376595/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1376601] [NEW] X509 certificate verification problem

2014-10-02 Thread rainkin
Public bug reported:

Hostname verification is an important step when verifying X509
certificates, however, people tend to miss the step or to misunderstand
the APIs when using SSL/TLS, which might cause severe man in the middle
attack and break the entire TLS mechanism.

We believe that xfce4-mailwatch-plugin didn't check whether the hostname
matches the name in the SSL certificate and the expired date of the
certificate.

We found the vulnerability by static analysis, typically, a process of
verification involves calling a chain of API, and we can deduce whether
the communication process is vulnerable by detecting whether the
function call process matches a certain model. For example, when using
OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
we should verify the certificate by calling the function
SSL_get_peer_certificate() to get the certificate. If the source code
does not match this model, then we can deduce this code is vulnerable.
What’ more , Gnutls is the same as Openssl.

The static analysis result:
/xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c
xfce_mailwatch_net_conn_make_secure()
We provide this result to help developers to locate the problem faster.

To verify the result:
一. Hostname verification:
1.configure xface4-mailwatch-plugin:
IMAP(SSL) :imap.163.com
Username : 598105904
Password : Your password
Advanced: Use SSL/TLS on alternate port

2. change /etc/hosts in order to simulate the DNS hijack
113.108.16.116  imap.163.com
   (113.108.16.116 is QQ’s imap server)

3. run xfce4-mailwatch-plugin to fetch the mail

4. result : succeed!!!

The fetch succeeded, indicating xface4-mailwatch-plugin didn't check the
hostname against the signee of the certificate.

二.Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.
2. run xfce4-mailwatch-plugin to fetch the mail.
3. result:succeed!!

The fetch succeeded again and no warning was given, indicating xface4
-mailwatch-plugin didn't check whether the certificate expired or not.

I am running xfce4-mailwatch-plugin 1.2.0-1 in ubuntu 14.04 LTS.
(PS: I have saved the wireshark ssl connecting packages and upload these files.)

for more information about the importance of checking hostname:
see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.

** Affects: xfce4-mailwatch-plugin (Ubuntu)
 Importance: Undecided
 Status: New


** Tags: ssl

** Attachment added: wireshark ssl conneting packages
   
https://bugs.launchpad.net/bugs/1376601/+attachment/4222132/+files/xfce4-mailwatch-plugin.zip

** Information type changed from Private Security to Public

** Description changed:

  Hostname verification is an important step when verifying X509
  certificates, however, people tend to miss the step or to misunderstand
  the APIs when using SSL/TLS, which might cause severe man in the middle
  attack and break the entire TLS mechanism.
  
  We believe that xfce4-mailwatch-plugin didn't check whether the hostname
  matches the name in the SSL certificate and the expired date of the
  certificate.
  
  We found the vulnerability by static analysis, typically, a process of
  verification involves calling a chain of API, and we can deduce whether
  the communication process is vulnerable by detecting whether the
  function call process matches a certain model. For example, when using
  OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
  we should verify the certificate by calling the function
  SSL_get_peer_certificate() to get the certificate. If the source code
  does not match this model, then we can deduce this code is vulnerable.
  What’ more , Gnutls is the same as Openssl.
  
  The static analysis result:
  /xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c
  xfce_mailwatch_net_conn_make_secure()
  We provide this result to help developers to locate the problem faster.
  
  To verify the result:
  一. Hostname verification:
  1.configure xface4-mailwatch-plugin:
  IMAP(SSL) :imap.163.com
  Username : 598105904
  Password : Your password
  Advanced: Use SSL/TLS on alternate port
  
  2. change /etc/hosts in order to simulate the DNS hijack
- 113.108.16.116imap.163.com
-(113.108.16.116 is QQ’s imap server)
+ 113.108.16.116imap.163.com
+    (113.108.16.116 is QQ’s imap server)
  
  3. run xfce4-mailwatch-plugin to fetch the mail
  
  4. result : succeed!!!
  
  The fetch succeeded, indicating xface4-mailwatch-plugin didn't check the
  hostname against the signee of the certificate.
  
  二.Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run xfce4-mailwatch-plugin to fetch the mail.
- 
  3. result:succeed!!
  
  The fetch succeeded again and no warning was given, indicating xface4
  -mailwatch-plugin didn't check whether the certificate expired or not.
  
  I am running 

[Bug 1381936] [NEW] SSL connection is not secure in links

2014-10-16 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in links:
1. miss hostname check when verify x509 certificate
2. miss expired time check when verify x509 certificate

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we prove the vulnerability manually.
Result :we can browse any website with invalid certificate and we won’t get any 
warnings. 

PS:
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: links2 (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1381936

Title:
  SSL connection is not secure in links

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/links2/+bug/1381936/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1381940] [NEW] suck have ssl security problems

2014-10-16 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in suck:
1. miss hostname check when verify x509 certificate
2. miss expired time check when verify x509 certificate

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we prove the vulnerability manually.
Result :we can connect to any server with invalid certificate and we won’t get 
any warnings.

PS:
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: suck (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1381940

Title:
  suck have ssl security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/suck/+bug/1381940/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1381936] Re: SSL connection is not secure in links

2014-10-17 Thread rainkin
I am very glad to receive your responce.
We test links in Ubuntu 12.04.

thanks,
rainkin



-- 原始邮件 --
发件人: Axel Beckert;a...@debian.org;
发送时间: 2014年10月18日(星期六) 凌晨2:51
收件人: rainkin598105...@qq.com; 

主题: [Bug 1381936] Re: SSL connection is not secure in links


Please also state which version of links (or alternatively which version
of Ubuntu) you checked.

-- 
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1381936

Title:
  SSL connection is not secure in links

Status in “links2” package in Ubuntu:
  Incomplete

Bug description:
  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend
  to miss the step or to misunderstand the APIs when using SSL/TLS,
  which might cause severe man in the middle attack and break the entire
  TLS mechanism. And static analysis is a way of finding whether the
  APIs are called correctly.

  Now, we find some SSL problems in links:
  1. miss hostname check when verify x509 certificate
  2. miss expired time check when verify x509 certificate

  More specifically , we can take function SSL_CTX_set_verify() for
  example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
  SSL_VERIFY_NONE, null), we should verify the certificate by calling
  the function SSL_get_peer_certificate() to get the certificate at
  first. Then use X509 APIs or self-define function to verify the
  certificate we get. If the source code does not match this model, then
  we can deduce this code is vulnerable. And other APIs have similar
  problems.

  To verify the result we make, we prove the vulnerability manually.
  Result :we can browse any website with invalid certificate and we won’t get 
any warnings. 

  PS:
  for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.

  Thanks.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/links2/+bug/1381936/+subscriptions

** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in links:
  1. miss hostname check when verify x509 certificate
  2. miss expired time check when verify x509 certificate
  
  More specifically , we can take function SSL_CTX_set_verify() for
  example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
  SSL_VERIFY_NONE, null), we should verify the certificate by calling the
  function SSL_get_peer_certificate() to get the certificate at first.
  Then use X509 APIs or self-define function to verify the certificate we
  get. If the source code does not match this model, then we can deduce
  this code is vulnerable. And other APIs have similar problems.
  
  To verify the result we make, we prove the vulnerability manually.
- Result :we can browse any website with invalid certificate and we won’t get 
any warnings. 
+ Result :we can browse any website with invalid certificate and we won’t get 
any warnings.
  
  PS:
+ We test links in Ubunut 12.04.
  for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1381936

Title:
  SSL connection is not secure in links

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/links2/+bug/1381936/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380298] Re: some SSL security problems

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
+ 
+ Now we just check whether a software verify the certitiface chain when
+ using Openssl.
+ 
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  *  set VERIFY_PEER flag before the establishment of a SSL connection
+  *  OPENSSL will drop connection during handshake if verification fails
+  *  No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+   
+ if(   SSL_get_peer_certificate(ssl)!=NULL
+   
+   SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+ 
+//FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ ....
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 
+ 二. The analysis result 
  
  Now, we find some SSL problems in crtmpserver, the following is details:
  
  -
  file : crtmpserver-apps/crtmpserver-1.0~dfsg/thelib/src/protocols/ssl 
/outboundsslprotocol.cpp
  -
  function : OutboundSSLProtocol::DoHandshake()
  -
  SSL method : \
  -
  SSL_CTX_set_verify() argument :SSL_VERIFY_NONE
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate():NO
  -
  call  SSL_get_verify_result():  NO
  -
  
- According to the above result, we think the SSL connection in
- crtmpserver is not secure.
+ According to the above result, we think crtmpserver doesn't check the
+ certificate chain when using OPENSSL.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate. If the
- source code does not match this model, then we can deduce this code is
- vulnerable. And other APIs have similar problems.
  
  PS: for 

[Bug 1380304] Re: perdition have some SSL security problems

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
+ 
+ Now we just check whether a software verify the certitiface chain when
+ using Openssl.
+ 
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
  
  Now, we find some SSL problems in perdition, the following is details:
  
  -
  file : perdition/perdition-1.19~rc4/perdition/ssl.c
  -
  function : __perdition_ssl_connection
  -
  SSL method :  SSLv23
  -
  SSL_CTX_set_verify() argument : SSL_VERIFY_PEER
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : YES (but accept 
self-signed certificate  expired certificate)
  -
  call SSL_get_peer_certificate(): NO
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in perdition
  is not secure .perdition can accept self-signed certificate 
  certificate, which means MITM attack is possible.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380304

Title:
  perdition have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/perdition/+bug/1380304/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380435] Re: epic5's SSL connection is not secure

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
+ 
+ Now we just check whether a software verify the certitiface chain when
+ using Openssl.
+ 
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
  
  Now, we find some SSL problems in epic5, the following is details:
  
  -
  file : epic5/epic5-1.1.2/source/ssl.c
  -
  function : ssl_connect
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in epic5 is
  not secure.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
  
+ 三. How we prove the result we got.
  To verify the result we make, we attack the software manually.
  
- 一.Hostname verification
- 1. change /etc/hosts in order to simulate the DNS hijack
- 46.137.23.30  attacker.com
-(46.137.23.30 is a normal irc server)
- 
- 2. #rainkin@rainkin:~$ epic5 rainkin attacker.com:6697:::OPN:irc-ssl
- 
- 3. result

[Bug 1380304] Re: perdition have some SSL security problems

2014-10-19 Thread rainkin
** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
- Now we just check whether a software verify the certitiface chain when
- using Openssl.
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software check the certificate chain or not?
  We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
  Typically, when Openssl clients want to verify a certificate, there are
  the following choices:
  
  1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
  [Example 1]
-  /**
-  * set VERIFY_PEER flag before the establishment of a SSL connection
-  * OPENSSL will drop connection during handshake if verification fails
-  * No custom callback function used.
-   */
-  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
  
  [Example 2]
  
  //check the built-in verification result after the SSL handshake
  
  if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
  {
-//PASS
+    //PASS
  }
  else
  {
-   //FAIL
+   //FAIL
  }
  
  2. Using custom verification.
  
  [Example 3]
  X509* usrcert = SSL_get_peer_certificate(ssl);
  rootCertStore = X509_STORE_new();
  .. ..
  ctx = X509_STORE_CTX_new();
  ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
  ret = X509_verify_cert(ctx)
  
  This example read the certificate out using SSL_get_peer_certificate
  API. Then it use X509 API suite to do certificate verification. X509 API
  is part of OPENSSL library. Theoretically, a developer can use any API
  in any libraries to do this verification, but in practice, we only
  identify the case above: using X509 API suite.
  
  3. Add restrictions or relaxations to built-in certificate verification
  
  The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
  By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
  
  [Example 4]
  SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
  static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
  {
  
  
  return preverify_ok;
  }
  
  二. The analysis result
  
  Now, we find some SSL problems in perdition, the following is details:
  
  -
  file : perdition/perdition-1.19~rc4/perdition/ssl.c
  -
  function : __perdition_ssl_connection
  -
  SSL method :  SSLv23
  -
  SSL_CTX_set_verify() argument : SSL_VERIFY_PEER
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : YES (but accept 
self-signed certificate  expired certificate)
  -
  call SSL_get_peer_certificate(): NO
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in perdition
  is not secure .perdition can accept self-signed certificate 
  certificate, which means MITM attack is possible.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380304

Title:
  perdition have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/perdition/+bug/1380304/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380435] Re: epic5's SSL connection is not secure

2014-10-19 Thread rainkin
** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
- Now we just check whether a software verify the certitiface chain when
- using Openssl.
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software check the certificate chain or not?
  We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
  Typically, when Openssl clients want to verify a certificate, there are
  the following choices:
  
  1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
  [Example 1]
-  /**
-  * set VERIFY_PEER flag before the establishment of a SSL connection
-  * OPENSSL will drop connection during handshake if verification fails
-  * No custom callback function used.
-   */
-  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
  
  [Example 2]
  
  //check the built-in verification result after the SSL handshake
  
  if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
  {
-//PASS
+    //PASS
  }
  else
  {
-   //FAIL
+   //FAIL
  }
  
  2. Using custom verification.
  
  [Example 3]
  X509* usrcert = SSL_get_peer_certificate(ssl);
  rootCertStore = X509_STORE_new();
  .. ..
  ctx = X509_STORE_CTX_new();
  ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
  ret = X509_verify_cert(ctx)
  
  This example read the certificate out using SSL_get_peer_certificate
  API. Then it use X509 API suite to do certificate verification. X509 API
  is part of OPENSSL library. Theoretically, a developer can use any API
  in any libraries to do this verification, but in practice, we only
  identify the case above: using X509 API suite.
  
  3. Add restrictions or relaxations to built-in certificate verification
  
  The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
  By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
  
  [Example 4]
  SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
  static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
  {
  
  
  return preverify_ok;
  }
  
  二. The analysis result
  
  Now, we find some SSL problems in epic5, the following is details:
  
  -
  file : epic5/epic5-1.1.2/source/ssl.c
  -
  function : ssl_connect
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in epic5 is
  not secure.
  
- 
  三. How we prove the result we got.
  To verify the result we make, we attack the software manually.
  
  1. change the system time to 2200 to guarantee the certificate to be
  expired.
  
  2. run epic5 to connect to a normal irc server.
  
  3. result:succeed!!
  
  The fetch succeeded again and no warning was given, indicating the
  software didn't check whether the certificate expired or not.
  
  PS: I have saved the SSL connection Wireshark packages, and upload these 
files.
  for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

[Bug 1380298] Re: some SSL security problems

2014-10-19 Thread rainkin
** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
- Now we just check whether a software verify the certitiface chain when
- using Openssl.
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software check the certificate chain or not?
  We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
  Typically, when Openssl clients want to verify a certificate, there are
  the following choices:
  
  1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
  [Example 1]
   /**
   *  set VERIFY_PEER flag before the establishment of a SSL connection
   *  OPENSSL will drop connection during handshake if verification fails
   *  No custom callback function used.
    */
   SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
  
  [Example 2]
  
  //check the built-in verification result after the SSL handshake
  
  if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
  {
     //PASS
  }
  else
  {
     //FAIL
  }
  
  2. Using custom verification.
  
  [Example 3]
  X509* usrcert = SSL_get_peer_certificate(ssl);
  rootCertStore = X509_STORE_new();
  ....
  ctx = X509_STORE_CTX_new();
  ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
  ret = X509_verify_cert(ctx)
  
  This example read the certificate out using SSL_get_peer_certificate
  API. Then it use X509 API suite to do certificate verification. X509 API
  is part of OPENSSL library. Theoretically, a developer can use any API
  in any libraries to do this verification, but in practice, we only
  identify the case above: using X509 API suite.
  
  3. Add restrictions or relaxations to built-in certificate verification
  
  The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
  By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
  
  [Example 4]
  SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
  static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
  {
  
  
  return preverify_ok;
  }
  
  二. The analysis result
  
  Now, we find some SSL problems in crtmpserver, the following is details:
  
  -
  file : crtmpserver-apps/crtmpserver-1.0~dfsg/thelib/src/protocols/ssl 
/outboundsslprotocol.cpp
  -
  function : OutboundSSLProtocol::DoHandshake()
  -
  SSL method : \
  -
  SSL_CTX_set_verify() argument :SSL_VERIFY_NONE
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate():NO
  -
  call  SSL_get_verify_result():  NO
  -
  
  According to the above result, we think crtmpserver doesn't check the
  certificate chain when using OPENSSL.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380298

Title:
  some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/crtmpserver/+bug/1380298/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380458] Re: dma have some SSL security problems

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
+ 
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
+ 
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
  
  Now, we find some SSL problems in dma, the following is details:
  
  -
  file : dma/dma-0.0.2010.06.17/crypto.c
  -
  function : smtp_init_crypto
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in dma is not
- secure. For instance, missing hostname  or expired time check when
- verifying x509  certificate.
+ secure.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ 三. How we prove the result we got?
  
  To verify the result we make, we attack the software manually.
  
  At first, we should configure the 

[Bug 1380439] Re: ftp-ssl's ssl connection is not secure

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
  
- Now, we find some SSL problems in ftp-ssl :
- 1. ftp-ssl miss hostname check when verify x509 certificate
- 2. ftp-ssl miss expired time check when verify x509 certificate
+ Recently, our group is trying to find SSL security problems by static 
analysis. When using Openssl, people tend to miss the step or to misunderstand 
the APIs when using SSL/TLS, which might cause severe man in the middle attack 
and break the entire TLS mechanism. And static analysis is a way of finding 
whether the APIs are called correctly.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
+ 
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
+ 
+ Now, we find some SSL problems in ftp-ssl, the following is details:
+ 
+ 
+ -
+ function : OutboundSSLProtocol::DoHandshake()
+ -
+ SSL method : \
+ -
+ SSL_CTX_set_verify() argument : SSL_VERIFY_NONE
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
+ -
+ call SSL_get_peer_certificate(): NO
+ -
+ call SSL_get_verify_result(): NO
+ -
+ 
+ According to the above result, we think crtmpserver doesn't check the
+ certificate chain when using OPENSSL.
  
  To verify the result we make, we attack the software manually.
  
  we take  expired time check for example :
  1. change the system time to 2200 to guarantee the certificate to be 

[Bug 1380453] Re: epic4 have some SSL security problems

2014-10-19 Thread rainkin
 attacker.com
+    (46.137.23.30 is a normal irc server)
  
  2. #rainkin@rainkin:~$ epic4 rainkin attacker.com:6697:::OPN:irc-ssl
  
  3. result : succeed!!!
  
  The fetch succeeded, indicating the software didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  
  2. run epic4 to connect to a normal irc server.
  
  3. result:succeed!!
  
  The fetch succeeded again and no warning was given, indicating the
  software didn't check whether the certificate expired or not.
  
  PS: I have saved the SSL connection Wireshark packages, and upload these 
files.
  for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
  The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
  Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software check the certificate chain or not?
  We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
  Typically, when Openssl clients want to verify a certificate, there are
  the following choices:
  
  1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
  [Example 1]
-  /**
-  * set VERIFY_PEER flag before the establishment of a SSL connection
-  * OPENSSL will drop connection during handshake if verification fails
-  * No custom callback function used.
-   */
-  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
  
  [Example 2]
  
  //check the built-in verification result after the SSL handshake
  
  if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
  {
-//PASS
+    //PASS
  }
  else
  {
-   //FAIL
+   //FAIL
  }
  
  2. Using custom verification.
  
  [Example 3]
  X509* usrcert = SSL_get_peer_certificate(ssl);
  rootCertStore = X509_STORE_new();
  .. ..
  ctx = X509_STORE_CTX_new();
  ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
  ret = X509_verify_cert(ctx)
  
  This example read the certificate out using SSL_get_peer_certificate
  API. Then it use X509 API suite to do certificate verification. X509 API
  is part of OPENSSL library. Theoretically, a developer can use any API
  in any libraries to do this verification, but in practice, we only
  identify the case above: using X509 API suite.
  
  3. Add restrictions or relaxations to built-in certificate verification
  
  The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
  By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
  
  [Example 4]
  SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
  static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
  {
  
  
  return preverify_ok;
  }
  
  二. The analysis result
  Now, we find some SSL problems in epic4, the following is details:
  
  -
  file : epic4/epic4-2.10.1/source/ssl.c
  -
  function : SSL_FD_init
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in epic4 is
  not secure.
  
- More specifically

[Bug 1380439] Re: ftp-ssl's ssl connection is not secure

2014-10-19 Thread rainkin
** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
  The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
  Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software check the certificate chain or not?
  We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
  Typically, when Openssl clients want to verify a certificate, there are
  the following choices:
  
  1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
  [Example 1]
   /**
   * set VERIFY_PEER flag before the establishment of a SSL connection
   * OPENSSL will drop connection during handshake if verification fails
   * No custom callback function used.
    */
   SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
  
  [Example 2]
  
  //check the built-in verification result after the SSL handshake
  
  if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
  {
     //PASS
  }
  else
  {
    //FAIL
  }
  
  2. Using custom verification.
  
  [Example 3]
  X509* usrcert = SSL_get_peer_certificate(ssl);
  rootCertStore = X509_STORE_new();
  .. ..
  ctx = X509_STORE_CTX_new();
  ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
  ret = X509_verify_cert(ctx)
  
  This example read the certificate out using SSL_get_peer_certificate
  API. Then it use X509 API suite to do certificate verification. X509 API
  is part of OPENSSL library. Theoretically, a developer can use any API
  in any libraries to do this verification, but in practice, we only
  identify the case above: using X509 API suite.
  
  3. Add restrictions or relaxations to built-in certificate verification
  
  The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
  By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
  
  [Example 4]
  SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
  static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
  {
  
  
  return preverify_ok;
  }
  
  二. The analysis result
  
  Now, we find some SSL problems in ftp-ssl, the following is details:
  
- ..(add a minute later)
+ 
+ -
+ function : ssl_init
+ -
+ SSL method : SSLv23
+ -
+ call SSL_CTX_set_verify() : NOT FOUND
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
+ -
+ call SSL_get_peer_certificate(): NO
+ -
+ call SSL_get_verify_result(): NO
+ -
  
  According to the above result, we think crtmpserver doesn't check the
  certificate chain when using OPENSSL.
  
  To verify the result we make, we attack the software manually.
  
  we take  expired time check for example :
  1. change the system time to 2200 to guarantee the certificate to be expired.
  
  2. run command : ftp-ssl  -z debug 192.168.68.130
  (PS:192.168.68.130 is a norml ftp server)
  
  3. result:succeed!!
  
  The fetch succeeded again and no warning was given, indicating the
  software didn't check whether the certificate expired or not.
  
  PS:
  for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

** Description changed:

  Recently, our group is trying to find SSL security problems by static
  analysis. When using Openssl, people tend to miss the step or to
  misunderstand the APIs when using SSL/TLS, which might cause severe man
  in the middle attack and break the entire TLS mechanism. And static
  analysis is a way of finding whether the APIs are called correctly.
  
  The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
  Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
  一. How we ensure whether a software 

[Bug 1380449] Re: citadel-client have some ssl security problems

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
  
- Now, we find some SSL problems in citadel-client:
- 1. miss hostname check when verify x509 certificate
- 2. miss expired time check when verify x509 certificate
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
+ 
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
+ 
+ Now, we find some SSL problems in citadel-client, the following is
+ details:
+ 
+ -
+ function : CtdlIPCStartEncryption
+ -
+ SSL method : SSLv23
+ -
+ call SSL_CTX_set_verify() : NOT FOUND
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
+ -
+ call SSL_get_peer_certificate(): NO
+ -
+ call SSL_get_verify_result(): NO
+ -
+ 
+ According to the above result, we think citadel-client doesn't check the
+ certificate chain when using OPENSSL.
+ 
+ 三. How we prove the result we got?
  
  To verify the result we make, we attack the software manually.
  
  we take expired time check for example :
  1. change the system time to 2200 to guarantee 

[Bug 1380452] Re: apf-client doesn't check hostname or expired time when verifying x509 certificate

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
  
- Now, we find some SSL problems in apf-client:
- 1. miss hostname check when verify x509 certificate
- 2. miss expired time check when verify x509 certificate
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
+ 
+ Now, we find some SSL problems in apf-client, the following is details:
+ 
+ -
+ function : http_proxy_client
+ -
+ SSL method : SSLv23
+ -
+ call SSL_CTX_set_verify() : NOT FOUND
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
+ -
+ call SSL_get_peer_certificate(): YES
+ -
+ call SSL_get_verify_result(): NO
+ -
+ 
+ According to the above result, we think apf-client doesn't check the
+ certificate chain when using OPENSSL.
+ 
+ 三. How we prove the result we got?
  To verify the result we make, we attack the software manually.
- 一. hostnmae check:
- 1. configure the file /etc/hosts in order to simulate DNS hijack:
-  hackbyfun.com 

[Bug 1381936] Re: SSL connection is not secure in links

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
  
- Now, we find some SSL problems in links:
- 1. miss hostname check when verify x509 certificate
- 2. miss expired time check when verify x509 certificate
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
- To verify the result we make, we prove the vulnerability manually.
- Result :we can browse any website with invalid certificate and we won’t get 
any warnings.
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
+ 
+ Now, we find some SSL problems in links, the following is details:
+ 
+ -
+ function : ssl_want_read()
+connected()
+ -
+ SSL method : SSLv23
+ -
+ SSL_CTX_set_verify() argument : SSL_VERIFY_PEER
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : YES(accept self-signed 
certificate)
+ -
+ call SSL_get_peer_certificate(): /
+ -
+ call SSL_get_verify_result(): /
+ -
+ 
+ According to the above result, we think links is not secure. links can
+ accept self-signed certificate, we think 

[Bug 1381940] Re: suck have ssl security problems

2014-10-19 Thread rainkin
** Description changed:

- Recently, we are trying to find SSL security problems by static
- analysis. For example, as we all know, Hostname verification is an
- important step when verifying X509 certificates, however, people tend to
- miss the step or to misunderstand the APIs when using SSL/TLS, which
- might cause severe man in the middle attack and break the entire TLS
- mechanism. And static analysis is a way of finding whether the APIs are
- called correctly.
+ Recently, our group is trying to find SSL security problems by static
+ analysis. When using Openssl, people tend to miss the step or to
+ misunderstand the APIs when using SSL/TLS, which might cause severe man
+ in the middle attack and break the entire TLS mechanism. And static
+ analysis is a way of finding whether the APIs are called correctly.
  
- Now, we find some SSL problems in suck:
- 1. miss hostname check when verify x509 certificate
- 2. miss expired time check when verify x509 certificate
+ The source code we analysis was from ubuntu: apt-get source package 
name.And we use this command in Ubuntu 12.04.
+ Now we just check whether a software verify the certitiface chain when using 
Openssl.
  
- More specifically , we can take function SSL_CTX_set_verify() for
- example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
- SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first.
- Then use X509 APIs or self-define function to verify the certificate we
- get. If the source code does not match this model, then we can deduce
- this code is vulnerable. And other APIs have similar problems.
+ 一. How we ensure whether a software check the certificate chain or not?
+ We make a matching algorithm. If source code doesn't match this, the software 
is not secure.
  
- To verify the result we make, we prove the vulnerability manually.
- Result :we can connect to any server with invalid certificate and we won’t 
get any warnings.
+ Typically, when Openssl clients want to verify a certificate, there are
+ the following choices:
+ 
+ 1. Using built-in certificate verification(chain of trust verification, 
expired validation, etc)
+ [Example 1]
+  /**
+  * set VERIFY_PEER flag before the establishment of a SSL connection
+  * OPENSSL will drop connection during handshake if verification fails
+  * No custom callback function used.
+   */
+  SSL_CTX_set_verify(ctx,VERIFY_PEER,NULL);
+ 
+ [Example 2]
+ 
+ //check the built-in verification result after the SSL handshake
+ 
+ if(SSL_get_peer_certificate(ssl)!=NULL  
SSL_get_verify_result(ssl)==X509_V_OK)
+ {
+//PASS
+ }
+ else
+ {
+   //FAIL
+ }
+ 
+ 2. Using custom verification.
+ 
+ [Example 3]
+ X509* usrcert = SSL_get_peer_certificate(ssl);
+ rootCertStore = X509_STORE_new();
+ .. ..
+ ctx = X509_STORE_CTX_new();
+ ret = X509_STORE_CTX_init(ctx,rootCertStore,usrCert,NULL);
+ ret = X509_verify_cert(ctx)
+ 
+ This example read the certificate out using SSL_get_peer_certificate
+ API. Then it use X509 API suite to do certificate verification. X509 API
+ is part of OPENSSL library. Theoretically, a developer can use any API
+ in any libraries to do this verification, but in practice, we only
+ identify the case above: using X509 API suite.
+ 
+ 3. Add restrictions or relaxations to built-in certificate verification
+ 
+ The built-in certificate verification in OPENSSL library can be extended by 
using custom callback functions. By default, this callback option is NULL, 
indicating completely use built-in verification.
+ By adding this callback function, the developer can decide if they accept the 
verify result by openssl, and they can modify the result whenever they what.
+ 
+ [Example 4]
+ SSL_CTX_set_verify(ctx,VERIFY_PEER,mycallback);
+ static mycallback(int preverify_ok, X509_STORE_CTX *ctx)
+ {
+ 
+ 
+ return preverify_ok;
+ }
+ 
+ 二. The analysis result
+ 
+ Now, we find some SSL problems in suck, the following is details:
+ 
+ -
+ function : connect_to_nntphost()
+ -
+ SSL method : SSLv23
+ -
+ call SSL_CTX_set_verify() : NOT FOUND
+ -
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
+ -
+ call SSL_get_peer_certificate(): NO
+ -
+ call SSL_get_verify_result(): NO
+ -
+ 
+ According to the above result, we think suck doesn't check the
+ certificate chain.
  
  PS:
+ We test suck in Ubunut 12.04.
  for more information, you can see the paper: 

[Bug 1378617] [NEW] xxxterm has SSL security problems

2014-10-07 Thread rainkin
Public bug reported:

Hostname verification is an important step when verifying X509
certificates, however, people tend to miss the step or to misunderstand
the APIs when using SSL/TLS, which might cause severe man in the middle
attack and break the entire TLS mechanism.

We believe that xxxterm didn't check whether the hostname matches the
name in the SSL certificate and the expired date of the certificate.

We found the vulnerability by static analysis, typically, a process of
verification involves calling a chain of API, and we can deduce whether
the communication process is vulnerable by detecting whether the
function call process matches a certain model. For example, when using
OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
we should verify the certificate by calling the function
SSL_get_peer_certificate() to get the certificate. If the source code
does not match this model, then we can deduce this code is vulnerable.
What’ more , Gnutls is the same as Openssl.


This is the result for xxxterm:
/xxxterm-1.10.0/xxxterm.c have problems. 
Host name verification missing

We provide this result to help developers to locate the problem faster.


To verify the result:
一. Hostname check
1.configure /etc/hosts in order to simulate DNS hijack
  42.62.48.90 www.facebook.com 
  # 42.62.48.90 is the ip of i.mi.com

2. visit the website https://www.facebook.com with xxxterm

3. result : connecting succeed without any warning!!!


The fetch succeeded, indicating xxxterm didn't check the hostname against the 
signee of the certificate.

二.Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.
2. run xxxterm to visit any https website, such as https://www.youtube.com.
3. result : succeed without any warning!!

The fetch succeeded again and no warning was given, indicating xxxterm
didn't check whether the certificate expired or not.

I am running xxxterm 1.11.3-1.2 in ubuntu 14.04 LTS.
I have save the SSL connecting packages and upload these wireshark files.

for more information about the importance of checking hostname:
see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.

** Affects: xxxterm (Ubuntu)
 Importance: Undecided
 Status: New


** Tags: ssl

** Attachment added: wireshark ssl connecting packages
   
https://bugs.launchpad.net/bugs/1378617/+attachment/4227990/+files/xxxterm.zip

** Information type changed from Private Security to Public

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1378617

Title:
  xxxterm has  SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xxxterm/+bug/1378617/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380022] [NEW] aiccu's SSL connection is not secure

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in aiccu, the following is details:

1. 
/aiccu-20070115/common/common.c
 Certificate verification missing

Still vulnerable in Ubunutu 14.04
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/aiccu/trusty/view/head:/common/common.c;

2. 
/aiccu-20070115/common/common.c
 Host name verification missing

Still vulnerable in Ubunutu 14.04
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/aiccu/trusty/view/head:/common/common.c;

PS: for more information, you can see the paper:  
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, my email : rainkin1...@gmail.com

Thanks.

** Affects: aiccu (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public

** Information type changed from Public to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380022

Title:
  aiccu's SSL connection is not secure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/aiccu/+bug/1380022/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1376592] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Information type changed from Public to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376592

Title:
  X509 certificate verification problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/freetds/+bug/1376592/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1378617] Re: xxxterm has SSL security problems

2014-10-11 Thread rainkin
** Information type changed from Public to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1378617

Title:
  xxxterm has  SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xxxterm/+bug/1378617/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1376595] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Information type changed from Public to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376595

Title:
  X509 certificate verification problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/scrollz/+bug/1376595/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380022] Re: aiccu's SSL connection is not secure

2014-10-11 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in aiccu, the following is details:
  
- 1. 
+ 1.
  /aiccu-20070115/common/common.c
-  Certificate verification missing
+  Certificate chain verification is missing
  
- Still vulnerable in Ubunutu 14.04
- 
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/aiccu/trusty/view/head:/common/common.c;
+ 2.
+ /aiccu-20070115/common/common.c
+  Hostname verification is missing
  
- 2. 
- /aiccu-20070115/common/common.c
-  Host name verification missing
- 
- Still vulnerable in Ubunutu 14.04
- 
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/aiccu/trusty/view/head:/common/common.c;
+ More specifically , we can take hostname check for example, the function
+ verify_certificate() can only guarantee the validity of the certificate
+ but cannot guarantee that the host you are trying to connect is the one
+ you intend to visit, which may lead to man-in-the-middle attack or other
+ security issues. And other APIs have similar problems.
  
  PS: for more information, you can see the paper:  
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, my email : rainkin1...@gmail.com
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380022

Title:
  aiccu's SSL connection is not secure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/aiccu/+bug/1380022/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380031] [NEW] hostname and certificate chain check missing when verifying X509 certificate

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in charybdis, the following is details:

1.
/charybdis-3.3.0/libratbox/src/gnutls.c

Certificate chain verification is missing

2.
/charybdis-3.3.0/libratbox/src/gnutls.c

 Hostname verification is missing

More specifically , we can take hostname check for example, the function
verify_certificate() can only guarantee the validity of the certificate
but cannot guarantee that the host you are trying to connect is the one
you intend to visit, which may lead to man-in-the-middle attack or other
security issues. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, my email : rainkin1...@gmail.com

Thanks.

** Affects: charybdis (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380031

Title:
  hostname and certificate chain check missing when verifying X509
  certificate

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/charybdis/+bug/1380031/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1376592] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Description changed:

- Hostname verification is an important step when verifying X509
- certificates, however, people tend to miss the step or to misunderstand
- the APIs when using SSL/TLS, which might cause severe man in the middle
- attack and break the entire TLS mechanism.
  
- We believe that freetds-bin didn't check whether the hostname matches
- the name in the SSL certificate and the expired date of the certificate.
+ Recently, we are trying to find SSL security problems by static anaylsis.
+ For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- We found the vulnerability by static analysis, typically, a process of
- verification involves calling a chain of API, and we can deduce whether
- the communication process is vulnerable by detecting whether the
- function call process matches a certain model. For example, when using
- OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
- we should verify the certificate by calling the function
- SSL_get_peer_certificate() to get the certificate. If the source code
- does not match this model, then we can deduce this code is vulnerable.
- What’ more , Gnutls is the same as Openssl.
+ During the experiment, we find that freetds-bin didn't check whether the
+ hostname matches the name in the SSL certificate and the expired date of
+ the certificate.
  
- To verify the result:
+ 
+ To verify the result, we attack the software manually:
  
  一.Hostname verification:
  1. configure the file freetds.conf :
     # A typical Microsoft server
  [sqlserver2000]
  host = hackbyfun.sqlserver.com
  port = 1433
  tds version = 8.0
  encrpytion = require
  2.wirte the file /etc/hosts in order to simulate DNS hijack:
    10.214.146.123 hackbyfun.sqlserver.com
   (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )
  
  3.connect with freetds-bin
  tsql -S sqlserver2000 -U sa -P your password
  
  4.result:connect succeed!!
  
  The fetch succeeded, indicating freetds-bin didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. the same as the above process. Run freetds-bin to connect a normal sql 
server
  3. result :connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating freetds-
  bin didn't check whether the certificate expired or not.
  
  (PS: I have saved the wireshark packages, and upload these files)
  
  I am running freetds-bin 9.1-5 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

** Description changed:

- 
  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
  During the experiment, we find that freetds-bin didn't check whether the
  hostname matches the name in the SSL certificate and the expired date of
  the certificate.
- 
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification:
  1. configure the file freetds.conf :
     # A typical Microsoft server
  [sqlserver2000]
  host = hackbyfun.sqlserver.com
  port = 1433
  tds version = 8.0
  encrpytion = require
  2.wirte the file /etc/hosts in order to simulate DNS hijack:
    10.214.146.123 hackbyfun.sqlserver.com
   (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )
  
  3.connect with freetds-bin
  tsql -S sqlserver2000 -U sa -P your password
  
  4.result:connect succeed!!
  
  The fetch succeeded, indicating freetds-bin didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. the same as the above process. Run freetds-bin to connect a normal sql 
server
  3. result :connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating freetds-
  bin didn't check whether the certificate expired or not.
  
  (PS: I have saved the wireshark packages, and upload these files)
  
  I am running freetds-bin 9.1-5 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to 

[Bug 1376595] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Description changed:

- Hostname verification is an important step when verifying X509
- certificates, however, people tend to miss the step or to misunderstand
- the APIs when using SSL/TLS, which might cause severe man in the middle
- attack and break the entire TLS mechanism.
+ Recently, we are trying to find SSL security problems by static anaylsis.
+ For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- We believe that scrollz didn't check whether the hostname matches the
- name in the SSL certificate and the expired date of the certificate.
+ During the experiment, we find that freetds-bin didn't check whether the
+ hostname matches the name in the SSL certificate and the expired date of
+ the certificate.The followind is details:
  
- We found the vulnerability by static analysis, typically, a process of
- verification involves calling a chain of API, and we can deduce whether
- the communication process is vulnerable by detecting whether the
- function call process matches a certain model. For example, when using
- OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
- we should verify the certificate by calling the function
- SSL_get_peer_certificate() to get the certificate. If the source code
- does not match this model, then we can deduce this code is vulnerable.
- What’ more , Gnutls is the same as Openssl.
+ 1.
+ function: /scrollz-2.1/source/server.c login_to_server()
+ problem:  Hostname verification missing
  
- Static analysis result :
- /scrollz-2.1/source/server.c login_to_server() have problems.
+ 2. 
+ function: /scrollz-2.1/source/server.c login_to_server()
+ problem:  expired date check missing
  
- We provide this result to help developers to locate the problem faster.
  
- To verify the result:
+ To verify the result, we attack the software manually:
+ 
  一.Hostname verification
  1. write the file /etc/hosts in order to simulate DNS hijack:
  64.32.24.176  irc.mibbit.net
  46.137.23.30  chat.freenode.net
  (PS:exchange the ip between these two irc servers)
  
  2. connecting chat.freenode.net with scrollz
  /server -ssl irc.mibbit.net:6697
  
  3. result : we connected irc.mibbit.net!!
  
  The fetch succeeded, indicating srcollz didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating scrollz
  didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
- 
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376595

Title:
  X509 certificate verification problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/scrollz/+bug/1376595/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1376592] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- During the experiment, we find that freetds-bin didn't check whether the
- hostname matches the name in the SSL certificate and the expired date of
- the certificate.
+ During the experiment, we find that freetds-bin didn't check whether the 
hostname matches the name in the SSL certificate and the expired date of the 
certificate.The following is details:
+ 1. 
+ file: /freetds-0.91/src/tds/net.c
+ problem: Hostname verification missing
+ 
+ 2. 
+ file: /freetds-0.91/src/tds/net.c
+ problem: Hostname verification missing
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification:
  1. configure the file freetds.conf :
     # A typical Microsoft server
  [sqlserver2000]
  host = hackbyfun.sqlserver.com
  port = 1433
  tds version = 8.0
  encrpytion = require
  2.wirte the file /etc/hosts in order to simulate DNS hijack:
    10.214.146.123 hackbyfun.sqlserver.com
   (PS: 10.214.146.123 is a normal sql server ip, its domain name is 
safe.sqlserver.com )
  
  3.connect with freetds-bin
  tsql -S sqlserver2000 -U sa -P your password
  
  4.result:connect succeed!!
  
  The fetch succeeded, indicating freetds-bin didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. the same as the above process. Run freetds-bin to connect a normal sql 
server
  3. result :connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating freetds-
  bin didn't check whether the certificate expired or not.
  
  (PS: I have saved the wireshark packages, and upload these files)
  
  I am running freetds-bin 9.1-5 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376592

Title:
  X509 certificate verification problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/freetds/+bug/1376592/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1376595] Re: X509 certificate verification problem

2014-10-11 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- During the experiment, we find that freetds-bin didn't check whether the
+ During the experiment, we find that scrollz didn't check whether the
  hostname matches the name in the SSL certificate and the expired date of
  the certificate.The followind is details:
  
  1.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem:  Hostname verification missing
  
- 2. 
+ 2.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem:  expired date check missing
- 
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification
  1. write the file /etc/hosts in order to simulate DNS hijack:
  64.32.24.176  irc.mibbit.net
  46.137.23.30  chat.freenode.net
  (PS:exchange the ip between these two irc servers)
  
  2. connecting chat.freenode.net with scrollz
  /server -ssl irc.mibbit.net:6697
  
  3. result : we connected irc.mibbit.net!!
  
  The fetch succeeded, indicating srcollz didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating scrollz
  didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

** No longer affects: scrollz (Ubuntu)

** Summary changed:

- X509 certificate verification problem
+ xface4-mailwatch-plugin have some SSL security problems

** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- During the experiment, we find that scrollz didn't check whether the
- hostname matches the name in the SSL certificate and the expired date of
- the certificate.The followind is details:
+ During the experiment, we find that xface4-mailwatch-plugin didn't check
+ whether the hostname matches the name in the SSL certificate and the
+ expired date of the certificate.The followind is details:
  
  1.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem:  Hostname verification missing
  
  2.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem:  expired date check missing
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification
  1. write the file /etc/hosts in order to simulate DNS hijack:
  64.32.24.176  irc.mibbit.net
  46.137.23.30  chat.freenode.net
  (PS:exchange the ip between these two irc servers)
  
  2. connecting chat.freenode.net with scrollz
  /server -ssl irc.mibbit.net:6697
  
  3. result : we connected irc.mibbit.net!!
  
  The fetch succeeded, indicating srcollz didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating scrollz
  didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1376595

Title:
  xface4-mailwatch-plugin have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xfce4-mailwatch-plugin/+bug/1376595/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380035] [NEW] scrollz doesn't check hostanem and expired time when verifying x509 certificate

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static anaylsis.
For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.

During the experiment, we find that scrollz didn't check whether the
hostname matches the name in the SSL certificate and the expired date of
the certificate.The followind is details:

1.
function: /scrollz-2.1/source/server.c login_to_server()
problem: Hostname verification missing

2.
function: /scrollz-2.1/source/server.c login_to_server()
problem: expired date check missing

To verify the result, we attack the software manually:

一.Hostname verification
1. write the file /etc/hosts in order to simulate DNS hijack:
64.32.24.176 irc.mibbit.net
46.137.23.30 chat.freenode.net
(PS:exchange the ip between these two irc servers)

2. connecting chat.freenode.net with scrollz
/server -ssl irc.mibbit.net:6697

3. result : we connected irc.mibbit.net!!

The fetch succeeded, indicating srcollz didn't check the hostname
against the signee of the certificate.

二. Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.
2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
3. result : connect succeed!!

The fetch succeeded again and no warning was given, indicating scrollz
didn't check whether the certificate expired or not.

I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.

for more information about the importance of checking hostname:
see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf

Thanks.

** Affects: scrollz (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- During the experiment, we find that xface4-mailwatch-plugin didn't check
- whether the hostname matches the name in the SSL certificate and the
- expired date of the certificate.The followind is details:
+ During the experiment, we find that scrollz didn't check whether the
+ hostname matches the name in the SSL certificate and the expired date of
+ the certificate.The followind is details:
  
  1.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem: Hostname verification missing
  
  2.
  function: /scrollz-2.1/source/server.c login_to_server()
  problem: expired date check missing
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification
  1. write the file /etc/hosts in order to simulate DNS hijack:
  64.32.24.176 irc.mibbit.net
  46.137.23.30 chat.freenode.net
  (PS:exchange the ip between these two irc servers)
  
  2. connecting chat.freenode.net with scrollz
  /server -ssl irc.mibbit.net:6697
  
  3. result : we connected irc.mibbit.net!!
  
  The fetch succeeded, indicating srcollz didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating scrollz
  didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380035

Title:
  scrollz doesn't check hostanem and expired time when verifying x509
  certificate

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/scrollz/+bug/1380035/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1376595] Re: xface4-mailwatch-plugin have some SSL security problems

2014-10-11 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
  During the experiment, we find that xface4-mailwatch-plugin didn't check
  whether the hostname matches the name in the SSL certificate and the
  expired date of the certificate.The followind is details:
  
  1.
- function: /scrollz-2.1/source/server.c login_to_server()
+ function: /xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatchnet-conn.c
+   xfce_mailwatch_net_conn_make_secure()
  problem:  Hostname verification missing
  
  2.
- function: /scrollz-2.1/source/server.c login_to_server()
+ function: /xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatchnet-conn.c
+   xfce_mailwatch_net_conn_make_secure()
  problem:  expired date check missing
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification
  1. write the file /etc/hosts in order to simulate DNS hijack:
  64.32.24.176  irc.mibbit.net
  46.137.23.30  chat.freenode.net
  (PS:exchange the ip between these two irc servers)
  
  2. connecting chat.freenode.net with scrollz
  /server -ssl irc.mibbit.net:6697
  
  3. result : we connected irc.mibbit.net!!
  
  The fetch succeeded, indicating srcollz didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
  The fetch succeeded again and no warning was given, indicating scrollz
  didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
  During the experiment, we find that xface4-mailwatch-plugin didn't check
  whether the hostname matches the name in the SSL certificate and the
  expired date of the certificate.The followind is details:
  
  1.
  function: /xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatchnet-conn.c
-   xfce_mailwatch_net_conn_make_secure()
+   xfce_mailwatch_net_conn_make_secure()
  problem:  Hostname verification missing
  
  2.
  function: /xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatchnet-conn.c
-   xfce_mailwatch_net_conn_make_secure()
+   xfce_mailwatch_net_conn_make_secure()
  problem:  expired date check missing
  
  To verify the result, we attack the software manually:
  
  一.Hostname verification
- 1. write the file /etc/hosts in order to simulate DNS hijack:
- 64.32.24.176  irc.mibbit.net
- 46.137.23.30  chat.freenode.net
- (PS:exchange the ip between these two irc servers)
+ 1.configure xface4-mailwatch-plugin:
+ IMAP(SSL) :imap.163.com
+ Username : 598105904
+ Password : Your password
+ Advanced: Use SSL/TLS on alternate port
  
- 2. connecting chat.freenode.net with scrollz
- /server -ssl irc.mibbit.net:6697
+ 2. change /etc/hosts in order to simulate the DNS hijack
+ 113.108.16.116imap.163.com
+(113.108.16.116 is QQ’s imap server)
  
- 3. result : we connected irc.mibbit.net!!
+ 3. run xfce4-mailwatch-plugin to fetch the mail
  
- The fetch succeeded, indicating srcollz didn't check the hostname
+ 4. result : succeed!!!
+ 
+ The fetch succeeded, indicating the software didn't check the hostname
  against the signee of the certificate.
  
  二. Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run scrollz to connect a normal irc server, such as 
irc.mibbit.net(46.137.12.30)
  3. result : connect succeed!!
  
- The fetch succeeded again and no warning was given, indicating scrollz
- didn't check whether the certificate expired or not.
+ The fetch succeeded again and no warning was given, indicating the
+ software didn't check whether the certificate expired or not.
  
  I am running scrollz 2.1-1.1 in ubuntu 14.04 LTS.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

** Description changed:

  Recently, we are trying to find SSL security problems by static anaylsis.
  For example, Hostname verification is an 

[Bug 1378617] Re: xxxterm has SSL security problems

2014-10-11 Thread rainkin
** Description changed:

- Hostname verification is an important step when verifying X509
- certificates, however, people tend to miss the step or to misunderstand
- the APIs when using SSL/TLS, which might cause severe man in the middle
- attack and break the entire TLS mechanism.
+ Recently, we are trying to find SSL security problems by static anaylsis.
+ For example, Hostname verification is an important step when verifying X509 
certificates, however, people tend to miss the step or to misunderstand the 
APIs when using SSL/TLS, which might cause severe man in the middle attack and 
break the entire TLS mechanism.
  
- We believe that xxxterm didn't check whether the hostname matches the
- name in the SSL certificate and the expired date of the certificate.
+ During the experiment, we find that xxxterm didn't check whether the
+ hostname matches the name in the SSL certificate and the expired date of
+ the certificate.The followind is details:
  
- We found the vulnerability by static analysis, typically, a process of
- verification involves calling a chain of API, and we can deduce whether
- the communication process is vulnerable by detecting whether the
- function call process matches a certain model. For example, when using
- OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, null),
- we should verify the certificate by calling the function
- SSL_get_peer_certificate() to get the certificate. If the source code
- does not match this model, then we can deduce this code is vulnerable.
- What’ more , Gnutls is the same as Openssl.
+ 1.
+ file: /xxxterm-1.10.0/xxxterm.c
+ problem: Hostname verification missing
  
+ 2.
+ file: /xxxterm-1.10.0/xxxterm.c
+ problem: expired date check missing
  
- This is the result for xxxterm:
- /xxxterm-1.10.0/xxxterm.c have problems. 
- Host name verification missing
+ To verify the result, we attack the software manually:
  
- We provide this result to help developers to locate the problem faster.
- 
- 
- To verify the result:
  一. Hostname check
  1.configure /etc/hosts in order to simulate DNS hijack
-   42.62.48.90 www.facebook.com 
-   # 42.62.48.90 is the ip of i.mi.com
+   42.62.48.90 www.facebook.com
+   # 42.62.48.90 is the ip of i.mi.com
  
  2. visit the website https://www.facebook.com with xxxterm
  
  3. result : connecting succeed without any warning!!!
  
- 
- The fetch succeeded, indicating xxxterm didn't check the hostname against the 
signee of the certificate.
+ The fetch succeeded, indicating xxxterm didn't check the hostname
+ against the signee of the certificate.
  
  二.Also for expired time check,
  1. change the system time to 2200 to guarantee the certificate to be expired.
  2. run xxxterm to visit any https website, such as https://www.youtube.com.
  3. result : succeed without any warning!!
  
  The fetch succeeded again and no warning was given, indicating xxxterm
  didn't check whether the certificate expired or not.
  
  I am running xxxterm 1.11.3-1.2 in ubuntu 14.04 LTS.
  I have save the SSL connecting packages and upload these wireshark files.
  
  for more information about the importance of checking hostname:
  see http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1378617

Title:
  xxxterm has  SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xxxterm/+bug/1378617/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380039] [NEW] pacemaker-mgmt doesn't chekc expired time and hostname when ssl connecting

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in pacemaker-mgmt, the following is
details:

1.
file : /pacemaker-mgmt-2.0.0+hg1141/lib/mgmt/mgmt_tls_lib.c
problem : Certificate chain verification is missing

2.
file : /pacemaker-mgmt-2.0.0+hg1141/lib/mgmt/mgmt_tls_lib.c
problem : Hostname verification is missing

More specifically , we can take hostname check for example, the function
verify_certificate() can only guarantee the validity of the certificate
but cannot guarantee that the host you are trying to connect is the one
you intend to visit, which may lead to man-in-the-middle attack or other
security issues. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, my email : rainkin1...@gmail.com

Thanks.

** Affects: pacemaker-mgmt (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380039

Title:
  pacemaker-mgmt doesn't chekc expired time and hostname when ssl
  connecting

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pacemaker-mgmt/+bug/1380039/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380038] [NEW] SSL problems: doesn't check certificate chain and hostname when ssl connecting

2014-10-11 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in pacemaker, the following is details:

1.
file :  /pacemaker-1.1.6/lib/common/remote.c 
problem : Certificate chain verification is missing

2.
file : /pacemaker-1.1.6/lib/common/remote.c
problem : Hostname verification is missing

More specifically , we can take hostname check for example, the function
verify_certificate() can only guarantee the validity of the certificate
but cannot guarantee that the host you are trying to connect is the one
you intend to visit, which may lead to man-in-the-middle attack or other
security issues. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, my email : rainkin1...@gmail.com

Thanks.

** Affects: pacemaker (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380038

Title:
  SSL problems: doesn't check certificate chain and hostname when ssl
  connecting

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pacemaker/+bug/1380038/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380298] [NEW] some SSL security problems

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in crtmpserver, the following is details:

-
file : crtmpserver-apps/crtmpserver-1.0~dfsg/thelib/src/protocols/ssl 
/outboundsslprotocol.cpp
-
function : OutboundSSLProtocol::DoHandshake()
-
SSL method : \
-
SSL_CTX_set_verify() argument :SSL_VERIFY_NONE
-
Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
-
call SSL_get_peer_certificate():NO
-
call  SSL_get_verify_result():  NO
-

According to the above result, we think the SSL connection in
crtmpserver is not secure.

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate. If the
source code does not match this model, then we can deduce this code is
vulnerable. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: crtmpserver (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in crtmpserver, the following is details:
  
-   
 function: OutboundSSLProtocol::DoHandshake()
- 
SSL method:  \
-  SSL_CTX_set_verify() argument:  
SSL_VERIFY_NONE
- Have SSL_CTX_set_verify ( SSL_set_verify) callback:  NO
-call SSL_get_peer_certificate():  NO
-  call  SSL_get_verify_result():  
NO
+ 
-function
   |  OutboundSSLProtocol::DoHandshake()
+ SSL method |   \
+ SSL_CTX_set_verify() argument  |   SSL_VERIFY_NONE
+ Have SSL_CTX_set_verify ( SSL_set_verify) callback | NO
+    call SSL_get_peer_certificate():  NO
+  call  SSL_get_verify_result():  
NO
  
  According to the above result, we think the SSL connection in
  crtmpserver is not secure.
  
  More specifically , we can take function SSL_CTX_set_verify() for
  example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
  SSL_VERIFY_NONE, null), we should verify the certificate by calling the
  function SSL_get_peer_certificate() to get the certificate. If the
  source code does not match this model, then we can deduce this code is
  vulnerable. And other APIs have similar problems.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 

[Bug 1380304] Re: perdition have some SSL security problems

2014-10-12 Thread rainkin
** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380304

Title:
  perdition have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/perdition/+bug/1380304/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380435] [NEW] epic5's SSL connection is not secure

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in epic5, the following is details:

-
file : epic5/epic5-1.1.2/source/ssl.c
-
function : ssl_connect
-
SSL method : \
-
call SSL_CTX_set_verify() : NOT FOUND
-
Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
-
call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
-
call SSL_get_verify_result(): NO
-

According to the above result, we think the SSL connection in epic5 is
not secure.

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: epic5 (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in epic5, the following is details:
  
  -
  file : epic5/epic5-1.1.2/source/ssl.c
  -
  function : ssl_connect
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in epic5 is
  not secure.
  
  More specifically , we can take function SSL_CTX_set_verify() for
  example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
  SSL_VERIFY_NONE, null), we should verify the certificate by calling the
- function SSL_get_peer_certificate() to get the certificate at first. If
- the source code does not match this model, then we can deduce this code
- is vulnerable. And other APIs have similar problems.
+ function SSL_get_peer_certificate() to get the certificate at first.
+ Then use X509 APIs or self-define function to verify the certificate we
+ get. If the source code does not match this model, then we can deduce
+ this code is vulnerable. And other APIs have similar problems.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to 

[Bug 1380435] Re: epic5's SSL connection is not secure

2014-10-12 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in epic5, the following is details:
  
  -
  file : epic5/epic5-1.1.2/source/ssl.c
  -
  function : ssl_connect
  -
  SSL method : \
  -
  call SSL_CTX_set_verify() : NOT FOUND
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
  -
  call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
  -
  call SSL_get_verify_result(): NO
  -
  
  According to the above result, we think the SSL connection in epic5 is
  not secure.
  
  More specifically , we can take function SSL_CTX_set_verify() for
  example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
  SSL_VERIFY_NONE, null), we should verify the certificate by calling the
  function SSL_get_peer_certificate() to get the certificate at first.
  Then use X509 APIs or self-define function to verify the certificate we
  get. If the source code does not match this model, then we can deduce
  this code is vulnerable. And other APIs have similar problems.
  
- PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
+ To verify the result we make, we attack the software manually.
+ 
+ 一.Hostname verification
+ 1. change /etc/hosts in order to simulate the DNS hijack
+ 46.137.23.30  attacker.com
+(46.137.23.30 is a normal irc server)
+ 
+ 2. #rainkin@rainkin:~$ epic5 rainkin attacker.com:6697:::OPN:irc-ssl
+ 
+ 3. result : succeed!!!
+ 
+ The fetch succeeded, indicating the software didn't check the hostname
+ against the signee of the certificate.
+ 
+ 二. Also for expired time check,
+ 1. change the system time to 2200 to guarantee the certificate to be expired.
+ 
+ 2. run epic5 to connect to a normal irc server.
+ 
+ 3. result:succeed!!
+ 
+ The fetch succeeded again and no warning was given, indicating the
+ software didn't check whether the certificate expired or not.
+ 
+ PS: I have saved the SSL connection Wireshark packages, and upload these 
files.
+ for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

** Attachment added: wireshark ssl conneting packages
   
https://bugs.launchpad.net/ubuntu/+source/epic5/+bug/1380435/+attachment/4233527/+files/epic5.zip

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380435

Title:
  epic5's SSL connection is not secure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/epic5/+bug/1380435/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380439] [NEW] ftp-ssl's ssl connection is not secure

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in ftp-ssl :
1. ftp-ssl miss hostname check when verify x509 certificate
2. ftp-ssl miss expired time check when verify x509 certificate

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.

we take  expired time check for example :
1. change the system time to 2200 to guarantee the certificate to be expired.

2. run command : ftp-ssl  -z debug 192.168.68.130
(PS:192.168.68.130 is a norml ftp server)

3. result:succeed!!

The fetch succeeded again and no warning was given, indicating the
software didn't check whether the certificate expired or not.

PS:
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: netkit-ftp-ssl (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380439

Title:
  ftp-ssl's ssl connection is not secure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/netkit-ftp-ssl/+bug/1380439/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380449] [NEW] citadel-client have some ssl security problems

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in citadel-client:
1. miss hostname check when verify x509 certificate
2. miss expired time check when verify x509 certificate

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.

we take expired time check for example :
1. change the system time to 2200 to guarantee the certificate to be expired.

2. use citadel-client to connect to a citadel server with ssl

3. result:succeed!!

The fetch succeeded again and no warning was given, indicating the
software didn't check whether the certificate expired.

PS:
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: citadel-client (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380449

Title:
  citadel-client have some ssl security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/citadel-client/+bug/1380449/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380452] [NEW] apf-client doesn't check hostname or expired time when verifying x509 certificate

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in apf-client:
1. miss hostname check when verify x509 certificate
2. miss expired time check when verify x509 certificate

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.
一. hostnmae check:
1. configure the file /etc/hosts in order to simulate DNS hijack:
 hackbyfun.com 127.0.0.1

2.  server(127.0.0.1) : afserver -n 127.0.0.1 -p  -m  -v
 client (127.0.0.1) :  afclient -n hackbyfun.com -p 21 -m  -v 

3. result : succeed!
The fetch succeeded again and no warning was given, indicating the software 
didn't check hostname.

二. expired time check  :
1. change the system time to 2200 to guarantee the certificate to be expired.

2. server : afserver -n 127.0.0.1 -p  -m  -v
client  : afclient -n 127.0.0.1 -p 21 -m  -v 

3. result:succeed!!

The fetch succeeded again and no warning was given, indicating the
software didn't check the certificate expired.

PS:
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: apf (Ubuntu)
 Importance: Undecided
 Status: New

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380452

Title:
  apf-client doesn't  check hostname or expired time when verifying x509
  certificate

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apf/+bug/1380452/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380453] [NEW] epic4 have some SSL security problems

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in epic4, the following is details:

-
file : epic4/epic4-2.10.1/source/ssl.c
-
function : SSL_FD_init
-
SSL method : \
-
call SSL_CTX_set_verify() : NOT FOUND
-
Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
-
call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
-
call SSL_get_verify_result(): NO
-

According to the above result, we think the SSL connection in epic4 is
not secure.

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.

一.Hostname verification
1. change /etc/hosts in order to simulate the DNS hijack
46.137.23.30 attacker.com
   (46.137.23.30 is a normal irc server)

2. #rainkin@rainkin:~$ epic4 rainkin attacker.com:6697:::OPN:irc-ssl

3. result : succeed!!!

The fetch succeeded, indicating the software didn't check the hostname
against the signee of the certificate.

二. Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.

2. run epic4 to connect to a normal irc server.

3. result:succeed!!

The fetch succeeded again and no warning was given, indicating the
software didn't check whether the certificate expired or not.

PS: I have saved the SSL connection Wireshark packages, and upload these files.
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: epic4 (Ubuntu)
 Importance: Undecided
 Status: New

** Attachment added: wireshark ssl conneting packages
   https://bugs.launchpad.net/bugs/1380453/+attachment/4233644/+files/epic4.zip

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380453

Title:
  epic4 have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/epic4/+bug/1380453/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1380458] Re: dma have some SSL security problems

2014-10-12 Thread rainkin
** Attachment added: wireshark ssl conneting packages
   
https://bugs.launchpad.net/ubuntu/+source/dma/+bug/1380458/+attachment/4233649/+files/dma.zip

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380458

Title:
  dma have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dma/+bug/1380458/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1380458] [NEW] dma have some SSL security problems

2014-10-12 Thread rainkin
*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in dma, the following is details:

-
file : dma/dma-0.0.2010.06.17/crypto.c
-
function : smtp_init_crypto
-
SSL method : \
-
call SSL_CTX_set_verify() : NOT FOUND
-
Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
-
call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
-
call SSL_get_verify_result(): NO
-

According to the above result, we think the SSL connection in dma is not
secure. For instance, missing hostname  or expired time check when
verifying x509  certificate.

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.

At first, we should configure the software environment:
1. configure the file /etc/dma/dma.conf:
# $DragonFly: src/etc/dma/dma.conf,v 1.2 2008/02/04 10:11:41 matthias Exp $
#
# Your smarthost (also called relayhost).  Leave blank if you don't want
# smarthost support.
# NOTE: on Debian systems this is handled via debconf!
# Please use dpkg-reconfigure dma to change this value.
#SMARTHOST
SMARTHOST smtp.gmail.com

# Use this SMTP port.  Most users will be fine with the default (25)
#PORT 25
PORT 587

# Path to your alias file.  Just stay with the default.
#ALIASES /etc/aliases

# Path to your spooldir.  Just stay with the default.
#SPOOLDIR /var/spool/dma

# SMTP authentication
AUTHPATH /etc/dma/auth.conf

# Uncomment if yout want TLS/SSL support
SECURETRANSFER

# Uncomment if you want STARTTLS support (only used in combination with
# SECURETRANSFER)
STARTTLS

# Uncomment if you have specified STARTTLS above and it should be allowed
# to fail (opportunistic TLS, use an encrypted connection when available
# but allow an unencrypted one to servers that do not support it)
#OPPORTUNISTIC_TLS

# Path to your local SSL certificate
#CERTFILE

# If you want to use plain text SMTP login without using encryption, change
# the SECURE entry below to INSECURE.  Otherwise plain login will only work
# over a secure connection.  Use this option with caution.
INSECURE

# Uncomment if you want to defer your mails.  This is useful if you are
# behind a dialup line.  You have to submit your mails manually with dma -q
#DEFER

# Uncomment if you want the bounce message to include the complete original
# message, not just the headers.
#FULLBOUNCE

# The internet hostname dma uses to identify the host.
# If not set or empty, the result of gethostname(2) is used.
# If MAILNAME is an absolute path to a file, the first line of this file
# will be used as the hostname.
# NOTE: on Debian systems this is handled via debconf!
# Please use dpkg-reconfigure dma to change this value.
MAILNAME /etc/mailname

# Masquerade envelope from addresses with this address/hostname.
# Use this if mails are not accepted by destination mail servers because
# your sender domain is invalid.
# By default, MASQUERADE is not set.
# Format: MASQUERADE [user@][host]
# Examples:
# MASQUERADE john@  on host hamlet will send all mails as john@hamlet
# MASQUERADE percolator  will send mails as $username@percolator, e.g. 
fish@percolator
# MASQUERADE herb@ert  will send all mails as herb@ert

2. configure the file /etc/dma/auth.conf:
# $DragonFly: src/etc/dma/auth.conf,v 1.1 2008/02/02 18:24:00 matthias Exp $
#
# SMTP authentication entries (currently AUTH LOGIN only)
# Format: user|my.smarthost.example.com:password
598105...@qq.com|smtp.gmail.com:Password

3. configure ~/.muttrc:
set 

[Bug 1380304] Re: perdition have some SSL security problems

2014-10-12 Thread rainkin
** Description changed:

  Recently, we are trying to find SSL security problems by static
  analysis. For example, as we all know, Hostname verification is an
  important step when verifying X509 certificates, however, people tend to
  miss the step or to misunderstand the APIs when using SSL/TLS, which
  might cause severe man in the middle attack and break the entire TLS
  mechanism. And static analysis is a way of finding whether the APIs are
  called correctly.
  
  Now, we find some SSL problems in perdition, the following is details:
  
  -
  file : perdition/perdition-1.19~rc4/perdition/ssl.c
  -
  function : __perdition_ssl_connection
  -
  SSL method :  SSLv23
  -
  SSL_CTX_set_verify() argument : SSL_VERIFY_PEER
  -
  Have SSL_CTX_set_verify ( SSL_set_verify) callback : YES (but accept 
self-signed certificate  expired certificate)
  -
  call SSL_get_peer_certificate(): NO
  -
  call SSL_get_verify_result(): NO
  -
  
- According to the above result, we think the SSL connection in
- crtmpserver is not secure .perdition can accept self-signed certificate
-  certificate, which means MITM attack is possible.
+ According to the above result, we think the SSL connection in perdition
+ is not secure .perdition can accept self-signed certificate 
+ certificate, which means MITM attack is possible.
  
  PS: for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
  and more details you can contact with us, we will be very glad for your 
responce.
  
  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380304

Title:
  perdition have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/perdition/+bug/1380304/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs