Abstract:
Certified Wireless USB 1.0 defines two different types of association: cable association and numeric association. In order to implementation these two association methods, the CWUSB device needs to have either upstream USB connector (for cable association) or display capability (for numeric association). These extra requirements make the CWUSB device bulkier (one more USB connector) and/or more expensive (extra display components). For cheap and simple CWUSB devices, we need a simpler association method that is easy and cheap to implement. In a pre-packaged total solution, which includes a host and one or more device(s), we can use pre-association to smooth the user experience. The host and device(s) are pre-associated. When an end user starts to use this solution, they do not need to worry about the association at all.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
       [0001]    This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 60/988,747, filed Nov. 16, 2007, the disclosure of which is incorporated by reference within. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    Certified Wireless USB 1.0 defines two different types of association: cable association and numeric association. In order to implementation these two association methods, the CWUSB device needs to have either upstream USB connector (for cable association) or display capability (for numeric association). These extra requirements make the CWUSB device bulkier (one more USB connector) and/or more expensive (extra display components). For cheap and simple CWUSB devices, we need a simpler association method that is easy and cheap to implement. 
       BRIEF SUMMARY OF THE INVENTION 
       [0003]    In a pre-packaged total solution, which includes a host and one or more device(s), we can use pre-association to smooth the user experience. The host and device(s) are pre-associated. When an end user starts to use this solution, device(s) and host will be connected automatically without going through any extra step to associate them together. 
         [0004]    A Connection Context defined in CWUSB consists of three 16-bytes values: Connection Host ID (CHID), Connection Device ID (CDID) and Connection Key (CK). The purpose of association process is to share the same connection context between the host and the device. The CK is the shared secret, which is one major component to derive the other keys used in the secure communication between host and device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    Please note that the drawings shown in this specification may not be drawn to scale and the relative dimensions of various elements in the diagrams are depicted schematically and not to scale. 
           [0006]      FIG. 1  depicts a 4-way handshake using an Algorithm Approach to determine the connection procedure in accordance with the present invention. 
           [0007]      FIG. 2  depicts a 4-way handshake using a Multi-CHID Approach to determine the connection procedure in accordance with the present invention. 
           [0008]      FIG. 3  depicts a 4-way handshake using a Fixed-CDID-CK Approach to determine the connection procedure in accordance with the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0009]    Since the key-derivation process in the 4-way handshake procedure used in the CWUSB environments uses CHID, CDID and CK, both the host and device need to have the same Connection Context. One big problem in the pre-association is that there is no way to know what CHID the host will use since it is the driver&#39;s job to manage the CHID life cycle. Therefore, only the CDID and CK can be pre-created and saved in both host (HWA dongle or WHCI express card, etc.) and device hardware. To solve the unknown CHID problem, we purpose three different solutions: 
         [0010]    Algorithm approach: Use a ‘known’ algorithm to derive the CHID from some of the ‘known’ properties from the CWUSB host; 
         [0011]    Multi-CHID approach: Host broadcasts more than one CHID in the MMC (Micro-scheduled Management Command) packet; and 
         [0012]    Fixed-CDID-CK approach: Device tries to connect using pre-associated CDID and CK if the CHID is not in its local database. 
         [0013]    All approaches are backward compatible with the current CWUSB standard but require modification in the host driver. 
       Implementation: 
       [0014]    All approaches require the pre-association data stored in the CWUSB host hardware accessible from the CWUSB host driver (HWA driver, WHCI driver, etc). For HWA, driver could access them by using vendor-specific requests. For WHCI, driver could access them by register or direct access to the PCI(e)&#39;s device memory. After extraction of these components of pre-association information, the driver needs to update the local CCDB (Connection Context Data Base) to reflect the newly acquired entries with a special flag that indicates these entries are pre-associated. 
       Algorithm Approach: 
       [0015]    The key concepts for the algorithm approach are: 
         [0016]    1. The use of the virtual CHID in the host driver and the device firmware to perform the normal connection procedure. 
         [0017]    2. Host information, a known hash function located in the host driver and the device firmware are used to create the virtual CHID. The host information includes the EUI-48 (6 byte), MAC-address (2 byte), Channel (1 byte) and Band Group (1 byte) components. The algorithm could use one or any combination of these components as long as they are equivalent on both the host and device side. The hashing function can be any function as long as it is shared by host and device and is not a really bad degenerating function. One simple combination is to use the EUI-48 directly as the CHID. 
         [0018]      FIG. 1  illustrates a 4 way handshake procedure  1 - 1 . At the host, the block  1 - 2  reads the pre-association data and merges them into the local CCDB with a special flag indicating these are pre-associated devices. The setting of the flag within the host indicates that host has pre-association data embedded into it at the factory. An MMC (Micro-scheduled Management Command) sends scheduling information to the devices where this information is transferred using TDM (Time Division Multiplexing) scheduling. In addition, the CHID is sent  1 - 3  with the MMC to the device. 
         [0019]    At the device, the block  1 - 4  checks to see if CHID is in the association list; if so then do the standard procedure to the host. However, if the CHID is unknown (not in the association list), use an algorithm to hash the host information into a virtual CHID. The host information, as mentioned previously, includes the EUI-48 (6 byte), MAC-address (2 byte), Channel (1 byte) and Band Group (1 byte) components. The device receives the host information by the WiMedia beaconing protocol and WUSB protocol. The device uses the virtual CHID to perform the normal standard connection procedure to the host during the establishment of the secure link. 
         [0020]    During the transfer  1 - 5 , Device Notification (DN) carries information indicating the device wants to establish a connection. In addition, the CDID is also sent to the host. The host checks the CDID against its CCDB. If it is a normal entry, do the standard connection procedure. Other wise, read the flag to see if the device has been pre-associated. If it is a pre-associated device, use the same algorithm that was used in the device to hash the host information into a virtual CHID. The host would use the same host information as what was used in the device. This virtual CHID will be used to do the standard connection procedure. 
         [0021]    Note several similarities between the host and the device: both require the identical algorithm; and both have access to the same host information that serves as a seed in the hashing step. The host information originated within the host and was then sent to the device via the WiMedia beacon packets and regular WUSB packets. Thus, the host information within the host is identical to the host information held in the device. The virtual CHID that is generated from the seed (host information) being hashed by the algorithm is calculated on the host and similarly the virtual CHID is generated on the device. Thus, the device and host now share a common secret: the virtual CHID. 
         [0022]    Now, perform a normal connection procedure along with the 4-way handshake procedure  1 - 6 . Do this until the security of the link is established. Generate and save the new connection context on top of the pre-associated entry or add a new entry with the Connection Context  1 - 7 . Then pass  1 - 8  the Connection Context to the device and save the Connection Context in the local host list. This information can be used for future connections. 
         [0023]    Once the normal Connection Context is established on both sides, the host can ignore the pre-associated entry from now on. The device, however, should keep the pre-associated entry in its local database. This is due to the possibility of this pre-associated package being used on another computer which has different local CCDB. It also implies that the host hardware (HWA or WHCI express card, etc.) needs to keep the pre-association data too. 
         [0024]    The pre-association information is saved in ROM or Flash memory on both the host and device side. So, if the HWA is connected to another computer that has different CCDB, the device is expected to work with this host where the host can be connected to any computer. This implies that the devices are actually pre-associated with the WUSB host hardware (HWA or WHCI), not the computer. So, both sides need to use the pre-association data to establish the connection if possible. 
         [0025]    Multi-CHID Approach: 
         [0026]    The key concept here is to include more than one HostInfo IE in the MMC to let device know that the host accepts a normal connection request and a pre-associated connection request. Once the secure connection is established, the host and the device will do the same thing as described in the “algorithm approach” section. In other words, the next step is to perform a normal connection procedure along with the 4-way handshake procedure  1 - 6  as illustrated in  FIG. 1 . Do this until the security of the link is established. Save the new connection context on top of the pre-associated entry or add a new entry with the Connection Context  1 - 7 . Then pass the Connection Context to the device  1 - 8  and save the Connection Context in the local host list. This information can be used for future connections. 
         [0027]      FIG. 2  illustrates a Multi-CHID  4  way handshake  2 - 1 . At the host, the block  2 - 2  reads the pre-association data and merges them into the local CCDB with a special flag. It also records the pre-associated CHID 0 . The CHID 0  was stored in the package before shipping the package out of the factory. MMCs with both CHID and CHID 0  are sent  2 - 3  to the device. At the device, the block  2 - 4  checks the CHID and CHID 0  to see if it is in the association list then do the standard procedure. In case of conflict, the normal CHID has the higher priority. During the transfer  2 - 5 , Device Notification (DN) and CDID is also sent to the host. The host checks the CDID against the CCDB. If it is a normal entry, do the standard connection. Other wise, if it is a pre-associated device, use CHID 0  to do the standard connection procedure. 
         [0028]    Now, perform a normal connection procedure along with the 4-way handshake procedure  2 - 6 . Do this until the security of the link is established. Generate and save the new connection context on top of the pre-associated entry or add a new entry with the Connection Context  2 - 7 . Then pass  2 - 8  the Connection Context to the device and save the Connection Context in the local host list of the device. This information can be used for future connections. 
         [0029]    There are some drawbacks of this approach: It needs to include two HostInfo IE in the MMC which is not part of the CWUSB 1.0 spec (although it is backward compatible). In addition, the CHI Do is always fixed which could be a security hassle. Other than that, a Multi-CHID Approach is simpler than the Algorithm Approach. 
       Fixed-CDID-CK Approach: 
       [0030]      FIG. 3  illustrates a Fixed-CHID-CK  4  way handshake  3 - 1 . At the host, the block  3 - 2  reads the pre-association data and merges them into the local CCDB. An MMC with CHID is  3 - 3  sent to the device. At the device, the block  34  checks the CHID to see if it is in the association list then do the standard procedure. Other wise, if it is not in the association list, the CHID should be used as the CHID of the pre-associated connection context and do the standard connection procedure. During the transfer  3 - 5 , Device Notification (DN) and CDID are sent to the host. The host checks the CDID against the CCDB. If the CDID is in the CCDB, do the standard connection. If the CDID is not in the CCDB, then the host will abandon the connection attempt being made from the device since the CDID should be in the merged CCDB on the host for all the pre-associated devices. 
         [0031]    Now, perform in a normal connection procedure along with the 4-way handshake procedure  3 - 6 . Do this until the security of the link is established. Generate and save the new connection context on top of the pre-associated entry or add a new entry with the Connection Context  3 - 7 . Then pass  3 - 8  the Connection Context to the device and save the Connection Context in the local host list. This information can be used for future connections. 
       Remark: 
       [0032]    All these pre-association methods have one common requirement: they all need to have different pre-associated Connection Context generated in the factory between different paired solutions. So no two packages of host plus devices will share any common Connection Contexts. Only then can we assume there is no way to access the pre-associated information without making direct physical contact with the host and the devices. Thus, the extraction of this pre-associated information, other than as it is used in this invention, would require an exorbitant amount of effort, for example; reverse engineering, careful probing, waveform analysis, etc. to undermine the secure connection. 
         [0033]    Finally, it is understood that the above description are only illustrative of the principle of the current invention. It is understood that the various embodiments of the invention, although different, are not mutually exclusive. In accordance with these principles, those skilled in the art may devise numerous modifications without departing from the spirit and scope of the invention. For example, one can combine the Algorithm approach and the fixed-CDID-CK approach to use EUI-48 broadcast in the host beacon to identify this host is pre-associated host and just use the CHID in the regular 4-way handshake procedure. These concepts can be incorporated into other wireless systems using other standards or proprietary wireless interfaces. The invention can be practiced using many devices coupled to the host although the specification mainly described a host-device interface. The Connection Host ID (CHID) may be addressed as a host identifier while the Connection Device ID (CDID) may be addressed as a device identifier. The terms “standard connection procedure” and “normal connection procedure” can be considered interchangeable terms. In addition, a wireless channel can be formed by sending one or more different packet protocols in said wireless channel. Some examples of packet protocol includes: WiMedia beaconing packet protocol and CWUSB packet protocol.