US20150135338A1 - Digital certificate with software enabling indicator - Google Patents
Digital certificate with software enabling indicator Download PDFInfo
- Publication number
- US20150135338A1 US20150135338A1 US14/079,324 US201314079324A US2015135338A1 US 20150135338 A1 US20150135338 A1 US 20150135338A1 US 201314079324 A US201314079324 A US 201314079324A US 2015135338 A1 US2015135338 A1 US 2015135338A1
- Authority
- US
- United States
- Prior art keywords
- server computer
- software
- electronic document
- enabling
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000004891 communication Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000002617 apheresis Methods 0.000 claims description 4
- 238000001802 infusion Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000013475 authorization Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 210000003743 erythrocyte Anatomy 0.000 description 1
- 210000000265 leukocyte Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002381 plasma Anatomy 0.000 description 1
- 238000002616 plasmapheresis Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000002560 therapeutic procedure Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
Definitions
- the present application relates to enabling software features on a computing device.
- FIG. 1 is a flow diagram of a computing system for enabling software features, according to an illustrative embodiment
- FIG. 2 is a diagram illustrating an electronic document having a digitally signed identity, according to an illustrative embodiment
- FIG. 3 is a diagram illustrating an electronic document having a digitally signed identity, according to another illustrative embodiment.
- FIG. 4 is a sequence diagram illustrating electronic document transmissions, according to illustrative embodiments.
- One or more embodiments described herein may fit between the two extremes of simple static license keys and advanced dedicated license servers to provide sufficient security while being dynamically scalable.
- One or more embodiments described herein may use Secure Socket Layer (SSL) certificates that are used for authentication of connectivity on the Internet.
- SSL Secure Socket Layer
- One or more embodiments described herein may still use a serial license key for the installation; however, they will add the ability to dynamically enable or disable system features, in both time and space, from a central corporate location down to an individual device.
- One or more embodiments described herein may provide time variation capability by using changes to certificates at the corporate office, thus effectively affecting granted licenses immediately.
- One or more embodiments may provide space variation capability by using changes to individual certificates, thus affecting only a single installation of the system or multiple systems at the same time.
- One or more embodiments may provide protection from reverse engineering efforts of the client device's communication interface, as all functionality of the interface would be disabled until a valid certificate is received, thus preventing any communication with the device.
- One or more embodiments may provide data sufficient to perform asset tracking functionality, where a local server computer would report to a corporate server certificates usage by individual devices, thus providing basic information about devices being in or out of service with a connection to specific local server host.
- One or more embodiments may provide a secure licensing process, as exchange of SSL certificates may occur over a secure channel with the public key infrastructure built into the Transport Layer Security (TLS) mechanism.
- TLS Transport Layer Security
- One or more embodiments may provide for authentication against the server from which a certificate came, so that the authorized licensing cannot be changed or modified by unauthorized parties.
- the licensing mechanism itself may be protected by a digital certificate according to how SSL certificates are issued.
- system 10 for enabling a software feature using a digitally signed electronic document is shown.
- system 10 is illustrated as being used with a medical device 16 for performing a medical procedure on a patient, such as an apheresis machine.
- An apheresis machine is a machine configured to provide extracorporeal therapy to a patient by removing the patient or donor's blood, separating out one or more constituents of the blood (e.g., red blood cells, white blood cells, plasma, etc.), and returning the remaining constituents to the patient.
- a centrifuge device may be used for the separation.
- Exemplary apheresis devices include the Amicus separator, Alyx component collection system, Autopheresis-C system, and Aurora Plasmapheresis system, all manufactured by Fenwal, Inc., a Fresenius Kabi Company, Lake Zurich, Ill.
- components or features of system 10 may be used with other medical devices, such as infusion pumps, patient monitors, medical imaging machines, etc., and/or with other computing devices.
- Devices 16 acting as client computing devices in this illustration, are computing devices configured to operate software features.
- Software features can be applications, programs, extensions of a program, new versions of programs, enhancements or modifications of programs, software modules, or other software features.
- Different software features may provide different functions available to a user of device 16 , such as a remote diagnostic feature, a remote control feature, a remote programming feature, a reporting feature for reporting data about procedures performed using device 16 , remote backup and restore, new user interface features, audible alarm features, or any of a wide variety of software features.
- At least one, and optionally a plurality of software features are programmed into memory on device 16 , for example during manufacture of device 16 or during programming of device 16 (for example by downloading software features to device 16 using a local programming computer or downloading software features from a remote server).
- Device 16 may be configured to enable or disable software features programmed on device 16 in accordance with authorization received from a remote device.
- device 16 is programmed to operate one or more basic functions without requiring further authorization. Additional functions can be selectively enabled by device 16 in response to receipt of authorization.
- the authorization may come in the form of a static license key, a downloaded license key, or other authorizations, such as those described below.
- System 10 comprises a server computer 12 and a server computer 14 , in this embodiment, though in alternative embodiments only one server computer may be used.
- Server computers 12 and 14 and device 16 are configured or programmed to perform steps described herein for enabling software features.
- server computers 12 and 14 may be implemented on a single server computer, each implemented on a plurality of server computers, either or both implemented on a server farm, a cloud server environment, or using other computer resources.
- Devices 12 , 14 and 16 may comprise analog and/or digital circuit components forming one or more processing circuits configured to perform the steps described herein.
- the processing circuit may comprise discrete circuit elements and/or programmed integrated circuits, such as one or more microprocessors, microcontrollers, analog-to-digital converters, application-specific integrated circuits (ASICs), programmable logic, printed circuit boards, and/or other circuit components.
- Device 16 may comprise an embedded processor, such as a processor with a dedicated function within a larger mechanical or electronic device, contrasted with a general-purpose computer, such as a personal computer (PC).
- One or more of devices 12 , 14 and 16 may each comprise a network interface circuit configured to provide communications over one or more networks with each other and/or with other computing devices.
- the network interface circuit may comprise digital and/or analog circuit components configured to perform network communications functions.
- the networks may comprise one or more of a wide variety of networks, such as wired or wireless networks, wide area-local-area or personal-area networks, proprietary or standards-based networks, etc.
- the networks may comprise networks such as an Ethernet network, networks operated according to Bluetooth protocols, IEEE 802.11x protocols, cellular (TDMA, CDMA, GSM) networks, or other network protocols.
- the network interface circuits may be configured for communication of one or more of these networks and may be implemented in one or more different sub-circuits, such as network communication cards, internal or external communication modules, etc.
- server computer 12 acting as a software enabling server or licensing server, is configured to transmit over the network an electronic document comprising a digitally signed identity associated with the server computer.
- the electronic document comprises a software enabling indicator, the software enabling indicator comprising data indicating whether a software feature of a system is to be enabled for use.
- the electronic document may be a digital certificate configured for establishing the authenticity of the identity of the server computer to a remote device.
- a digital certificate (or identity certificate or public key certificate) is an electronic document that uses a digital signature to bind a key with an identity.
- An identity is data such as the name of a person or an organization, their address, a nickname, a trade name, or any other code which a person or organization may use to identify itself.
- a digital certificate can be used to verify that a key, such as a public key, belongs to that person or organization.
- the digital signature binds the key with the identity through any of a variety of strong or weak cryptographic mechanisms, such as a hash function, RSA encryption, the Rabin signature algorithm, the BLS signature scheme, or any other technique for digitally signing an identity.
- the software enabling indicator is data that is used by the receiving computer of the digital certificate to determine whether a software feature is to be enabled.
- the software enabling indicator may indicate that one or more client computing devices are licensed (e.g., pursuant to a software license agreement) to use the software feature.
- a software enabling indicator may be a one-bit digital flag (e.g., “1” or “0”, “yes” or “no”, etc.) in a field of a data structure known by the receiving computer to represent a particular software feature.
- the software enabling indicator may include a multi-character or multi-digit code representing the name of a software feature along with an indication as to whether the software feature is to be enabled (e.g., “yes” or “no”, “enable” or “disable”, “licensed” or “not licensed.”)
- the software enabling indicator is part of the electronic document that is digitally signed.
- the electronic document comprising the digitally signed identity may contain the software enabling indicator in an un-signed portion of the document.
- the software enabling indicator in some embodiments may be a license key or product key, such as a static license key.
- a product key consists of a series of numbers and/or letters. This sequence is typically entered by the user during the installation of computer software, and is then passed to a verification function in the program on the client computer. This function manipulates the key sequence according to a mathematical algorithm and attempts to match the results to a set of valid solutions.
- Electronic document 20 comprises an identity data or code 22 in a first field and a software enabling indicator 24 in a second field.
- identity 22 and indicator 24 are digitally signed using digital signature 26 .
- Other data, codes, fields or extensions may be used in various embodiments of an electronic document.
- Electronic document 30 comprises an identity in the form of a subject 32 representing the identity of the certificate or website owner of the server computer that is transmitting the electronic document to the client computer.
- Document 30 further comprises a plurality of software enabling indicators 34 A and 34 B representing different software features to be enabled/disabled and perhaps in different formats (e.g., single bit, multi-character, etc.).
- Document 30 further comprises: a certificate serial number 36 , a unique identifier for this particular document 30 for use in distinguishing it from other documents; a version number 38 which can be used for duplicate copies of the same document 30 having minor changes (such as a renewed validity period, change in software enabling indicators, etc.); an algorithm ID 40 indicating a cryptographic algorithm that was used to bind a certificate authority's (CA) digital signature (CA digital signature 54 ) to document 30 ; another identity 42 , this identity representing the name of the certificate authority who digitally signed document 30 for use by the client computer in determining whether the CA is in a predetermined list of trusted CAs; a validity period 44 which comprises one or more validity dates, a validity date indicating a start date or end date of a period during which document 30 is valid and usable by client computer for authentication; public key information for the subject 46 , which may comprise a public encryption key and a public key algorithm used with the public key; issuer unique ID 48 and subject unique ID 50 are additional optional identity fields; and optional extensions 52 represents any of
- the electronic document may be a Secure Socket Layer (SSL) certificate.
- the electronic document may be formatted in accordance with the X.509 standard from the ITU Telecommunication Standardization Sector.
- An SSL protocol may determine variables of the encryption for both the link and the data being transmitted.
- Communication of the electronic document may be in accordance with one or more steps of a SSL transmission protocol, such as that described below:
- server 14 will obtain its licenses from a corporate license server 12 , and individual devices 16 will obtain their licenses by communicating with server 14 .
- License server 12 may be implemented with a hypertext transfer protocol (HTTP) to provide self-signed SSL certificates to all instances of servers 14 (three are shown, though more or less are contemplated), in response to periodic requests from servers 14 .
- HTTP hypertext transfer protocol
- the SSL certificates will include information about licensed features. When server 14 receives a valid SSL certificate, it will determine what features of server 14 can be enabled.
- server 14 will disable licensed features and will operate only basic free functions. This will enable a manufacturer or servicer of devices 16 , as a certificate authority, to dynamically grant or revoke licensed features by modifying SSL certificates with desired information (e.g., software enabling indicators) from the corporate location at any time. Once server 14 verifies its own licenses, it is configured to act as a proxy of license server 12 to connected devices 16 .
- the device communication interface (e.g., network communication circuit) on each of devices 16 may be configured to remain disabled until it receives a valid certificate from server 14 . Once a valid certificate is received, device 16 is configured to enable its communication interface, for example for a specific period of time or until it is powered off. When the device communication interface is enabled, server 14 will be able to communicate with device 16 to retrieve data (for example regarding medical procedures performed, regarding software features enabled/disabled, etc.), get status information about device 14 , set the device's configuration, etc.
- data for example regarding medical procedures performed, regarding software features enabled/disabled, etc.
- Server 12 comprises a processing circuit configured to generate, request, and/or store an electronic document having a digitally signed identity. Server 12 may perform these steps locally on server 12 or may use a local or remote authentication or signing server.
- server 12 may be configured to generate a certificate signing request (CSR) document and transmit the CSR to a certificate issuer or CA, such as DigiCert, Verisign, Entrust, etc.
- CSR certificate signing request
- CA certificate issuer
- the CSR may be in a standardized format, such as Pkcs#10 or Spkac, or in a customized format.
- This CSR creates a private key and a CSR data file that is sent to CA.
- the CA uses the CSR data file to create a public key to match the private key without compromising the key itself.
- the electronic document returned by the CA is digitally signed by the CA.
- the CA is one that server computer 14 and/or device 16 recognize as a trusted CA.
- the CA may be a third party, or a manufacturer or servicer of devices 16 .
- An SSL Certificate issued by a CA to an organization and its domain/website verifies that a trusted third party has authenticated that organization's identity.
- Server 12 may be configured to embed or store the software enabling indicator or indicators (e.g., license key) in the electronic document before the electronic document is digitally signed. Extensions or other data may also be inserted or stored in the electronic document before it is digitally signed. Alternatively, software enabling indicators, extensions or other data may be appended to the digitally signed electronic document after signature.
- software enabling indicator or indicators e.g., license key
- Server computer 14 may be configured to periodically, intermittently, synchronously or asynchronously request communication with server computer 12 .
- server 12 may make the request for communication of computer 14 .
- server 12 may transmit the previously generated electronic document to server computer 14 .
- the electronic document may be transmitted each time there is communication first being established between server 14 and server 12 (e.g., upon power-up of device 16 , server 14 and/or server 12 , each time there are interruptions in the communication link, once per day, etc.).
- Server computer 14 may be configured to authenticate server computer 12 using the electronic document, for example using SSL techniques or other techniques.
- server 14 is configured to read the software enabling indicator(s) and to carry out the instructions represented by the indicator(s). For example, if a software enabling indicator indicates that a license to use a software feature has expired, server 14 may be configured to disable that software feature on one or more of devices 16 , per the instructions. As another example, if a software enabling indicator indicates that a license to use a software feature is now in place, server 14 may be configured to enable that software feature on one or more of devices 16 .
- the validity date 44 of the electronic document may be used by server 14 both for representing a date after which the server computer can no longer be authenticated using this electronic document and for determining when the software feature is no longer enabled for use.
- the software enabling indicator may separately specify a validity date for a software feature.
- server 14 may be configured to store in memory an indication of software features that are to be enabled, the number of licenses available, device 16 IDs that are to be enabled and a priority thereof, and/or other data useful for enabling and disabling software features based on the electronic document received from server 12 .
- Server 14 may be configured to communicate over wired or wireless connections with devices 16 , and may use encrypted or unencrypted communication techniques.
- server 14 may be configured to generate a plurality of electronic documents, each comprising a digitally signed identity associated with the server computer 14 , the plurality of electronic documents each comprising a second software enabling indicator based on the first software enabling indicator received from server 12 .
- server computer 14 acts as a proxy for server 12 .
- Server 14 may be configured to transmit one of the plurality of electronic documents to each of a plurality of remote computing devices 15 for use in enabling a software feature on each of the remote computing devices 16 .
- Server 14 may digitally sign the electronic documents itself or may use a third party computer or even server computer 12 as a certificate authority for signing the electronic documents.
- server computer 14 may be configured to receive a first digital certificate having a software enabling code from a remote computer server over the network, generate a plurality of second digital certificates based at least in part on the software enabling code, and transmit the second digital certificates to each of a plurality of client computing devices to be used by each client computing device to enable a software feature.
- the digital certificate received by server computer 14 may specify a number of licenses that server computer 14 is authorized to pass along to devices 16 .
- Server computer 14 may be configured to prioritize which devices 16 receive licenses.
- Server computer 14 may be configured to reallocate a license from one device 16 not in operation at the time to another device which is in operation at the time.
- Server computer 14 may be configured to generate one digital certificate for enabling the first software feature and another digital certificate for enabling a second software feature different than the first software feature.
- Server computer 14 may be configured to allocate licenses based on care area, for example, intensive care unit, primary care unit, neonatal care unit, floors or areas of a hospital building, etc.
- the electronic document from server 12 to server 14 could include user-defined fields or areas. Such fields could add to the information a differentiation of licenses based on the center to which device 16 belongs.
- One server 14 may serves more than one center with different devices.
- the license user-defined data space could include the center name and the features and the license keys for a first center name and a center name, features and license keys for a second center with different license keys than the first center.
- server 14 could generate certificates for individual devices 16 based on a single certificate generated for the center, and potentially for the whole medical facility.
- device 16 may be configured to block, prevent, or reject any attempt from outside device 16 for communication unless device 16 receives a certificate it can verify with an authentic server.
- Device 14 may function similarly.
- the protocols are proprietary; so in order for a hacker or spoofer to understand what to send, they would need to have protocol-specific specifications. By preventing communication absent a valid certificate, even if an attempted spoofer was able to get the correct protocol specifications for communication with server 14 or device 16 , the spoofer will not be able to communicate because it does not have a valid certificate. Thus, an added layer of security may be provided.
- server 14 is configured to transmit a GetLicenseCertificate( ) request message to server 12 .
- This message may be an initial request for communication with server 12 , submitted according to a TCP/IP protocol.
- Server 12 is configured to receive the request and generate and/or provide a digital certificate DXTCertificate as described herein to server 14 .
- Server 14 is configured to determine whether the digital certificate is valid by comparing one or more of the certificate authority to a prestored list of trusted CAs, the validity date to an actual date of receipt of the digital certificate, and/or other items within the digital certificate.
- server 14 is configured to enable licensed software features at step 62 . If the digital certificate is valid, server 14 may further be configured to generate device certificate(s) for device(s) 16 at step 64 . If one or more of the digital certificate validity checks does not indicate a positive result or that the digital certificate is valid, server 14 is configured to disable or not enable certain software features at step 66 . For example, if the software feature for a device is one that was previously enabled and now is no longer enabled, server 14 may be configured to generate and send a new digital certificate to device 16 with an expired validity date as a way of indicating to device 16 that the software feature is invalid. In another example, server 14 may be configured to simply not enable the software feature on device 16 if it has not yet been enabled. Other methods of disabling or not enabling a software feature based on an invalid digital certificate received at server 14 are contemplated.
- device 16 may be configured to transmit a GetLicenseCertificate( ) message to server 14 to request an enabling message (such as a digital certificate or other enabling code) for a software feature or features to be authorized for use on device 16 .
- the message may be sent asynchronously, such as when a device is powered on by a human operator, after a power outage or other cycling of power, etc. Alternatively, the message may be sent synchronously, such as once per hour, once per day, etc.
- server 14 may be configured to generate and/or provide a digital certificate to device 16 comprising a software enabling code and/or other elements of a digital certificate described herein.
- Device 16 comprises programming configured to determine if the DeviceCertificate provided by server 14 is valid, again by comparing one or more elements to other data, such as the certificate authority, validity date, etc. If the digital certificate is valid, the communication interface circuit of device 16 is enabled at step 70 for additional communication, represented by the GetData( ) function (steep 72 ), which is a generic function showing that once a valid certificate is in place, data transfer(s) related to licensed functionality may occur. If the digital certificate is not valid, the communication interface circuit remains disabled (step 74 ) (to communications beyond requesting and receiving the digital certificate) so as not to allow communications from a potential spoofer. With a valid digital certificate, device 16 is configured to enable the software feature or features specified by the digital certificate. The software features may then be operable on device 16 for use by human operators, patients, clinicians, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A server computer has a network interface circuit and a processing circuit. The network interface circuit is configured to provide communications over a network. The processing circuit is configured to transmit over the network an electronic document comprising a digitally signed identity associated with the server computer. The electronic document further comprises a software enabling indicator, the software enabling indicator comprising data indicating whether a software feature of a system is to be enabled for use.
Description
- The present application relates to enabling software features on a computing device.
- Software product licensing uses several methods to ensure that only legitimate users can use the software application. These methods range from static license keys (a.k.a. serial licenses) to dedicated license servers, such as FlexNet Publisher. Current methods provide different degrees of security at the expense of deployment and maintenance complexity. While use of simple static license keys are the least complex, they offer a limited amount of protection and functionality. License servers are the most complex, while offering the highest level of protection, but are more costly. Further, in the case of a periodic license, when the expiration date is reached, the license file will be regenerated and provided by the vendor to the end user for update. Such systems do not scale well in time as the license cannot be dynamically revoked by the vendor, once it has been issued.
-
FIG. 1 is a flow diagram of a computing system for enabling software features, according to an illustrative embodiment; -
FIG. 2 is a diagram illustrating an electronic document having a digitally signed identity, according to an illustrative embodiment; -
FIG. 3 is a diagram illustrating an electronic document having a digitally signed identity, according to another illustrative embodiment; and -
FIG. 4 is a sequence diagram illustrating electronic document transmissions, according to illustrative embodiments. - One or more embodiments described herein may fit between the two extremes of simple static license keys and advanced dedicated license servers to provide sufficient security while being dynamically scalable.
- One or more embodiments described herein may use Secure Socket Layer (SSL) certificates that are used for authentication of connectivity on the Internet.
- One or more embodiments described herein may still use a serial license key for the installation; however, they will add the ability to dynamically enable or disable system features, in both time and space, from a central corporate location down to an individual device.
- One or more embodiments described herein may provide time variation capability by using changes to certificates at the corporate office, thus effectively affecting granted licenses immediately.
- One or more embodiments may provide space variation capability by using changes to individual certificates, thus affecting only a single installation of the system or multiple systems at the same time.
- One or more embodiments may provide protection from reverse engineering efforts of the client device's communication interface, as all functionality of the interface would be disabled until a valid certificate is received, thus preventing any communication with the device.
- One or more embodiments may provide data sufficient to perform asset tracking functionality, where a local server computer would report to a corporate server certificates usage by individual devices, thus providing basic information about devices being in or out of service with a connection to specific local server host.
- One or more embodiments may provide a secure licensing process, as exchange of SSL certificates may occur over a secure channel with the public key infrastructure built into the Transport Layer Security (TLS) mechanism.
- One or more embodiments may provide for authentication against the server from which a certificate came, so that the authorized licensing cannot be changed or modified by unauthorized parties. The licensing mechanism itself may be protected by a digital certificate according to how SSL certificates are issued.
- Referring now to
FIG. 1 , asystem 10 for enabling a software feature using a digitally signed electronic document is shown. In this embodiment,system 10 is illustrated as being used with amedical device 16 for performing a medical procedure on a patient, such as an apheresis machine. An apheresis machine is a machine configured to provide extracorporeal therapy to a patient by removing the patient or donor's blood, separating out one or more constituents of the blood (e.g., red blood cells, white blood cells, plasma, etc.), and returning the remaining constituents to the patient. A centrifuge device may be used for the separation. Exemplary apheresis devices include the Amicus separator, Alyx component collection system, Autopheresis-C system, and Aurora Plasmapheresis system, all manufactured by Fenwal, Inc., a Fresenius Kabi Company, Lake Zurich, Ill. In alternative embodiments, components or features ofsystem 10 may be used with other medical devices, such as infusion pumps, patient monitors, medical imaging machines, etc., and/or with other computing devices. -
Devices 16, acting as client computing devices in this illustration, are computing devices configured to operate software features. Software features can be applications, programs, extensions of a program, new versions of programs, enhancements or modifications of programs, software modules, or other software features. Different software features may provide different functions available to a user ofdevice 16, such as a remote diagnostic feature, a remote control feature, a remote programming feature, a reporting feature for reporting data about procedures performed usingdevice 16, remote backup and restore, new user interface features, audible alarm features, or any of a wide variety of software features. In this example, at least one, and optionally a plurality of software features are programmed into memory ondevice 16, for example during manufacture ofdevice 16 or during programming of device 16 (for example by downloading software features todevice 16 using a local programming computer or downloading software features from a remote server).Device 16 may be configured to enable or disable software features programmed ondevice 16 in accordance with authorization received from a remote device. In one example,device 16 is programmed to operate one or more basic functions without requiring further authorization. Additional functions can be selectively enabled bydevice 16 in response to receipt of authorization. The authorization may come in the form of a static license key, a downloaded license key, or other authorizations, such as those described below. -
System 10 comprises aserver computer 12 and aserver computer 14, in this embodiment, though in alternative embodiments only one server computer may be used.Server computers device 16 are configured or programmed to perform steps described herein for enabling software features. In alternate embodiments,server computers Devices Device 16 may comprise an embedded processor, such as a processor with a dedicated function within a larger mechanical or electronic device, contrasted with a general-purpose computer, such as a personal computer (PC). One or more ofdevices - In this illustrative embodiment,
server computer 12, acting as a software enabling server or licensing server, is configured to transmit over the network an electronic document comprising a digitally signed identity associated with the server computer. The electronic document comprises a software enabling indicator, the software enabling indicator comprising data indicating whether a software feature of a system is to be enabled for use. The electronic document may be a digital certificate configured for establishing the authenticity of the identity of the server computer to a remote device. A digital certificate (or identity certificate or public key certificate) is an electronic document that uses a digital signature to bind a key with an identity. An identity is data such as the name of a person or an organization, their address, a nickname, a trade name, or any other code which a person or organization may use to identify itself. A digital certificate can be used to verify that a key, such as a public key, belongs to that person or organization. The digital signature binds the key with the identity through any of a variety of strong or weak cryptographic mechanisms, such as a hash function, RSA encryption, the Rabin signature algorithm, the BLS signature scheme, or any other technique for digitally signing an identity. - The software enabling indicator is data that is used by the receiving computer of the digital certificate to determine whether a software feature is to be enabled. For example, the software enabling indicator may indicate that one or more client computing devices are licensed (e.g., pursuant to a software license agreement) to use the software feature. In one example, a software enabling indicator may be a one-bit digital flag (e.g., “1” or “0”, “yes” or “no”, etc.) in a field of a data structure known by the receiving computer to represent a particular software feature. In another example, the software enabling indicator may include a multi-character or multi-digit code representing the name of a software feature along with an indication as to whether the software feature is to be enabled (e.g., “yes” or “no”, “enable” or “disable”, “licensed” or “not licensed.”) In one embodiment, the software enabling indicator is part of the electronic document that is digitally signed. In other embodiments, the electronic document comprising the digitally signed identity may contain the software enabling indicator in an un-signed portion of the document.
- The software enabling indicator in some embodiments may be a license key or product key, such as a static license key. A product key consists of a series of numbers and/or letters. This sequence is typically entered by the user during the installation of computer software, and is then passed to a verification function in the program on the client computer. This function manipulates the key sequence according to a mathematical algorithm and attempts to match the results to a set of valid solutions.
- Referring now to
FIG. 2 , an illustrative electronic document will be described.Electronic document 20 comprises an identity data orcode 22 in a first field and asoftware enabling indicator 24 in a second field. In this example, bothidentity 22 andindicator 24 are digitally signed usingdigital signature 26. Other data, codes, fields or extensions may be used in various embodiments of an electronic document. - Referring now to
FIG. 3 , an alternative electronic document will be described to illustrate a number of additional data elements that may be part of electronic documents in alternative embodiments.Electronic document 30 comprises an identity in the form of a subject 32 representing the identity of the certificate or website owner of the server computer that is transmitting the electronic document to the client computer.Document 30 further comprises a plurality ofsoftware enabling indicators Document 30 further comprises: a certificateserial number 36, a unique identifier for thisparticular document 30 for use in distinguishing it from other documents; aversion number 38 which can be used for duplicate copies of thesame document 30 having minor changes (such as a renewed validity period, change in software enabling indicators, etc.); analgorithm ID 40 indicating a cryptographic algorithm that was used to bind a certificate authority's (CA) digital signature (CA digital signature 54) to document 30; another identity 42, this identity representing the name of the certificate authority who digitally signeddocument 30 for use by the client computer in determining whether the CA is in a predetermined list of trusted CAs; avalidity period 44 which comprises one or more validity dates, a validity date indicating a start date or end date of a period during which document 30 is valid and usable by client computer for authentication; public key information for the subject 46, which may comprise a public encryption key and a public key algorithm used with the public key; issuerunique ID 48 and subjectunique ID 50 are additional optional identity fields; andoptional extensions 52 represents any of a number of additional data fields that may be inserted withinelectronic document 30. - In one example, the electronic document may be a Secure Socket Layer (SSL) certificate. The electronic document may be formatted in accordance with the X.509 standard from the ITU Telecommunication Standardization Sector. An SSL protocol may determine variables of the encryption for both the link and the data being transmitted. Communication of the electronic document may be in accordance with one or more steps of a SSL transmission protocol, such as that described below:
- 1. The client computer (e.g., operating a web browser) connects to a server computer (e.g., operating a website) secured with SSL at a URL preceded by https. The client computer requests that the server identify itself.
- 2. The server computer sends a copy of its SSL certificate, including the server's public key.
- 3. The client computer checks the issuer ID (also called the certificate root) against a list of trusted issuers (e.g., CAs). The client computer also checks that the certificate has not expired or been revoked. If the client computer trusts the certificate, it creates, encrypts, and sends back a symmetric session key using the server's public key. The symmetric session key is used for subsequent secure communication between server and client instead of the public key because use of the session key provides faster encryption/decryption of messages.
- 4. The server computer decrypts the symmetric session key using its private key and sends back an acknowledgement encrypted with the session key to start the encrypted session.
- 5. The server computer and client computer now encrypt all transmitted data with the session key.
- Referring again to
FIG. 1 , an illustrative system and method for enabling software features ondevices 16 will be described. In this example, a two-step licensing model is implemented, whereserver 14 will obtain its licenses from acorporate license server 12, andindividual devices 16 will obtain their licenses by communicating withserver 14.License server 12 may be implemented with a hypertext transfer protocol (HTTP) to provide self-signed SSL certificates to all instances of servers 14 (three are shown, though more or less are contemplated), in response to periodic requests fromservers 14. In addition to other content (such as that shown inFIGS. 2 and 3 ), the SSL certificates will include information about licensed features. Whenserver 14 receives a valid SSL certificate, it will determine what features ofserver 14 can be enabled. If a valid certificate is not received,server 14 will disable licensed features and will operate only basic free functions. This will enable a manufacturer or servicer ofdevices 16, as a certificate authority, to dynamically grant or revoke licensed features by modifying SSL certificates with desired information (e.g., software enabling indicators) from the corporate location at any time. Onceserver 14 verifies its own licenses, it is configured to act as a proxy oflicense server 12 toconnected devices 16. - According to one embodiment, the device communication interface (e.g., network communication circuit) on each of
devices 16 may be configured to remain disabled until it receives a valid certificate fromserver 14. Once a valid certificate is received,device 16 is configured to enable its communication interface, for example for a specific period of time or until it is powered off. When the device communication interface is enabled,server 14 will be able to communicate withdevice 16 to retrieve data (for example regarding medical procedures performed, regarding software features enabled/disabled, etc.), get status information aboutdevice 14, set the device's configuration, etc. -
Server 12 comprises a processing circuit configured to generate, request, and/or store an electronic document having a digitally signed identity.Server 12 may perform these steps locally onserver 12 or may use a local or remote authentication or signing server. For example,server 12 may be configured to generate a certificate signing request (CSR) document and transmit the CSR to a certificate issuer or CA, such as DigiCert, Verisign, Entrust, etc. The CSR may be in a standardized format, such asPkcs# 10 or Spkac, or in a customized format. This CSR creates a private key and a CSR data file that is sent to CA. The CA uses the CSR data file to create a public key to match the private key without compromising the key itself. The electronic document returned by the CA is digitally signed by the CA. The CA is one thatserver computer 14 and/ordevice 16 recognize as a trusted CA. The CA may be a third party, or a manufacturer or servicer ofdevices 16. An SSL Certificate issued by a CA to an organization and its domain/website verifies that a trusted third party has authenticated that organization's identity. -
Server 12 may be configured to embed or store the software enabling indicator or indicators (e.g., license key) in the electronic document before the electronic document is digitally signed. Extensions or other data may also be inserted or stored in the electronic document before it is digitally signed. Alternatively, software enabling indicators, extensions or other data may be appended to the digitally signed electronic document after signature. -
Server computer 14 may be configured to periodically, intermittently, synchronously or asynchronously request communication withserver computer 12. Alternatively,server 12 may make the request for communication ofcomputer 14. In either case,server 12 may transmit the previously generated electronic document toserver computer 14. The electronic document may be transmitted each time there is communication first being established betweenserver 14 and server 12 (e.g., upon power-up ofdevice 16,server 14 and/orserver 12, each time there are interruptions in the communication link, once per day, etc.).Server computer 14 may be configured to authenticateserver computer 12 using the electronic document, for example using SSL techniques or other techniques. If authentication is successful (e.g., a valid certificate is received, having a proper validity date, trusted CA, etc.),server 14 is configured to read the software enabling indicator(s) and to carry out the instructions represented by the indicator(s). For example, if a software enabling indicator indicates that a license to use a software feature has expired,server 14 may be configured to disable that software feature on one or more ofdevices 16, per the instructions. As another example, if a software enabling indicator indicates that a license to use a software feature is now in place,server 14 may be configured to enable that software feature on one or more ofdevices 16. - In one embodiment, the
validity date 44 of the electronic document may be used byserver 14 both for representing a date after which the server computer can no longer be authenticated using this electronic document and for determining when the software feature is no longer enabled for use. In alternate embodiments, the software enabling indicator may separately specify a validity date for a software feature. In either event,server 14 may be configured to store in memory an indication of software features that are to be enabled, the number of licenses available,device 16 IDs that are to be enabled and a priority thereof, and/or other data useful for enabling and disabling software features based on the electronic document received fromserver 12. -
Server 14 may be configured to communicate over wired or wireless connections withdevices 16, and may use encrypted or unencrypted communication techniques. In one embodiment,server 14 may be configured to generate a plurality of electronic documents, each comprising a digitally signed identity associated with theserver computer 14, the plurality of electronic documents each comprising a second software enabling indicator based on the first software enabling indicator received fromserver 12. In this manner,server computer 14 acts as a proxy forserver 12.Server 14 may be configured to transmit one of the plurality of electronic documents to each of a plurality of remote computing devices 15 for use in enabling a software feature on each of theremote computing devices 16.Server 14 may digitally sign the electronic documents itself or may use a third party computer or evenserver computer 12 as a certificate authority for signing the electronic documents. - According to some embodiments,
server computer 14 may be configured to receive a first digital certificate having a software enabling code from a remote computer server over the network, generate a plurality of second digital certificates based at least in part on the software enabling code, and transmit the second digital certificates to each of a plurality of client computing devices to be used by each client computing device to enable a software feature. For example, the digital certificate received byserver computer 14 may specify a number of licenses thatserver computer 14 is authorized to pass along todevices 16.Server computer 14 may be configured to prioritize whichdevices 16 receive licenses.Server computer 14 may be configured to reallocate a license from onedevice 16 not in operation at the time to another device which is in operation at the time.Server computer 14 may be configured to generate one digital certificate for enabling the first software feature and another digital certificate for enabling a second software feature different than the first software feature. Each enabling code may comprise data regarding the number oflicenses server 14 may allocate for that feature, e.g., software feature A=100 licenses; software feature B=10 licenses.Server computer 14 may be configured to allocate licenses based on care area, for example, intensive care unit, primary care unit, neonatal care unit, floors or areas of a hospital building, etc. - In one example, the electronic document from
server 12 toserver 14 could include user-defined fields or areas. Such fields could add to the information a differentiation of licenses based on the center to whichdevice 16 belongs. Oneserver 14 may serves more than one center with different devices. The license user-defined data space could include the center name and the features and the license keys for a first center name and a center name, features and license keys for a second center with different license keys than the first center. Further,server 14 could generate certificates forindividual devices 16 based on a single certificate generated for the center, and potentially for the whole medical facility. - As discussed,
device 16 may be configured to block, prevent, or reject any attempt fromoutside device 16 for communication unlessdevice 16 receives a certificate it can verify with an authentic server.Device 14 may function similarly. Typically in medical devices and embedded devices, the protocols are proprietary; so in order for a hacker or spoofer to understand what to send, they would need to have protocol-specific specifications. By preventing communication absent a valid certificate, even if an attempted spoofer was able to get the correct protocol specifications for communication withserver 14 ordevice 16, the spoofer will not be able to communicate because it does not have a valid certificate. Thus, an added layer of security may be provided. - Referring now to
FIG. 4 , a sequence diagram illustrates steps in communication amongdevice 16,server 14 andserver 12. In astep 60,server 14 is configured to transmit a GetLicenseCertificate( ) request message toserver 12. This message may be an initial request for communication withserver 12, submitted according to a TCP/IP protocol.Server 12 is configured to receive the request and generate and/or provide a digital certificate DXTCertificate as described herein toserver 14.Server 14 is configured to determine whether the digital certificate is valid by comparing one or more of the certificate authority to a prestored list of trusted CAs, the validity date to an actual date of receipt of the digital certificate, and/or other items within the digital certificate. If the digital certificate is valid,server 14 is configured to enable licensed software features atstep 62. If the digital certificate is valid,server 14 may further be configured to generate device certificate(s) for device(s) 16 atstep 64. If one or more of the digital certificate validity checks does not indicate a positive result or that the digital certificate is valid,server 14 is configured to disable or not enable certain software features atstep 66. For example, if the software feature for a device is one that was previously enabled and now is no longer enabled,server 14 may be configured to generate and send a new digital certificate todevice 16 with an expired validity date as a way of indicating todevice 16 that the software feature is invalid. In another example,server 14 may be configured to simply not enable the software feature ondevice 16 if it has not yet been enabled. Other methods of disabling or not enabling a software feature based on an invalid digital certificate received atserver 14 are contemplated. - At
step 68,device 16 may be configured to transmit a GetLicenseCertificate( ) message toserver 14 to request an enabling message (such as a digital certificate or other enabling code) for a software feature or features to be authorized for use ondevice 16. The message may be sent asynchronously, such as when a device is powered on by a human operator, after a power outage or other cycling of power, etc. Alternatively, the message may be sent synchronously, such as once per hour, once per day, etc. In response,server 14 may be configured to generate and/or provide a digital certificate todevice 16 comprising a software enabling code and/or other elements of a digital certificate described herein.Device 16 comprises programming configured to determine if the DeviceCertificate provided byserver 14 is valid, again by comparing one or more elements to other data, such as the certificate authority, validity date, etc. If the digital certificate is valid, the communication interface circuit ofdevice 16 is enabled atstep 70 for additional communication, represented by the GetData( ) function (steep 72), which is a generic function showing that once a valid certificate is in place, data transfer(s) related to licensed functionality may occur. If the digital certificate is not valid, the communication interface circuit remains disabled (step 74) (to communications beyond requesting and receiving the digital certificate) so as not to allow communications from a potential spoofer. With a valid digital certificate,device 16 is configured to enable the software feature or features specified by the digital certificate. The software features may then be operable ondevice 16 for use by human operators, patients, clinicians, etc. - While some embodiments herein are described with reference to use with medical devices, the teachings herein may be implemented in other fields as well, such as Internet web browsing, manufacturing, point-of-sale computers, and a wide range of other computing environments.
Claims (20)
1. A server computer, comprising:
a network interface circuit configured to communicate over a network; and
a processing circuit configured to transmit over the network an electronic document comprising a digitally signed identity associated with the server computer, the electronic document further comprising a software enabling indicator, the software enabling indicator comprising data indicating whether a software feature of a system is to be enabled for use.
2. The server computer of claim 1 , wherein the electronic document is a digital certificate configured for establishing the authenticity of the identity of the server computer to a remote device.
3. The server computer of claim 1 , wherein the electronic document comprises a public encryption key.
4. The server computer of claim 1 , wherein the electronic document is a Secure Socket Layer certificate.
5. The server computer of claim 1 , wherein the software enabling code is a license key, wherein the processing circuit is configured to embed the license key in the electronic document before the electronic document is digitally signed.
6. The server computer of claim 5 , wherein the processing circuit is configured to embed a validity date in the electronic document before the electronic document is digitally signed.
7. The server computer of claim 1 , wherein the software enabling code comprises an indication of a number of software licenses for a plurality of client computing devices.
8. The server computer of claim 7 , wherein the software enabling code comprises an indication of software licenses for a plurality of different software features.
9. The server computer of claim 1 , wherein the software enabling code comprises an indication of a first software license for a remote server computer and an indication of a plurality of second software licenses for client computers in communication with the remote server computer.
10. A server computer, comprising:
a network interface circuit configured to communicate over a network; and
a processing circuit configured to:
receive over the network an electronic document comprising a digitally signed identity associated with a remote server computer, the electronic document further comprising a software enabling indicator, the software enabling indicator comprising data indicating whether a software feature of a system is to be enabled for use.
11. The server computer of claim 10 , wherein the processing circuit is further configured to authenticate the server computer using the electronic document.
12. The server computer of claim 10 , wherein the electronic document further comprises a validity date representing a date after which the server computer can no longer be authenticated using this electronic document, wherein the processing circuit is further configured to store an indication that the software feature is no longer enabled for use after expiration of the validity date.
13. The server computer of claim 10 , wherein the processing circuit is further configured to:
generate a plurality of electronic documents, each comprising a digitally signed identity associated with the server computer, the plurality of electronic documents each comprising a second software enabling indicator; and
transmit one of the plurality of electronic documents to each of a plurality of remote computing devices for use in enabling a software feature on each of the remote computing devices.
14. The server computer of claim 10 , wherein the electronic document is a Secure Socket Layer certificate.
15. A server computer, comprising:
a network interface circuit configured to communicate over a network; and
a processing circuit configured to:
receive a first digital certificate from a remote computer server over the network, the digital certificate comprising a software enabling code;
generate a plurality of second digital certificates based at least in part on the software enabling code; and
transmit the second digital certificates to each of a plurality of client computing devices to be used by each client computing device to enable a software feature.
16. The server computer of claim 15 , wherein the software enabling code comprises a first code for enabling a first software feature and a second code for enabling a second software feature, wherein the processing circuit is configured to generate one second digital certificate for enabling the first software feature and another second digital certificate for enabling the second software feature.
17. The server computer of claim 16 , wherein the first code represents a first number of licenses for use of the first software feature and the second code represents a second number of licenses for use of the second software feature.
18. The server computer of claim 15 , wherein the processing circuit is configured to transmit the one second digital certificate to a client computing device associated with a first care area within a medical facility and the another second digital certificate to a second client computing device associated with a second care area within the medical facility.
19. The server computer of claim 15 , further comprising the plurality of client devices, wherein the plurality of client devices are medical devices.
20. The server computer of claim 19 , wherein the medical devices are apheresis machines or infusion pumps.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/079,324 US20150135338A1 (en) | 2013-11-13 | 2013-11-13 | Digital certificate with software enabling indicator |
EP14189858.5A EP2874087B1 (en) | 2013-11-13 | 2014-10-22 | Digital certificate with software enabling indicator |
US15/636,098 US9985957B2 (en) | 2013-11-13 | 2017-06-28 | Digital certificate with software enabling indicator |
US15/960,700 US10587606B2 (en) | 2013-11-13 | 2018-04-24 | Digital certificate with software enabling indicator |
US16/782,930 US11228582B2 (en) | 2013-11-13 | 2020-02-05 | Digital certificate with software enabling indication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/079,324 US20150135338A1 (en) | 2013-11-13 | 2013-11-13 | Digital certificate with software enabling indicator |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/636,098 Continuation US9985957B2 (en) | 2013-11-13 | 2017-06-28 | Digital certificate with software enabling indicator |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150135338A1 true US20150135338A1 (en) | 2015-05-14 |
Family
ID=51794750
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/079,324 Abandoned US20150135338A1 (en) | 2013-11-13 | 2013-11-13 | Digital certificate with software enabling indicator |
US15/636,098 Active US9985957B2 (en) | 2013-11-13 | 2017-06-28 | Digital certificate with software enabling indicator |
US15/960,700 Active US10587606B2 (en) | 2013-11-13 | 2018-04-24 | Digital certificate with software enabling indicator |
US16/782,930 Active US11228582B2 (en) | 2013-11-13 | 2020-02-05 | Digital certificate with software enabling indication |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/636,098 Active US9985957B2 (en) | 2013-11-13 | 2017-06-28 | Digital certificate with software enabling indicator |
US15/960,700 Active US10587606B2 (en) | 2013-11-13 | 2018-04-24 | Digital certificate with software enabling indicator |
US16/782,930 Active US11228582B2 (en) | 2013-11-13 | 2020-02-05 | Digital certificate with software enabling indication |
Country Status (2)
Country | Link |
---|---|
US (4) | US20150135338A1 (en) |
EP (1) | EP2874087B1 (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150169877A1 (en) * | 2012-06-05 | 2015-06-18 | Lookout, Inc. | Monitoring for fraudulent or harmful behavior in applications being installed on user devices |
US9589129B2 (en) | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
US9942051B1 (en) | 2013-03-15 | 2018-04-10 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US10079830B2 (en) * | 2014-04-17 | 2018-09-18 | Viavi Solutions Inc. | Lockable network testing device |
US10218697B2 (en) | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
US10279709B2 (en) * | 2016-05-23 | 2019-05-07 | Toyota Boshoku Kabushiki Kaisha | Recliner |
US20200028848A1 (en) * | 2017-08-11 | 2020-01-23 | Nutanix, Inc. | Secure access to application instances in a multi-user, multi-tenant computing environment |
US10649679B2 (en) | 2016-11-23 | 2020-05-12 | Nutanix, Inc. | Containerized application extensions in distributed storage systems |
US10721290B2 (en) | 2015-06-05 | 2020-07-21 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines |
US10761911B2 (en) | 2017-02-13 | 2020-09-01 | Nutanix, Inc. | Asynchronous application interactions in distributed systems |
US20210192015A1 (en) * | 2014-09-05 | 2021-06-24 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US11075893B2 (en) * | 2014-06-23 | 2021-07-27 | Vmware, Inc. | Cryptographic proxy service |
US11259183B2 (en) | 2015-05-01 | 2022-02-22 | Lookout, Inc. | Determining a security state designation for a computing device based on a source of software |
US11520862B2 (en) | 2019-02-01 | 2022-12-06 | Hewlett-Packard Development Company, L.P. | Control of applications based on licensing objects |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271106B2 (en) | 2009-04-17 | 2012-09-18 | Hospira, Inc. | System and method for configuring a rule set for medical event management and responses |
AU2012325937B2 (en) | 2011-10-21 | 2018-03-01 | Icu Medical, Inc. | Medical device update system |
EP2964079B1 (en) | 2013-03-06 | 2022-02-16 | ICU Medical, Inc. | Medical device communication method |
CA2922425C (en) | 2013-08-30 | 2023-05-16 | Hospira, Inc. | System and method of monitoring and managing a remote infusion regimen |
US9662436B2 (en) | 2013-09-20 | 2017-05-30 | Icu Medical, Inc. | Fail-safe drug infusion therapy system |
US20150135338A1 (en) | 2013-11-13 | 2015-05-14 | Fenwal, Inc. | Digital certificate with software enabling indicator |
US9764082B2 (en) | 2014-04-30 | 2017-09-19 | Icu Medical, Inc. | Patient care system with conditional alarm forwarding |
US9724470B2 (en) | 2014-06-16 | 2017-08-08 | Icu Medical, Inc. | System for monitoring and delivering medication to a patient and method of using the same to minimize the risks associated with automated therapy |
US9539383B2 (en) | 2014-09-15 | 2017-01-10 | Hospira, Inc. | System and method that matches delayed infusion auto-programs with manually entered infusion programs and analyzes differences therein |
US11290286B2 (en) | 2017-09-27 | 2022-03-29 | Cable Television Laboratories, Inc. | Provisioning systems and methods |
US11025408B2 (en) * | 2017-09-27 | 2021-06-01 | Cable Television Laboratories, Inc. | Provisioning systems and methods |
US10861600B2 (en) * | 2017-09-28 | 2020-12-08 | General Electric Company | Method and system for user-verifiable certification of software for medical devices |
EP3541038A1 (en) * | 2018-03-15 | 2019-09-18 | Siemens Aktiengesellschaft | Method and device for cryptographically secure data transmission between a first electronic device and a second device |
ES2962660T3 (en) | 2018-07-17 | 2024-03-20 | Icu Medical Inc | Systems and methods to facilitate clinical messaging in a network environment |
AU2019306490B2 (en) | 2018-07-17 | 2024-11-21 | Icu Medical, Inc. | Updating infusion pump drug libraries and operational software in a networked environment |
AU2020267477A1 (en) | 2019-05-08 | 2022-01-06 | Icu Medical, Inc. | Threshold signature based medical device management |
JP7540180B2 (en) * | 2020-03-31 | 2024-08-27 | ソニーグループ株式会社 | Medical application management system and medical application management method |
DE102020002264A1 (en) * | 2020-04-14 | 2021-10-14 | Drägerwerk AG & Co. KGaA | System, medical devices, network components, devices, methods and computer programs for medical devices and network components |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182727A1 (en) * | 2004-02-13 | 2005-08-18 | Arnaud Robert | Binding content to a domain |
US20060064582A1 (en) * | 2004-09-13 | 2006-03-23 | Coretrace Corporation | Method and system for license management |
US20060294366A1 (en) * | 2005-06-23 | 2006-12-28 | International Business Machines Corp. | Method and system for establishing a secure connection based on an attribute certificate having user credentials |
US20070150418A1 (en) * | 2005-12-27 | 2007-06-28 | Microsoft Corporation | Software licensing using certificate issued by authorized authority |
US20090089881A1 (en) * | 2007-09-28 | 2009-04-02 | Eugene Indenbom | Methods of licensing software programs and protecting them from unauthorized use |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
US20130212381A1 (en) * | 2012-02-15 | 2013-08-15 | Roche Diagnostics Operations, Inc. | System and method for controlling authorized access to a structured testing procedure on a medical device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6367009B1 (en) * | 1998-12-17 | 2002-04-02 | International Business Machines Corporation | Extending SSL to a multi-tier environment using delegation of authentication and authority |
US6802006B1 (en) | 1999-01-15 | 2004-10-05 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US6871276B1 (en) * | 2000-04-05 | 2005-03-22 | Microsoft Corporation | Controlled-content recoverable blinded certificates |
US6981262B1 (en) * | 2000-06-27 | 2005-12-27 | Microsoft Corporation | System and method for client interaction in a multi-level rights-management architecture |
US7063253B1 (en) * | 2000-09-27 | 2006-06-20 | Diebold SCLF-Service Systems division of Diebold, Incorporated | Cash dispensing automated banking machine software authorization system and method |
US7549060B2 (en) * | 2002-06-28 | 2009-06-16 | Microsoft Corporation | Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system |
EP1429224A1 (en) * | 2002-12-10 | 2004-06-16 | Texas Instruments Incorporated | Firmware run-time authentication |
US6990434B2 (en) * | 2003-10-28 | 2006-01-24 | General Electric Company | System and method for coordinated remote activation of multiple software-based options |
US20050204405A1 (en) | 2004-03-04 | 2005-09-15 | Brian Wormington | Method and system for digital rights management |
US7707405B1 (en) * | 2004-09-21 | 2010-04-27 | Avaya Inc. | Secure installation activation |
US20060206923A1 (en) | 2005-03-09 | 2006-09-14 | Macrovision Corporation | Method and system for self-encrypting key identification |
US7581106B1 (en) * | 2005-04-20 | 2009-08-25 | Adobe Systems Incorporated | Using digital certificates to facilitate enforcement of product licenses |
US20060287959A1 (en) * | 2005-06-17 | 2006-12-21 | Macrovision Corporation | Software license manager employing license proofs for remote execution of software functions |
EP2260427A4 (en) * | 2008-02-20 | 2016-11-16 | Ericsson Telefon Ab L M | Flexible node identity for telecom nodes |
JP5084592B2 (en) * | 2008-04-17 | 2012-11-28 | 株式会社リコー | Information processing device, electronic certificate issuing method, and program |
US8646093B2 (en) * | 2009-03-31 | 2014-02-04 | Bmc Software, Inc. | Method and system for configuration management database software license compliance |
KR20120005364A (en) * | 2010-07-08 | 2012-01-16 | 정보통신산업진흥원 | Electronic address, and electronic document distribution system |
US8725649B2 (en) * | 2011-12-08 | 2014-05-13 | Raytheon Company | System and method to protect computer software from unauthorized use |
US8789209B2 (en) * | 2012-03-07 | 2014-07-22 | Avaya Inc. | Enterprise license registrar anchor point |
US9078130B2 (en) * | 2012-04-10 | 2015-07-07 | Qualcomm Incorporated | Secure reception reporting |
US9846899B1 (en) * | 2012-08-31 | 2017-12-19 | Amazon Technologies, Inc. | Dynamic software licensing |
US20150135338A1 (en) | 2013-11-13 | 2015-05-14 | Fenwal, Inc. | Digital certificate with software enabling indicator |
-
2013
- 2013-11-13 US US14/079,324 patent/US20150135338A1/en not_active Abandoned
-
2014
- 2014-10-22 EP EP14189858.5A patent/EP2874087B1/en active Active
-
2017
- 2017-06-28 US US15/636,098 patent/US9985957B2/en active Active
-
2018
- 2018-04-24 US US15/960,700 patent/US10587606B2/en active Active
-
2020
- 2020-02-05 US US16/782,930 patent/US11228582B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182727A1 (en) * | 2004-02-13 | 2005-08-18 | Arnaud Robert | Binding content to a domain |
US20060064582A1 (en) * | 2004-09-13 | 2006-03-23 | Coretrace Corporation | Method and system for license management |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
US20060294366A1 (en) * | 2005-06-23 | 2006-12-28 | International Business Machines Corp. | Method and system for establishing a secure connection based on an attribute certificate having user credentials |
US20070150418A1 (en) * | 2005-12-27 | 2007-06-28 | Microsoft Corporation | Software licensing using certificate issued by authorized authority |
US20090089881A1 (en) * | 2007-09-28 | 2009-04-02 | Eugene Indenbom | Methods of licensing software programs and protecting them from unauthorized use |
US20130212381A1 (en) * | 2012-02-15 | 2013-08-15 | Roche Diagnostics Operations, Inc. | System and method for controlling authorized access to a structured testing procedure on a medical device |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10256979B2 (en) | 2012-06-05 | 2019-04-09 | Lookout, Inc. | Assessing application authenticity and performing an action in response to an evaluation result |
US9589129B2 (en) | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
US11336458B2 (en) * | 2012-06-05 | 2022-05-17 | Lookout, Inc. | Evaluating authenticity of applications based on assessing user device context for increased security |
US9940454B2 (en) | 2012-06-05 | 2018-04-10 | Lookout, Inc. | Determining source of side-loaded software using signature of authorship |
US9992025B2 (en) | 2012-06-05 | 2018-06-05 | Lookout, Inc. | Monitoring installed applications on user devices |
US10419222B2 (en) * | 2012-06-05 | 2019-09-17 | Lookout, Inc. | Monitoring for fraudulent or harmful behavior in applications being installed on user devices |
US20150169877A1 (en) * | 2012-06-05 | 2015-06-18 | Lookout, Inc. | Monitoring for fraudulent or harmful behavior in applications being installed on user devices |
US12225141B2 (en) | 2013-03-15 | 2025-02-11 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US10841104B2 (en) | 2013-03-15 | 2020-11-17 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US10305695B1 (en) | 2013-03-15 | 2019-05-28 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US11588650B2 (en) | 2013-03-15 | 2023-02-21 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US11930126B2 (en) | 2013-03-15 | 2024-03-12 | Piltorak Technologies LLC | System and method for secure relayed communications from an implantable medical device |
US9942051B1 (en) | 2013-03-15 | 2018-04-10 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US10079830B2 (en) * | 2014-04-17 | 2018-09-18 | Viavi Solutions Inc. | Lockable network testing device |
US12095747B2 (en) | 2014-06-23 | 2024-09-17 | Omnissa, Llc | Cryptographic proxy service |
US11075893B2 (en) * | 2014-06-23 | 2021-07-27 | Vmware, Inc. | Cryptographic proxy service |
US11954184B2 (en) | 2014-09-05 | 2024-04-09 | Hewlett Packard Enterprise Development Lp | Dynamic monitoring and authorization of an optimization device |
US20210192015A1 (en) * | 2014-09-05 | 2021-06-24 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US11921827B2 (en) * | 2014-09-05 | 2024-03-05 | Hewlett Packard Enterprise Development Lp | Dynamic monitoring and authorization of an optimization device |
US11868449B2 (en) | 2014-09-05 | 2024-01-09 | Hewlett Packard Enterprise Development Lp | Dynamic monitoring and authorization of an optimization device |
US11259183B2 (en) | 2015-05-01 | 2022-02-22 | Lookout, Inc. | Determining a security state designation for a computing device based on a source of software |
US12120519B2 (en) | 2015-05-01 | 2024-10-15 | Lookout, Inc. | Determining a security state based on communication with an authenticity server |
US12074937B2 (en) | 2015-06-05 | 2024-08-27 | Nutanix, Inc. | Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines |
US10721290B2 (en) | 2015-06-05 | 2020-07-21 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines |
US11368519B2 (en) | 2015-06-05 | 2022-06-21 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines |
US10279709B2 (en) * | 2016-05-23 | 2019-05-07 | Toyota Boshoku Kabushiki Kaisha | Recliner |
US10649679B2 (en) | 2016-11-23 | 2020-05-12 | Nutanix, Inc. | Containerized application extensions in distributed storage systems |
US10761911B2 (en) | 2017-02-13 | 2020-09-01 | Nutanix, Inc. | Asynchronous application interactions in distributed systems |
US11038876B2 (en) | 2017-06-09 | 2021-06-15 | Lookout, Inc. | Managing access to services based on fingerprint matching |
US12081540B2 (en) | 2017-06-09 | 2024-09-03 | Lookout, Inc. | Configuring access to a network service based on a security state of a mobile device |
US10218697B2 (en) | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
US20200028848A1 (en) * | 2017-08-11 | 2020-01-23 | Nutanix, Inc. | Secure access to application instances in a multi-user, multi-tenant computing environment |
US11520862B2 (en) | 2019-02-01 | 2022-12-06 | Hewlett-Packard Development Company, L.P. | Control of applications based on licensing objects |
Also Published As
Publication number | Publication date |
---|---|
EP2874087B1 (en) | 2019-04-03 |
US20180241741A1 (en) | 2018-08-23 |
US20200177580A1 (en) | 2020-06-04 |
EP2874087A1 (en) | 2015-05-20 |
US20170302657A1 (en) | 2017-10-19 |
US10587606B2 (en) | 2020-03-10 |
US11228582B2 (en) | 2022-01-18 |
US9985957B2 (en) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11228582B2 (en) | Digital certificate with software enabling indication | |
US11818274B1 (en) | Systems and methods for trusted path secure communication | |
CN109845220B (en) | Method and apparatus for providing blockchain participant identity binding | |
EP3764616B1 (en) | Authentication for licensing in an embedded system | |
US9912486B1 (en) | Countersigned certificates | |
US10454689B1 (en) | Digital certificate management | |
TWI469603B (en) | Digital rights management using trusted processing techniques | |
US9888037B1 (en) | Cipher suite negotiation | |
JP5105291B2 (en) | Long-term signature server, long-term signature terminal, long-term signature terminal program | |
JP5554066B2 (en) | Information distribution system, information terminal and program | |
JP5897040B2 (en) | Secure access to emergency personal health records | |
US20040093499A1 (en) | Electronic signature method, program and server for implementing the method | |
US8806206B2 (en) | Cooperation method and system of hardware secure units, and application device | |
JP2017204704A (en) | Legitimacy guarantee method, legitimacy guarantee system, and legitimacy guarantee program | |
CN113676332B (en) | Two-dimensional code authentication method, communication device and storage medium | |
JP5700423B2 (en) | Long-term signature terminal, long-term signature server, long-term signature terminal program, and long-term signature server program | |
Indushree et al. | A novel Blockchain-based authentication scheme for telecare medical information system | |
CN113872769B (en) | Device authentication method and device based on PUF, computer device and storage medium | |
CN112583588B (en) | Communication method and device and readable storage medium | |
CN111698299B (en) | Session object replication method, device, distributed micro-service architecture and medium | |
RU2722925C1 (en) | Method for secure data exchange | |
CN118413304A (en) | Block chain-based national cipher double certificate issuing and managing method and system | |
JP2012239233A (en) | Server for verifying long-term signature and server for verifying signature |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FENWAL, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOSKAL, WITOLD;REEL/FRAME:031595/0961 Effective date: 20131113 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |