Communication controller having line adapters loadable with an application program

Abstract: Communication controller product CCP (110) which includes line adapters (104-i) having each a storage (301) which is loaded with a general application program during an initialization phase. The line adapters allow the attachment and the communication of different telecommunication entities, e.g. a LAN, a teleprocessing line etc... The CCP (110) is connected by means of a control adapter (103) to a local control terminal (100) which is associated to a storage (101) for storing the different general application programs which are likely to be required by the different line adapters (104-i). The further includes means (202) for storing an access key comprising data relative to the types and the number of line adapters (104-i) of one type which are authorized to be loaded with the general application program stored into the storage (101) controlled by said control terminal (100). The CCP has also means (200, 201, 202) for checking whether a loading request received from one adapter complies with the contents of said stored access key in order to prevent the loading of an unauthorized line adapter. There is also disclosed a method for performing the loading of a line adapter card (104-i) which is attached to a communication controller product CCP, the line adapter card being loadable with a general application program during an initialization phase. The method involves the step of receiving a request from a determined line adapter (104-i) to be loaded with the corresponding general application program which is loaded into said said storage (101), and checking whether the requesting line adapter is included in a list of line adapters which are authorized to be loaded with their corresponding general program application. The method further involves the step of checking whether the number of already line adapters (104-i) which are of the type of the one which requests the loading operations does not exceed a predetermined value, and eventually preventing the loading of the requesting line adapter (104-i) in the case when one of the preceding conditions are not satisfied.

Description: TECHNICAL FIELD The present invention relates to a communication controller product CCP which includes line adapters having each a storage which is loaded with a general application program during an initialization phase prior to the data communication phase, said line adapter allowing the attachment and the communication of different telecommunication entities, such a Local Area Network, a teleprocessing line etc... The invention particularly relates to a communication controller product CCP which is connected to a local control terminal associated with a large storage for storing the different general application programs which are likely to be transferred and loaded into the different line adapters which are possibly attached. BACKGROUND ART Telecommunications networks generally involve the connection of a large number of telecommunication products in order to allow data communication in compliance with the customers' requirements. Figure 1 shows a typical and known architecture of a telecommunication network. A host computer 105 is loaded with a network control software such as the VTAM or NCP ("Virtual Teleprocessing Access method" or "Network Control Program") software largely used in the telecommunication field. Host computer 105 is generally connected to a communication controller product (CCP) 110 which allows the attachment of different units to the telecommunication network: a Local Area Network (LAN) or Token ring 120 to which is particularly connected a terminal 122, a teleprocessing line 121 such as of the type Integrated Service Digital Network (ISDN), a T1 line, X25, RVX etc... The host computer 105 is under control of an user by means of a network control terminal 106 while CCP 110 can be controlled via a control terminal 100 through a Local Area Network 102. As will be explained hereinafter, control terminal 100 is associated with a disk storage 101. Communication controller product 110 includes switching means 107 to which are connected a set of Line Adapter cards 104-1, 104-2 ... 104-i allowing the attachments of different external lines (the figure shows only the attachment of LAN 120 and teleprocessing line 121 for simplicity purpose) in accordance with the requirements of the user, and also an adapter card 103 for the connection of LAN network 102 to the CCP. Adapter card 103 permits control terminal 100 to communicate with CCP 110 via LAN network 102. The switching means 107 permits the communication between the different adapters which are attached thereto by means of their corresponding line adapter cards 104-1... 104-i and therefore the communication between the different terminals 122, 123 ... which are connected to the telecommunication network. An user who wishes to build a telecommunication network which complies to his requirements buys a communication controller product 110 and adds to the latter the the appropriate line adapters 104-1, 104-2, ... 104-i adapted to the type of external line to which they are intended to be connected (LAN, teleprocessing line etc... ). Line adapters 104-1, 104-i generally includes some storage means and particularly a first PROM storage having a little capacity and a second RAM storage which conversely has a large capacity. The PROM storage is intended to receive a simple and elementary microcode software for initialization purpose while large RAM storage is intended to store the general application program microcode used for the telecommunication between the adapter and CCP 107, the latter general application program being loaded from disk storage 101 via LAN 102 and adapter 103. The storage of the latter general application program in a RAM is advantageous. Firstly, A RAM takes less volume and is cheaper than the corresponding PROM storage having an equivalent capacity. Secondly, update and maintenance operations are made more easy and only requires the updating of the contents of storage 101. Then, an initialisation process of every line adapters 104-i will entail the loading of the latter, and particularly the loading of the RAM storage included therein, with the updated general application program. It should be noticed that only the general application program corresponding to a determined type of line adapter 104-i is transferred and loaded into that line adapter (that is to say a LAN line adapter such as line adapter 104-1 receives the microcode corresponding to a LAN general application program, an ISDN line adapter 104-i receives a microcode corresponding to a ISDN general application program etc... ). For the sake of simplicity and economy, it is advantageous for the telecommunication suppliers to provide to every customer the same and unique software loaded into storage 101 and irrespective of the actual architecture of the considered customer, and particularly the existence of ISDN line adapters, LAN line adapters, T1 line adapters etc... When the telecommunication controller product 110 is powered on, an initial program loading step is performed during which each of the line adapter 104-i is recognized and identified and then loaded with the appropriate portion of the software existing into storage 101 via LAN 102, adapter 103 and the switching means 107, that is to say the general application program which corresponds to the type of adapter which has been identified. Once every line adapter 104-i has been loaded with its corresponding general application program, the communication tion of data between the different units which are at tached to the CCP 110 can be performed. Since however, the telecommunication suppliers charge a given customer on the basis of its actual use of the software stored into storage 101, it is highly desirable to prevent any indelicate customer from using an unauthorized part of the software stored into storage 101. EP 348 053 discloses a computer system which has one or more primary processing units processing tasks and at least one auxiliary processing unit servicing the primary processing units, feature control is performed by storing an authorization code in the auxiliary processing unit. When an operation to change the feature of the computer system is initiated, a signal, including a key code, is sent to the processing unit. The auxiliary processing unit checks the key code against the authorization code, and enables the operation if the check is successful. SUMMARY OF THE INVENTION The problem to be solved by the present application is to provide a communication controller product CCP which has line adapters loaded with a general application program, whereby it is made impossible for one customer to load a line adapter which has not been recognized by the manufacturer of the CCP as being an authorized line adapter. According to the prcsent invention, the solution to that problem consists in a communication controller which includes means for storing an access key comprising data relative to the types and the number of line adapters (104-i) of one type which are authorized to be loaded with the general application program which exists in the storage which is associated to control terminal, and means for checking whether a loading request received from one adapter complies with the contents of stored access key in order to prevent the loading of any unauthorized line adapter. More accurately, the invention consists in a communication controller product CCP (110) which includes line adapters having each a storage which is loaded with a general application program during an initialization phase, said line adapters allowing the attachment and the communication of different telecommunication entities, such as a LAN, a teleprocessing line etc... . The CCP is connected by means of a control adapter to a local control terminal which is associated to a storage for storing the different general application programs which are likely to be required by said line adapters. The communication controller product is characterized in that it includes means for storing an access key comprising data relative to the types and the number of line adapters of one type which are authorized to be loaded with the general application program transferred from the storage associated to said control terminal. The CCP has also means for checking whether a loading request received from one line adapter complies with the contents of said stored access key in order to prevent the loading of an unauthorized line adapter. In a preferred embodiment, the access key comprises data relative to the serial number of the communication controller which is associated to the list of authorized line adapters. That permits an easy checking of the serial number of the communication controller to prevent any abuse of the system. Preferably, the communication controller includes means for performing a decryption process of the said access key, the decrypted access key being then stored into a non volatile storage. The decryption process involves a first software decryption routine which is stored into a RAM and a second decryption process which is performed by a wired decryption logic which is located on a card which controls the power on of the machine. That results in a increased protection of the decryption process against any unauthorized analysis. The solution of the above problem is also solved by the method according to the invention for performing the loading of a line adapter which is attached to a communication controller product CCP and which allows the connection of a telecommunication entity such as a LAN, a teleprocessing line etc... said line adapter being loaded during an initialization phase with a corresponding general application program which exists in a storage associated with a control terminal and can be transferred into the line adapter. The method according to the present invention is characterized in that it involves the step of receiving a request from a determined line adapter to be loaded with the corresponding general application program, and checking whether the requesting line adapter is included in a list of line adapters which are authorized to be loaded with their corresponding general program application. Then, the method involves the step of checking whether the number of already line adapters which are of the type of the one which requests the loading operations does not exceed a predetermined value, and preventing the loading of the requesting line adapter in the case when one of the preceding conditions are not satisfied. Description of the drawings Figure 1 illustrates a typical telecommunication architecture Figure 2 illustrates the structure of an adapter 103 in accordance with the present invention. Figure 3 shows the structure of the line adapter 104-i according to the present invention. Figure 4 is a flow chart of the key decryption and validation process in accordance with the present invention. Figure 5 illustrates the structure of an access key. Figure 6 is a flow chart of the loading process of the general application program into the RAM of every line adapter in accordance with the present invention. Description of the invention In accordance with the present invention, the communication controller product 110 comprises an adapter 103 which is detailed with respect to figure 2. Adapter 103 includes a first processor card 210 and a second Power Control and Service card 220 having respectively a power supply unit 211 and 215. Processor card 210 includes a processor 200 which is connected by means of a bus 212 to a EEPROM 202, to a RAM 201, to a switch interface circuit which is connected to switch 107, to a LAN interface 216 allowing the communication between LAN 102 and processor card 210, and also to a I/O interface circuit 213. EEPROM is a storage of low capacity which is loaded with a small piece of microcode, and particularly a bootstrap code which is required to perform and complete an initial program loading phase during which an initialization procedure provides the loading of RAM storage 201 with the required microcode which will be used either for the data communication operations and the encryption/decryption process described hereinafter. During the initialization procedure, the loading of RAM 201 is performed by means of a transfer of data from storage 101 via control terminal 100, LAN 102 and LAN interface 216. Processor card 210 communicates with power control and service card 220 by means of a bus 203 comprising the required data, address and control busses, the latter bus 203 being connected to I/O interface 213 and a I/O interface 214 located into card 220. I/O 214 permits processor 200 to control a panel control unit 230, an encryption device 223 and a power control unit 225 located into card 220 by means of a bus 226. Card 220 is connected to every line adapter 104-i by means of two leads (not shown in fig. 2). A first lead carries a signal which is used during the initialization procedure to inform processor 200 that a line adapter 104-i is actually present in one slot. A second lead is used for reset purpose whereby processor 200 is able to independently reset one among the line adapters 104-1, 104-2, ... 104-i, that is to say to start the reset microcode loaded into a EEPROM 303 located into that particular line adapter. Therefore, if one problem of failure occurs on one line adapter, processor 200 is advantageously able to reset and reinitialize that particular line adapter 104-i without disturbing the others. Panel control unit 230 located into card 220 manages a panel 250 by means of leads 280 and is particularly used for controlling a (not shown) display and keyboard located in that panel. Consequently, processor 200 is able to display messages and information which relates to the general working of CCP 110 and also to read the data entered on the panel and which have been stored into registers located into panel control 230. Processor card 210 and card 220 are continuously powered by means of unit 211 and unit 215 while the remainder of the communication controller 110, and particularly the switching means 107, and the line adapters 104-i are supplied with DC current only when power control unit 225 sets on power unit 260. For this purpose, power control unit 225 includes a set of drivers (not shown) for supplying the current needed to drive a set of relays located into power unit 260. Therefore, the general powering of the machine is under control of processor 200 and can be achieved by two distinctive ways: locally or remotely. The powering of the machine can be performed locally if the user enters a power-on command directly via panel 250. Alternatively, the powering can also be achieved remotely by means of a power-on command which is transmitted from control terminal 100 to processor 200 via LAN 102 and LAN interface 216. Once, the power-on command has been received by processor 200, a corresponding power-on command is transmitted power control unit 225 via I/O interface 213, bus 203, I/O interface 214 and bus 226. The latter command is then decoded by unit 225 which generates an driving current which is transmitted via lead 270 to the relays located into power unit 260. Power Control and Service card further comprises a encryption circuit 223 which includes a first register 222 having an input connected to bus 226 and a second register 221 having an output connected to bus 226. Moreover, register 222 has an output which is connected to the input of a logic circuit 204, the output of which being connected to an input lead of register 221. Logic circuit 204 includes a set of logic component which are wired so as to perform a decryption of a N-bit word. In the preferred embodiment, registers 221 and 222 are 16-bit registers so that logic circuit 204 performs a decryption of 16 bit-words. Logic circuit 204 basically includes a set of AND, OR and inverting circuits which are connected so as to provide the required transfer function. Any combination of the bits of the 16 bit-word in order to build another 16 bit-word can be used. Below is an example of a decryption key: Assuming that the 16-bit word stored into register 222 is ABCDEFGHIJKLMNOP the decrypted 16-bit word which is stored into register 221 can be A'B'C'D'E'F'G'H'I'J'K'L'M'N'O'P' with A'= H and J B'= inverted B C'= F and L D'= inverted D E'= C and N F'= inverted F G'= A and P H'= inverted H I'= I and P J'= inverted J K'= K and N L'= inverted L M'= M and N N'= inverted N O'= O and J P'= inverted P Figure 3 details the internal structure of a line adapter 104-i according to the present invention. Line adapter 104-i comprises a set of two distinctive cards: a first line processor card 300 and a second line interface card 301 which communicate each other via a bus 304. Line processor card includes a processor 305 which is connected by means of a bus 308 to a EEPROM 303 of small capacity, a large RAM storage 301, a switch interface 309 which is connected to the switching means 107 located into CCP 110, and to a I/O interface 307 which is connected to bus 304. Line interface card 301 is connected to bus 304 by means of an I/O interface 310 and further includes the circuits and components which are used for adapting the line adapter 104-i to the particular physical medium which is considered: optical fiber, telephone line, a Local Area Network etc... In figure 3, the shown line interface card 301 is particularly adapted to allow the attachment of a plurality of teleprocessing lines and therefore has to include the components that are required for this purpose and which are well known to the skilled man, and particularly the components embodying a CCITT V24 interface allowing the connection of data circuit terminating equipment (DCE). EEPROM 303 includes a portion of elementary microcode which is required during an initialization period when the considered line adapter 104-i is reset in order to provide the transfer and the loading of the general application program from storage 101 into RAM 301, which as mentioned above, is used for the normal data communication session. The loading of the RAM 301 located into line processor card of every line adapter 104-i with the particular general application program which is extracted from the unique storage 110 is to be performed without any data communication session. That loaded is allowed at the completion of a set of checking and validation procedures which are detailed with respect to figure 4-8 as described hereinafter. Figure 4 details a flow chart of the key decryption and validation process which is performed prior to the loading of the RAM storages included into Line adapters 104-1, 104-2, 104-3 ... The customer receives with the communication controller product 110 an access key provided by the manufacturer being representative of the CCP 110 and also its authorized use. The access key is particularly shown in figure 5 and comprises some different fields. The access key comprises a first field 501 which corresponds to the serial number of the CCP 110. A second field 502 corresponds to a first specific type of line adapter 104-i, for instance an ISDN line adapter, and also comprises data relative to the maximum number of authorized ISDN lines which can be connected to that ISDN line adapter. A third field 503 corresponds to a second specific type of line adapter 104-i, for instance a LAN line adapter, and also comprises data relative to the maximum number of LAN line interface cards which are authorized etc... Therefore, the access key accurately defines the communication controller product 110 and its authorized use. Before providing the customer with the above access key, the manufacturer performs an encryption process being inverse of the decryption process which will be performed by adapter 103 as described hereinafter. With respect to figure 4 again, at the installation of the communication controller product, cards 210 and 220 are powered and an initialization procedure procedure begins which particularly requires the inputting, the processing and the validation of the access key which is associated with CCP 110. Firstly, the customer has to input on the keyboard of control terminal 100 the encrypted access key he received from the manufacturer, step 401. Step 402, the latter key is transferred via LAN network 102 to adapter 103 and received by processor 200 which stores it into RAM 201, step 403. Step 404, processor 200 tests an ERROR flag which is stored into EEPROM 202 to determine whether the decryption and validation procedure is allowed to continue. As will be seen below, the ERROR flag is set when several validation procedure have been tried and have always failed, thus indicating a general failure or a misuse of the system. In the latter case, the process proceeds directly to step 410 where processor 200 generates and transmits an error message either to the display on panel 250 and to control terminal 100 thus informing the customer that the system requires an inspection. On the contrary, in the case when test 404 indicates that the flag is reset, then processor 200 performs a decryption process, step 405. This process involves two distinctive operations: firstly, processor 200 performs a first elementary software decryption process by means of a decryption routine existing into RAM 201 which has been loaded from storage 101 at the beginning of the initialization period. Then, processor 200 transmits the N-bit word resulting from that first software decryption process to the decryption circuit 223 located in card 220 by means of bus 212, I/O 213, bus 203, I/O 214 and bus 226. The latter N-bit word is then stored into register 222 and decrypted by logic circuit 204 which provides a fully decrypted N-bit word to the input of the register 221. The successive decryption processes which are performed firstly by the above software decryption routine stored into RAM 201 and then by logic circuit 223 provides processor 200 with the decrypted access key such as illustrated in figure 5. Processor 200 completes the decryption process by storing the decrypted access key into RAM 201. Step 405, processor 200 performs a comparison between the contents of the serial number field 501 of the stored decrypted key with the actual serial number of CCP 110 which was stored during the manufacturing process in EEPROM 202. If the contents of the serial number field 501 does not match the actual serial data of CCP 110, processor 200 generates and transmits a message to the display of panel 250 and control terminal 100 to indicate that the key is invalid, step 407. Then step 408, a counter is incremented and a test is performed to determine whether the key decryption and validation process has not been tried without success more than a predetermined fixed number stored into EEPROM 202, for instance 10. If the incrementing counter has not yet reached the value of the latter number, the process proceeds to step 401 again. On the contrary, if the decryption and validation process has failed more than that number, processor 200 proceeds to step 409 where it sets the ERROR flag in order to prevent any further attempt to decrypt and validate the access key. Then, processor proceeds to step 410 to indicate the user than an inspection of the system is required. However, if the contents of the serial number field 501 does match the actual serial data of CCP 110, processor 200 stores the decrypted access key into EEPROM 202, step 411. Then step 412 processor 200 generates and transmits a message to control terminal 100 via LAN 102 which indicates the user that the access key has been recognized and that the validation process is completed. As mentioned above, processor card 210 and power control and service card 220 are continuously powered while the remainder of the machine is powered only during effective communication sessions. However, it should be noticed that even in the case when cards 210 and 220 are powered-off, the error flag keeps its contents since it is loaded into EEPROM 202 and there cannot be reset by the customer. Moreover, since a part of the decryption process involves a decryption routine loaded into RAM 201 which is lost as soon as cards 210 and 220 are not longer supplied with DC current, the decryption process can not be analyzed by unauthorized people. Indeed, assuming that Power Control and Service card is removed by an unauthorized people which wishes to analyze its content and particularly that of logic card 223, the power unit causes the general power-off of the whole machine, included processor card 210, which entails the lost of the decryption routine stored into RAM 201. Therefore, the decryption device according to the present invention permits a substantial protection to reverse engineering analysis. The decryption and validation process is involved at the installation step of the CCP 110 and every time the nature and the number of line adapters 104-i are modified. Figure 6 details the flow chart of the loading process which is involved in order to transfer and load the general application program into the RAM 301 located into one line adapter 104-i. When a determined line associated to a determined line adapter 104-i is to be activated, an activation request is generated by Host computer 105 and transmitted to CCP 110, step 601. That activation request can either be automatically generated by the network control program (NCP/VTAM) which is running into host computer 105 or generated by an user from network control terminal 106. Communication controller 110 receives the activation request and transmits it to the considered line adapter 104-i which is then received by processor 305 via switch interface 309 and bus 308. Step 602, processor 305 generates a corresponding request which is transmitted via switch 107 to adapter 103 to inform processor 305 that a part of microcode, being the general application program corresponding to the considered line-adapter 104-i (ISDN, LAN, etc...) should be transferred from disk storage 101 to the RAM located into the corresponding line adapter 104-i. Processor 200 receives the latter request and initiates a validation procedure, step 603. For this purpose, processor 200 searches the decrypted access key which was stored into EEPROM 202 during the decryption and validation procedure of figure 4 and extracts the contents of the field in the decrypted access key which corresponds to the type of line adapter considered. For instance, if host computer 105 has asked for the activation of an ISDN line, processor 200 extracts from the decrypted access key stored into EEPROM 202 the contents of the ISDN field in order to check whether the type of the line adapter 104-i corresponds to an authorized type of line adapter 104-i step 604, or in other words whether the user is authorized to activate an ISDN line and therefore transfers the ISDN general application program from storage 101 into line adapter 104-i. In the case where the type of the line adapter 104 is not included into one field of the decrypted access key, the process proceeds to step 607 where processor 200 generates a message to line adapter 104-i indicating the latter that the loading process can not succeed. Then step 609, a message is transmitted from CCP 110 to the network control program indicating the latter that the activation of the considered line has not been performed. On the contrary, if the type of the considered line adapter 104-i corresponds to one field of the decrypted access key stored into EEPROM 202, processor 200 goes to step 605 where it increments a counter K associated to that particular type of line adapter 104-i. Then step 606, processor extracts from the decrypted access key the number corresponding to the maximum number of line adapter of that specific type (ISDN in our example) which are authorized to be operating at the same time, and compares that number with the value of counter K. In the case when the value of K has been found to be equal or inferior to the maximum number, processor 200 transmits a request to control terminal 100 via LAN 102 in order to ask the latter to transmits the general program application corresponding to the type of line adapter 104-i which is considered. That general program application is then transferred through LAN 102, Line adapter 103, switching means 107 to the line adapter 104-i and directly loaded into the RAM storage therein included, step 600. Then step 609, a report message is transmitted to network control program in host computer 105 to inform the latter that the line activation process has succeeded. However, if the value of K counter has been found to be superior to the maximum authorized number of line adapter 104-i of the same type, processor 200 goes to step 607 where it generates and transmits a message to the considered line adapter 104-i in order to inform it that the request can not be satisfied and that the loading of the requested general program application will not be performed. Then, the process proceeds to step 609 where a report message is transmitted to the network control program in host 105 to inform it that the activation procedure failed. It should be noticed that the decryption and validation procedures performed in accordance with the present invention are performed locally and does not require any further processing from the network control program running into host computer 105, which has only to request the activation of one line and to wait for the report message generated and transmitted from CCP 110 indicating that the activation of the line has succeeded or failed.

Claims: A Communication Controller Product CCP (110) including line adapters (104-i) having each a storage (301) which is loaded with a general application program during an initialization phase, said line adapters (104-i) allowing the attachment and the communication of different telecommunication entities (120, 121), said CCP (110) being further connected by means of a control adapter (103) to a local control terminal (100) which is associated to a storage (101) for storing the different general application programs required by said line adapters (104-i), characterized in that said CCP (110) further includes: means (201) for storing an access key containing information relative to the types and the number of line adapters (104-i) of one type which are authorized to be loaded with the general application program transferred from the storage (101) associated to said control terminal (100), said access key being crypted; and that said control adapter (103) further comprises: a processor card (210) including a processor (200) and RAM storage (201) for storing a first decryption routine being loaded into said RAM storage from said storage (101) during an initialization procedure; a power control card (220) located on said control adapter for controlling the power distributed to all the different line adapters (104-i) included in said CCP, said power control card further comprising a wired circuit (223) for sequentially performing a second decryption process following said first decryption process; means (200, 201, 202) active in response to a loading request received from one particular adapter for performing the said first and second decryption process on said crypted access key, and for checking whether the loading request complies with the decrypted information loaded in said key. Communication controller according to claim 1 characterized in that said access key further comprises data relative to the serial number of the communication controller.

Inventors: CHEVALIER DENIS, GALLIAN JEAN, GENESTE MICHEL, MASSI PATRICK, PLATEL GUY, CHEVALIER, DENIS, GALLIAN, JEAN, GENESTE, MICHEL, MASSI, PATRICK, PLATEL, GUY
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1991
Main classification: G06F15
IPC codes: H04L12, G06F15