[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bacula-users
Subject:    Re: [Bacula-users] Question about bacula and tls
From:       Josh Fisher <jfisher () pvct ! com>
Date:       2015-09-30 14:22:45
Message-ID: 560BF035.4070202 () pvct ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On 9/30/2015 3:18 AM, Egoitz Aurrekoetxea wrote:
> Hi Ana!!
>
> Really thanks for answering my doubts :)
>
> I do answer in black below...
>
>> El 30/9/2015, a las 6:24, Ana Emília M. Arruda 
>> <emiliaarruda@gmail.com <mailto:emiliaarruda@gmail.com>> escribió:
>>
>>
>> On Mon, Sep 28, 2015 at 6:20 PM, Egoitz 
>> Aurrekoetxea<egoitz@ramattack.net <mailto:egoitz@ramattack.net>>wrote:
>>
>>     Good night,
>>
>>
>>
>> ​Yes, you can have certificates from different CA in each side, you 
>> just need to inform the CA correctly for peer verification. How did 
>> you generated your certificates? Do you have a CA and signed them 
>> properly?
>
> I have an own dedicated CA for Bacula systems. One of the things I was 
> trying to get with TLS is the fact that like both sides know the CA 
> public key, they to be able to check if the information received in 
> each side
> because of the other side's sent data in unaltered due to a possible 
> MITM issue. I mean, could I with verify peer ensure that if someone 
> tries to do a MITM won't succeed because both sides know the CA 
> allowed to
> be used in signed certs?. So an attacker doing a signed certificate 
> with a new CA (CA of the attacker for signing the attacking used 
> certificate) won't be able then to inject content in dir and fd 
> dialogue or fd and sd dialogue?.
> Or at least if it does, do each side, the sd, fd or the dir, interrupt 
> the connection and stop the job notifying?.
>

Think of it as 5 different security levels.

Level 0:
    # Data is transmitted as plain text
     TLS Enable = no

Level 1:
     # This level allows opportunistic encryption if the peer chooses, 
or the peer can communicate in plain text.
     TLS Enable = yes
     TLS Require = no
     TLS Verify Peer = no
     TLS Certificate = /etc/bacula/cert.pem
     TLS Key = /etc/bacula/key.pem
     TLS CA Certificate File = /path/to/system/cafile

Level 2:
     # This level requires encryption of data. Any certificate will do, 
even a self-signed certificate.
     TLS Enable = yes
     TLS Require = yes
     TLS Verify Peer = no
     TLS Certificate = /etc/bacula/cert.pem
     TLS Key = /etc/bacula/key.pem
     TLS CA Certificate File = /path/to/system/cafile

Level 3:
     # This level requires encryption and that the certificate presented 
by the peer be signed by a trusted CA
     TLS Enable = yes
     TLS Require = yes
     TLS Verify Peer = yes
     TLS Certificate = /etc/bacula/cert.pem
     TLS Key = /etc/bacula/key.pem
     TLS CA Certificate File = /path/to/system/cafile

Level 4:
     # This level requires encryption and that the certificate presented 
by the peer be signed by a trusted CA
     # and that the certificate have a specific CN
     TLS Enable = yes
     TLS Require = yes
     TLS Verify Peer = yes
     TLS Allowed CN = "some.client.common.name"
     TLS Certificate = /etc/bacula/cert.pem
     TLS Key = /etc/bacula/key.pem
     TLS CA Certificate File = /path/to/system/cafile


As for a MiTM attack, keep in mind that an active attack is harder than 
a passive attack. Even opportunistic encryption with self-signed certs 
protects against passive snooping. Protecting against an active MiTM 
attack requires authentication. Heartbleed bug aside, level 3 means that 
the attacker must somehow acquire certificates signed by a CA in the TLS 
CA Certificate Files of both client and server. Level 4 means that she 
must steal particular certificates. So level 4 makes a MiTM attack very 
difficult.

That said, the real danger is a valid certificate that is stolen or 
compromised. The CA can revoke a certificate, but this does no good 
because, as far as I can tell, Bacula does not check CRLs! Level 3 is 
not very useful without CRL checks. Therefore, always use level 4, at 
least until Bacula supports CRL checks, since then a  can be avoided by 
removing its CN from the TLS Allowed CN list. If you are not wrorried 
about MiTM attacks and just want to prevent snooping, then level 2 will 
suffice.




[Attachment #5 (text/html)]

<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 9/30/2015 3:18 AM, Egoitz
      Aurrekoetxea wrote:<br>
    </div>
    <blockquote
      cite="mid:478545D8-DABC-467F-960A-14B63BA7A76A@ramattack.net"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Hi Ana!!
      <div class=""><br class="">
      </div>
      <div class="">Really thanks for answering my doubts :)</div>
      <div class=""><br class="">
      </div>
      <div class="">I do answer in black below...</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div>
          <blockquote type="cite" class="">
            <div class="">El 30/9/2015, a las 6:24, Ana Emília M. Arruda
              &lt;<a moz-do-not-send="true"
                href="mailto:emiliaarruda@gmail.com" \
class="">emiliaarruda@gmail.com</a>&gt;  escribió:</div>
            <br class="Apple-interchange-newline">
            <div class=""><br class="Apple-interchange-newline">
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class="">On
                Mon, Sep 28, 2015 at 6:20 PM, Egoitz Aurrekoetxea<span
                  class="Apple-converted-space">  </span></span><span
                dir="ltr" style="font-family: Helvetica; font-size:
                12px; font-style: normal; font-variant: normal;
                font-weight: normal; letter-spacing: normal;
                line-height: normal; orphans: auto; text-align: start;
                text-indent: 0px; text-transform: none; white-space:
                normal; widows: auto; word-spacing: 0px;
                -webkit-text-stroke-width: 0px;" class="">&lt;<a
                  moz-do-not-send="true"
                  href="mailto:egoitz@ramattack.net" target="_blank"
                  class=""><a class="moz-txt-link-abbreviated" \
href="mailto:egoitz@ramattack.net">egoitz@ramattack.net</a></a>&gt;</span><span  \
style="font-family: Helvetica; font-size: 12px;  font-style: normal; font-variant: \
normal; font-weight:  normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class="">  </span><span
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                float: none; display: inline !important;" class="">wrote:</span><br
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
              <blockquote class="gmail_quote" style="font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                margin: 0px 0px 0px 0.8ex; border-left-width: 1px;
                border-left-color: rgb(204, 204, 204);
                border-left-style: solid; padding-left: 1ex;">
                <div style="word-wrap: break-word;" class="">Good night,</div>
              </blockquote>
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class=""><br class="">
                <br class="">
              </div>
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;"
                class="">
                <div class="gmail_default" style="font-family: tahoma,
                  sans-serif;">​Yes, you can have certificates from
                  different CA in each side, you just need to inform the
                  CA correctly for peer verification. How did you
                  generated your certificates? Do you have a CA and
                  signed them properly?</div>
              </div>
            </div>
          </blockquote>
          <div><br class="">
          </div>
          <div>I have an own dedicated CA for Bacula systems. One of the
            things I was trying to get with TLS is the fact that like
            both sides know the CA public key, they to be able to check
            if the information received in each side  </div>
          <div>because of the other side's sent data in unaltered due to
            a possible MITM issue. I mean, could I with verify peer
            ensure that if someone tries to do a MITM won't succeed
            because both sides know the CA allowed to  </div>
          <div>be used in signed certs?. So an attacker doing a signed
            certificate with a new CA (CA of the attacker for signing
            the attacking used certificate) won't be able then to inject
            content in dir and fd dialogue or fd and sd dialogue?.</div>
          <div>Or at least if it does, do each side, the sd, fd or the
            dir, interrupt the connection and stop the job notifying?.</div>
          <br class="">
        </div>
      </div>
    </blockquote>
    <br>
    Think of it as 5 different security levels.<br>
    <br>
    Level 0: <br>
         # Data is transmitted as plain text<br>
           TLS Enable = no<br>
    <br>
    Level 1:<br>
           # This level allows opportunistic encryption if the peer
    chooses, or the peer can communicate in plain text.<br>
           TLS Enable = yes<br>
           TLS Require = no<br>
           TLS Verify Peer = no<br>
           TLS Certificate = /etc/bacula/cert.pem<br>
           TLS Key = /etc/bacula/key.pem<br>
           TLS CA Certificate File = /path/to/system/cafile<br>
    <br>
    Level 2:<br>
           # This level requires encryption of data. Any certificate will
    do, even a self-signed certificate.<br>
           TLS Enable = yes<br>
           TLS Require = yes<br>
           TLS Verify Peer = no<br>
           TLS Certificate = /etc/bacula/cert.pem<br>
           TLS Key = /etc/bacula/key.pem<br>
           TLS CA Certificate File = /path/to/system/cafile<br>
    <br>
    Level 3:<br>
           # This level requires encryption and that the certificate
    presented by the peer be signed by a trusted CA<br>
           TLS Enable = yes<br>
           TLS Require = yes<br>
           TLS Verify Peer = yes<br>
           TLS Certificate = /etc/bacula/cert.pem<br>
           TLS Key = /etc/bacula/key.pem<br>
           TLS CA Certificate File = /path/to/system/cafile<br>
    <br>
    Level 4:<br>
           # This level requires encryption and that the certificate
    presented by the peer be signed by a trusted CA<br>
           # and that the certificate have a specific CN<br>
           TLS Enable = yes<br>
           TLS Require = yes<br>
           TLS Verify Peer = yes<br>
           TLS Allowed CN = "some.client.common.name"<br>
           TLS Certificate = /etc/bacula/cert.pem<br>
           TLS Key = /etc/bacula/key.pem<br>
           TLS CA Certificate File = /path/to/system/cafile<br>
    <br>
    <br>
    As for a MiTM attack, keep in mind that an active attack is harder
    than a passive attack. Even opportunistic encryption with
    self-signed certs protects against passive snooping. Protecting
    against an active MiTM attack requires authentication. Heartbleed
    bug aside, level 3 means that the attacker must somehow acquire
    certificates signed by a CA in the TLS CA Certificate Files of both
    client and server. Level 4 means that she must steal particular
    certificates. So level 4 makes a MiTM attack very difficult.<br>
    <br>
    That said, the real danger is a valid certificate that is stolen or
    compromised. The CA can revoke a certificate, but this does no good
    because, as far as I can tell, Bacula does not check CRLs! Level 3
    is not very useful without CRL checks. Therefore, always use level
    4, at least until Bacula supports CRL checks, since then a   can be
    avoided by removing its CN from the TLS Allowed CN list. If you are
    not wrorried about MiTM attacks and just want to prevent snooping,
    then level 2 will suffice.<br>
    <br>
    <br>
    <br>
  </body>
</html>



------------------------------------------------------------------------------


_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic