<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tork Wrench &#187; security</title>
	<atom:link href="http://www.torkwrench.com/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.torkwrench.com</link>
	<description>Things I learnt today, working on IBM Lotus Web Content Management.</description>
	<lastBuildDate>Wed, 04 Jan 2012 22:33:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The security certificate &#8220;America Online Root Certification Authority 2&#8243; has a public key of length greater than 2048 bit.</title>
		<link>http://www.torkwrench.com/2009/10/15/the-security-certificate-america-online-root-certification-authority-2-has-a-public-key-of-length-greater-than-2048-bit/</link>
		<comments>http://www.torkwrench.com/2009/10/15/the-security-certificate-america-online-root-certification-authority-2-has-a-public-key-of-length-greater-than-2048-bit/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 14:05:33 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[random]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jre]]></category>
		<category><![CDATA[metaframe]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=155</guid>
		<description><![CDATA[I&#8217;m doing a bit of work for a client and they run this crazy Citrix Metaframe thing, which I&#8217;ve heard of but never used before. It&#8217;s like a remote access tool / website wrapped in java applets and special clients &#8230; <a href="http://www.torkwrench.com/2009/10/15/the-security-certificate-america-online-root-certification-authority-2-has-a-public-key-of-length-greater-than-2048-bit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing a bit of work for a client and they run this crazy Citrix Metaframe thing, which I&#8217;ve heard of but never used before. It&#8217;s like a remote access tool / website wrapped in java applets and special clients and all sorts of other whizbangerry.</p>
<p>But I had a problem connecting to it. It would load a java applet and then Java would die when initializing with the following error. I&#8217;m running the latest Sun Java 6 u16.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">A local security certificate could not be loaded. (error code: 7)<br />
&nbsp; &nbsp; at com.citrix.sdk.security.ssl.ConnectionModel.addCACertificate(ConnectionModel.java)<br />
&nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
&nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
&nbsp; &nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
&nbsp; &nbsp; at java.lang.reflect.Method.invoke(Method.java:597)<br />
&nbsp; &nbsp; at com.citrix.client.io.net.ip.m.h(Unknown Source)<br />
&nbsp; &nbsp; at com.citrix.client.io.net.ip.proxy.i.(Unknown Source)<br />
&nbsp; &nbsp; at com.citrix.client.io.net.ip.g.a(Unknown Source)<br />
&nbsp; &nbsp; at com.citrix.client.io.net.ip.o.a(Unknown Source)<br />
&nbsp; &nbsp; at com.citrix.client.module.td.tcp.TCPTransportDriver.t(Unknown Source)<br />
&nbsp; &nbsp; at com.citrix.client.module.td.TransportDriver.run(Unknown Source)<br />
&nbsp; &nbsp; at java.lang.Thread.run(Thread.java:619)<br />
Caused by: The SSL cryptography library failed. The security certificate &quot;America Online Root Certification Authority 2&quot; has a public key of length greater than 2048 bit.<br />
&nbsp; &nbsp; at com.citrix.sdk.security.certificate.X509CertificateLoader.loadCertificates(X509CertificateLoader.java)</div></div>
<p>It&#8217;s about identical to this <a href="https://answers.launchpad.net/ubuntu/+question/48682">unsolved post</a> at Ubuntu launchpad too. The certificates for a simple client JRE are stored in the cacerts file which lives in jre/lib/security/cacerts . It looks as if the root certificate for AOL is too long or recently updated or something and it&#8217;s not playing nicely with MetaFrame. So somehow we have to ditch that root cert. It would only really be a problem if we are unlucky enough to have our certificate signed by that root CA.</p>
<p>I assumed that MetaFrame worked on older jres and that the problem is that I am using a brand new one. So luckily Sun keep an archive of old JDKs and JREs <a href="http://java.sun.com/products/archive/">here.</a> So it is quite simple, download an install an old JRE (I got 5u1) and rip the cacerts file out of there and dump it into your new JRE&#8217;s directory and try it again. Worked like a charm for me. You probably don&#8217;t want to do this permanently (I guess they updated the cacerts file for a reason?) but if you really need to log into MetaFrame, it&#8217;ll do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2009/10/15/the-security-certificate-america-online-root-certification-authority-2-has-a-public-key-of-length-greater-than-2048-bit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DB2 and ConfigEngine : Security mechanism not supported</title>
		<link>http://www.torkwrench.com/2009/06/28/db2-and-configengine-security-mechanism-not-supported/</link>
		<comments>http://www.torkwrench.com/2009/06/28/db2-and-configengine-security-mechanism-not-supported/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 04:19:58 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=112</guid>
		<description><![CDATA[How to fix the error "Connection authorization failure occurred.  Reason: Security mechanism not supported." when using DB2's DATA_ENCRYPT setting and WebSphere Portal's ConfigEngine. <a href="http://www.torkwrench.com/2009/06/28/db2-and-configengine-security-mechanism-not-supported/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I try to post really random solutions here, and this one&#8217;s a doozy ! I was updating a production machine from Portal 6.1.0 to 6.1.0.2. I always run the ConfigEngine tasks validate-standalone-ldap and validate-database-connection before I run any Portal update to make sure that the update won&#8217;t fail from something silly like a missing password. I&#8217;d highly recommend this practice on your Portal systems.<br />
This time when running validate-database-connection, I ran into this error:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">action-validate-database:<br />
&nbsp; &nbsp; &nbsp;[echo] domain &nbsp; &nbsp; &nbsp; 'jcr'<br />
&nbsp; &nbsp; &nbsp;[echo] DbtDbDriver &nbsp;'com.ibm.db2.jcc.DB2Driver'<br />
&nbsp; &nbsp; &nbsp;[echo] DbtDbLibrary '/home/db2inst1/sqllib/java/db2jcc.jar:/home/db2inst1/sqllib/java/db2jcc_license_cu.jar'<br />
&nbsp; &nbsp; &nbsp;[echo] DbtDbUser &nbsp; &nbsp;'db2inst1'<br />
&nbsp; &nbsp; &nbsp;[echo] DbtDbUrl &nbsp; &nbsp; 'jdbc:db2://localhost:50000/WPS6TCP'<br />
&nbsp; &nbsp; &nbsp;[echo] DbtDbName &nbsp; &nbsp;'WPS6TCP'<br />
&nbsp; &nbsp; &nbsp;[java] [06/28/09 13:47:09.620 EST] Attempting to make connection using: jdbc:db2://localhost:50000/WPS6TCP :: db2inst1 :: PASSWORD_REMOVED<br />
&nbsp; &nbsp; &nbsp;[java] [06/28/09 13:47:09.875 EST] ERROR: Error obtaining connecting for jdbc:db2://localhost:50000/WPS6TCP<br />
&nbsp; &nbsp; &nbsp;[java] com.ibm.db2.jcc.b.SqlException: [ibm][db2][jcc][t4][201][11237] Connection authorization failure occurred. &nbsp;Reason: Security mechanism not supported.<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.m(b.java:1981)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.a(b.java:1565)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.bb.b(bb.java:3386)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.bb.a(bb.java:332)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.bb.a(bb.java:112)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.j(b.java:1259)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.b(b.java:1132)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.b(b.java:715)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.a(b.java:701)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.a(b.java:378)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.a.b.&lt;init&gt;(b.java:316)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:166)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at java.sql.DriverManager.getConnection(DriverManager.java:572)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at java.sql.DriverManager.getConnection(DriverManager.java:165)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.wps.config.db.Database.init(Database.java:139)<br />
&nbsp; &nbsp; &nbsp;[java] &nbsp; &nbsp; at com.ibm.wps.config.db.validation.ValidationDriver.main(ValidationDriver.java:209)</div></div>
<p>It looked like the problem I&#8217;d seen on Ubuntu, where the database password was hashed with an unsupported scheme, but it couldn&#8217;t be, because this was on a plain old RHEL system. The difference was that I&#8217;d recently changed DB2&#8242;s database manager settings from AUTHENTICATION = SERVER to AUTHENTICATION = DATA_ENCRYPT . DATA_ENCRYPT is good because it will send your sql data <em>and</em> your authentication details encrypted across the wire. </p>
<p>Anyway, to make the validation work on a system where you have enabled the DATA_ENCRYPT parameter, just add securityMechanism=13; to the end of the database url. So mine becomes:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">jcr.DbUrl=jdbc:db2://localhost:50000/WP6TCP:securityMechanism=13;</div></div>
<p>So how would the system work in any case, if the database url was wrong?!? The answer is clear after delving into the WebSphere admin console a little bit. I&#8217;d configured the custom properties of each Portal datasource post database transfer to work with DATA_ENCRYPT, but not the database urls in wkplc_comp.properties. Here&#8217;s where you would set it.</p>
<p><img src="http://www.torkwrench.com/wp-content/uploads/2009/06/data_encrypt.png" alt="data_encrypt" title="data_encrypt" width="626" height="399" class="aligncenter size-full wp-image-113" /></p>
<p>It is important to emphasize that the wkplc*.properties file in ConfigEngine are templates only, and don&#8217;t affect the running of the system, until you run a ConfigEngine task against them. Only then do their values get copied to the actual Portal server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2009/06/28/db2-and-configengine-security-mechanism-not-supported/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

