<p>I haven&#8217;t looked at TSM backup encryption before, even though it&#8217;s been in TSM since version 5.4 (maybe earlier).  But, if you think about it, there isn&#8217;t any data MORE important than your backup data.  Data that is usually encrypted on the wire, is most likely sent in the clear by the TSM client.  There are a couple of ways to slice this, but I started with the SSL encryption feature.  There is a client encryption option in TSM 6.1 (possibly earlier) that encrypts the data with an encryption passphrase, but that has more issues and isn&#8217;t very compatible with server-side de-duplication.</p>
<p>Enabling the SSL features in the server is as simple as adding the following line to the dsmserv.opt and restarting:</p>
<pre><code>SSLTCPPORT xxxx</code></pre>
<p>When the server sees this option, it checks to see if there is a SSL key already generated.  If there isn&#8217;t one, it creates it automatically.  You can specify any port you like, as long as it&#8217;s not already being used by something else.  If you don&#8217;t run the admin client on the same TCP port as the clients, you&#8217;ll also need to add:</p>
<pre><code>SSLTCPADMINPORT xxxx</code></pre>
<p>Now, on the client side, you need to copy the newly generated key from the server. It&#8217;s named cert.arm, and should be located in the server home directory (that&#8217;s the home directory for the instance owner in 6.1 and above).  Once you have that, you just have to create an empty keyring and add the server key to it:</p>
<pre><code>gsk7capicmd -keydb -create -db dsmcert.kdb -pw <password> -stash
gsk7capicmd -cert -add -db dsmcert.kdb -pw <password> -label "TSM server <servername> self-signed key" -file cert.arm -format ascii -trust enable</code></pre>
<p>The password can be anything and you can add more than 1 keys to your client keyring if you have more than one server as long as the labels are  unique.  </p>
<p>After that, you have to change the TCPPort option in the client option file (dsm.sys on Unix), and add the option &#8220;SSL yes&#8221;.  Un-encrypted clients can&#8217;t talk to the SSL enable server port, and vise-versa.  Just restart your client, and you should be in business.</p>
<p>There is a new feature in 6.2 where you can use a well-known certificate, if you want to pay Verisign or Thawt for a SSL certificate.  Those certificates are included with the 6.2 clients, so you don&#8217;t need to hassle with copying the certificates.  I haven&#8217;t tried that, because it&#8217;s easy enough to copy the self-signed key from the server and setup the keychain on the clients and save the money for a yearly SSL certificate renewal.</p>
<p>Now, I haven&#8217;t been able to verify this, but it appears to me that this DOES NOT interfere with de-duplication.  The way I read it is the data isn&#8217;t stored in an encrypted format on the server, it&#8217;s de-crypted on the server before it hits the storage pools.  The performance seems pretty good.  You will spend some extra CPU cycles, but SSL is pretty light-weight and I haven&#8217;t seen a noticeable impact.</p>
<p>Note: this doesn&#8217;t encrypt the Webclient, GUI, client-to-client backups, or server-to-server backups.  This only encrypts the actual data transfer from the client to the server.</p>
{"id":500,"date":"2010-08-09T14:34:58","date_gmt":"2010-08-09T18:34:58","guid":{"rendered":"http:\/\/patrickv.info\/wordpress\/?p=500"},"modified":"2010-08-09T14:34:58","modified_gmt":"2010-08-09T18:34:58","slug":"tsm-lan-backup-encryption","status":"publish","type":"post","link":"https:\/\/rootuser.ninja\/index.php\/2010\/08\/09\/tsm-lan-backup-encryption\/","title":{"rendered":"TSM LAN Backup SSL Encryption"},"content":{"rendered":"<p>I haven&#8217;t looked at TSM backup encryption before, even though it&#8217;s been in TSM since version 5.4 (maybe earlier).  But, if you think about it, there isn&#8217;t any data MORE important than your backup data.  Data that is usually encrypted on the wire, is most likely sent in the clear by the TSM client.  There are a couple of ways to slice this, but I started with the SSL encryption feature.  There is a client encryption option in TSM 6.1 (possibly earlier) that encrypts the data with an encryption passphrase, but that has more issues and isn&#8217;t very compatible with server-side de-duplication.<\/p>\n<p>Enabling the SSL features in the server is as simple as adding the following line to the dsmserv.opt and restarting:<\/p>\n<pre><code>SSLTCPPORT xxxx<\/code><\/pre>\n<p>When the server sees this option, it checks to see if there is a SSL key already generated.  If there isn&#8217;t one, it creates it automatically.  You can specify any port you like, as long as it&#8217;s not already being used by something else.  If you don&#8217;t run the admin client on the same TCP port as the clients, you&#8217;ll also need to add:<\/p>\n<pre><code>SSLTCPADMINPORT xxxx<\/code><\/pre>\n<p>Now, on the client side, you need to copy the newly generated key from the server. It&#8217;s named cert.arm, and should be located in the server home directory (that&#8217;s the home directory for the instance owner in 6.1 and above).  Once you have that, you just have to create an empty keyring and add the server key to it:<\/p>\n<pre><code>gsk7capicmd -keydb -create -db dsmcert.kdb -pw <password> -stash\ngsk7capicmd -cert -add -db dsmcert.kdb -pw <password> -label \"TSM server <servername> self-signed key\" -file cert.arm -format ascii -trust enable<\/code><\/pre>\n<p>The password can be anything and you can add more than 1 keys to your client keyring if you have more than one server as long as the labels are  unique.  <\/p>\n<p>After that, you have to change the TCPPort option in the client option file (dsm.sys on Unix), and add the option &#8220;SSL yes&#8221;.  Un-encrypted clients can&#8217;t talk to the SSL enable server port, and vise-versa.  Just restart your client, and you should be in business.<\/p>\n<p>There is a new feature in 6.2 where you can use a well-known certificate, if you want to pay Verisign or Thawt for a SSL certificate.  Those certificates are included with the 6.2 clients, so you don&#8217;t need to hassle with copying the certificates.  I haven&#8217;t tried that, because it&#8217;s easy enough to copy the self-signed key from the server and setup the keychain on the clients and save the money for a yearly SSL certificate renewal.<\/p>\n<p>Now, I haven&#8217;t been able to verify this, but it appears to me that this DOES NOT interfere with de-duplication.  The way I read it is the data isn&#8217;t stored in an encrypted format on the server, it&#8217;s de-crypted on the server before it hits the storage pools.  The performance seems pretty good.  You will spend some extra CPU cycles, but SSL is pretty light-weight and I haven&#8217;t seen a noticeable impact.<\/p>\n<p>Note: this doesn&#8217;t encrypt the Webclient, GUI, client-to-client backups, or server-to-server backups.  This only encrypts the actual data transfer from the client to the server.<\/p>\n","protected":false},"excerpt":{"rendered":null,"protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,1],"tags":[],"class_list":["post-500","post","type-post","status-publish","format-standard","hentry","category-tsm-notes","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/posts\/500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/comments?post=500"}],"version-history":[{"count":0,"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/posts\/500\/revisions"}],"wp:attachment":[{"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/media?parent=500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/categories?post=500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rootuser.ninja\/index.php\/wp-json\/wp\/v2\/tags?post=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}