SERVICE PLATFORM/TRANSCEIVER DEVICE LOCKING SYSTEM

A service platform/transceiver device locking system include a transceiver device that disables its data communication operations during an initialization operation and generates challenge information, and a platform device that retrieves that challenge information. The platform device uses a service platform private key to encrypt the challenge information, and provides the encrypted challenge information and a service-platform-provider-private-key-signed service platform public key to the transceiver device. The transceiver device uses a service platform provider public key to verify a service platform public key in the service-platform-provider-private-key-signed service platform public key to produce a verified service platform public key that it uses to decrypt the encrypted challenge information to produce decrypted challenge information. If the transceiver device determines that the decrypted challenge information matches the challenge information, it enables its data communication operations and locks itself to operate with a service platform associated with the service platform public key.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to locking transceiver devices to operate with a service platform provided by information handling systems.

Information handling systems such as, for example, networking devices (e.g., switch devices), storage device, and server devices are sometimes provided by a service platform provider as a “service platform” that includes a group of platform devices that are configured to operate with each other to provide one or more services. Furthermore, platform devices often utilize transceiver devices in order to communicate with each other in order to provide service(s) as part of service platforms. For example, networking devices may utilize a plurality of transceiver devices connected to its ports in order to communicatively couple to server devices and storage devices and enable relatively high-speed communications (e.g., 1 GbE to 400 GbE, and up to 800 GbE in near-future deployments) between the platform devices. As will be appreciated by one of skill in the art in possession of the present disclosure, transceiver devices are relatively high-cost devices, and the capital expenditure on transceiver devices connected to a networking device is often several times that of the networking device itself.

One of skill in the art in possession of the present disclosure will recognize that transceiver devices may be “qualified” for particular networking devices based on those transceiver devices including relatively enhanced compatibility, functionality, and/or other operational capabilities with those networking devices as compared to “non-qualified” transceiver devices. However, users of networking devices are permitted to utilize non-qualified transceiver devices with their networking devices, but are often provided a warning when connecting a non-qualified transceiver device to a networking device. Despite this, users of networking devices continue to utilize non-qualified transceiver devices with networking devices, typically because those non-qualified transceiver devices are relatively lower cost than the qualified transceiver devices. The increased use of non-qualified transceiver devices with networking devices has resulted in a corresponding increase in support calls to networking device providers and/or service platform providers, as users of the networking device tend to look to the networking device provider and/or service platform provider when issues arise in its operation, even when those issues are caused by the use of non-qualified transceiver devices that are out of the control of the networking device provider and/or service platform provider. Such support calls utilize support resources of the networking device provider and/or service platform provider, resulting in increased costs. As such, it is desirable for networking device providers or service platform providers to incentivize the use of qualified transceiver devices with their networking devices and/or other platform devices.

Accordingly, it would be desirable to provide service platform/transceiver device system that addresses the issues discussed above.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a processing system; and a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a transceiver engine that is configured to: disable, during a first initialization operation following connection to a first platform device, data communication operations for the transceiver IHS; generate challenge information; receive, from the first platform device, encrypted challenge information and a service-platform-provider-private-key-signed service platform public key; verify, using a service platform provider public key, a service platform public key included in the service-platform-provider-private-key-signed service platform public key to produce a verified service platform public key; decrypt, using the verified service platform public key, the encrypted challenge information to produce decrypted challenge information; determine that the decrypted challenge information matches the challenge information and, in response: enable data communication operations for the transceiver IHS; and lock the transceiver IHS to operate with a service platform associated with the service platform public key.

DETAILED DESCRIPTION

Referring now toFIG.2, an embodiment of a service platform200is illustrated. In the illustrated embodiment, the service platform200includes one or more platform devices202. In an embodiment, the platform device(s)202may be provided by the IHS100discussed above with reference toFIG.1, and/or may include some or all of the components of the IHS100, and in specific examples may be provided by networking devices such as switch device. In the illustrated embodiment, the service platform200also includes one or more platform devices204that are coupled to the platform device(s)202. In an embodiment, the platform device(s)204may be provided by the IHS100discussed above with reference toFIG.1, and/or may include some or all of the components of the IHS100, and in specific examples may be provided by server devices. In the illustrated embodiment, the service platform200also includes one or more platform devices206that are coupled to the platform device(s)202and the platform device(s)204. In an embodiment, the platform device(s)206may be provided by the IHS100discussed above with reference toFIG.1, and/or may include some or all of the components of the IHS100, and in specific examples may be provided by storage systems. However, while illustrated and discussed as being provided by networking device, server devices, and storage systems, one of skill in the art in possession of the present disclosure will recognize that platform devices provided in the service platform200may include any devices that may be configured to operate similarly as the platform devices202,204, and/or206discussed below.

As will be appreciated by one of skill in the art in possession of the present disclosure, the platform devices202,204, and206and the service platform200may be provided by an Original Equipment Manufacturer (OEM) such as DELL® Inc. of Round Rock, Texas, United States, and/or other service platform providers known in the art. For example, the service platform provider may manufacture, configure, and/or otherwise provide each of the platform devices202,204, and206in order to provide networking device(s), server device(s), and storage system(s) that operate as the service platform200to perform any of a variety of service(s) that would be apparent to one of skill in the art in possession of the present disclosure. To provide a specific example, a user may order a service platform from the service platform provider to perform desired service(s), and the service platform provider may manufacture the platform devices202,204, and206and configure them (e.g., with hardware, software, firmware, etc.) to perform the service(s), and then provide the platform devices202,204, and206to the user as the service platform200. As discussed below, in some embodiments, the service platform provider may generate a “service platform tag” or other unique identifier for any service platform ordered by any user, and thus each of the platform devices202,204, and206in the service platform200ofFIG.2may be associated with a common service platform tag (e.g., the service platform tag/identifier “SERVICE TAG200” in the examples below). However, while a specific service platform200has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the service platform/transceiver device locking system of the present disclosure may be utilized in systems and/or subsystems other than service platforms while remaining within the scope of the present disclosure as well.

Referring now toFIG.3, an embodiment of a platform device300is illustrated that may provide any of the platform devices202,204, and/or206discussed above with reference toFIG.2. As such, the platform device300may be provided by the IHS100discussed above with reference toFIG.1and/or may include some or all of the components of the IHS100, and in the specific examples provided herein is described as being provided by a networking device such as a switch device. However, while illustrated and discussed as being provided by a networking device, one of skill in the art in possession of the present disclosure will recognize that the functionality of the platform device300discussed below may be provided by the server devices or storage systems discussed above, as well as any other devices that are configured to operate similarly as the platform device300discussed below. In the illustrated embodiment, the platform device300includes a chassis302that houses the components of the platform device300, only some of which are illustrated and discussed below. For example, the chassis302may house a processing system304that may include the processor102discussed above with reference toFIG.1, and in specific examples may be provided by a “host” Central Processing Unit (CPU) System on Chip (SoC) and/or other processing systems known in the art. As described in the specific examples provided below, the processing system304may be coupled to a memory system in the chassis302(not illustrated, but which may include the memory114discussed above with reference toFIG.1) that includes instructions that, when executed by the processing system304, cause the processing system304to provide Network Operating System (NOS) that is configured to perform the functionality of the NOS s and/or processing systems discussed below.

In the illustrated embodiment, the chassis302also houses a Field Programmable Gate Array (FPGA) subsystem306(e.g., an FPGA complex) that is coupled to the processing system304(e.g., via a Peripheral Component Interconnect express (PCIe) interface) and that may include an Inter-Integrated Circuit (I2C) controller block/arbiter and/or other FPGA components and/or functionality that would be apparent to one of skill in the art in possession of the present disclosure. The chassis302also houses the communication system308that includes a port308athat is coupled to the FPGA subsystem306(e.g., via an I2C interface) and that is configured to connect to a transceiver device, discussed in further detail below. However, while the port308ais illustrated and described herein as being coupled to the processing system304via the FPGA subsystem306, one of skill in the art in possession of the present disclosure will appreciate how the processing system304and the port308amay be coupled together using other techniques that will fall within the scope of the present disclosure as well. While not explicitly illustrated, one of skill in the art in possession of the present disclosure will appreciate how the port308amay include a port connector that is configured to engage a transceiver connector on a transceiver device, discussed in further detail below.

In the illustrated embodiment, the chassis302also houses a management controller system310that is coupled to the FPGA subsystem306(e.g., via an I2C interface). For example, the management controller system310may be provided by a Platform Management Controller (PMC) that is configured to provide a PMC Operating System (PMC-OS), although other management controller systems are envisioned as falling within the scope of the present disclosure as well. However, while the port308ais illustrated and described herein as being coupled to the management controller system310via the FPGA subsystem306, one of skill in the art in possession of the present disclosure will appreciate how the management controller system310and the port308amay be coupled together using other techniques that will fall within the scope of the present disclosure as well.

As illustrated, the management controller system310may include a Trusted Platform Module (TPM) device310athat one of skill in the art in possession of the present disclosure will appreciate may include a secure cryptoprocessor provided by a dedicated microcontroller, chip, or other module that is configured to secure hardware using integrated cryptographic keys, although other subsystems that provide the functionality of the TPM device310aare envisioned as falling within the scope of the present disclosure as well. As illustrated, the management controller system310may also include a storage device310bthat may be provided by a flash storage device and/or other storage devices that would be apparent to one of skill in the art in possession of the present disclosure. However, while a specific platform device300has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that platform devices (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the platform device300) may include a variety of components and/or component configurations for providing conventional platform device functionality (e.g., networking functionality in the specific examples provided below), as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG.4A, an embodiment of a transceiver device400is illustrated that may be utilized with the platform device300ofFIG.3and/or the service platform200ofFIG.2. In an embodiment, the transceiver device400may be provided by the IHS100discussed above with reference toFIG.1and/or may include some or all of the components of the IHS100, and in different examples may be provided by any of a variety of transceiver devices (e.g., 100 GbE QSFP28 transceiver devices, 100 GbE SFP56-DD transceiver devices, 100 GbE SFP112 transceiver devices, 128GFC SFP112 transceiver devices, 200 GbE QSFP56 transceiver devices, 400 GbE QSFP56-DD transceiver devices, 800 GbE QDD and OSFP transceiver devices, etc.) that would be apparent to one of skill in the art in possession of the present disclosure. Furthermore, while illustrated and discussed as being provided by a transceiver device, one of skill in the art in possession of the present disclosure will recognize that the functionality of the transceiver device400discussed below may be provided by other devices that are configured to operate similarly as the transceiver device400discussed below. In the illustrated embodiment, the transceiver device400includes a chassis402that houses the components of the transceiver device400, only some of which are illustrated and discussed below. For example, the chassis402may house a processing system (not illustrated, but which may include a processor similar to the processor102discussed above with reference toFIG.1such as a microcontroller or other transceiver processing system that would be apparent to one of skill in the art in possession of the present disclosure) and a memory system (not illustrated, but which may include a memory similar to the memory114discussed above with reference toFIG.1) that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a transceiver engine404(e.g., transceiver firmware) that is configured to perform the functionality of the transceiver engines and/or transceiver devices discussed below.

In the illustrated embodiment, the chassis402also houses a Trusted Platform Module (TPM) device406that is coupled to the transceiver engine404(e.g., via a coupling between the TPM device406and the processing system) and that one of skill in the art in possession of the present disclosure will appreciate may include a secure cryptoprocessor provided by a dedicated microcontroller, chip, or other module that is configured to secure hardware using integrated cryptographic keys, although other subsystems that provide the functionality of the TPM device406are envisioned as falling within the scope of the present disclosure as well. As illustrated, the chassis402also houses a storage device406that is coupled to the transceiver engine404(e.g., via a coupling between the storage device408and the processing system). For example, the storage device406may be provided by an Electronically Erasable Read Only Memory (EEPROM), although other storage devices are envisioned as falling within the scope of the present disclosure as well.

With reference toFIG.4B, the storage device408may include a user-defined page408athat, in the illustrated embodiment, includes a “LOCK STATUS” section that is configured to identify a lock status for the transceiver device400(e.g., “NULL” in the embodiment illustrated inFIG.4B), a “SERVICE PLATFORM” section that is configured to identify a service platform tag or other identifier to which the transceiver device400may be locked (e.g., “NULL” in the embodiment illustrated inFIG.4B), a “CHALLENGE” section that is configured to store a challenge generated by the transceiver device400(e.g., “NULL” in the embodiment illustrated inFIG.4B), a “RESPONSE” section that may receive responses to challenges from a platform device (e.g., “NULL” in the embodiment illustrated inFIG.4B), and an “OEM COMMAND” section that may receive commands from a service platform provider (e.g., “NULL” in the embodiment illustrated inFIG.4B).

However, while a specific user-defined page408ahas been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the functionality provided by the user-defined page408ain the storage device408described below may be provided by other data structures while remaining within the scope of the present disclosure as well. Furthermore, while a specific transceiver device400has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that transceiver devices (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the transceiver device400) may include a variety of components and/or component configurations (e.g., a transceiver connector that is configured to engage a port connector in the port308aon the platform device300) for providing conventional transceiver device functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG.5, an embodiment of a method500for preparing a platform device and a transceiver device to allow the locking of the transceiver device to operate with a service platform provided by the platform device is illustrated. As discussed below, the systems and methods of the present disclosure provide for the locking of transceiver devices to service platforms provided by platform devices, and in preparation to perform such locking, the platform devices may be provided with platform private keys, service platform private keys, and service-platform-provider-private-key-signed service platform public keys, while the transceiver devices may be provided with service platform provider private key certificates. As described below, the information provided in the platform device and the transceiver device allow the transceiver device to be locked to operate with a service platform provided by the platform device, remain locked to operate with the service platform when moved between platform devices that provide the service platform, and be unlocked from operating with the service platform if desired.

As will be appreciated by one of skill in the art in possession of the present disclosure, the ability to lock transceiver devices to operate with service platforms allows a service platform provider to provide a customer all of the platform devices and transceiver devices needed to provide a service platform, while also allowing the service platform provider to offer the transceiver devices at a discounted cost that is contingent on their use only in the service platform. As such, the service platform provider can incentivize users to utilized qualified transceiver devices with the platform devices that provide their service platform by offering those transceiver devices at a cost similar to unqualified transceiver devices, thus reducing or eliminating the issues associated with the use of unqualified transceiver devices discussed above. Furthermore, in the event a user wishes to subsequently utilize their transceiver devices with devices that are not included in the service platform, that user may pay to unlock those transceiver devices (e.g., a cost equal to the difference between the discounted and non-discounted price of the transceiver devices), thus allowing users the freedom to utilize the transceiver devices outside the service platform if desired.

The method500begins at block502where a service platform provider provides a platform private key in a platform device. In an embodiment, prior to or during the method500, the service platform provider (e.g., an OEM such as DELL® Inc. of Round Rock, Texas, United States) may generate a platform private key for the platform device300. As discussed above, the platform device300may be manufactured, configured, and/or otherwise provided by the service platform provider as part of a service platform that includes a plurality of platform devices ordered by a user, and as part of that service platform configuration the service platform provider may generate a service platform tag (e.g., “SERVICE PLATFORM200” in the examples below) or other unique identifier that identifies the service platform and that is associated with each of the platform devices that provide that service platform. In some examples, the service platform provider may generate a platform public key and a platform private key (e.g., a platform “public/private key pair”) for each platform device that provides the service platform, and one of skill in the art in possession of the present disclosure will appreciate how the platform public/private key pair generated for each platform device may be unique to that platform device (i.e., a platform public/private key pair for the platform device300that provides a service platform may be unique to the platform device300and different than respective platform public/private key pairs generated for each of the other platform devices that provide that service platform).

With reference toFIG.6A, in an embodiment of block502, the platform service provider may provide a platform private key (“PLATFORMPRIV”)600in the TPM device310included in the management controller system310of the platform device300, and one of skill in the art in possession of the present disclosure will appreciate how a respective unique platform private key may be provided in the TPM device included in the management controller system in each of the platform devices202,204, and206that provide the service platform200discussed above with reference toFIG.2.

The method500then proceeds to block504where the service platform provider provides a service platform private key and a service-platform-provider-private-key-signed service platform public key in the platform device. In an embodiment, prior to or during the method500, the service platform provider (e.g., an OEM such as DELL® Inc. of Round Rock, Texas, United States) may generate a service platform private key for the service platform200that includes the platform device300. In some examples, the service platform provider may generate a service platform public key and a service platform private key (e.g., a service platform “public/private key pair”) for the service platform200, and one of skill in the art in possession of the present disclosure will appreciate how the service platform public/private key pair generated for the service platform200may be unique to that service platform200(i.e., a service platform public/private key pair for the service platform200may be unique to the service platform200and different than respective service platform public/private key pairs generated for other service platforms provided by the service platform provider). Furthermore, one of skill in the art in possession of the present disclosure will appreciate how the service platform provider may have a service platform provider public key and a service platform provider private key (e.g., a service platform provider “public/private key pair”) that is unique to the service platform provider.

With reference toFIG.6B, in an embodiment of block504, the platform service provider may provide a service platform private key (“SERV.PLATPRIV”)602in the TPM device310included in the management controller system310of the platform device300, and one of skill in the art in possession of the present disclosure will appreciate how the service platform private key may be provided in the TPM device included in the management controller system in each of the platform devices202,204, and206that provide the service platform200discussed above with reference toFIG.2. Furthermore, at block504, the service platform provider may sign the service platform public key for the service platform200with the service platform provider private key to produce a service-platform-provider-private-key-signed service platform public key (“X.509OEM PRIV(SERV.PLATPUB)”)604and provide that service-platform-provider-private-key-signed service platform public key in the storage device310bincluded in the management controller system310of the platform device300. However, while the service-platform-provider-private-key-signed service platform public key is illustrated and described as being provided by an X.509 certificate, one of skill in the art in possession of the present disclosure will appreciate how the service-platform-provider-private-key-signed service platform public key may be provided using other techniques while remaining within the scope of the present disclosure as well.

The method500then proceeds to block506where the service provider platform provides a service platform provider public key certificate in a transceiver device. With reference toFIG.6C, in an embodiment of block506, the platform service provider may provide a service platform provider public key certificate (“X.509OEM PUB”)606in the TPM device406included in the transceiver device400, and one of skill in the art in possession of the present disclosure will appreciate how the service platform provider public key certificate may be provided in the TPM device included in any transceiver device provided for use with the service platform200. As will be appreciated by one of skill in the art in possession of the present disclosure, the service platform provider public key certificate provides the service platform provider public key in the transceiver device400in a manner that may be verified by the transceiver engine404. However, while the service platform provider public key certificate is illustrated and described as being provided by an X.509 certificate, one of skill in the art in possession of the present disclosure will appreciate how the service platform provider public key certificate may be provided using other techniques while remaining within the scope of the present disclosure as well. As will be appreciated by one of skill in the art in possession of the present disclosure, following block506of the method500, the platform device300and the transceiver device400are configured to allow the transceiver device400to be locked to operate with the service platform200provided by platform devices202/300,204/300, and206/300, while allowing the transceiver device400to be unlocked from operating with that service platform200if desired.

Referring now toFIG.7, an embodiment of a method700for locking a transceiver device to operate with a service platform provided by a platform device is illustrated. As discussed below, the systems and methods of the present disclosure provide for the locking of a transceiver device to a service platform provided by platform devices during a first initialization/power up of that transceiver device in one of those platform devices, thus preventing subsequent use of that transceiver device with a device that is not included in/does not provide that service platform. For example, the service platform/transceiver device locking system of the present disclosure may include a transceiver device that disables its data communication operations during an initialization operation and generates challenge information, and a platform device that retrieves that challenge information. The platform device uses a service platform private key to encrypt the challenge information, and provides the encrypted challenge information and a service-platform-provider-private-key-signed service platform public key to the transceiver device. The transceiver device uses a service platform provider public key to verify a service platform public key in the service-platform-provider-private-key-signed service platform public key to produce a verified service platform public key that it uses to decrypt the encrypted challenge information to produce decrypted challenge information. If the transceiver device determines that the decrypted challenge information matches the challenge information, it enables its data communication operations and locks itself to operate with a service platform associated with the service platform public key.

The method700begins at block702where a transceiver device connects to a platform device. With reference toFIG.8, in an embodiment of block702, the transceiver device400may be connected to the platform device300. For example, the transceiver device400may be positioned adjacent the port308ain the communication system308of the platform device300such that a transceiver connector on the transceiver device400is aligned with the port308a. The transceiver device400may then be moved towards the port308asuch that the transceiver connector engages a port connector that is included in the port308a. As will be appreciated by one of skill in the art in possession of the present disclosure, with the transceiver device400connected to the port308aas illustrated inFIG.8, the transceiver engine404may be coupled to the FPGA subsystem306(e.g., via the transceiver connector/port connector engagement) and configured to transmit data to either of the processing system304and the management controller system310.

The method700then proceeds to block704where the transceiver device initializes, disables data communication operations, and generates challenge information. In an embodiment, at block704, the transceiver device400may power on or otherwise initialize. For example, following the connection of the transceiver device400to the platform device300, the platform device300may be powered on and/or otherwise initialized and, in response, may provide power to the transceiver device400in order to allow the transceiver device400to power on or otherwise initialize. However, in other embodiments, the transceiver device400may be connected to powered on or otherwise initialized platform device300and, in response, may power on or otherwise initialize. In a specific example, the initialization of the transceiver device400may include the booting or other initialization of transceiver firmware in the transceiver device400that provides at least some of the functionality of the transceiver engine404.

At block704, in response to powering on or otherwise initializing, the transceiver engine404in the transceiver device400may perform data communication disabling operations that include disabling the ability of the transceiver device400to send or receive data communications using any of a variety of data communication disabling techniques that would be apparent to one of skill in the art in possession of the present disclosure. With reference toFIG.9, in response to performing the data communication disabling operations, the transceiver engine404may provide the “LOCK STATUS” section of the user-defined page408ain the storage device408of the transceiver device400with a lock-wait status for the transceiver device400(e.g., “LOCK-WAIT” in the illustrated embodiment). Furthermore, at block704, the transceiver engine404may also perform challenge information generation operations to generate challenge information. For example, the challenge information generation operations may include generating a cryptographic nonce or other challenge information known in the art, and providing that cryptographic nonce in the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400(e.g., “NONCE” in the illustrated embodiment).

The method700then proceeds to block706where the platform device retrieves the challenge information from the transceiver device. With reference toFIG.10, in an embodiment of block706, the management controller system310in the platform device300may perform challenge information retrieval operations1000that may include accessing the storage device408in the transceiver device400(e.g., directly, through the transceiver engine404, etc.) via the FPGA subsystem306, and retrieving the challenge information from the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400. For example, in response to initialization of the transceiver device400, the management controller device310may detect the transceiver device400connected to the port308a(e.g., based on a ModPrsL/interrupt signal) and, in response, may read an EEPROM in the transceiver device400that provides the storage device408and determine that the transceiver device400includes the lock-wait status (i.e., based on “LOCK-WAIT” provided in the “LOCK STATUS” section of the user-defined page408ain the storage device408of the transceiver device400). In response to determining that the transceiver device400includes the lock-wait status, the management controller device310may retrieve the cryptographic nonce or other challenge information (i.e., “NONCE”) from the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400.

The method700then proceeds to block708where the platform device encrypts the challenge information to produce encrypted challenge information. In an embodiment, at block708, the management controller system310in the platform device300may use the service platform private key (“SERV.PLATPRIV”)602stored in the TPM device310ato encrypt the challenge information in order to produce encrypted challenge information. For example, at block708, management controller system310may use the service platform private key to encrypt the cryptographic nonce or other challenge information to produce the encrypted challenge information (“ESERV.PLAT PRIV(NONCE)”). In the specific examples provided below, at block708, the management controller system310uses the service platform private key to encrypt the cryptographic nonce or other challenge information along with a lock command to produce the encrypted challenge information (“ESERV.PLAT PRIV(LOCK, NONCE)”) that includes the lock command, but one of skill in the art in possession of the present disclosure will appreciate how the inclusion of the lock command in the encrypted challenge information may be optional in some embodiments.

The method700then proceeds to block710where the platform device provides the encrypted challenge information and a service-platform-provider-private-key-signed service platform public key to the transceiver device. With reference toFIGS.11A and11B, in an embodiment in an embodiment of block710, the management controller system310in the platform device300may retrieve the service-platform-provider-private-key-signed service platform public key (“X.509OEM PRIV(SERV.PLATPUB)”)604from its storage device310band perform encrypted challenge information/service-platform-provider-private-key-signed service platform public key provisioning operations1100that may include accessing the storage device408in the transceiver device400(e.g., directly, through the transceiver engine404, etc.) via the FPGA subsystem306, and providing the encrypted challenge information (“ESERV.PLAT PRIV(LOCK, NONCE)”) and the service-platform-provider-private-key-signed service platform public key (“X.509OEM PRIV(SERV.PLATPUB)”)604in the “RESPONSE” section of the user-defined page408ain the storage device408of the transceiver device400.

The method700then proceeds to block712where the transceiver device uses a service platform provider public key to verify a service platform public key in the service-platform-provider-private-key-signed service platform public key to produce a verified service platform public key. In an embodiment, at block712, the transceiver engine404in the transceiver device400may use the service platform provider public key provided by the service platform provider public key certificate (“X.509OEM PUB”)606in the TPM device406to verify the service platform public key (“SERV.PLATPUB”) included in the service-platform-provider-private-key-signed service platform public key (“X.509OEM PRIV(SERV.PLATPUB)”)604in the “RESPONSE” section of the user-defined page408ain the storage device408in order to produce a verified service platform public key. As will be appreciated by one of skill in the art in possession of the present disclosure, the service platform provider public key certificate (“X.509OEM PUB”)606verifies to the transceiver engine404that the service platform provider public key provided therein belongs to the service platform provider, and that service platform provider public key may then be used by the transceiver engine404to verify that the service platform public key (“SERV.PLATPUB”) is authentic via the confirmation that it was signed by the service platform provider using the service platform provider private key.

The method700then proceeds to block714where the transceiver device uses the verified service platform public key to decrypt the encrypted challenge information to produce decrypted challenge information. In an embodiment, at block714, the transceiver engine404in the transceiver device400may use the service platform public key (“SERV.PLATPUB”) to decrypt the encrypted challenge information (“ESERV.PLAT PRIV(LOCK, NONCE)”) to produce decrypted challenge information (“DSERV.PLAT PRIV(LOCK, NONCE)”).

The method700then proceeds to block716where the transceiver device determines that the decrypted challenge information matches the challenge information. In an embodiment, at block716, the transceiver engine404in the transceiver device400may determine whether the decrypted challenge information (“DSERV.PLAT PRIV(LOCK, NONCE)”) and, in particular, the decrypted cryptographic nonce, matches the challenge information/cryptographic nonce generated at block704. While the method700presumes such a match, one of skill in the art in possession of the present disclosure will appreciate how a mismatch between the decrypted challenge information and the challenge information generated at block704may cause the data communications operations of the transceiver device400to remain disabled.

The method700then proceeds to block718where the transceiver device enables data communication operations and locks the transceiver device to operate with a service platform. In an embodiment, at block718and in response to determining at block716that the decrypted challenge information and the challenge information generated at block704match, the transceiver engine404in the transceiver device400may identify the lock command included in the decrypted challenge information and, in response, enable data communication operations (i.e., the sending and receiving of data) for the transceiver device400, and lock the transceiver device to operate with the service platform200that is provided by the platform device300and that is associated with the service platform public key. With reference toFIG.12, in response to locking the transceiver device400to operate with the service platform200provided by the platform device300, the transceiver engine404may provide the “LOCK STATUS” section of the user-defined page408ain the storage device408of the transceiver device400with a locked status for the transceiver device400(e.g., “LOCKED” in the illustrated embodiment), and may provide the “SERVICE PLATFORM” section of the user-defined page408ain the storage device408of the transceiver device400with the service platform tag/identifier for the service platform200provided by the platform device300(e.g., “SERVICE PLATFORM200” in the illustrated embodiment).

With reference toFIG.13, a NOS provided by the processing system304may then perform any of a variety of data communication operations1300via the FPGA subsystem306and using the transceiver device400. As such, subsequent to block718of the method700, the transceiver device400has its data communication operations enabled, is locked to operate with platform devices202,204, and206that provide the service platform200, and the sections of the user-defined page408ain the storage device408of the transceiver device400may be read-only for the management controller system310in the platform device300.

Referring now toFIG.14, an embodiment of a method1400for operating a transceiver device that is locked with a service platform provided by a platform device is illustrated. As discussed below, the systems and methods of the present disclosure provide for the ability to use a transceiver device that has been previously locked to operate with a service platform with any platform device that provides that service platform. As discussed below, the systems and methods of the present disclosure allow a transceiver device that has been locked to a service platform provided by platform devices to disable data communication operations on any subsequent initialization, present an encrypted challenge to the platform device it has been connected to, determine whether that platform device is part of the service platform to which it was locked and, if so, enable data communication operations to operate with that platform device.

The method1400begins at block1402where a transceiver device connects to a platform device. With reference back toFIG.8, in an embodiment of block1402and similarly as discussed above, the transceiver device400may be connected to the platform device300subsequent to having been locked to operate with the service platform200provided by platform devices that include the platform device300. As will be appreciated by one of skill in the art in possession of the present disclosure, the platform device300to which the transceiver device400is connected in the method1400may be different than the platform device300to which the transceiver device400was connected to during the method700. However, one of skill in the art in possession of the present disclosure will appreciate how the platform device300to which the transceiver device400is connected in the method1400may be the same as the platform device300to which the transceiver device400was connected to during the method700when, for example, the transceiver device400is disconnected from the platform device300following the method700, and then reconnected to that platform device300to perform the method1400.

The method1400then proceeds to block1404where the transceiver device initializes, disables data communication operations, and encrypts challenge information to produce encrypted challenge information. In an embodiment, at block1404, the transceiver device400may power on or otherwise initialize. For example, following the connection of the transceiver device400to the platform device300, the platform device300may be powered on and/or otherwise initialized and, in response, provide power to the transceiver device400in order to allow the transceiver device400to power on or otherwise initialize. However, in other embodiments, the transceiver device400may be connected to powered on or otherwise initialized platform device300and, in response, may power on or otherwise initialize. In a specific example, the initialization of the transceiver device400may include the booting or other initialization of transceiver firmware in the transceiver device400that provides at least some of the functionality of the transceiver engine404.

At block1404, in response to powering on or otherwise initializing, the transceiver engine404in the transceiver device400may perform data communication disabling operations that include disabling the ability of the transceiver device400to send or receive data communications using any of a variety of data communication disabling techniques that would be apparent to one of skill in the art in possession of the present disclosure. With reference toFIG.15, as discussed above, in response to having been locked to operate with the service platform200, the transceiver engine404may have previously provided the “LOCK STATUS” section of the user-defined page408ain the storage device408of the transceiver device400with a locked status for the transceiver device400(e.g., “LOCKED” in the illustrated embodiment), as well as provided the “SERVICE PLATFORM” section of the user-defined page408ain the storage device408of the transceiver device400with the service platform tag/identifier for the service platform to which the transceiver device400is locked (e.g., “SERVICE PLATFORM200” in the illustrated embodiment). Furthermore, at block1404, the transceiver engine404may also perform challenge information encryption operations to generate encrypted challenge information. For example, the challenge information encryption operations may include generating a cryptographic nonce or other challenge information known in the art, using a service platform public key (“SERV.PLATPUB”) to encrypt the cryptographic nonce to produce an encrypted cryptographic nonce, and providing that encrypted cryptographic nonce in the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400(e.g., “ESERV.PLAT PUB(NONCE)” in the illustrated embodiment).

The method1400then proceeds to block1406where the platform device retrieves the encrypted challenge information from the transceiver device. With reference toFIG.16, in an embodiment of block1406, the management controller system310in the platform device300may perform encrypted challenge information retrieval operations1600that may include accessing the storage device408in the transceiver device400(e.g., directly, through the transceiver engine404, etc.) via the FPGA subsystem306, and retrieving the encrypted challenge information from the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400. For example, in response to initialization of the transceiver device400, the management controller device310may detect the transceiver device400connected to the port308a(e.g., based on a ModPrsL/interrupt signal) and, in response, may read an EEPROM in the transceiver device400that provides the storage device408and determine that the transceiver device400includes the locked status (i.e., based on “LOCKED” being provided in the “LOCK STATUS” section of the user-defined page408ain the storage device408of the transceiver device400). In response to determining that the transceiver device400includes the locked status, the management controller device310may retrieve the encrypted cryptographic nonce or other challenge information from the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400.

The method1400then proceeds to block1408where the platform device decrypts the encrypted challenge information to produce decrypted challenge information. In an embodiment, at block1408, the management controller system310in the platform device300may use the service platform private key (“SERV.PLATPRIV”)602stored in the TPM device310ato decrypt the encrypted challenge information (“ESERV.PLAT PUB(NONCE)”) that was retrieved from the transceiver device400to produce decrypted challenge information. For example, at block1408, management controller system310may use the service platform private key to decrypt the encrypted cryptographic nonce or other challenge information to produce decrypted challenge information (“DSERV.PLAT PRIV(NONCE)”).

The method1400then proceeds to block1410where the platform device provides the decrypted challenge information to the transceiver device. With reference toFIGS.17A and17B, in an embodiment in an embodiment of block1410, the management controller system310in the platform device300may perform decrypted challenge information provisioning operations1700that may include accessing the storage device408in the transceiver device400(e.g., directly, through the transceiver engine404, etc.) via the FPGA subsystem306, and providing the decrypted challenge information (“DSERV.PLAT PRIV(NONCE)”) in the “RESPONSE” section of the user-defined page408ain the storage device408of the transceiver device400.

The method1400then proceeds to block1412where the transceiver device determines that the decrypted challenge information matches the challenge information. In an embodiment, at block1412, the transceiver engine404in the transceiver device400may determine whether the decrypted challenge information/cryptographic nonce (“DSERV.PLAT PRIV(NONCE)”) matches the challenge information/cryptographic nonce used to generate the encrypted challenge information at block1404. While the method1400presumes such a match, one of skill in the art in possession of the present disclosure will appreciate how a mismatch between the decrypted challenge information and the challenge information used to generate the encrypted challenge information at block1404may cause the data communications operations of the transceiver device400to remain disabled.

The method1400then proceeds to block1414where the transceiver device enables data communication operations. In an embodiment, at block1414and in response to determining at block1412that the decrypted challenge information and the challenge information used to generate the encrypted challenge information at block1404match, the transceiver engine404in the transceiver device400may enable data communication operations (i.e., the sending and receiving of data) for the transceiver device400. With reference toFIG.18, a NOS provided by the processing system304may then perform any of a variety of data communication operations1800via the FPGA subsystem306and using the transceiver device400. As such, subsequent to block1414of the method800, the transceiver device400has data communication operations enabled, continues to be locked to operate with platform devices that provide the service platform200, and the sections of the user-defined page408ain the storage device408of the transceiver device400may be read-only for the management controller system310in the platform device300.

Referring now toFIG.18, an embodiment of a method1800for unlocking a transceiver device from operating with a service platform provided by a platform device is illustrated. As discussed below, the systems and methods of the present disclosure provide the ability to unlock a transceiver device that was previously locked to operate with a service platform provided by platform devices, thus enabling the transceiver device to operate with devices that are not providing the service platform. For example, the transceiver device that was previously locked to a service platform may receive an encrypted unlock command from a service platform provider, decrypt that encrypted unlock command to retrieve an unlock command and, in response, unlock the transceiver device from operating with the service platform. As discussed above, some embodiments of the present disclosure envision the transceiver device as being provided at a discounted price that is contingent on its use with the service platform, and the encrypted unlock command from the service platform provider may be obtained at the expense of that discount in the event a user wishes to use a transceiver device, which was previously purchased at a discount and as part of a service platform, with devices that are not included in that service platform.

The method1800begins at block1802where a transceiver device receives an encrypted unlock command. As discussed above, a user of the transceiver device400that wishes to unlock that transceiver device400from the service platform200may request the encrypted unlock command from the service platform provider. In a specific example, the service platform provider may then use the service platform private key (“SERV.PLATPRIV”) to encrypt an unlock command (“UNLOCK”) and a transceiver device identifier such as a serial number (“SNTRANSCEIVER”) in order to produce a partially encrypted unlock command (“ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER)”). The service platform provider may then use a service platform provider private key (“OEMPRIV”) to encrypt the partially encrypted unlock command to produce the encrypted unlock command (“EOEM PRIV(ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER))”) and provide that encrypted unlock command to the management controller system310in the platform device300.

With reference toFIGS.20A and20B, in an embodiment of block1802, the management controller system310in the platform device300may then perform encrypted unlock command provisioning operations2000that may include accessing the storage device408in the transceiver device400(e.g., directly, through the transceiver engine404, etc.) via the FPGA subsystem306, and providing the encrypted unlock command (“EOEM PRIV(ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER))”) in the “OEM COMMAND” section of the user-defined page408ain the storage device408of the transceiver device400.

The method1800then proceeds to block1804where the transceiver device uses a service platform provider public key to decrypt the encrypted unlock command and produce a partially decrypted unlock command. In an embodiment, at block1804, the transceiver engine404in the transceiver device400may use a service platform provider public key (“OEMPUB”) to decrypt the encrypted unlock command (“EOEM PRIV(ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER))”) and produce a partially decrypted unlock command (“ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER)”). The method1800then proceeds to block1806where the transceiver device uses a service platform public key to decrypt the partially decrypted unlock command and retrieve an unlock command. In an embodiment, at block1806, the transceiver engine404in the transceiver device400may use a service platform public key (“SERV.PLATPUB”) to decrypt the partially decrypted unlock command (“ESERV.PLAT PRIV(UNLOCK, SNTRANSCEIVER)”) and retrieve an unlock command (“UNLOCK”) and a transceiver device identifier such as a serial number (“SNTRANSCEIVER”).

The method1800then proceeds to block1808where the transceiver device unlocks the transceiver device from operating with the service platform. With reference toFIG.21, in an embodiment of block1808, the transceiver engine404in the transceiver device400may determine whether the transceiver device identifier such as the serial number (“SNTRANSCEIVER”) matches the transceiver device400and, if so, may provide an unlocked status in the “CHALLENGE” section of the user-defined page408ain the storage device408of the transceiver device400(e.g., “UNLOCKED” in the illustrated embodiment). As will be appreciated by one of skill in the art in possession of the present disclosure, in the event the transceiver device identifier such as the serial number (“SNTRANSCEIVER”) does not match the transceiver device400, the transceiver device400may remain locked to the service platform200. Following successful unlocking of the transceiver device400at block1808, subsequent initializations of the transceiver device400will not result in any challenges to any device to which it is connected.

Thus, systems and methods have been described that provide for the locking of a transceiver device to a service platform provided by platform devices during a first initialization/power up of that transceiver device in one of those platform devices, thus preventing subsequent use of that transceiver device with a device that is not included in the service platform. For example, the service platform/transceiver device locking system of the present disclosure may include a transceiver device that disables its data communication operations during an initialization operation and generates challenge information, and a platform device that retrieves that challenge information. The platform device uses a service platform private key to encrypt the challenge information, and provides the encrypted challenge information and a service-platform-provider-private-key-signed service platform public key to the transceiver device. The transceiver device uses a service platform provider public key to verify a service platform public key in the service-platform-provider-private-key-signed service platform public key to produce a verified service platform public key that it uses to decrypt the encrypted challenge information to produce decrypted challenge information. If the transceiver device determines that the decrypted challenge information matches the challenge information, it enables its data communication operations and locks itself to operate with a service platform associated with the service platform public/private keys. As such, transceiver devices may be provided with service platforms at reduced cost contingent on their use with only platform devices that are part of the service platform, but may be enabled to operate with devices that are not part of that service platform for a subsequent fee.