<?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"
	>

<channel>
	<title>TechDuke</title>
	<atom:link href="http://www.techduke.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techduke.com</link>
	<description></description>
	<pubDate>Thu, 01 May 2008 11:15:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Creating a Chat Program in Visual Basic</title>
		<link>http://www.techduke.com/2008/03/13/creating-a-chat-program-in-visual-basic/</link>
		<comments>http://www.techduke.com/2008/03/13/creating-a-chat-program-in-visual-basic/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 21:53:05 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2008/03/13/creating-a-chat-program-in-visual-basic/</guid>
		<description><![CDATA[Revisiting VB 6 after some time, today we are going to develop a chat tool&#8211;a simple client and server text.

 You only need a working knowledge of VB, as this example doesn&#8217;t attempt to make a complex program; we are aiming for something short (not much coding), simple and easy to follow.
Let&#8217;s begin. First, we [...]]]></description>
			<content:encoded><![CDATA[<p>Revisiting VB 6 after some time, today we are going to develop a chat tool&#8211;a simple client and server text.<br />
<span id="more-295"></span></p>
<p> You only need a working knowledge of VB, as this example doesn&#8217;t attempt to make a complex program; we are aiming for something short (not much coding), simple and easy to follow.</p>
<p>Let&#8217;s begin. First, we should delve a bit into the architecture. The tool we are going to build comprises two parts: the server part, which would wait for connections to be made (just like a web server waits for users to connect), and the client part, which would initiate connections to the server (the way a browser initiates connection to a web server).</p>
<p>To store the respective parts of our project, create two subfolders in the folder where you are going to save your project. Name the first one &#8220;Client&#8221; and other one &#8220;Served.</p>
<p><strong>The Server:</strong><br />
 Open Visual Basic 6 and Select &#8220;Standard Exe&#8221; for our new project in the dialog box that appears. Once the interface is displayed with a form visible in the center, go to File > Save Project. This will ask you to provide a name for your form. We are going to code the server first, so select the Server folder just created. Name your form frmServer. Next, another dialog box will ask you to save your project. Name it prjServer. Once this is done, you should make it your habit to press CTRL+S while you code, to make sure your code is not lost in case the application hangs or some other catastrophe occurs.</p>
<p>Now let&#8217;s change the default text, &#8216;Form1&#8242;, that appears in the title bar. To do this, we are going to edit the &#8216;Caption&#8217; property of the form. Properties can be accessed through the Properties box displayed at the bottom right of VB interface. This is a two-column, table-like box, where the first column displays a property&#8217;s name and the corresponding cell in the second column displays its setting or value. Whatever item is selected on the form, its properties are listed in properties box, from where you can edit them. Your form is selected by default (indicated by the resize handles on its boundaries) and the properties box has the &#8216;Caption&#8217; properly highlighted. Write &#8216;Server&#8217; in place of &#8216;Form1&#8242;.</p>
<p>Now, add two text boxes and a command button to the form (by first selecting the text box icon from the toolbar on the left-hand side of the VB interface, and drawing it on the form according to the size you desire; you can also simply-double-click a control icon on the toolbox to have it placed over the form). The two text boxes are for chat purposes, while the command button is required to initiate the operation of sending text to the client. Set the &#8216;Name&#8217; property of the first text box to &#8216;txtChatln&#8217;, of the second text box to &#8216;txtChatOut&#8217; and lastly, name the command button &#8216;cmdSend&#8217; and set its caption property to &#8216;Send&#8217; (default was &#8216;Command1&#8242;). These names are for our own convenience and could be anything<br />
From the &#8216;Text&#8217; property of the two text boxes, remove &#8216;Text1&#8242; &#038; &#8216;Text2&#8242; respectively (the default texts) and leave the fields blank. The second text box (txtChatln), which you should resize, is used for handling incoming chat text, and so should have the extra feature of being able to scroll as new text arrives. To add this functionality, set txtChatln&#8217;s &#8216;MultiLine&#8217; property to &#8216;True&#8217; and the &#8216;ScrollBar&#8217; property to &#8216;2&#8211;Vertical&#8217;. This is available as the second choice in the drop-down list that appears when you attempt to change &#8216;ScrollBar&#8217; property.</p>
<p>Now it&#8217;s time to add socket control&#8211;the brains of our application. This control is not listed in the default list that appears in the toolbox; you will have to bring it there. Here&#8217;s how: Right-click on the toolbox, and select &#8216;Components&#8217;. A component list dialog box is displayed. Scroll down and check &#8216;Microsoft Winsock Control 6.0&#8242;, and press OK. You will see that a new control with an icon showing two PCs has now been added to the toolbox. Using this, place a socket on your form and name it &#8217;sckServer&#8217;. On the form it would look as though it is the same icon as in the toolbox.</p>
<p>When you press F5 to test run the project, you will observe that socket control is not visible&#8211;this is normal, as this control is invisible at run-time. Users do not have to interact with sockets like the text box and command buttons. We give commands to sockets using only codes.</p>
<p>Time to add code: infusing blood into this body! Double- click the form (make sure it&#8217;s not a control but the form on which you are clicking). The coding pane has got two dropdown lists on the top. As you have double-clicked the form, you will see &#8216;Form&#8217; in the first dropdown (on left) and &#8216;Load&#8217; in the other dropdown (on right). The first shows the item and the second shows the event associated with that item. This means that you are now coding for the form&#8217;s Load event. An event is something that happens with an item (the form is loaded when the application starts, so Load is an event of the form). Whenever you will double-click a form or control, you will enter its coding window; see its name in the first dropdown and the event for which code is being entered in the second dropdown.</p>
<p>Add the following code in the form&#8217;s load event.<br />
<strong>sckServer.LocalPort = 6000<br />
sckServer.Listen</strong><br />
 This will make the server listen (wait for connections) on port 6000 as soon as the application starts.</p>
<p>Now that you are in the coding window, if you want to go back to your form design window, simply double-click Form1 in the project explorer box on the right-hand side of the VB interface. You can also use menu &#8216;Windows > Form1 (Form)&#8217;.</p>
<p>Similarly, add the following code to the command button which we have named cmdSend. Do this by double-clicking the button when you are in the form design window. Note that the event listed in the second dropdown is &#8216;Click&#8217; which signifies that when this code will be executed, the button&#8217;s event will be a click.</p>
<p><strong>sckServer.SendData txtChatOut.Text<br />
&#038; vbCrLf<br />
txtChatOut.Text=&#8221;"</strong></p>
<p>The first line tells the socket (sckServer) to send the data present in the text box (txtChatOut) along with a new line character, so that every line of text starts with a new line on the other side (i.e. the client, which we will be coding after we are done with the server). The second line empties the text box we are using in anticipation of the next text a user might type.</p>
<p>Now double-click the socket control we have placed on form to add code in its &#8216;ConnectionRequest&#8217; event (Fig 3b). Note that this event is not selected by default when you enter the coding window. Select this event from the second dropdown (on the right), which lists all the possible events for our socket (sckServer).</p>
<p><strong>If sckServer. State <> sckClosed Then<br />
sckServer. Close<br />
sckServer. Accept requestlD</strong></p>
<p>This is the way to accept connections when a connection request arrives at the socket. Note that we are coding a server (as we have instructed the socket to listen), and that&#8217;s why we have to tell sockets how to accept connections when requests come from clients. It&#8217;s not a problem if you don&#8217;t understand what these two lines do at the moment, as this code has nothing to do with the functionality aspects of our program and is only used to accept connections. (For inquisitive readers, in short, the first line checks the socket state and the second line invokes an accept method with the Request ID returned by an incoming connection request).</p>
<p>Now select &#8216;DataArrival&#8217; event from the second dropdown on the top, which currently displays ConnectionRequest. Add the following code.</p>
<p><strong>Dim ChatData As String<br />
sckServer.GetData ChatData<br />
txtChatln.Text = txtChatln.Text &#038; ChatData</strong></p>
<p>The variable &#8220;ChatData&#8221; of type &#8220;String&#8221; is declared (first line) and used with the &#8220;GetData&#8221; method of the socket to get incoming data (second line). Finally, the third line updates the incoming chat text box with new data. The reason for assigning txtChatln &#038; ChatData to txtChatln is to make sure that the current contents are net overwritten by the new data arrival.</p>
<p><strong>The Client</strong><br />
Open another VB 6 file and select &#8216;Standard Exe&#8217; for the new project. Once the interface is displayed, with a form visible in the center, save the form and project in the folder Client (already created) with names frmClient and prjClient respectively.</p>
<p>Set the &#8216;Caption&#8217; property of this form to &#8216;Client&#8217;. In exactly the same way as for the server part, add a Winsock control to this form (right-click toolbox, select &#8216;Components&#8217;, select &#8216;Microsoft Winsock 6.0&#8242;). Name it &#8217;sckClient&#8217;.</p>
<p>Add two text boxes and a command button. Name the text boxes &#8216;txtChatln&#8217; and &#8216;txtChatOut&#8217;. Set txtChatln&#8217;s &#8216;MultiLine&#8217; property to &#8216;True&#8217; and &#8216;ScrollBar&#8217; property to &#8216;2&#8211;Vertical&#8217;. This is available as the second choice in the dropdown tist that appears when you attempt to change the &#8216;ScrollBar&#8217; properties. Remove &#8216;Text1&#8242; and &#8216;Text2&#8242; from &#8216;Text&#8217; properties of both text boxes and leave these fields blank. For the command button, set the &#8216;Name&#8217; property to &#8216;cmdSend&#8217;, and its &#8216;Caption&#8217; property set to &#8216;Send&#8217;. After resizing the form and positioning controls over it, let&#8217;s do the coding part. For the form&#8217;s lead event, add the following code:</p>
<p><strong>sckClient.RemoteHost = &#8220;localhost&#8221;<br />
sckClient.RemotePort = 6000<br />
sckClient.Connect</strong></p>
<p>For communications, we need two pieces of information: the address of the remote machine and its port number. For a remote host, we have specified a local host&#8211;this is your own PC, because at this time, the server is also running on the same PC. As we have already set our server to listen on port 6000, the same is specified over here as well. As we are building and running this application on the same PC, we have used Iocalhost (you can also enter 127.0.0.1 in place of Iocalhost, along with the inverted commas as seen in line 1), but in case you are using this chat program to communicate over a network, you need to specify the IP address of the machine on which you have set your server to listen, instead of Iocalhost. The last line instructs our socket to connect to the server.</p>
<p>Now add the code for the send button. This works exactly the same way as the send button of the server.</p>
<p><strong>sckClient.SendData txtChatOut.Text&#038;<br />
vbCrLf<br />
txtChatOut.Text = &#8220;&#8221;</strong></p>
<p><strong>Starting Chat</strong><br />
Go to your server project and press F5 to run it. Your server is in listening mode now. Recall that we had placed listen code in Ioad event of server form. Come back to the client project and press F5 to run it too. Client will make connection with the server as we have just added connection code in Ioad event of client form. At this time we have not added any visual indication that a connection has been established or what the status of the connection is, we need to test it by typing some text in either the client or the server, in the text box just above the send button (this is the txtChatOut text box on both forms). This text would appear on the other part&#8217;s bigger text box with scrollbar (the txtChatln text box on both forms).</p>
<p>You can go to &#8216;File > Make you project.exe&#8217; menu to create standalone executable files for both client and server.</p>
<p>Remember while you testing to run the server first and then the client (otherwise the client will attempt to connect to a non-existent server!) and if you happen to close either part, close the other one too and start afresh.</p>
<p>This is a very basic chat application with minimal features and as<br />
little code as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2008/03/13/creating-a-chat-program-in-visual-basic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Vista System Restore Do’s and Don’ts</title>
		<link>http://www.techduke.com/2007/10/27/windows-vista-system-restore-do%e2%80%99s-and-don%e2%80%99ts/</link>
		<comments>http://www.techduke.com/2007/10/27/windows-vista-system-restore-do%e2%80%99s-and-don%e2%80%99ts/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 20:51:03 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Computer ; General]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/10/27/windows-vista-system-restore-do%e2%80%99s-and-don%e2%80%99ts/</guid>
		<description><![CDATA[You don’t have to be a Harry Potter fan to appreciate the hazards of time travel. Here are
some to be aware of:

+ If you create a new user account and then use System Restore to roll back your system configuration to a point before the new account was created, the new user will no longer [...]]]></description>
			<content:encoded><![CDATA[<p>You don’t have to be a Harry Potter fan to appreciate the hazards of time travel. Here are<br />
some to be aware of:<br />
<span id="more-294"></span></p>
<p><strong>+</strong> If you create a new user account and then use System Restore to roll back your system configuration to a point before the new account was created, the new user will no longer be able to log on, and you will receive no warning. (The good news is that the new user’s documents will be intact.)</p>
<p><strong>+</strong> System Restore does not uninstall programs, although it does remove executable files and DLLs. To avoid having orphaned program shortcuts and files, make a note of any programs that you installed after the date of the restore point you’re about to roll back to. If you don’t want the program anymore, uninstall it in the normal way before running the restore operation. If you want to continue using the program, reinstall it after the restore is complete.</p>
<p><strong>+</strong> Any changes made to your system configuration using the Windows Recovery Environment are not monitored by System Protection. This can produce unintended consequences if you make major changes to system files and then roll back your system configuration with System Restore.</p>
<p><strong>+</strong> Although you can restore your system to a previous configuration from Safe Mode, you cannot create a new restore point in Safe Mode. As a result, you cannot undo a restore operation that you perform in Safe Mode. If possible, you should always start Windows normally to perform a restore operation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/10/27/windows-vista-system-restore-do%e2%80%99s-and-don%e2%80%99ts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why Administrators Hate Performance Problems in Networking Tech Duke</title>
		<link>http://www.techduke.com/2007/09/30/why-administrators-hate-performance-problems-in-networking/</link>
		<comments>http://www.techduke.com/2007/09/30/why-administrators-hate-performance-problems-in-networking/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 01:49:48 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/30/why-administrators-hate-performance-problems-in-networking/</guid>
		<description><![CDATA[Network performance problems are among the most difficult network problems to track down and solve.

 If a user simply can’t access the network, it usually doesn’t take long to figure out why: the cable is broken, a network card or hub is malfunctioning, the user doesn’t have permission to access the resource, and so on. [...]]]></description>
			<content:encoded><![CDATA[<p>Network performance problems are among the most difficult network problems to track down and solve.<br />
<span id="more-293"></span><br />
 If a user simply can’t access the network, it usually doesn’t take long to figure out why: the cable is broken, a network card or hub is malfunctioning, the user doesn’t have permission to access the resource, and so on. After a little investigation, the problem usually reveals itself — you fix it, and move on to the next problem.</p>
<p>Unfortunately, performance problems are messier. Here are just a few of the reasons that network administrators hate performance problems:</p>
<p><strong>Performance problems are difficult to quantify.</strong> Exactly how much slower is the network now than it was a week ago, a month ago, or even a year ago? Sometimes the network just feels slow, but you can’t quite define exactly how slow it really is.</p>
<p><strong>Performance problems usually develop gradually.</strong> Sometimes a network slows down suddenly and drastically. More often, though, the network gradually gets slower, a little bit at a time, until one day the users notice that the network is slow.</p>
<p><strong>Performance problems often go unreported.</strong> They gripe about the problem to each other around the water cooler, but they don’t formally contact you to let you know that their network seems 20 percent slower than usual. As long as they can still access the network, they just assume that the problem is temporary, or that it’s just their imaginations.</p>
<p><strong>Many performance problems are intermittent.</strong> Sometimes a user calls you and complains that a certain network operation has become slower than molasses, and by the time you get to the user’s desk, the operation performs like a snap. Sometimes you can find a pattern to the intermittent behavior — say, it’s slower in the morning than in the afternoon, or it’s slow only while backups are running or while the printer is working. Other times, you can’t find a pattern. Sometimes, the operation is slow; sometimes, it isn’t.<br />
<strong><br />
Performance tuning is not an exact science.</strong> Improving performance sometimes involves educated guesswork. Will segmenting the network improve performance? Maybe. Will adding another 512 MB of RAM to the server improve performance? Well, hope springs eternal.</p>
<p><strong>Thee solution to performance problems is sometimes a hard sell.</strong> If a user is unable to access the network due to a malfunctioning component, there’s usually not much question that the purchase of a replacement is justified. However, if the network is slow and you think you can fix it by offloading your server’s contents onto a separate server, you may have trouble selling management on the new purchase.<br />
&nbsp;<br />
&nbsp;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<a href="http://www.shoesbootsus.com/">BCBG Shoes</a><br />
<a href="http://www.shoessandalsus.com/">KEEN Shoes</a><br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/30/why-administrators-hate-performance-problems-in-networking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>802.11i System Overview - Wireless Security</title>
		<link>http://www.techduke.com/2007/09/30/80211i-system-overview-wireless-security/</link>
		<comments>http://www.techduke.com/2007/09/30/80211i-system-overview-wireless-security/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 01:45:48 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/30/80211i-system-overview-wireless-security/</guid>
		<description><![CDATA[The client would first need to make a connection to the access point. This would happen through the normal open key authentication process. Contrary to most 802.11 standards, 802.11i only allows for open system authentication. This is due to the discovery of a security flaw in shared key authentication.
After the initial connection request, the client [...]]]></description>
			<content:encoded><![CDATA[<p>The client would first need to make a connection to the access point.<span id="more-292"></span> This would happen through the normal open key authentication process. Contrary to most 802.11 standards, 802.11i only allows for open system authentication. This is due to the discovery of a security flaw in shared key authentication.</p>
<p>After the initial connection request, the client would need to hear an RSN IE broadcast or send a probe request with an RSN IE. Whichever way this RSN IE frame is sent, both clients and access points need to negotiate on a cipher suite for use. After sending the RSN IE frames and reaching a negotiation, the EAP process starts. This can start with the access point sending an EAP identity request or a client sending an EAPOLStart frame. Once the EAP process has started, it will go through the EAP authentication process associated with each particular EAP type. It ends with the client receiving an EAP success message from the access point. During this process, an AAA key is sent from the authentication server to the wireless end device. This key is used as a seed key to create the keys outlined below.</p>
<p>The key exchange process takes the original 802.1x EAPOL-Key frame and makes some modifications, allowing for the use of WEP-40, WEP- 104, TKIP, and CCMP cipher suites. The EAPOLKey frame only supports WEP-40 and WEP-104 keys. The 802.11i standard modified this and added the ability for the frame to carry TKIP and CCMP keys as well. A process known as the four-way handshake accomplishes this key exchange. This process takes two main keys and creates unique group and session keys for each client. These session and group keys are created from the two main keys: (1) the pairwise key or the pairwise master key (PMK) and (2) the group key or the group master key (GMK).</p>
<p>In an 802.1x 802.11i setup, the PMK comes from the authentication server. If the 802.11i setup is using preshared keys, then the PMK is mapped to a password. The PMK is divided into three keys. The first key is the EAPOL-key confirmation key (KCK), which is used to provide data origin authenticity. The second key created from the PMK is the EAPOLkey encryption key (KEK), which is used to provide confidentiality. The last key is called the pairwise temporal key (PTK) and this key is also used for data confidentiality. To create the PTK, a pseudorandom function takes place with the access point’s MAC address, client MAC address, and a nonce sent from each side as well. This allows a single master key to create multiple session keys without having to re-exchange a new master key each time.</p>
<p>The next key with regard to 802.11i main keys is the group key or group master key (GMK). This key is similar to the PMK except that it is used for beacon and management traffic encryption. The same process of hashing senders’ and receivers’ MAC addresses and nonces is used to create a group temporal key (GTK) from a group master key.  Having discussed the keys and how they are split up to accommodate session encryption, one can now look more closely at the four-way handshake. This handshake starts with the authenticator sending the supplicant a nonce. This is often referred to as the ANonce in the 802.11i standard. This nonce is a random value used to prevent replay attacks. This means that old nonces cannot be reused. After each party receives a message, the first step before any other is to check and see if the nonce was changed or if the same nonce was incorrectly reused. Once the wireless client receives the first message, it will check the nonce and then generate an SNonce. This nonce will be used in the next step to calculate the pair transient key (PTK). After the PTK is created, the client will then send the SNonce as well as the security parameters outlined in the RSN IE frame to the access point. This information is the second message in the four-way handshake. All of this information will be encrypted using the KCK, which will protect it from any modification while in transit. Once the access point receives this, it will check that the nonce is not an old value. Once this is done, it will also generate the PTK from the SNonce and ANonce, and then check the KCK to make sure it was not modified in transit. Once this is done, the third message in the four-way handshake will take place. This message is used to tell the client to install the PTK key that was created and, if used, this message will send a GTK to the client to install. Once the client receives this, it will check the KCK and, if it is correct, install the key or keys. The last message is a confirmation used to let the authenticator know that the client has successfully installed the keys and is ready to communicate using them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/30/80211i-system-overview-wireless-security/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advanced Encryption Standard (AES) - Wireless Security</title>
		<link>http://www.techduke.com/2007/09/30/advanced-encryption-standard-aes-wireless-security/</link>
		<comments>http://www.techduke.com/2007/09/30/advanced-encryption-standard-aes-wireless-security/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 01:41:58 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/30/advanced-encryption-standard-aes-wireless-security/</guid>
		<description><![CDATA[One can apply AES in many different ways. The way that the 802.11i standard has chosen to apply AES is with CCMP, which is based on CBCMAC. CCMP was chosen for data integrity and authentication, with the Message Authentication Code (MAC) providing the same functionality as the Message Integrity Check (MIC) used for TKIP. Before [...]]]></description>
			<content:encoded><![CDATA[<p>One can apply AES in many different ways. The way that the 802.11i standard has chosen to apply AES is with CCMP<span id="more-291"></span>, which is based on CBCMAC. CCMP was chosen for data integrity and authentication, with the Message Authentication Code (MAC) providing the same functionality as the Message Integrity Check (MIC) used for TKIP. Before diving into CCMP, one needs to look at AES and some of its modes. The first term is CTR; this is AES in Counter mode. This mode is used for confidentiality. The next mode is called CBC-MAC, which stands for Cipher Block Chaining Message Authentication mode. This mode is used for integrity. AES also has combined CTR and CBC-MAC to create CCM. CCM is the acronym for CTR/CBC-MAC mode of AES that incorporates both the confidentially of CTR and the integrity of CBC-MAC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/30/advanced-encryption-standard-aes-wireless-security/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Temporal Key Integrity Protocol (TKIP) - Wireless Security</title>
		<link>http://www.techduke.com/2007/09/30/temporal-key-integrity-protocol-tkip-wireless-security/</link>
		<comments>http://www.techduke.com/2007/09/30/temporal-key-integrity-protocol-tkip-wireless-security/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 01:40:52 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/30/temporal-key-integrity-protocol-tkip-wireless-security/</guid>
		<description><![CDATA[The Temporal key Integrity Protocol (TKIP) was an interim solution developed to fix the key reuse problem of WEP. It later became part of the 802.11i and subsequently part of WPA standards. This meant there were various flavors of TKIP until 802.11i was finalized. One of the first notations about the theory and concepts of [...]]]></description>
			<content:encoded><![CDATA[<p>The Temporal key Integrity Protocol (TKIP) was an interim solution developed to fix the key reuse problem of WEP.<span id="more-290"></span> It later became part of the 802.11i and subsequently part of WPA standards. This meant there were various flavors of TKIP until 802.11i was finalized. One of the first notations about the theory and concepts of TKIP was published in December 20, 2001, by Russ Housley and Doug Whiting, in an article entitled “Temporal Key Hash.” This article described the general principle of TKIP, although it was not enough on which to base a standard. That is where 802.11i came in with a more in-depth creation of TKIP.</p>
<p>TKIP was included in the 802.11i standards for backwards compatibility. The 802.11i standard did not want to use a cipher based RC4, so they chose AES. TKIP was put into 802.11i for the sole reason of helping older devices transition to 802.11i. To do this, 802.11i needed to support a protocol that could easily upgrade WEP to something safe enough to include in 802.11i. One of the main reasons for using TKIP over WEP came from the increased security and increasing number of attacks that were plaguing the WEP protocol. Using TKIP protected against these attacks and reduced the overall risk of operating a wireless network.</p>
<p>The TKIP standard also saw value in the industry because the migration from WEP to TKIP was an easy one. In most cases, moving from WEP to TKIP involved a small firmware change. This meant that no hardware was required to make the change and also that most older, already purchased equipment would be able to upgrade to TKIP.</p>
<p>Another interesting note about TKIP comes from Cisco Systems. Cisco came up with a TKIP solution well before the 802.11i standard defined one. This has led some people to wonder about which version of TKIP is on a certain product. Vendors other than Cisco also created TKIP-based solutions before the standard was ratified. Today, Cisco differentiates its versions of TKIP and the standard one by calling it the Cisco Key Integrity Protocol (CKIP). In Cisco products, one can specify to use TKIP, which is the 802.11i-compliant version, or CKIP, which is the Cisco-created version.</p>
<p>The TKIP encryption portion works in a two-phase process. The first phase generates a session key from a temporal key, TKIP sequence counter (TSC), and the transmitter’s MAC address. The temporal key is made up of a 128-bit value similar to the base WEP key value. The TKIP sequence counter (TSC) is made up of the source address (SA), destination address (DA), priority, and the payload or data. Once this phase is completed, a value called the TKIP-mixed transmit address and key (TTAK) is created. This value is used as a session-based WEP key in the second phase.</p>
<p>In the second phase, the TTAK and the IV are used to produce a key that encrypts the data. This is similar to how WEP is processed. In WEP the first 24 bits of the IV are added in front of the WEP key and then used to create an encryption key that is applied to the data. Then the IV is inserted into the packet header. TKIP extended the IV space, allowing for an extended IV field, which holds an additional 24 bits. In the second phase, the first 24 bits are filled with the first 24 bits of the TTAK. The next 24 bits are filled with the unused portion of the TSC. This is safer than WEP because the key is using a different value, depending on who one is talking to. In WEP, each client or access point creates the same random value. Some products never even created a random value and just incremented the value by one, making it an easy target for hackers.</p>
<p>The basis of TKIP came from the WEP protocol. In the 802.11i standard, TKIP is referred to as a cipher suite enhancing the WEP protocol on pre- RSNA hardware. This is espoused because RC4 is still used as a cipher, although the technique in which it is used has improved greatly.</p>
<p><strong>TKIP Message Integrity Check (MIC)</strong></p>
<p>Similar to TKIP, the Message Integrity Check (MIC) had also many versions before 802.11i defined it as a single standard. Once this was done, MIC became known as Michael although the acronym MIC still remains. Today with 802.11i, ratified MIC is Michael and vice versa. The protocol itself was created to help fight against the many message modification attacks that were prevalent in the WEP protocol. The IEEE 802.11i standard describes the need for MIC in the following quote: “Flaws in the IEEE 802.11 WEP design cause it to fail to meet its goal of protecting data traffic content from casual eavesdroppers. Among the most significant WEP flaws is the lack of a mechanism to defeat message forgeries and other active attacks. To defend against active attacks, TKIP includes a MIC, named Michael.” The MIC was created as a more secure method of handling integrity checking compared to the IVC in WEP.</p>
<p>The MIC is a hash that is calculated on a per-packet basis. This means a single MIC hash could span multiple frames and handle fragmentation. The MIC is also on a per-sender, per-receiver basis. This means that any given conversation has a MIC flowing from sender A to receiver B and a separate MIC flowing from sender B to receiver A.</p>
<p>The MIC is based on seed value, destination MAC, source MAC, priority, and payload. Unlike IC, MIC uses a hashing algorithm to stamp the packet, giving an attacker a much smaller chance to modify a packet and have it still pass the MIC. The seed value is similar to the WEP protocol’s IV. TKIP and MIC use the same IV space, although they have added an additional four octets to it. This was done to make the threat of using the same IV twice in a short time period less likely.</p>
<p>The MIC is also encrypted inside the data portion, which means it is not obtainable through a hacker’s wireless sniffer. To add to this, the TKIP also left the WEP IVC process, which then adds a second, less secure method of integrity checking on the entire frame. To combat message modification attacks, the TKIP and MIC went a step further and introduced the TKIP countermeasures procedures. This is a mechanism designed to protect against modification attacks. It works by having an access point shut down its communications if two MIC failures occur in 60 seconds. In this event, the access point would shut down for 60 seconds. When it comes back up, it would require that all clients trying to reconnect change their keys and undergo a re-keying. Some vendors allow one to define these thresholds, although the MIC standard calls out these values.</p>
<p>To prevent noise from triggering a TKIP countermeasure procedure, the MIC validation process is performed after a number of other validations. The validations performed before the MIC countermeasure validation are the frame check sum (FCS), integrity check sum (ICV), and TKIP sequence counter (TSC). If noise was to interfere with the packet and modify it, one of these other checks would be able to find it first, thus preventing the frame from incrementing the MIC countermeasure counter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/30/temporal-key-integrity-protocol-tkip-wireless-security/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Add or Remove Windows Vista Features</title>
		<link>http://www.techduke.com/2007/09/27/how-to-add-or-remove-windows-vista-features/</link>
		<comments>http://www.techduke.com/2007/09/27/how-to-add-or-remove-windows-vista-features/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 22:10:01 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/27/how-to-add-or-remove-windows-vista-features/</guid>
		<description><![CDATA[The Windows Vista edition you purchase determines its basic feature set, and a standard installation makes all those features available without asking you (or allowing you, for that matter) to pick and choose. In addition to these core features, a small set of advanced and specialized features is available as well. To review this list [...]]]></description>
			<content:encoded><![CDATA[<p>The Windows Vista edition you purchase determines its basic feature set<span id="more-289"></span>, and a standard installation makes all those features available without asking you (or allowing you, for that matter) to pick and choose. In addition to these core features, a small set of advanced and specialized features is available as well. To review this list and enable or disable any of the features on it, open the Programs menu in Control Panel and click Turn Windows Features On Or Off (under the Programs And Features heading).</p>
<p>Compared to previous Windows versions, the number of available options is extremely limited. The Windows Features dialog box, indicates which features are available for your edition. A check mark means the feature is currently enabled, and a blank box means the feature is disabled. If you see a filled box, the feature is partially enabled; click the plus sign to the left of the entry to see more details about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/27/how-to-add-or-remove-windows-vista-features/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Permissions and Windows XP Profile Folders</title>
		<link>http://www.techduke.com/2007/09/27/permissions-and-windows-xp-profile-folders/</link>
		<comments>http://www.techduke.com/2007/09/27/permissions-and-windows-xp-profile-folders/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 22:07:39 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/27/permissions-and-windows-xp-profile-folders/</guid>
		<description><![CDATA[Windows experts often change display options for Windows Explorer so that it shows “super hidden” files—files with both the system and hidden attributes. (You make this setting in Folder Options. On the View tab, clear Hide Protected Operating System Files [Recommended].) Those who do so invariably discover the profile folders from Windows XP, including Documents [...]]]></description>
			<content:encoded><![CDATA[<p>Windows experts often change display options for Windows Explorer so that it shows “super hidden” files—files with both the system and hidden attributes.<span id="more-288"></span> (You make this setting in Folder Options. On the View tab, clear Hide Protected Operating System Files [Recommended].) Those who do so invariably discover the profile folders from Windows XP, including Documents And Settings, My Pictures, Application Data, and so on. But then they’re surprised to find that double-clicking one of these folders (or other similar items) results in an “access denied” error message. Similarly, trying to work with any of the files contained within these folders or their subfolders produces the same error. (You can reach those files and subfolders by typing the path name at a command prompt, for example. This is true even if the protected folders are not displayed in Windows Vista.) Using an administrator account makes no difference; all users are blocked from these folders.</p>
<p>In fact, these items are not folders at all; they are junctions or symbolic links that point to their Windows Vista corollary folders. (For example, the Documents And Settings folder is merely a pointer to the Users folder.) These junction points are in place to provide compatibility for older applications for Windows. As part of their implementation, the Everyone group has a Deny ACE for List Folder / Read Data.</p>
<p>The solution is simple: do not use these folders for navigation! Aside from application compatibility, they offer nothing that the new folder names do not. Don’t delete the folders, and don’t remove the Deny permission, as that can have other unintended consequences. To work on the files and folders that appear to be in these folders, instead follow the path of nonhidden folders to find the same files and subfolders. Honestly, the best solution is to hide the protected operating system files, and forget that you ever found these folders.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/27/permissions-and-windows-xp-profile-folders/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Backing Up Cookies in Internet Explorer</title>
		<link>http://www.techduke.com/2007/09/27/backing-up-cookies-in-internet-explorer/</link>
		<comments>http://www.techduke.com/2007/09/27/backing-up-cookies-in-internet-explorer/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 22:04:23 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/27/backing-up-cookies-in-internet-explorer/</guid>
		<description><![CDATA[Because cookies—particularly the ones you intentionally allow your system to accept— are more likely to be beneficial than harmful, it’s smart to back them up from time to time. Internet Explorer’s Import/Export Wizard lets you do just that. Tap the Alt key to make the menu bar visible, and then click Import And Export on [...]]]></description>
			<content:encoded><![CDATA[<p>Because cookies—particularly the ones you intentionally allow your system to accept— are more likely to be beneficial than harmful, it’s smart to back them up from time to time.<span id="more-287"></span> Internet Explorer’s Import/Export Wizard lets you do just that. Tap the Alt key to make the menu bar visible, and then click Import And Export on the File menu. Follow the wizard’s steps to export your cookies. The wizard creates a single text file, stored by default in your Documents folder.</p>
<p>The command to export cookies was included in Internet Explorer to provide users with a way to transfer their cookies to the format used by Netscape browsers. But it works just as well as a backup tool. If you ever need to restore your cookies, run the Import/ Export Wizard again, and point the wizard to the file you exported earlier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/27/backing-up-cookies-in-internet-explorer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Avoiding Tweaks of Dubious Value in Windows Vista to Improve Performance</title>
		<link>http://www.techduke.com/2007/09/27/avoiding-tweaks-of-dubious-value-in-windows-vista-to-improve-performance/</link>
		<comments>http://www.techduke.com/2007/09/27/avoiding-tweaks-of-dubious-value-in-windows-vista-to-improve-performance/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 22:02:51 +0000</pubDate>
		<dc:creator>Tech Duke</dc:creator>
		
		<category><![CDATA[Spyware, Adware, Antivirus]]></category>

		<guid isPermaLink="false">http://www.techduke.com/2007/09/27/avoiding-tweaks-of-dubious-value-in-windows-vista-to-improve-performance/</guid>
		<description><![CDATA[Among diehard tweakers, the urge to squeeze out every last bit of performance from a computer is irresistible. As a result, even a casual web search turns up dozens of tips intended to help you improve performance in Windows.
Unfortunately, many of the Windows-tuning tips we’ve seen are of dubious value, and a few can actually [...]]]></description>
			<content:encoded><![CDATA[<p>Among diehard tweakers, the urge to squeeze out every last bit of performance from a computer is irresistible.<span id="more-286"></span> As a result, even a casual web search turns up dozens of tips intended to help you improve performance in Windows.</p>
<p>Unfortunately, many of the Windows-tuning tips we’ve seen are of dubious value, and a few can actually hurt performance when indiscriminately applied. Some of these spurious tips are derived from techniques that worked with older Windows versions but are irrelevant now. Others are based on seemingly logical but erroneous extrapolations of how would-be experts think Windows works.</p>
<p><strong>Page File Confusion</strong></p>
<p>By far the most common instances of performance-related misinformation revolve around the subject of page files, also known as swap files. The following are some widely published myths about the proper configuration of virtual memory in Windows:</p>
<p><strong>If your computer has a large amount of memory installed, you should eliminate your page file completely.</strong> This is incorrect. Although you can configure Windows so that it does not set aside any virtual memory, no reputable source has ever published benchmarks establishing any performance gains from doing so, and Windows simply wasn’t designed to run without a page file. If the goal is to conserve disk space, a more sensible strategy is to configure Windows to create a page file with a relatively small minimum size and monitor its usage over time to see how much virtual memory the operating system actually uses in daily operation.</p>
<p><strong>Creating a page file of a fixed size improves performance.</strong> This is also bad advice. The logic behind this tip dates back to the earliest days of Windows. On 1990s-vintage hardware, dynamically resizing the swap file caused noticeable delays in system response and also resulted in excessive fragmentation. The memory management subsystems in Windows XP and Windows Vista have been tuned to minimize the likelihood of performance problems.</p>
<p><strong>Prefetch Pros and Cons</strong></p>
<p>To improve the speed of starting applications, Windows continually monitors files that are used when the computer starts and when you start applications. It then creates an index (in the %SystemRoot%\Prefetch folder) that lists segments of frequently used programs and the order they’re loaded in. This prefetching process improves performance by allowing the operating system to quickly grab program files.</p>
<p>A widely circulated tip of dubious value recommends that Windows users clean out the Prefetch folder and consider disabling the Prefetch function. Some sites even provide links to utilities that automate these functions.</p>
<p>Clearing out the Prefetch folder forces Windows to run programs inefficiently—but only once, since Windows rebuilds the Prefetch layout for a program the next time you run that program. Disabling the Prefetch function eliminates Windows’ ability to optimize program loading. In either case, it’s hard to find a logical reason why the tweak should result in a performance improvement.</p>
<p>Is it necessary to clear out the Prefetch cache occasionally to eliminate obsolete files and to minimize wasted disk space, as some websites claim? Hardly. A typical Prefetch folder uses 3-6 MB of disk space, and Windows flushes entries that are older than a few weeks. Our take? The developers responsible for the memory management subsystem of Windows did a remarkable job when they devised this feature. Don’t turn it off.</p>
<p><strong>Shutting Down Services</strong></p>
<p>We’ve also seen sites focusing on Windows services. One sensible piece of advice is to minimize the use of unnecessary background applications and system services. A few sites take this advice to an extreme, however, urging Windows users to shut down virtually all system services, including System Restore and Automatic Updates. We don’t agree that the average Windows user should perform this sort of radical surgery on Windows. In less-than-expert hands, the Services console is a minefield; some Windows services can be safely disabled, but indiscriminately shutting down services is a prescription for trouble.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techduke.com/2007/09/27/avoiding-tweaks-of-dubious-value-in-windows-vista-to-improve-performance/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
