CN1312549C - 用于安全交易管理和电子权利保护的系统和方法 - Google Patents

用于安全交易管理和电子权利保护的系统和方法 Download PDF

Info

Publication number
CN1312549C
CN1312549C CN 03101486 CN03101486A CN1312549C CN 1312549 C CN1312549 C CN 1312549C CN 03101486 CN03101486 CN 03101486 CN 03101486 A CN03101486 A CN 03101486A CN 1312549 C CN1312549 C CN 1312549C
Authority
CN
Grant status
Grant
Patent type
Prior art keywords
systems
methods
secure
transaction
protection
Prior art date
Application number
CN 03101486
Other languages
English (en)
Other versions
CN1601429A (zh )
Inventor
K·L·吉特尔
V·H·希尔
F·J·斯帕恩
D·M·范维
Original Assignee
英特特拉斯特技术公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Grant date
Family has litigation

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services; Handling legal documents
    • G06Q50/184Intellectual property management
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading, distribution or shipping; Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement, balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/023Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] characterized in that the neutral party is a clearing house
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/24Credit schemes, i.e. "pay after"
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/02Marketing, e.g. market research and analysis, surveying, promotions, advertising, buyer profiling, customer management or rewards; Price estimation or determination
    • G06Q30/0241Advertisement
    • G06Q30/0273Fees for advertisement
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/02Marketing, e.g. market research and analysis, surveying, promotions, advertising, buyer profiling, customer management or rewards; Price estimation or determination
    • G06Q30/0283Price estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping
    • G06Q30/0609Buyer or seller confidence or verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation, credit approval, mortgages, home banking or on-line banking
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services; Handling legal documents
    • G06Q50/188Electronic negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • G07F9/02Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus
    • G07F9/026Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus for alarm, monitoring and auditing in vending machines or means for indication, e.g. when empty
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • H04L63/0823Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • H04L63/083Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communication involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data, processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a Uniform Resource Locator [URL] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • H04N21/2547Third Party Billing, e.g. billing of advertiser
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Characteristics of or Internal components of the client
    • H04N21/42646Characteristics of or Internal components of the client for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB, power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4753End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for user identification, e.g. by entering a PIN or password
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/60Selective content distribution, e.g. interactive television, VOD [Video On Demand] using Network structure or processes specifically adapted for video distribution between server and client or between remote clients; Control signaling specific to video distribution between clients, server and network components, e.g. to video encoder or decoder; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • H04N21/83555Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed using a structured language for describing usage rules of the content, e.g. REL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/07Indexing scheme relating to G06F21/10, protecting distributed programs or content
    • G06F2221/0722Content
    • G06F2221/0737Traceability
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/07Indexing scheme relating to G06F21/10, protecting distributed programs or content
    • G06F2221/0797Indexing scheme relating to G06F21/10, protecting distributed programs or content using dedicated hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/16Copy protection or prevention
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled

Abstract

本发明提供了用于包括安全交易管理和电子权利保护的电子商业活动的系统和方法。遵照本发明而使用的诸如计算机之类的电子设备有助于确保只能以经过授权的方式访问和使用信息,并维护了信息的完整性、可用性和/或保密性。结合上述电子设备使用的安全子系统提供了一个虚拟分发环境(VDE),所述虚拟分发环境强制执行了一个安全的处理和控制链(举例来说)以控制和/或计量或监视对电子存贮的或传播的信息的使用。该虚拟分发环境可以用来保护电子商业活动中以及其他电子的或由电子促进的交易中的各种参与者的权利。采用诸如可在各节点上建立安全的、受保护的环境的安全半导体处理配置来保障分布式与其它操作系统环境及体系结构。这些技术可以用来支持(举例来说)使用“电子高速公路”可能用到的端到端电子信息分发功能。

Description

用于安全交易管理和电子权利保护的系统和方法

本申请是1996年2月13提交的申请号为96193245.7、发明名称为“用于安全交易管理和电子权利保护的系统和方法”的中国专利申请的分案申请。

[0002] 发明领域

[0003] 本发明一般涉及计算机和/或电子安全性。

[0004] 更具体地说,本发明涉及安全交易管理的系统和技术。本发明还涉及基于计算机或其它电子设备的技术,这些技术有助于确保只能以经过授权的方式访问或使用信息,并维护该信息的完整性、可用性和/或保密性和涉及该使用的进程。

[0005] 本发明还涉及用于保护电子商业活动以及其他电子的或由电子促进的交易中的各种参与者的权利的系统和方法。

[0006] 本发明还涉及用于信息内容和用来控制对该信息内容的使用以及所述使用的结果的信息的安全处理和控制链。它还涉及管理—包括计量和/或限制和/或监视—对电子存贮的或传播的信息的使用的系统和技术。本发明特别涉及使用上述系统和/或技术—包括使用上述系统和/或技术的使用结果—的交易、处理和方案。

[0007] 本发明还涉及分布式的和其他的操作系统、环境和体系结构。它通常还涉及包括(举例来说)基于硬件的防破坏处理器在内的安全体系结构,该安全体系结构可以用来在分布式系统的每个节点建立安全性。

发明背景和综述

目前,电信、金融交易、政府事务、商业运作、娱乐和私人商业生产力等均依赖于电子设备。数以百万计的这种电子设备已经被电子地连接在一起。这些互连的电子设备构成了被日渐称作的“信息高速公路”。许多商业、学术和政府领导都关心着如何保护使用该信息高速公路(也称作“电子高速公路”或“数字高速公路”)的公民和组织的权利。

电子信息内容

目前,实际上任何能用文字、数字、图形或命令及指令系统代表的事物都可以被格式化成电子数字信息。电视、有线电缆、卫星传输以及通过电话线进行的联机服务相互竞争,将数字信息和娱乐分发到家庭和商业中。这些信息内容的所有者和市场销售人员包括软件开发人员、动画和录制公司、书籍、杂志及报纸的出版商、以及信息数据库提供者。联机服务的普及也已使得个人计算机用户加入到信息提供者的行列。据Microsoft公司估计,1992年的全球电子信息市场大约为400亿美元,而到1997年可望增至2000亿美元。本发明可以显著增加信息提供者的收益,降低分发成本和信息内容成本,更好地支持广告和使用信息收集,更好地满足电子信息用户的需要。这些改进将显著增加电子信息的数量和种类和分发该信息的方法的数量和种类。

为适应电子信息提供者和用户的需要而开发的传统产品的功能匮乏与本发明形成明显对比。尽管美国最大的电信、计算机、娱乐和信息提供者公司的代表人物对本发明所提及的某些问题给予了关注,只有本发明为可配置的、通用电子商业交易/分发控制系统提供了商业上的安全有效的解次方案。

控制电子信息内容

本发明提供了一种新类型的“虚拟分发环境”(在本文件中称为“VDE”),该“虚拟分发环境”保护、管理和审核电子信息使用。VDE还以某些具有根本重要性的功能为其特性,这些功能用来管理“穿过”“信息高速公路”传播的信息内容。这些功能含有服务所有电子团体成员的权利保护方案。这些成员包括信息内容制作者和分发者、财务服务提供者、最终用户以及其他人员。对于计算机、其他电子设备、网络以及信息高速公路的用户来说,VDE是第一个通用的、可配置的交易控制/权利保护方案。

对于电子信息内容提供者来说,一个根本问题在于扩展他们的能力以控制对有产权信息的使用。信息内容提供者常常需要将使用限制在授权的活动和数量的范围内。涉及(举例来说)在光盘上提供电影和广告的业务模型中的参与者包括:演员、导演、剧本作者和其他作者、作曲者、制作室、出版商、分发者、零售商、广告客户、信用卡服务机构、和信息内容最终用户。这些参与者需要下面的能力,即:将他们的协定和要求范围—包括使用限制—体现到含有整体电子业务模型的“扩展”协定中。这些扩展协定由可以自动强制执行各方同意的权利和义务的电子信息内容的控制信息来代表。在VDE下,一个上述扩展协定可以含有一个涉及所有业务模型参与者的电子合同。作为另一种选择或补充,这种协定可以由在业务模型参与者子集之间达成的协定组成。通过使用VDE,电子商业可以按照与传统商业一样的方式起作用,即:可以通过对不同各方之间的一个或多个协定的协商来形成涉及产品和服务的商业关系。

商业信息内容提供者关心确保使用他们的电子信息应支付的合理报酬。在今天,可以较为容易和廉价地拷贝电子数字信息—例如一个CD唱片。类似地,按照国际知识产权协会的估算,对软件程序的未经授权的拷贝和使用使合法所有者的年收入蒙受了几十亿美元的损失。信息内容提供者和分发者已经设计出大量功能有限的权利保护机制以保护他们的权利。鉴别口令和协议、许可服务器、“加锁/解锁”分发方法、以及强加于紧缩包装软件的用户的非电子合同限制等是较为流行的信息内容保护方案中的几个例子。在商业环境下,上述各种尝试是低效的和有限的解决方案。

“电子货币”的提供者也已经为其类型的信息内容创建了保护措施。这些系统没有足够的适用性、有效性或灵活性以支持电子货币的推广使用。而且,它们不提供复杂的审核和控制配置功能。这意味着目前的电子货币工具缺乏许多实际的金融业务模型所需的完善性。VDE提供了用于匿名货币和“有条件”匿名货币的机制,其中,除非在特殊的情况下,否则涉及货币的活动保持匿名。

VDE控制功能

VDE允许电子数字信息的所有者和分发者可靠地为电子信息计帐,并且安全地控制、审核和预算对电子信息的使用。它可以可靠地检测和监视对商业信息产品的使用。VDE使用了各种各样的电子信息传递措施,包括(举例来说):数字网络、数字广播以及诸如光盘和磁盘之类的物理存贮介质。VDE可以被较大的网络提供者、硬件厂商、电子信息的所有者、这种信息的提供者、以及收集有关电子信息并对电子信息的使用计帐的票据交换所使用。

VDE提供全面的和可配置的交易管理、计量和监视技术。它可以改变对电子信息产品的保护、销售、包装、和分发方式。如果使用了VDE,那么它将会为信息提供者带来更高的收入,并带来更高的用户满意度以及价值。对VDE的使用通常将会带来降低的使用成本、降低的交易成本、对电子信息的更有效访问、权利保护措施和其他交易管理实现的可重用性、在使用被保护信息方面大大提高的灵活性、以及用于电子交易管理的更为标准化的工具和进程。VDE可以用来创建一个满足电子信息所有者、分发者和用户、财务票据交换所、以及使用信息分析员和再销售者的需要的适用环境。

权利和控制信息

一般来说,本发明可以用来保护具有下列利益的团体:

(a)电子信息所有权或保密利益。本发明(举例来说)有助于确保以授权的方式访问信息;

(b)由使用电子分发信息而产生的财务利益。本发明有助于确保信息内容提供者得到被分发信息的使用报酬;以及

(c)在包括电子现金、银行业务、和购物等在内的电子信用和电子货币的存贮、传送、和/或使用方面的利益。

保护电子团体成员的权利涉及广泛的技术领域。VDE将这些技术合并成一种创建“分布式”电子权利保护“环境”的方法。该环境对交易和其他对权利保护具有重要性的进程进行安全化和保护。VDE(举例来说)提供了禁止或阻止干扰和/或探察涉及重要权利的交易和进程的能力。在其较佳实施例中,VDE使用专用的防破坏安全处理部件(SPU),它有助于向VDE进程和信息存贮和通信提供高度的安全性。

本发明所解决的权利保护问题是基本社会问题的电子形式。这些问题包括保护所有权、保护隐私权、适当地给予人们和组织一定的报酬以补偿他们所付出的劳动和所冒的风险、保护钱款和信用、以及通常保护信息的安全性。VDE利用使用了通用进程集的系统以有效、可信和成本高效的方式来管理权利问题。

VDE可以用来保护创建诸如唱片或录音带、游戏、电影、报纸、电子图书和参考资料、个人电子邮件、以及机密的记录和通信之类的电子信息的参与者的权利。本发明还可以用来保护:诸如出版商和分发者之类的提供电子产品的参与者的权利;诸如票据交换所和银行之类的提供电子信用和货币以支付产品使用费的参与者的权利;使用电子信息内容的参与者(例如消费者、行业人士、政府)的隐私权;以及由电子信息所描述的当事人的隐私权—诸如涉及包含在病历、税务记录、或人事记录中的信息的隐私权。

一般来说,本发明可以用来保护具有下列利益的参与者的权利:

(a)对电子分发信息的商业利益—本发明(举例来说)有助于确保采用与当事人达成的协定相一致的方式为被分发信息的使用向当事人付费;

(b)电子信息的所有权和/或机密性利益—本发明有助于(举例来说)确保对数据的使用只能以授权的方式进行;

(c)在包括电子现金、银行业务、和购物等活动在内的电子信用和电子货币的存贮、传送、和/或使用方面的利益;以及

(d)对至少部分地从使用其他电子信息中获取的电子信息的利益。

VDE功能特性

VDE是一个成本高效的和有效的权利保护解决方案,它为保护和管理交易处理提供了统一的、一致的系统。VDE能够:

(a)审核和分析对信息内容的使用;

(b)确保对信息内容进行使用只能采取授权方式;以及

(c)允许对有关信息内容使用的信息只能以由信息内容用户同意的方式使用。

另外,VDE:

(a)是高度可配置、可修改、和可重复使用的;

(b)支持广泛的有用功能,可以采用不同的方式将这些功能合并起来以支持大多数潜在的应用;

(c)运行于各种各样的电子设备之上,其范围可以从手持式廉价设备到大型主计算机;

(d)能够同时保证大量不同参与者的权利和大量不同权利保护方案;

(e)能够通过一系列可以在不同时间和不同地点发生的交易来保护参与者的权利;

(f)能够灵活地支持安全地传递信息和汇报使用的多种方式;以及

(g)提供对“实际”货币和信息的电子模拟—包括匿名电子现金,以便为产品和服务付帐,以及支持个人(包括家庭)银行业务和其他金融活动。

VDE经济有效地满足了电子团体成员的权利保护需求。VDE的用户将不需要针对不同的信息高速公路产品和权利问题而需要另外的权利保护系统,他们也将不需要为每个新的信息高速公路应用都安装并学会一个新系统。

VDE提供了一个允许所有信息内容制作者、提供者和用户使用同一电子权利保护方案的统一解决方案。在经过授权的情况下,参与者可以自由地交换信息内容和相关信息内容控制集合。这意味着VDE的用户可以在被允许的情况下使用同一电子系统以处理带有不同信息内容控制信息集合的、不同类型的信息内容。由一个群体提供的信息内容和控制信息可以由通常使用其他群体提供的信息内容和控制信息的人们使用。VDE允许信息内容可以被“全局”地交换,并且,本发明的实现的用户可以电子地交互作用,而不必担心信息内容控制的不兼容性、权利的侵犯、以及得到、安装或学习新信息内容控制系统的需要。

VDE安全地管理规定了权利保护的交易。它可以保护的电子权利包括(举例来说):

(a)电子信息内容的作者的所有权;

(b)信息内容分发者的商业权利;

(c)促进了信息内容分发的任何参与者的权利;

(d)信息内容用户的隐私权;

(e)由被存贮和/或被分发的信息内容描述的当事人的隐私权;以及

(f)涉及强制执行电子协定的任何其他权利。

VDE允许十分广泛的、采用电子方式强制执行的商业和社会协定。这些协定可包括采用电子方式实现的合同、许可证、法律、条例、和税收。

与传统解决方案的对比

传统信息内容控制机制常常要求用户购买超过其所需要的或所希望的电子信息。例如,紧缩包装软件的不经常用户被要求以与经常性用户相同的价格来购买一个程序,尽管他们可能从他们较为稀少的使用中得到较少的价值。传统系统没有按照使用的程度和特性按比例收费,并且传统系统不能吸引那些认为固定价格太高的潜在消费者。使用传统机制的系统通常不是特别地安全。例如,对于紧缩包装技术而言,一旦软件或者从其物理包装或从其电子包装中被移动出去以后,紧缩包装技术将不能防止不断的非法盗版行为。

传统的电子信息权利保护系统通常缺乏灵活性且效率不高,并且迫使信息内容提供者选择昂贵的分发通道,这类分发通道提高了产品的价格。一般来说,这些机制限制了产品定价、配置和销售的灵活性。这些缺点归因于用于控制信息的技术既不支持不同的信息内容模型,也不支持反映了模型参与者的许多不同要求(如信息内容传递策略)的信息内容模型。这样会限制提供者的下述能力,即:传递足够的综合性信息以便从许多潜在用户的角度证明一个给定产品的价格是正当的。VDE允许信息内容提供者和分发者创建反映提供者和用户的优选业务模型的应用和分发网络。它提供给用户唯一地成本高效的并具有丰富特性的系统,该系统支持提供者希望用来分发信息的方式,以及用户希望用来使用该信息的方式。VDE支持确保权利及允许信息内容传递策略为最大商业成效的目的而形成的信息内容控制模型。

处理和控制链

VDE可以保护属于在电子信息中具有权利或对电子信息具有权利的参与者的一批权利。该信息可以位于一个地点,也可以分散在多个地点上(或在多个地点之间移动)。该信息可以通过一个分发者“链”和一个用户“链”传递。使用信息也可以通过一个或多个参与者“链”被汇报出去。通常,VDE允许(a)在电子信息中带有权利的当事人,和/或(b)作为在电子信息中带有权利的当事人的直接或间接代理来保证:对信息的移动、访问、修改或使用等可以由涉及如何、在何时、在何地、由谁等执行上述活动的规则安全地控制。

VDE应用和软件

VDE是用来管理电子活动和商业的安全系统。上述管理由一个或多个参与者放置就位的控制信息来确保。这些参与者可以包括信息内容提供者、电子硬件制造商、财务服务提供者、或诸如电缆或电信公司之类的电子“基础设施”公司。控制信息实现了“权利应用”。权利应用运行在较佳实施例中的“基本软件”之上。该基本软件起一个安全的、灵活的、通用的基础的作用,该基础可以支持许多不同的权利应用,即许多不同的业务模型及其各自的参与者要求。

VDE下的权利应用由专用的部分组成,每一个部分都可以对应于权利保护环境所需要的、一个或多个基本的电子进程。这些进程可以象建筑模块一样被合并在一起,以创建可以保护权利的电子协定,并强制电子信息的用户和提供者履行他们的义务。电子信息的一个或多个提供者可以容易地合并选定的建筑模块以创建一个唯一于特定信息内容分发模型的权利应用。一组这样的模块可以代表执行用户和提供者之间协定所需的功能。这些模块支持电子商业的许多要求,包括:

使用电子信息许可的分发;

控制信息以及管理这些许可的控制信息的集合的持久性;

可配置的控制集合信息,这些控制集合信息可以由用户选择以便使用这些信息;

电子信息的数据安全性和使用审核;以及

用于货币、报酬、和借方管理的安全系统。

对于电子商业,依据本发明较佳实施例的权利应用可以电子化地强制执行所有参与者之间的业务协定。由于可以为不同应用而把不同的部件组放在一起,本发明可以为种类繁多的产品和市场提供电子控制信息。这意味着本发明可以为电子商业和数据安全性提供一个“统一”的、有效的、安全的和成本高效的系统。这可以允许VDE为电子权利保护、数据安全性以及电子货币和银行业务起单一标准的作用。

在VDE中,权利应用及其基础之间的分离允许对适于应用和使用的多种不同类型中的每一种的控制信息集合进行有效地选择。这些控制集合既可以反映电子团体成员的权利,也可以反映他们的义务(例如提供某人使用一个产品或为某人的电子购物活动纳税的历史信息)。VDE的灵活性允许其用户电子地实现和强制执行共同的社会和商业道德规范和惯例。通过提供一个统一的控制系统,本发明支持个人、团体、商业和政府的、范围广阔的、可能的、有关交易的利益和关心。由于它的开放式设计,VDE允许(通常在安全控制的情况下)将使用了由用户独立创建的技术的应用“加入”到系统中,并结合本发明的基础使用该应用。总之,VDE提供了一个可以公平地反映和强制执行各方之间的协定的系统。它是一个广泛的和系统的解决方案,该方案满足了对安全的、成本高效的、和公平的电子环境的迫切需要。

VDE实现

本发明的较佳实施例含有允许系统设计者直接将VDE功能插入到其产品中的各种工具。这些工具包括一个应用程序员接口(“API”)和一个权利许可和管理语言(“RPML”)。RPML为使用本发明的特性提供了全面的和详细的控制。VDE还包括用来满足信息内容提供者、分发者和用户的需要的某些用户接口子系统。

利用VDE分发的信息有多种形式。信息可以(举例来说)被分发以供某个人自己的计算机使用,也就是说,本发明可以用来为本地存贮的数据提供安全性。作为另一种选择,VDE可以用于由作者和/或出版商传播给一个或多个接收者的信息。该信息可以有多种形式,包括:电影、声音录制品、游戏、电子目录购物、多媒体、培训材料、电子邮件和个人文件、面向对象的库、软件编程资源、以及保存参考/记录的信息资源(如业务、医药、法律、科学、政府、和消费者数据库)。

本发明提供的电子权利保护还可以为可信的和有效的家庭和商业银行业务、电子信用进程、电子购物、真实的或有条件匿名的电子现金、以及EDI(电子数据交换)提供重要的基础。通过提供比基于密钥和口令的“通行/禁行”技术远远有效的“智能”交易管理特性,VDE在提高组织中的数据安全性方面提供重要的加强。

VDE通常使用密码技术和其他安全性技术(如加密、数字签名等)的结合,以及其他的技术,包括:部件的、分布式的和事件驱动的操作系统技术,以及相关的通信、对象容器、数据库、智能代理、智能卡、和半导体设计技术。

1.概述

A.VDE解决了重要问题并满足了关键需要

世界正在朝着电子信息设备的集成化发展。设备的互连为更大规模的电子交互作用和电子商业的发展提供了基础。为实现电子商业环境需要各种功能。VDE是提供许多上述功能的第一个系统,并且因此而解决了有关信息电子传播的基本问题。

电子信息内容

VDE允许电子协定的创建涉及双方或多方。这些协定可以本身含有在处于商业价值链和/或数据安全性链模型中的参与者之间达成的、针对处理、审核、汇报、和付款等的一批协定。它可以为安全电子信息内容的分发、使用控制、使用付款、使用审核和使用汇报提供有效的、可重用的、可修改的、和一致的方法。信息内容可以(举例来说)包括:

诸如电子货币和信用之类的财务信息;

诸如参考资料数据库、电影、游戏、和广告之类的采用商业手段分发的电子信息;以及

诸如文件、电子邮件、和有所有权的数据库信息之类的由个人和组织产生的电子财产。

VDE准许一个支持不同的、有竞争力业务伙伴关系、协定、以及发展的全面业务模型的电子商业市场。

VDE的特性使它能够作为第一个可信的电子信息控制环境起作用,该环境能够遵守并支持传统电子商业和数据安全性的大量要求。特别地,VDE允许处于业务价值链模型中的参与者创建传统业务协定条款和条件的电子版本,并进一步允许这些参与者形成并演变他们认定为适合其业务要求的电子商业模型。

VDE提供了一个避免反映特殊分发偏见、特殊管理和控制观点、以及特殊信息内容类型的体系结构。相反,VDE提供了一个范围广阔的、从根本上可配置和可移动的、电子交易控制、分发、使用、审核、汇报和付款操作环境。VDE不限在只是一个只涵盖了电子交互活动和参与者的有限子集的应用或特定于应用的工具集。相反,VDE支持这样的系统,即通过该系统,可以创建、修改和/或重用上述的应用。因此,本发明通过提供一个支持标准化控制环境的系统而满足了迫切的、尚未解决的需求,该标准化控制环境通过使用可编程的、安全的电子交易管理基础和可重用的和可扩展执行的部件促进了电子设备的互相协作性、信息内容容器的互相协作性,以及电子商业设备和模型的有效创建。VDE支持一个单一的电子“世界”,在该电子“世界”中可以对大多数形式的电子交易活动进行管理。

为了满足权利所有者和信息内容提供者正在发展的需要,并提供可支持所有可能参与到电子业务模型中的各方(制作者、分发者、管理员、用户、信用提供者、等等)的要求和协定的一个系统,VDE提供了一个有效的、大大透明的、低成本的和充分安全的系统(既支持硬件/软件模型,也支持只有软件的模型)。VDE提供了适合下列需要的、变化多端的安全控制和管理功能:

1.不同类型的电子信息内容;

2.不同的电子信息内容传递方案;

3.不同的电子信息内容使用方案;

4.不同的信息内容使用平台;以及

5.不同的信息内容销售和模型策略。

VDE可以与许多分离的计算机和/或其他电子设备合并在一起,或集成进它们之中。这些设备通常含有一个安全子系统,该安全子系统允许控制对信息内容的使用—例如显示、加密、解密、打印、拷贝、保存、抽取、嵌入、分发、审核使用、等等。较佳实施例中的上述安全子系统含有一个或多个“被保护的处理环境”,一个或多个安全数据库、以及安全“部件组”和其他需要保持安全的项目和进程。VDE可以(举例来说)使用上述的“安全子系统”安全地控制电子货币、付帐、和/或信用的管理(包括电子信用和/或货币接收、付款、留存、和/或分配)。

VDE提供了一个安全的、分布式电子交易管理系统,以便控制对采用电子方式提供的和/或存贮的信息的分发和/或其他使用,VDE控制对电子信息内容和/或设备的使用的审核和汇报。VDE的用户可以包括那些为最终用户组织、个人、以及信息内容和/或设备分发者将涉及信息内容使用、使用汇报、和/或使用付款的控制信息应用到电子信息内容和/或设备的信息内容创建者。VDE还安全地支持一个或多个参与者采用电子信用和/或货币的形式向一个或多个其他参与者支付所欠的款项。

在VDE控制下的电子设备代表安全地处理和控制被分发的电子信息和/或设备使用、控制信息配制、以及相关交易的VDE“节点”VDE可以安全地管理由两个或多个参与者提供的控制信息的集成。因此,VDE可以创建VDE参与者之间的一个电子协定,该电子协定代表了两方或多方的控制要求之间的“协商”,并且制定最终产生的协定的条款和条件。VDE确保了涉及与电子信息和/或设备使用有关的广泛电子活动的电子协定每一参与方的权利。

通过使用VDE的控制系统,传统的信息内容提供者和用户可以建立反映传统的、非电子关系的电子关系。他们可以形成和修改商业关系以支持他们不断变化的需要或他们之间不断变化的协定。VDE不要求电子信息内容提供者和用户变更他们的业务惯例和个人喜好以符合某个支持有限的、基本上固定的功能的计量和控制应用程序。而且,VDE允许参与者开发出对于非电子商业来说是不可行的业务模型,例如,涉及信息内容使用信息的详细汇报,在迄今为止尚不可行的低价位水平上进行的大量显著不同的交易,对在强制执行时无须参与者参与或事先了解的控制信息进行的“传递”、等等。

本发明允许信息内容提供者和用户配制他们的交易环境,以支持:

(1)理想的信息内容模型、信息内容控制模型和信息内容使用信息通路;

(2)完整范围的电子介质和分发手段;

(3)范围广阔的定价、付款和审核策略;

(4)非常灵活的隐私和/或汇报模型;

(5)现实的和有效的安全体系结构;以及

(6)与步骤(1)到(5)一起可以允许包括唯一于电子世界的模型在内的“真实世界”电子商业和数据安全性模型的其他管理过程。

VDE的交易管理功能可以强制执行:

(1)涉及与用户对电子信息和/或设备的使用相关的信息的用户隐私权;

(2)诸如保护信息内容用户的权利或收集从电子交易收入中得到的税款的法律之类的社会政策;以及

(3)参与者的所有权和/或其他权利,这些权利涉及电子信息的所有权、分发和/或与电子信息有关的其他商业权利。

VDE可以支持电子形式的“真实”商业活动,也就是说渐进地创建随着时间推移将形成代表价值链业务模型的相互关联协定的网络的商业关系。利用安全创建的和独立提交的信息内容和/或设备控制信息集合之间的交互作用(或协商)使得信息内容控制信息得以发展,这样可以部分地实现上述功能。不同的信息内容和/或设备控制信息集合可以由在本发明允许的电子业务价值链中的不同参与者提交。这些参与者通过使用他们各自的VDE装置创建控制信息集合。可独立安全传递的、基于部件的控制信息允许由不同参与者提供的控制信息集合之间的有效交互作用。

VDE允许在VDE支持的电子价值链模型中的参与者的子集之间形成多个分离的电子协定。这些多个协定一起构成了VDE价值链“扩展”协定。VDE支持上述构成的电子协定以及因此得到的全面VDE扩展协定在另外的VDE参与者参与VDE信息内容和/或设备控制信息处理的过程中逐渐地演变和重新形成。VDE电子协定还可以在已有参与者提交新控制信息时被扩展。使用VDE,电子商业参与者可以自由地组织和再组织他们的电子商业业务活动和关系。作为结果,由于使用VDE能够支持不同的,种类繁多的、使用同一或共享信息内容的业务模型,于是本发明允许竞争性的电子商业市场得到发展。

作为本发明广泛支持电子商业的能力的一个重要方面,本发明能够安全地管理可独立传递的、含有控制信息的VDE部件对象(通常采用含有一个或多个方法、数据或加载模块VDE部件的VDE对象的形式)。可以使用本发明的协商机制将上述可独立传递的控制信息与上级的和其他已有的信息内容控制信息集成在一起以便安全地产生被派生的控制信息。由该派生控制信息规定的所有要求必须在VDE控制信息可以被访问或使用之前得到满足。这意味着(举例来说)由派生控制信息列出来作为必需信息的所有加载模块和任意中间数据必须是可用的,并且他们必须安全地执行所要求的功能。结合本发明的其他方面,安全独立传递的控制部件允许电子商业参与者自由地规定他们的业务要求和折衷方案。结果,与传统的非电子商业十分相似,本发明允许电子商业(通过VDE参与者对各种控制要求的渐进规定)演变成最有效、最具有竞争力和最有用的业务形式。

VDE提供对电子商业和电子交易管理的支持进行合理化的功能。该合理化过程归因于针对种类繁多的、与交易管理有关的活动的控制结构和用户接口的可重复使用。结果,信息内容使用控制、数据安全性、信息审核、和电子财务活动可以由可重用的、方便的、一致的和熟悉的工具进行支持。另外,一种合理的手段—交易/分发控制标准—允许VDE中的所有参与者以硬件控制和安全性、创作、经营以及管理工具的同一基础集合,支持种类繁多的信息、业务销售模型和/或个人目标。

将VDE作为一种通用电子交易/分发控制系统加以使用允许用户在他们各自的计算机、网络、通信节点、和/或其他电子设备中的每一个中维护单一交易管理控制方案。这种通用系统可以满足许多电子交易管理应用的需要,而不是对于不同的用途需要特殊的、不同的装置。结果,VDE的用户可以避免对应于各个不同信息内容和/或业务模型的、不同的、有限用途的交易控制应用所带来的混淆和花费以及其他缺乏效率的方面。例如,VDE允许信息内容制作者对于信息内容创作以及从其他信息内容制作者那里取得信息内容许可以便将该信息内容加到其产品中或实现其他用途,这两种活动均使用同一VDE基础控制方案。票据交换所、分发者、信息内容制作者、以及其他VDE用户都可以不管VDE活动的类型而按照完全一致的方式,(大大透明地)使用或再使用相同的分发工具、机制、以及一致的用户接口与运行于他们的VDE装置中的应用交互作用,以及在相互之间进行交互作用。

通过控制和审核电子地存放和/或传播的信息(或对这些信息进行其他的使用管理),VDE禁止对电子信息进行的许多形式的未经授权的使用。这些信息包括(举例来说):商业分发的信息内容、电子货币、电子信用、业务交易(例如EDI)、机密通信、等等。VDE可以进一步用来允许商业上提供的电子信息内容之中用户定义的部分对用户可用,而不是限制用户只能使用信息内容制作者和/或其他提供者为计帐目的而“预定”的信息内容部分。

VDE(举例来说)可以使用:

(1)安全的计量手段用来预算和/或审核电子信息内容和/或设备的使用;

(2)安全灵活的装置用来支持对信息内容和/或设备的使用费用进行偿付和/或计帐,包括用作付款手段的电子信用和/或货币机制。

(3)安全分布式数据库装置,用来存放有关控制和使用的信息(并使用了确认的划分和标记方案)。

(4)安全的电子设备控制装置;

(5)由位于每个用户(包括VDE信息内容容器制作者、其他信息内容提供者、客户用户、以及安全VDE信息内容使用信息的接收者)站点上的节点构成的分布式的、安全的“虚拟黑盒子”。所述虚拟黑盒子的节点通常含有至少带有一个安全硬件元件(一个半导体元件或其他用来安全地执行VDE控制进程的硬件模块)的安全子系统,所述安全子系统被分发在沿信息存贮、分发、付款、使用和/或审核的路径上的各个节点中。在某些实施例中,对于某些或所有节点来说,所述硬件元件的功能可以(举例来说)由电子设备宿主处理环境中的软件执行;

(6)加密和解密装置;

(7)使用鉴别、数字签名、和加密传送技术的安全通信装置。所述用户节点中的安全子系统使用一个协议,该协议创建和鉴别每个节点和/或参与者的身份,并为安全子系统之间的通信创建一个或多个主机-到-主机的安全加密密钥;以及

(8)安全控制装置—该装置可允许各个VDE装置进行VDE信息内容创作(将信息内容与相关控制信息一起放入VDE容器中)、信息内容分发和信息内容使用、以及使用信息内容使用信息的票据交换所活动以及其他管理和分析活动。

VDE可以用来将大多数非电子的传统信息传递模型(包括娱乐、参考资料、目录购物、等等)迁移到充分安全的数字化分发和使用管理和付帐环境中。由VDE配置管理的分发和财务通路包括:

信息内容制作者;

分发者;

再分发者;

客户管理员;

客户用户;

财务和/或其他票据交换所;

以及/或者政府机构。

这些分发和财务路径还可以包括:

广告商;

市场调查组织,和/或

其他对利用VDE安全传递的和/或存放的信息的用户使用感兴趣的参与者。

通常,VDE配置中的参与者使用相同的安全VDE基础。可选实施例支持使用不同VDE基础的VDE系统。这种可选实施例可以使用一些过程来确保某些互相协作性要求得到满足。

安全VDE硬件(也称为SPU—安全处理部件),或使用(由宿主处理环境(HPE)提供的)软件来替代或补充所述硬件的VDE装置,结合安全通信、系统集成软件和分布式软件控制信息以及支持结构一起工作,从而实现本发明的电子合同和/或权利保护环境。这些VDE部件一起构成了一个安全的、虚拟的、对分发的信息内容和/或设备进行控制、审核(或其他管理)、汇报、以及付帐的环境。在某些实施例中,或者在商业上可以接收的情况下,可以允许某些VDE参与者—诸如通常维护具有充分物理安全性的非VDE处理环境的票据交换所—使用HPE而不是VDE硬件元件,并与(举例来说)VDE最终用户和信息内容提供者进行互相协作。VDE部件一起为电子信息内容和/或设备使用的分布式异步控制构成了一个可配置的、一致的、安全的和“可信的”体系结构。VDE支持电子信息内容传递、广泛传播、使用汇报、以及涉及使用的付款活动的一个“通用”环境。

VDE提供了广义的可配置性。这种特性部分地归因于将用于支持电子商业和数据安全性的广义要求分解成广泛的构成性“原子”部件和更高层部件(如加载模块、数据元素和方法),这些部件可以不同地聚集在一起,为电子商业应用、商业电子协定和数据安全性方案产生控制方法。VDE提供了使用VDE基础元素以及允许电子商业模型和关系继续发展的可独立传递的安全VDE部件的安全操作环境。VDE特别支持对下述分发模型的展开:在这种分发模型中,随着时间的推移,信息内容提供者可以明确地同意或允许后续的信息内容提供者和/或用户参与对使用电子信息内容和/或设备的控制信息和结果进行塑造。用于支持由简单到特别复杂的电子商业和数据安全性活动的十分广泛的功能属性得到了本发明提供的功能的支持。结果,VDE支持大多数类型的电子信息和/或设备:使用控制(包括分发)、安全性、使用审核、汇报、其他管理活动、以及付款方案。

在VDE的较佳实施例中,VDE使用了对象软件技术,并使用对象技术为(至少部分地)被加密的或经过安全保护的信息的传递形成“容器”。这些容器可以含有电子信息内容产品或其他电子信息和某些或所有其他相关许可(控制)信息。可以沿着包含信息内容提供者和/或信息内容用户的路径分发上述容器对象。可以安全地在虚拟分发环境(VDE)的节点之间移动这些容器对象,这些节点运行VDE基础软件并执行控制方法以制定电子信息使用控制和/或管理模型。通过使用本发明的较佳实施例而传递的容器可以用于分发VDE控制指令(信息),并且/或者用于密封和电子地分发已经至少部分地经过安全保护的信息内容。

使用本发明的信息内容提供者可以包括(举例来说)软件应用和游戏发行者、数据库发行者、有线电视、电视和无线电广播者、电子购物销售商、以及电子文件、书籍、期刊、电子邮件和/或其他形式的信息的分发者。充当电子信息的存放者和/或分发者的公司、政府机构、和/或个人“最终用户”也可以是VDE信息内容提供者(在一个受限制的模型中,一个用户只向其自身提供信息内容,并使用VDE来保护自己的机密信息,以防止其他参与者未经授权地使用这些信息)。电子信息可包括供个人或组织内部使用的有所有权的和/或机密的信息,以及诸如提供给其他团体使用的软件应用、文件、娱乐材料和/或参考信息之类的信息。分发可以通过(举例来说)物理介质传递、广播和/或电信手段进行,并且可以采用“静态”文件和/或数据流的形式进行。VDE也可以用于(举例来说)诸如电话会议、交互式游戏或联机公告版之类的多站点“实时”交互作用,在上述活动中实施了对全部或部分被传送信息的使用限制和/或审核。

VDE为强制执行商业协定和支持隐私权保护提供了重要机制。VDE可以安全地将信息从一个参与者传递给另一个关心商业分发的电子信息内容使用的参与者。即使各个参与者被上述信息内容使用信息的处理链(路径)中的若干“步”分开,这些信息也可以由VDE通过加密和/或其他安全处理手段来保护。由于这种保护,VDE可以保证这些信息的准确性,并且这些信息可以被它们送达的所有参与者所信任。而且,VDE保证所有的参与者都可以相信:这些信息不会被除预期的、经过授权的参与者之外的其他任何人所接收,因为这些信息经过了加密,因此只有授权的参与者或其代理可以将它解密。这些信息也可以通过在一个以前的处理路径地点中执行一个安全的VDE进程得出,以产生安全的VDE汇报信息,然后该汇报信息被安全地传送给其预期接收方的VDE安全子系统。由于VDE可以安全地传递这些信息,电子协定的参与者不必相信通过除经过VDE控制的装置之外的其他装置传递的商业使用信息和/或其他信息的准确性。

商业价值链中的VDE参与者可以“从商业角度”确信(即:为商业目的充分相信)他们通过使用VDE而达成的直接(构成的)和/或“扩展”的电子协定可以得到可靠地强制实施。这些协定可以带有“动态”的、涉及交易管理的方面—例如通过电子信息和/或设备使用情况的预算、计量、和/或汇报而强制执行的信息内容使用控制信息,并且/或者这些信息可以包含“静态”的电子声明,例如最终用户使用该系统来声明他或她同意为服务付费、不会把从信息内容或系统使用情况中得到的电子信息传递给未经授权的参与者,并且/或者该最终用户同意遵守版权法。在本发明控制下,不仅采用电子手段汇报的、涉及交易的信息是可信的,而且通过沿付款路径(该路径与汇报路径可以是同一条,也可以不是同一条)传递付款代价券可以自动地执行付款。付款可以包含在VDE装置为响应控制信息(在较佳实施例中,这些控制信息位于一个或多个许可记录中)而自动创建的一个VDE容器中,这些控制信息规定了根据(例如政府、财务信用提供者以及用户)对VDE控制的电子信息内容和/或设备的使用从电子帐户(例如,由用户的VDE装置安全子系统安全维护的帐户)中“提取”信用或电子货币(例如代价券)的方式。

VDE允许电子商业参与者的需要得到服务,并且它可以将这些参与者合并在一个普遍范围的、可信的商业网络中,该商业网络可以充分安全地支持数量庞大的商业活动。VDE的安全性和计量安全子系统核心将出现在有关VDE的信息内容(1)是被分配了涉及使用的控制信息(规则和协调数据)的所有物理地点以及/或者(2)被使用的所有物理地点。该核心可以在“虚拟黑盒子”中执行安全性和审核功能(包括计量),“虚拟黑盒子”是一批分布的、十分安全的涉及VDE的硬件实例,这些硬件实例被受到安全保护的信息交换(例如电信)进程和分布式数据库装置互连在一起。VDE还含有高度可配置的交易操作系统技术、加载模块的一个或多个相关的库以及附属数据、与VDE有关的管理、数据准备、和分析应用,以及经过设计用来允许将VDE集成进宿主环境和设备中的系统软件。VDE的使用控制信息(举例来说)提供与有所有权的信息内容和/或设备相关的:使用授权、使用审核(可以包括审核压缩)、使用计帐、使用付款、隐私过滤、汇报、以及涉及安全性的通信和加密技术。

VDE广泛地使用软件对象形式的各种方法来提高VDE环境的可配置性、可移植性和安全性。它还对携带受保护的信息内容并且还可以既携带可自由得到的信息(如概要、目录)、也可以携带用来确保控制信息性能的受保护信息内容控制信息的VDE信息内容容器使用软件对象体系结构。信息内容控制信息依照由对象的信息内容的权利持有者和/或拥有与分发该信息内容相关联的权利的参与者(如政府、财务信用提供者、和用户)制定的标准来管理信息内容的使用。

本发明所使用的对象方法部分地加强了安全性,因为用来保护对象的加密方案可以有效地进一步用来保护相关的信息内容控制信息(软件控制信息和相关数据)不被修改。所述的对象技术还可以提高不同计算机和/或其它设备环境之间的可移植性,因为信息内容形式的电子信息可以与(用于所述信息内容的)信息内容控制信息嵌入在一起(例如,嵌入到与该信息内容控制信息相同的对象容器中),从而产生一个“公布的”对象。于是,所述控制信息的不同部分可以专用于不同的环境,例如专用于多种计算机平台和操作系统,并且所述不同的部分可以全部由一个VDE容器携带。

VDE的一个目标是支持交易/分发控制标准。在安全性要求和相关硬件和通信问题、种类繁多的环境、信息的类型、信息的使用类型、业务和/或数据安全性目标、参与者的多样性、以及被传递信息的特性的条件下,该标准的开发将遇到许多障碍。VDE的显著特性支持了上述多种的、变化的分发和其他交易变量,其方式是:部分地将电子商业和数据安全性功能分解为安全硬件SPU和/或对应的软件子系统中可执行的通用功能模块,并进一步允许运行于VDE装置基础之上的应用在装配、修改和/或替换上述模块方面具有广泛的灵活性。这种可配置性和可再配置性允许电子商业和数据安全性参与者通过对逐渐演变的扩展电子协定(电子控制模型)进行反复加工的进程来反映他们的优先级和要求。该加工可以在信息内容控制信息从一个VDE参与者传递给另一个的时候进行,并且要在“已就位”信息内容控制信息所允许的限度内进行。该进程允许VDE的用户改造现有的控制信息,并且/或者添加必要的新控制信息(包括删除不再需要的元素)。

VDE对商业电子信息内容分发和数据安全性应用两者都支持可信的(足够安全的)电子信息分发和使用控制模型。可以对VDE进行配置以便满足互相间联成网络的参与者的多样化要求,这些参与者可以包括信息内容制作者、信息内容分发者、客户管理员、最终用户、以及/或者票据交换所和/或其他信息内容使用信息的用户。这些参与者可以构成参与到从简单的到复杂的电子信息内容传播、使用控制、使用汇报、和/或使用付款过程中的联网参与者。被传播的信息内容既可以包括被原始提供的信息,也可以包括由VDE产生的信息(例如信息内容使用信息),并且信息内容控制信息可以在通过信息内容和信息内容控制信息处理链(一条或多条路径)以及对信息内容的直接使用过程中持续不变。本发明提供的可配置性对于支持电子商业特别关键,即:它允许各行业建立关系和演变策略,以产生有竞争力的价值。不具有内在可配置性和可互相协作性的电子商业工具最终将不能制造出既满足大多数商业应用的基本要求,又满足其不断演变的要求的产品(和服务)。

VDE基本的可配置性将允许广泛的、具有竞争力的电子商业业务模型纷繁多样地出现。它允许业务模型经过塑造以使收入源、最终用户产品价值、以及操作效率最大化。VDE可以用来支持多种不同的模型、利用新的收入机会、并把用户最希望得到的产品配置交付给用户。不能够:

!支持广泛的、可能的、补充的收入活动

!提供消费者最理想的灵活的信息内容使用特性集合,以及

!开发提高操作效率的机会

的电子商业技术(而本发明则支持上述功能)将导致其产品常常固有地较为昂贵而对消费者的吸引力较差,因此在市场中的竞争力较差。

对本发明内在的可配置性具有帮助的某些关键因素包括:

(a)利用可移植的API和编程语言工具集成进广泛电子设备的基本控制环境。这些API和编程语言工具能够有效地支持在几乎任意的电子设备环境中合并控制和审核功能,同时维护整体系统安全性;

(b)模块化数据结构;

(c)广义信息内容模型;

(d)基础体系结构部件的一般模块性和独立性;

(e)模块化安全结构;

(d)可变长度的和带有多个分支的处理链;以及

(e)可执行加载模块形式的、独立的、模块化的控制结构,这些加载模块可以维护于一个或多个库中,并且可以被装配进控制方法和模型中,其中,该模型控制方案可以在控制信息通过VDE信息内容控制信息处理路径中的参与者的VDE装置时发生“演变”。

由于本发明所解决问题的广度,本发明可以向正在出现的“电子高速公路”提供单一的交易/分发控制系统,对于十分广泛的商业和数据安全性模型而言,该交易/分发控制系统可以防止对机密的和/或有所有权的信息和商业电子交易的未授权使用。VDE的电子交易管理机制可以强制执行参与到种类多样的业务和数据安全性模型中的所有参与者的电子权利和协定,并且通过在每个VDE参与者的电子设备中实现单个VDE就可以有效地实现上述功能。VDE支持广泛的、在VDE信息内容和/或信息内容控制信息处理路径的各个“级别”中可以包含广泛的参与者的不断变化的业务和/或数据安全性模型。不同的信息内容控制和/或审核模型以及协定可以在同一VDE装置中获得。这些模型和协定控制的信息内容可以与(举例来说)一般的VDE装置和/或用户、某些特定用户、装置、种类和/或装置和/或用户的其他分类相关,并且可以与通常在给定装置中的电子信息内容相关,以及与信息内容的特定有产权产品、有产权产品的部分、种类和/或其他分类相关。

使用VDE的分发可以把电子信息内容和控制信息两者均包装到同一容器中,并且/或者可以包括将位于大量不同的远程地点中的和/或位于大量独立的VDE信息内容容器中的和/或使用大量独立的传递装置的同一VDE管理的有产权产品的不同部分传递给最终用户的站点。信息内容控制信息可以放在一个或多个VDE管理对象中,部分地或全部地与其相关信息内容分开传递到用户VDE装置。所述控制信息的部分可以从一个或多个的源传递出去。通过从用户的VDE装置安全子系统对一个或多个远程VDE安全子系统和/或VDE兼容的、经过验证的安全远程地点的访问也可以得到控制信息以供使用。诸如计量、预算、解密和/或加入指纹等与用户的特定信息内容使用活动相关的VDE控制进程可以在用户本地的VDE装置安全子系统中执行。或者所述的进程可以被划分到大量的安全子系统中,这些安全子系统可以位于同一用户VDE装置中,以及/或者位于网络服务器及用户装置中。例如,一个本地VDE装置可以执行解密,并保存任意或所有与信息内容使用相关的使用计量信息,与/或在这一用户装置上的电子设备使用可采用所述安全子系统之间的安全(如加密)通信而在服务器上执行。所述服务器地点也可以用于近似实时地、频繁地、更为周期性地安全接收来自所述用户装置的信息内容使用信息,而(举例来说)计量得到的信息只是暂时地保存在本地的用户装置中。

对VDE管理的信息内容的传递手段可包括诸如光盘之类的、用于传递所述信息的一部分的电子数据存贮手段以及用来传递所述信息的其他部分的广播和/或远程通信手段。电子数据存贮装置可包括磁介质、光介质、组合的磁光系统、快速RAM存贮器、磁泡存贮器、以及/或者其他存贮手段—例如使用全息、频率和/或极性数据存贮技术的大容量光存贮系统。数据存贮手段也可以使用分层盘片技术,例如使用大体透明和/或半透明的材料,这些材料使光线透过带有数据的盘片层,而这些盘片本身被物理地包装在一起形成一个厚盘片。这些盘片中带有数据的位置可以是至少部分地不透光的。

VDE支持通用的基础用于安全的交易管理,包括使用控制、审核、汇报和/或付款。这些通用的基础称为“VDE功能”(“VDEF”)。VDE还支持一批“原子”应用元素(如加载模块),这些“原子”应用元素可以被有选择地聚合在一起以形成称为控制方法的各种VDEF功能,这些VDEF功能用作VDEF应用和操作系统功能。当一个电子设备的宿主操作环境包含了VDEF功能的时候,该操作环境称为“权利操作系统”(ROS)。VDEF加载模块、相关数据以及方法构成了一个信息体,该信息体相对于本发明中的用途被称为“控制信息”。VDEF控制信息可以特别地与一个或多个电子信息内容相关联,并且/或者它可以用来作为VDE装置的操作系统功能的一个通用部件。

VDEF交易控制元素反映和制定了特定于信息内容的和/或更为通用化的(例如,一般操作系统的)控制信息。VDE参与者可通过使用诸如VDE模板将通常采取或多或少可配置的应用(应用模型)的形式的VDEF功能进行加工以实现特定的功能,这些特定的功能带有功能参数数据,来反映VDE参与者之间关于使用诸如作为商品分发的产品的一个或多个明确电子协议的元素。这些控制功能管理对电子信息内容的使用和/或审核,以及根据信息内容的使用以及对所述的使用进行的任意偿付汇报有关信息。VDEF功能可“演变”以反映接收或提供给定的控制信息组的一个或多个相继的参与者的要求。对于给定信息内容模型的VDE应用(例如采用CD-ROM分发娱乐产品、从Internet存放库中传递信息内容、或电子目录购物及广告、或上述活动的某些结合),参与者通常将能够安全地从可用的、可选的控制方法中作出选择,并应用相关的参数数据。其中,这种对控制方法的选择和/或对数据的提交将构成他们对控制信息的“贡献”。作为选择或补充,某些已经被明确地验证为可以与所述应用安全地互相协作和兼容的控制方法可以被操作员作为上述贡献的一部分独立地提交出来。在最普通的例子中,一个通常经过验证的(经过验证可以用于给定的VDE管理和/或信息内容类别的)加载模块可以由许多或任意的运行于所述方案的节点中的VDE应用使用。这些参与者在他们被允许的限度之内可以独立地和安全地添加、删除和/或修改加载模块和方法的详细说明,并添加、删除或修改相关的信息。

通常,创建VDE信息内容容器的参与者规定将要和/或可能应用到某些电子信息上的VDEF功能的一般特性。一个VDE信息内容容器是一个对象,它既包含信息内容(例如,诸如计算机软件程序、电影、电子出版物或参考材料之类的商业分发的电子信息产品、等等),又包含与该对象的使用相关的某些控制信息。创建的一方可以使一个VDE容器对其他方可用。由VDE信息内容容器传递的控制信息,或者与VDE信息内容容器结合使用的可用控制信息(为商业信息内容分发目的)构成了电子信息内容的VDEF控制功能(以及任何相关的参数数据)。这些功能可以构成一个或多个“被提议”的电子协定(以及/或者可供选择和/或与参数数据一起使用的协定功能),这些电子协定管理对上述信息内容的使用和/或使用结果,并且可以制定涉及多方的协定的条款和条件、以及他们各自不同的权利和义务。

借助于由一个或多个参与者—例如由一个从“上级”参与者收到控制信息的“下级”参与者—所接受的用户接口,VDE电子协定可以是明确的;或者它可以是单独声明其协定的各平等参与者之间的一个进程。协定也可以从一个自动化的电子进程得出,在该进程中,特定的VDE参与者控制信息对条款和条件进行“评估”,这些控制信息评估某些与信息内容相关联的和/或由其他参与者提交的其他电子条款和条件是否是可接受的(没有与可接受的控制信息标准冲突)。这种评估进程可以相当简单,例如它可以是一个比较过程,用来确保条款和条件表中的部分或所有上级控制条款和条件与信息内容控制信息处理路径中的后续参与者所提交的控制信息之间存在兼容性,或者该进程可以是一个更为精细的进程,它评估由两个或多个参与者提交的两个或多个控制信息集合的可能结果,并且/或者在这些控制信息集合之间执行一个协商进程。VDE还支持半自动化的进程,在该进程中,一个或多个VDE参与者借助用户接口通过接受和/或提议对特定控制信息来说是可接受的某些控制信息直接解决控制信息集合之间的“争端”,所述特定控制信息代表一个或多个其他团体的利益和/或对通过特定用户接口进行查询以便在某些替代选项和/或某些参数信息中作出选择的响应,如果对适用的上级控制信息来说是可接受的话,上述响应将被采纳。

当另一个参与者(而不是规则的第一个应用者)可能通过一个协商进程接受、和/或添加、和/或修改“已就位”的信息内容控制信息时,在两方或多方之间的、涉及对该电子信息内容使用的一个VDE协定可被创建出来(只要任何修改符合上级控制信息)。对涉及某些电子信息内容的条款和条件的接受可以是直接的和明确的,或者也可以作为对信息内容的使用结果而采用隐含的形式(取决于(举例来说)法律要求、以前对上述条款和条件的暴露、以及就位控制信息的要求)。

VDEF功能可以被大量的参与者使用,VDE协议可以由大量的参与者达成,而这些VDEF功能不必直接与对某些特定电子信息的控制相关联。例如,特定的一个或多个VDEF功能可以出现在某个VDE装置中,而特定的VDE协定可以在为某个信息内容分发应用进行注册的进程中达成,该协定由上述装置使用以便安全地控制VDE信息内容使用、审核、汇报和/或付款。类似地,当某个特定的用户和/或其设备向某个VDE信息内容或电子设备提供者注册以便成为一个VDE装置和/或用户的时候,该特定参与者可以与该提供者达成一个VDE用户协定。在这种情况下,可供用户VDE装置使用的VDEF就位控制信息可以要求(举例来说)在某些序列中要使用某些VDEF方法,以便能够使用所有和/或某些类型的电子信息内容和/或VDE应用。

VDE确保进行给定交易所需的某些前提条件得到满足。这包括安全地执行所要求的任何加载模块以及使所要求的任何相关数据成为可用。例如(如以某个方法的形式的)所要求的加载模块和数据可能规定:必须确认来自一个授权来源的充足信用可供使用。它可能进一步要求特定的一个或多个加载模块在适当的时刻以多个进程的形式执行,以确保为了偿付对上述信息内容的使用而使用上述信用。某个信息内容提供者可能(举例来说)要求计量被制作出来供分发给雇员的给定软件程序拷贝的数目(该程序的一部分可以采用加密的形式被维护起来,并要求VDE装置的存在来运行)。这将要求在每次为另一个雇员制作一个拷贝时,需要为该有所有权的产品的拷贝执行一个计量方法。同一提供者还可以根据用户从他们那里取得使用许可的不同有所有权的产品的总数收取费用,并且要求使用他们获取有所有权的产品使用许可的计量历史以维护上述信息。

VDE提供了组织范围、团体范围、和/或普遍范围的安全环境,该安全环境的完整性由安全地受控于VDE参与者用户装置(节点)中的进程所确保。较佳实施例中的VDE装置可以含有软件的和防破坏硬件半导体元件两者。这种半导体方案至少部分地含有设计成可以保护执行VDE控制功能所用的信息和功能、使之免受破坏或被未经授权的观测的专用电路。本发明提供的专用安全电路含有至少一个:称为安全处理部件(SPU)的专用的半导体配置和/或一个标准的微处理器、微控制器、以及/或者支持本发明的要求并且可起到SPU那样的作用的其他处理逻辑。VDE的安全硬件可以安装在(举例来说):传真/调制解调器芯片或芯片封装中、I/O控制器中、视频显示控制器中、以及/或者其他可用的数字处理配置中。预计本发明的VDE安全硬件功能的多个部分最终会成为计算机和各种其他电子设备的中央处理单元(CPU)的标准设计元件。

将VDE功能设计到一个或多个标准的微处理器、微控制器、以及/或者其他数字处理部件中,通过对本发明所预期的交易管理用途以及其他的宿主电子设备功能都使用相同的硬件资源,可以从实质上降低涉及VDE的硬件成本。这意味着VDE SPU可以使用(共享)“标准”CPU的电路元件。例如,如果一个“标准”的CPU可以运行于保护模式,并且作为受保护的活动可以执行有关VDE的指令,那么这种实施例可以向各种应用提供充分的硬件安全性,同时专用处理器的花费也将省去。在本发明的一个较佳实施例的控制下,当在(例如由保护模式微处理器支持的)保护模式下执行有关VDE的指令的时候,某些存贮器(如RAM、ROM、NVRAM)得到维护。这些存贮器与处理逻辑(如处理器)位于同一封装中。最好,该处理器的封装和存贮器采用可增强其防破坏能力的安全性技术进行设计。

VDE系统的整体安全性的程度主要取决于VDE控制进程执行和相关数据存贮活动的防破坏程度和隐蔽程度。使用专用半导体封装技术可以显著地有助于提高安全性的程度。通过在一个SPU封装中使用半导体存贮器(如RAM、ROM、NVRAM)、通过在将数据送入外部存贮器(如外部RAM封装)之前首先加密数据,并且首先解密CPU/RAM封装中被加密的数据然后才执行该数据,可以部分地实现上述半导体存贮器中的隐蔽和防破坏。当某些重要的有关VDE的数据存放在未经保护的媒介上时,例如保存在诸如随机访问存贮器、大容量存贮器、等之类的标准宿主存贮器中时,可以使用上述的进程。在这种情况下,VDESPU在把安全VDE执行的结果存放到外部存贮器之前首先对这些数据进行加密。

按照本发明的VDE所提供的某些重要特性的综述

VDE使用了作为一般用途的基础并向分布式电子商业方案提供充分的安全保护的多种功能。VDE实现了支持发散的、有竞争力的业务伙伴关系、协定、以及不断演变的整体业务模型的电子商业市场。例如,VDE具有如下特性:

!通过使用安全的通信、存贮和交易管理技术,“充分”地阻止对电子信息和/或设备的未授权和/或无偿使用。VDE支持一个模型范围内的、创建了单一安全“虚拟”交易处理和信息存贮环境的、分布式安全性实现。VDE允许分布式VDE装置安全地存贮和传送信息,并远程地控制执行进程以及在其他VDE装置中采用多种方式对电子信息进行的使用的特征。

!支持用于交易控制、审核、汇报、以及相关通信和信息存贮的、低成本、高效率以及有效的安全性体系结构。VDE可以使用涉及标记的安全性技术;解密密钥的时间衰老技术;对被存贮的控制信息(包括对该被存贮的信息进行有差别地标记以防止替换和破坏)和分发的信息内容两者都实行的隔离技术(以便对于许多信息内容应用使用一个或多个唯一于特定VDE装置和/或用户的信息内容加密密钥);诸如三重DES之类的用于加密信息内容的私有密钥技术;诸如RSA之类的公开密钥技术—用来保护通信,并提供数字签名和鉴别的诸多优点以便将VDE配置中的节点安全地结合在一起;对重要交易管理可执行码的安全处理;将少量的、高度安全的、受硬件保护的存贮器空间与大得多的、“暴露的”、用来安全地存放(通常为加密的和加标记的)控制和审核信息的大容量介质存贮器空间结合在一起;VDE使用了分布在VDE实现方案中的某些或所有地点的专用硬件:a)所述硬件控制下列的重要元素:信息内容的准备(例如使该信息内容被放入一个VDE信息内容容器中,并使信息内容控制信息与该信息内容相关联)、信息内容和/或电子设备使用审核、信息内容使用分析、以及信息内容使用控制;b)所述硬件已经被设计为安全地处理加载模块控制活动,其中所述控制处理活动可以包括所要求的控制因素的一个序列。

!支持对VDE电子信息产品(受VDE控制的信息内容)的信息子集的动态用户选择。该特性与下列的限制相反,这些限制是:必须使用几个高层的、独立的、预定义的信息内容提供者信息增量,例如,必须选择整个信息产品或产品段以便获取或使用该产品或段的部分。VDE支持对各种增量(包括“原子的”增量、以及不同增量类型的组合)的计量和使用控制,这些增量由用户特别选择出来,它们代表一批预标识的一个或多个增量(诸如预定义特性的一个或多个块,这些预定义特性的例子包括:字节、图像、逻辑相关的块),这些预标识的增量构成了通常为任意的、但对于用户来说是逻辑的、“可传递”的信息内容。VDE控制信息(包括预算、定价、以及计量信息)可以被配置,以便它可以适当地专门应用于信息增量的不同的、变幻莫测的用户选择集合的特别选择,并且,价格标准可以至少部分地根据混合增量选择的数量和/或特性来制定(例如,特定数量的特定正文可意味着相关的图像可以折扣15%;“混合”增量选择中的更大数量的正文可意味着该图像被折扣20%)。所述用户选择的聚合信息增量可以反映用户对信息的实际要求,并且比限制为单一的、或几种更高层次的(如产品、文件、数据库记录)预定增量要更为灵活。所述高层次增量可能含有用户不希望的大量信息,于是比用户所需要的信息子集(如果可以得到该子集的话)更为昂贵。总而言之,本发明允许包含在电子信息产品中的信息按照用户的规定提供。进行剪裁以适应用户的规定允许本发明向用户提供最大的价值,而这样做又产生了最大数量的电子商业活动。用户(举例来说)将能够定义从一个可用信息内容产品的不同部分得到的信息内容的一个聚集,但作为供用户使用的可传递物,所述信息内容聚焦是完全唯一的被聚焦增量。用户可以(举例来说)从一个诸如参考文献之类的信息产品中的不同部分中选择特定数量字节的信息,将这些信息以未加密的形式拷贝到盘上,并且按照全部数量的字节加上对提供这些字节的“文章”的数量的附加计费而接受计帐。信息内容提供者可能适当地对这种用户定义的信息增量收取较少的费用,因为用户没有要求来自含有所需信息的所有文章的所有信息内容。这种定义用户所需信息增量的进程可能涉及人工智能数据库搜索工具,这种工具有助于从一个信息产品中定位信息的最相关部分,并使得描述搜索条件命中的信息被自动显示给用户,以便用户进行选择或自动抽取,以及将上述部分传递给用户。VDE还支持种类繁多的预定义增量类型,包括:

!字节,

!图像,

!对应于声音或视频的一段时间之内的信息内容,或任何可以由信息内容提供者数据映射方法标识的其他增量,例如:

!句子,

!段落,

!文章,

!数据库记录,以及

!代表逻辑相关信息增量的字节偏移量。

对于任何同时存在的预定义增量类型来说,只要对于给定类型的信息内容和业务模型是现实的,都将得到VDE的支持。

!在用户的站点安全地存放反映多种不同信息内容段类型的用户使用的可能非常详细的信息,并在廉价的、“暴露的”宿主大容量存贮器中以加密数据的形式维护详细信息,同时在高度安全的专用VDE装置非易失性存贮器(如果该类型存贮器可用的话)中维护概要信息供安全性测试用。

!支持用于被分发的电子信息的路径和/或与信息内容使用相关的信息的可信处理链功能。该链可以(举例来说)从信息内容制作者延伸到分发者、再分发者、客户用户,并且可以提供一条路径,以供把相同的和/或不同使用信息安全地汇报给诸如一个或多个独立票据交换所之类的一个或多个审核者,然后把这些信息送回包括信息内容制作者在内的信息内容提供者。用于特定信息内容处理以及相关信息内容控制信息和汇报信息处理的相同和/或不同路径也可以用作用来对电子信息内容和/或设备使用进行电子付款处理(本发明中的付款以管理信息内容为其特征)的一条或多条路径。这些路径用来输送所有或部分信息内容和/或与信息内容相关的控制信息。信息内容制作者以及其他提供者可以规定必须部分或完全用来传播采用商业方式分发的有所有权的信息内容、信息内容控制信息、付款管理信息内容、以及/或者相关使用汇报信息的路径。由信息内容提供者规定的控制信息也可以规定哪些特定的参与者必须或可以(包括(举例来说)可以从中作出选择的一组合格参与者)处理被输送的信息。它还可以规定必须或可以使用何种传送装置(例如电信载波或介质类型)以及传输集线器(hub)。

!支持灵活的审核机制,例如使用“位图计量器”,这可以带来高效的运行和吞吐率,并允许采用可行方式对涉及以前的使用活动和相关模式的信息进行保存和迅速取回。这种灵活性适用于种类多样的计帐和安全性控制策略,例如:

!提高价格(例如成套购买)

!价格折扣(包括数量折扣)

!与计帐相关的时间段变量,例如根据以往购货的计时对新的购货活动进行折扣

!根据经过一段时间段使用的电子信息的不同的、逻辑相关的单元的数量的安全性预算

使用位图计量器(包括“常规”和“宽”位图计量器)记录对信息的使用和/或购买,同时结合本发明的较佳实施例中的其他元素,能够唯一地支持对使用历史的有效维护,这些使用历史涉及:(a)租借,(b)固定费用的许可使用或购买,(c)根据历史使用变量的许可使用或购买折扣,(d)向用户所做的汇报,汇报方式的特点是:允许用户确定某一特定条目是否被获取,或者在特定的时间段内被获取(不需要使用对于这些应用来说极为低效的传统数据库机制)。位图计量器方法记录某些活动,这些活动涉及电子设备、所有物、对象、或它们的部分、和/或独立于特定所有物、对象等的管理活动,这些活动由用户和/或电子设备执行,这样信息内容和/或设备的提供者和/或管理活动的控制者可以判断在过去的某些时刻或某段时间内是否发生了某个活动(例如对商业电子信息内容产品和/或设备的某种使用)。此后,这种判断可以用作信息内容和/或设备的提供者和/或管理活动的控制者的定价和/或控制策略的一部分。例如,信息内容提供者可以决定对访问某一所有物的一部分只收费一次,而不管用户对该有产权物的那一部分访问了多少次。

!支持“可发布的”信息内容,也就是说,该信息内容可以由一个信息内容提供者提供给一个最终用户,然后该最终用户拷贝该信息内容,并将它传递给其他的最终用户方,而不必要求信息内容提供者直接参与进来以注册和/或初始化该信息内容供后续使用。该信息内容以“移动对象”的形式在“(传统分发)通道外”传送。移动对象是安全地携带至少某些许可信息和/或使用这些对象所要求的方法(如果所要求的方法将在或可以直接对目的地VDE装置中可用的话,那么这些方法无须由移动对象携带)的容器。某些移动对象可以在给定VDE配置中的某些或所有VDE装置中使用,因为它们可以使信息内容使用活动所需的信息内容控制信息成为可用信息,而不必要求商业VDE价值链参与者或数据安全性管理员(例如一个控制官员或网络管理员)参与进来。只要用户VDE装置安全子系统中有移动对象控制信息要求(例如具有从授权信用提供者得到的足量财务信用),那么接收方团体可以无须与一个远程VDE授权机构建立连接(直到预算被用光,或信息内容使用报告时间已到),就可以使用至少某些移动对象信息内容。移动对象可以在“通道外”移动,这种方式允许(举例来说)用户将其中的内容为一个软件程序、电影或游戏的移动对象的拷贝送给邻居,而该邻居如果能够得到适当的信用(例如在诸如VISA或AT&T之类的票据交换所开立的电子票据交换所帐户)的话便可以使用该移动对象。类似地,通常可以从Internet或类似网络的存放库中得到的电子信息也可以以移动对象的形式提供出来,该移动对象可以被一个初始下载者下载并接着对之进行拷贝,然后由他传递给其他参与者,而这些参与者又把该对象传给另外的参与者。

!根据个人和装置、用诸如类别之类的分类、以及用功能和使用客户标识级别层次的层次性标识(例如客户组织ID、客户部门ID、客户网络ID、客户项目ID、以及客户雇员ID、或上述ID的任意适当子集)而提供了十分灵活和可扩展的用户标识。

!提供了通用的、安全的、基于部件的信息内容控制和分发系统,该系统起基础交易操作系统环境的作用,该基础交易操作系统环境使用了经过精心编制用于交易控制和审核的可执行码段。这些码段可以被重用以便优化可信的、分布式交易管理方案的创建和运行过程中的效率。VDE支持以“原子”加载模块和相关数据的形式提供该可执行码。许多这种加载模块固有地是可配置的、可聚合的、可移植的、以及可扩展,并且可以在VDE交易管理操作环境中作为控制方法单独地或结合(相关数据)地运行。通过部分地使用上述通用交易管理基础来安全地处理与VDE交易相关的控制方法,VDE可以满足种类繁多的电子商业和数据安全性应用的要求。控制方法主要通过使用一个或多个所述可执行的、可重用的加载模块代码段(通常处于可执行目标部件的形式)以及相关数据来创建。控制方法的部件特性允许本发明作为一个高度可配置的信息内容控制系统而有效地运行。在本发明的控制下,信息内容控制模型可以在一定限度内被反复地和异步地加工,或者被更新以便满足VDE参与者的需求,所述的限度是:上述加工和更新活动要遵守由VDE应用施加的限制—如果有这些限制的话,例如,是否新的部件组是可以接受的,如果是的话,对于该部件组存在哪些验证要求,或者是否任意的或特定的参与者可以通过从可选的控制信息(许可记录)控制方法中进行选择而加工任意的或特定的控制信息。上述反复的(或并发的)多个参与者进程将作为安全控制信息部件(诸如加载模块和/或方法之类的可执行码和/或相关数据)的提交和使用的结果而发生。这些部件可以通过对控制信息产生影响的每个VDE参与者VDE装置之间的安全通信被独立地提供出来,并且可能要求验证以便给定应用对它们进行使用,其中,这种验征由一个管理VDE配置的验证服务管理者提供,该管理者确保设备和被提交控制方法之间安全的可互相协作性以及/或者可靠性(如交互作用所引起的错误(bug)控制)。VDE电子设备交易操作环境的交易管理控制功能与非安全交易管理操作系统功能交互作用,以正确地控制与电子信息安全性、使用控制、审核和使用汇报有关的交易进程和数据。VDE提供这种功能以管理涉及安全VDE信息内容和/或设备控制信息执行和数据存贮的资源。

!便利在VDE中对应用和/或系统功能的创建,并便利将按照本发明所创建的加载模块和方法向电子设备环境的集成。为了实现该功能,VDE使用了一个应用程序员接口(API)和/或一个带有内置功能的交易操作系统(例如ROS)编程语言,上述两者都支持对功能的使用,并可以用来有效地和紧密地将VDE功能集成进商业和用户应用中。

!支持用户交互作用,这个功能借助了:(a)“弹出式”应用,该应用(举例来说)向用户提供消息,并允许用户采取诸如同意某个交易之类的特定动作;(b)独立VDE应用,该应用向用户活动提供管理环境,所述用户活动的例子包括对下列活动进行规定的最终用户优选规定说明:限制每次交易、每单位时间、和/或每次会话的价格,访问有关以前交易的历史信息、审查诸如预算、费用之类的(例如详细的和/或概要的)财务信息以及使用分析信息;以及(c)VDE感知型应用,这些应用作为使用了VDE API和/或交易管理(例如基于ROS的)编程语言的结果把对VDE的“感知”嵌入到商业或内部软件(应用程序、游戏、等等)中,以便VDE用户控制信息和服务可以被无缝地集成到这些软件中,并且可以被用户直接访问,因为底层功能已经被集成进商业软件本来的设计中。例如,在一个VDE感知型字处理器应用中,用户可以将一个文件“打印”到一个VDE信息内容容器对象中,在此过程中,该用户通过从一系列适用于不同用途的不同菜单模板(例如,一个用于组织内部用途的机密的备忘录模板可以将功能限制为“保存”,即制作该备忘录的电子拷贝)中进行选择而应用特定的控制信息。

!使用“模板”来简化对本发明中涉及特定产业或商业的配置功能的进程。模板是本发明下的应用或应用后加部分。模板支持对涉及特定信息内容类型、分发方法、定价机制、用户与信息内容和/或管理活动之间的交互作用、以及/或者诸如此类等等的标准进行有效的规定和/或操作。在本发明所支持的范围广阔的功能和配置的前提下,将配置的可能范围减小到适用于给定业务模型的可管理子集的范围内允许“典型”用户容易地使用本发明的全面可配置能力,否则这些用户将负担复杂的编程和/或配置设计责任。模板应用还可以通过减少与提供独立开发加载模块相关的风险一包括独立模块和应用之间的代码交互作用的不可预测方面,以及减少涉及在这些模块中可能出现病毒的安全性风险,从而确保与VDE有关的进程是安全的并且是最优地无错的。通过使用模板,VDE将典型用户的配置责任减少到适当集中的一系列活动,包括通过菜单选项选择方法类型(如功能),这些菜单选项的例子包括:多重选择、图符选择、和/或对方法参数数据的提示(例如标识信息、价格、预算限制、日期、时间段、对特定信息内容的访问权利、等等),上述菜单选项为控制信息的目的提供了适当的和/或必要的数据。通过将典型(非编程)用户的活动限制到一般配置环境(模板)已经经过预置成反映了对应于该用户、某个信息内容或其他业务模型的一般性要求的配置活动的一个有限子集中,可以非常实际地限制涉及信息内容容器化(包括在信息内容上加入初始控制信息)、分发、客户管理、电子协定实现、最终用户交互作用、以及票据交换所活动—包括相关的互相协作问题(例如由安全性、操作系统、和/或验证的不兼容性所产生的冲突)—的困难。使用适当的VDE模板可以向用户保证:他们的有关信息内容的VDE容器化、提供其他控制信息、通信、加密技术和/或密钥、等等活动将遵从他们的分布式VDE配置的规范。VDE模板构成了预置的配置,配置通常可以是可重新配置的,以便允许产生新的和/或被修改的模板,这些模板在演变的过程中反映出对新产业的适应性,或者反映出一个现有产业的演变或其他变化。例如,模板的概念可以用来将独立的、全面的框架提供给某些组织和个人,这些组织和个人创建、修改、销售、分发、消费、和/或使用电影、声音录制品和实况表演、杂志、基于电话的零售、目录、计算机软件、信息数据库、多媒体、商业通信、广告、市场调查、通知、游戏、向数控机床提供的CAD/CAM服务、等等诸如此类。在围绕上述模板的上下文变化或演变的时候,按照本发明所提供模板应用可以被修改,以满足上述变化,从而适应更大范围的应用,或适应更集中的活动。一个给定VDE参与者可以带有大量可用的、适用于不同任务的模板。将信息内容放入其初始VDE容器的参与者可以按照与该信息内容相关的信息内容和/或业务模型的类型的不同而带有多种不同的、可配置的模板。一个最终用户可以带有不同的、可配置的模板,这些模板可以适用于不同的文件类型(电子邮件、保密内部文件、数据库记录、等等)和/或用户的子集(将控制信息的不同的一般集合应用到用户的不同群体,例如,选择一系列可以按照某种预定的准则使用某个文件的用户)。当然,在某些情况下,模板可以带有固定的控制信息并且不向用户提供选项或参数数据项。

!支持大量的、不同的、控制对电子信息内容的同一特定拷贝的使用和/或审核、以及/或者区分地控制对同一电子信息内容的不同拷贝(出现)的使用和/或审核的控制模型。用于计帐、审核、和安全性的不同模型可以被应用到同一电子信息内容,并且上述不同的控制信息集合可以为控制的目的使用相同的或不同的电子信息控制增量粒度。这包括对于预算和审核使用支持可变的、适用于多种预定义的电子信息增量的控制信息,包括对于给定电子信息使用多种不同的预算和/或计量增量,可以传递上述给定信息用于计帐的度量单位、信用限制、安全性预算限制和安全性信息内容计量增量、以及/或者市场调查和消费者描述的信息内容计量增量。例如,对于一个带有科学文章数据库的CD-ROM光盘,可以部分地按照基于解密字节的数目、含有所述解密字节的文章的数目的一个公式对之进行计帐,同时安全预算可能把对该数据库的使用限制为该数据库安装所在的广域网中的每个用户每月对该数据库的使用不超过数据库的5%。

!提供机制以便通过充分安全的信息内容和信息内容控制信息处理链并通过对该信息内容的各种形式的使用而持续地维护可信的信息内容使用和/或汇报控制信息,其中所述的控制持续性可以在上述使用中一直保持。控制的持续性包括从一个VDE容器对象中抽取信息的能力,其方式是创建一个新容器,该容器中的信息内容至少部分地受到安全保护并且该容器既含有被抽取出的信息内容又含有至少部分的控制原始容器的信息的控制信息,并且/或者该容器中的信息内容至少部分地由原始容器中的控制信息为上述目的而产生,并且/或者VDE装置控制信息规定应该持续不变并且/或者控制对新创建容器中的信息内容的使用。如果容器被“嵌入”到另一个受VDE管理的对象(例如一个含有大量嵌入VDE容器的对象,而其中的每个容器都含有从不同来源获取(抽取)的信息内容)中,那么上述控制信息可以继续管理对该容器信息内容的使用。

!允许用户、其他价值链参与者(例如票据交换所和政府机构)、和/或用户组织规定涉及他们对电子信息内容和/或设备的使用的优先选择或要求。如果上级控制信息允许的话,诸如使用商业分发的信息内容(游戏、信息资源、软件程序、等)的最终用户消费者之类的信息内容用户可以规定预算和/或其他控制信息以便管理他们自己的、对信息内容的内部使用。这些使用包括(举例来说)用户为电子文件设置在一个他希望在没有事先明确的用户授权的前提下支付的价格上的限制,并且该用户创建他或她允许被收集的计量信息的特性(隐私保护)。这包括向信息内容用户提供手段以保护从他们对VDE装置和信息内容的使用和/或设备使用审核中获得的信息的私有性。特别地,VDE可以防止涉及参与者对电子信息内容的使用的信息在没有得到该参与者默许或明确同意的情况下被提供给其他参与者。

!提供允许控制信息至少部分地按照被独立地、安全地传递的其他控制信息而“演变”并被修改的机制。所述控制信息可以包括已被验证为对于应用于特定VDE应用、应用类别、和/或VDE分布式方案来说是可接受的(如可靠的和可信的)可执行码(如加载模块)。一旦信息内容控制信息(加载模块和任何相关数据)流通到控制信息处理路径中的一个或多个VDE参与者的时候,控制信息的上述修改(演变)便可以发生,或者一旦收到来自一个VDE参与者的控制信息的时候,上述修改(演变)发生。信息内容控制信息处理路径中的处理者在他们中的每一个所授权的限度内可以创建、修改、和/或提供与电子信息内容和/或设备的控制、分析、偿付、和/或使用汇报(例如,这些与受VDE控制的有所有权信息内容的使用相关)相关的许可、审核、付款和汇报控制信息。当信息内容控制信息已经在VDE信息内容控制信息处理序列中从一个参与者流到另一个参与者的时候,(从一个除了对于验证来说为不独立之外的独立来源)独立传递的、至少部分安全的控制信息可以用来安全地修改信息内容控制信息。该修改过程使用了(举例来说)安全地在VDE安全子系统中处理的一个或多个VDE部件组。在一个可选的实施例中,一个上级参与者可以在通常以VDE管理对象的形式从一个“下级”参与者收到被提交的、至少部分地受到安全保护的控制信息之后,通过使用他们的VDE装置安全子系统来修改控制信息。通过VDE路径传递的控制信息可以代表一个混合的控制集合,因为它可以含有:在通过控制信息处理者序列时没有发生变化的控制信息、被允许修改的其他控制信息、以及代表新控制信息和/或中间数据的其他控制信息。该控制集合代表了被传播信息内容的控制信息的演变。在本例中,当VDE信息内容容器的整个信息内容控制集合安全地(例如,以加密的形式通信并使用鉴别和数字签名技术)至少部分地传递到一个新参与者的、安全地收到和处理所提出的控制信息的VDE装置时,这些控制集合正在“演变”。借助涉及两个控制信息集合的协商进程,收到的控制信息可以与就位控制信息(通过使用接收方的VDE装置安全子系统)集成在一起。例如,在信息内容提供者的VDE装置的安全子系统中对特定VDE信息内容容器的信息内容控制信息的修改可以是加入了财务信用提供者提供的所要求的控制信息。所述信用提供者可能已经使用了他们的VDE装置准备了所述的所要求的控制信息,并安全地将该信息传送给了所述信息内容提供者。加入所述的所要求的控制信息使信息内容提供者允许信息内容最终用户使用信用提供者的信用以偿付该最终用户对受VDE控制的信息内容和/或设备的使用—只要所述最终用户在所述财务信用提供者那里有一个信用帐户并且所述信用帐户具有充足的可用信用。类似地,信息内容提供者也可以安全地接收要求支付税款和/或提供由电子商业活动产生的收入信息的控制信息。该控制信息可以(举例来说)从一个政府机构收到。法律可能要求信息内容提供者将上述控制信息插入到对应于商业分发的信息内容和/或涉及设备使用的服务的控制信息中。对提议的控制信息的使用要在由上级控制信息允许的限度内,并且该限度由满足每一个集合(接收方的集合和被提议的集合)所规定的优先级的任意协商折衷方案所决定。VDE还适应专门适用于VDE信息内容处理参与者网络中的不同参与者(如个体参与者和/或参与者类别(类型))的不同控制方案。

!支持用于同一信息内容所有权和/或所有权部分的、多个并存的控制模型。这个特性支持(举例来说)依赖于电子商业产品信息内容分发的并发业务活动,例如获取详细市场调查信息和/或支持广告活动,这两种活动都可以增加收入,并给用户带来较低的信息内容成本而给信息内容提供者带来更高的价值。在控制信息的决定或允许下,可以采用不同的方式将上述控制信息和/或整体控制模型应用到信息内容、汇报、付款和/或相关控制信息处理路径中的参与者。VDE允许把不同信息内容控制信息应用到与同一和/或不同信息内容和/或设备使用相关的活动中,并且/或者应用到信息内容和/或设备使用模型中的不同参与者,这样以来,不同的参与者(或(举例来说)VDE用户的类别)将受到管理他们对电子信息内容的使用的不同控制信息的控制。例如,基于作为受VDE控制的信息内容对象的分发者的或作为该信息内容的最终用户的分类的不同控制模型可以产生投入应用的不同预算。作为另一种选择,(举例来说)一个分发者可以有权(从(举例来说)某个光盘上提供的公用信息内容集合中)分发与另一个分发者不同的有产权物集合。与“典型”的信息内容用户相比,最终用户的个人和/或类别或其他分类可以有不同的花销。(例如,可对学生、老年公民、与/或信息内容的贫穷公民提供相同或不同的折扣)

!支持通过从所述最终用户和/或提供者向一个政府机构转移信用和/或电子货币而由消费者对信息内容和/或设备的使用中、以及/或者提供者和/或最终用户支付的税款中产生的提供者收入信息,作为上述被接收信息的结果,将“自动”出现上述转移过程,该过程导致生成一个其信息内容包括反映了安全的、可信的收入概要信息和/或详细用户交易记录的消费者信息内容使用信息的VDE信息内容容器(详细的程度可能取决于(举例来说)交易的类型或规模—根据法律规定,涉及向消费者支付的银行利息或大宗(例如超过10000美元)转移的信息可以被自动地报告给政府)。这种涉及可征税的事件和/或货币的、以及贷方货币转移的概要和/或详细信息放在一个VDE容器中可以通过汇报和/或付款路径传递给政府。这种容器还可以用于其他涉及VDE的信息内容使用汇报信息。

!支持信息内容控制信息沿信息内容控制信息处理的不同分支流动,以便在本发明的较佳实施例控制下支持对受VDE控制的信息内容所进行的多样化的、受控制的分发。这允许不同的参与者以不同的(可能是竞争性的)控制策略使用相同初始电子信息内容。在这种情况下,一个首先对信息内容设置控制信息的参与者可以规定某些控制假设,而这些假设将演变成更为专门的和/或充分的控制假设。这些控制假设可以在分支序列在一旦信息内容模型参与者提交信息内容控制信息时而发生变化(举例来说)以便用来与“就位”信息内容控制信息“协商”的过程中演变。这将产生新的或被修改的信息内容控制信息,并且/或者这将涉及选择特定的一个或多个已经“就位”的信息内容使用控制方法,就位的可选方法,以及涉及对相关控制信息参数数据的提交。应用于相同电子所有权信息内容和/或设备的不同拷贝的不同控制信息集合的上述形式的演变是VDE控制信息通过整条处理和控制路径的不同分支向下“流动”,并且在其通过这些不同路径分支向下分散的过程中受到了不同修改的结果。本发明的上述支持用于VDE控制信息和VDE管理的信息内容流动的多个路径分支的功能允许存在这样的电子商业市场,该电子市场支持分散的、竞争性业务伙伴关系、协定、以及正在演变的整体业务模型,该业务模型可以使用被合并(举例来说)到代表至少部分地不同的具有竞争性的产品的信息内容的不同集合中的相同信息内容特性。

!允许用户通过使用该用户的VDE装置中的安全子系统安全地抽取包含在VDE信息内容容器中的至少一部分信息内容,以便产生一个新的、安全的对象(信息内容容器),这样,被抽取的信息在整个抽取进程中维护于一种始终安全的方式中。包含上述被抽取信息内容的新VDE容器的形成应该产生与源VDE信息内容容器的和/或适当的本地VDE装置安全子系统的控制信息相一致的或由上述控制信息所规定的控制信息。诸如至少部分地从父(源)对象的控制信息导出的安全性或管理信息之类的相关控制信息通常将被自动地插入到含有被抽取出来的VDE信息内容的一个新VDE信息内容容器对象中。该进程的发生通常受到父对象的控制框架和/或执行于用户VDE装置安全子系统中的VDE装置控制信息的控制(同时(举例来说)上述被插入控制信息的至少一部分被安全地以加密形式存放在一个或多个许可记录中)。在一个可选实施例中,应用于被抽取信息内容的导出的信息内容控制信息可以部分地或全部地从存放在远离执行上述安全抽取过程的VDE装置的地方的—例如存放在一个远程服务器地点中的—信息内容控制信息中导出或采用该控制信息。对于用于大多数VDE管理的信息内容的信息内容控制信息来说,本发明的特性允许该信息内容的控制信息:

(a)“演变”,例如信息内容的抽取者可以在信息内容的就位控制信息允许的限度内添加新控制方法和/或修改控制参数数据—例如依从VDE应用的方法。所述的新控制信息可能规定(举例来说):谁可以使用上述新对象的至少一部分,以及/或者如何使用所述被抽取信息内容的所述至少一部分(例如,何时可以使用所述的至少一部分,或者可以使用哪一部分或多少部分);

(b)允许用户把诸如抽取者创作的材料和/或从一个或多个其他VDE容器对象中抽取出来的信息内容(例如图像、视频、声音和/或正文)之类的另外的信息内容与所述被抽取信息内容的至少一部分合并起来,供直接放入新容器中;

(c)允许用户安全地编辑所述信息内容的至少一部分,同时将所述信息内容以安全形式维护于所述信息内容容器中。

(d)将被抽取的信息内容添加进一个已存在的VDE信息内容容器对象中,并加上相关的控制信息—在上述情况下,用户添加的信息可以受到安全保护,例如被部分地或整体地加密,并且可以受到不同于施加到以前就位对象信息内容的使用和/或审核控制信息的控制。

(e)在对被抽取对象的一个或多个部分进行了各种形式的使用之后,保留了对所述部分的VDE控制,例如,以安全存贮的形式维护信息内容同时允许在屏幕上“暂时”显示信息内容,或者允许以安全的形式维护软件程序,但是暂时地解密所述程序的任何被加密的执行部分(所述程序的全部或仅仅一部分可被加密以便保护该程序)。

通常,本发明的抽取特性允许用户聚合和/或传播和/或使用从信息内容容器源中抽取出来的、被保护的电子信息内容,同时维护安全的VDE功能,从而保护了经过各种信息内容使用进程之后提供者在所述信息内容信息中的权利。

!支持VDE控制的信息内容的部分的聚合,这些部分受到不同的VDE信息内容容器控制信息的控制,其中,各个所述的信息内容可以已经被独立的、不同的信息内容提供者从远离执行上述聚合的用户的一个或多个不同的地点提供出来。在本发明的较佳实施例中,上述聚合可以涉及对于各个所述部分的每一部分都保留控制信息(如诸如加载模块之类的可执行码)的至少一部分,例如,将某些或全部的上述部分作为VDE信息内容容器对象独立地嵌入到整体VDE信息内容容器中,或将某些或全部的上述部分直接嵌入到一个VDE信息内容容器中。在后一种情况下,所述信息内容容器的信息内容控制信息可以(根据所述部分在聚合之前的原始控制信息要求)向各个上述部分施加不同的控制信息集合。每个上述嵌入的VDE信息内容容器都可以带有采用一个或多个许可记录形式的自身控制信息。作为另一种选择,与电子信息内容的各种聚合部分相关的控制信息之间的协商可以产生控制某些或所有上述聚合信息内容部分的控制信息集合。由该协商产生的VDE信息内容控制信息可以是统一的(例如带有同样的加载模块和/或部件组),并且/或者它可以将不同的上述信息内容控制信息施加到构成了VDE控制的信息内容的聚合的两个或多个部分,这些控制信息的例子有:不同的计量、预算、计帐、和/或付款模型等。例如,可以通过票据交换所自动为信息内容的使用付款,或者可以为不同的部分直接向不同的信息内容提供者付款。

!允许对电子信息内容和/或电子设备的使用进行灵活的计量,或者对有关上述使用的信息的其他收集。本发明的一个特性使得上述计量控制机制灵活性支持并存的、范围广泛的:(a)有关电子信息内容使用的不同参数;(b)该电子信息内容的不同增量单位(字节、文件、特性、段落、图像、等等)和/或其他组织;以及/或者(c)用户和/或VDE装置类型的不同类别,例如客户组织、部门、项目、网络、和/或单独用户。本发明的该特性可以用于信息内容安全性、使用分析(例如市场调查)、和/或基于对VDE管理的信息内容的使用和/或暴露的付款。该计量是一个用于确保对信息内容版税、许可使用、购买、和/或广告进行付款的灵活基础。本发明的一个特性提供了支持灵活的电子货币和信用机制的付款手段,包括安全地维护反映涉及对该货币或信用的使用的审核跟踪的能力。VDE支持客户组织控制信息的多个不同层次,其中,组织的客户管理员分发规定了部门、用户和/或项目的使用权利的控制信息。类似地,一个部门(分部)网络经理可以对部门网络、项目和/或用户等起分发者(分发预算、访问权利等)的作用。

!提供用于范围从廉价的消耗装置(例如电视机顶置设备)和专业设备(以及掌上型PDA)到服务器、主机、通信交换机等的电子设备的、可伸缩的、可集成的、标准化的控制装置。本发明的上述可伸缩的交易管理和/或审核技术将产生在电子商业和/或数据安全性环境中起作用的各电子设备之间的更有效和更可靠的互相协作性。对于在世界范围内发送实际商品而言,标准化的实际容器已经是必不可少的了,它允许这些实际容器普遍地与卸载设备相“吻合”、有效地利用卡车和火车的空间、并以有效的方式容纳已知的物体组(例如箱子),于是,正如本发明所提供的那样,VDE电子信息内容容器可以在世界范围内有效地移动电子信息内容(例如商业发行的所有物、电子货币和信用以及信息内容审核信息)以及相关的信息内容控制信息。对于有效的电子商业来说,互相协作性是基础。VDE基础、VDE加载模块、和VDE容器的设计是允许VDE节点操作环境与范围广泛的电子设备之间兼容的重要特性。(举例来说)基于加载模块的控制方法既能在诸如带有极少量读/写存贮器的环境之类的、非常“小”的并且廉价的安全子系统环境中执行同时也能在可能用于更昂贵的电子设备中的大容量存贮器安全子系统中执行的能力支持跨越许多机器的一致性。这种一致的VDE操作环境—包括其控制结构和容器体系结构—允许在范围广泛的设备类型和宿主操作环境中使用标准化VDE信息内容容器。由于VDE功能可以作为扩展、补充和/或修改而被无缝地集成至电子设备和宿主操作系统的基本功能,因此,VDE容器、信息内容控制信息、以及VDE基础将可以与许多设备类型一道工作,同时这些设备类型将可以一致地和有效地解释和加强VDE控制信息。通过上述集成,用户也可以从与VDE许多功能的透明交互作用中得到好处。与运行于宿主电子设备中的软件进行的VDE集成支持多种功能,如果不进行该集成这些功能将得不到或较不安全。通过与一个或多个设备应用和/或设备操作环境集成,本发明的许多功能都可以作为给定电子设备、操作系统、或设备应用的内在功能被提供出来。例如,本发明的特性包括:(a)部分地扩展和/或修改宿主操作系统使之具有诸如支持安全交易处理和电子信息存贮之类的VDE功能的VDE系统软件;(b)部分地代表与VDE操作相关联的工具的一个或多个应用程序;以及/或者(c)要集成到应用程序中的代码,其中,该代码将引用加入到VDE系统软件中以集成VDE功能并使该应用成为VDE感知型应用(例如:字处理器、数据库检索应用、电子表格、多媒体展示创作工具、电影编辑软件、诸如MIDI应用之类的音乐编辑软件、诸如与CAD/CAM环境以及NCM软件等相关联的控制系统之类的机器人学控制系统、电子邮件系统、电话会议系统、以及包括上述的组合的其他数据创作、创建、处理、和/或使用应用)。上述的(也可以实现于固件或硬件中的)一个或多个特性可以结合诸如微控制器、微处理器、其他CPU或其他数字处理逻辑之类的VDE节点安全硬件处理功能一起使用。

!使用审核协调和使用模式评估进程。这些进程通过某些通常基于网络的交易处理协调和阈值检查活动来评估是否发生了VDE系统的安全性的某种破坏。这些进程在VDE控制的信息内容的最终用户VDE地点的远方通过评估(举例来说)给定VDE装置购买和/或请求得到电子所有物的活动而执行。用于该协调活动的应用包括评估远程交付的VDE控制的信息内容的数量是否对应于用于对该信息内容的使用的财务信用和/或电子货币的数量。一个信托组织可以从信息内容提供者那里获取与提供给一个给定VDE装置和/或用户的信息内容的价格相关的信息,并将该信息内容价格与所述装置和/或用户的信用和/或电子货币付款相比较。被交付信息内容的数量与付款的数量之间不一致可以证明和/或表明(根据情况的不同)本地的VDE装置是否已经至少在某种程度上受到了破坏(例如某些重要的系统安全性功能,比如通过解开一个或多个密钥而破解了至少对安全子系统的和/或VDE控制的信息内容的一部分的加密)。判断是否出现信息内容使用的异常模式(例如不同寻常的大量要求)、或者一个或多个VDE装置和/或用户(例如其使用活动的聚合模式值得怀疑的相关的用户组)在特定的时间段内要求向他们传送某些类型的VDE控制信息在判断是否上述一个或多个装置的安全性受到了破坏,并且/或者由上述的一个或多个用户破坏等方面也可以是有用的,特别是结合评估由一个或多个VDE用户和/或装置的某些和/或所有其电子信用和/或货币提供者提供给这些用户和/或装置的电子信用和/或货币与由这些用户和/或装置提交的付款相比的结果一起使用上述判断过程将更为有用。

!支持实际增加了“破坏”系统安全性所需时间的安全技术。这包括使用一批将由破坏本发明的安全性特性的某些方面而引起的危害降至最低的技术。

!提供了构成了本发明的可信的/安全的、普遍的、分布式的交易控制和管理系统的部件的一系列创作、管理、汇报、付款、和计帐工具用户应用。这些部件支持与VDE相关的:对象创建(包括为信息内容设置控制信息)、安全对象分发和管理(包括分发控制信息、与财务相关的和其他使用分析)、客户内部VDE活动管理和控制、安全性管理、用户接口、付款、以及与票据交换所有关的功能。这些部件被设计为支持高度安全的、统一的、一致的、和标准化的:处理、汇报、和/或付款的电子商业和/或数据安全性路径、信息内容控制和管理、以及人的因素(例如用户接口)。

!支持大量票据交换所的操作—包括财务和用户票据交换所活动,例如由大组织中的客户管理员为帮助该组织对VDE配置的使用而执行的活动,所述的活动包括使用信息分析、以及对雇员个人或组的VDE活动的控制,例如规定在VDE控制下对客户人员的某些组和/或个人可用的预算和使用权利特性,而这要受到由客户管理员提交的控制信息的控制信息系列的控制。在票据交换所中,一个或多个VDE装置可以与可信的分布式数据库环境(该分布式数据库环境可包括并发数据库处理装置)一起操作。财务票据交换所通常在其所处位置接收安全传递的信息内容使用信息、以及用户请求(诸如对另外的信用、电子货币和/或更高信用限额的要求)。使用信息的汇报和用户请求可以用于支持与电子货币、计帐、付款和信用有关的活动、以及/或者用户轮廓分析和/或更广泛的市场调查分析和销售(综合的)报告的产生,或其他至少部分地从所述使用信息中导出的信息。可以通过到VDE装置安全子系统的安全的、经过鉴别的加密通信将上述信息提供给信息内容提供者或其他方面。票据交换所处理装置通常连接到专用的I/O装置,该专用I/O装置具有可用于票据交换所与其他的路径参与者之间的安全通信的高速远程通信交换装置。

!安全地支持VDE装置上和VDE装置之间的电子货币和信用使用控制、存贮、和传送。VDE进一步支持包括(例如采用电子货币或信用形式的)付款代价券以及其他付款信息在内的电子货币和/或信用信息通过付款路径的自动化传递,所述的路径可以是也可以不是与信息内容使用信息汇报路径相同的路径。该付款可以被放入一个由VDE装置为响应规定按照使用VDE控制的电子信息和/或设备而产生的应付款项数额从电子信用或货币帐户中“提取”信用或电子货币的控制信息而自动创建的VDE容器中。然后付款信用或货币可自动地以被保护(至少被部分地加密)的形式通过一个VDE容器的电信而被传送到诸如票据交换所、原始所有的信息内容或设备的提供者、或该提供者的一个代理(而不是一个票据交换所)之类的一个适当参与者。付款信息可以与也可以不与诸如计量信息之类的相关信息内容使用信息一起包装在所述VDE信息内容容器中。本发明的一个方面还允许将涉及货币使用的某些信息规定为对特定、某些或所有VDE参与者不可得到的(从“有条件”到完全匿名的货币),并且/或者还可以控制诸如涉及货币和/或信用使用的信息(以及/或者其他电子信息使用数据)之类的某些信息内容信息只在某些严格的条件下才可以被得到,所述条件的一个例子是法庭传票(其本身可以通过使用由法庭控制的VDE装置要求得到授权,这种装置可能被要求“有条件”地安全访问匿名信息)。在本发明的较佳实施例下,货币和信用信息被当作管理内容对待。

!支持向信息内容中嵌入指纹(也称为水印),这样当受本发明保护的信息内容被以明文的方式从VDE对象中发布出来(显示、打印、传送、抽取和/或保存)的时候,表示负责将信息内容转换成明文形式的用户和/或VDE装置的标识信息被嵌入到发布出的信息内容中。指纹的有用性在于它提供一种能力用于识别谁从VDE容器中以明文方式抽取信息,或谁制作了VDE对象的或其信息内容的一部分的拷贝。由于用户的身份和/或其他标识信息可以以一种模糊的或通常为隐藏的方式被嵌入到VDE容器信息内容和/或控制信息中,这样可以阻碍潜在的版权侵犯者进行未授权的抽取或拷贝活动。指纹通常被嵌入到未加密的电子信息内容或控制信息中,尽管它也可以先被嵌入加密的信息内容中,以后当携带该指纹信息的加密的信息内容在安全VDE装置子系统中被解密的时候,再被嵌入到未加密的信息内容中。当诸如VDE容器中的信息内容之类的电子信息离开一个网络(如Internet)地点而准备到达某个接收方的时候,可以向该电子信息中加入指纹。该存放库中的信息在被传送之前可以被维护于未加密的形式,而在其离开该存放库时则被加密。加入指纹的过程最好在信息内容离开存放库的时候但在加密步骤之前发生。可以在一个安全VDE子系统中解密被加密的存放库信息内容、插入指纹信息、然后再加密信息内容,以便进行传送。在信息内容离开(举例来说)某个Internet存放库时,将预期的接收方用户和/或VDE装置的标识信息嵌入到信息内容中,将提供可识别或帮助识别任何设法破坏VDE装置或被传递信息内容的安全性的参与者的重要信息。如果一个参与者制作了经授权的、明文形式的VDE控制的信息内容的拷贝—包括制作了经授权的明文形式拷贝的未授权拷贝,指纹信息将反向地指明那个制作拷贝的个人和/或他或她的VDE装置。该隐蔽信息将充当一个强有力的阻碍措施以阻止大部分潜在信息内容“盗版者”窃取其他参与者的电子信息。可以在解密、复制VDE信息内容对象、或向接收方传送该对象之前、或者在上述活动的过程中将标识接收方和/或VDE装置的指纹信息嵌入到VDE对象中。在加密电子信息内容以便传送给消费者或其他用户之前向该电子信息内容中加入指纹可以提供对于识别谁收到了某些可能已经以未加密形式分发出去或使之对外可用的信息内容十分有用的信息。在跟踪谁可能已经“破坏了”VDE装置的安全性并且正在非法向他人提供某些电子信息内容方面,上述信息将是具有价值的。指纹还可以提供其他的、诸如所述信息内容信息的发布(例如抽取)时间和/或日期之类的可用信息。插入指纹的位置可以由VDE装置和/或信息内容容器控制信息规定。该信息可以规定所有物中诸如信息和/或信息类型的一个或多个特定字段之类的特定区域和/或精确位置应该用来加入指纹。可以通过以一般不可被检测的方式修改某些图像像素的颜色频率和/或亮度、通过稍微地修改某些声音信号的频率、通过修改字体特性构成信息等等将指纹信息加入到所有物中。指纹信息本身应该被加密,这样,将受到破坏的指纹解释为有效的将变得异常困难。对于同一所有物的不同拷贝加入不同位置的指纹;“虚假”指纹信息;以及特定所有物或其他信息内容中的、使用了诸如信息分布模式、频率和/或亮度操纵、以及涉及加密的技术的不同指纹技术的指纹信息多个拷贝,是本发明的特性,这些特性用于提高未授权的个人识别指纹位置以及擦除和/或修改指纹信息的难度。

!提供可以携带请求、数据和/或方法—包括预算、授权、信用或货币、以及信息内容—的智能对象代理。例如,智能对象可以移至和/或移自远程信息资源地点并执行对电子信息内容的请求。智能对象可以(举例来说)被提交给一个远程地点以代表某个用户执行一个特定数据库搜索,或“智能地”搜索一个或多个信息存放库以查找用户所需的信息。当智能对象通过(举例来说)执行一个或多个数据库搜索在一个或多个远程地点识别出所需的信息后,带有检索出的信息的智能对象可以通过向用户的通信以安全“返回对象”的形式返回给用户。可以为信息的远程检索、信息向用户VDE装置的返回、以及/或者对上述信息的使用向用户收取费用。在后一种情况下,可以只对用户实际使用的返回对象中的信息向用户收费。智能对象可以具有请求使用一个或多个服务和/或资源的装置。服务包括定位诸如信息资源、语言或格式翻译、处理、信用(或额外信用)授权等之类的其他服务和/或资源。资源包括参考资料数据库、网络、超级或专用计算资源(智能对象可以携带信息到达另一台计算机,使该信息受到高效地处理,然后将信息返回给发送方VDE装置)、远程对象存放库、等等。智能对象可以有效地使用远程资源(例如集中式数据库、超级计算机等等),同时提供用于根据实际使用的信息和/或资源向用户收费的安全装置。

!支持将VDE电子协定元素“翻译”成用现代语言书面表达的协定元素(例如英语协定),以及将电子权利保护/交易管理现代语言协定元素翻译成电子VDE协定元素。该特性要求维护一个对应于VDE加载模块和/或方法和/或部件组的正文语言库。当一个VDE方法被提议出来和/或被用于VDE协定的时候,一个VDE用户应用将产生正文条款和条件的一个列表,在较佳实施例中,所述VDE用户应用提供已经经过保存并对应于所述方法和/或部件组的短语、句子和/或段落。该特性最好使用人工智能技术以分析并自动确定和/或帮助一个或多个用户确定对应于被选择的方法和/或部件组的库元素之间的正确顺序和关系,以便组成法律的或说明性文件的某些或所有部分。一个或多个用户,以及/或者最好是某个律师(如果上述文件是一个法律的约束协定)将在上述过程产生的文件材料一旦生成完毕后审阅该文件材料,并使用和/或编辑描述该协定中的非电子交易元素所必要的上述附加的正文信息,同时进行其他可能必要的改进。这些特性进一步支持使用允许一个或多个用户从多个选项中作出选择和回答问题、并从该进程中生成一个VDE电子协定的现代语言工具。该进程可以是交互式的,并且VDE协定组成进程可以使用人工智能专家系统技术—所述的人工智能专家系统技术从应答中学习,并在合适的时候或至少部分地根据所述应答,产生进一步的选项和/或问题。于是,上述技术“逐渐形成”所需的VDE电子协定。

!支持在单个VDE装置中使用多个VDE安全子系统。通过在单个VDE装置中采用分布式VDE设计可以实现安全性和/或性能上的多种优点。例如,将一个基于硬件的VDE安全子系统设计到电子设备VDE显示设备中,以及设计所述子系统与所述显示设备的集成以便该子系统尽可能地接近该显示设备,将提高图像资料的安全性,因为基于上述设计,当被解密的图像信息从图像系统外部移到内部时,要“窃取”该信息将变得实际更加困难。最好,(举例来说)VDE安全硬件模块与实际显示器处于同一物理包装中,例如位于视频监视器或其他显示设备的包装中,同时,可以在商业可行的限度内将该设备设计为具有合理的防破坏性。作为另一个例子,从整个系统吞吐量的角度来看,将一个VDE硬件模块嵌入到一个I/O外围设备中可具有某些优点。如果在同一VDE装置中使用多个VDE实例,这些实例将在可行的限度内理想地共享资源,例如VDE实例将某些控制信息和信息内容和/或设备使用信息存放在同一大容量存贮设备中以及同一VDE管理数据库中。

!通过利用预算的耗尽和密钥的时间衰老而要求汇报和付款按规定进行。例如,一个VDE商业配置以及相关的信息内容控制信息可以涉及信息内容提供者的信息内容以及对用来支付最终用户对所述信息内容的使用费的票据交换所信用的使用。涉及该配置的控制信息可以被传递到(所述信息内容的)用户的VDE装置和/或所述财务票据交换所的VDE装置。所述控制信息可能要求所述票据交换所准备好并传递给所述信息内容提供者某种形式的基于信息内容使用的信息以及以电子信用(提供者收到该信用之后可以“拥有”该信用,并使用该信用以代替可用的或足够的电子货币)和/或电子货币的形式的信息内容使用费用。信息和付款的上述传递过程可以使用可信的VDE装置安全子系统,以安全地并且在某些实施例中自动地、以所述控制信息规定的方式提供所述的使用信息和付款信息内容。本发明的特性有助于确保要求票据交换所汇报上述使用信息和付款信息内容的请求必须得到遵守。例如,如果参与VDE电子协定的某个参与者没有遵守上述信息汇报和/或付款义务,另一个参与者可以禁止该违法方成功参与涉及该协定的VDE活动。如果所要求的使用信息和付款没有按照信息内容控制信息的规定被汇报出来,那么“受到侵害”方可以通过不再安全地从其VDE装置安全子系统向外传送信息而不提供继续一个或多个关键进程所必需的安全信息的一个或多个部分。例如,一个票据交换所没有向信息内容提供者汇报信息和/或付款(以及任何安全性故障或其他干扰性异常)将会使信息内容提供者不向该票据交换所提供密钥和/或预算更新信息,而这些信息对于授权使用票据交换所的信用以便使用提供者的信息内容来说可以是必要的,而且该票据交换所在票据交换所和最终用户之间的信息内容使用汇报通信过程中需要将上述信息传递给最终用户。再举另一个例子,一个没有向信息内容提供者提供付款和/或汇报使用信息的分发者可能会发现:其用来创建向用户分发信息内容提供者的信息内容所用的许可记录的预算,以及/或者限制这些用户对提供者信息内容的使用的一个或多个其他方面的安全预算,在一旦用尽后或过期(例如在某一预定日期)后没有得到信息内容提供者的更新。在这些或其他情况下,受到侵害的团体可能决定不更新已经“过期”的时间衰老密钥。对时间衰老密钥的上述使用具有不更新预算或时间衰老的授权的类似作用。

!支持本发明的智能卡实现,例如以包括用作安全信用、银行业务、和/或货币卡的卡片在内的便携式电子设备的形式。本发明的一个特征是将便携式VDE用作零售或其他机构的交易卡,其中,所述的卡可以与带有VDE安全子系统的和/或与诸如“可信”财务票据交换所(如VISA、MasterCard)之类的一个VDE安全和/或安全和兼容子系统之间具有联机连接的机构终端进行对接。VDE卡和终端(和/或联机连接)可以安全地交换有关某个交易的信息,同时信用和/或电子货币被转移到销售商和/或票据交换所,而交易信息则流回该卡。这种卡可以用于所有类型的交易活动。诸如PCMCIA连接器或象个人计算机那样的某个电子设备之类的对接站可以在家接纳消费者的VDE卡。可以采用与永久地安装在上述电子设备中的VDE装置相同的方式将上述的站/卡组合用到联机交易中。该卡可以用作一个“电子钱包”,并含有票据交换所提供的电子货币以及信用。该卡可以用作消费者涉及销售商、银行业务、以及联机财务交易的财务活动的会聚点,包括支持家庭银行业务活动。消费者可以通过联机交易接收工资/或投资回报和/或“真实”的、VDE信息内容容器保护的、有关这些接收的详细信息。用户可以向VDE配置中另一个参与者发送数字货币,包括分送该货币。VDE卡可以以高度安全的和按照数据库组织的方式保存交易的详细信息,这样,有关财务的信息被聚集在一起,并且可以十分容易地被检索出来和/或分析。由于VDE的安全性,包括对有效的加密、鉴别、数字签名、以及安全数据库结构的应用,保存在VDE卡配置中的记录可以作为有效的交易记录为政府和/或公司的簿记要求所接收。在本发明的某些实施例中,VDE卡可以使用对接站和/或电子设备存贮装置,并且/或者共享处于所述设备的本地的和/或可以通过网络使用的其他VDE系统的装置,以便通过(举例来说)存贮过时的和/或存档的备份信息来增加VDE卡的信息存贮容量。根据安全地存放在所述VDE卡中并可提供使用的“真实”信息,可以自动地计算出涉及个人的某些或所有财务活动的税款。所述信息可以存放在所述卡中、所述对接站中、相关电子设备中、以及/或者被有效连接上的其他设备中、以及/或者远程地存放—例如存放在一个远程服务器站点中。诸如交易历史之类的卡上的数据可以被备份到个人的个人计算机中或其他电子设备中,而该设备可以带有其自身的、集成的VDE装置。在每次或定期地将卡与站对接以便进行某个财务交易和/或进行诸如用户/销售商交易之类的信息通信时,当前的交易、最近的交易(为冗余的目的)、或者所有的或其他被选择出来的卡上数据可以被备份到诸如财务票据交换所中的与VDE兼容的存放库之类远程的备份存放库中。在与另一个参与者的VDE装置(例如一个也处于某个财务或通用电子网络中的VDE装置)连接的过程中通过将交易信息通知远程的票据交换所和/或银行而备份至少当前交易,可以确保进行了足够的备份,以便在卡失效或丢失的情况下支持VDE卡内部信息的完全重建。

!支持具有下列特征的验证进程,该验证过程确保各种VDE装置之间的、经过授权的互相协作性,以便防止在规范协议方面与其他VDE系统和/或装置存在不可接受的偏差的VDE配置和/或装置以可能引入安全性(VDE保护的信息的完整性和/或机密性)、进程控制、和/或软件兼容性等方面产生问题的方式进行互相协作。验证过程确认VDE装置和/或其部件的、以及VDE用户的身份。验证数据还可以充当有助于确定涉及VDE站点的退出或其他变化的信息。

!通过使用基于事件(触发)的方法控制机制支持基本交易控制进程的分离。这些事件方法触发一个或多个其他VDE方法(这些方法对VDE安全子系统可用),并用来执行VDE管理的、与交易有关的处理。上述被触发的方法包括可独立地(分别地)和安全地处理的部件计帐管理方法、预算管理方法、计量管理方法、以及相关的预算管理进程。作为本发明的上述特性的、以及对计量、审核、计帐、和预算方法的独立触发的结果,本发明能够有效地、并发地支持多种金融货币(如美元、马克、日元)、以及有关信息内容的预算和/或计帐增量,以及非常灵活的信息内容分发模型。

!支持对涉及(1)信息内容事件触发、(2)审核、(3)预算(包括规定没有使用权或无限的使用权)、(4)计帐、以反(5)用户身份(VDE装置、客户名字、部门、网络、以及或者用户等)的控制结构的完全的、模块化的分离。这些VDE控制结构的独立性提供了一个灵活的系统,允许两个或多个上述结构之间存在多重关系,例如能够使一个财务预算与不同的事件触发结构相关联(这些结构被放在适当的地方以允许根据信息内容的逻辑部分对控制信息内容进行控制)。如果在这些基本VDE功能之间没有上述分离,那么下列活动的操作将会变得困难得多:即有效地维护对于计量、计帐、预算和用户标识涉及了同样的、不同的(包括重叠的)、或完全不同的信息内容部分的、分离的计量、预算、标识、和/或计帐活动,例如,支付与信息内容使用相关联的费用、开展家庭银行业务、管理广告服务等等。上述基本功能的VDE模块化分离支持对一个或不同信息内容部分(和/或部分单位)与预算、审核和/或计量控制信息之间的大量的、“任意”的关系的编程。例如,在VDE控制下,对于对某一数据库的解密,根据用户选择的货币,可以强制实施每月200美元或300德国马克的预算限制,并且对于所述被解密数据库中的每一个记录可收费2美元或3德国马克。可以计量上述使用,同时,可以准备用于用户轮廓用途的另外的审核,该审核记录每一提交的显示出的标识。另外,还可以进行涉及所述数据库被解密的字节数目的进一步的计量,并且相关安全性预算可防止每年解密的字节数超过所述数据库字节总数的5%。用户也可以在VDE控制下(如果经过上级控制信息允许的话)收集反映了不同个人和客户组织部门对数据库字段的使用的审核信息,并确保不同的访问权利和限制数据库使用的不同预算可以被应用到这些客户个人和群体。允许信息内容提供者和用户实际地使用用户标识、计量、预算和计帐控制信息的上述多种集合部分地归因于使用上述的独立控制功能。于是,VDE可以支持在创建应用于同一电子所有权的大量控制模型、以及应用于不同的或完全不同的信息内容模型的相同的和/或大量的控制模型的过程(例如家庭银行业务对于电子购物)中的高度可配置性。

方法、其他控制信息、以及VDE对象

一起控制对VDE管理的所有权(数据库、文件、独立商业产品)的使用的VDE控制信息(如方法)或者(例如在信息内容容器中)与信息内容本身一起发送,并且/或者上述控制信息的一个或多个部分可以在可独立传递的“管理对象”中发送给分发者和/或其他用户。可以部分地将所有权的方法的一个子集与各个所有权一起传递,同时可以将方法的一个或多个其他子集独立地传递给用户,或者使之可用(例如可以通过远程通信手段远程地得到上述方法的子集)。如果要使用VDE控制的信息内容(例如放在一个VDE信息内容容器中分发出去的知识产权产品),那么必须按照要求使必要方法(被说明为所有权和/或设备使用所需要的方法)可用。控制信息内容的方法可以应用于大量的VDE容器对象—例如这些对象的某个类别或其他分类。某些用户或用户类别和/或VDE装置和/或装置类别也可以要求得到方法以便使用一个或多个特定的或种类的对象。

本发明提供的VDE的一个特征是:特定的一个或多个方法可以被规定为必要的,以便某个VDE装置和/或用户可以使用某个和/或所有信息内容。例如,“上级”参与者(例如信息内容制作者)可以允许某种类型的信息内容的分发者要求得到某个禁止最终用户电子地保存被解密的信息内容的方法,VDE交易的信用的提供者可以要求得到一个记录电子购买次数的审核方法,并且/或者用户可以要求得到一个总结使用信息(如计帐信息)以便将这些信息以一种不传送涉及详细使用行为的机密的个人信息的方式汇报给票据交换所的方法。

本发明提供的VDE的另一个特征是:信息内容的制作者、分发者和用户可以从预定义的方法集合(如果可得到的话)中进行选择,以便控制容器信息内容的使用和分发功能,并且/或者他们可以有权提供新的、定制的方法以控制至少某些使用功能(对于VDE装置和/或一组VDE应用的可信度和互相协作性,可以要求对上述的“新”方法进行验证)。于是,就如何控制对每个所有权或对象(或所希望的和/或适用的的对象或所有权的一个或多个部分)的分发和其他使用活动而言,VDE提供了程度极高的可配置性。信息内容控制信息VDE路径中的每个VDE参与者都可以为VDE容器中的某些或所有信息内容设定方法,只要该控制信息没有与已经就位的上级控制信息在下列方面冲突,即:

(1)某些或所有的VDE管理的信息内容,

(2)特定的一个或多个VDE用户和/或用户组别,

(3)特定的一个或多个VDE节点和/或节点组别,以及/或者

(4)特定的一个或多个VDE应用和/或配置。

例如,信息内容制作者的特定信息内容的VDE控制信息可以优先于其它被提交的VDE参与者控制信息,并且(举例来说)如果上级控制信息允许的话,信息内容分发者的控制信息本身可以优先于客户管理员的控制信息,而客户管理员的控制信息可以优先于最终用户的控制信息。在一条路径上的分发参与者设置上述电子信息内容控制信息的能力可以被限制到特定控制信息(如协调诸如定价和/或销售日期之类的数据的方法)的范围内,或者这种能力可以仅被限制到参与者提议的一个或多个控制信息与所有权处理链中的参与者以前提交的、或在所述参与者的VDE安全子系统中管理的上级控制信息所设置的控制信息相冲突的限度内。

VDE控制信息可以部分地或全部地(a)代表由VDE信息内容控制信息路径参与者直接放置就位的控制信息,和/或(b)含有被上述的参与者代表某个不直接处理电子信息内容(或电子设备)许可记录信息的参与者放置就位的控制信息(例如由一个参与者代表一个财务票据交换所或政府机构插入的控制信息)。这些控制信息方法(和/或加载模块、和/或协调数据、和/或部件组)也可以被采用电子方式自动化的、或半自动化的和由人协助的控制信息(控制集合)协商进程放置就位,所述的协商过程判断对被提交控制信息的一个或多个部分的使用是否将被集成进或将替代已存在的控制信息(以及/或者根据与就位控制信息的交互作用在可选的控制信息之间进行选择)以及这些控制信息如何被使用。

控制信息可以由一个不直接参与对电子信息内容(和/或设备)和/或该信息内容(和/或设备)的控制信息的处理的团体提供。可以使用在上述不直接参与的一个或多个团体的VDE装置安全子系统与处于一条路径中的VDE信息内容控制信息参与者的VDE装置安全子系统之间的、由VDE装置安全子系统管理的通信(包括(举例来说)对至少部分地加密的控制信息的传送者进行鉴别)将上述控制信息以安全的形式提供出来。该控制信息可以涉及(举例来说):对财务服务提供者提供的信用的访问权、对由政府机构制定的条例或法律的强制执行、消费者对VDE管理的信息内容的使用信息(反映一个或多个参与者而不是该消费者对信息内容的使用)的要求—该使用信息涉及该消费者收到的使用信息的创建、处理、和/或汇报方式。上述控制信息可以(举例来说)强制执行诸如涉及电子商业的法律等社会要求。

VDE信息内容控制信息可以不同地施加到不同路径的信息内容和/或控制信息处理参与者。而且,如果经过允许的话,VDE参与者可以增添、改动和/或删除许可记录权利。VDE参与者的权利定义可以与涉及信息内容和/或信息内容控制信息(如许可记录)处理链中的特定参与者和/或参与者类别和/或其他参与者类别相关。给定的一个或多个合格参与者对控制信息的修改可以在他们可作修改的数目和/或程度上受到限制。

制作者、分发者、作者、票据交换所、客户管理员、和最终用户(要认识到:两个或多个的上述类别可以描述单个用户)的电子设备中的至少一个安全子系统为预期的应用提供了“充分”安全的环境,用来:

1.解密所有物和控制信息;

2.存贮与控制和计量相关的信息;

3.管理通信;

4.处理构成电子信息内容和/或设备权利保护的控制信息的核心控制程序以及相关数据,包括强制执行VDE参与者的优选和要求。

通常,大多数使用、审核、汇报、付款、以及分发控制方法本身至少部分地被VDE装置的安全子系统加密和执行。这样(举例来说)可以在安全子系统中安全地生成和更新计帐和计量记录,并安全地使用加密和解密密钥。由于VDE在VDE配置中的参与者地点(节点)安全子系统之间传递信息时还使用了安全(如经过加密的和鉴别的)的通信,因而VDE电子协定的重要组成部分可以得到针对所期望商业目的的(充分可信的)充分安全性的可靠强制执行。针对某个价值链的VDE电子协定可以至少部分地由价值链参与者一个或多个子集之间的一个或多个子协定构成。这些子协定由一个或多个确保了VDE参与者的权利保护的电子合同“依从”元素(包括相关参数数据的方法)构成。

VDE配置的可信度主要取决于参与者地点的安全子系统中是否使用了硬件SPU以及SPU硬件安全性体系结构的有效性、当采用软件仿真SPU时的软件安全性技术、以及用于保护信息内容、控制信息、通信、和对VDE节点(VDE装置)安全子系统的访问的加密算法和密钥。在某些节点中可以使用物理设施和用户身份鉴别安全性过程代替硬件SPU,这种节点的一个例子是某个已建成的财务票据交换所,在该票据交换所中,所述的过程可以对与用户节点处使用了硬件SPU的VDE系统之间可信的互相协作性提供充分的安全性。

为了支持新的或经过修改的控制信息而在VDE系统的每个节点中进行的对所有权管理文件的更新执行于VDE安全子系统中,并受到由被保护的子系统执行的安全管理文件更新程序的控制。由于所有的安全通信都至少部分地经过了加密,并且安全子系统内部的处理经过了隐藏而不受外界的探测和干扰,所以本发明确保信息内容控制信息可以被强制执行。于是,每个所有物的制作者和/或分发者和/或客户管理员和/或安全控制信息的其他提供者(例如某个最终用户—该最终用户限制了他或她允许被汇报出去的审核信息的种类,以及/或者某个财务票据交换所—该票据交换所对于支付被分发信息内容的使用费规定了使用其信用的标准)都可以确信:他们分发的和接受的控制信息将(在给定VDE安全性实现设计的安全性限度内)被强制执行。该控制信息可以决定(举例来说):

(1)如何提供和/或向谁提供电子信息内容,例如,如何分发一个电子所有物;

(2)如何直接使用—例如解密、显示、打印、等等—一个或多个对象和/或所有物、或对象或所有物的部分;

(3)可以或必须如何处理对于上述信息内容和/或信息内容部分的使用付款;以及

(4)应该如何收集、汇报和/或使用有关涉及所有物的至少一部分的使用信息的审核信息。

被提供出来的控制信息的分级特性—包括解决由多个团体提交的信息内容控制信息之间的冲突—通常由下列的方面建立:

(1)由不同参与者把控制信息放置就位(就位控制信息通常优先于后续提交的控制信息)的次序;

(2)VDE信息内容和/或设备控制信息的详细说明。例如,就位控制信息可以规定:哪些来自一个或多个参与者或参与者类别的后续一个或多个的控制将优先于由一个或多个不同参与者和/或参与者类别提交的控制信息,以及/或者

(3)来自多个参与者的控制信息集合之间的协商,该协商确定:对于给定的VDE管理的信息内容和/或VDE装置,什么样的控制信息应该构成其最终控制信息。

电子协定和权利保护

VDE的一个重要特征是:它可以用来确保对通过使用本发明而实现的电子协定的管理,以及其安全性和权利的保护的充分性。这种协定可以涉及一个或多个:

(1)电子信息的制作者、出版者、以及其他分发者,

(2)财务服务(如信用)提供者,

(3)诸如特定于信息内容的人数统计信息和特定于用户的描述性信息之类的、由信息内容使用所产生的信息的用户(非财务服务提供者)。这些用户可包括市场分析人员、为直销和销售导向目的的销售清单编纂人员、以及政府机构,

(4)信息内容的最终用户,

(5)诸如电信公司和硬件厂家(半导体和电子设备和/或其他计算机系统厂家)之类的基础服务和设备提供者,他们根据对他们的服务和/或设备的使用收取报酬,以及

(6)由电子信息描述的某些团体。

VDE支持具有商业安全性的“扩展”价值链电子协定。VDE可以被配置成支持构成该扩展协定的参与者间的各种底层协定。这些协定可以规定重要的电子商业考虑事项,包括:

(1)安全性,

(2)信息内容使用控制,包括电子分发,

(3)隐私(有关(举例来说)涉及参与者的、由医疗、信用、税务、人事、和/或其他形式的机密信息描述的信息),

(4)财务进程管理,以及

(5)用于电子信息内容、信息内容和/或设备控制信息、电子信息内容和/或设备使用信息和付款和/或信用的处理路径。

VDE协定可以规定价值链中两方或多方的电子商业关系,但是该协定有时可能不直接强迫或直接涉及其他VDE价值链参与者。例如,在某个信息内容制作者和某个分发者之间达成的电子协定可以确定分发者对于制作者的某个信息内容(例如放在VDE容器对象中分发出去的某个所有物)的应付价钱以及该分发者可以在一段给定时间内向最终用户分发的对象的拷贝数目。在第二个协定中,一个价值链最终用户可能参与到一个三方协定中,在该协定中,该最终用户同意某些有关使用该分发产品的要求,例如接受分发者针对信息内容的使用而收取的费用,及同意遵守制作者的版权。在分发者和财务票据交换所之间可以存在第三个协定,如果最终用户直接与向该最终用户提供信用的票据交换所之间具有一个单独的(第四个)协定的话,上述第三个协定允许分发者使用票据交换所的信用以便为产品付款。在信息内容控制信息通过其处理链传递的时候,第五个演变着的协定可以在所有价值链参与者之间发展。该演变着的协定可以确定所有参与者对信息内容使用信息的权利,包括(举例来说)每个参与者要收到的信息的特性、以及信息内容使用信息和相关过程的处理路径。本例中的第六个协定可能涉及所有参与者都参与进去以便达成该协定,并且确定诸如安全性技术和可信度(例如,系统的商业完整性可以要求每个VDE装置安全子系统在电子方面保证:它们的VDE节点满足了特定的可互相协作性要求)之类的某些一般前提。在上面的例子中,上述六个协定将构成了用于商业价值链实例的扩展协定中的各个协定。

VDE协定支持演变的(“活的”)电子协定配置。通过新提议的信息内容控制信息与已经就位的控制信息之间的、或者由多个参与者提交的同时提议出来的信息内容控制信息之间的、从十分简单到十分复杂的“协商”,当前的和/或新的参与者可以修改上述协定。可以一段时间之内按照已有的上级规则异步地和渐进地修改一个给定的模型,而该修改可以被应用到所有的、某些类别的和/或特定的信息内容、以及/或者某些类别的和/或特定的用户和/或用户节点。给定的信息内容可能受到不同控制信息在不同处理时间或地点的控制,取决于其控制信息的演变(和/或取决于不同的、适用的VDE装置控制信息)。控制信息的演变可以在传递一个或多个含有对象的VDE控制信息的过程中发生,即控制信息可以在控制信息处理链中的一个或多个点接受修改—只要这种修改是经过允许的。于是,VDE管理的信息内容可以带有在信息内容处理链中的不同“位置”施加的以及在该信息内容的不同处理链的相同位置施加的不同的控制信息。控制信息的上述不同施加也可以来源于规定特定参与者或参与者类别应该受到不同于其他参与者或参与者类别的信息内容控制信息控制的信息内容控制信息。例如,用于给定的信息内容的信息内容控制信息可以被规定为上级信息,于是该控制信息不能被改变,并且该控制信息可由信息内容制作者放置就位,该控制信息可以规定:其给定的信息内容的国内分发者允许每个季度制作100,000拷贝—只要这些拷贝是提供给真实的最终用户,但是只能向本地零售商传送该信息内容的一份拷贝,并且该控制信息限制该零售商每月为零售给最终用户的目的所制作的拷贝数不超过1,000份。另外,(举例来说)相同的信息内容控制信息可以限制该信息内容的最终用户制作该信息内容的三份拷贝,每份供他或她使用的三台计算机中的每台(一份对应于一台办公地点用的桌上型计算机、一份对应于一台家用的桌上型计算机、一份对应于一台便携式计算机)。

由本发明的较佳实施例支持的电子协定可以从十分简单变化到十分复杂。它们可以支持种类繁多的信息管理模型,这些信息管理模型提供电子信息安全性、使用管理、以及通信,并支持:

(a)诸如商业著作权之类的信息的安全电子分发,

(b)安全的电子信息使用监控和汇报,

(c)涉及电子信息和/或设备使用以及其他电子信用和/或货币使用和管理功能的安全财务交易功能,

(d)对于用户不希望公开的使用信息的隐私保护,以及

(e)“活的”电子信息信息内容传播模型,这些模型灵活地支持:

(1)广泛的参与者;

(2)用于:信息内容、信息内容和/或设备的控制信息的处理、与信息内容和/或设备的使用相关的信息的汇报、以及付款的一条或多条路径(链),

(3)对加入到信息内容控制信息中的条款和条件的演变的支持,包括对电子协商功能的应用,

(4)支持多个信息内容的组合形成新的信息内容聚集,以及

(5)多个并发模型。

安全处理部件

本发明提供的VDE的一个重要组成部分是核心安全交易控制配置,此处称为SPU(或SPUs),SPU通常必须出现在每个用户计算机中、其他电子设备中、或网络中。SPU提供了一个可信的环境,用于:生成解密密钥、加密和解密信息、管理电子设备之间(即VDE装置之间和/或在单个VDE装置中的多个VDE实例之间)对密钥和其他信息的安全传送、安全地积累和管理存放在安全的和/或非安全的非易失性存贮器中的审核跟踪、汇报、和预算信息、维护控制信息管理指令的安全数据库、以及为执行某些其他控制和管理功能提供安全环境。

如果要求为执行某些VDE活动提供高度可信的环境,那么有必要在VDE节点中使用一个硬件SPU(而不是软件仿真)。可以通过使用特定控制软件、诸如半导体或半导体芯片集之类的用于电子设备之中的或用来有效地连接到电子设备的一个或多个防破坏硬件模块(包括(举例来说)一个防破坏的硬件电子设备外围设备)而创建出上述可信环境。在本发明中,可以通过将硬件SPU的某些或所有硬件元件封装在防破坏的包装中,并且/或者通过使用其他防破坏技术(如微熔和/或细线检测技术)来增强硬件SPU的可信度。部分地通过使用防破坏半导体设计而实现的本发明的可信环境含有诸如微处理器之类的、安全地执行VDE进程的控制逻辑。

VDE节点的硬件SPU是VDE安全子系统的核心部件,它可以使用电子设备的某些或所有基本控制逻辑—例如一个微控制器、微计算机或其他CPU系统。该基本控制逻辑还可以用于诸如对电子设备的某些或所有非VDE功能进行控制之类的非VDE目的。当运行于硬件SPU模式时,所述基本控制逻辑必须具有足够的安全性,以便保护和隐藏重要的VDE进程。例如,一个硬件SPU可以使用运行于保护模式同时执行涉及VDE的活动的宿主电子设备微计算机,于是允许VDE进程的部分能够以特定的安全程度进行执行。上述的可选实施例与较佳实施例实施例相反,在较佳实施例中,可信环境是通过使用并非为所述基本控制逻辑的部分的一个或多个防破坏半导体的组合而被创建的。在这两个实施例中,某些控制信息(软件和参数数据)必须被安全地维护在SPU中,而其他控制信息则可以(例如以加密的和经过标记的形式)安全地存放在在外部,并且在需要的时候被装载进所述硬件SPU中。在许多情况下,特别是对于微计算机来说,针对执行所述VDE进程使用专用安全硬件而不是使用所述基本控制逻辑的较佳实施例方式可能是更为安全的和有效的。可信SPU硬件过程所需的安全性和防破坏级别取决于特殊市场或市场环境的商业要求,并且可以相差悬殊。

附图的简要说明

通过参看下面结合附图对目前优选的示例性实施例的详述,可以更好地和更完全地理解本发明提供的上述或其他特性和优点,在这些附图中:

图1示意了按照本发明的较佳示例/实施例提供的“虚拟分发环境”的示例;

图1A是对图1所示的“信息服务中心”示例的更为详细的示意;

图2示意了处理和控制链的一个示例;

图2A示意了规则和控制信息如何在从图2的处理和控制链中的一个参与者到另一个参与者的过程中保持不变的一个例子;

图3示意了可以提供的不同控制信息的示例;

图4示意了规则和/或控制信息的某些不同类型的示例;

图5A和5B示意了“对象”的一个示例;

图6示意了安全处理部件(“SPU”)的一个示例;

图7示意了电子设备的一个示例;

图8是图7所示电子设备示例的一个更为详细的框图;

图9是图6和图8所示安全处理部件(SPU)示例的详细示意图;

图10示意了虚拟分发环境提供的“权利操作系统”(“ROS”)体系结构的一个示例;

图11A-11C示意了应用和权利操作系统之间的功能关系的示例;

图11D-11J示意了“部件”和“部件组”的示例;

图12是图10所示的权利操作系统示例的更为详细的图解;

图12A例示了如何创建“对象”;

图13是用于图12所示的“受保护处理环境”的软件体系结构示例的详细框图;

图14A-14C是由图13所示的受保护处理环境提供的SPU存贮器图的示例;

图15例示了图13的通道服务管理器和加载模块执行管理器如何支持一个通道的;

图15A示意了图15所示的通道头和通道详细记录的示例;

图15B是图13中的受保护处理环境为创建一个通道可能执行的程序控制步骤的一个流程图;

图16是一个安全数据库结构示例的框图;

图17示意了逻辑对象结构的示例;

图18示意了静止对象结构的示例;

图19示意了移动对象结构的示例;

图20示意了信息内容对象结构的示例;

图21示意了管理对象结构的示例;

图22示意了方法核心结构的示例;

图23示意了加载模块结构的示例;

图24示意了用户数据元素(UDE)和/或方法数据元素(MDE)结构的示例;

图25A-25C示意了“映射计量器”的示例;

图26示意了许可记录(PERC)结构的示例;

图26A和26B一起示意了许可记录结构的更为详细的示例;

图27示意了发送表结构的示例;

图28示意了接收表结构的示例;

图29示意了管理事件日志结构的示例;

图30示意了图16安全数据库中所示的对象注册表、主题表、和用户权利表之间的相互关系以及对这些表的使用的示例;

图31示意了图16所示对象注册表的更为详细的示例;

图32示意了图16所示主题表的更为详细的示例;

图33示意了图16所示用户权利表的更为详细的示例;图34示意了描述站点记录表和组记录表如何跟踪图16所示安全数据库的部分的一个特定示例;

图34A示意了图34站点记录表结构的示例;

图34B示意了图34组记录表结构的示例;

图35示意了用于更新安全数据库的进程的示例;

图36示意了描述新元素如何被插入到图16安全数据库中的一个示例;

图37示意了描述如何访问安全数据库的元素的一个示例;

图38示意了描述如何保护安全数据库元素的一个流程图示例;

图39示意了描述如何备份安全数据库的一个流程图示例;

图40示意了描述从备份中恢复安全数据库的一个流程图示例;

图41A-41D示意了描述如何利用“交互方法”启动“处理和控制链”的一套示例;

图42A-42D示意了“交互”预算方法的示例;

图43A-43D示意了“交互”注册方法的示例;

图44A-43C示意了“交互”审核方法的示例;

图45-48示意了一起使用以便对信息内容或其他信息的发布进行控制的若干方法的示例;

图49,49A-49F示意了OPEN方法的示例;

图50,50A-50F示意了READ方法的示例;

图51,51A-51F示意了WRITE方法的示例;

图52示意了CLOSE方法的示例;

图53A-53B示意了EVENT方法的示例;

图53C示意了BILLING方法的示例;

图54C示意了ACCESS方法的示例;

图55A-55B示意了DECRYPT和ENCRYPT方法的示例;

图56示意了CONTENT方法的示例;

图57A和57B示意了EXTRACT和EMBED方法的示例;

图58A示意了OBSCURE方法的示例;

图58B,58C示意了FINGERPRINT方法的示例;

图59示意了DESTROY方法的示例;

图60示意了PANIC方法的示例;

图61示意了METER方法的示例;

图62示意了密钥“卷积”进程的示例;

图63示意了描述如何利用密钥卷积进程生成不同密钥以确定一个“真实”密钥的一个示例;

图64和65示意了描述如何初始化受保护处理环境密钥的一个示例;

图66和67示意了用来解密分别包含在静止对象和移动对象中的信息的示例过程;

图68示意了描述如何初始化受保护处理环境的一个例子;

图69示意了描述如何将固件下载到受保护处理环境中的一个例子;

图70示意了由网络或其他通信手段连接在一起的多个VDE电子设备的示例;

图71示意了便携式VDE电子设备的示例;

图72A-72D示意了可以由用户通告和异常界面产生的“弹出式”显示的示例;

图73示意了“智能对象”的示例;

图74示意了使用“智能对象”的进程的示例;

图75A-75D示意了用于电子协商的数据结构的示例;

图75E-75F示意了涉及电子协定的结构的示例;

图76A-76B示意了电子协商进程的示例;

图77示意了处理和控制链的另一个示例;

图78示意了VDE“存放库”的示例;

图79-83示意了一个说明处理和控制链演变及变换VDE管理的信息内容和控制信息的例子;

图84示意了涉及若干类别的VDE参与者的处理和控制链的另一个示例;

图85示意了某个组织内部的分发和处理链的另一个示例;

图86和86A示意了处理和控制链的另一个示例;以及

图87示意了虚拟硅容器模型的示例。

发明详述

图1-7和下面的论述对本发明所具特性的几个方面给出了一个概述,在概述之后对根据本发明的实施例进行了更为技术化的详细说明。

概述

图1示意了根据本发明可以提供的一个“虚拟分发环境”(“VDE”)100。图1中,信息服务中心200与诸如电话线或有线电视电缆之类的通信设施202相连。电话线或有线电视电缆202可以是“电子信息高速公路”的一部分,它将电子信息在各地间传输。传输线202将信息服务中心200与其它地方的人员相连,举例来说,这些人员可以是消费者208、办公室210、影视制作室204以及出版社214。上述与信息服务中心200相连的每类人员可被称作一个“VDE参与者”,这是因为他们可以参与虚拟分发环境100中所发生的交易。

虚拟分发环境100可以支持几乎任何你能想到的交易类型。下面给出了虚拟分发环境100可以支持的许多交易类型中的几种:

●家庭银行事务和电子付款;

●电子化法律合同;

●信息内容分发,这些信息内容可以是电子出版物、影视、声音、图象或计算机程序;

●私人信息(如病历和金融信息)的安全通信。

虚拟分发环境100之所以是“虚拟的”,是因为它不需要许多以前所必须的“实物”来保护权利、确保可靠和可预测的分发、以及确保对信息内容创建者和分发者的适当报酬。例如,以前,信息以磁带或磁盘为介质分发,而这类介质难以复制。以前,私人或秘密的信息内容是放在封口的信封或上锁的公文包中由信使传送从而完成分发。为了保证适当的报酬,用户只有付给卖主现金后才能得到商品和服务。尽管信息服务中心200可以通过传送诸如电子存贮介质之类的“实物”来进行信息的交付,虚拟分发环境100则实现了方便的、完全电子化的“处理和控制链”

虚拟分发环境的灵活性支持交易活动

信息服务中心200可灵活地支持多种不同的信息交易。不同的VDE参与者可以定义和(或)参与一项交易的不同部分。信息服务中心200可以协助发布交易信息,此外它本身即可以是交易参与者之一。

例如,图1右上角的影视制作室204可以创作影视节目。影视制作室204可以通过传输线202发送这些节目,或者使用其它发送途径,例如卫星链路205和CD ROM传送服务216。影视制作室204可以将节目直接发送给消费者206、208、210,或者可以将节目发送到信息服务中心200,信息服务中心200可以先把节目保存起来,以后再发送给消费者。每个消费者206、208、210都能够接收和使用由影视制作室204创作的节目,前提是影视制作室204或信息服务中心200已经为这些消费者安排了具有给予消费者这些节目的使用权的适当的“规则和控制”(控制信息)。

即使消费者得到影视节目的拷贝,如果她没有得到用以授权使用节目的“规则和控制”,她也无法观看或复制这些节目。用户只有经“规则和控制”允许才能使用这些节目。

例如,影视制作室204可能放送半小时体操录像节目,并希望尽可能多的观众将收看该节目。影视制作室204希望每次收看收费2.00美元。影视制作室204可以通过信息服务中心200使体操录像节目以“保护”形式提供给所有消费者206、208、210。影视制作室204也可以提供该录像的“规则和控制”。比方说,这些“规则和控制”可以限定:

(1)任何消费者,只要具有良好信用,也即在独立金融提供者212(如Mastercard或VISA)提供的信用帐户上存有至少2.00美元,可以收看该录像。

(2)虚拟分发环境100可以在消费者每次收看录像时进行“计量”,并经常地将使用情况报告给影视制作室204。

(3)金融提供者212可以从收看录像的每位消费者的信用卡帐户上以电子方式收取付款(2.00美元),并将这些付款传送给影视制作室204。

信息服务中心200甚至允许一个小的影视制作室向用户销售影视节目,并收取其劳动报酬。而且只要向影视制作室支付适当报酬,其它影视出版商可以使用该影视节目用来增值,或充当二次包装商或二次销售商。

图1还示意了出版社214。出版社214可以充当作者206的分发商。出版社214可以向诸如办公室210之类的消费者分发使用“信息内容”(如计算机软件、电子报纸、出版社214制作的录像节目、声音或任何其它形式的数据)的权利。可以用出版社216分发的“规则和控制”定义这些使用权利。出版社216可以将这些“规则和控制”与信息内容一同分发,但这不是必须的。由于信息内容只能由那些得到适当“规则和控制”的用户使用,信息内容和其相关“规则和控制”可能在不同时间、以不同方式、由不同的VDE参与者分发。VDE能够与“规则和控制”所适用的信息内容分开安全地分发和实施“规则和控制”,其优点是显著的。

由出版商14分发的使用权利可以允许办公室210制作并向其雇员分发该信息内容的拷贝。办公室210可以通过将“处理和控制链”延长至其雇员而充当二次销售商。办公室210可以增加或修改“规则和控制”(要和从出版社214收到的“规则和控制”相容)从而产生办公室内部的控制信息和机制。例如,办公室210可以为办公室中的每个用户和(或)小组设定一个最大使用预算,或者只允许指定的雇员和(或)小组访问特定的信息。

图1中给出了信息传送服务216,信息传送服务216将诸如“CDROM”光盘之类的电子存贮介质传送给消费者206。虽然电子存贮介质本身未经信息服务中心200通过传输线202传送,它们仍然是虚拟分发环境100的一部分。电子存贮介质可以用来分发信息内容,“规则和控制”或其它信息。

信息服务中心200内部组成举例

图1中的信息服务中心200可以是许多参与者的集合,这些参与者可以是分发商、金融票据交换所或管理员。图1A示意了信息服务中心200内部组成的例子。每一个信息服务中心参与者200a-200g均可以是一个独立的组织/企业。可以有任意数量的参与者200a-200g。在本例中,电子“开关”200a将信息服务中心200内部各部分相互连接,并将内部各部分与外部参与者相连,或者也可以将各外部参与者相互连接。

信息服务中心200可以包含“交易处理器”200b,它根据来自参与者和(或)报告接收者200e的请求处理交易(如转移电子基金)。信息服务中心200还可以包含“使用情况分析员”200c,他对汇报上来的使用情况信息作出分析。“报告生成者”200d可以根据使用情况生成报告,并且可以将这些报告提供给外部参与者和(或)信息服务中心200内部的参与者。“报告接收者”200e可以从信息内容用户那里接收诸如使用情况之类的报告。“许可代理”200f可以根据用户的信用概况分放批准使用权和分发许可权的“规则和控制”。管理员200h可以发出信息以便使虚拟分发环境100正常工作。信息内容和消息存贮设备200g可以存放信息,以供信息服务中心200内部或外部的参与者使用。

使用处理和控制链分发信息内容的例子

如上所述,虚拟分发环境100可以用来管理几乎任何类型的交易。可以用虚拟分发环境100管理的一种重要的交易类型是分发或传送“信息内容”或其它重要信息。图2更加抽象地示意了一个“模型”,该模型说明了如何利用图1的虚拟分发环境100为信息内容的分发提供“处理和控制链”。图2中的每个框对应于图1所示的一个或多个VDE参与者。

在图2中的例子中,VDE信息内容制作者102制作了“信息内容”。信息内容制作者102还可以为分发该信息内容规定“规则和控制”。这些与分发有关的“规则和控制”可以规定谁有权分发信息内容的使用权,以及可以允许多少用户使用该信息内容。

箭头104表示信息内容制作者102通过电子高速公路108(或其它途径,如由美国邮件之类的投递服务传送的光盘)向VDE权利分发者106(“分发者”)发送与信息内容相关的“规则和控制”。信息内容的分发途径可以与发送“规则和控制”所使用的相同或不同。分发者106生成其自己的、与信息内容的使用相关的“规则和控制”。与使用相关的“规则和控制”可以限定用户对信息内容能做什么,不能做什么,以及使用信息内容要花费多少。这些与使用相关的“规则和控制”必须与信息内容制作者102所规定的“规则和控制”相一致。

箭头110表示分发者106通过向诸如消费者等信息内容用户112发送信息内容的“规则和控制”来分发信息内容的使用权。信息内容用户112遵照与使用相关的“规则和控制”使用信息内容。

在图2的例子中,如箭头114所示,与信息内容使用相关的信息被汇报给了金融票据交换所116。根据此汇报,金融票据交换所116可以生成帐单,并通过“报告和付款”网络118将帐单发送给信息内容用户112。箭头120表示信息内容用户112向金融票据交换所116交纳信息内容的使用费用。金融票据交换所116可以根据收到的报告和付款,向分发者106提交报告和(或)付款。如箭头122所示,分发者106可以向信息内容制作者102提交报告和(或)付款。金融票据交换所116可以直接向制作者102提交报告和付款。汇报和付款可以不同地进行。例如,金融票据交换所116可以直接地或通过代理向每个VDE信息内容制作者102以及权利分发者106提交报告和(或)付款,并向信息内容用户112提交报告。

分发者106以及信息内容制作者102可以是同一个人,也可以是不同的人。例如,某个音乐表演小组可以通过制作和分发其本身的音乐录制品从而既充当信息内容制作者102也充当分发者106。另一个例子中,出版社可以作为分发者106而分发由作者型信息内容制作者102制作的作品的使用权。信息内容制作者102可以利用分发者106有效地管理信息内容分发的财务结果。

图2所示的金融票据交换所116也可以是“VDE管理员”。作为管理员的金融票据交换所116向VDE参与者发送“管理”信息。这些管理信息有助于维持虚拟分发环境100正常工作。“VDE管理员”和金融票据交换所的角色可以由不同的人员和公司来担任,并且担任该角色的人员和公司可以多于一个。

有关“规则和控制”的更多内容

虚拟分发环境100禁止使用被保护信息,除非使用该信息是“规则和控制”(控制信息)所允许的。例如,图2所示的“规则和控制”可以给予特定的个人或信息内容用户组112对某个信息内容的使用权。这些“规则和控制”可以规定在信息内容的使用类型中哪些是允许的,哪些是禁止的,还可以规定如何交纳信息内容的使用费以及交纳多少。在另一个的例子里,“规则和控制”可以要求将信息内容使用信息的报告返回给分发者106和(或)信息内容制作者102。

“处理和控制链”中的每一个VDE参与者一般均要服从“规则和控制”。“规则和控制”定义了每个不同VDE参与者各自的权利和义务。“规则和控制”提供了在参与者之间建立相互依赖性和相关性的信息和机制。“规则和控制”具有灵活性,允许虚拟分发环境100支持绝大多数“传统”的商业交易,例如:

“规则和控制”可以规定哪个(哪些)金融票据交换所116可以处理付款,

“规则和控制”可以规定哪个(或那些)参与者可以接收何种使用报告,以及

“规则和控制”可以规定向一定的参与者公开一定的信息,而其它信息对他们保密。

“规则和控制”可以限制其自身是否可以被修改,如何修改。通常,由一个VDE参与者规定的“规则和控制”不能被另一个VDE参与者修改。例如,某个信息内容用户112通常不能修改由分发者106规定的、要求用户按某种价格支付信息内容使用费的“规则和控制”。“规则和控制”可以在通过“处理和控制链”时“保持不变”,而在从一个VDE参与者传递给下一个的过程中被“继承”下来。

根据需要,VDE参与者可以规定:他们的“规则和控制”在其本身或其它“规则和控制”所指定的条件下可以被修改。例如,由信息内容制作者102规定的“规则和控制”可以允许参与者106“抬高”使用价格,正如零售店“抬高”批发商品的价格一样。图2A示意了一个例子,其中某些“规则和控制”在从信息内容制作者102传递到信息内容用户112的过程中保持不变;其它“规则和控制”被分发者106修改和删除;而另外一些“规则和控制”则被该分发者添加进来。

“规则和控制”可以对报告给其它VDE参与者的信息进行限制,从而保护信息内容用户的隐私权。例如,“规则和控制”可以规定以匿名方式报告信息内容的使用信息而不暴露信息内容用户的身份,或者根据要求,在允许的前提下只将某些信息暴露给某些参与者(例如从使用情况中得到的信息)。这种功能安全地控制了哪些信息可被暴露以及可向哪些VDE参与者暴露,从而保护了所有VDE参与者的隐私权。

规则和信息内容可以被分开传递

如上所述,虚拟分发环境100将信息内容和相应“规则和控制”联系在一起,并禁止在没有一组相应“规则和控制”的前提下使用或访问信息内容。分发者106无需为控制信息内容的分发而传递信息内容。较佳实施例通过保护授以使用权的相应“规则和控制”使之避免被未经授权地分发和使用,从而可以安全地保护信息内容。

在某些例子中,“规则和控制”可以与它们所适用的信息内容一起传送。虚拟分发环境100也可以允许“规则和控制”与信息内容分开传送。由于任何人在未得到相应“规则和控制”的允许时都无法使用或访问被保护的信息内容,因而分发者106可以控制对已经(或将要)传送出去的信息内容的使用。“规则和控制”的传送途径和时间可以与信息内容的不同。信息内容制作者102可以通过电子高速公路108将信息内容传送给信息内容用户112,或者通过该“高速公路”将信息内容传送给所有人。信息内容可以在发出后即可用,也可以存贮起来留待以后使用或再使用。

虚拟分发环境100还允许分开传递付款和报告。例如,信息内容用户112可以具有一个虚拟“信用卡”,该卡可扩大信用(最大到一特定极限)用以支付任何信息内容的使用费。“信用交易”可以发生在用户所在地点,而无需任何“在线”连接或进一步授权。本发明有助于安全地保护虚拟“信用卡”,使之避免被未授权地使用。

规则和信息内容的定义过程

图3示意的例子描述了基于“规则和控制”的一个全过程。它包含“事件”过程402,计量过程404、记帐过程406和预算过程408。并非所有图3所示的过程都要被每套“规则和控制”所采用。

“事件过程”402检测发生的事情(“事件”),并决定哪些事件需要其它“过程”作出反应。事件可以包括使用信息内容的请求,也可以产生一个使用许可。某些事件可能需要额外处理,而其它的则不必。事件是否需要额外处理取决于相应于信息内容的“规则和控制”。例如,没有许可的用户其请求将得不到满足(“禁止通行”)。另一个例子中,每个“翻看电子书籍新一页”的用户请求均可得到满足(“通行”),但可能无需对这些请求进行计量、记帐或预算。购买了小说的拷贝的用户可得到许可:只要他愿意便可以任意多次地以打开和阅读该小说而不必进行额外计量、记帐或预算。在这个简单例子中,“事件过程”402可以在用户第一次要求打开被保护小说时(于是可以要求用户支付购买费用)对计量、记帐和(或)预算过程发出请求,而将后续的打开同一小说的请求视为“无意义事件”。对于其它信息内容(如检索电子电话簿)则可以要求用户在每次访问时都要交纳费用。

“计量”过程404对事件进行记录,并可将使用情况报告给分发者106和(或)其他适当的VDE参与者。图4示意的是过程404可以建立在大量不同因素的基础上,这些因素的例子包括:

(a)需收费的使用类型

(b)收费所基于的计量单位

(c)每个单位需收取的费用

(d)何时产生报告

(e)如何付款

这些因素可以由控制计量过程的“规则和控制”进行规定。

记帐过程406决定对事件收取多少费用。它记录并报告付款信息。

预算过程408对信息内容的允许使用量进行限制。例如,预算过程408可以根据信用卡帐户上的可用金额来限制信息内容被访问或复制的次数,或者限制信息内容可被使用的页数或其它量度。预算过程408记录并报告有关上述限制的财经和其它交易信息

一旦这些过程成功地执行完毕后,便可将信息内容交付给用户了。

容器和目标

图5A示意的是在一个较佳实施例中,虚拟分发环境100如何将信息元素(信息内容)包装到“容器”302中,从而保证在没有其“规则和控制”的提供下无法访问这些信息。通常,容器302是电子的而不是物理的。在一个例子中,电子容器302包含了“数字”信息,该“数字”信息含有严格定义的数据结构。容器302及其信息内容可被称作“对象300”。

图5A中的例子示意了容器302内含和封装的项。然而,容器302也可以包含没有实际存贮在该容器内的项。例如,容器302可以引用保存在任何地方(如在远程的其它容器中)的可用的项。容器302可引用在不同时间上或只在有限的时间中可利用的项。某些内容可能太大以至无法保存在容器302中。可以在特定时间以录像的“实况传送”方式将项传递给用户。即使在这种情况下,本例中容器302即(通过引用方式)“包含”了这种“实况传送”。

容器302可以包含电子(如数字)形式的信息内容304。信息内容304可以是小说正文、图片、音乐表演或朗读之类的声音、电影或其它录像、计算机软件,或你能够想到的任何电子信息。其它类型的“对象”300(如“管理对象”)可以包含“管理”或其它类型信息,作为信息内容304的替代或补充。

在图5A的例子中,容器302也可以包含下列形式的“规则和控制”:

(a)“许可记录”808

(b)“预算”308

(c)“其它方法”1000

图5B给出了有关许可记录808、预算308和其它方法1000的一些补充细节。“许可记录”808规定了与对象300有关的权利,如谁可以打开容器302,谁可以使用对象的内容,谁可以分发对象,以及应该使其它哪些控制机制生效。举例来说,许可记录808可以规定用户使用、分发和(或)管理容器302及其内容的权利。许可记录808还可以规定由预算308和“其它方法”1000所申请的要求。许可记录808还可以含有有关安全的信息,如加密和解密密钥。

图5B所示的“预算”308是一种特殊类型的“方法”1000,它可以规定的内容包括信息内容304的使用限制,以及使用费用的付款方式。预算308可以规定整个信息内容304可被使用和(或)复制的量有多少。方法310可以禁止使用超过一个特定预算所规定的量。

“其它方法”1000定义了“规则和控制”所采用的基本操作。该“方法”1000可以包含:如何计量使用情况,信息内容304和其它信息是否或如何被加密和解密,以及其它与管理和控制信息内容304有关的过程。例如,方法1000可以记录任何打开了电子容器302的人的身份,并可根据“计量”来控制如何收取信息内容的使用费用。方法1000可以适用于一个或多个不同的信息内容304及其相关容器302,也可适用于信息内容304的所有或指定部分。

安全处理单元(SPU)

每个“VDE参与者”可以带有一个“电子设备”,该设备可以是或者包含一台计算机。该设备可以通过电子高速公路108进行通讯。图6示意了本例中每个VDE参与者所使用“电子设备”中的安全处理单元(“SPU”)500部分。SPU500在安全处理环境503中处理信息,并安全地保存重要信息。SPU500可以由运行于宿主电子设备中的软件进行仿真。

SPU500封装于“防破坏安全屏障”502中,并受其保护。安全屏障502将安全环境503与外界分隔开来。它防止安全环境503中的信息和过程在非安全条件下被观察、干扰和离开。屏障502还控制外部对SPU500内部安全资源、过程和信息的访问。在一个例子中,防破坏安全屏障502的组成包括诸如“加密”之类的安全特性和用来检测破坏,以及(或者)在检测到破坏时销毁安全环境503中敏感信息的硬件设施。

本例中的SPU500是一个集成电路(“IC”)芯片504,它包括“硬件”506和“固件”508。SPU500通过“设备链”510与其余电子设备相连。本例中的SPU“固件”508是“软件”,例如“嵌入”到芯片504中的“计算机程序”。固件508使硬件506能够工作。硬件506最好含有一个处理器以执行由固件508指定的指令。“硬件”506还包含长有效期和短有效期存贮器,以安全地保存信息,使之避免破坏。SPU500还可以含有一个受保护的时钟/日历用来对事件计时。本例中的SPU硬件506可以包含经过专门设计的专用电子线路用以快速有效的执行特定过程(如“加密”和“解密”)。

SPU500的特定应用环境将决定SPU500应具备处理能力的多寡。本例中的SPU硬件506所提供的处理功能至少足够支持图3所示过程的安全部分。在某些环境中,SPU500的功能可能需要加强,从而可以执行所有的电子设备处理,而且可以集成到通用处理器内部。在另外的环境中,SPU500可以与一个通用处理器协同工作,因而只需有足够的能力来完成安全过程即可。

VDE电子设备和权利操作系统

图7示意了包含SPU500的电子设备600的一个例子。电子设备600实际上可以是任何电气或电子设备,例如:

●计算机

●电视“机顶置”控制盒

●寻呼机

●电话机

●声音系统

●影像再生系统

●视频游戏机

●“智能”信用卡

本例中的电子设备600可以含有键盘612、声音识别器613和显示器614。用户可以通过键盘612和(或)声音识别器613输入命令,并在显示器614上观看信息。设备600可以通过电子设备中通常使用的任何连接/设备与外界通信。图下部示意了连接/设备的一些例子,它们是:

“调制解调器”618或其它电信链路;

CD ROM盘620或其它存贮介质或设备;

打印机622;

广播接收装置624;

文件扫描器626;以及

将设备与网络相连的“电缆”628。

虚拟分发环境100提供了“权利操作系统”602,“权利操作系统”602通过控制设备600和SPU500两者的硬件资源,对两者进行管理。操作系统620也可支持至少一个“应用”608。“应用”608通常是一个专用于设备600所在环境的硬件和(或)软件。例如,如果设备600是一台个人计算机,那么“应用”608可以是用户装载的一个程序,如一个字处理器、一个通信系统或一个录音系统。如果设备600是一个电视控制器盒,那么应用608可以是某种硬件或软件,它允许用户视频点播,或进行其它操作,如快进或快倒。在本例中,操作系统602提供了一个标准的、严格定义的、通用的界面,以支持多种不同的“应用”608。本例中的操作系统602提供了“权利和检查操作系统功能”604和“其它操作系统功能”606。“权利和检查操作系统功能”604安全地处理与虚拟分发环境100相关的任务。SPU500提供或支持“权利和检查操作系统功能”604中的许多安全功能。“其它操作系统功能”606处理一般的设备功能。可以从头设计整个操作系统602,使之包含“权利和检查操作系统功能”604和“其它操作系统功能”606,或者将“权利和检查操作系统功能”加入到现有的、提供“其它操作系统功能”的操作系统之上。

本例中的“权利操作系统”602可以支持多种不同的设备600。例如,它可以支持大型计算机,“小型计算机”和诸如个人计算机和便携式计算机之类的微型计算机。它也可以支持置于电视机上方的控制盒、小型便携寻呼机、桌上型收音机、立体声系统、电话机、电话交换机或其它任何电子设备。这种既能支持大型设备又能支持小型设备的能力称为“具有可伸缩性”。一个“具有可伸缩性”的操作系统602意味着存在一个标准界面,该界面能够跨越多种不同的设备并完成多种不同的任务。

在本例中,“权利操作系统功能”604是“基于服务的”。例如,“权利操作系统功能”604处理由应用608发来的概要请求,而不是要求该应用不断地发出更详细的“子请求”,或者使之陷入涉及满足一个概要请求所需进行的底层繁琐处理之中。例如,应用608可以简单地请求阅读指定的信息;然后“权利操作系统功能”604可以判断所需信息是否为受VDE保护的信息内容,如果是的话,执行使该信息可用的过程。这种特性称为“透明性”。“透明性”使应用608可以更加容易地执行任务。“权利操作系统功能”604支持的应用可以丝毫“不了解”虚拟分发环境100。知道虚拟分发环境100的应用608可以更深入地利用虚拟分发环境100。

在本例中,“权利操作系统功能”604是“事件驱动”的。“权利操作系统功能”604直接响应设备600中发生的事件,而不是反复检查电子设备600的状态,以确定是否发生了一个事件。

在本例中,由“权利操作系统功能”604完成的某些服务可以根据递送给操作系统602的附加“组件”进行扩展。“权利操作系统功能”604可以收集和使用由不同参与者在不同时间传送来的“组件”。“组件”有助于使操作系统602“具有可伸缩性”。某些组件可以根据设备是小型的还是大型的(如多用户环境)来改变它们在其上的服务工作方式。另外一些组件的设计则可以支持特定应用或某类应用(如某种计量和某种预算)。

电子设备600

较佳实施例中的电子设备600可以是任意具有如下特征的电子装置:它含有一个或多个微处理器和(或)微控制器,以及(或者)其它完成逻辑和(或)数学计算的设备。这些设备包括计算机、计算机终端、计算机用设备控制器、数字显示设备、电视机、视像和声/像投影系统、广播和(或)有线传送用频道选择器以及(或者)解码器、遥控设备、录像机或录音机、包括光盘播放器、视盘播放器和磁带播放器在内的媒体播放器、声频和(或)视频放大器、虚拟现实机、电子游戏机、多媒体机、收音机、电话、可视电话、传真机、机器人、包括机器工具等在内的数值控制机器、以及其它具有如下特征的(包括那些尚未面世的)设备:它含有一个或多个微计算机和(或)微控制器以及(或者)其它CPU。

图8示意了电子设备600的一个例子。该电子设备600含有一个系统总线653。在本例中,总线653连接了一个或多个传统通用中央处理单元(CPU)654。总线653将CPU654与RAM656,ROM658和I/O控制器660相连。系统总线653也可以连接一个或多个SPU500。系统总线653可以允许SPU500与CPU654通信,也可以允许CPU和SPU两者(通过公用地址和数据线)与RAM656,ROM658和I/O控制器660通信。电源659可以向SPU500、CPU654和所示的其它系统组件提供电源。

在图中的例子中,I/O控制器660与二级存贮设备652、键盘/显示器612,614、通信控制器666和备份存贮设备668相连。备份存贮设备668可以将信息存贮在如磁带670、软盘或可拆卸存储卡等之类的大容量介质上。通信控制器666可以使得电子设备600通过网络672或其它电信链路与其它电子设备通信。对于不同的电子设备600,即使它们采用了不同的CPU或不同的ROS602实例,而只要通常使用兼容的通信协议和(或)安全措施,它们便可以相互协作。在本例中,I/O控制器660允许CPU654和SPU500读取和写入二级存贮器652、键盘/显示器612,614、通信控制器666和备份存贮设备668。

二级存贮器652可以包含一个或多个相同且不安全的二级存贮设备(例如磁盘和光盘驱动器),以供电子设备600完成一般的二级存贮功能之用。在某些实现中,部分或全部二级存贮器652可以包含一个二级存贮设备,该设备被物理地封装在一个安全包装中。然而,由于在许多实现中使用物理措施来保障二级存贮器652的安全并非现实和廉价,因此先将信息加密后再保存到二级存贮器652中,从而使二级存贮器652能够安全地保存信息。如果在存贮前先对信息进行加密,那么对二级存贮器652或其内容的物理存取将不会轻而易举地泄露或破坏该信息。

本例中的二级存贮器652保存了CPU654和(或)SPU500所使用的代码和数据,这些代码和数据用来控制电子设备600的整体运行。例如,从图8中可以看到,图7所示的“权利操作系统”(“ROS”)602(包括ROS的部分604以及部分606,其中部分604提供VDE功能,而部分606则提供其它OS功能)可以存贮在二级存贮器652中。二级存贮器652也可以保存一个或多个VDE对象300。从图8中还可以看到,图7所示的安全文件610可以采用“安全数据库”或管理文件系统610的形式存贮在二级存贮器652中。该安全数据库610可以保存和组织由ROS602使用的、用来执行VDE功能604的信息。这样,二级存贮器652便可以保存用来完成VDE或其它功能604、606的可执行代码,以及与这些功能有关的安全文件610(还包括VDE对象300)。二级存贮器652还可以保存“其它信息”673,例如其它操作系统功能606进行任务管理所使用的信息、非VDE文件等等。在二级存贮器652中所指出的部分元素也可以存贮在ROM658中,只要这些元素没有修改要求(除了在更换ROM658的时候)。ROS602的某些部分尤其以保存在ROM658中为好(例如,在加电时用来为电子设备600创建操作环境的“引导”程序、POST程序等等)。

从图8可以看到,二级存贮器652也可以用来存贮图7所示的用户应用608所含代码(“应用程序”)。如图8所示,可以有两种通用类型的应用程序608:“VDE感知”应用608a,及非VDE感知应用608b。VDE感知应用608a可以在意识到VDE存在的情况下至少对某一部分进行特殊设计,从而能够访问和充分利用VDE功能604的详尽功能。由于ROS602具有“透明”特性,非VDE感知应用608b(如那些不是专门为VDE100所设计的应用)也可以访问和充分利用VDE功能604的功能。

安全处理单元500

较佳实施例中的每个VDE节点或其它电子设备600都可以含有一个或多个SPU500。SPU500可以用来完成VDE100要求的所有安全处理。例如,SPU500可用来对VDE保护的目标300进行解密(或解除安全)。它还可以用来管理加密的和(或)安全化的通信(如通过对信息进行验证和(或)纠错有效性检查)。SPU500还可以完成安全数据管理过程,包括管理VDE对象300的使用、核算以及适时的付款情况(通过使用预付款、信用、银行帐户上的实时电子借方记帐以及(或者)VDE节点代用货币存款帐户等方式)进行控制。SPU500可以执行与VDE对象300有关的其它交易。

SPU物理封装和安全屏障502

如图6所示,在较佳实施例中,SPU500可以由单个集成电路“芯片”505实现以提供一个安全的处理环境,在该环境中可以对机密的和(或)具有商业价值的信息进行安全地处理、加密和(或)解密。IC芯片505可以包含一个拇指指甲大小的小型半导体“圆片”。该半导体圆片可含有半导体和金属导线通路。这些通路定义了SPU500的电路,从而也就定义了其功能。某些通路电连通着芯片505的外部“管脚”504。

如图6和图9所示,SPU500可被一个防破坏硬件安全屏障502所包围。安全屏障502的某些部分由塑料或其它包装材料构成,SPU圆片被置于其中。由于SPU500内部进行的处理及其存贮的信息不易被外界访问,因而这些处理和信息相对比较安全,可避免受到未授权的访问和干扰。所有信号都需经过由BIU530提供的受控安全通道才可通过屏障502,该通道限制了外界对SPU500内部组件的访问。受控安全通道可阻挡外界企图访问SPU500内部的安全信息和资源。

可以除去IC芯片上的塑料包装,从而可访问到“圆片”。也可以对“圆片”本身进行分析和“反向工程”(如,使用各种逻辑分析仪和微探针在电路工作的同时收集和分析圆片上的信号,使用酸洗或其它技术除去半导体层从而暴露其它层,通过电子显微镜对圆片进行观察和拍照,等等)。虽然没有一种系统或电路能够绝对避免上述侵害,SPU屏障502可以包含附加的硬件保护措施使侵害的成功变得极其昂贵和费时。例如,可使用离子植入和(或)其它制造技术,使实际分辨SPU圆片导线通路变得异常困难,可以制造SPU内部电路使之在暴露于空气和(或)光线中的时候能够“自销毁”。SPU500可以在那种掉电后内容即消失的内存中保存机密信息。可以在SPU500中安置某种电路以检测微探针探测或者其它破坏,并在检测到破坏时自销毁(或破坏SPU的其它部分)。这些或其它基于硬件的物理安全措施是防破坏硬件安全屏障502重要技术因素。

为了进一步提高安全屏障502的安全性,可以将SPU500纳入或包含在一个或多个更进一步的物理封装中,这些封装包括:环氧树脂或其它封装化合物;更进一步的模块封装,包含具有附加的、检测到干扰时即激活的自销毁、自禁用或其它功能;更进一步的模块,该模块提供附加的安全保护措施,例如在询问口令或其它验证信息后才工作;以及诸如此类的其它装置。另外,可以进一步向底板添加金属层,以使得酸洗、微探针探测之类的操作更加困难。可以安置将内存清零的电路,以作为自销毁处理的一部分;塑料包装本身可经过设计用来抵御化学以及物理上的侵害;而SPU的内存可带有专用的寻址和刷新电路,该电路将数位的位置进行重新组合,这将使采用电手段判断内存单元的值变得相当复杂。这些或其它措施可以对保证屏障502的安全性发挥作用。

在某些电子设备600中,可以将SPU500与设备微控制器或同等物,或者设备I/O或通信微控制器一起集成到同一芯片(或芯片集)505中。例如,在一个较佳实施例中,可以将SPU500与一个或多个另外的CPU(如电子设备的CPU654)一起集成到单个元件或封装中。另外的CPU654可以是任意中央控制逻辑配置,如微处理器、其它微控制器和(或)阵列或其它并行处理器。这种集成配置可以使总体成本较低、总体体积较小,以及SPU500和CPU654潜在的交互作用速度加快。假如一个集成的SPU/CPU元件成为某个已广泛销售的微处理器产品线中的标准部件,那么集成化还可以拓宽销售范围。将SPU500合并到电子设备600的主CPU654中(或者合并到其它设备,或设备外围微计算机或其它微控制器中)可以从实质上降低VDE100的实现开销。集成化所需考虑的的问题可以包括实现成本、生产成本、所需安全级别、以及密集性值。

SPU500也可以与除CPU之外的其它元件一起集成。例如,对于视频或多媒体应用,(根据总体设计)将SPU500集成到视频控制器芯片或芯片集之中可以带来性能和(或)安全性的提高。SPU500也可以直接集成进网络通信芯片或芯片集等之中。将SPU500集成到调制解调器芯片或芯片集之中也可以为高速通信应用带来一定的性能提高。这将使得在诸如可独立操作的传真机之类的通信设备中安装SPU500的过程得到简化。SPU500也可以集成到其它外围设备中,例如CD-ROM设备、机顶置有线设备、游戏设备、以及其它多种电子设备,这些设备使用分布式信息、允许对分布式信息进行访问、完成与分布式信息相关的交易、或者消耗分布式信息。

SPU的内部结构

图9是一个SPU500实例内部结构的详细示意图。本例中的SPU500含有单个微处理器520和容量有限的存贮器,该存贮器配置为ROM532和RAM534。更详细地说,该SPU500实例含有微处理器520、加密/解密机522、DMA控制器526、实时时钟528、总线接口单元(“BIU”)530、只读存贮器(ROM)532、随机存取存贮器(RAM)534、和存贮器管理单元(“MMU”)540。DMA控制器526和MMU540虽是可选的,但如果没有的话,SPU500的性能将受影响。SPU500还可以包含可选的模式匹配机524、可选的随机数发生器542、可选的数学运算加速电路544,以及可选的压缩/解压缩电路546。公用地址/数据总线536可以在微处理器520和(或)DMA控制器526的控制之下在上述各种部件之间传送信息。利用附加的或补充的专用通路538可将微处理器520与其它部件相连(如通过连线538a与加密/解密机522相连,通过连线538b与实时时钟528相连,通过连线538c与总线接口单元530相连,通过连线538d与DMA控制器526相连,通过连线538e与存贮器管理单元(MMU)540相连)。

下面将对上述每个SPU部件进行详细说明。

微处理器520

微处理器520是SPU500的大脑。在本例中,它执行由(至少暂时地)保存在ROM532和(或)RAM534中的代码所指定的一系列步骤。在较佳实施例中,微处理器520含有一个专用中央处理装置(例如,RISC和(或)CISC处理器单元,微控制器,以及(或者)其它中央处理装置,或者在许多应用中不太想要的过程特有的专用控制逻辑),用以执行保存在ROM532和(或)其它存贮器中的指令。微处理器520可以是安全SPU500中的电路设计的独立元件或者独立封装。

在较佳实施例中,微处理器520通常处理电子设备600的操作中与安全性最敏感的方面。例如,微处理器520可以管理VDE加密、解密、特定信息内容和(或)设备使用的控制信息,跟踪VDE中安全化信息内容的使用,以及完成其它与VDE使用控制相关的功能。

在每个SPU500和(或)电子设备的二级存贮器652中,所保存的内容可以是下述各部分的一个实例,即:ROS620软件;应用程序608;对象300—它含有由VDE控制的所有物的内容及相关信息;以及管理数据库610—它保存与对象和VDE控制信息有关的信息。ROS602含有供SPU微处理器520执行的软件,用来使电子设备600部分地控制对VDE相关对象300的使用。这些SPU程序含有用来完成基本控制功能的“加载模块”,这在后面将要解释到。上述各种程序以及相关数据将主要由微处理器520执行和处理。

实时时钟(RTC)528

在较佳实施例中,SPU500含有一个实时时钟电路(“RTC”)528,它为SPU提供可靠的、防破坏的时基。在较佳实施例中RTC528记录日期时间(如月份、日期和年份),因而可以含有日历和时钟的组合。对于实现基于时间的使用计量措施、“带有有效期的解密密钥”以及其它基于时间的SPU功能来说,可靠的时基是重要的。

RTC528必须上电才能工作。最佳情况下,RTC528的电源可含有一个装载于SPU500或其它安全封装内部的小型电池。不过,RTC528使用的电源也可以是SPU500外部的电源,如外部电池。这种外部电源可以向RTC528提供相对不易中断的电源,也可以使SPU500中本来易丢失信息的至少部分RAM534保持信息不丢。

在一种实现中,电子设备电源659也用来为SPU500供电。将任意一种外部电源作为RTC528的唯一电源来使用,将显著地降低基于时间的安全技术的有用性,除非SPU500能够至少识别出外部电源供电的任何中断(或任何部件中断),记录该中断,并做出可能的适当响应,如禁止SPU500执行某种或所有VDE过程的能力。为识别电源中断,可以使用一个在电源失效时将被触发的电路。该电源失效感测电路可为另外的电路进行供电,而另外的这些电路又含有用以记录一个或多个电源失效事件的相关逻辑。电容放电电路可以提供运行该逻辑所必需的短暂电源。附加或者作为一种替代,如果可以获得宿主电子设备600的时钟输出,那么SPU500可以经常地将RTC528的输出与宿主电子设备600的时钟输出进行比较。如果发现误差,SPU500可以做出适当响应,包括记录该误差,以及(或者)禁止SPU500在至少某些情况下执行至少某些过程部分。

如果电源失效和(或)RTC528误差、以及(或者)其它事件表明了出现破坏的可能性,SPU500可自动地将其所保存的一部分或多部分敏感信息破坏或使之不经过特权的干预便无法访问,此处的敏感信息的例子包括:有关执行的信息和(或)有关加密密钥的信息。为再次提供SPU操作,作为一种恰当的作法,上述被破坏的信息将必须由VDE金融票据交换所、管理员和(或)分发者来复原。通过远程下载更新的和(或)复原的数据和(或)代码可以实现上述过程。如果出现上述的过程和/或信息禁用和/或破坏事件,为重新初始化RTC528,电子设备600可请求与管理员、金融票据交换所、和(或)分发者进行一次安全的VDE通信。在此之前,SPU500的某些或所有安全过程不得运行。

最好提供一种机制以便对RTC528进行设置和(或)同步。在较佳实施例中,当VDE电子设备600与另外的VDE设备之间发生通信时,在授权为“高级的”、有控制权一方的控制下,可将RTC528的输出与受控RTC528的输出时间比较。一旦出现误差将采取适当措施,包括:重新设置参加通信的“低级的”受控一方的RTC528。

SPU加密/解密机522

在较佳实施例中,SPU加密/解密机522提供专用硬件(如硬件状态机),以迅速有效地对数据进行加密和(或)解密。在某些实现中,加密/解密功能可以由微处理器520在软件控制下来承担,但是设置专用加密/解密硬件机522通常提高性能。如果需要的话,微处理器520可以包含处理器电路和专用加密/解密逻辑,它们被集成在同一电路布局中,从而比如可以最佳地共享一个或多个电路元件。

通常最好采用具有计算高效性但又高度安全的“批量”加密/解密技术来保护大多数由SPU500处理的数据和对象。最好使用极为安全的加密/解密技术作为一种方式,对正在建立通信信道的电子设备600的身份进行验证,并保障被传送的许可、方法和管理信息的安全性。在较佳实施例中,加密/解密机522含有对称密钥加密/解密电路(如DES,Skipjack/Clipper,IDEA,RC-2,RC-4等等)和反对称(非对称)或公开密钥(“PK”)加密/解密电路。公开/私有密钥加密/解密电路主要作为一种方式来保障SPU500与VDE管理员以及其它处于VDE安全子系统间的电子设备600之间通信的安全性。对称密钥加密/解密电路可用来“批量”地加密和解密保存于SPU500所在电子设备600的二级存贮器662中的大多数数据。该对称密钥加密/解密电路也可用来加密/解密保存于VDE对象300中的信息内容。

DES或公用/私有密钥方法可用于所有加密功能。在另一个实施例中,除DES和公用/私有密钥方法之外的其它加密和解密方法可用于各种有关加密的功能。例如,可用其它类型如使用相同密钥进行加密和解密的对称加密/解密技术来代替DES加密和解密。较佳实施例可以支持多种加密/解密技术,这些技术使用了加密/解密机522中的多个专用电路,并且(或者)使用了SPU500中的处理结构。

模式匹配机524

可选的模式匹配机524可提供专用硬件用以完成模式匹配功能。SPU500可以执行的一种功能是对VDE对象和其它项进行有效性检查/验证。有效性检查/验证经常涉及对长数据串进行比较,以判断它们是否按照预定方式匹配。另外,某些使用形式(如被访问元素的逻辑和/或物理(连续)相关性)可能需要搜索长数据串,以寻找某些位模式或其它与有意义的模式相关的量度。尽管可以由SPU微处理器520在软件的控制下进行模式匹配,而提供专用硬件模式匹配机524将加速模式匹配的过程。

压缩/解压缩机546

SPU500中可含有可选的压缩/解压缩机546用以压缩和(或)解压缩VDE目标300中保存或发布的信息内容。压缩/解压缩机546可以采用硬件电路来实现一种或多种压缩算法,从而提高压缩/解压缩操作的性能。如果不用硬件电路,则要使用运行于微处理器520上或SPU500之外的软件来进行压缩/解压缩操作。在视像或声音之类的数据发布时,解压缩有重大意义,这是因为这类数据在发布之前通常是被压缩的,而其解压速度又是很重要的。在某些情况下,将供使用监视目的所用的信息(如记录分隔符或其它分界符)由一个压缩层加以隐藏,该压缩层在SPU内部检测和使用上述信息之前必须被除去。

随机数发生器542

可选的随机数发生器542可提供专用硬件电路,用以产生随机数(例如从量子噪声之类的、本来就无法预知的物理过程中产生随机数)。这种随机数在创建加密密钥或唯一的标识符时、或在伪随机数序列生成过程的初始化时特别有用。随机数发生器542可以产生合适长度的数值,包括每次提供小至一个位的数值。通过将随机数发生器542产生的数值串接在一起便可以构造任意大小的随机数。用随机数发生器542产生随机数密钥和种子,再通过加密/解密机522或SPU500中的加密算法对之进行循环加密,就可以产生具有强的保密特性的伪随机数序列。这种序列可以用于私有头信息,以阻止通过加密分析手段来推断密钥。

运算加速器544

SPU500中可设有一个可选的、采用硬件电路形式的运算加速器544,它可以快速地完成数学运算,例如涉及大数的乘法和指数运算。可由(举例来说)微处理器520或加密/解密机522发出执行这些运算的请求,以协助完成进行特定非对称加密/解密运算所需的计算。该运算加速器是此项技术的熟练人员所熟知的。再某些实现中,可以省去单独的运算加速器544,而所有必需的运算均可以在软件的控制下由微处理器520完成。

DMA控制器526

DMA控制器526控制信息在地址/数据总线536上传输,而无须要求微处理器520去处理每个单独的数据传输。典型地,微处理器520可向DMA控制器526写入目标和目的地地址以及需传输的字节个数,然后DMA控制器526可自动地在SPU500的部件之间(如:从ROM532到RAM534、在加密/解密机522和RAM534之间、在总线接口部件530和RAM534之间,等等)传输一块数据。DMA控制器526可以含有多个通道以同时处理多个传输。在某些实现中,可省去单独的DMA控制器526,而所有必需的数据传输均可在软件的控制下由微处理器520完成。

总线接口部件(BIU)530

总线接口部件(BIU)530使信息穿过安全屏障502在SPU500和外界之间进行传送。图9所示的BIU530加上适当的驱动软件可构成图6所示的“设备链”510。在较佳实施例中,总线接口部件530可能根据USART或PCI总线接口进行设计。在本例中,BIU530将SPU500与图8所示的电子设备系统总线653相连。经过设计,BIU530禁止对SPU500内部部件及其内容的未授权访问。其实现方法是:BIU530只允许与SPU500相关联的信号被运行于微处理器520中的控制程序所处理,而不支持对SPU500内部部件的直接访问。

内存管理部件540

内存管理部件(MMU)540如果存在的话,则对内存管理和虚拟内存管理功能提供硬件支持。它也可以通过对安全执行空间实行强制性硬件隔离来提高安全性(例如,禁止不甚可信的任务修改较为可信的任务)。下面将结合讨论SPU500所支持的安全处理环境(“SPE”)503的体系结构,对MMU540进行更详细地说明。

MMU540也可以在硬件层次提供与内存管理有关的支持功能,如地址映射。

SPU存贮器体系结构

在较佳实施例中,SPU500使用3种通用类型的存贮器:

(1)内部ROM532;

(2)内部RAM534;及

(3)外部存贮器(通常为宿主电子设备提供的RAM和/或盘)。

SPU500内部的ROM532和RAM534提供了安全的操作环境和执行空间。由于成本限制、芯片制造规模、复杂度以及其它限制,在SPU500中不可能提供充足的存贮器以存贮SPU需以安全方式进行处理的所有信息。由于SPU500内部可以包含的ROM532和RAM534具有容量的实际限制,SPU500可以将信息保存在外部存贮器中,并根据需要将该信息移入或移出其安全的内部存贮器空间。在此情况下,通常必须将SPU执行的安全处理步骤分成小块的、经过安全封装了的单元,而这些单元可能被“页调入”或“页调出”有限可用的内部存贮器空间。SPU500外部的存贮器可能没有安全性。由于外部存贮器可能没有安全性,SPU500可以首先对代码和其它信息进行加密并加入密封码,然后再保存到外部存贮器中。类似地,SPU500通常必须首先对取自外部存贮器中的代码和其它信息进行解密,然后再根据该信息进行处理(如执行)。在较佳实施例中,针对SPU500中可能的存贮器限制,有两种通用的解决途径。在第一种情况下,小块的、经过安全封装了的单元代表安全数据库610中所包含的信息。在第二种情况下,上述单元可以代表被保护的(如被加密的)虚拟内存页。尽管虚拟内存页可以对应于保存于安全数据库610中的信息单元,而在本例的SPU存贮器体系结构中并不要求如此。

下面将对三种SPU存贮器资源进行详细说明。

SPU内部ROM

SPU500的只读存贮器(ROM)532或具有类似功能的设备为特定程序以及其它信息提供了非易失性的内部安全存贮。例如,ROM532可能保存“核心”程序,如SPU控制固件508,或者在需要的情况下保存加密密钥信息和某些重要的“加载模块”。“核心”程序、加载模块信息和加密密钥信息启动对SPU500某些基本功能的控制。可以在ROM532中装入一些至少部分依赖于设备配置的组成部分(如POST、存贮器分配模块,以及调度模块),以及另外一些经确定为特定安装和应用所需要的加载模块。

在较佳实施例中,ROM532可以含有带掩模的ROM532a和EEPROM以及(或者)等价“快速”存贮器532b。EEPROM或快速存贮器532b用来保存需要更新和/或初始化的项,如特定加密密钥。提供EEPROM和/或快速存贮器532b的另一个好处是:可以根据特定位置的典型使用情况,对始终保存在SPU500中的任何加载模块和库函数进行优化。尽管这些项也可以保存在NVRAM534b中,但EEPROM和/或快速存贮器532b可能更廉价一些。

带掩模的ROM532a可能比快速存贮器和/或EEPROM532b更为廉价,它可用来存贮SPU软件/固件的永久性部分。这些永久性部分可以包含硬件部件如RTC528、加密/解密机522、中断处理器、密钥发生器等的接口代码。操作系统的某些部分、库调用、库函数以及由SPU500提供的许多核心服务也可以存贮在掩模ROM532a中。另外,某些较为常用的执行代码也比较适合存入掩模ROM532a中。那些需要被更新或者在下电后应该从SPU500中消失的信息不应存贮在掩模ROM532a中。

在某些情况下,RAM534a和/或NVRAM534b(NVRAM534b可以是(举例来说)被一直供电的传统RAM)可以至少部分地充当ROM532的角色。

SPU内部RAM

SPU500的通用RAM534与其它部件一道为安全过程提供了安全的执行空间。在较佳实施例中,RAM534由不同类型的RAM组成,例如,这些RAM可以是高速RAM534a和NVRAM(“非易失性”的RAM)534b的组合。RAM534a可以是易失性的,而NVRAM则最好由电池供电,或采用其它方法使之具有“非易失性”(即在下电后其内容不会丢失)。

高速RAM534a存贮需要执行的活跃代码及相关数据结构。

NVRAM534b最好保存在SPU500与VDE管理员要进行通信的一个初始化过程中预加载的某些密钥和概要数值,它也可以存贮与SPU500操作有关的、可变或正在变化的信息。基于安全的原因,某些特别敏感的信息(例如某些加载模块,以及某些加密密钥的相关信息如内部产生的私有密钥)需要经常装入SPU500或由SPU500内部产生,但是,一旦被装入或内部产生,这些信息绝不能离开SPU。在较佳实施例中,SPU500非易失性随机访问存贮器(NVRAM)534b可以用来安全地保存这种特别敏感的信息。SPU500也用NVRAM534b来保存那些可能经常改变的、但在下电或电源故障时最好又不应丢失的数据。

NVRAM最好是一个快速存贮器阵列,但也可以是电可擦除可编程只读存贮器(EEPROM)、静态RAM(SRAM)、磁泡存贮器、三维全息或其它光电存贮器或诸如此类的存贮器、或任何其它可写的(如可随机访问的)、具有非易失性的存贮器,这些存贮器还应具有足够高的速度,并且价格低廉。

SPU外部存贮器

SPU500可以将某些信息存贮在SPU外部的存贮设备中。电子设备600的存贮器如果可用的话也可以用来支持SPU500软件中任何设备外部部分。允许SPU500使用外部存贮器可能带来某些好处。作为一个例子,通过使用宿主电子设备600中的非易失性读/写存贮器(如RAM656和/或ROM658的非易失性部分),可以减少SPU500内部存贮器的容量。

这种外部存贮器可用来存贮SPU程序、数据和/或其它信息。例如,一个VDE控制程序可以至少部分地被加载到存贮器中,并在执行前首先传送到SPU500中进行解密。该控制程序可以被重新加密并传回外部存贮器进行保存,留待SPU500以后执行。SPU500可以将“核心”程序和/或部分或全部非核心的“加载模块”保存在其外部存贮器中。由于安全数据库610可以相对较大,SPU500可以将部分或全部安全数据库保存在外部存贮器中,并且在需要的时候将某些部分调进SPU500。

如上所述,SPU500的外部存贮器可以不具安全性。因此,当需要确保安全性的时候,SPU500必须一方面首先对安全性信息进行加密,然后再将该信息写入外部存贮器中;另一方面首先对取自外部存贮器的安全性信息进行解密,然后再使用该信息。由于该加密层依赖于SPU500中的安全过程和信息(如加密算法和密钥),所以它有效地“延伸”了SPU安全屏障502,从而保护了SPU500存贮在其外部存贮器中的信息。

SPU500可以使用各种不同的外部存贮器。例如,外部存贮器可以包括:诸如磁盘之类的电子设备二级存贮器652、外部EEPROM或快速存贮器658、以及/或者外部RAM656。外部RAM656可以包括:外部的非易失性(如持续供电的)RAM和/或高速缓存RAM。

使用SPU500本地的外部RAM可以显著地提高对SPU外部所保存信息的访问速度。例如,外部RAM可以用来:

●首先缓存内存图象页和数据结构,再将之保存到快速存贮器或外部硬盘(假设在发生严重电源或系统故障时需要向快速存贮器或外部硬盘传送数据)。

●为VDE对象300输出的数据提供加密和解密缓冲区。

●高速缓存目前正在被使用的“交换块”和VDE数据结构,作为向SPU500提供安全虚拟内存环境的一个方面。

●高速缓存其它信息,例如用来减少SPU访问二级存贮器652的频率,以及/或者为其它目的。

双端口外部RAM在提高SPU500性能方面尤其有效,原因在于它可以减少SPU总线接口部件530和SPU微处理器520的数据移动开销。

使用SPU500本地的外部快速存贮器可以显著地提高对实际上所有数据结构的访问速度。由于大多数可用的快速存贮设备写入寿命有限,快速存贮器要考虑在快速存贮器的使用寿命期中需要进行多少次写入操作。因而,不主张用快速存贮器来保存那些需要频繁写入的临时内容。如果外部RAM具有非易失性,那么向快速存贮器(或硬盘)传输数据可以是不必要的。

SPU500使用的外部存贮器可以含有两种类型:

SPU500专有的外部存贮器

与电子设备600共享的存贮器

对于某些VDE实现,与CPU654或电子设备600的其它部件共享存贮器(如电子设备的RAM656、ROM658和/或二级存贮器652)可以是一种最廉价的方法用来保存VDE安全数据库管理文件610和需要保存在SPU500外部的信息。用以完成通用文件存贮功能的宿主系统硬盘二级存贮器652也可用来存贮VDE管理文件610。可以使SPU500对外部存贮器具有排它的访问权(例如,通过BIU530提供的局部总线高速连接),还可以同时提供专有的和共享的外部存贮器。

上面对电子设备600一个例子的硬件配置进行了说明。下面将描述由较佳实施例提供的电子设备600软件体系结构的一个例子,包括较佳实施例“权利操作系统”(“ROS”)602的结构和操作。

权利操作系统602

较佳实施例中的权利操作系统(“ROS”)602是一个紧凑的、安全的、事件驱动的、基于服务的、面向“部件”的、分布多处理操作系统环境,它将VDE信息安全控制信息、部件和协议以传统的操作系统概念集成在一起。象传统操作系统一样,较佳实施例提供的ROS602是一段程序,它管理计算机系统中的硬件资源,并将管理功能延伸至输入和/或输出设备,包括通信设备。同时,也类似于传统操作系统,较佳实施例ROS602提供了一致的一组基本功能和抽象层,用来隐藏具体硬件实现之间的差别和有关实现的许多复杂细节。除了许多或大多数操作系统所具有的这些特征之外,ROS602提供了其它操作系统所不具备的安全VDE交易管理和其它先进特性。下面是一个非穷举的列表,它列举了较佳实施例ROS602提供的部分先进特性。

标准接口提供了一致的基本功能集

简化了编程

相同的程序可以运行于许多不同的平台上

事件驱动

便于功能分解

可扩展

支持状态转换和/或面向进程的事件

简化了任务管理

简化了进程间通信

基于服务

支持简化的和透明的可伸缩性

简化了多处理器支持

隐藏了机器相关性

便于网络管理和支持

基于部件的体系结构

基于可独立传送的安全部件的处理

处理控制的部件模型支持不同的串行步骤,这些步骤可根据需求重新配置

可以增加、删除和修改部件(需经许可)

针对预定义的和用户定义的应用事件的全面控制信息

事件可由独立的可执行程序进行单独控制

安全

安全的通信

安全的控制功能

安全的虚拟内存管理

信息控制结构受到保护而不致泄露

数据元素受到确认、关联和访问控制

部件被单独加密和确认

部件是紧密相关的,从而防止对元素的未授权使用

控制结构和安全化的可执行程序在使用之前首先经过确认,从而防止了破坏

在I/O层集成了安全措施

提供了发布时的快速信息解密

支持安全的商业交易网络

灵活的密钥管理特性

可伸缩性

可高度伸缩于多种不同平台之间

支持多处理器环境中的并行处理

支持多个相互协作的处理器

可以支持任意数量的主机或安全处理器

控制结构和核心可以被很容易地移植到各种主平台以及目标平台中的不同处理器上,而无须进行重新编译。

支持远程处理

可使用远程过程调用以实现内部的OS通信

高度的可集成性

可以作为操作系统的附加层与宿主平台高度地集成在一起

允许使用位于传统OS平台之上的一个OS层,对安全化的部件和信息进行非安全的存贮

可以与宿主操作系统无缝地集成在一起,从而为交易管理和信息内容访问提供了一个公共使用模式

集成可以采取多种形式:用于桌上型计算机的操作系统层(如DOS、Windows、Macintosh);用于网络服务的设备驱动程序和操作系统接口(如Unix和Netware);以及用于“低端”顶置设备的专用部件驱动程序,以上是其中的一些例子

可以与传统的和实时的操作系统集成在一起

分布性

提供控制信息的分布和互换控制信息和机制

支持受控进程在分布式异步配置中任何VDE节点上的有条件执行

分布式环境中的受控权利分派

支持处理和控制链

为分布式的、偶尔连接但其它情况下异步的连网数据库提供了管理环境

实时及与时间无关的数据管理

支持“代理”进程

透明性

可以无缝地集成进现有的操作系统中

可以支持不是专门为使用它编写的应用

网络友好性

内部OS结构可以使用RPC分配处理

可将子网作为单个节点或独立地进行无缝操作

有关操作系统的一般背景知识

“操作系统”提供了管理计算机系统资源的控制机制,从而允许程序员更加方便地创建计算机系统的应用。为此,操作系统提供了通用的功能,并确保在(可能(举例来说)由不同厂家生产的)不同计算机硬件和体系结构之间的兼容性。操作系统还使得计算机“外部设备”生产厂家更加方便地向计算机生产厂家和用户提供兼容设备。

计算机系统通常由若干不同硬件部件组成。这些硬件部件包括如:

一个中央处理单元(CPU),用来执行指令;

一个主存贮器单元阵列(如“RAM”或“ROM”),用来保存供执行的指令,以及被这些指令所作用的、或充当这些指令的参数的数据;以及

一个或多个二级存贮设备(如硬盘驱动器、软盘驱动器、CD-ROM驱动器、磁带机、读卡机或“快速”存贮器),该设备被组织成反映命名的元素(“文件系统”),用来存贮主存贮器单元的映像。

大多数计算机系统还含有输入/输出设备,如键盘、鼠标、显示系统、打印机、扫描仪和通信设备。

为了使CPU的执行功能与可用的RAM、ROM和二级存贮设备组织在一起,也为了向程序员提供通用功能,通常与其它部件一起包含一段称为“操作系统”的软件。通常如此设计该段软件,即使之在计算机系统上电并且硬件诊断完成之后开始执行。此后,所有对CPU、主存贮器和二级存贮设备的使用通常都由该“操作系统”软件进行管理。大多数计算机操作系统还通常含有将其管理功能延伸至I/O及其它外部设备的机制,包括与这些设备相关的通用功能。

通过利用操作系统对CPU、存贮器和外部设备进行管理,可提供出一致的一套基本功能和隐藏硬件细节的抽象层,从而允许程序员更加方便地创建复杂的应用。另外,用操作系统管理计算机的硬件资源,可以使得不同生产厂家之间在设计上和设备要求上的许多差别得到隐藏。此外,可以更加方便地与其它具有相同操作系统的计算机用户共享应用程序,而这只需在支持不同厂家的基本硬件和外部设备方面投入较少的工作。

ROS602是一个具有显著优点的操作系统

ROS602是一个“操作系统”。它管理电子设备600的资源,并提供通用的功能集合供程序员为电子设备编写应用608。较佳实施例中的ROS602对SPU500中的硬件(如CPU、存贮器、安全RTC、以及加密/解密机)进行管理。ROS也对电子设备600的一个或多个通用处理器中的硬件(如CPU和存贮器)进行管理。ROS602还管理其它电子设备硬件资源,如与电子设备相连的外部设备。例如(参看图7),ROS602可以管理键盘612、显示器614、调制解调器618、盘驱动器620、打印机622、扫描仪624。ROS602还可以管理安全数据库610以及用来存贮安全数据库610的存贮设备(如“二级存贮器”652)。

ROS602支持多处理器。较佳实施例中的ROS602支持任意数量的本地和/或远程处理器。至少可以支持两种类型的处理器:一个或多个电子设备处理器654,和/或一个或多个SPU500。宿主处理器CPU654可以提供存贮、数据库和通信服务。SPU500可以提供加密和安全化进程执行服务。由ROS602所支持的多种控制和执行结构可以要求:对控制信息要在可控制的执行空间中进行处理。这种可控制的执行空间可以由SPU500提供。附加的宿主和/或SPU处理器可以提高处理效率和/或能力。ROS602可以(如通过网络或其它通信链路)访问、协调和/或管理电子设备600的其它远程处理器,以提供更多的处理器资源和/或能力。

ROS602是基于服务的。在较佳实施例中,通过使用“远程过程调用”(“RPC”)内部处理请求结构,把利用宿主处理器654和/或安全处理器(SPU500)所提供的各项ROS服务链接在一起。相互协作的处理器可使用RPC机制请求进程间服务,RPC机制具有最小的时间依赖性,并且可以分布于网络中众多主机的相互协作处理器之中。ROS602提供的多处理器体系结构易于扩展,以便支持任意数量的主机和安全处理器。这种可扩展性带来了高度的可伸缩性。ROS服务还允许在不同设备上实现不同的功能。例如,对于那种只服务一个用户的、使用水平较低的小型设备来说,在其上实现数据库服务所采用的技术可以大大不同于那种可服务大量用户的、使用水平较高的大型设备。这是可伸缩性的另一个方面。

ROS602提供了分布式处理环境。例如,它可以如满足用户请求所要求的使信息和控制结构自动、安全地来往于各个地点之间。基于ROS602的分布式处理特征,VDE节点之间的通信可以包括如上所述的进程间服务请求。ROS602支持任意VDE节点中受控处理器的有条件和/或状态依赖执行。进程的执行位置以及所使用的控制信息或可位于本地,或可远程访问,或者由进程携带以支持在远程系统中执行。

ROS602提供控制信息的分布,包括如控制结构的分布,用以支持在远程环境中运行“代理”(agent)。因而,ROS602提供了一套机制,可以将执行和/或信息控制作为对于“代理”进程出现的请求的一部分进行传递。

如果需要,ROS602可以独立地通过低带宽连接通路将控制信息分布,这种低带宽连接通路可以是也可以不是“实时”的连接。较佳实施例中的ROS602具有“网络友好性”,可以用网络协议的任意层来实现。电子邮件和直接连接是其中的一些例子,它们大约实现在ISO模型的“第5层”。

ROS602的分布进程(以及对分发信息的相关审核)是一个受控事件,它本身使用上述控制结构。这种“映像式”分布处理机制允许ROS602以受控的方式安全地分发权利和许可,并且有效地限制信息内容的使用特征。这种分布式环境中的受控权利分派以及ROS602为支持该方式所采用的安全处理技术具有显著的优点。

ROS602中的某些控制机制是“交互”的。交互控制机制将一个或多个控制部件放置于一个或多个地点,而该控制部件以受控方式与同一或不同地点处的一个或多个部件交互作用。例如,位于用户一方的、与对象信息内容相关的使用控制可以在分发者一方含有交互控制,该分发者一方管理上述使用控制的分布、使用控制的审核以及与使用控制相关的用户请求处理逻辑。位于用户一方的使用控制(除了对使用的一方面或多方面进行控制以外)可以为分发者做审核准备,并对有关使用控制的请求进行格式化,供分发者处理。位于交互控制任何一端的进程都可以进一步被其它进程所控制(例如,分发者可以被使用控制机制所产生的数量的预算所限制)。交互控制机制可以延伸及许多地点和许多层次(例如从制作者到分发者,到用户),并且可考虑到任何关系(例如,制作者/分发者、分发者/用户、用户/用户、用户/制作者、用户/制作者/分发者,等等)。在VDE100中,交互控制机制在表示分布式环境中的关系和协定方面有许多用途。

ROS602是可伸缩的。ROS602控制结构和核心中的许多部分不必重新编译即可方便地移植到各种宿主平台上。如果得到授权允许这种活动的话,任何控制结构都可以被分布(或重新分布)。ROS602中可执行程序的引用可在目标平台内移植。ROS602的不同实例使用不同的资源来执行该引用。例如,ROS602的一个实例可以使用SPU500来执行某个任务,同时ROS602的另一个实例可以使用宿主处理环境来执行相同的任务,该宿主处理环境运行于受保护的存贮器中并用软件来仿真SPU。ROS602的控制信息同样是可移植的。在许多情况下事件过程结构都可以在机器和主机平台间进行传送,这与在单个计算机内部各相互协作的处理器之间进行传送一样容易。具有不同使用级别和/或ROS602功能可用资源的设备可以采用非常不同的方式来实现上述功能。如果没有足够资源的话,某些服务就可以被整个省去。如上所述,ROS602“知道”哪些服务是可获得的,以及在任何给定事件的前提下如何进行进一步的处理。在资源缺乏或不足的情况下,并非所有的事件都是可处理的。

ROS602是基于部件的。较佳实施例ROS602所提供的许多功能都可能是基于“部件”的,“部件”可以(例如,在适当的安全条件和授权前提下)被安全独立地传送,可被替换,并且可被修改。另外,“部件”本身可以由可独立传送的元素构成。ROS602可以(使用较佳实施例提供的、名为“通道”的结构)在执行时刻将这些元素装配到一起。例如,由SPU500执行的“加载模块”可以引用一个或多个“方法核心”、方法参数以及其它相关的数据结构,而ROS602可以将上述这些元素收集和组装在一起以便执行诸如计帐或计量之类的任务。不同的用户可以拥有不同的元素组合,并且在适当的授权之下,某些元素可以由用户来定制。这个特征可以提高灵活性,允许重用元素,并且还具有其它优点。

ROS602具有高度安全性。ROS602提供了一套机制,用来保护信息控制结构,使之不被最终用户和管道主机所泄露。利用牢靠的加密和验证机制,ROS602可以对信息、VDE控制结构和可执行控制程序进行保护。这些加密和验证机制经过设计可充分抵御未探测到的破坏。ROS602对存贮在二级存贮设备652中的信息进行加密以防止破坏。ROS602还分别加密和验证其各种部件。ROS602将控制和数据结构部件关联在一起,以防止对元素进行未授权的使用。这些特征允许ROS602独立地分布元素,而且还允许将VDE功能604与非安全的“其它”OS功能606集成在一起。

较佳实施例所提供的ROS602将诸如访问控制表(ACL)结构之类的传统功能延伸到了用户和进程定义的事件,包括状态转移。ROS602可以向预定义和用户定义的应用事件提供全面的控制信息。这些控制机制包括“通行/禁行”许可,还包括可选的、特定于事件的可执行程序,这种执行程序使得对事件进行的处理和/或控制具有完善的灵活性。这样的结构允许事件被单独控制,于是(举例来说)可使用独立的可执行程序进行计量和预算处理。例如,ROS602扩展了ACL结构以控制任意粒度的信息。传统的操作系统在文件或资源级提供了静态的“通行-禁行”控制机制;ROS602采用通用方法开使用灵活的控制结构,将上述控制概念从最大的元素扩展到最小的子元素。ROS602可以(举例来说)控制从文档文件中打印出单一的一段。

较佳实施例提供的ROS602允许对管理各个部件的控制信息进行安全的修改和更新。控制信息可以以诸如方法选项之类的模板格式提供给最终用户。最终用户于是可以定制由分发者或信息内容制作者提供的准则中所使用的实际控制信息。对现有控制结构的修改或更新最好是一个可控制的事件,该事件受到审核和控制信息的控制。

较佳实施例中的ROS602在使用控制结构和安全化可执行程序之前首先对之进行验证。该验证能够确保控制结构和可执行程序未受最终用户的破坏。该验证还使得ROS602能够安全地实现包括文件段及其它操作系统结构在内的部件。较佳实施例中的ROS602将安全性措施集成在操作系统的I/O层(位于访问层之下),并提供了发布时刻的“快速”信息解密。这些特性允许使用位于传统操作系统平台之上的一个OS层对ROS602的安全化部件和信息进行非安全化的存贮。

ROS602可以作为操作系统的附加层与宿主平台高度地集成在一起。于是,ROS602的创建可以通过对现有操作系统进行“添加”来实现。它包括将VDE“添加部分”在设备驱动程序和网络接口层上挂接到宿主操作系统。作为另一种选择,ROS602可以含有一个全新的操作系统,该操作系统将VDE功能和其它操作系统功能集成在一起。

实际上,至少有3种通用的方法,用来在可能基于现有操作系统前提下将VDE功能集成进一个新操作系统中从而创建权利操作系统602。这3种方法是:

(1)根据VDE交易管理的要求重新设计操作系统;

(2)将VDE API功能调用编译进一个现有的操作系统中;

(3)将一个VDE解释程序集成进一个现有的操作系统中。

在设计新操作系统时,或计划对现有操作系统进行重大升级时,第一种方法可能是最有效的适用方法。可以将VDE功能所提供的交易管理和安全要求添加到用来设计新操作系统的设计要求列表中,这样就能够以一种优化的有效方式将“传统”操作系统功能与VDE功能集成在一起。例如,负责设计操作系统新版本或实例的工程师可以将VDE计量/交易管理的要求补充到其它一些他们用以形成设计方法、规范和实际实现的要求(如果有的话)之中。这种方法通过在贯穿整个系统设计和实现过程中穿插进计量/交易管理功能,可以实现VDE功能的无缝集成。

第二种方法将涉及到使用现有的API(应用程序员接口)集合,并且把对操作系统代码的调用纳入VDE功能调用中。这类似于将目前的Windows操作系统与DOS集成的方法,其中,DOS充当Windows操作系统的启动点和重要核心支撑部分两重角色。该方法还可提供高度无缝的集成(尽管“无缝”的程度不象第一种方法那样强)。该方法的优点在于:有可能花费不大就可以将计量/交易管理功能纳入操作系统的一个新版本或实例中(通过使用API所含有的现有代码,以及借鉴API功能方法的设计思想来影响纳入了计量/交易管理功能的元素的设计)。

第三中方法区别于前两种的地方在于它没有将有关计量/交易管理和数据安全性的VDE功能直接纳入操作系统代码中,而是向操作系统添加了通用化的新功能,用来执行计量/交易管理功能。在这种情况下,含有计量/交易管理功能的解释程序将采用“独立”的方式与其它操作系统代码集成在一起。该解释程序可以根据脚本或其它输入来决定应该执行哪些计量/交易管理功能,以及按什么顺序或在什么情况或条件下执行。

除了将VDE功能集成进电子设备操作系统中之外,也可以在传统操作系统之上运行一个应用,使该应用提供某些可用的VDE功能。

ROS软件体系结构

图10是中的框图示意了较佳实施例提供的权利操作系统(“ROS”)602的软件组织/体系结构示例。在该例中,ROS602含有:操作系统(“OS”)“核心”679、用户应用程序接口(“API”)682、“重定向器”684、“截获器”692、用户通告/异常接口686、以及文件系统687。本例中的ROS602还含有一个或多个宿主事件处理环境(“HPE”)655和/或一个或多个安全事件处理环境(“SPE”)503(这些环境可通称为“受保护的处理环境”650)。

HPE655和SPE503是自包含的计算和处理环境,它们可以含有其本身的操作系统核心688,操作系统核心688包含代码和数据处理资源。给定的电子设备600可以含有任意数量的SPU503和/或HPE655。HPE655和SPE503可以安全的方式处理数据,并为ROS602提供安全处理支持。例如,它们都可以根据一个或多个VDE部件组690来执行安全处理,而且它们都可以向OS核心680提供安全处理服务。

在较佳实施例中,SPE503是一个安全的处理环境,其中至少一部分是由SPU500所提供。因而,SPU500提供了环绕SPE503的硬件的防破坏屏障502。较佳实施例中的SPE 503最好具有如下特征:

小且紧凑

可被加载进具有资源限制的环境,例如最小配置的SPU500

可被动态地更新

可被授权用户扩展

可集成进对象或过程环境中

具有安全性

在较佳实施例中,HPE655是一个安全的处理环境,它由除SPU之外的其它处理器所支持,如电子设备CPU654通用微处理器,或者其它处理系统或设备。在较佳实施例中,由于HPE655可以用软件来提供本来由SPU硬件和/或固件所提供的部分或全部处理资源,在这个意义上,可以认为HPE655是用来“仿真”SPU500的。在本发明的一个较佳实施例中,HPE655是全功能的,并且与SPE503完全兼容一这就是说,HPE655可以处理SPE503可处理的每个或所有服务调用,这样,从外界接口的角度来看,SPE和HPE是“插接兼容的”(plugcompatible)(例外情况是,HPE所提供的安全性可能不及SPE)。

HPE655可以有两种类型:安全的和非安全的。例如,为使电子设备600能够使用快速通用处理器或计算机的全部资源从而有效地运行非敏感性的VDE任务,可希望提供非安全的HPE655版本。这种非安全HPE655版本的运行可以受ROS602的一个实例的监管,而该ROS602同时还含有一个SPE503。采用这种方式,ROS602可以在SPE503中运行所有安全进程,而只在HPE655中运行那些无需安全性的进程,但这些进程同时又可能要求使用(或满足高效运行而需要)由支持HPE655的通用计算机或处理器所提供的、可能较多的资源。非安全的和安全的HPE655可以与安全的SPE503一起运行。

(如图10所示)HPE655可以带有基于软件的防破坏屏障674以增加其安全性。这种基于软件的防破坏屏障674可以由运行于通用CPU654中的软件来创建。这种“安全”的HPE655可以被ROS602用来执行某些进程,这些进程虽然仍需要安全性,但可以不需要SPU500所提供的那种高安全性。在含有SPE503和HPE655两者的体系结构中,这个特性将特别有益。SPE503可以用来执行所有真正的安全处理,而一个或多个HPE655可以用来执行另外的安全(虽然可能不如SPE安全)处理,HPE655此处使用了电子设备600中可用的宿主处理器或其它通用资源。这种安全的HPE655可以提供任何服务。在较佳实施例中,“通道处理”的某些特征看起来比较适合随时从SPE503转移到HPE655中。HPE655提供的基于软件的防破坏屏障674可以有下面的实现方法,如:使用时间检查和/或代码修改等手段,使得利用调试程序对含有核心688a部分和/或部件组690部分的代码进行单步跟踪变得相当困难;对存贮设备(如硬盘、存贮器卡等)使用缺陷图而形成内部测试值,从而阻止从HPE655往其它电子设备600移动或复制内容;使用在控制流中含有伪跳转及其它复杂流程控制的核心代码,从而在一定程度上伪装内部处理过程,使之避免被反汇编或受到其它试图揭示其处理细节的行为的影响;使用“自生成”代码(例如,基于余弦变换的输出),这样一来,不再把详细的和/或完整的指令序列明确地保存在存贮设备和/或活动存贮器中,而是在需要的时候生成这些指令;使用那种基于运算参数而“打乱”了存贮单元的代码,而在这些存贮单元中放有数据,这样就使得对这些数据进行操纵变得相当困难;使用电子设备600所提供的任何软件和/或硬件内存管理资源,以“保护”HPE655中的操作使之免受其它进程、操作等的破坏。尽管这种基于软件的防破坏屏障674能够提供相当程度的安全性,它通常不如由SPU500(至少部分)提供的基于硬件的防破坏屏障502安全。在诸如SPU500所提供的那些硬件安全性措施的帮助下,安全性可以得到更有效地加强,基于此原因(以及其它因素,如SPU500的专用电路所带来的性能提高),对于许多或大多数安全性较高的应用来说,最好至少提供一个SPE503。然而,对于那些可允许较低安全性和/或无力支付SPU500的应用来说,可以需要省去SPE503,而所有的安全处理都要由执行于通用CPU654中的一个或多个HPE655来代替执行。如果未向特定VDE进程提供足够的安全性,那么可能就不允许这些进程在上述那种降低了安全性的电子设备中执行。

只有那些完全在SPE503(有时候也包括HPE655)中执行的进程才可能被看作是真正安全的。用来存贮和/或处理安全进程所使用的代码和/或数据的存贮器以及SPE503和HPE655的其它外部资源只能以加密的形式接收和处理这些信息,除非SPE503/HPE655可以保护安全进程的代码和/或数据以避免遭受非安全进程的破坏。

较佳实施例中的OS“核心”679含有核心680、RPC管理器732和“对象开关”734。API682、HPE655以及SPE503可以通过OS“核心”679相互传送“事件”消息。它们也可以使消息不经过OS“核心”679而直接进行相互间的消息通信。

核心680可以管理电子设备600的硬件。例如,它可以提供适当的驱动程序和硬件管理器以便与输入/输出和/或外部设备进行交互作用。外部设备的例子有:键盘612、显示器614、其它设备如“鼠标”指示设备和语音识别器613、调制解调器618、打印机622和网络适配器672。核心680也可以负责初始加载ROS602的其余部分,并且可以在各种ROS任务执行时对之(及其底层相关硬件资源)进行管理。OS核心680也可管理和访问安全数据库610和文件系统687。OS核心680也可为应用608a(1)、608a(2)等以及其它应用提供执行时的服务。

RPC管理器732为核心680完成信息路由选择和/或资源管理/集成。例如,它接收来自API682、HPE655和SPE503的“调用”,或选择合适的路由将“调用”送至API682、HPE655和SPE503。

对象开关734可管理VDE对象300的创建、拆除及其它操纵。

较佳实施例中的用户通告/异常接口686(可以将之看作是API682的一部分或与该API相结合的另一个应用)在显示器614上提供了“弹出式”窗口/显示。这可以使ROS602直接与用户通信,而不必使需要传递的信息经过应用608。对于非“VDE感知型”的应用,用户通告/异常接口686可以提供ROS602与用户之间的通信。较佳实施例中API682提供给应用608一个标准化的、具有文档说明的软件接口。API682可以部分地把应用608产生的操作系统“调用”翻译成指定了“事件”的远程过程调用(“RPC”)。RPC管理器732可以将这些RPC按照合适的路由发送至核心680或其它地方(如HPE655和/或SPE503,或远程电子设备600、处理器或VDE参与者)以供处理。API682也可以对RPC请求进行服务,其方法是将这些RPC请求发送到经过注册负责接收和处理指定请求的应用608。

API682提供了一个“应用编程接口”,该接口最好是标准化的且具有文档说明。它提供了一组简明的函数调用,应用程序可使用这组函数调用访问由ROS602提供的服务。在至少一个优选例中,API682将包括两部分:VDE功能604的应用程序接口,以及其它OS功能606的应用程序接口。这些部分可以融合在同一软件中,也可以是二个或多个分离的软件部分(举例而言)。

某些应用,例如图11所示的应用608a(1),可以属于“VDE感知型”的,于是它们可以直接访问API682中的那两部分。图11A对此进行了示例。“VDE感知型”应用可以(举例来说)包含对ROS602的明确调用,以便请求创建新的VDE对象300、对VDE对象的使用进行计量、以VDE保护形式存贮信息等等。因此,“VDE感知型”应用可以起动(在某些例子中还可以增强和/或扩展)由ROS602提供的VDE功能。另外,“VDE感知型”应用可以在用户和ROS602之间提供更直接的接口(如抑制或消除由用户通告/异常接口产生的“弹出式”显示接口,取而代之的是一个集成了应用和ROS消息的、更加无缝的接口)。

其它应用,例如图11B所示应用608b,可以属于非“VDE感知型”的,因而它可能不“知道”如何直接访问由API682所提供的VDE功能604接口。为此,ROS602可以含有一个“重定向器”684,而“重定向器”684可以允许“非VDE感知型”应用608b访问VDE对象300和函数604。较佳实施例中的重定向器684将发向“其它OS功能”606的OS调用翻译成发向“VDE函数”604的调用。举一个简单的例子,重定向器684可以截获发自应用608的“打开文件”调用,然后判断要打开的文件是否位于VDE容器300之中,如果是的话,产生适当的VDE函数调用,将之发向文件系统687,以便打开VDE容器(也可能产生事件,将之发向HPE655和/或SPE503,以确定可能存贮在VDE对象300中的文件的名字,建立与VDE对象300相关的控制结构,执行对VDE对象300的注册等等)。本例中如果没有重定向器684,那么“非VDE感知型”应用如608b就只能访问提供其它OS函数606接口的API682中的一部分,因而无法访问任何VDE函数。

重定向器684的这种“翻译”特性提供了“透明性”。它允许将VDE函数以“透明”的方式提供给应用608(b),而使该应用无需陷入有关生成一个或多个VDE函数604调用的复杂性细节之中。ROS602这一方面的“透明”特性至少有两个重要优点:

(a)它允许不是专门为VDE函数604编写的应用(“非VDE感知型应用”)仍然可以访问关键的VDE函数;以及

(b)它减少了应用和ROS602之间接口的复杂性。

由于第二个优点(减少复杂性)使应用编程人员能更容易地编写应用,甚至可将“VDE感知型”应用608a(2)设计成使得某些对VDE函数604的调用在“其它OS函数”调用层上被请求,然后由重定向器684将之“翻译”成VDE函数调用(在这个意义上,可将重定向器684看作是API682的一部分)。图11c对此进行了示例。向VDE函数604发出的其它调用则可以被直接发送,而无需经过重定向器684翻译。

回到图10,ROS602还可以含有一个“截获器”692,“截获器”692传送和/或接收一个或多个实时数据输入694(例如可以通过有线电视电缆628产生这些数据输入),并适当地按照正确路由发送一个或多个这种数据输入,与此同时对电子设备600所发送和/或接收的实时数据进行“翻译”,从而为这类信息提供了类似由重定向器684所产生的那种“透明性”(并且/或者它可以产生一个或多个实时数据输入)。

安全的ROS部件和部件组

如上所述,较佳实施例中的ROS602具有基于部件的体系结构。ROS VDE函数604可以基于分段的、可独立加载的可执行“部件组”690。这些部件组690可以被独立安全地传递。较佳实施例中的部件组690含有本身可独立传递的代码和数据元素。因此,较佳实施例中的每个部件组690都包含可独立安全传递的元素,可以使用VDE安全通信技术在VDE安全子系统之间传递这些元素。

这些部件组690是ROS602所提供的基本功能单元。部件组690经过执行可以完成操作系统或应用的任务。因而,可以将某些部件组690看作是ROS操作系统602的一部分,而将其它部件组690看作是操作系统支持之下运行的“应用”。象所有集成了“应用”和“操作系统”的那些系统一样,上述整个系统的各部分之间的界限可以是非常模糊的。例如,可以将某些通用的“应用”功能(如用来确定信息内容容器结构和/或其它属性的功能)集成到操作系统中去。另外,某些“操作系统”功能(如任务管理或存贮器分配)可由应用进行修改和/或替换。较佳实施例ROS602中的一个常用思路就是:部件组690提供用户执行其预定任务所需的功能,这些功能中的一部分可以“类似应用”,一部分可以“类似操作系统”。

部件组690最好设计成是容易分离的并且可以单独加载。ROS602首先将各个元素装配成可执行的部件组690,然后再(例如在诸如SPE503和/或HPE655之类的安全操作环境中)加载和执行该部件组。ROS提供了元素标识和引用机制,该机制包含了必要的信息,用以在执行前或执行中自动以安全方式将元素装配成部件组690。

用以形成部件组690的ROS602应用结构和控制参数可由不同的团体来提供。由于组成部件组690的各部件可以单独安全地递送,于是这些部件便可以在不同时间并且/或者由不同团体来递送(“递送”可能发生在一个本地VDE安全子系统内部,也就是说,用信息内容控制信息链来控制参与者对已被修改的控制信息集合的制备,在此基础上,通过使用控制信息的安全子系统,便可完成对部件独立安全的递送过程)例如,信息内容制作者可以制作某个ROS602应用,该应用规定了在何种情况下VDE对象300所含信息内容才可被批准使用。该应用可以引用其它团体提供的结构。这种引用(举例来说)可以采用如下的控制过程:使用信息内容制作者的结构对用户行为进行计量;使用金融提供者所创建/拥有的结构处理信息内容分发交易中的金融部分(如:规定控制结构中必须出现的信用预算以建立信用值,规定必须由获得准许者才能执行的审核过程,等等)。作为另一个例子,分发者可能把规定了不同定价的不同数据元素传递给不同用户,从而实现对某一用户的定价相对另一用户的定价更为优惠。这种支持多个团体可安全独立地传递控制信息的特性对于电子商业来说是相当重要的,即定义信息内容和/或设备控制信息集合,而该控制信息集合代表了一组独立团体的要求。所述独立团体的例子有:信息内容制作者、其它信息内容提供者、金融服务提供者、和/或用户。

在较佳实施例中,ROS602部分地依据上下文参数(如对象、用户)将可安全独立递送的元素装配成部件组690。因而(举例来说),ROS602可以把不同元素安全地装配成不同的部件组690,以便使不同的用户可以对同一VDE对象执行同一任务。类似地,ROS602可把可能含有一个或多个相同重用部件的不同元素集合装配成不同的部件组690,以便使同一用户可以对不同VDE对象300执行同一任务。ROS602所提供的部件装配机制是“递归”的,这是因为,部件组690可以含有一个或多个部件“子组”,这些“子组”本身就是可被独立加载和执行的部件组690。这些部件子组又可以包含一个或多个“子子组”。通常,部件组690可以包含N层部件子组。

因此(举例来说),部件组690(k)可以含有部件子组690(k+1),部件子组690(k+1)又可以含有部件子子组690(3)...这样继续下去一直到N层子子组690(k+N)。ROS602这种从其它部件组创建部件组690的能力(举例来说)在代码/数据可重用性以及允许不同团体管理整个部件中的不同部分等方面具有很大的优点。

较佳实施例中的每个部件组包含了不同的部件。图11D-11H是对各种不同部件的抽象表示,这些部件可以被装配成图11I所示的部件组690(k)。这些相同的部件可以按照不同方式进行组合(如部件数量可以多一些或少一些)以形成不同的部件组690,从而提供完全不同的功能表现。图11J抽象地示意了相同的部件以不同方式(如与添加部件)组合在一起形成不同的部件组690(J)。部件组690(k)和690(j)每个都含有一个共同的装置691,该装置与ROS602定义的“通道”594互锁在一起。“通道”594将部件组690装配在一起,并且成为它们与ROS602(其余部分)的接口。

ROS602以安全的方式生成部件组690。如图11I和11J所示,组成部件组690的不同元素可以是互锁的,这是在VDE参与者创建了这些元素并且/或者限定了该部件组,使这些元素只能按照VDE参与者的意图一起工作的意义上而言的。ROS602含有安全保护措施,可防止未经授权的人员修改和替换元素可以想象一个未经授权的人员制作了一个新元素使之与图11D-11H中所示的某一元素具有相同的“形状”,然后试图用此新元素替换原有元素。假设图11H中的某个元素用来规定VDE对象300所含内容的使用价格,如果一个未经授权的人员能够以他自己规定的“价格”元素来替换VDE信息内容分发者所规定的价格元素,那么此人可以不使用信息内容分发者所希望的价格,而将价格定为零。类似地,如果某一元素规定了一个电子信用卡,那么假如将之替换成另一元素将会允许某人利用他人的(或一个不存在的)信用卡为其使用行为进行付帐,这就会带来灾难性的后果。这些只是几个例子,它们说明了ROS602确保以安全方式创建某些部件组690的重要性。ROS602提供各种各样的保护措施以防止各种各样的“威胁”,从而确保部件组690的安全处理和执行。

在较佳实施例中,ROS602基于下列元素来装配部件组690:

许可记录(“PERC”)808;

方法“核心”1000;

加载模块1100;

数据元素(如用户数据元素(“UDE”)1200和方法数据元素(“MDE”)1202);以及

其它部件组690。

简要地说,较佳实施例中的PERC808是一个对应于某个VDE对象300的记录,可用来为ROS602标记出若干元素,利用这些元素ROS可以装配出某个部件组690。于是PERC808实际上含有一个“装配指令列表”或者说一个“规划”,用来指定哪些元素602要被装配成部件组,以及如何将这些元素连接在一起。PERC808本身可以含有数据或将要成为部件组690组成部分的其它元素。

PERC808可以引用一个或多个方法“核心”1000N。方法核心1000N可以定义基本的“方法”1000(如“控制”、“计帐”、“计量”等)。

在较佳实施例中,方法1000是一组基本指令以及与基本指令相关的信息,它提供上下文、数据、要求、和/或关系,以供执行和/或准备执行基本指令之用。这些基本指令与一个或多个电子设备600的操作有关。基本指令可以包括(举例来说):

计算机编程中的通用机器代码;以及由运行于计算机中的解释程序或其它指令处理程序所使用的伪码;

与电子设备600一起用的、电子化表示的逻辑操作序列;

指令、源码、目标码、和/或伪码的其它电子化表示,这些在本领域中都是众所周知的。

与所述基本指令相关的信息可以包括(举例来说)与基本指令内在相关的数据,如一个用来标识基本指令加上其内部数据、地址、常数等所形成联合体的标识符。该信息也可以(举例来说)包含下列一个或多个信息:

标识相关基本指令及上述内部数据的信息,用于完成访问、关联和/或验证等目的;

与基本指令和上述内部数据一同使用的、必要和/或可选的参数;

定义与其它方法之间关系的信息;

可以含有数值、信息字段等的数据元素;

限定和/或定义了数据元素、基本指令和/或内部数据之间关系的信息;

限定了与外部数据元素间关系的信息;

限定了内部的与外部的数据元素、方法等(如果存在的话)之间关系的信息;

用于操作基本指令和内部数据的附加信息,该信息用于完成或准备完成用户或方法的某项目的。在需要时它还包括附加的指令和/或内部数据。

这种与某种方法相关联的信息可以部分或全部地与基本指令和内部数据分开存贮。当分开存贮这些部件时,方法仍然可能含有其它信息、以及基本指令和内部数据的一个或多个集合(之所以包含后者,是因为上述其它信息可以引用基本指令和内部数据的一个或多个集合),而不管上述基本指令和内部数据的一个或多个集合是否能在给定时刻得到及时访问。

“事件代码”可以向方法核心1000提供参数,从而允许方法核心1000以不同方式对不同事件做出响应例如,一个计量(METER)方法为响应“使用”事件,可以将使用信息存贮在计量数据结构中。而同一个计量(METER)方法为响应“管理”事件,可以将计量数据结构报告给VDE票据交换所或其它VDE参与者。

在较佳实施例中,方法核心1000可以“包含”一个或多个“加载模块”1100和一个或多个数据元素(UDE1200,MDE1202),这种“包含”或者是明确的,或者是通过引用来实现。在较佳实施例中,“加载模块”1100是某个方法的一部分,该方法反映了基本指令和内部数据。较佳实施例中的加载模块含有可执行码,也可以含有与该可执行码相关的数据元素(“DTD”1108)。在较佳实施例中,加载模块1100提供实际由硬件“执行”的程序指令,以完成由方法规定的进程。加载模块可以包含或引用其它加载模块。

较佳实施例中的加载模块1100是模块化的,并且是“纯代码”,这样一来就可以重入和重用单个加载模块。为了使部件690可被动态更新,可允许在全局公用名字空间内对它们进行访问。从这些设计目标来看,加载模块1100最好是较小的、具有纯代码(及纯类代码)特征的模块,并且可以单独命名和寻址。一个单一方法可以提供不同的加载模块1100,这些加载模块1100能够在不同的平台上完成相同或相似的功能,这样可以使方法具有可伸缩性,并且/或者可以使之在多种不同电子设备之间移植。

UDE1200和MDE1202可能存贮某些数据,将其作为可执行部件组690的输入或输出(也可以存贮说明这些输入或输出的数据)。在较佳实施例中,UDE1200可以与用户有关,而MDE1202可以与用户无关。

图11E中的部件组690(k)含有方法核心1000、UDE1200a和1200b、MDE1202、加载模块1100a-1100d、以及另一个部件组690(k+1)。如上所述,PERC808(k)定义了部件组690(k)的“装配指令”,并可以含有或引用了要用来装配部件组的部分或全部部件之中的一部分。

本例中的加载模块1000b之一本身含有多个加载模块1000c、1000d。本例中的某些加载模块(如1000a,1000d)含有一个或多个“DTD”数据元素1108(如1108a,1108b)。“DTD”数据元素1108可以用来(举例来说)将MDE1202和/或UDE1200a、1200b中数据元素报告给加载模块。另外,DTD1108还可用来参与生成一个应用部分,该应用部分可以把有关一个或多个加载模块1100或者其它部件元素所需要和/或所处理的信息通知给用户。这种应用程序也可以含有某些功能用来创建和/或处理UDE1200、MDE1202、或其它部件元素、子组等等。

部件组690中的部件可以被重用,从而形成另外的部件组。如上所述,图11F抽象地示意了用来装配部件组690(k)的相同部件如何经过重用(例如,添加一些部件进来,这些部件由另一PERC808(1)所提供的另一“装配指令”集来指定)以产生另一个部件组690(1)。尽管部件组690(1)由用来装配部件组690(k)的一些同样的部件构成,这两个部件组却可以以完全不同的方式执行完全不同的过程。

如上所述,ROS602提供了若干安全保护层以确保部件组690的安全性。一个重要的安全层涉及确保某个部件组690的生成、加载和执行都只能在诸如由SPU500中所提供的那种安全执行空间内进行。采用本地SPU500所生成的密钥和/或分发者所提供的密钥完成加密以后,部件690及/或其所含元素可存贮在外部介质上。

ROS602还提供了标记和定序措施,用于可加载的部件组690内部,以便探测由替代而造成的破坏。部件组690所含的每个元素都可先被加载进SPU500,然后经过加密/解密机522解密,再经过测试/比较,从而确保所加载的是正确的元素。可以进行几个不相干的比较过程以确保没有出现非法替换。例如,可以将公开的元素标识和秘密的元素标识进行比较,确保它们相等,这样可以防止对元素的大批替换。另外,可以对保存在可加载元素已加密层之下的某个验证/关联标记进行比较,确保该标记与一个或多个由请求进程所提供的标记相匹配。这样可以防止未经授权就使用信息。作为第三种保护措施,可以检查保存在可加载元素已加密层之下的某个设备赋值标记(如某个序列号),确保该标记与SPU500所期望的某个相关标记相匹配。这样可以防止对较旧的元素进行替换。通常只用安全的包装物来传递验证/关联标记,这是为了防止由于使用明文而将该信息泄露到SPU500外部。

ROS602这种基于安全部件的体系结构带有重要优点。例如,它适应有限资源的执行环境,比如由较低价SPU500所提供执行环境。它还提供了极高的可配置性。实际上,ROS602可以适应的信息内容类型、信息内容提供者对象、交易类型和客户要求几乎是不胜枚举的。另外,它还能够在执行过程中根据特定对象和用户的要求动态装配可独立提供的部件,这种能力提供了高度的灵活性,简化或者支持了分布式的数据库、处理和执行环境。

ROS602基于部件体系结构所具优点的一个方面在于:ROS602可以随着时间的推移而“分阶段地”增加功能和能力。根据设计要求,实现ROS602所做的工作是有限的。在实际市场情况决定要实现相关的VDE应用功能之前,ROS602丰富功能的某些方面可能一直无法开发。因此,最初产品实现的投入和复杂性可以是有限的。随着时间的推移,ROS602在制作、管理和人工智能应用等方面将会不断提供更全面的功能。而且为了适应不断变化的需求,可在任何时间对已有的ROS602功能进行修改或加强。

权利操作系统602体系结构详述

图12示意了图10中的ROS602的详细体系结构。ROS602可以含有一个文件系统687,文件系统687包含一个商业数据库管理程序730和外部对象仓库728。商业数据库管理程序730可以对安全数据库610进行维护。对象仓库728可以存贮VDE对象300、为VDE对象300提供访问、和/或维护VDE对象300。

图12还示意了ROS602可以提供一个或多个SPE503和/或一个或多个HPE655。如上所述,HPE655可以“仿真”SPU500设备,并且,为了支持需要较高吞吐率的系统,可以将HPE655进行集成以代替物理SPU500,或作为物理SPU500的补充。由于HPE655通常由操作系统的安全性来保护,所以上述过程可能会损失一部分安全性而不能提供真正安全的处理。因而,在较佳实施例中,至少是为了高安全性应用,所有安全处理都应在SPE503中进行,这是因为SPE503在物理SPU500中拥有一个执行空间,而不象HPE655那样使用的是电子设备600中随处运行的软件。如上所述,ROS602的三个基本部件分别是核心680、远程过程调用(RPC)管理器732和对象开关734。下面将就这些部件以及它们与ROS602其它部分交互作用的原理进行讨论。

核心680

核心680管理电子设备600的基本硬件资源,并控制ROS602所提供的基本任务分配过程。较佳实施例中的核心680可以含有内存管理器680a、任务管理器680b和I/O管理器680c。任务管理器680b可对可执行任务的起动过程进行起动和/或管理,并对任务进行调度,使之可以在运行有ROS602的处理器(如图8中的CPU654)上执行。例如,任务管理器680b可以含有一个“引导装入程序”,或与该“引导装入程序”相关联。“引导装入程序”加载ROS602的其它部分。任务管理器680b可管理所有与ROS602有关的任务分配工作,包括与应用程序608相关的任务。内存管理器680a可以管理电子设备600的存贮器(如图8中的RAM656)分配、回收、共享和/或使用,还可以(举例来说)提供虚拟内存功能,如电子设备和/或相关应用所需求的。I/O管理器680c可以管理所有ROS602的输入和输出,并可以与驱动程序和其它硬件管理器交互作用,其中这些驱动程序和硬件管理器提供了与物理设备进行通信和交互作用。

RPC管理器732

较佳实施例中的ROS602是围绕“基于服务”的远程过程调用体系结构/接口进行设计的。ROS602所执行的所有功能都可使用这个通用接口来请求服务和共享信息。例如,SPE503支持对一个或多个基于RPC的服务进行处理。除了支持SPU500,RPC接口还利用现有操作系统部件,支持对外部服务的动态集成,并提供了一组配置选项。ROS602也可以通过RPC接口与外部服务进行通信,从而无缝地提供了分布式和/或远程处理。在ROS602的较小型实例中,为节省资源,可以使用较简单的消息传递IPC协议。这种方法可能限制了ROS602服务的可配置性,但在某些电子设备中,这点可能的限制还是可以接受的。

采用RPC结构,调用进程在调用或请求服务时,不必知道或指定在物理上的何处提供服务、何种系统或设备将对请求进行服务、以及如何对请求进行服务。该特性可为特定应用对各种服务集进行增减和/或定制。服务请求可由不同的处理器或不同的地点进行传递或服务,这一过程就象本地的服务系统对服务请求进行传递或服务一样容易。由于较佳实施例中的ROS602使用相同的RPC接口对操作系统之中或之外发出服务的请求,因而对分布式和/或远程处理的请求实质上不会带来额外的操作系统开销。可以容易而简便地将远程处理进行集成,将之加入到ROS602为请求基于本地的服务所使用的相同服务调用中。另外,使用标准RPC接口(“RSI”)可带来ROS602的模块化,不同的模块向操作系统其余部分提供的是标准的接口。这种模块化和标准化接口使不同的出售者/操作系统编写人员能够独立地制作操作系统的不同部分,同时还允许根据不同要求和/或平台灵活地更新和/或改变ROS602的功能。

RPC管理器732对RPC接口进行管理。它接收服务请求,这些服务请求的形式是由服务请求者发出的一个或多个“远程过程调用”(RPC)。接收到之后,它选择合适的路由将这些服务请求转发给能够对之进行服务的服务提供者。例如,当权利操作系统602收到由用户应用通过用户API682发出的请求后,RPC管理器732可通过“RPC服务接口”(“RSI”)将该服务请求发往一个适当的服务提供者。RSI是RPC管理器732、请求服务者、及资源之间的一个接口,该资源将接受请求并对之提供服务。

在较佳实施例中,RPC接口(RSI)由ROS602的若干主要子系统所使用。

在较佳实施例中,ROS602所提供的RPC服务又分成了子服务,子服务即为特定服务的单个实例,每个这样的实例均可被RPC管理器732单独跟踪。采用这种机制,在具有较高吞吐率的系统中一个特定服务可以有多个实例,同时在各种实现之间又存在着共同的接口。子服务的概念加以延伸可以支持多处理器、多SPE503、多HPE655以及多种通信服务。

较佳实施例ROS602提供了下列基于RPC的服务提供者/请求者(每一个提供者/请求者都具有RPC接口或“RSI”,以便与RPC管理器732进行通信):

SPE设备驱动程序736(在较佳实施例中,该驱动程序与SPE503相连);

HPE设备驱动程序738(在较佳实施例中,该驱动程序与HPE738相连);

通告服务740(在较佳实施例中,该通告服务与用户通告接口686相连);

API服务742(在较佳实施例中,该API服务与用户API682相连);

重定向器684;

安全数据库(文件)管理程序744(该安全数据库管理程序或文件管理程序744可以通过高速缓存管理器746、数据库接口748和数据库驱动程序750与商业数据库730和安全文件610进行连接和交互作用);

名字服务管理器752;

输出管理对象管理器754;

输入管理对象管理器756;

到达对象开关734的网关(gateway)734(这是一条通路,它用来在RPC管理器732和对象管理器734之间建立直接通信);以及

通信管理器776

在前面已经论述了HPE655、SPE503、用户通告686、API742和重定向器684所提供的服务类型。现在简要地介绍一下OS资源744、752、754、756和776所提供的服务类型。

安全数据库管理器744对访问安全数据库610的请求进行服务;

名字服务管理器752对有关用户、主机或服务标识之类的请求进行服务;

输出管理对象管理器754对有关输出管理对象的请求进行服务;

输入管理对象管理器756对有关输入管理对象的请求进行服务;

通信管理器776对有关电子设备600与外界进行通信的请求进行服务;

对象开关734

对象开关734(可在局域或远程)对VDE对象300进行处理、控制和递送。在较佳实施例中,对象开关可以含有下列元素:

流路由器758;

实时流接口760(实时流接口760可以与实时数据输入694相连);

时间相关性流接口762;

截获器692;

容器管理器764;

一个或多个路由表766;以及

缓冲区/存贮区768。

流路由器758负责选择合适的路由以到达/离开分别由实时流接口760和时间相关性流接口762处理的“实时”数据流和“时间无关性”数据流。截获器692截获带有实时信息流(如实时输入694)的I/O请求。流路由器758可根据路由表766来决定路由的选择。缓冲区/存贮区768提供临时的存贮转发、缓冲及相关服务。容器管理器764可以(通常与SPE603一起)对VDE对象300执行各种处理,如对一部分对象进行构造、销毁和定位处理。

对象开关734通过对象开关接口(“OSI”)与ROS602的其它部分进行通信。在较佳实施例中,对象开关接口可以类似于(举例来说)Unix的套接字(socket)的接口。图12所示的每个“OSI”接口均能够与对象开关734通信。

ROS602含有下列的对象开关服务提供者/资源(每个提供者/资源都可以通过“OSI”与对象开关734通信):

输出管理对象管理器754;

输入管理对象管理器756;

网关734(网关734可以将RPC调用翻译成对象开关调用,或反向翻译,这样一来,RPC管理器732就可以与对象开关734或其它任何带有OSI的元素进行通信,从而(举例来说)可以提供和/或请求服务);

外部服务管理器772;

对象提交管理器774;以及

通信管理器776。

简要地说,

对象仓库管理器770提供有关访问对象仓库728的服务;

外部服务管理器772提供的服务涉及到请求和接收外部服务,例如该服务可以来自某个网络资源或另一个地点;

对象提交管理器774提供的服务涉及到用户应用如何与对象开关734交互作用(由于对象提交管理器向应用程序608提供了接口,所以可以将它看成是用户API682的一部分);以及

通信管理器776提供有关与外界通信的服务。

在较佳实施例中,通信管理器776可以含有网络管理器780和邮件网关(管理器)782。邮件网关782可以含有一个或多个邮件过滤器784,用以(举例来说)在对象开关734和外界电子邮件服务之间自动地选择与VDE相关的电子邮件的路由。外部服务管理器772可通过服务传输层786与通信管理器776接口。服务传输层786a可允许外部服务管理器772使用各种协议与外部计算机和系统进行通信,这些协议要通过服务传输层786进行管理。

下面将详细论述图12中ROS602各个子系统的特性及接口。

RPC管理器732及其RPC服务接口

如上所述,ROS602所提供的基本系统服务要通过使用RPC服务接口(RSI)进行调用。该RPC服务接口向ROS602中的各种服务系统和子系统提供了通用的标准化接口。

RPC管理器732将RPC所请求的服务选择路由到适当的RPC服务接口。在较佳实施例中,一旦接收到一个RPC请求,RPC管理器732对一个或多个服务管理器进行判断并确定哪一个应该服务该请求。然后RPC管理器732(通过与某个服务相关的RSI)将服务请求路由选择到适当的服务,以便该适当服务管理器提供服务。

例如,如果SPE503应该服务某个请求,那么RPC管理器732将该请求路由选择到RSI736a,RSI736a将该请求传递给SPE设备驱动程序736以便再转发给SPE。同样,如果HPE655应该服务某个请求,那么RPC管理器732将该请求路由选择到RSI738a以便再转发给HPE。在一个较佳实施例中,SPE503和HPE655可以提供实质上相同的服务,这样,RSI736a和738a便成了同一RSI的不同实例。一旦SPE503(或HPE655)收到了一个服务请求,该SPE(或HPE)通常使用其内部RPC管理器对该请求进行内部调度(后面马上就会讲到这一点)。SPE503和HPE655内部的进程也可以产生RPC请求。这些请求可以被SPE/HPE内部处理,但如果不能在内部服务的话,这些请求就会被传出SPE/HPE,由RPC管理器732进行调度。

RPC管理器732可使用“RPC服务表”对远程(或本地)过程调用进行调度。RPC服务表说明了为得到特定服务需将请求路由选择到何处供处理。在较佳实施例中,RPC服务注册表中的每一行都含有一个服务标识、服务的地点以及为服务请求将控制要传递到的地址。RPC服务表还可以含有控制信息,以指明RPC调度者中的哪一个实例应该取得该服务的控制权。RPC管理器732以及连入的任何SPE503和HPE655都可以拥有RPC服务表的对称副本。如果某个RPC服务没有出现在RPC服务表中,其原因有二:或者它被拒绝,或者它被传送给外部服务管理器772用来进行远程服务。

假设RPC管理器732在RPC服务表中发现某一行与请求相对应,它便可将该请求调度给适当的RSI。接收的RSI从RPC管理器732处接收到一个请求(RPC管理器732可以已经在RPC服务表中查到了该请求),然后根据与特定服务相关的内部优先级对该请求做出处理。

在较佳实施例中,由RPC管理器732支持的RPC服务接口可以是标准化的并且被公布出来,以便支持由第三方厂家开发的增加服务模块,同时还使得对ROS602编程更加容易,最终带来方便的可伸缩性。较佳实施例RSI严格遵循DOS和Unix为块设备设计的设备驱动程序模块,这样,花费最小的代价就可以开发出适用于许多平台的公用代码。下表列出了可能的公用入口点集合的一个示例。

  接口调用    说明  SVC_LOAD    加载一个服务管理器并返回其状态。  SVC_UNLOAD    卸载一个服务管理器。  SVC_MOUNT    安装(加载)一个动态加载的子服务,并返回    其状态。  SVC_UNMOUNT    拆掉(卸载)一个动态加载的子服务。  SVC_OPEN    打开一个安装了的子服务  SVC_CLOSE    关闭一个安装了的子服务  SVC_READ    从一个打开了的子服务中读一个块  SVC_WRITE    向一个打开了的子服务写一个块  SVC_IOCTL    对一个子服务或服务管理器进行控制

加载

在较佳实施例中,安装引导进程在进行引导时,发出RPC_LOAD指令,服务(以及服务向RPC管理器732提供的相关RSI)可以从此被激活。安装引导进程从配置文件中读出RPC服务表,加载那些运行时可加载的服务模块(“可加载的服务模块”与核心链接的设备驱动程序相对),然后调用服务的加载(LOAD)入口点。来自LOAD入口点的成功返回意味着服务已被正确地加载上,并已做好了接收请求的准备。

RPC加载(LOAD)调用举例:

SVC_LOAD(long service_id)

LOAD接口由RPC管理器732在权利操作系统602初始化时调用。它允许服务管理器加载所有可动态加载的部件,以及根据服务的要求初始化所有相关设备和存贮器。加载服务时所规定的服务号码作为service_id参数来传递。在较佳实施例中,如果初始化进程成功完成,则上述过程返回0;如果出现错误,则返回一个错误号。

安装

服务在加载好以后可能不会对所有子服务都能完全地起作用。某些子服务(如基于通信的服务)可能需要建立额外的连接,或者它们可能要求加载附加的模块。如果服务被定义为“可安装”的,RPC管理器732将首先根据被申请的子服务标识来调用安装(MOUNT)子服务入口点,之后再打开子服务的一个实例。

RPC安装(RPC MOUNT)调用举例

SVC_MOUNT(long service_id,long subservice_id,BYTE*buffer)

MOUNT接口调用命令某个服务使特定的子服务处于就绪状态。这些服务可以涉及网络、通信、其它系统服务、或外部资源。参数service_id和subservice_id可以是被申请的特定服务所特有的。参数buffer是一个内存地址,它指向了与特定服务相关的控制结构。

打开

一旦加载和“安装”了某项服务,就可以“打开”服务的特定实例以便进一步使用。为“打开”服务的一个实例,需要分配内存以保存控制和状态信息。例如,在基于BSD套接字(socket)的网络连接,LOAD调用将初始化软件和协议控制表,MOUNT调用将指定网络和硬件资源,而OPEN调用实际上打开了一个通向远方系统的套接字。

某些服务可以不是“可安装”的,如构成安全数据库服务基础的商业数据库管理程序730即是如此。在这种情况下,LOAD调用将建立与数据库管理程序730的连接,并确保其记录是可读的。OPEN调用可以为各种记录类型创建内部高速缓存管理器746的实例。

RPC打开(OPEN)调用举例

SVC_OPEN(long service_id,long subservice_id,BYTE*buffer,int(*receive)(long request_id))

OPEN接口调用命令某个服务打开特定的子服务。参数service_id和subservice_id是被申请的特定服务所特有的,参数buffer是一个内存地址,它指向了与特定服务相关的控制结构。

可选的receive参数是通告回调函数的地址,每当有消息已准备好供服务检索时,服务将调用该通告回调函数。对于每个收到的消息,需要调用该函数地址一次。如果调用者向该函数接口传递了一个空(NULL)地址,那么对于每个消息,软件将不再进行回调。

关闭、拆除和卸载

OPEN、MOUNT和LOAD的相反调用分别是CLOSE、UNMOUNT和UNLOAD。这些接口将所有分配了的资源释放回ROS602(如内存管理器680a)。

RPC关闭(RPC CLOSE)调用举例

SVC_CLOSE(long svc_handle)

CLOSE接口调用关闭一个打开服务“句柄”。服务“句柄”说明了用户希望关闭的服务和子服务。如果CLOSE请求成功,该调用将返回0(同时该句柄不再有效),如果失败,则返回一个错误号。

RPC卸载(RPC UNLOAD)调用举例

SVC_UNLOAD(void)

UNLOAD接口调用由RPC管理器732在权利操作系统602停机或进行资源回收时调用。该调用使服务关闭所有打开的连接、刷新缓冲区,并释放所有分配给它的所有操作系统资源。该服务返回0。

RPC拆除(RPC UNMOUNT)调用举例

SVC_UNMOUNT(long service_id,long subservice_id)

UNMOUNT接口调用命令某个服务将特定的子服务置为非活动状态。参数service_id和subservice_id是被申请的特定服务所特有的,而且这些任务必须已通过SVC_MOUNT()请求进行了安装。该调用在返回之前将释放所有与子服务相关的系统资源。

读和写

读(READ)和写(WRITE)调用提供了一种基本机制,用以向一个已安装和打开了的服务发送信息,以及从该服务接收响应。例如,一个服务具有以RPC请求格式写往它的请求,并在可以产生响应的时候使其响应对RPC管理器732可读。

RPC读(RPC READ)调用举例

SVC_READ(long svc_handle,long request_id,BYTE*buffer,longsize)

READ调用从一个服务读取消息响应。参数svc_handle和request_id唯一地标识了一个请求。请求的结果将被保存在用户指定的缓冲区buffer中,其长度最多为size个字节。如果缓冲区太小,那么将在缓冲区中保存消息中前面size个字节的数据,然后返回一个错误号。

如果消息响应正确地返回到调用者的缓冲区中,该函数将返回0,否则将返回一个错误信息。

RPC写(RPC WRITE)调用举例

SVC_READ(long service_id,long subservice_id,BYTE*buffer,long size,int(*receive)(long request_id)

WRITE调用向由参数对service_id/subservice_id指定的服务和子服务写一个消息。消息存放在缓冲区buffer中(并且通常按照VDE RPC消息格式),其长度为size个字节。该函数返回该消息的请求id(如果系统同意将其发送出去的话),或者返回一个错误号。如果用户指定了receive回调函数,所有与该请求相关的消息将被发送给该请求特定的回调函数,而不是发送给通用的消息回调函数。

输入/输出控制

IOCTL(“输入/输出控制”)调用提供了一种机制,允许查询一个已加载服务的状态,或对该服务进行控制。每个服务类型都要对特定普通型IOCTL请求、所有请求类型IOCTL请求,以及专用服务型IOCTL请求做出响应。

RPC IOCTL调用举例

ROI_SVC_IOCTL(long service_id,long subservice_id,intcommand,BYTE*buffer)

IOCRL函数向RSI提供了通用的控制接口。用户用参数service_id和可选的subservice_id来指定他们希望控制的服务和子服务。用户要指定控制命令参数command和缓冲区参数buffer,其中参数command可以写入buffer中,或从中读出。下面给出了命令command和相应缓冲区结构的一个列表示例。

命令(command) 结构说明GET_INFO SVC_INFO返回关于某个服务/子服务的信息GET_STATS SVC_STATS返回关于某个服务/子服务的当前统计资料CLR_STATS 无清除关于某个服务/子服务的当前统计资料

上面已经论述了较佳实施例中的通用RPC服务接口,下面将说明ROS602所提供服务的各种具体示例。

SPE设备驱动程序736

SPE设备驱动程序736提供了ROS602和SPE503之间的接口。由于较佳实施例中的SPE503运行于SPU500内,该设备驱动程序736的职责之一是提供与SPU500硬件的低层通信服务。该设备驱动程序736的另一职责是提供SPE503专用的RPC服务接口(RSI)736a(该同一RSI还可以用来通过HPE设备驱动程序638与HPE655进行通信)。

SPE RSI 736a以及驱动程序736提供了一组基本接口点,这些基本接口点带有一组简明的函数,这样,SPE RSI 736a以及驱动程序736能够将ROS602中(或ROS602外部)的调用进程与SPE503所提供的服务细节进行隔离。这具有若干优点。例如,采用这种方法,可以允许提供全面伸缩的SPU500,这些SPU500向外界提供了公用的功能,但其内部的详细组织和体系结构却各不相同。SPU500的某些特性如设备所含的存贮器容量、处理器速度、以及SPU500内部所支持的服务数目等等可以由特定SPU生产厂家决定,并且在任何情况下,这些特性可以随SPU配置的不同而不同。为了确保兼容性,SPE设备驱动程序736及其提供的RSI736a遵循了一个基本公用RPC接口标准,该标准“隐藏”了SPU500和/或SPU500所支持的SPE503各配置细节之间的差异。

为提供这种兼容性,较佳实施例中的SPE RSI 736a遵循了一个基于块的简单标准。在较佳实施例中,SPE RSI 736a可以仿照Ethernet网卡的包界面进行设计。该标准精密地模拟较佳实施例中SPU500的块模式接口特性。

SPE RSI 736a允许来自RPC管理器732的RPC调用访问由SPE736提供的特定服务。为此,SPE RSI 736a提供了一套“服务通告地址接口”。这套接口向外界提供了由SPE503所提供之各个服务的访问接口。通过向SPE RSI 736a发送RPC调用以及在RPC调用中指定一个相应的“服务通告地址”,任何ROS602中的调用进程都可以访问上述SPE所提供服务。上述的指定的“服务通告地址”使SPE503将RPC调用在内部地路由选择SPE中的一个特定服务。下面给出了一个列表示例,它列出了可能需要为之提供独立服务通告地址的SPE服务项目:

通道服务管理器

验证管理器/安全通信管理器

安全数据库管理程序

对于ROS602的其余部分来说,通道服务管理器是其主要的服务提供者及对SPE503的访问点。下面将要讲到,(从SPE503外部进程的角度来看)事件处理主要由该服务进行管理。验证管理器/安全通信管理器可以为ROS602的用户提供登录/注销服务,并提供直接服务以管理与部件组690、VDE对象300等有关的通信(通常将通信进行加密或保护)。通过向SPE503内部的安全数据库管理程序发送一个直接服务请求,便可以提供有关显示某些信息(如金融预算中的剩余金额)的请求。验证管理器/安全通信管理器以及安全数据库管理程序的实例(如果确实可用的话)可以只向运行于SPE503之中的进程提供可得到的信息和/或功能的一个子集。如上所述,绝大多数(可能全部)进入SPE的服务请求都被路由选择到通道服务管理器进行处理。后面将要详细讲到,在通道服务管理器的管理之下,绝大多数控制结构和事件处理逻辑都与部件组690相关联。

本例中,必须经过与SPE503相关的SPE驱动程序736才能访问到SPE503。响应RPC调用通常要产生对SPE驱动程序736的调用。在本例中,SPE驱动程序RSI736a可以把用来控制或确定SPE驱动程序736信息的RPC调用翻译成驱动程序调用。SPE驱动程序RSI736a与驱动程序736结合可以将发送给SPE503的RPC调用传递给SPE。

下表示出了SPE设备驱动程序736调用的一个例子:

入口点说明SPE_info()返回关于SPE驱动程序736(和SPE503)的概要信息SPE_initalize_interface()初始化SPE驱动程序736,并为接收的包设置缺省通告地址SPE_terminate_interface()终止SPE驱动程序736,并复位SPU500和驱动程序736SPE_reset_interface()复位驱动程序736,而不复位SPU500SPE_get_stats()返回有关通告地址和/或整个驱动程序736的统计资料

    SPE_clear_stats()清除有关特定通告地址和/或整个驱动程序736的统计资料    SPE_set_notify()为指定的服务ID设置通告地址    SPE_get_notify()返回指定服务ID的通告地址    SPE_tx_pkt()将一个包(例如,该包含有一个RPC调用)发送给SPE503去处理

下面将对上表中列出的各个SPE驱动程序调用进行详细的范例说明。

“SPE信息”驱动程序调用举例:

SPE_info(void)

该函数返回一个指向SPE_INFO数据结构的指针,SPE_INFO数据结构定义了SPE设备驱动程序736a。该数据结构可以提供有关SPE设备驱动程序736、RSI736a和/或SPU500的某些信息。下面给出了SPE_INFO数据结构的一个例子:

    SPE设备驱动程序736的版本号/ID    SPE设备驱动程序RSI736的版本号/ID    指向SPE设备驱动程序736名字的指针    指向SPU500标识名字的指针    描述SPE权能/功能的功能码

SPE“初始化接口”驱动程序调用举例:

SPE_initialize_interface(int(fcn*receiver)(void))

对于所有从SPE503收到的包,均要调用以参数形式传递的receiver函数,除非这些包的目的服务已通过set_notify()调用被取代。receiver函数允许ROS602为RPC管理器732与SPE503之间的包通信指定一种格式。

在较佳实施例中,如果接口初始化成功完成,该函数将返回“0”,如果失败,则返回一个非0值。如果该函数调用失败,它返回说明失败原因的代码作为函数值。

SPE“终止接口”驱动程序调用举例:

SPE_initialize_interface(int(fcn*receiver)(void))

在较佳实施例中,该函数关闭SPE驱动程序736,清除所有通告地址,并终止SPE和ROS RPC管理器732之间的所有未完请求。在所有请求都得到解决之后,该函数还复位SPE503(如通过对SPU500进行一次热重新引导)。

在操作系统正准备关机的时候,ROS602应当执行对驱动程序736的终止操作。还有一种情况需要执行该调用,那就是SPE503和ROS602之间的同步严重紊乱,以致必须将SPE中的所有处理过程都复位成一个已知状态。

SPE“复位接口”驱动程序调用举例:

SPE_reset_interface(void)

该函数复位驱动程序736,终止SPE和ROS RPC管理器732之间的所有未完请求,并清除所有统计计数。该函数不对SPU500进行复位,而只是简单地将驱动程序736恢复到一个已知的稳定状态。

SPE“取统计资料”驱动程序调用举例:

SPE_get_stats(long service_id)

该函数通常返回特定服务通告接口或SPE驱动程序736的统计资料。该函数返回一个指针,该指针指向含有这些资料的一个静态缓冲区。如果无法得到统计资料的话(或者由于接口未初始化,或者由于接收者地址未指定),该函数将返回一个空值(NULL)。下面给出了SPE_STATS结构示例可以含有的定义。

    服务标识    收到的包数    发送的包数    接收的字节数    发送的字节数    接收的错误数    发送的错误数    发送的请求数

    发送请求完成的数目    发送请求取消的数目    接收的请求数    接收请求完成的数目    接收请求取消的数目

如果用户指定了服务标识,该函数将返回与该服务发送的包相关的统计资料。如果用户以0作为参数,则返回该接口总计的包统计资料。

SPE“清除统计资料”驱动程序调用举例:

SPE_clear_stats(long service_id)

该函数清除与指定SPE服务标识service_id有关的统计资料。如果没有指定service_id(即调用者传递的参数为0),该函数将清除全局的统计资料。如果资料清除成功,该函数返回0;如果出现错误,则返回一个错误号。

SPE“设置通告地址”驱动程序调用举例:

SPE_set_notify(long service_id,int(fcn*receiver)(void))

该函数为指定服务设置一个通告地址(receiver)。如果通告地址被置为空值(NULL),SPE设备驱动程序736将把对指定服务的包的通告发向缺省通告地址。

SPE“取通告地址”驱动程序调用举例:

SPE_get_notify(long service_id)

该函数返回与命名的服务有关的通告地址;如果没有为服务指定专门的通告地址,该函数将返回空值(NULL)。

SPE“发送包”驱动程序调用举例:

send_pkt(BYTE*buffer,long size,int(far*receive)(void))

该函数将保存在缓冲区(buffer)中长度为size的一个包发送出去。如果包发送成功,该函数返回0;否则返回与失败相关联的一个错误码。

重定向器服务管理器684

重定向器684是一段系统集成软件,如前所述,当ROS602是通过“增加”在前在操作系统上而产生,或需要为某些VDE功能提供“透明性”操作时,需要用到重定向器684。在一个实施例中,核心680、通信管理器776的一部分、文件系统687、以及API服务742的一部分可以是前在操作系统的一部分,这些现有操作系统的例子有:DOS、Window、UNIX、Macintosh系统、OS9、PSOS、OS/2、或其他操作系统平台。图12所示的ROS602的其余部分也可以是对前在操作系统的“增加”。一旦提供了这些ROS子系统或将其“增加”进去以后,集成化后的整体将构成图12所示的ROS602。

在这种集成化方案中,ROS602将继续得到前在OS核心680的支持,但有可以用附加的增加部分如虚拟内存管理器来补充(甚至替换)OS核心680的许多功能。

在这种集成化方案中还提供了增加部分API服务742,该部分很容易与现有的API服务进行集成以支持VDE功能调用。现有API服务与增加部分集成以后将支持一组功能增强的操作系统调用,这些调用包括对VDE功能604的调用和对VDE功能以外的功能606的调用(参看图11A)。增加部分API服务742可将VDE功能调用翻译成RPC调用以供RPC管理器732进一步选择路由。

ROS602可以使用现有操作系统提供的标准通信管理器776,或者,它也可以对现有操作系统进行“增加”和/或替换,这些增加部分和/或替换可以非常容易地集成到现有操作系统之中。重定向器684可以提供这种集成功能。

这样,就要求ROS602与现有的文件系统687集成。重定向器684提供了这种集成功能。

在这种集成化方案中,现有操作系统的文件系统687用来完成对二级存贮器的所有访问操作。但是,VDE对象可以外部对象仓库728或文件系统687的形式存放在二级存贮器中,或通过通信管理器776被远程访问。当对象开关734希望访问外部对象仓库728时,它向对象仓库管理器770发送一个请求,对象仓库管理器770接着将该请求选择路由到对象仓库728或重定向器692(对象仓库728或重定向器692再访问文件系统687中的对象)。

通常,重定向器684将VDE对象仓库728中的内容映射到对文件系统687的前在调用。重定向器684提供了有关VDE对象300的前在操作系统级信息,包括如何将对象映射到现有OS的名字空间。这样以来便可以使用由现有操作系统提供的“常规”文件系统687访问技术对受VDE保护的信息内容进行无缝的访问。

在上述的集成化方案中,每个现有目标OS文件系统687都具有不同的接口要求,而重定向机制684要利用这些接口“挂接”(hook)。通常,由于今天所有商品化的操作系统都支持基于网络的卷、文件系统、以及其它设备(如打印机、调制解调器等),重定向器684可以使用低级的网络和文件访问“挂接”与前在的操作系统进行集成。那些用来支持VDE功能602的“增加”部分可以使用这些现有的挂接与前在的操作系统进行集成。

用户通告服务管理器740

用户通告服务管理器740及其相关的用户通告异常(“弹出式”)接口686增强了ROS602的功能,使之可以与电子设备600的用户进行通信。并非所有应用608的设计都响应来自ROS602并经过API682的消息通信,因而无论如何,既有重要性又有必要性的一项举措是使ROS602能够与用户通信而不管应用处于何种状态。用户通告服务管理器740及接口686为ROS602提供了一种机制使之能够直接与用户通信。ROS602可以用这种机制来替代或补充另一种通信方式,即通过API682和应用608传递返回调用。上述机制(举例来说)类似于Windows操作系统能够以“对话框”的形式显示一条用户消息,该对话框显示在正在运行的应用“之上”而不管应用的状态如何。

可以采用应用代码来实现较佳实施例中的用户通告686模块。接口740a的实现最好建立在通告服务管理器740之上,可以将通告服务管理器740实现为API服务管理器742的一部分。较佳实施例中的通告服务管理器740能够通过适当的API返回或另外的途径将特定通告发送给相应用户进程。这种机制允许将通告路由选择到任何合法进程,而不是只把它发送回那个指定了通告机制的进程。

API服务管理器742

较佳实施例API服务管理器742实现为对RPC服务管理器732的接口。所有的用户API请求都基于该基本接口。API服务管理器742最好对每一个正在运行的用户应用608都提供一个服务实例。

在较佳实施例中,经过某些额外的参数检查,API服务管理器742所支持的绝大多数对ROS功能的RPC调用可以直接映射成服务调用。这种机制允许开发者创建他们自己的扩展API库,使库中含有附加的或改变的功能。

上面讲过,ROS602是通过将“增加”部分与现有操作系统相集成而产生的。在此方案中,其中API服务742的代码可以共享(如驻留在象Windows DLL这样的宿主环境中),它也可以直接与应用的代码相链接,不过这要决定于应用程序员的实现决策,以及/或者电子设备600的类型。通告服务管理器740可以在API682之中实现。这些部件与通告服务部件686接口,以实现系统空间与用户空间之间的转换。

安全数据库服务管理程序(“SDSM”)744

至少有两种方法可用于管理安全数据库600:

商品化数据库方法,及

地点记录编号方法

具体选择那种方法要取决于在安全数据库610中某个VDE地点所存记录的数目。

商品化数据库方法利用了商品化数据库,它将经过安全包装的记录存贮在商品化数据库中。当安全数据库610中存有大量记录时这种方法可能是较优的。这种方法支持对主机系统进行高速地访问、有效地更新、以及方便地集成,但其代价是要占用资源(大多数商业数据库管理器要使用许多系统资源)。

地点记录编号方法使用“地点记录编号”(“SRN”)在系统中定位各个记录。当安全数据库610中所存记录数目较少,并且预计随时间推移不会剧烈增减时,优选这种方法。这种方法可以有效地利用资源,但其更新功能有限。SRN支持对相似数据记录的进一步组合,从而提高了访问速度并提高了性能。

由于VDE100具有高度的可伸缩性,不同的电子设备可能需要在两种方法中作出不同的选择。例如,在诸如顶置系统、PDA或者其它低端电子设备有限的环境中,SRN方法可能比较受欢迎,这是因为它需要的资源有限(存贮器和处理器)。如果更多功能的电子设备600,如桌上型计算机、服务器,或票据交换所中使用VDE,那么商品化数据库方法可能更可取,这是因为这种方法在资源不受限制的环境中能够带来较高的性能。

在两种方法中的数据库记录之间存在着一个差别,它表现在记录是通过完整的VDEID来指定,还是用SRN来指定。为了在两种方法之间进行翻译,无论何处产生了SRN引用,该引用都可以由VDE ID数据库引用来替代。类似地,用来指定或引用其它项的VDE标识也可以由适当的SRN数值来替代。

在较佳实施例中,使用商品化数据库管理器730来维护安全数据库610。ROS602通过数据库驱动程序750和数据库接口748与商品化数据库管理器730交互作用。数据库接口748位于ROS602与外部的、第三方数据库厂家的商品化数据库管理器730之间,它可能是一个开放标准而允许任何数据库厂家为他们的产品实现遵循VDE的数据库驱动程序750。

ROS602可以对每个安全数据库610记录都进行加密,于是在商品化数据库体系结构之上产生了一个由VDE提供的安全层。换句话说,SPE736可以按照可保存在数据库记录结构中的大小和格式对安全记录进行写操作,该数据库记录结构由商品化数据库管理器730支持。于是商品化数据库管理器730可以用来对记录进行组织、保存和检索。在某些实施例中,要使用专有的和/或新出现的数据库管理器来代替商品化数据库管理器730。但是,使用商品化数据库管理器730可能具有某些优点,例如,这样就可以使用现有的数据库管理产品。

安全数据库服务管理器(“SDSM”)744调用底层的商品化数据库管理器730以便获得、修改或保存安全数据库610中的记录。在较佳实施例中,“SDSM”744在商品化数据库管理器730的结构之上提供了一个层。例如,所有的VDE安全信息均以加密的形式发向商品化数据库管理器730。SDSM744与高速缓存管理器746以及数据库接口748一起可在商品化数据库管理器730和/或记录管理器之上提供记录管理、高速缓存(使用高速缓存管理器746)、以及其它相关服务。较佳实施例中的数据库接口748和高速缓存管理器746不提供它们自己的RSI,而是由RPC管理器732通过安全数据库管理器RSI744a与它们通信。

名字服务管理器752

名字服务管理器752提供三种子服务:用户名字服务、主机名字服务以及服务名字服务。用户名字服务支持用户名字与用户ID(标识)之间的映射和查找,并且还可以支持基于用户的资源和信息安全性等其它方面。主机名字服务支持其它处理资源(如其它主机电子设备)的名字(以及其它信息,如地址、通信连接/路由信息等)与VDE节点ID之间的映射和查找。服务名字服务支持服务名字以及其它相关信息如连接信息(连接信息的例子有:远程服务的路由选择以及联络信息)等与服务ID之间的映射和查找。较佳实施例中的名字服务管理器752与外部服务管理器772相连,这样它就可以把外部服务路由选择信息直接提供给外部服务管理器。名字服务管理器752还与安全数据库管理器744相连,名字服务管理器752就可以访问保存在安全数据库610中名字服务记录。

外部服务管理器772和服务传输层786

外部服务管理器772可提供协议,以支持与外部服务提供者接口功能。外部服务管理器772可以(举例来说)从名字服务管理器752获取外部服务路由选择信息,然后通过通信管理器776对某个特定外部服务(如另一个VDE电子设备600,一个金融票据交换所,等等)起动联络。外部服务管理器772使用服务传输层786来提供通信协议以及提供通信所必须的其它信息。

有一些重要的外部服务管理器772使用示例。某些VDE对象可以将它们的部分或所有信息内容保存在电子设备600的对象仓库728中,而不是保存在由用户操作的对象仓库728中,所述的用户具有或希望得到该VDE对象的使用权。在这种情况下,外部服务管理器772可以与存有所需VDE对象(或其内容)的电子设备600进行连接。另外,文件系统687可以是一个网络文件系统(如Netware、LANtastic、NFS等),它允许使用重定向器684对VDE对象进行访问。对象开关734也提供这种能力。

如果用外部服务管理器772来访问VDE对象,则可有多种技术可供使用。例如,可以将VDE对象进行格式化,以便与环球网(WorldWide Web)协议(HTML、HTTP和URL)共同使用,其方式是添加相关的报头信息、信息内容标记、主机ID到URL的转换(如利用名字服务管理器752),以及HTTP感知型的服务传输层786实例。

在另一个例子中,外部服务管理器772可以用来定位、连接或使用远程事件处理服务、智能代理执行服务(可以既提供服务,又可以定位服务)、对公开密钥的验证服务、远程名字服务、以及其它远程功能,这些远程功能或者由ROS 602 RPC(这些RPC带有RSI)支持,或者使用由服务传输层786支持的协议。

输出管理对象管理器754

输出管理对象管理器754从对象开关734、对象仓库管理器770或其它来源接收管理对象,以便将其传送给其它VDE电子设备。输出管理对象管理器754负责将输出对象发送到其正确目的地。输出管理对象管理器754可以从名字服务管理器752获取路由信息,并且可能利用通信服务776发送对象。输出管理对象管理器754通常维护(与SPE503协调)安全数据库610中的记录(如发货表格444),这些记录反映了对象是何时被成功传送的、何时应该传送对象、以及其它与对象传送有关的信息。

输入管理对象管理器756

输入管理对象管理器756通过通信管理器776从其它VDE电子设备600接收管理对象。它可以将该对象路由选择到对象仓库770、对象开关734或其它目的地。输入管理对象管理器756通常要维护(与SPE503协调)安全数据库610中的记录(如收货表格446),这些记录反映了收到的是哪个对象、希望收到的是哪些对象、以及其它与接收到的和/或希望接收的对象有关的信息。

对象仓库管理器770

对象仓库管理器770是数据库或文件管理器的一种形式。它管理VDE对象300在对象仓库728、数据库或文件系统687中的存放。对象仓库管理器770还可以浏览和/或搜索与对象有关的信息(如信息内容概要、摘要、修订者的注释、计划、促销材料等),其途径是(举例来说)使用与VDE对象300相关的信息(INFORMATION)方法。

对象提交管理器774

较佳实施例中的对象提交管理器774提供了应用608与对象开关734之间的接口。因此,在某些方面可以将对象提交管理器774看成是API682的一部分。例如,它可以允许用户应用创建一个新的VDE对象300。它还可以允许输入/输出管理对象管理器756和754创建VDE对象300(管理对象)。

图12A示意了如何使用对象提交管理器774与电子设备600的用户进行通信,以便创建新的VDE对象300。从图12A中可以看到,在较佳实施例中,对象的创建可能分两个阶段:对象定义阶段1220和对象创建阶段1230。图12A中两种不同的示意性“用户输入”(774(1),774(2))指出对象提交管理器774充当的角色。

作为第一种角色或实例,对象提交管理器774提供了用户接口774a以允许用户创建一个对象配置文件1240,该配置文件指明了将要创建的VDE对象300所具有的某些特征。该用户接口774a可以(举例来说)允许用户表明他希望创建一个对象,允许用户指明对象将要包含的信息内容,允许用户规定需要纳入对象中的其它某些方面的信息(如规则和控制信息、标识信息等等)。

在较佳实施例中,对象定义任务1220中一部分是对需要纳入对象的信息内容或其它信息进行分析。对象定义用户接口774a可以向对象开关743发出调用,以便对待创建对象所要包含的“信息内容”或其它信息进行分析,以便将该信息内容定义或组织成用户规定的“原子元素”。此处解释一下,这种“原子元素”组织方式可以(举例来说)将信息内容划分为段、页或其它由用户定义的更小部分,它还可能是明确的(例如在各“原子元素”之间插入控制字符)或隐含的。对象开关734可以接收静态的或动态的信息内容(如利用时间无关性流接口762和实时流接口760),并能够访问和检索保存在文件系统687中的信息内容或其它信息。

对象定义1240的结果可以是一个对象配置文件1240,该配置文件规定了与待创建对象有关的某些参数。这些参数可以包括(举例来说)映射表、密钥管理规范以及事件方法参数。对象创建阶段1230可以将对象配置文件1240以及需要纳入新对象的信息或信息内容作为输入,根据这些输入创建一个对象,并将该对象保存在对象仓库728中。

对象创建阶段1230可以使用对象配置文件中的信息来装配或修改某个容器。该过程通常涉及与将一系列事件发送给SPE503,以便创建一个或多个PERC808、公开报头信息、私有报头信息,并对信息内容进行加密,所有上述部分都将存储在新的对象300中(或存放在安全数据库610中与新对象相关的记录中)。

对象配置文件1240可以被传送给对象开关734中的容器管理器764。容器管理器764负责根据对象配置文件1240和其它用户输入创建对象300。用户可以通过对象提交管理器744的另一个实例774(2)与对象创建过程1230交互作用。在对象提交管理器744提供的这个再次用户交互作用中,用户可以对适用于或相关于新对象300的许可、规则和/或控制信息作出规定。为了规定许可、规则和控制信息,对象提交管理器744和/或对象开关734中的容器管理器764通常(如上所述)需要(如通过网关734)向SPE503发送调用请求,使SPE从安全数据库610中获取相应的信息,产生相应的数据库项,并将这些数据库项存放在安全数据库610中,与/或以加密保护的方式将这些数据库项提供给对象开关,以便将之包含进对象中。在这些由SPE503提供的信息中,除了加密的信息内容或其它信息之外,还包括一个或多个PERC808、一个或多个核心1000’,一个或多个加载模块1100,一个或多个诸如UDE1200和/或MDE1202之类的数据结构,以及各种密钥模块、标记、公开和私有报头、及纠错信息。

容器管理器764可以与SPE503共同协作创建一个对象容器302,这个过程至少要部分地依据由对象配置文件1240规定的、有关信息对象信息内容或其它信息的参数。之后,容器管理器764可以将需要纳入在新对象中的(由SPE503加密的)信息内容或其它信息插入到容器302中。容器管理器764还可以将适当的许可、规则和/或控制信息插入到容器302中(这些许可、规则和/或控制信息可以至少部分地由用户通过对象提交管理器744交互作用来定义,同时可以至少部分地由SPE503来处理以便创建安全数据控制结构)。然后容器管理器764可以将新对象写入对象仓库687,同时用户或电子设备可以加入安全数据库610中适当信息,以便“注册”新对象。

通信子系统776

如上所述,通信子系统776可以是一个传统的通信服务,它提供网络管理器780和邮件网关管理器782。可以有一个邮件过滤器784,它用来自动确定来自(或去往)外界的对象300或其它VDE信息的路由。通信子系统776可支持来自有线电视、卫星或其它电信链路的实时信息内容输入。

安全处理环境503

前面已结合图12讨论过,较佳实施例中的每个电子设备600都含有一个或多个SPE503和/或一个或多个HPE655。这些安全处理环境都能提供经过保护的执行空间使任务以安全方式执行。它们可以完成ROS传来的服务请求,同时,它们自身可以生成由ROS602中的其它服务、或另一个VDE电子设备600或计算机提供的服务满足的服务请求。

在较佳实施例中,SPE503由SPU500的硬件资源进行支持。HPE655可由通用处理器资源来支持,并依赖软件技术来提供安全性/保护措施。因而HPE655使ROS602能够在一个通用CPU上装配和执行特定部件组690,这些通用CPU的例子有:微计算机、小型计算机、大型计算机或超级计算机处理器。在较佳实施例中,SPE503的整体软件体系结构可与HPE655的软件体系结构相同。HPE655可以“仿真”SPE503及相关SPU500,即每个HPE655都含有服务和资源,以支持来自ROS602的相同服务请求集合(尽管可以不允许ROS602将某些只能运行于SPU500中的、高度保密的任务传送给HPE)。

在某些电子设备600的配置中可既含有SPE503又含有HPE655。例如,HPE655可以用来执行那些需要较低级别(或无)安全保护的任务,而SPE503可以用来执行所有那些需要较高级别安全性的任务。这种利用多SPE和/或HPE的配置提供串行和并行处理的能力将带来更多的灵活性,并克服了有限资源所产生的限制,而由SPU500提供这些资源是现实并且廉价的。在特定的应用中,SPE503和HPE655协同工作可以产生一个更加有效、廉价并依旧安全的综合处理环境,以支持和提供VDE100所需要的安全处理环境。作为一个例子,HPE655可以提供全部的处理,使用户可以操纵所发布的对象300的“信息内容”,而用户则使用SPE503对保密对象进行访问,并从对象中发布信息。图13示意了较佳实施例安全处理环境(SPE)503的软件体系结构。

该体系结构也适用于较佳实施例宿主处理环境(HPE)655。通常用“受保护的处理环境”(“PPE”)650来指代SPE503和/或HPE655。此处往后,除非上下文中特别指明,只要提及“PPE650”、“HPE655”和“SPE503”,所指的就是它们之中的各个。

如图13所示,较佳实施例中的SPE503(PPE650)含有下列的服务管理器/主要功能模块:

核心/调度程序552

通道服务管理器562

SPE RPC管理器550

时基管理器554

加密/解密管理器556

密钥和标记管理器558

概要服务管理器560

验证管理器/通信服务管理器564

随机数发生器565

安全数据库管理程序566

其它服务592

下面将详细讨论PPE650的各个主要功能模块。

SPE核心/调度程序552

核心/调度程序552提供了一个操作系统“核心”,该核心运行于SPU500的硬件资源之上,并管理这些硬件资源。该操作系统“核心”552为SPU500提供了自含的操作系统;它同时还是整体ROS602(ROS602可含有多个OS核心,接受ROS控制/管理的SPE和HPE每一个都有这样一个OS核心)的一部分。核心/调度程序552提供SPU任务和内存管理,支持SPU内部硬件中断,提供某些“低层服务”,管理“DTD”数据结构,并管理SPU总线接口部件530。核心/调度程序552还含有一个加载模块执行管理器568,它可以把程序加载到安全处理空间以便SPU500执行。

在较佳实施例中,核心/调度程序552可以含有下面的软件/功能部件:

加载模块执行管理器568

任务管理器576

内存管理器578

虚拟存储器管理器580

“低层”服务管理器682

内部中断处理程序584

BIU处理程序586(HPE655中可以没有)

服务中断队列588

DTD解释程序590

最好将核心/调度程序552中的至少某些部分存放在加载进SPUROM532中的SPU固件中。图14A给出了SPU ROM 532的存贮器映象示例。该存贮器映象示意了驻留在SPU ROM 532a和/或EEPROM532b中的各种核心/调度程序552部件(以及图13所示的其它SPE服务)。图14B给出了NVRAM534b的存贮器映象示例,该存贮器映象示意了加载在NVRAM中的任务管理器576以及其它信息。

核心/调度程序552所完成的功能之一是接收ROS RPC管理器732发来的RPC调用请求。如前所述,ROS核心RPC管理器732可以(通过SPE设备驱动程序736及其相关RSI736a)将RPC调用路由选择到SPE503以便SPE进行处理。SPE核心/调度程序552接收这些调用后,或者对它们进行处理,或者将它们传递给SPE RPC管理器550,由SPE RPC管理器550将这些调用内部地转送给SPE503。基于SPE503的进程也可以产生RPC请求。某些这类请求可以被SPE503内部地处理。如果不能内部服务,可以经过SPE核心/调度程序552将这些请求从SPE503传送给ROS RPC管理器732,由ROS RPC管理器732将这些请求转送给SPE503外部的服务。

A.核心/调度程序任务管理

核心/调度程序任务管理器576对执行于SPE503(PPE650)中的任务进行调度和管理。SPE503支持多种类型的任务。“通道”(在较佳实施例中,“通道”是一种特殊类型的任务,它控制部件组690的执行)被任务管理器576视为一种任务。任务被提交给任务管理器576以便执行。任务管理器576接着要确保执行该任务所需的SPE503/SPU500资源可以获得,然后安排SPU微处理器520执行该任务。

发向核心/调度程序552的任何调用都使核心有机会对SPE503进行控制,并切换当前正在运行的任务。于是,在较佳实施例中,核心/调度程序552可以(与虚拟内存管理器580和/或内存管理器578一道)将当前处于活动状态的某些或所有任务从执行空间中“换出”,而将其它的或不同的任务“换入”。

由任务管理器576管理的SPE任务分配可以是“单任务分配”的(指在一个时刻只能有一个任务处于活动状态),也可以是“多任务分配”的(指在一个时刻可以有多个任务处于活动状态)。在较佳实施例中,SPE503可支持单任务分配也可支持多任务分配。例如,SPE503的“高端”(high end)实现(如在服务器设备中)最好采用“强占式调度”的多任务。桌上型应用虽然仍需要并行地执行某些任务,但一般只需采用更简单一些的SPE503。顶置型应用可以使用其实现相对比较简单的SPE503,该SPE503支持在一个时刻只执行一个任务。例如,典型顶置型应用中SPU500可以执行简单的计量、预算和计帐处理,它使用组合进单个“聚合”加载模块中的VDE方法子集,从而允许在单任务分配环境中执行多个方法。但是,只支持单任务分配的执行环境可能会限制使用更为复杂的控制结构。SPE503的这种单任务分配实现方式牺牲了计量和预算操作在数目和类型上的灵活性,但换来了较小的运行时RAM容量要求。这种SPE503实现可以限制为(取决于存贮器限制)在一个时刻只能对单个对象300进行计量。当然,可以做一些变通和组合以便在简单的单任务分配环境基础上增加一些功能,而又不致为了支持“完善的多任务分配”而导致额外的花销。

在较佳实施例中,SPE503中的每一个任务都由一个“交换模块”来代表。可以认为“交换模块”是传统多任务体系结构中的一个“任务”。较佳实施例中的“交换模块”是一种管理机制,任务管理器576用这种机制来跟踪任务和子任务。它对应于安置在由SPU500所提供安全执行环境中的一段代码及其相关引用。在较佳实施例中,“交换模块”含有一个引用表,这些引用指向共享数据元素(如加载模块1100和UDE1200)、私有数据元素(如方法数据和局部堆栈)、以及被交换进程的“上下文”信息(如进程在非运行时刻的寄存器集合)。图14C示意了SPU RAM 532的快照,它存放了多个示例性的“交换模块”,分别对应于多个不同的任务/方法,如一个“通道”任务,一个“控制”任务,一个“事件”任务,一个“计量”任务,一个“预算”任务,以及一个“计帐”任务。根据SPU RAM 532容量的大小,可以将“交换模块”从RAM中换出,并临时存放到二级存贮器652中,直到下次继续执行。这样,SPE在运行于多任务分配模式时可以使一个或多个任务“睡眠”。在最简单的方式下,SPE可以有一个“活动”任务和另一个“睡眠”任务(如控制任务,在其控制下活动任务才得以运行),前者正在执行,而后者被换出活动执行空间。核心/调度程序552可在任何时刻换出任务。

任务管理器576可使用内存管理器578来协助自己完成交换操作。为将任务换出安全执行空间,从RAM或(举例来说)SPU500的其它内部存贮器中读取适当信息,然后将“交换模块”写到二级存贮器652中。核心552为了将任务换回安全执行空间,从二级存贮器652中读出交换模块,然后将适当信息写回SPU RAM 532。由于二级存贮器652是非安全的,SPE503在将交换模块写入二级存贮器652之前必须首先对之进行加密并加密封装(例如使用单向散列函数,该函数由只在SPU500内部公开的保密数值进行初始化)。SPE503必须首先对从二级存贮器652读出的交换模块进行解密,并验证其加密封装,之后才能将之送回安全执行空间继续执行。

为将“交换模块”加载到SPU内存中,可能需要进行一个或多个“分页操作”,“分页操作”可能首先保存所有与早先加载的交换模块有关的“脏页”(即由SPE503改写过的页),然后对这些页进行刷新,之后将新交换模块上下文所需的所有页加载进去。

核心/调度程序552最好使用服务中断队列588来管理“交换模块”。服务中断队列588允许核心/调度程序552跟踪任务(交换模块)及其状态(运行状态、“被换出”状态、或“睡眠”状态)。在较佳实施例中,核心/调度程序552可以含有下列服务中断队列588以协助自己管理“交换模块”:

运行(RUN)队列

交换(SWAP)队列

睡眠(SLEEP)队列

运行队列中存放的是那些已完全加载进安全执行空间并等候和/或正在使用微处理器502执行周期的任务。交换队列中存放的是那些被“换出”的任务(例如,这些任务正在等待其它可交换部件被加载进来)。睡眠队列存放的是那些正在睡眠的任务(例如,这些任务被除处理器周期之外的另一些资源所“阻塞”,或者当前不需要这些执行任务)。核心/调度程序任务管理器576可以(举例来说)按照“轮转”调度算法在运行队列和交换队列之间转换任务,轮转法选择下一等待服务的任务,将任何需要调页进来的部分交换进来,然后执行任务。核心/调度程序任务管理器576在需要的时候可以在睡眠队列和活动(即运行或交换)队列之间转换任务。

在多任务分配环境中,当两个或多个任务试图对同一数据结构进行写操作时,会出现可能导致“死锁”或“任务饥饿”的情况。可以使用“多线程”任务分配配置以避免“死锁”或“任务饥饿”出现。较佳实施例核心/调度程序552可以支持“单线程”或“多线程”任务分配。

在单线程应用中,核心/调度程序552在单个数据结构被加载的时候将之“锁定”。一旦锁定以后,任何其它SPE503任务都不能加载这些数据结构,同时被“阻塞”,以等待该数据结构变为可用。作为一个实际情况,使用单线程的SPE503可以限制外部厂商创建加载模块1100的能力,这是因为不能保证他们创建的加载模块与那些他们知之甚少或毫不知晓的其它VDE进程之间不会发生死锁情况。而且,对只更新了一部分的记录进行上下文交换可能会破坏系统的完整性,纵容了未经计量的使用,以及/或者导致死锁。另外,这种“锁定”机制将给通常具有时间紧迫性的进程带来可能难以预料的延迟,还可能限制SPE503的吞吐量,并可能增加开销。

除了上述问题难以解决外,实现单线程的SPE503还带来其它重大处理问题,在某些情况下这些问题可以限制SPE503的有用性和能力。例如在单线程SPE503中,多个并行执行的任务如果使用同一个经常被访问的数据结构,就可能无法执行下去。这实际上会把并行任务的数目限制成一个。另外,单线程机制可能无法根据并行任务的数目产生准确的概要预算,这是因为多个并行任务可能无法有效地共享同一个概要预算数据结构。单线程机制还可能会使审核进程无法与其它进程并行执行。举例来说,为了审核跟监控进程有关的预算和计量,可能需要停止某个实时输入处理。

为了提供更加可行的“单线程”功能,一种方法是让核心/调度程序552使用虚拟页处理算法,在数据区被写入时对“脏页”进行跟踪。可以将“脏页”作为交换模块局部数据的一部分与交换模块一起换进或换出。当存在一个任务时,可以使用一种三路合并算法将“脏页”与当前数据结构(该数据结构可能被SPU500的其它任务更新)进行合并,三路合并算法的过程是将原始数据结构、当前数据结构和“脏页”进行合并以形成一个新的当前数据结构)。在更新处理中,当对页进行比较或交换操作时,可以对数据结构进行锁定。尽管这种虚拟分页方案可能在某些应用中支持单线程机制,由于存在着上面提到的厂家限制,在某些情况下这种单线程实现只适用于某些专用的硬件。任何支持多用户的实现(如“智能家庭”顶置系统、许多桌上型系统和某些PDA应用)都会在某些情况下遭遇单线程设备的限制。

如果不能允许上述限制存在的话,最好使用完备的“多线程”数据结构写功能。例如,可以一种“两阶段提交”处理过程以支持数据结构被多个进程共享,上述“两阶段提交”方法是数据库厂家所使用的处理方法之一。为了实现这种“两阶段提交”过程,每个交换模块可以含有指向附加内存块的页地址,这些附加内存块用来存贮改变了的信息。一个改变页是已被SPE进程定入的某个数据元素片段的的一份局部拷贝。在较佳实施例中,与特定数据结构相关的被改变页引用存放在交换模块的局部区域。

例如,SPE503可以支持每个数据结构有两个改变页。通过改变交换模块结构的大小并允许更新算法处理所有被改变的页,便可以方便地改变上述限制。当准备丢弃某个引用了被改变页的交换模块时,可以激活“提交”进程。提交进程将被早先加载的原始数据元素(如UDE0),当前数据元素(如UDEn)以及被改变页合并成一个新的数据元素拷贝(如UDEn+1)。DTD解释程序590可以使用数据元素的DTD来解决合并中出现的差异问题。如果没有其它交换模块再引用原始数据元素,那么该数据元素将被丢弃(举例来说,丢弃将取决于其DTD使用计数)。

B.核心/调度程序内存管理

在较佳实施例中,内存管理器578和虚拟内存管理器580对SPU500内的存贮器ROM532和RAM534进行管理。虚拟内存管理器580提供了完全“虚拟”的内存系统,从而使SPE安全处理环境可用的“虚拟”内存容量超过了由SPU500提供的物理RAM534a容量。内存管理器578管理安全执行空间中的内存,控制如何对其访问、分配和回收。在较佳实施例中,如果有SPU MMU 540的话,它将支持虚拟内存管理器580和内存管理器578。在SPU500的某些“最小”配置中,可以不提供虚拟内存功能,而所有的内存管理工作都由内存管理器578来完成。内存管理还可以用来加强SPE503所提供的安全性。举例来说,在某些类型的SPU500中,核心内存管理器578可以使用硬件内存管理部件(MMU)540在SPU内部提供页级保护。这种基于硬件的内存管理系统提供一种有效的机制,用来保护VDE部件组690免受“恶意”加载模块的侵害。

另外,如果内存管理器578的操作至少部分以基于硬件的MMU540为基础,那么它提供的内存管理机制将可以安全地实现和强化一个提供多个保护区域(domain)的内存体系结构。在这种体系结构中,内存被划分为大量的区域,这些区域在极大程度上互相隔离,并在内存管理器578的控制之下只能共享特定的内存区。一个正在执行的进程不能访问其区域之外的内存,并且只能通过特定服务与其它进程进行通信,这些特定服务由SPU500中特权级核心/调度程序软件552提供和传递。如果至少部分地得到了MMU540内部硬件的加强,那么上述体系结构就更具安全性,任何运行于SPU500内部的、基于软件的进程是无法修改MMU540内部硬件的。

在较佳实施例中,对实现于ROM532中的服务的访问,以及对诸如NVRAM534b和RTC528等物理资源的访问都要受到特权级核心/调度程序软件552和MMU540内部硬件的中介。ROM532和RTC528的请求享有特权,这是为了保护对关键系统部件处理程序的访问(如RTC528)。

内存管理器578负责分配和回收内存,监督进程间的内存资源共享情况,并强制执行内存访问/使用限制。SPE核心/调度程序内存管理器578通常在初始时将所有的内存都分配给核心552。可以对内存管理器578进行适当配置,以便在页被特定进程加载之后只允许对这些页进行进程级的访问。在SPE操作系统配置的一个例子中,内存管理器578使用一种简化了的分配机制进行内存分配。举例来说,可以用一个位图分配向量来表示SPE503中由每个可访问内存页组成的表。在一个内存块中,一组连续的内存页可以起始于一个特定的页号。块的大小由它跨越的内存页的数目来计量。可以通过设置/清除分配向量中的相应位来记录内存的分配。

为协助内存管理功能,可在存储器块上预挂一个“内情向量”(dopevector)。“内情向量”可以含有某些信息,以允许内存管理器578对内存块进行管理。在最简单的形式下,一个内存块可以被结构化成一个“内情向量”,以及后跟该块的实际内存区域。该“内情向量”可以含有块号、对数据元素动态调页的支持信息以及检测内存重写的标记。内存管理器578可以根据块号来跟踪内存块,并且可以在使用块之前将块号转换成地址。对内存区的所有访问都可以在从块内存到物理地址的转换过程中自动地偏移“内情向量”的大小。虚拟内存管理器580也可以使用“内情向量”来协助管理虚拟内存。

在较佳实施例中,由内存管理器578执行的ROM532存贮器管理工作相对比较简单。所有的ROM532页面都被标记为“只读的”和“不可调页的”。EEPROM532b存贮器管理可能稍微复杂一些,这是因为需要对每个EEPROM页面的“烧入计数”(burn count)进行维护。

可能需要保护SPU EEPROM 532b使之避免所有未加控制的写入操作,这样可以保证该存贮器特定型号的有限写入寿命不被滥用。另外,在某些例子中,EEPROM的页面可以与内存管理地址页的大小不同。

SPU NVRAM 534b最好是由电池后备供电的RAM,该RAM带有一些访问限制。内存管理器578可以保证需定位到NVRAM534b中的控制结构在“垃圾收集”过程中不会被重新定位。如上所述,内存管理器578(如果存在MMU540的话还包括MMU540)可以在页面级对NVRAM534b和RAM534a进行保护,使之免受其它进程的破坏。

虚拟内存管理器580为程序和数据提供SPU外部存贮器和SPU内部RAM534a之间的页调度功能。有可能数据结构和可执行进程会超出所有SPU500内部存贮器的限度。例如,PERC808以及其它基本的控制结构可能相当大,并且“位图表”也可能会变得很大。这种突发性问题可以采用两种方法来解决:

(1)划分加载模块1100;以及

(2)支持虚拟页面机制

加载模块1100之所以能被“划分”,是因为在许多情况下,它们可以分成独立的部件,而只有其中的一个子集才必须被加载供执行。在本例中,加载模块1100是可调页的最小可执行元素。这种加载模块1100可以划分为独立的部件(如划分为可执行码和大量的数据描述块),为执行简单的加载模块功能,这些独立的部件中只有一个才必须被加载。采用这种结构,可以使加载模块1100在初始时只加载执行码,并根据需要将数据描述块加载到系统其它页面中。许多加载模块1100的可执行部分可能太大,以致无法安放在SPU500中,这时可将这些加载模块1100重新构造成两个或更多的加载模块。大的加载模块可以被手工“划分”成多个小的加载模块,并通过显式加载模块引用将它们相互“链接”在一起。

虽然可以用“请求式页调度”来放松上述部分限制,而较佳实施例使用了虚拟页调度机制来管理大数据结构和可执行程序。虚拟内存管理器580将信息(如可执行代码与/或数据结构)“换”入或“换”出SPURAM534a,并提供了其它相关的虚拟内存管理服务,以支持完备的虚拟内存管理功能。使用虚拟内存管理机制的一个重要原因是该机制允许用SPE500配置中的有限资源来执行大任务和/或多任务。

C.SPE加载模块执行管理器568

SPE(HPE)加载模块执行管理器(“LMEM”)568将可执行程序加载到由内存管理器578管理的内存中,并将之执行。LMEM568提供了一种机制,用来对当前已加载到受保护执行环境中的加载模块进行跟踪。LMEM568还提供了对保存在SPE503中的基本加载模块和代码段的访问机制,这些基本加载模块和代码段对于SPE503来说是始终可用的。(举例来说,)LMEM568可以被希望执行其它加载模块的加载模块1100所调用。

在较佳实施例中,加载模块执行管理器568含有一个加载模块执行器(“程序加载器”)570、一个或多个内部加载模块572、以及库例程574。加载模块执行器570(例如从内存管理器578收到一段内存分配之后)将可执行程序加载到内存中以便执行。内部加载模块572可以提供一组(保存于ROM532或NVRAM534b中的)通用基本加载模块1100。库例程574可以提供一组通用的代码段/例程(如引导例程)供SPE503执行。

库例程574可以提供一组存放于ROM532中的标准库函数。可使用这些标准的库函数及其入口点和参数的一张标准清单。加载模块1100可以调用这些例程(例如使用一个为此保留的中断)。这种库调用机制将代码移到了一个中心位置并支持高度的代码重用,这样可以减少加载模块的大小。所有由SPE503使用的加载模块1100都最好被加载模块执行管理器568所引用,加载模块执行管理器568维护并扫描一个可用加载模块的表,并选择适当的加载模块以便执行。如果所需的加载模块没有出现在SPE中,那么该任务将进入“睡眠”状态,同时LMEM586可以请求将该加载模块从二级存贮器652中加载进来。该请求将发出两个调用,一个调用以RPC调用的形式发向安全数据库管理器566,使之检索出该加载模块以及相关数据结构;另一个调用发向加密/解密管理器556,使之首先对该加载模块进行解密,然后再将它存放在由内存管理器578分配的内存中。

说得更详细一点,为执行某个加载模块1100,较佳实施例将所需加载模块1100的名字(如VDE标识)传递给加载模块执行管理器568。LMEM568首先搜索“存贮器内”的和“内置”的加载模块572表。如果在该表内不能发现所需的加载模块,它便发出一个RPC请求,要求从安全数据库610得到一个拷贝,该RPC请求可以被图12所示的安全数据库管理器744所处理。然后加载模块执行管理器568可以请求内存管理器578分配一个内存页面以存放该加载模块1100。加载模块执行管理器568可以将上述加载模块复制到那个内存页面中,并将该页放入队列中,以便由加密/解密管理器556和密钥及标记管理器558进行解密和安全检查。一旦该页经过解密和检查,加载模块执行管理器568将检查其合法性标记,并将该加载模块插入到调入模块表中,然后将页面地址返回给调用程序。然后调用程序可以直接调用该加载模块1100,或让加载模块执行模块570为其发出调用。

图15a详细地示意了通道头信息596和通道594的可能格式,通道594含有通道详细记录594(1),594(2),...594(N)。通道头信息596可以含有通道标识字段597(1)、用户标识字段597(2)、对象ID字段597(3)、一个包含对“权利”所做引用或所做其它标记(即一组事件,这些事件由PERC808和/或“用户权利表”464所引用的方法提供支持)的字段597(4)、事件队列597(5)、以及一个或多个字段598,字段598利用通道详细记录(“CDR”)对特定的事件代码进行交叉引用。通道头信息596还可以带有“跳转”表或引用表599,表599允许对相关部件组690中的元素进行寻址。每个CDR594(1),...594(N)都对应于由通道594作出响应的某个特定事件(事件代码)。在较佳实施例中,这些CDR或者显式或者通过引用方式包含了各个方法核心1000N(或其片段)、加载模块1100以及数据结构(如URT、UDE1200和/或MDE1202),这些都是处理相应事件所需要的信息。在较佳实施例中,一个或多个CDR(如594(1))可引用一个控制方法和作为数据结构的URT464。

图15b例示了在较佳实施例中,SPE503为“打开”通道594所需执行的程序控制步骤。在较佳实施例中,通道594向特定的VDE对象300、特定的授权用户、以及特定“权利”(如事件类型)提供了事件处理。可以将这三个参数传递给SPE503。执行于“通道0”中的部分SPE核心/调度程序552最初可以通过分配一个由SPE503处理资源所支持的可用通道(步骤框1125)来响应这个“打开通道”事件,“通道0”是由低层服务582在“引导”例程中创建的。然后该“通道0”“打开通道”任务可向安全数据库管理器566发出一系列请求,以便获取一份“蓝图”(blue print),利用该“蓝图”来创建与通道594相关的一个或多个部件组690(步骤框1127)。在较佳实施例中,“蓝图”可以含有一个PERC808和/或URT464。通过使用传向“打开通道”例程的“对象、用户、权利”参数,将对象注册表460记录、用户/对象表462记录、URT464记录、以及PERC808记录相互链接在一起,这样就得到了这张“蓝图”。“打开通道”任务最好向密钥和标记管理器588发送调用请求,以便对与上述各种记录相关的标记进行验证和关联,从而确保它们是可信的和匹配的。然后较佳实施进程把适当的信息写至通道头信息596(块1129)。这些信息可以包括(举例来说)用户ID、对象ID、和一个引用,该引用指向了通道将要处理的“权利”。较佳实施例进程将使用“蓝图”访问(例如访问安全数据库管理器566和/或来自加载模块执行管理器库568)适当的“控制方法”,这些“控制方法”可实际用来监控通道594中所有其它方法1000的执行(步骤框1131)。然后该进程把该控制方法与通道相“装配”(bind)(步骤框1133),这个步骤将包括将URT464的信息作为控制方法的数据结构合并到通道中。接着该过程向通道594传递一个“初始化”事件(步骤框1135)。该“初始化”事件可以由通道服务管理器562创建,通道服务管理器562发出原始调用要求被创建的通道处理某个服务。另外,与通道刚装配的控制方法本身也可以产生一个初始化事件,并实际上将该事件传给自身。

为响应该“初始化”事件,控制方法可以创建通道详细记录594(1),...594(N),这些通道详细记录用来处理除“初始化”事件之外的其它事件。执行于通道内的控制方法可以访问各种部件,这些部件是它根据在步骤1127中访问到的“蓝图”来创建相关的部件组690(步骤框1137)所需要的。通过创建一个相关的通道详细记录将每个上述部件与通道594相装配(步骤框1139),此处的通道详细记录规定了用来响应上述事件的方法核心1000N、加载模块1100和相关数据结构(如UDE1200和/或MDE1202)。通道详细记录的数目取决于“权利”能够服务的事件数目,所述“权利”由“蓝图”(即URT464)来指定。在此过程中,控制方法将创建“交换模块”,以便实际地生成所有需要的任务,并从核心562获取必要的内存分配。做为必要的步骤,该控制方法将向安全数据库610发送请求以检索所需部件,向加密/解密管理器556发送调用以解密检索到的加密信息,向密钥和标记管理器558发送调用以确保所有检索到的部件都是有效的。借助通道头信息事件代码/指针记录598并通过创建由通道详细记录594(1),...594(N)所引用的相应交换块,将每个在前述步骤中创建的不同部件组690与通道相装配。当该进程完成后,通道594就被完全创建好了,并且已经可以响应其它事件了。作为最后的步骤,如果需要的话,图15b中进程将回收“初始化”事件任务以便释放资源。

一旦通道594以按照上述步骤创建好,它就可以在事件到来时进行响应。通道服务管理器562负责将事件调度给通道594。每当一个新的事件(如通过RPC调用)到来,通道服务管理器562将对该事件进行检查,以确定是否存在一个能处理该事件的通道。如果确实存在这样的通道,通道服务管理器562就把该事件传送给这个通道。为处理该事件,任务管理器576有必要将某些“可交换模块”交换进来,这些“可交换模块”被通道详细记录定义为活动任务。通过这种方式,在图15b所示通道打开过程中形成的可执行部件组690被装入活动的安全执行空间中,同时已激活的特定部件组被选择来响应所接收的事件代码。被激活的任务将执行所需功能以响应该事件。

为撤除一个通道,由通道详细记录定义的各种交换模块将被撤消,通道头信息596中信息将被清除干净,并使该通道可被“通道0”“打开通道”任务再分配。

D.SPE中断处理程序584

如图13所示,核心/调度程序552还提供了内部中断处理程序584。它可以协助管理SPU500的资源。对于所有重要的组件,SPU500最好或者执行于“中断”模式或者执行于“查询”模式。在查询模式,核心/调度程序552可以对SPU 500内部的每个组件/电路进行查询,并为之仿真一个中断。较佳实施例中的SPU500最好支持下面的中断:

RTC528的“滴答”中断(tick)

来自总线接口530的中断

电源失效中断

监视计时器中断

来自加密/解密机522的中断

内存中断(如来自MMU540)

当出现一个中断时,微处理器520中的中断控制器将使微处理器开始执行一个相应的中断处理程序。中断处理程序是核心/调度程序552提供的一段软件/固件,它使微处理器520在中断发生时执行特定的处理。中断可以被“矢量化”,于是不同的中断源可实际导致执行不同的中断处理程序。

当实时RTC528“脉动”时会产生“计时器滴答”中断。计时器滴答中断由计时器滴答中断处理程序进行处理,用来计算内部设备日期/时间,并产生一个计时器事件供通道处理。

总线接口部件530可产生一系列中断。在较佳实施例中,仿造USART设计的总线接口530在各种情况下(如“接收缓冲区满”,“发送缓冲区空”以及“状态字改变”)将产生不同的中断。核心/调度程序552为服务发送缓冲区空中断,将从发送队列中传送下一字符到总线接口530。核心/调度中断处理程序584为服务所接收的缓冲区满中断,将读出下一字符,将之附在当前缓冲区之后,并根据总线接口530的服务机状态对缓冲区进行处理。核心/调度程序552最好处理状态字改变中断,并对相应的发送/接收缓冲区进行相应访问。

当SPU500检测到一个急迫的电源失效状态时,它将产生一个电源失效中断。这可能要求马上采取措施避免信息丢失。例如,在较佳实施例中,电源失效中断将把最近写入的所有信息(即“脏页”)转移到非易失性的NVRAM534b,将所有交换模块标记为“换出”,并设置相应的电源失效标志,通过采取以上种种措施,可以使将来的恢复处理变得容易一些。然后核心/调度程序552可以定期查询状态字中的“电源失效位”,直到该数据被清除,或者电源被完全切断。

本例中的SPU500含有一个通常的监视计时器,监视计时器定期地产生监视计时器中断。监视计时器中断处理程序对内部设备进行检查,以确保没有发生破坏现象。将监视计时器和RTC528的内部时钟进行比较,以确保SPU500目前没有被暂停或探测,同时,还要对SPU500的操作进行其它的内部检查以探测破坏。

加密/解密机522在处理了一块数据之后将产生一个中断。核心中断处理程序584对被加密/解密数据块的处理状态进行适当调整,然后传递该数据块进行下一阶段的处理。对于下一需要进行加密的数据块,其密钥被取至加密/解密机522,之后下一加密过程开始。

当一个任务试图访问的内存越过了分配给它的区域,内存管理部件540中断将会产生。内存管理部件540中断处理程序捕获上述请求,并采取必要的处理(例如将控制转移给内存管理器578和/或虚拟内存管理器580)。通常,任务将会失败,同时会产生一个页故障异常,或者相应的虚拟内存页将会调入。

E.核心/调度程序低层服务582

在较佳实施例中,低层服务582提供了“低层”功能。举例来说,在较佳实施例中,这些功能可以包括:上电初始化、设备通电自检(POST)、以及故障恢复例程。较佳实施例中的低层服务582还可以(或者通过它们自身或者结合验证管理器/通信服务管理器564)提供下载应答-询问式通信协议及验证通信协议,并且可以为SPU500存贮器设备如EEPROM和FLASH存储器提供某些低层管理(或者通过它们自身或者结合内存管理器578和/或虚拟内存管理器580)。

F.核心/调度程序BIU处理程序586

较佳实施例中的BIU处理程序586管理总线接口部件530(如果总线接口部件530存在的话)。举例来说,它可以为BIU530管理读和写缓冲区,提供BIU起动初始化,等等。

G.核心/调度程序DTD解释程序590

在较佳实施例中,DTD解释程序590处理数据格式问题。例如,根据DTD内部的格式化指令,DTD解释程序590可以自动打开诸如UDE1200之类的数据结构。

上面讨论的核心/调度程序552支持SPE503提供的所有其它服务。下面将叙述这些其它服务。

II.SPU通道服务管理器562

在较佳实施例中,“通道”是SPE503(HPE665)的基本的任务处理机制。ROS602为“方法”提供了事件驱动接口。“通道”使部件组690可以对事件进行服务。“通道”是一种管道,它用来将“事件”从SPE503(HPE665)所支持的服务传送给处理这些事件的各种指定方法和加载模块,它同时还支持部件组690的装配和部件组690之间的交互作用。更详细地说,“通道”594是通道管理器593所维护的一个数据结构,通道管理器593将一个或多个加载模块1100与数据结构(如UDE1200和/或MDE1202)“装配”到一起从而形成一个部件组690。通道服务管理器562使加载模块执行管理器569加载该部件组以便执行,同时还负责将事件传递到通道594,以便部件组690作出响应。在较佳实施例中,事件处理是作为向通道服务管理器562发送的消息来处理的。

图15示意了较佳实施例通道服务管理器562创建“通道”594的过程,还示意了通道和部件组690之间的关系。简要地说,SPE通道管理器562创建“通道”及相关的“通道头信息”596。通道594及其头596含有一个数据结构,该数据结构“装配”或引用一个或多个部件组690。于是,较佳实施例中的通道594是一种机制,它将图11E中所示的元素收集或组装在一起,从而形成部件组690,该部件组690可以用来进行事件处理。

为响应某个事件的发生,通道服务管理器562将创建通道594。一旦通道创建好之后,通道服务管理器562可根据通道594向加载模块执行管理器568发送功能调用。加载模块执行管理器568将加载由通道594引用的加载模块1100,并请求核心/调度程序任务管理器576执行该加载模块1100。核心/调度程序552将事件处理请求视为一个任务而执行之,即执行由上述通道引用的加载模块1100所含的代码。

通道服务管理器562可以被传递给一个事件标识码(如事件代码)。通道服务管理器562对一个或多个方法核心1000’进行语法分析。这些方法核心1000’是通道服务管理器准备组装的部件组690的一个组成部分。通道服务管理器562进行语法分析是为了确定针对不同的事件类型应该调用那些方法和数据结构。然后通道服务管理器562(例如向安全数据库管理器566)发出调用以获取创建部件组690所必须的方法和数据。(如果需要的话,)这些被调用方法和数据结构(如加载模块1100、UDE1200和/或MDE1202)都要使用加密/解密管理器556进行加密,然后再使用密钥和标记管理器558进行验证。通道服务管理器562创建所有必须的“跳转表”引用,以便实际将上述元素“链接”或“装配”在一起,形成一个紧密结合在一起的可执行程序,从而使加载模块可以引用数据结构和部件组中的其它加载模块。然后通道管理器562向LMEM568发出调用,以便将该可执行程序作为一个活动任务进行加载。

图15示意了通道594可以引用另一个通道。通道服务管理器562可以创建任意数目的通道594以便与另一个通道交互作用。

较佳实施例中的通道头596是(或引用)一些数据结构和相关控制程序,这些控制程序将来自通道事件源的事件排入队列,处理这些事件,并释放由“通道详细记录”所指定的供处理的相应任务。在较佳实施例中,“通道详细记录”把一个事件与有关该事件的“交换模块”(即任务)链接在一起。“交换模块”可以引用一个或多个加载模块1100、UDE1200以及私有数据区,它们是对事件进行正确处理所必须的。对于各个通道能响应的不同事件,均要创建一个交换模块和对应的通道详细记录。

在较佳实施例中,通道服务管理器562为支持通道562的创建和维护,可支持下列的(内部)调用:

调用名源说明“Write Event”(“写事件”)写向通道写入一个事件以便该通道进行响应。因而“WriteEvent”调用允许调用程序将一个事件插入到与该通道相关的队列中。接着该事件将依次由通道594进行处理。“Bind Item”(“装配项”)输入输出控制(Ioctl)以适当的处理算法将某项装配在一起并送入通道中。Bind Call调用允许调用程序将VDE项ID装配到通道中(如创建一个或多个与通道相关的交换块)。该调用可以对单个交换模块的内容进行操作。“Unbind Item”(“解除装配项”)输入输出控制(Ioctl)以适当的处理算法从一个通道中解除一项的装配。Unbind Item调

用允许调用程序解除某个项与某个交换模块之间的装配。该调用可以对单个交换块的内容进行操作。

SPE RPC管理器550

前面已经结合图12介绍过,在较佳实施例中,ROS602的体系结构是基于远程过程调用的。ROS602含有一个RPC管理器732,RPC管理器732在服务之间传递RPC调用,而这些服务必须都具有与该RPC管理器的接口,即RPC服务接口(“RSI”)。在较佳实施例中,SPE503(HPE655)同样构筑在相同的RPC概念之上。SPE503(HPE655)可以含有大量的模块化内部服务提供者,而每个上述内部服务提供者都向(SPE(HPE)内部的)RPC管理器550提供RSI。这些内部服务提供者可以使用RPC服务请求互相进行通信,并且/或者与其它ROS RPC管理器732进行通信(从而可与ROS602提供的任何其它服务以及与外部服务进行通信)。

SPE503(HPE665)内部的RPC管理器550与图12所示的RPC管理器732不相同,但它却在SPE(HPE)内部执行相似的功能:它接收RPC请求,将之传递给特定RSI,该RSI由可处理上述请求的服务所提供。在较佳实施例中,通过SPE(HPE)核心/调度程序552在ROS RPC管理器732和外界(即SPE设备驱动程序736)之间传递请求。核心/调度程序552本身也能够服务某些RPC请求,但它通常将收到的RPC请求传递给RPC管理器550以便转送给SPE(HPE)内部的相应服务。在一个可选的实施例中,可以直接将请求在HPE、SPE、API、通告接口以及其它外部服务之间进行传递,而不是通过ROS RPC管理器732进行转送。具体使用哪种实施例可以体现该系统的可伸缩性的一部分。在不同通信负载和系统配置的前提下,某些实施例要比其它实施例更加有效。服务的响应(以及这些服务自身可以产生的附加服务请求)被送至RPC管理器550,以便再转送至SPE503(HPE655)内部或外部的其它服务。

SPE RPC管理器550及其集成的服务管理器使用两个表格来发送远程过程调用:一个RPC服务表,一个可选RPC调度表。RPC服务表描述的是应该将指定服务转送到何处以便处理。在较佳实施例中,该表格构成在SPU RAM 534a或NVRAM534b中,它列出了SPU500中每个注册的RPC服务。RPC服务表的每一行都含有一个服务ID(标识)、服务位置和地址、以及一个控制字节。在简单的实现中,控制字节只表明了该服务是内部提供的还是外部提供的。在某些较为复杂的实现中,该控制字节可用来表明服务的一个实例(例如,在一个多任务环境中,每个服务都可以有多个“实例”)。在较佳实施例中,ROS RPC管理器732和SPE530可以有RPC服务表的对称拷贝。如果某个RPC服务在RPC服务表中没有出现,SPE503可以拒绝相应的服务请求,或者将它传递给ROS RPC管理器732,以得到其服务。

SPE RPC管理器550接受来自RPC服务表的请求,并按照特定服务的内部优先权对该请求进行处理。在SPE503中,RPC服务表被一个RPC调度表所扩充。较佳实施例RPC调度表是每个由SPE503内部支持的RPC服务对加载模块的引用列表。该表中的每一行都含有一个服务该调用的加载模块ID(标识)、以及一个控制字节,该控制字节表明了相应调用是否可以由外部调用程序发出,以及需要对该调用提供服务的加载模块是否永久地驻留在SPU500中。可以在SPU固件508被加载到SPU500中的时候把RPC调度表构成在SPU ROM 532(或EEPROM)之中。如果该RPC调度表在EEPROM中,那么它可以灵活地支持对服务的更新,而不会产生加载模块位置和版本控制问题。

在较佳实施例中,SPE RPC管理器550首先对照RPC服务表查阅某个服务请求,以确定可服务该请求的服务管理器位置。然后RPC管理器550将该服务请求转送给相应的服务管理器进行处理。SPE503中的服务管理器利用RPC调度表来发送该请求。一旦RPC管理器550在RPC调度表中定位了服务引用信息,那么将利用加载模块执行管理器568来调用和加载对相应请求提供服务的加载模块。加载模块执行管理器568将在执行完所有必要的上下文配置之后把控制权转交给被请求的加载模块,或者如果需要的话加载模块执行管理器568首先发出一个调用用以将加载模块从外部管理文件610中加载进来。

SPU时基管理器554

时基管理器554支持与实时时钟(“RTC”)528相关的调用。在较佳实施例中,时基管理器554一直被加载,并准备好对基于时间的请求作出响应。

下表列出了时基管理器554可以支持的基本调用示例:

  调用名字  说明  独立请求  Get Time  (取时间)  返回时间(本地时间、GMT时间或滴答)。  Set time  (设置时间)  设置RTC528中的时间。对该命令的访问只  限于VDE管理员。  Adjust time  (调整时间)  改变RTC528中的时间。对该命令的访问只  限于VDE管理员。  Set Time  Parameter  (设置时间参数)  设置GMT/本地时间换算,以及用户对RTC  528时间所做调整的当前量级和可允许量级。  通道服务管理器请求  Bind Time  (装配时间)  将计时器服务作为一个事件源装配到通道中。  Unbind Time  (解除装配时间)  将计时器服务作为一个事件源从通道中解除  装配。  Set Alarm  (设置报警)  为指定时刻设置一个报警通知。在该报警时  刻,用户将收到一个报警事件的通知。该请求的  参数指定了事件、频率、以及所请求的报警处理。  Clear Alarm  (清除报警)  取消一个已请求的报警通知

SPU加密/解密管理器556

加密/解密管理器556支持对SPE503/HPE655所支持的各种加密/解密技术进行调用。可用SPU500内部一个基于硬件的加密/解密机522来支持加密/解密管理器556。SPU加密/解密机522所不支持的那些加密/解密技术可以由加密/解密管理器556采用软件方式来支持。主要的批量加密/解密加载模块最好一直被加载,而其它算法所需的加载模块则最好在需要时调页进来。这样,如果主要的批量加密/解密算法是DES的话,那么只有DES加载模块才需要永久驻留在SPE503/HPE655的RAM534a中。

下面给出了较佳实施例中由加密/解密管理器556所支持的RPC调用示例:

  调用名说明  PK Encrypt  (PK加密)使用PK(公开密钥)算法加密一个数据块  PK Decrypt  (PK解密)使用PK算法解密一个数据块  DES Encrypt  (DES加密)使用DES算法加密一个数据块  DES Encrypt  (DES解密)使用DES算法解密一个数据块  RC-4 Encrypt  (RC-4加密)使用RC-4(或其它批加密)算法加密一个数据块  RC-4 Decrypt  (RC-4解密)使用RC-4(或其它批加密)算法解密一个数据块  Initiatize DES  Instance(初始化  DES实例)初始化需要使用的DES实例  Initialize RC-4  Instance(初始化  RC-4实例)初始化需要使用的RC-4实例  Initialize MDS  Instance(初始化  MD5实例)初始化需要使用的MD5实例  Process MDS  Block(处理MD5数  据块)处理MD5数据块

传递的调用参数可以包括:所使用的密钥、模式(是加密还是解密)、任何需要的初始化向量、所需的加密操作(如反馈类型)、需使用的加密实例标识、以及需要加密或解密的数据块的起始地址、目的地地址和长度。

SPU密钥和标记管理器558

SPU密钥和标记管理器558支持的调用包括:密钥存贮、密钥和管理文件标记查找、密钥卷积、以及随机密钥、标记和交易号码的生成。

下表示意了SPE/HPE密钥和标记管理器服务558调用示例的列表:

调用名说明密钥请求Get Key(取密钥)检索请求的密钥Set Key(设置密钥)设置(保存)指定的密钥Generate Key(生成密钥)为指定算法生成密钥(对)GenerateConvoluted Key(生成卷积密钥)使用指定的卷积算法和算法参数块来生成密钥GetConvolutionAlgorirhm(取卷积算法)为指定卷积算法返回当前设置的(默认的)卷积参数Set ConvolutionAlgorithm(设置卷积算法)为特定卷积算法设置卷积参数(调用例程必须提供标记以便读取返回的内容)标记请求Get Tag(取标记)为特定的VDE项ID取验证(或其它)标记Set Tag(设置标记)为特定的VDE项ID设置验证(或其它)标记

Calculate HashBlock Number(计算散列块号)为特定的VDE项计算“散列块号”Set HashParameter(设置散列参数)设置散列参数和散列算法。强制对散列表进行重新同步Get HashParameter(取散列参数)检索当前散列参数/算法SynchronizeManagementFiles(同步管理文件)对管理文件进行同步,根据为VDE管理员保留的表格中的信息重建散列块表

在较佳实施例中,密钥和标记可以在SPE503(HPE655)中安全地生成。密钥生成算法通常专用于可支持的各类加密方法。在使用生成的密钥之前可以对之进行检查,以确定该密钥在加密上是否存在某种弱点。向密钥和标记管理器558发出的生成密钥、标记和/或交易号请求最好以长度作为其输入参数。密钥和标记管理器558将生成一个具有所请求长度的随机数(或其它适当的密钥数值),并将之作为输出。

密钥和标记管理器558可支持从SPE500中的密钥存贮区中检索特定密钥的调用,也可支持检索保存在SUP外部的密钥的调用。这些调用的基本格式是以密钥类型和密钥号请求密钥。通过VDE管理员的干预许多密钥将定期更新,这些密钥存放的位置是SPU500的NVRAM534b或EEPROM,这是因为这些存贮器具有安全性,可以更新,并且具有非易失性。

SPE503/HPE655可以支持公开密钥类型的密钥和批量加密类型的密钥。公开密钥(PK)加密类型的密钥保存在SPU500中,并由密钥和标记管理器558来管理,这种类型的密钥可以包括(举例来说)一个设备公开密钥、一个设备私有密钥、一个PK证明(certifitate)、以及该证明的一个公开密钥。通常,如果愿意的话可以将公开密钥和证明存放在外部的非安全存贮器中,但设备私有密钥和证明的公开密钥只能内部存放在SPU500的EEPROM或NVRAM534b中。SPU500使用的某些批量加密密钥可以包括(举例来说)通用批量加密密钥、管理对象私有头密钥、固定对象私有头密钥、移动对象私有头密钥、下载/初始化密钥、备份密钥、轨迹密钥(trail Key)、以及管理文件密钥。

如上所述,较佳实施例密钥和标记管理器558支持调整或卷积密钥以便生成新密钥的请求,举例来说,新密钥是根据地点和/或时间以确定方式产生的。密钥卷积是某种算法过程,该算法对某个密钥以及某些输入参数进行特定操作,最终生成一个新密钥。它可用来(举例来说)增加可用密钥的数量,而又不致占用额外的空间来保存密钥。通过将实时RTC528的值作为参数,还可用这种算法来“老化”密钥。通过将某个地点标识的某些部分作为参数,还可用这种算法实现密钥对该地点专用化。

密钥和标记管理器558还提供有关标记生成和管理的服务。在较佳实施例中,交易和访问标记最好由SPE503(HPE655)保存在安全的存贮器中(如保存在SPU500的NVRAM534b中)。这些标记可由密钥和标记管理器558生成。它们用来(举例来说)检查对数据元素的访问权利、检查数据元素的有效性、并对数据元素进行关联。例如,它们可用来确保安全数据结构中的部件未遭受SPU500外界的破坏。密钥和标记管理器558还可支持轨迹交易标记(trail transaction tag)和通信交易标记。

SPU概要服务管理器560

SPE503在SPU500的可编程非易失性存贮器中和/或安全数据库610中维护了一组检查跟踪数据。检查跟踪数据可以包含金融方面使用的预算行为审核概要,以及SPU使用安全性概要。当向SPU发出一个请求后,SPU将对该请求的发生作出记录,然后观察该请求是成功了还是失败了。所有成功请求将经过统计并按照类型存放在SPU500中。失败信息(包括下面列出的元素)将与失败详情一起被保存起来。

访问失败后保存在SPE中控制信息对象ID

    用户ID    失败类型    失败时间

可以对这些信息进行分析,以便检测破坏性的企图,或鉴别超过预期(或预算)限额的使用模式。SPU500中的检查跟踪历史可以一直保存着,直到将它报告给适当方面为止。这样就可以使系统记录对合法失败的分析以及对SPU进行秘密分析的企图。

概要服务管理器560可以存贮和维护这些内部概要审核信息。审核信息可用来检测安全性受到的侵犯或者SPE503操作的其它方面。SPE503(HPE655)或VDE管理员可维护、分析和使用事件概要,以便发现对电子设备600的不合理使用,并可以对这种使用进行限制。在较佳实施例中,这些参数可以存放在安全存贮器(例如存放在SPU500的NVRAM534b)中。

在较佳实施例中,概要服务用于两种基本结构中。一种结构(“事件概要数据结构”)是专用于VDE管理员的,它对事件进行跟踪。事件概要数据结构可在VDE管理员的定期干预之中得到维护和审核。另一个数据结构由VDE管理员和/或分发者用来进行总体预算。在初始化电子设备600时,VDE管理员可以注册事件概要和总体预算概要。(举例来说,)在安全管理文件610遭受破坏的时候,VDE管理员可以得到总体预算概要的报告,并使用该预算概要来确定预算使用的分布情况。得到适当许可的参与者可向概要服务管理器560注册他们的过程(如特定的预算),然后概要服务管理器560可以(例如在NVRAM534b中)保留出一部分安全存贮器空间,并保存所需的使用和/或访问参数。对每个概要的访问和修改都可以由其自身的访问标记来控制。

下表示意了PPE概要服务管理器560服务调用的列表:

调用名说明Greate Summaryinfo(创建摘要信息)如果用户拥有请求某概要服务的“证明”,则创建该服务。

    Get value    (取值)返回概要服务的当前值。调用者为使用该请求必须提供一个适当的标记(和/或“证明”)。    Set value    (设置值)设置概要服务的值。    Increment    (增加)增加指定的概要服务(如标量计量的概要数据区域)。调用者为使用该请求必须提供一个适当的标记(和/或“证明”)。    Destroy    (取消)取消指定的概要服务,条件是用户必须带有一个适当的标记和/或“证明”以允许他使用该请求。

在较佳实施例中,事件摘要数据结构使用固定的事件号码在查找表中进行检索。查找表含有一个数值,该数值可以被配置为一个计数器或计数器外加极限。VDE管理员可以使用计数器模式来确定设备使用情况。极限模式则可用来限制破坏,或限制对电子设备600的不合理使用企图。如果发生超出极限的事件,SPE503(HPE655)将拒绝服务用户的请求,直到VDE管理员复位SPE503(HPE655)为止。对系统范围内的事件概要进程所发出的调用最好编入所有负责处理该事件的加载模块中。

下表示意了较佳实施例事件概要数据结构可以独立计量的事件示例:

  事件类型  Successful  Events  (成功事件)成功完成了初始化用户合法性验证通过建立了通信通道负载被设置为指定值完成了解密更新了密钥信息创建了新的预算或更新了现有预算

生成了新的计帐信息或更新了现有的计帐信息创建了新的计量值或更新了现有计量值创建了新的PERC或更新了现有PERC注册了新对象成功地处理管理对象成功了进行了审核所有其它事件Failed Events(失败事件)初始化失败合法性验证失败通信尝试失败加载通道请求失败有效性检查尝试失败辅助项链接与关联标记之间的匹配失败授权尝试失败解密尝试失败可用预算不能满足完成所请求的过程未发生审核管理对象处理出错其它失败事件

另外,由较佳实施例概要服务管理器560维护的“货币总体预算”概要数据结构允许对VDE电子设备600进行注册。其第一表项代表货币总体预算花费值,该表项由第一个初始化SPE503(HPE655)的管理员进行注册。某些货币花费加载模块以及对花费的货币预算进行审核处理的审核加载模块可调用概要服务管理器560以更新货币花费值。某些经过特别授权的加载模块可以具有对货币总体概要的访问权。同时,可以为个体提供者注册附加概要。

SPE验证管理器/服务通信管理器564

验证管理器/服务通信管理器564支持用户口令验证以及“证明”的产生和有效性检查调用。它还可支持SPE503与外部节点或设备(如VDE管理员或分发者)之间的安全通信。在较佳实施例中,它可支持下面的有关有效性验证的服务请求示例:

  调用名说明  用户服务  Create User  (创建用户)创建一个新用户,并保存名字服务记录(NSR)以供名字服务管理器752使用。  Authenticate User  (验证用户)验证用户使用系统的合法性。该调用允许调用者验证指定的用户ID。该调用也可以验证用户的组员资格。该验证过程返回用户的“证明”。  Delete User  (删除用户)删除用户的NSR和相关记录  证明服务  Generate Ticket  (生成证明)产生一个“证明”以便用于一种或多种服务  Authenticate Ticket  (验证证明)验证某个“证明”

上表中没有包含对安全通信服务的调用。管理器564提供的安全通信服务可以(例如如果需要的话与低层服务管理器582一起)提供基于公开密钥(或其它)询问-应答协议的安全通信。本文前面已经详细论述了该协议。在电子设备600可由多个用户使用的情况下,“证明”对电子设备600标识了这些用户。利用证明授予协议(如Kerberos),VDE软件应用程序可以请求并得到证明。为了授权特定服务,VDE部件可以要求提供证明。

SPE安全数据库管理器566

安全数据库管理器566对SPE503外部的存储器上的安全数据库610中的安全数据库记录进行检索、维护、与存贮。许多安全数据库文件610是以加密形式保存的。因而所有被安全数据库管理器566检索的安全信息在使用之前都必须首先解密。对于由SPE503(HPE655)生成的、必须存放于安全执行环境之外的安全信息(如使用记录),在经由安全数据库管理器566将之保存到安全数据库文件610中以前,也必须由加密/解密管理器556进行加密。

对于每个加载进SPE503的VDE项,较佳实施例中的安全数据库管理器566可以对一个主表进行搜索以便找到该VDE项ID,然后对照项中交易标记检查主表中的相应交易标记,以确保提供的项是当前项。安全数据库管理器566可以“散列结构”来维护VDE项ID和交易标记的表,“散列结构”可以分页调入SPE503,以便快速定位相应的VDE项ID。较小的系统可使用查找表这种方法。在两种情况下,上述表都必须组织成可分页的结构,以便快速地定位VDE项ID。

“基于散列”的方法可用来将表排序成“散列表元”(hashbucket),通过访问“散列表元”可以更加快速和有效地定位表中的项。“基于散列”的方法采用整个项ID的一个子集将VDE项ID进行“散列”,并组织成“散列”表的页。对于每个与该“散列”页相关的项,在该页中都可含有其余VDE项ID和当前交易标记。“散列”表页号码可以从VDE项ID的组成部分中推算出来,这些组成部分的例子有:分发ID、条目ID、地点ID、用户ID、交易ID、制作者ID、类型和/或版本等等。散列算法(包括算法本身和被散列的参数)可以由VDE管理员按照地点的不同而进行不同的配置,以便提供最佳的散列页使用率。下面给出了散列页面结构的一个例子:

    域    散列页头信息    分发者ID    项ID    地点ID    用户ID    交易标记    散列页表项    制作者ID    项ID    类型

    版本    交易标记

在本例中,对于每个散列页来说,如果其中的项具有相同分发者ID、项ID和用户ID域(对于给定的电子设备600来说,地点ID是固定的),那么该页将包含所有的VDE项ID以及交易标记。因而,可将上述四条信息作为散列算法的参数来使用。

“散列”页自身可以被频繁更新,同时它必须含有交易标记。在每次“散列”页被加载的时候,该交易标记都要经过检查。在每次将“散列”页面写出的时候,也可以对交易标记进行更新。

作为“基于散列”方法的一种替代,如果可更新的项一直比较少的话(比如在消费者专用电子设备600中),那么可为每个可更新项分配一个唯一的顺序地点记录号,并将之作为其VDE项ID的一部分,这样就可以采用查找表的方法。对于每个项,只需要较少字节长度的交易标记。而且可以将所有需要频繁更新的项所含的交易标记组织成一个表存放在诸如SPU NVRAM 534b之类的安全存贮器中。

随机数发生器管理器565

随机数发生器管理器565可以产生随机数。如果提供了基于硬件的SPU随机数发生器542的话,随机数发生器管理器565可加以使用以协助产生随机数。

其它SPE RPC服务592

SPU500可以包含其它经授权的RPC服务,其实现方式是使这些服务将它们自身“注册”到RPC服务表中,并将它们的表项添加到RPC调度表中。例如,一个或多个部件组690可以用来提供附加的服务,这些服务可作为SPE503及其相关操作系统的一个整体组成部分。如果某些服务没有注册在这些表中,那么对这些服务的请求将从SPE503(HPE655)中传送出去以便得到外部的服务。

SPE503性能考虑

SPE503的性能为下列因素的一个函数:

所采用的部件组的复杂性

同时的部件组操作的数目

可用内部的SPU内存容量

块加密/解密算法的速度

部件组进程的复杂性以及同时运行的部件组进程的数目可能是决定性能主要因素。这两种因素结合起来决定了在任意时刻都必须驻留在SPU500中的代码量和数据量(最小设备容量),因而也就决定了进程必须划分成的设备大小“块”的数目。与较简单的模型相比,分段技术内在地增加运行时长度。当然,具有较少特性的SPU500在实现方案中可以选用容量相对更少的RAM534。使用上面提到的“聚合”加载模块可能会失去配置VDE体系结构的灵活性,同时还可能限制参与者独立更新分离元素的能力,但却可以减少最小的设备容量。可以构成一个非常简单的SPU500计量方案来以最小的设备资源操作。

SPU500内存RAM534的容量对SPE503性能造成的影响比SPU其它方面的因素更为明显。VDE进程的灵活特性允许使用大量的加载模块、方法和用户数据元素。SPU500的ROM532只能容纳较少的上述项,如果数量再多一些,在其中存放就不切实际了。当某个VDE进程被调用的时候,该进程绝大部分所需代码和数据结构需要被动态地加载进SPU500中。于是SPU500内的操作系统可将必要的VDE项调入以执行上述进程。SPU500的RAM534容量将直接决定单个VDE加载模块加上其所需数据总共可以有多大长度,同时还决定了运行一个VDE进程所需的页交换次数。SPU I/O速度、加密/解密速度以及内存532、534的容量将直接影响设备中所需的页交换次数。使用非安全的外部存贮器,可以减少等待将需要加载进SPU500中的页交换进来的时间,但仍然会带来对每个页进行加密/解密的代价。

为了保证安全性,SPE503必须将需要交换到支持SPU500的外部存贮设备上的每个数据块进行加密并加密封装。同样地,在将这些数据块交换进SPU500时,SPE503必须对之进行解密,验证其加密封装,并对之进行验证。于是,对于每个交换块所要进行的数据移动和加密/解密开销将大大地影响SPE的性能。

如果SPU微处理器520不负责移动数据经过加密/解密机522的话,那么微处理器520的性能将不会对它所支持的SPU503的性能产生很大影响。

VDE安全数据库610

VDE100将可独立传送的VDE元素存贮在分配给各VDE电子设备600的一个安全(如加密)数据库610中。较佳实施例中的数据库610可以存放/管理三种基本类型的VDE项:

VDE对象,

VDE进程元素,以及

VDE数据结构。

下表给出了由安全数据库610保存和管理的某些VDE项示例:

  类别简要说明  对象    信息内容对象提供信息内容容器    管理对象为用来维持VDE100运行的信息提供一个容器    移动对象为信息内容和控制信息提供容器    智能对象为(用户指定的)进程和数据提供容器  进程元素    方法核心提供将事件与控制方法及许可相关联的机制,    加载模块(“LM”)安全的(防破坏)可执行码    方法数据元素    (“MDE”)用来控制/定制方法的、可独立传送的数据结构  数据结构    许可记录    (“PERC”)对对象的使用许可;创建部件组的“蓝图”    用户数据元素    (“UDE”)基本数据结构,用来与加载模块一起保存所使用的信息    管理数据结构由VDE节点使用以维护管理信息

每个电子设备600可以含有安全数据库610的一个实例,该实例用来安全地维护VDE项。图16示意了安全数据库610的一个例子。本例中的安全数据库610含有下列由VDE保护的项:

一个或多个PERC808;

方法1000(包括静态的和动态的方法“核心”1000,还包括MDE1202);

静态的UDE1200a和动态的UDE1200b;以及

加载模块1100。

安全数据库610还可以包含下面的附加数据结构,这些数据结构的使用和维护是针对管理目的的。

“对象注册”450,它引用了含有一个或多个VDE对象的对象存放仓库728;

名字服务记录452;以及

配置记录454(包括地点配置记录456和用户配置记录458)

较佳实施例中的安全数据库610不包括VDE对象300,而是对存放在文件系统687和/或独立对象仓库728中的VDE对象进行引用。不过,不妨先讨论一下VDE对象300,作为了解VDE保护信息的“起始点”。

VDE对象300

为了封装信息内容,VDE100提供了一种与介质无关的容器模型。图17示意了较佳实施例提供的、对象300的“逻辑”结构或格式800。

如图17所示,较佳实施例所采用的通用化“逻辑对象”结构800支持借助任何现用介质进行数字信息内容交付。较佳实施例中的“逻辑对象”可集体指代:信息内容;用于操作、记录与/或控制所述信息内容的使用的计算机软件和/或方法;以及适用于所述信息内容和/或所述计算机软件和/或方法的许可、限制、管理控制信息和/或要求。逻辑对象可以也可以不存放在任何给定的电子设备600中,它可以出现也可以不出现在任何给定的电子设备600中或由该电子设备600所访问。逻辑对象的信息内容部分可以组织成包含在,也可以不包含在,或者部分包含在一个或多个对象中的信息。

简要地说,如图17所示,较佳实施例中的“逻辑对象”含有公开头802、私有头804和“私有体”806。“私有体”806含有一个或多个方法1000、许可记录(PERC)808(许可记录808可以包含一个或多个密钥块810)、以及一个或多个数据块或数据区812。可以在“容器”302中将这些元素进行“包装”。在较佳实施例中,上述通用化的逻辑对象结构800适用于不同类型的VDE对象300,这些VDE对象300根据其信息内容的类型和位置的不同被分成了不同类别。

“容器”的概念是一种比较方便的比喻,它用来命名一个元素集合,而这些元素是使用信息内容或执行管理操作所必要的。容器302通常含有识别信息、控制结构和信息内容(如所有权或管理性的数据)。术语“容器”通常用来说明一个信息集合(如Bento/Open Doc与OLE),该信息集合保存在计算机系统的二级存贮系统中,或者可以由计算机系统通过通信网络从“服务器”的二级存贮系统中得到对其的访问。较佳实施例中的“容器”302并不局限如此。在VDE100中,不要求上述信息一定要一起存放、同时被接收、同时被更新、只为一个对象所使用、或只由一个实体所拥有。与上不同,在VDE100中,容器的概念被扩展化和通用化,它包含实时信息内容和/或联机交互式信息内容,这些信息内容通过有线电缆、广播、或者其它电子通信途径被传送到某个电子设备。

于是,在任何时刻,用户方(就这方面来说还包括其它任何地方)可能不存在“完整”的VDE容器302或逻辑对象结构800。“逻辑”对象可以存在一段特定的时间(或多个时间段),而不是转瞬即逝。上述概念含有“虚拟容器”的思想,在“虚拟容器”中,重要容器元素可以分布在大量不同的位置上,并且/或者它们可以存在于一序列时间段中(这些时间段可以重叠也可以不重叠)。当然,也可以将所有必要的控制结构和信息内容一起存放在VDE100容器中。这就代表了一个连续:从所有存放在单个容器中的所有信息内容和控制结构,到本地无法访问的信息内容或容器专有的控制结构。

尽管至少某些代表对象的数据通常要经过加密,而这样会使其结构变得对外不可见,不过在PPE650中,对象被逻辑地看成是“容器”302,这是因为其结构和部件是被自动地、透明地解密的。

容器模型可以与较佳实施例所提供的事件驱动进程以及ROS602很好地合并在一块。在这种模型下,信息内容被方便地划分成小的、易于管理的部分,但其存放方式保持了未加密信息内容的内在的结构化优点。面向对象的容器模型(如Bento/OpenDoc或OLE)还提供了许多必要的“挂接点”,这些“挂接点”可用来插入必要的操作系统集成部件,或用来定义特定于信息内容的各种方法。

详细地说,较佳实施例提供的逻辑对象结构800含有一个公开的(或未加密的)的头802,头802标识了对象,并且还可以标识该对象中的一个或多个权利所有者,以及/或者该对象的一个或多个分发者。私有的(或加密的)头804可以含有公开头中的部分或全部信息,另外,在较佳实施例中,头804还含有一些附加数据。当用户向服务票据交换所、VDE管理员、或SPU500等进行注册,以期作为某对象300的用户时,上述附加数据可用来对该对象进行验证和识别。作为另外一种可选方案,可以将标识了对象的一个或多个权利拥有者和/或分发者的信息以加密形式放置在加密头804中,同时还可放入任何所述附加验证和识别数据。

每个逻辑对象结构800都可以含有一个“私有体”806,“私有体”806包含或引用了一组方法1000(即程序或过程),这些方法1000控制了对象300的使用和分发。这种可选择地将不同方法1000纳入各个对象的能力对实现一个高度可配置的VDE100来说是重要的。方法1000执行基本的功能,即定义哪些用户(在适当情况下还包括分发者、客户管理员等)可以或不可以操作对象300。因而,一个对象300可以具有相对较为简单的方法,例如可允许以固定的费用(例如报亭的报纸价格即是固定的。在该价格的允许下,用户可在报纸出版之后一周的时间内读阅报纸)在固定时间段内无限制地观看信息内容。同时,可以用更加复杂的方法(如计帐和使用限制)来控制其它的对象。

图17所示的逻辑对象结构800还可以包含一个或多个PERC808。PERC808对对象300的使用进行控制,它规定了方法或方法的组合,而为了访问或使用对象或其信息内容,必须使用这些方法或方法的组合。对象的许可记录808可以含有密钥块810,密钥块810可存放为访问存于对象300中的加密信息内容所需的解密密钥。

对象的信息内容部分通常划分成一些称为数据块812的部分。数据块812可以含有任意类型的电子信息,例如“信息内容”,其中包括计算机程序、图象、声音、VDE管理信息等等。数据块812的大小和数目可以由信息内容的制作者来选择。数据块812不必都具有相同的大小(影响大小的因素包括信息内容使用情况、数据库格式、操作系统、安全性和/或其它方面)。对象中的每个数据块812都使用至少一个密钥块810可以增强安全性,虽然并不要求这样做。密钥块810也可以采用一致的或伪随机的方式而涵盖大量数据块812的某些部分。这种涵盖方式将一个或多个密钥应用到对象300、数据库或其它信息实体中的分段的或看似随机的信息内容片段中,从而提供了附加安全性。

许多对象300是由物理媒体和/或通过“通道外”途径分发的(如一个消费者收到对象300后将之再分发给另一个消费者),其中用来传送密钥块810所保护信息内容的同一对象300中可以不含有密钥决810。这是因为VDE对象可以包含那种能够在VDE节点限制之外利用电子方式进行复制的数据。如果该信息内容被加密,上述复制的数据也将被加密,而复制者将无法访问该信息内容,除非他带有正确的解密密钥。对于那些特别需要保障安全性的对象,将采用安全通信技术(下面将要对此进行讨论)以电子方式频繁分发许可记录808和密钥块810,上述的安全通信技术由发送者和接收者的VDE节点来控制。因而,在较佳实施例中,许可记录808和密钥块810只频繁地保存于注册的用户的电子设备600中(同时,作为注册/初始化过程的一部分,许可记录808和密钥块810本身也可以被传递给该用户)。在该例中,可以用只存放于SPU500安全存贮器中的私有DES密钥对适用于各个所有物的许可记录808和密钥块810进行加密,这样可以使该密钥块对任何其它用户的VDE节点来说都是不可用的。作为另外一种选择方案,可以用最终用户的公开密钥对密钥块810进行加密,使这些密钥块只对那些保存了相应公开密钥的SPU500可用(或者也可以采用其它足够安全的加密/解密机制)。

在较佳实施例中,用来加密各许可记录808或其它管理信息记录的一个或多个密钥将在许可记录808每次更新时(或在一个或多个特定事件发生之后)被修改。在这种情况下,将使用一个或多个新密钥对更新了的记录重新进行加密。作为另外一种方案,用来加密和解密管理信息的一个或多个密钥可以是“时间老化”密钥,经过一段时间以后这些密钥可以自动失效。同时使用时间老化的密钥和其它的事件触发密钥可能是一种较好的选择。例如,密钥可以在特定次数的访问之后改变,并且/或者可以在经过特定时间段或越过某个绝对时间点之后发生改变。可以针对任意给定的密钥或密钥组合应用上述技术的组合。较佳实施例创建时间老化密钥的过程是一个单向卷积算法,其输入参数包括用户和地点信息以及由SPU RTC 528所提供实时时间值中的指定部分。也可以使用其它技术来产生时间老化密钥,(举例来说)某些这样的技术只使用用户或地点信息、绝对时间点、和/或与行为子集相关的时间段,上述行为又与对VDE所保密的信息内容的使用或加密或者对VDE系统的使用有关。

VDE100支持多种不同类型的、具有图17所示逻辑对象结构800的“对象”300。根据保护信息是否与被保护信息装配在一起,可以对对象进行分类。例如,对于一个容器来说,如果它被它的控制装配到一个指定的VDE节点,那么该容器称为“静止对象”(参看图18)。还有一种容器称为“移动对象”,其特征为:其控制信息未将其装配到某个特定VDE节点,而该容器带有足够的控制和许可信息,使它可以在某些地点中的任一个地点都可以被部分地或整体地使用(参看图19)。

还可以根据对象所含信息的特性对对象进行分类。含有信息内容的容器称为“信息内容对象”(参看图20)。含有交易信息、检查跟踪数据、VDE结构、和/或其它VDE控制/管理信息的容器称为“管理对象”(参看图21)。某些容器含有运行于VDE控制之下的可执行码(与VDE控制信息相反),这种容器称为“智能对象”。智能对象支持用户代理,并为用户代理在远程地点执行提供控制。根据地点、类型、以及与对象所含信息内容内容相关的访问机制,还有其它的对象分类方式,这些分类方式可以包含上述分类方式的组合。后面将讨论由VDE100支持的一些对象。图17中的部分或所有数据块812可以包含“嵌入的”信息内容,管理对象、静止对象、移动对象和/或其它对象。

1.静止对象

图18示意了较佳实施例提供的“静止对象”结构850示例。“静止对象”结构850只适用于特定的VDE电子设备/装置中,这些VDE电子设备/装置已接收到了明确的许可以允许它们使用静止对象的一个或多个部分。因此,静止对象结构850不带有许可记录(PERC)808,该许可记录则是被独立地提供和/或交付给设备/装置600(例如在不同时间、通过不同途径、以及/或者由团体进行提供和/或交付)。许多不同的静止对象可以使用相同的PERC808。

如图18所示,公开头802最好是“明文”(即未加密)。私有头804最好使用多个“私有头密钥”中的至少一个进行加密。私有头804最好还包含来自公开头802中的识别元素拷贝,这样一来,如果明文公开头中的识别信息被破坏了的话,系统可以精确地查明破坏者试图改变的是什么。方法1000可以包含在一个称为“私有体”806的部分中,其存放形式可以是本地对象方法、加载模块、以及/或者用户数据元素。私有体(方法)部分806最好使用保存在分开的许可记录808中的一个或多个私有体密钥进行加密。数据块812则包含信息内容(信息或管理数据),这些信息内容可以使用同样由许可记录808提供的一个或多个信息内容密钥进行加密。

2.移动对象

图19示意了较佳实施例提供的“移动对象”结构860示例。移动对象带有足够的信息,根据这些信息,当它们到达某个VDE节点以后,它们带有的至少部分信息内容可以至少被部分使用。

移动对象结构860在私有头信息804中带有一个许可记录(PERC)808,除此之外,移动对象结构860与静止对象结构850可以是相同的。移动对象结构860中的PERC808允许该移动对象可以在任何VDE电子设备/参与者600中使用(按照方法1000和所含的PERC808)。

“移动”对象是VDE对象300中特别支持“通道外”分发的一类对象。因此,它们包含密钥块810,并且可以从一个电子设备600传送到另一个。移动对象带来的使用预算相当有限,因而用户可以或者全部或者部分地使用其信息内容(如计算机程序、游戏或数据库),并权衡是获取使用许可或进一步使用许可呢,还是购买对象信息内容。作为另一种方案,移动对象PERC808可以包含或引用预算记录,这些预算可以是:

(a)反映了先前购买的权利,或反映了将来获取许可或进行购买的所需信用,并且允许对至少一类或多类对象信息内容进行使用的预算,与/或

(b)使用(并可以透支)特定的可用信用以允许使用对象信息内容的预算,上述信用保存于本地VDE节点中,并受本地VDE节点控制。与/或

(c)在要求向本地VDE节点提交报告(同时也可以选择向票据交换所提交报告)之前,反映一个或多个最大使用限额的预算,在提交上述报告之后,所反映的限额可以被复位,以便允许进一步使用和/或修改原始一个或多个预算之中的一个或多个。

对于标准的VDE对象300,在用户可用的预算已经用完之后,如果用户希望继续使用移动对象,用户可能需要与票据交换所联系,以便获得额外的预算。另外,如果移动对象(或其拷贝)移动到了另一个电子设备中,而新设备没有足够的可用信用预算以满足许可记录808所提出的要求时,可能还需要用户与票据交换所联系以便获得额外预算。

例如,移动对象PERC808可以含有一个引用,该引用指向了一个所需的预算VDE1200或某些预算选项,预算VDE1200或上述预算选项可能存在,并且/或者被预期为可用的。例如,预算VDE可以引用消费者的VISA、MC、AMEX或者其它“一般”预算,这些预算可以是与对象无关的,并且可以适用于某个或某些类移动对象信息内容(例如,一类移动对象中的任何电影对象,该电影对象可能是Blockbuster录像带出租品)的使用。该预算VDE本身可以限定它可以使用的一类或多类对象,同时,一个对象可以特别引用特定的一个或多个一般预算。在这种情况下,VDE提供者通常以允许对信息进行正确的引用,并支持计帐处理和帐单结付的方式,使信息可以利用。

移动对象可以用在接收VDE节点电子设备600上,其前提条件是:或者该设备带有正确的预算或预算类型(如可从票据交换所获得的充足信用,诸如VISA预算),这些预算或预算类型既可以是一般类型的也可以是特定于一个或多个用户或用户类别的;或者该移动对象本身带有充足的预算容许额或适当的授权(比如某个协约,移动对象可以将该协约应用于特定的一个或多个设备或设备类型,或应用于特定的一个或多个用户和用户类型,此处的类型对应于设备或用户的一个指定子集,而这些设备或用户则由存放在安全数据库610中的预定义类型识别码所指代)。收到该移动对象以后,如果用户(和/或设备)不带有适当的预算和/或授权,那么电子设备600可(利用保存在移动对象中的信息)通知用户:他们可以与哪个或哪些团体进行联系。这个或这些团体可能含有该移动对象可用的可选票据交换所提供者清单,用户可以从该清单中选择他希望的联系方。

如上所述,移动对象使对象300可以在“通道外”分发。这就是说,未授权的或未明确授权的个体可以将对象分发给另一个体。“通道外”所含的分发渠道(举例来说)允许用户直接将一个对象重新分发给另一个体。例如,一个对象提供者可以允许用户将某个对象的拷贝重新分发给他们的朋友或同事(例如可以借助存储介质进行物理地交付,或借助计算机网络传递)。于是,如果某个朋友或同事满足了使用所述对象的任何特定条件后,他便可以使用该对象。

例如,如果某个软件程序作为移动对象被分发,那么假如该程序的用户希望将该程序或该程序的一个可用拷贝提供给他的朋友,该用户通常可以不受任何约束地这样做。移动对象具有巨大潜力的商业价值,其原因在于,这样可以主要由用户和公告版系统来分发有用的信息内容,而除了需要向“原始”信息内容提供者和/或票据交换所注册以外,通过用户和公告版系统进行分发所需的分发开销很小或者根本没有。

“通道外”分发方式可允许提供者收取再分发对象的使用费用,并且/或者使提供者对再分发对象维持至少一定程度的控制。这里面的某些限制可以包括(举例来说)在用户的VDE节点注册被授权的第三方财务关系(如信用卡),以及使用再分发对象所需的充足信用。

于是,如果用户拥有一个VDE节点,用户可以被允许使用移动对象,其条件是:用户在其VDE节点(根据需要也可以是分配给他的VDE节点)中带有适当的可用预算,以及/或者该用户或其VDE节点属于一个经过特别授权的用户组或设备组,以及/或者该移动对象带有自身预算。

由于移动对象的信息内容经过了加密,所以只有在经过授权的情况下才可以使用该对象,除非使用该对象所需的移动对象私有头密钥被破解。破解移动对象的私有头密钥(举例来说)与破解许可和/或预算信息相比,前者可能是相对较为容易一些,这是因为许多对象可共享同一个密钥,这就在密文方面给了破译者更多的信息以供分析,同时更加刺激破译者进行密码分析。

在“移动对象”的情况下,信息内容拥有者可以将封装有该信息内容的对象300中所含的某些或全部密钥块810与信息内容信息一同分发。将密钥放入被分发的对象300中将增大安全保护机制受威胁的程度。(通过确定私有头的加密密钥)破解或密码分析用来保护保密头的加密算法对安全机制造成威胁。这种对安全性的破坏通常需要相当高的技术和相当长的时间,但是如果一旦造成破坏,加密算法和密钥将会被公开出去,而如果大量的人所拥有的对象使用了相同密钥和算法进行加密,那么这些人将因而得以对被保护的信息进行非法使用。所以,将密钥放入被分发的对象300中只限于某些情况,即:或者信息内容具有“时间敏感性”(即:过了特定的时间以后,这些信息内容的价值将会降低);或者这些信息内容的价值有限;或者将密钥放入对象中带来的商业价值(例如给最终用户带来了方便性、由于省去用远程通信或其它途径传送密钥和/或许可信息而使成本更为降低、以及/或者能够支持利用“通道外”方式传递对象)超过了由于破译高手发现破绽所引起的损失。如前所述,可以采用卷积技术避免将“真正”的密钥存放在移动对象中从而提高密钥的安全性,虽然在大多数情况下,使用VDE管理员提供给大多数或所有VDE节点共用的一个密码作为输入,而不是用站点标识和/或时间作为输入,以便对象与这些值无关。

如图19所示,前面已经讲过,移动对象带有一个许可记录808,该许可记录808最好提供至少某些预算(在通常情况下包括一个预算、其它预算或两者都包括)。如上所述,许可记录808可以含有一个密钥块810,该密钥块810保存了重要的密钥信息。PERC808还可以含有或引用某些预算,这些预算包含了有潜在价值的数量/数值。这种预算可以存放在移动对象本身之中,或者也可以将这些预算独立交付,并且可以使用高度安全的通信密钥和管理对象以及管理数据库技术对之加以保护。

移动对象所包含方法1000通常含有一个安装过程,该安装过程使用对象中的许可记录808来“自我注册”对象(例如该方法是一个注册方法)。对于某些对象来说,上述特性是特别有用的。这样的对象包括:价值受时间限制的对象;最终用户使用免费或缴费极低的对象(或所有物)(例如向广告商和/或信息公布员的使用费用的收取标准要取决于实际访问过被公布信息的那些最终用户的数目);所需的预算在各处都可获得并且通过通道外分发可以获得特别受益的对象(这种预算的例子是由信用卡得到的预算,这些预算适用的范围包括诸如电影、软件程序、游戏等所有物的对象)。这些移动对象可以含有也可以不含有预算UDE。

移动对象的一个用途是公布软件。此时,所含的许可记录可允许潜在消费者在演示模式下使用该软件,同时在支付许可费用之前或除起始试用费之外进行更多支付之前的一段有限时间之内可以使用所有程序特性。例如,结合预安装的少量时间预算,使用基于时间的计帐方法和预算记录,可以允许在短时期内对程序进行完整地使用。可以使用各种各样的控制方法以避免对对象信息内容进行非法使用。例如,通过将移动对象的最短注册间隔适当地设置成一个较长的时间(如一个月、半年或一年),可以禁止用户重新使用同一移动对象中预算记录。

控制对移动对象进行使用的另一种方法是在移动对象的许可记录中放置逐渐衰老的密钥。使用这种方法通常是为了确保在没有重新注册的情况下对移动对象的使用不会超过某个日期,这种方法对于那些通过广播、网络或电信(包括单向的和双向的有线电缆)等电子方式分发的移动对象来说特别有用,这是因为可以将这种移动对象逐渐衰老密钥的交付日期和时间精确地设置成用户开始拥有该对象的时间。

移动对象还可用来简化将对象从一个电子设备100“移动”到另一个的过程。用户可以从一台桌上型计算机中将一个移动对象连同其内置的一个或多个许可记录808一起移动到其笔记本计算机中。移动对象可以在其内部注册其用户,因而只有该用户一个人才能使用该移动对象。移动对象可以维护单独的预算信息,一个用于基本的分发预算记录,一个用于注册用户的“活动”分发预算记录。采用这种方式,该对象可被拷贝并传送给另一个潜在用户,并且成为该用户的可携带对象。

移动对象可以放在一个容器中,而该容器还同时含有其它对象。例如,一个移动对象容器可以包含一个或多个信息内容对象以及一个或多个管理对象,该管理对象用于在最终用户的对象注册处注册对象,并且/或者提供机制以强迫执行许可和/或其它安全性功能。所含的管理对象可用于在最终用户的电子设备中安装必要的许可记录和/或预算信息。

信息内容对象

图20示意了VDE信息内容对象结构880的示例。通常,信息内容对象880包含或提供信息信息内容。这种“信息内容”可以是任意类型的电子信息。例如,信息内容可能包括:计算机软件、电影、书籍、音乐、信息数据库、多媒体信息、虚拟现实信息、机器指令、计算计数据文件、通信报文和/或信号、以及其它信息,其中的至少一部分是由一个或多个电子设备使用和/或处理。经过配置,VDE还可以用来鉴定、控制和/或审核电子商业交易和通信,这些商业交易和通信的例子有:银行间交易,电子购物通信、以及对通过电子签名的合同及其它法律文书进行的传送、审核以及安全的、商业化的存档。这些交易中所使用的信息也可以称为“信息内容”。如上所述,信息内容不一定要物理地存放在对象容器中,它可以在不同的时间被独立地提供(如通过有线电缆发送的实时输入)。

在图20所示的特定例子中,信息内容对象结构880是一类静止对象,这是因为它不带有PERC808。在该例中,信息内容对象结构880含有至少一个如图5A所示的嵌入式信息内容对象882,并将嵌入式信息内容对象882作为其信息内容812的至少一部分。信息内容对象880还可以包含管理对象770。因而,较佳实施例提供的对象可以含有一个或多个“嵌入式”对象。

管理对象

图21示意了较佳实施例提供的管理对象结构870示例。“管理对象”通常含有与VDE100操作有关的许可、管理控制信息、计算机软件和/或方法。管理对象还可以含有与VDE100操作有关的使用记录和/或其它信息。管理对象区别于信息内容对象的地方在于它不含受VDE保护的、用以发放给最终用户的“信息内容”。由于对象可以包含其它对象,一个单一对象可能包含一个或多个包含信息内容的对象,及一个或多个管理对象。管理对象可以为更新、使用报告、计帐和/或控制的目的,在电子设备之间传送信息。它们含有的某些信息有助于管理VDE100,并使之正常运行。通常在两个VDE节点之间传送管理对象。这些VDE节点的例子有:VDE票据交换所服务、分发者、客户管理员和最终用户的电子设备600。

本例中的管理对象结构870含有公开头802、私有头804(它带有一个PERC808)以及包含方法1000的“私有体”806。在图20所示的特定例子中,管理对象结构是一类移动对象,这是因为它带有一个PERC808。不过管理对象可以不带有PERC808而变成静止对象。管理对象结构870不保存信息内容,而是保存“管理信息内容”872。管理信息内容872可以(举例来说)包含大量的记录872a、872b,...872n,每个记录对应于一个不同的“事件”。每个记录872a、872b,...872n可以包含一个“事件”字段874,并可以可选地包含一个参数字段876以及/或者一个数据字段878。这些管理信息内容记录872可以由VDE100用来定义交易过程可能要处理的事件,例如,一个用来向安全数据库增加记录的事件可能包含参数896和数据字段878,其中,参数896表明记录如何存贮和存贮何处站,而数据字段878则包含了需要增加的记录。在另一个例子中,一组事件可以定义在管理对象的制作者和收件人之间的财务交易,例如一项购买、一个订购单或一张发票。每个事件记录872都可以是一组指令,这组指令由最终用户的电子设备600执行,从而对最终用户的安全数据库610进行增加或修改(举例而言)。事件可以执行许多基本管理功能,例如,向对象注册处添加对象,这包括提供相关的用户/组记录、权利记录、许可记录和/或方法记录;删除审核记录(例如将审核跟踪记录聚集成一个更为紧缩的概要表格,或者进行实际删除);为以前注册的对象增添或更新许可记录808;增加或更新预算记录;增加或更新用户权利记录;以及增加或更新加载模块。

在较佳实施例中,管理对象可以由(举例来说)分发者、客户管理员、票据交换所或其它财务服务提供者等发送到最终用户,或者也可以由对象制作者发送给分发者或服务票据交换所。管理对象可以(举例来说)对接收了管理对象的那些VDE节点的预算和/或许可进行增加或调整。类似的,那些在事件记录872的数据区878中包含了审核信息的管理对象可以从最终用户发送给分发者、票据交换所和/或客户管理员,后者可能再将管理对象发送给对象制作者或对象处理链中的其它参与者。

方法

较佳实施例中的方法支持在使用对象以及与分发者通信过程中用户所遇到的多种操作。它们还可指定哪些方法字段可以显示给用户(如使用事件、用户请求事件、用户响应事件以及用户显示事件)。另外,如果某个方法支持分发功能,那么该方法可以支持分发活动、分发者与用户进行有关方法、方法的修改、确定哪些方法字段可以向分发者显示、以及对分发数据库的任何检查以及记录保存(如分发事件、分发者请求事件以及分发者响应事件)的通信。

鉴于现有方法结构的一般性,以及装配方法的多种可能性组合,可使用一个通用化的结构来建立方法之间的关系。由于方法1000可以独立于给定会话中需要它的对象,所以不可能在方法本身之中定义上述关系。在较佳实施例中,使用“控制方法”来定义方法间的关系。控制方法可以是特定于对象的,并可以在每次会话中适应单个对象的要求。

对象的控制方法建立与其它方法的关系。当在注册进程中创建记录集合(这些记录集合反映了对应于每个所需方法的所需方法选项)的时候,这些关系由明确的方法标识符参数化。

在较佳实施例中,“聚合方法”代表了一组方法,这些方法可以被看成是一个整体。与特定所有物相关的一组方法可以被存放在一个“聚合方法”中。从实现角度来看,这种聚合方式是有用的,这是因为它可以降低簿记开销并提高数据库的总体性能。在其它情况下,当方法间存在逻辑相关性时,也可以把这些方法聚合起来。例如,两个预算可以会被链接在一起,这是因为其中一个代表了总体限额,而另一个则代表了当前可用的限额。当一个大额预算随着时间以小额形式发放时,上述情况就可能出现。

举例来说,一个含有计量、计帐和预算进程的聚合方法可用来代替独立的三种方法。这个聚合方法可以引用单个“加载模块”1100,而该加载模块1100可执行上述三个独立加载模块的所有功能,而只使用一个用户数据元素,该数据元素包含计量、计帐和预算数据。使用聚合方法而不是三种独立的方法可以最大限度地降低总体存贮器需求、数据库搜索次数、解密次数、以及将用户数据元素回写到安全数据库610的次数。使用聚合方法而不是三种独立的方法的缺点在于在提供者和用户方面将损失一些灵活性,因为许多功能将不能再被独立地替换了。

图16示意了方法1000,这些方法是安全数据库610的一部分。

较佳实施例中的“方法”1000是基本指令和信息的集合,而信息则与基本指令相关联。这些基本指令和信息提供了为执行和/或准备执行基本指令所需的上下文、数据、要求和/或关系,这些基本指令与一个或多个电子设备600的操作相关联。如图16所示,在较佳实施例中,方法1000由安全数据库610中的下列部分表示:

方法“核心”1000N

方法数据元素(MDE)1202

用户数据元素(UDE)1200

数据说明元素(DTD)

较佳实施例中的方法“核心”1000N可以包含或引用一个或多个数据元素如MDE1202和UDE1200。在较佳实施例中,MDE1202和UDE1200可以带有相同的一般特性,它们之间的主要区别在于:UDE最好与一个特定方法、一个特定用户或一组特定用户结合在一起,但MDE可与一个特定方法结合在一起,而与用户无关。较佳实施例中,MDE和UDE数据结构1200、1202用来向方法1000提供输入数据,或接收方法的输出数据,或者两者兼做。MDE1202和UDE1200的传递可以独立于引用它们的方法核心1000N进行,或者这些数据结构可以作为方法核心的一部分进行传递。例如,在较佳实施例中,方法核心1000N可以含有一个或多个MDE1202和/或UDE1200(或其中一部分)。作为另一种选择或作为一种补充方式,方法核心1000N可以或另外引用一个或多个MDE和/或UDE数据结构,而这些数据结构是独立于引用它们的方法核心进行传递的。

在较佳实施例中,方法核心1000N还引用一个或多个“加载模块”1100。较佳实施例中的加载模块含有可执行代码,并且还可以包含或引用一个或多个称为“数据说明符”(DTD)信息的数据结构。该“数据说明符”信息可以(举例来说)向DTD解释程序590提供数据输入信息。DTD可使加载模块1100能够访问(如读出和/或写入)MDE和/或UDE数据元素1202,1200。

方法核心1000’还可引用一个或多个包含了其操作正文说明的DTD和/或MDE数据结构,这些操作正文说明适于作为电子合同的一部分。对DTD和MDE数据结构的引用可以出现在方法核心1000’的私有头中,也可以定义成事件表的一部分,后面将要讲到事件表。

图22示意了较佳实施例提供的方法核心1000N的格式示例。较佳实施例中的方法核心1000N含有一个方法事件表1006和一个方法局部数据区1008。方法事件表1006列出了“事件”,这些事件每一个都引用了控制事件处理的“加载模块”1100和/或PERC808。与表中所列各事件对应的是向加载模块1000或许可记录808提供参数所必须的任何静态数据,以及对方法用户数据区1008的引用,这些引用用来支持事件的处理。为加载模块1100提供参数的数据可以部分地认为是对该加载模块的一个特殊函数调用,而与之相对应的数据元素则可以被认为是上述特殊函数调用的输入和/或输出数据。

方法核心1000N可以由单个用户专用,也可以被大量用户共享(举例而言,这要取决于方法核心和/或特定用户数据元素的唯一性)。特别地,每个用户/组都可以拥有其自己的UDE1200,并使用共用的方法核心1000N。比起将整个方法核心1000N与一个用户/组关联来说,上述的结构将使数据库的开销更低。为了使用户能用一个方法,可以向用户发送方法核心1000N,该方法核心指定了一个UDE1200。如果所在地的安全数据库610中已经含有了方法核心1000N,那么只需要添加UDE1200。作为另外一种选择,方法可以在注册的时候创建所有必须的UDE1200。

在图22中,由较佳实施例所提供的方法核心1000N格式示例包含公开(未加密)头802、私有(加密)头804、方法事件表1006、以及方法局部数据区1008。

下表给出了方法核心1000N公开头802可能的字段布局示例:

  字段类型  说明  方法ID  制作者ID  本方法制作者的站点ID  分发者ID  本方法的分发者(如,最后一次  改变之后的分发者)  类型ID  常量,它表示了方法“类型”  方法ID  本方法的唯一序列号  版本ID  本方法的版本号  其它分类信息  类别ID  支持不同方法“类”的ID  类型ID  支持方法类型兼容搜索的ID  说明信息  说明  本方法的文字描述

事件概要本方法所支持的事件种类(如使用)的概要

下表示意了私有头804的可能字段布局示例:

字段类型   说明公开头802方法ID和“其它分类信息”的拷贝   来自公开头的方法ID说明性信息事件数目   本方法支持的事件数目访问和引用标记访问标记   各种标记,这些标记用来确定本   方法是否是由SPU管理的正确方   法;确保方法核心1000N只能在适当   的条件下使用确认标记关联标记数据结构引用   可选的、对DTD和/或MDE的引用校验值   私有头和方法事件表的校验值公开头信息的校验值   公开头信息的校验值

再参看图22,较佳实施例中的方法事件表1006可以含有从1到N的方法事件记录1012。每个上述方法事件记录1012都对应于一个不同的事件,由方法核心1000N代表的方法1000对该事件作出响应。在较佳实施例中,根据所响应事件的不同,这些方法1000可以具有完全不同的行为。例如,为响应对应于用户使用一个对象或其它资源的事件,AUDIT(审核)方法可以在审核跟踪UDE1200中保存某些信息。而同一AUDIT(审核)方法可以将所保存的审核跟踪向VDE管理员或其它参与者进行报告,以作为对管理事件的响应,这种管理事件诸如(举例来说)VDE节点中的计时器计时终止或其它VDE参与者发来了报告审核跟踪的请求。在较佳实施例中,每一个上述不同事件都可以用一个“事件代码”来代表。该“事件代码”可以在某个方法被调用时作为参数传递给该方法,它可以用来在方法事件表1006中“查找”适当的方法事件记录1012。接下来,选定的方法事件记录1012指定用来创建部件组690的适当信息(如加载模块1100,数据元素UDE和MDE1200、1202,以及/或者PERC808),该部件组690将响应所发生的事件而投入执行。

于是,在较佳实施例中,每个方法事件记录1012都可以包含事件字段1014、LM/PERC引用字段1016、以及任意数量的数据引用字段1018。较佳实施例中事件字段1014可含有一个“事件代码”或标识相应事件的其它信息。LM/PERC引用字段1016可提供对安全数据库610的引用(或其它“指针”信息),该引用标识了某个加载模块1100和/或某个PERC808,该加载模块1100和/或PERC808提供(或引用)了特定的可执行码,该执行码要被加载和执行,以便执行用来响应上述事件的方法。数据引用字段1018可以含有对UDE1200或MDE1202的引用信息。这些数据结构可以包含在方法核心1000N的方法局部数据区1008中,也可以作为独立可传递信息而保存在安全数据库610中。

下表示意了方法事件记录1012的一个可能更详细的字段布局示例:

  字段类型  说明  事件字段1014  标识相应事件  访问标记  保密标记,用来授权访问本方  法事件记录的这一行  LM/PERC引用  字段1016数据库标识或偏移/长度  数据库引用(或本地指针)关联标记  关联标记,用来在引用该元素  时进行确立  数据元素引用字  段的数目  方法事件记录中数据引用字段  的数目  数据引用字段1UDE标识或偏移/长度  数据库610引用(或本地指针)关联标记  关联标记,用来在引用该元素  时进行确立  !                                    …

数据引用字段nUDE标识或偏移/长度  数据库610引用(或本地指针)关联标记  关联标记,用来在引用该元素  时进行断言

加载模块

图23示意了较佳实施例提供的加载模块1100示例。通常,加载模块代表了基本功能的集合,这些基本功能用来对操作进行控制。

加载模块1100含有代码和静态数据(静态数据在功能上与代码是等价的),它用来执行VDE100的基本操作。加载模块1100通常被系统中所有对象的所有控制结构共享,不过也允许独占的加载模块存在。加载模块1100可以在管理对象结构870中在VDE参与者之间传递,并通常保存在安全数据库610中。在上述两种情况中,加载模块1100总要经过加密和鉴别。当方法核心1000N引用加载模块1100时,该加载模块即被调入SPE503,经过解密后,或者被传送给电子设备微处理器以便在HPE655中执行(如果HPE655是它执行的地方),或者保留在SPE中(如果SPE503是它执行的地方)。如果没有SPE503的话,该加载模块在执行前可能先要经过HPE655解密。

由各个团体创建加载模块最好受一个确认进程的控制,或由基于环的SPU体系结构进行控制。于是,创建新加载模块的进程本身即是一个受控进程,和替换、更新或删除已经保存在安全数据库610中的加载模块的进程一样。

加载模块100只有在SPU503或HPE655的受保护环境中才能执行其功能,其原因在于,只有这样加载模块才有权访问它需要操作的受保护元素(如UDE1200或其它加载模块1000)。在该环境中,起动加载模块执行中严格受控于访问标记、确认标记、加密密钥、数字签名和/或关联标记的组合。因此,调用者只有在知道加载模块1100的标识并能确立特定于该加载模块的共享保密关联标记时,才能引用该加载模块。执行解密操作的SPU在解密加载模块之后,可将识别标记和加载模块的本地访问标记进行匹配。采用这种技术,对任何加载模块所做的物理替换都可在下次对之进行访问时检测出来。而且,在较佳实施例中,可以将加载模块1100设置成“只读”。加载模块1100的只读特性将禁止对加载模块进行回写,而在非安全环境中,回写将破坏加载模块。

加载模块不一定由控制它们的PERC 808直接管理,也不一定带有任何时间/日期信息或过期日期。在较佳实施例中,仅有的控制手段体现在一个或多个方法1000使用关联标记(关联标记是由加载模块所有者创建的、有关受保护对象的一个数值,关联标记被传递给经过授权的团体并存放在其方法中,对关联标记访问和使用由一个或多个PERC808来控制)来引用加载模块。如果某个方法核心1000N引用了一个加载模块1100并能够确立正确的关联标记(并且该加载模块通过了为在SPE 503内执行而进行的内部防破坏检查),那么该加载模块将可以被加载和执行,或可以从其它系统所获取,可以运送给其它系统,或者可以被其它系统所更新和删除。

如图23所示,较佳实施例中的加载模块1100可能包含公开(未加密)头802、私有(加密)头804、包含加密可执行码的私有体1106、以及一个或多个数据说明元素(“DTD”)1108。DTD 1108可以存放在加载模块1100中,也可以是对安全数据库610中静态数据的引用。

下表给出了加载模块公开头802可能的字段布局示例:

许多加载模块1100含有在SPE 503中执行的代码。而某些加载模块1100含有在HPE 655中执行的代码。这就允许方法可以选择合适的环境执行。例如,可以让一个INFORMATION(信息)方法仅在SPE503安全空间中执行政府类的安全级,而在HPE 655中执行商业应用。如上所述,加载模块公开头802中可含有一个“执行空间代码”字段,该字段表明了加载模块1100需要执行的空间。此项功能还支持不同SPE指令集以及不同的用户平台,同时该功能还使方法的创建不依赖于低层的加载模块指令集。

加载模块1100对三个主要的数据区进行操作,它们是:堆栈、加载模块参数和数据结构。执行加载模块1100所需的堆栈和运行内存大小最好在私有头804中说明。与来自关于加载模块调用、返回、以及任何返回数据区的栈图象的数据说明也一样。对堆栈和动态区的说明使用了相同的DTD机制。下表给出了加载模块私有头1104的可能布局示例1:

字段类型说明公开头802的部分或全部信息的拷贝从公开头得到的对象ID其它分类信息校验值公开头的校验值说明信息加载模块大小可执行代码块的大小加载模块执行大小加载模块可执行代码的大小加载模块执行堆栈加载模块所需的堆栈大小执行空间代码说明加载模块执行空间的代码访问和引用标记访问标记这些标记用来确定该加载模块是否是SPE所需的正确加载模块确认标记关联标记用来确定加载模块的调用者是否具有执行该加载模块的权利数字签名用来确定该加载模块可执行代码是否是未受损的,以及它是否是由一个可信的源(具有创建加载

模块正确证明者)创建的数据记录描述符信息DTD数目代码块后面的DTD的数目。DTD1引用如果是局部定义的,为本LM定义的第一DTD以字节表示的物理大小与偏移。如果是公开引用的DTD,这是DTD ID及允许访问该记录的关联标记。***DTDn引用如果是局部定义的,为本LM定义的第一DTD以字节表示的物理大小与偏移。如果是公开引用的DTD,这是DTD ID及允许访问该记录的关联标记。校验值整个加载模块的校验值

每个加载模块1100还可以使用DTD1108信息产生必要的信息以支持从加载模块中创建方法。DTD信息中含有定义和范围,前者用SGML之类的语言书写,它描述的是加载模块所支持的所有方法数据字段的名字和数据类型;后者规定了可以放入字段的数值的可接受范围。其它DTD可以英文形式说明加载模块的功能,(举例来说)这些内容是为加入电子合同之用。

加载模块1100的下一部分是一个加密的可执行体1106,可执行体1106包含了一个或多个加密代码块。加载模块1100最好用其执行环境的“原来”指令集进行编码,以便获得较高效率和紧凑性。SPU500以及平台提供者可以提供标准加载模块1100版本,以便使他们的产品可以与VDE100计划采用各种分发机制的信息内容协同工作。较佳实施例创建并使用原来模式的加载模块1100来代替“解释的”或“p-代码”实现方案,从而使资源有限的SPU性能达到最优。不过,如果存在充足的SPE(或HPE)资源,并且或者平台具有足够的资源的,也可以采用其它实现方案,以便提高加载模块的跨平台使用能力。

下表给出了加载模块DTD 1108的字段布局示例:

加载模块1100对DTD 1108的使用方式包括下面的例子:

将数据区DTD4中的数据元素(该数据元素由DTD3中的名字来定义)数值增加DTD1中的数值

将数据区DTD4中的数据元素(该数据元素由DTD3中的名字来定义)数值设置为DTD3中的数值。

按照DTD3中的表格对来自DTD1内事件的原子元素进行计算,并将结果返回至DTD2中

按照DTD3中的公式对来自DTD1内事件的原子元素进行计算,并将结果返回至DTD2中

根据由DTD3引用的加载模块创建模板创建加载模块

使用DTD4中的内容修改DTD3中的加载模块

撤除在DTD3中指名的加载模块

如果空间允许的话,可将公用的加载模块1100内置于SPU500中。使用内置加载模块1100的VDE进程与必须查找、加载、解密外部加载模块的那些进程相比,前者性能更为突出。最为有用而应该内置于SPU中的加载模块1100包括计量加载模块、固定价格计帐加载模块、预算加载模块以及聚合了执行上面三种进程的方法的加载模块。

用户数据元素(UDE)1200和方法数据元素(MDE)1202

在较佳实施例中,用户数据元素(UDE)1200和方法数据元素(MDE)1202用来存放数据。较佳实施例提供了多种UDE1200和MDE1202。在较佳实施例中,每个上述不同类型的数据结构都共享通用的整体格式,这包括通用头定义和命名方案。其它共享该通用结构的UDE1200包含“局部名服务记录”(下面马上就要对此进行解释)以及连接其它VDE参与者使用的帐户信息。这些元素没有必要与单独的用户相关联,所以被视为MDE1202。如果需要的话,较佳实施例提供的所有UDE1200和所有MDE1202(如图16所示)都可以被存贮在安全数据库610中一个共用物理数据表内。并且,可以共用数据库访问进程来访问所有这些不同类型的数据结构。

在较佳实施例中,PERC808和用户权利表记录是两种类型的UDE1200。还有其它类型的UDE1200/MDE1202,包括计量器、计量器跟踪、预算、预算跟踪、以及审核跟踪。如上所述,上述各种UDE/MDE的各种格式由DTD1108中的SGML来定义。方法1000使用上述DTD以正确地访问UDE/MDE1200、1202。

安全数据库610保存两种类型的项:静态的和动态的。静态数据结构及其它项用于实质上为静态的信息。这包括加载模块1100、PERC808以及方法的许多部件。这些项不常更新,它们包含过期日期,用来防止“老”的信息拷贝被新接收到的条目所替换。在存储在安全数据库610中时,可使用特定于站点的安全数据库文件密钥对这些项进行加密,然后在将它们加载进SPE的时候用相同的密钥对之进行解密。

动态的项用来支持必须频繁更新的安全条目。许多方法的UDE1200在每次使用之后都必须被更新并从SPE503中写出。计量器和预算是两个常见的例子。使用过期日期不能有效地防止对预算UDE1200旧拷贝的替换。为了保证这些频繁更新项的安全,当每次更新这些项的时候,将生成一个交易标记并将之纳入被加密的项中。系统将维护所有VDE项ID的清单以及每个项的当前交易标记,并把这些信息作为安全数据库610的一部分。

图24示意了较佳实施例提供的用户数据元素(“UDE”)1200示例。如图24所示,较佳实施例中的UDE1200含有公开头802、私有头804、以及数据区1206。每个上述用户数据元素1200的组织结构通常都由保存于DTD1108中的SGML数据定义来定义,而该DTD1108与操作该UDE1200的一个或多个加载模块1100相关联。

一旦将UDE1200载入某个站点以后,最好使用一个特定于该站点的密钥对该UDE1200进行加密。该特定于站点的密钥屏蔽了某确认标记,该确认标记可以由SPE503从具有强加密特性的伪随机数序列中得到,在记录每次写回安全数据库610中的时候,该确认标记要被更新。这种技术可以合理地保障UDE1200在下次需要被系统使用的时候没有被破坏或替换。

计量器和预算可能是VDE100中最常见的数据结构。它们用来对事件进行计量和记录,还可以对事件进行限制。计量器和预算数据结构由信息内容提供者或经过授权可以修改该信息的分发者/再分发者来决定。不过,计量器和预算通常都含有以通用头格式存放的共同信息(如用户标识、站点标识、以及相关标识信息)。

信息内容提供者或分发者/再分发者可以规定每个计量器UDE和预算UDE的数据结构。尽管这些数据结构会随着特定应用的不同而变化,但某些数据结构比其它数据结构更具通用性。下表列出了METER(计量器)和BUDGET(预算)方法中某些更为常见的数据结构:

字段类型格式典型使用使用或说明逐增型使用计数器字节、短整数、长整数或相同宽度的无符号类型计量/预算对使用进行逐增计数逐减型使用计数器字节、短整数、长整数或相同宽度的无符号类型预算对允许的使用进行逐减计数(如剩余的预算)

计数器/限制2、4或8字节的整数,该整数被分为相关的两个字节或字计量/预算从指定时间起的使用限制;通常用于复合计量器数据结构中。位图数组字节计量/预算使用或所有权的位指示符宽位图数组字节计量/预算使用或可随时间老化的所有权的指示符上次使用日期time_t计量/预算上次使用日期开始日期time_t预算第一次允许使用的日期过期日期time_t计量/预算过期日期上次审核日期time_t计量/预算上次审核日期下次审核日期time_t计量/预算下次需要审核的日期审核者VDE ID计量/预算授权的审核者的VDE ID

上表中的信息并非完整或详实,它只是试图示意可以保存于计量器和预算相关数据结构中信息类型示例。特定计量器和预算的实际数据结构由一个或多个DTD1108来决定,该DTD1108与创建和操作该数据结构的加载模块1100相关联。经过适当授权的团体可以扩展由VDE100的DTD解释程序590所允许的数据结构类型。

图25示意一个特别有用的UDE1200数据区1206示例。该数据区1206定义了一个可用来记录使用信息的“图”。举例而言,一个计量方法1000可以维护一个或多个“使用图”数据区1206。从保存一个或多个信息位的角度看,使用情况图可能是一个“使用位图”(即一维或多维位图),上述信息位对应于使用的一个或多个种类或类别。在引用以前的使用方面,使用位图是一种有效的手段。例如,计量器方法1000可以利用使用图数据区来记录信息内容中用户已支付其使用的所有可应用部分,这样就可以提供一种十分有效和灵活的方法,以允许后续用户使用信息内容的相同部分。这种方法可以支持某些与VDE相关的安全性功能,例如“连续性”、“逻辑相关性”、“使用随机化”、以及其它使用类型。可为其它使用模式分析“使用图”(这些使用模式的例子包括数量的折扣,以及允许用户重新访问一个信息内容,而该用户以前已经支付了无限使用该信息内容的费用)。

较佳实施例提供的“使用图”概念可以与“原子元素”概念结合。在较佳实施例中,可以以“原子元素”来计量对象300的使用。在较佳实施例中,涉及计量的“原子元素”定义了使用的一个单位,即该使用单位可作为一条“足够有效”的信息而被记录于一个计量器中。对构成“原子元素”的定义由对象300的制作者来决定。例如,可以将对象300中信息内容的一个“字节”定义为一个“原子元素”,也可将数据库的一个记录定义为一个“原子元素”,也可将电子出版书籍中的一章定义为一个“原子元素”。

对象300可以带有重叠原子元素的多个集合。例如,对大量数据库中任一数据库的存取可被定义为一个“原子元素”。同时,大量数据库中任何一个的任意记录、记录字段、信息区段、以及/或者任意字节的存取都可被定义为一个“原子元素”。在一个电子出版的报纸中,每一文章的百字的篇幅都可以被定义为“原子元素”,同时,长度超过某一特定值的文章可以被定义为另一组“原子元素”。报纸的某些部分(如广告、分类部分等)可能不能映射到原子元素。

较佳实施例为对象制作者提供了基本上无限的能力使之可以定义原子元素类型。某些原子元素定义可以非常灵活地支持种类繁多的信息内容使用类型。较佳实施例支持的某些原子元素类型包括:字节、记录、文件、区段、对象、大量字节、连续或相对连续的字节(或其它预定义的单位类型)、具有一定逻辑相关性的字节—这些逻辑相关字节所含内容在主题、位置或用户可定义的其它逻辑关系类型上存在着某些逻辑关系,等等。对象制作者最好可以灵活地定义原子元素的其它类型。

本发明的较佳实施例提供了EVENT(事件)方法,该方法可以在使用事件和原子元素之间提供映射。通常,对于为对象300定义的每一个不同原子元素集合,都有一个EVENT方法与之相对应。在许多情况下,对象300将含有至少另一类原子元素用以进行与计帐有关的计量,还含有至少另一种原子元素类型用以进行与计帐无关的计量(举例而言,这种计量用来检测欺诈行为、对登广告者进行计帐、以及/或者收集有关最终用户使用活动的数据)。

在较佳实施例中,在有关使用的背景中,各EVENT方法执行两个功能:(1)它将一个受到访问的事件映射到含有零个或多个原子元素的集合;(2)它向一个或多个METER(计量)方法提供信息以计量对象使用。访问事件和原子元素之间的映射定义方式可采用许多形式,包括数学定义、表格、加载模块等等。当EVENT方法将一个访问请求映射到“零”个原子元素时,将不再根据适用的特定原子元素定义把用户访问的事件映射到任何原子元素。出现这种情况的一个例子是:对象所有者对基于上述访问进行使用计量不感兴趣(例如,其原因是该对象所有者认为这种访问从计量的角度看是无足轻重的)。

“使用图”技术可以利用“位图图象”来十分有效地保存历史使用信息。一幅使用图中的各个存贮元素可与原子元素相对应。使用图中的不同元素可与不同的原子元素相对应(如:一个图元素可能对应于大量的读进字节,另一个图元素可能对应于某个特定章节是否被打开,而另一个图元素可能对应于其它使用事件)。

本发明较佳实施例所提供的使用图特征之一在于:图元素的意义至少部分地由使用图中该元素的位置所指定。因而,在较佳实施例提供的使用图中,由图元素指示或编码的信息是该图元素在图结构中的位置(或者是物理位置,或者是逻辑位置)的函数。举一个简单的例子,对于一本含有十二章的小说,其使用图可以包含十二个元素,每个元素对应于小说的一章。当用户打开第一章时,在对应于第一章的元素中,一个或多个位的数值将会发生改变(如设置成“1”)。在这个简单例子中,包含该小说的那个信息内容对象的所有者只对计量哪些章节已被用户打开感兴趣,当用户第一次打开某个章时,对应于该章的使用图元素可以被设置成“1”,并且不管该章又被用户打开了多少次,该元素都始终为“1”。只需简单的检查这张简洁紧凑的使用图,并确定哪些元素被置为“1”,对象所有者或其它感兴趣的VDE参与者就可以迅速有效地得知哪些章已被用户打开。

假设信息内容所有者希望获知小说的每一章被用户打开多少次。在这种情况下,对于含有十二章的小说,该使用图可包含十二个元素,这些元素与小说的各章有一一对应关系。用户每次打开某一章,对应的METER方法将增加使用图中对应元素的值。采用这种方法,可以方便地得到小说每一章的使用记录。

使用图中元素的位置可编码一个多变量函数。例如,可以将使用图中的元素组织成一个二维数组,如图25B所示。不同的数组坐标可以对对应于自变量,如原子元素和时间。举例而言,假设某个信息内容对象所有者分发的对象含有一组录音节目。进一步假设该信息内容对象所有者希望跟踪这组录音节目中每一个节目被用户收听的次数,而且他还希望跟踪这组节目按月的使用情况。因而,假设该信息内容对象所有者希望了解用户在一月份按照一个节目接一个节目的次序对每个节目的收听次数,类似地,他还希望了解在二月份、三月份等的相同使用情况。在这种情况下,使用图(参看图25B)可以被定义成元素的二维数组。该数组的其中一维可以编码音频节目编号,另一维可以编码该年的月份。在一月份,对应的METER方法将在数组“一月”的列中增加数组元素的值,作为录音节目的编号的函数。选择哪一个元素递增。当一月份到头以后,METER方法可能将停止写入“一月”这一列内的数组元素,转而写入二月份的数组元素集合,此时它仍旧作为录音节目的编号的函数来选择该列中的相应数组元素。上述的概念可以被扩展到N维,编码N个不同变量。

因此,在引用以前的使用方面,使用图是一种有效的手段。它们可以提供某些有关VDE的安全功能,例如它可以用来检查:连续性(包括相对连续性)、逻辑相关性(包括相对逻辑相关性)、使用随机化、以及对其它使用模式。例如,用户对信息内容的随机使用的程度或特征可能会潜在地反映了用户打算绕过VDE信息内容预算限额的企图。某个用户或某组用户可能利用多次交互会话提取信息内容,他们所采取的方式可能不会对该信息内容在连续性、逻辑相关性或数量限制方面造成破坏,但这种方式仍将某个给定的、有价值信息内容中的部分或全部素材重新创建。使用图可以用来分析确定其它使用模式以便进行适当的定价,例如,在用户使用特定数量的任何或某些原子元素之后给予用户数量折扣。还有一个用途是允许用户重新访问一个特定对象,该用户以前已经支付了无限使用该对象(或经过某个特定时间后可无限使用该对象)的费用。其它对使用图的有用分析还可以包括对给定原子元素的大量使用给予折扣。

图计量器的另一个例子包括为用户已支付了使用费用的所有适用原子元素(或者,用户已经使用过这些原子元素并经过了计量,不过可能还未要求或支付使用费)保存一个记录。这种使用图将提供一种十分有效和灵活的方法,以支持后续用户使用相同的原子元素。

进一步的使用图可用来探测对相同对象的欺诈性使用。例如,可以适当地保存对象,以保证决不发生对该对象较长数据块的顺序访问。METER方法可以在任何规定的时间增量内记录对所有适用原子元素的访问,此处的时间增量可以是(举例来说)十分钟、一小时、一天、一个月、一年、或其它时间期限。在规定的时间增量末尾,可以对使用图进行分析,以检查是否存在所访问的数据块的超长连续组。并且/或者在每次开始访问所适用的原子元素时对使用图进行分析。每次进行了这种基于持续时间的分析后,如果没有发现欺诈性访问,则可以清除(或部分清除)使用图,同时映射进程可以完全或部分地重新开始刚才的工作。如果怀疑出现了或确实检测到了欺诈性访问,将记录此信息,同时停止对象的使用。举例而言,可要求用户与信息内容提供者联系,而该信息内容提供者将进一步分析使用信息,以决定是否允许用户继续使用下去。

图25C示意了一种特定类型的“宽位图”使用记录1206,其中,每个表项对应于在一段特定时间的使用(如本月的使用、上月的使用、上上月的使用等)。于是,所示的使用记录含有“标志”或字段1206的数组,在这个特定的例子中,该数组中的每一个元素都用来指定在不同时间段中的使用。当一个时间段到期后,该数组中的所有元素1206将被移位一个位置,因而经过一系列时间段后的使用信息(或用户访问权的购买)可以由一系列连续数组元素反映。在图25C所示的特定的例子中,整个宽数组1206每个月移动一个数组位置,其中最老的数组元素被删除,而新的数组元素被“拨”入对应于当前时间段的新数组图。在本例中,记录1206对在本月及紧邻本月的前5个月中所发生的使用访问权和/或其它与使用相关的行为进行跟踪。对应的计帐过程和/或计帐方法406将对该图进行检查,并基于特定公式确定当前使用中与计帐和/或安全性监测有关的使用,此处的该公式使用保存该记录中的使用数据;及更新该宽记录以标记出适当的数组元素,表示对这些数组元素进行过使用,等等。宽位图还可以用于许多其它目的,例如维护逐个元素的使用计数,或上述的连续性、相关性等功能,或某些功能的组合。

可以在任何频率上产生审核跟踪图,该频率取决于控制、计量、预算和计帐方法,以及与这些方法相关的加载模块。审核跟踪记录的结构与计量和预算的数据结构相似,除了包含导致其创建的使用事件之外,审核跟踪记录还可以包含特定于用户的信息。象计量和预算一样,审核跟踪的格式是动态的,该格式由信息内容提供者或其授权受让者定义,其基本元素类型与上表中计量和预算所使用的相同。除了这些类型以外,下表列出了审核跟踪中可能出现的其它重要数据字段示例:

字段类型格式典型使用使用说明使用事件ID无符号长整数计量/预算/计帐启动处理序列的事件ID内部序列号无符号长整数计量/预算/计帐一个交易号,它用来检测已经遭受破坏的审核记录原子元素和对象ID适当宽度的无符号整数计量/计帐被使用的原子元素和对象ID用户个人信息字符其它信息预算/计帐用户的个人信息使用日期/时间time_t计量/预算/计帐使用的日期/时间站点标识/用户标识VDE标识计量/预算/计帐用户的VDE ID

审核跟踪记录可以被自动合并成一个记录以便节省头信息空间。何时发生合并过程可能(举例来说)要受特定加载模块的控制,该加载模块创建了各个审核跟踪记录。

许可记录综述

从图16中还可以看到,可以将PERC808作为安全数据库610的一部分进行保存。许可记录(“PERC”)808在较佳实施例VDE100所提供的数据驱动控制层次中处于最高层。对于每一个由VDE100分发的信息和/或交易的信息内容,都有至少一个相对应的PERC808。因而,在较佳实施例中,对于每个VDE对象300至少存在一个PERC808。某些对象可带有多个对应的PERC808。PERC808控制访问和/或操作许可的分发方式、以及/或者信息内容和/或其它信息的使用方式。PERC808还为每个访问信息内容和/或其它信息的参与者规定了“权利”。

在较佳实施例中,任何用户在许可记录808传递给他之前是不能使用或访问VDE对象的。如上所述,可以将许可记录808作为移动对象860的一部分传递,也可以将它独立传递(例如在管理对象中)。一个电子设备600只有在带有相应PERC808的时候才能够访问一个对象,并且只能使用PERC中控制结构所允许的对象和相关信息。

简单地说,PERC808存贮的信息与方法、备选方法、解密密钥以及涉及对应VDE对象300的权利有关。

PERC808含有定义了高层操作类别或种类的控制结构。这些高层类别称为“权利”。而“权利”控制结构又提供了对“方法”1000进行引用的内部控制结构。较佳实施例PERC808的内部结构对“方法”进行组织,这些方法用来对对象或相关控制结构执行所有许可的操作(包括对PERC本身执行操作)。例如,PERC808含有对象的解密密钥,而对密钥的使用则由特定方法来控制,PERC需要使用上述方法来执行与履行“权利”相关的操作。

通常在创建对象的同时创建该对象的PERC808,而以后对PERC的实质修改—如果允许进行这些修改的话—则是由与某些操作相关联的方法来控制,这些方法使用了由同一(或不同)PERC定义的分发权利。

图22示意了较佳实施例提供的PERC808示例的内部结构。所示的所有结构都代表(或引用)了一组方法,这些方法用来以某种特定方式处理对应的对象。PERC808被组织成一个层次化结构,下面列出了该层次化结构中基本元素:

“权利”记录906

“控制集合”914

“必要方法”记录920

“备选必要方法”924

PERC808层次化结构还可以含有其它元素,这些元素描述了一些规则和备选规则,这些规则和备选规则用来支持规则集合的协商及智能对象的控制信息,以及利用私有信息过滤器对用户私有信息进行保护的控制信息。这些可选的元素可包括:

可选权利记录

可选控制集合

可选方法记录

许可的权利记录

许可的权利控制集合

许可的方法记录

必要DTD说明

可选DTD说明

许可DTD说明

这些可选的字段可以控制其它进程,这些进程将有关其操作的协商和决定部分地建立于其字段的内容之上。权利协商、智能对象控制信息、以及相关进程等都可以使用这些字段以便对它们的操作进行更加精确地控制。

图26所示的PERC808包含PERC头900、CS0(“控制集合0”)902、私有体密钥904、以及一个或多个权利子记录906。较佳实施例中的控制集合0 902含有的信息通用于与对象300相关的一个或多个“权利”。例如,特定“事件”方法对于使用权利、提取权利和/或其它权利来说可以是相同的。在这种情况下,“控制集合0”902可以引用这个对多种“权利”来说都相同的事件。提供“控制集合0”902实际上是一种优化措施,因为这样,就可能把通用事件的不同实例保存在PERC808的多个“权利”记录906的各个之中。

每个权利记录906都定义了对应于某个对象的一个不同的“权利”。“权利”记录906是PERC808结构中的最高层次。在PERC808中可以有若干不同的权利。一个“权利”代表了一种主要的功能划分,这种功能划分是VDE100基本体系结构中的某个参与者所需要的。例如,使用对象的权利以及分发对象使用权的权利是VDE100中主要的功能集合。某些可能的权利包括:对信息内容的访问、分发信息内容访问权的许可、对有关信息内容和/或控制结构的审核跟踪进行读取和处理的能力、进行交易的权利—此处的交易可以也可以不与信息内容和/或相关控制结构有关(这些交易的例子有:金融交易、产品目录购买,税收、EDI交易,等等)、以及修改部分或全部PERC内部结构的能力—该PERC是为向其它用户分发而创建的。对于PERC所允许的每一类对象访问/使用权利,PERC808都带有一个权利记录906。

通常,对于VDE最终用户来说,最常得到许可的权利是使用权。其它类型的权利包括“提取权”、访问最终用户审核跟踪信息的“审核权”、以及分发对象的“分发权”。上述各种不同权利可以在不同的权利记录906中体现出来(或者,对应于某个对象的不同PERC808可以用来准许不同的权利)。

每个权利记录906都含有权利记录头908,CSR(“权利控制集合”)910、一个或多个“权利密钥”912、以及一个或多个“控制集合”914。每个“权利”记录906都含有一个或多个控制集合914,控制集合914或者是必须的或者是可选的备选方案,它们用来在该“权利”的行使过程中对对象进行控制。因而“权利”906内部的下一层即是控制集合914,控制集合914又各含有控制集合头916、控制方法918、以及一个或多个必要方法记录920。每个必要方法记录920又都含有一个必要方法头922以及一个或多个备选必要方法924。

VDE100中的控制集合914有两种类型:通用必要控制集合(Common required control Set)—其标记为“控制集合0”或“权利控制集合”、以及一组备选控制集合(control Set Option)。“控制集合0”902含有必要方法的一个清单,这些必要方法为所有备选控制集合所通用,所以该通用必要方法不必在每个备选控制集合中都复制一份。“权利控制集合”(“CSR”)910含有给定权利中的相同控制集合清单。因而如上所述,“控制集合0”以及任意“权利控制集合”是最优的方案。通过列出备选控制集合中的所有通用必要方法并且略去“控制集合0”以及任意“权利控制集合”就可以实现各控制集合的相同功能。

备选控制集合之一、“控制集合0”、以及适当的“权利控制集合”这三者共同组成了行使一项权利所必须的完整控制集合。

每个备选控制集合都含有必要方法1000的一个清单,并代表了行使权利的不同方式。在较佳实施例中,在任一时刻,可能的完整控制集合914中只有一个控制集合用来行使一项权利。

每个控制集合914含有足够多的必要方法记录920用来满足制作者和/或分发者行使一项权利的所有要求。可以支持以多种方式行使一项权利,也可以支持用多个控制集合控制给定权利的行使方式。举一个例子,单个控制集合914可以要求多个计量和预算方法读取对象的信息内容,也可以要求不同的计量和预算方法打印对象的信息内容。读和打印对象的信息内容都可以在单个控制集合914中加以控制。

或者,两个不同的备选控制集合可以支持读对象的信息内容,其中一个备选控制集合用来支持对所读字节数的计量和预算,另一个备选控制集合用来支持对所读段落数的计量和预算。在一个时刻这两个备选控制集合中有一个活跃。

通常,每个控制集合914都引用一个相关方法集合,而不同的控制集合可以提供不同的备用方法集合。例如,一个控制集合914可代表一个特殊类型的计量方法,而另一个控制集合则可代表一个完全不同的特殊计量方法。

控制集合914中的下一层次是必要方法记录920。在较佳实施例中,方法记录920包含或引用方法1000。方法1000包含一组“事件”、对与这些事件相关的加载模块的引用、静态数据、以及对安全数据库610的引用,其中对安全数据库610的引用是用来自动检索处理事件可能所需的任何其它独立可传递数据元素(如UDE)。控制集合914包含必要方法的一个清单,在行使一项特定权利(即处理与权利相关的事件)时必须使用这些必要方法。列在控制集合914中的必要方法记录920表明了必须存在一个方法以便履行该控制集合所支持的权利。必要方法可引用下面将要讲到的“加载模块”1100。简要地说,加载模块1100是一段可执行代码,它可用来执行必要方法。

每个控制集合914都可带有一个控制方法记录918作为其必要方法之一。被引用的控制方法可以定义某些或全部不同方法1000之间的关系,这些方法由控制集合906定义。例如,一个控制方法可以表明哪些必要方法要按功能组织在一起以便处理特定的事件,以及表明处理必要方法的次序。于是,一个控制方法可指定由记录920(a)(1)(i)所引用的必要方法是第一个应该被调用的方法,并且其输出要送到由记录920(a)(1)(ii)所引用的必要方法,依次类推。采用这种方式,一个计量方法可以被连接到一个或多个计帐方法,而该计帐方法由可以被单独连接到不同的预算方法,等等。

必要方法记录920指定了一个或多个备选必要方法924。在较佳实施例PERC808的控制结构中,备选必要方法处于最低层次。通过将必要方法参数化,并在独立于必要方法的前提下指定备选必要方法924,就有可能在许多不同情况下对必要方法进行重用。

例如,必要方法记录920可以表明,必须从备选必要方法清单的预算方法ID清单中为该必要方法选择一个实际的预算方法ID。本例中的必要方法记录920不包含有关所需方法类型信息的方法ID,它只是表明需要一个方法。备选必要方法924含有特定方法的方法ID,该特定方法在所述备选必要方法被选中的时候将投入使用。作为一种进一步的优化方案,如果对于指定的必要方法只存在一个备选必要方法,则可以保存实际的方法ID。这样可以缩减这一数据结构的大小。

PERC808还包含对象300的基本解密密钥,以及其它与“权利”结合使用的密钥(例如这些密钥用来加密和/或解密审核跟踪记录)。它可以包含用于对象信息内容的密钥,或者它包含用来解密对象某些部分的密钥,而这些对象部分又可包含用来解密对象的信息内容的其它密钥。对这些密钥的使用由相同“权利”906中的控制集合914来控制,该“权利”906包含在PERC808之中。。

详细地说,图26示意了PERC808包含私有体密钥904以及权利密钥912。私有体密钥904用来对包含在对应VDE对象300中的私有体806所含信息进行解密。举例来说,这种信息可包括方法1000、加载模块1100和/或UDE1200。在较佳实施例中,权利密钥912是行使一项权利所用的密钥。举例来说,这种权利密钥912可含有某些解密密钥,这些解密密钥允许由PERC808指定的某个方法对信息内容进行解密,以便由VDE节点向最终用户发布该信息内容。在较佳实施例中,这些权利密钥912对于对象300来说是唯一的,对其的使用最好由较佳实施例中的预算进行控制。

PERC808的详细举例

图26A和26B示意了较佳实施例PERC808的一个例子。在本例中,PERC头900包含:

站点记录号926

字段928,它规定了私有体密钥块的长度

字段930,它规定了PERC的长度

过期日期/时间字段932,它规定了PERC的过期日期和/或时间

上次修改日期/时间字段934,它规定了上次修改PERC的日期和/或时间

原始分发者标识字段936,它表明了PERC和/或相应对象的原始分发者

上次分发者标识字段938,它表明了PERC和/或相应对象的上次分发者

对象ID字段940,它标识了相应的VDE对象300

字段942,它为该记录类别指定了PERC和/或实例ID的类别和/或类型,用以区分类型相同但细节不同的PERC。

字段944,它指定了PERC中“权利”子记录904的数目

确认标记948

图26a,26b所示的PERC808还包含私有体密钥,它们存放在私有体密钥块950中。

该PERC808包含了一个控制集合0子记录914(0),该子记录914(0)可通用于PERC中的所有权利906。该控制集合0子记录914(0)可以含有下列字段:

长度字段952,它规定了该控制集合0记录的长度

字段954,它规定了该控制集合中必要方法记录920的数目

访问标记字段956,它规定了一个访问标记以控制对该记录的修改,以及

一个或多个必要方法记录920

每个必要方法记录920又可含有:

长度字段958,它规定了该必要方法记录的长度

字段960,它规定了该必要方法记录920中备选方法记录的数目

访问标记字段962,它规定了一个访问标记以控制对该记录的修改,以及

一个或多个备选方法记录924

每个备选方法子记录924可包含:

长度字段964,它规定了该备选方法记录的长度

长度字段966,它规定了对应于该备选方法记录的数据区(如果有的话)长度

方法ID字段968,它指定了一个方法ID(如类型/所有者/类别/实例)

关联标记字段970,指定了一个关联标记用来与字段968指定的方法建立关联。

访问标记字段972,它规定了一个访问标记以控制对本记录的修改

方法特有的属性字段974

数据区976

用于校验目的的校验值字段978

在本例中,PERC808还包含一个或多个权利记录906,以及一个全局校验值字段980。图23b是图16a所示的权利记录906的一个例子。在这个特定例子中,权利记录906a包含一个权利记录头908,该头908又包含:

长度字段982,它规定了权利密钥块912的长度

长度字段984,它规定了权利记录908的长度

过期日期/时间字段986,它规定了权利记录的过期日期和/或时间

权利ID字段988,它标识了一个权利

数目字段990,它规定了权利字段906中控制集合914的数目

访问标记字段992,它规定了一个访问标记以控制对本权利记录的修改

本例中的权利记录906含有:

本权利的控制集合(CSR)910

权利密钥块912

一个或多个控制集合914,以及

校验值字段994

对象注册

再请参看图16,安全数据库610提供了一些数据结构用以支持对“已注册”对象的“查找”机制。这种“查找”机制允许电子设备600以安全的方式将VDE对象300与PERC808、方法1000以及加载模块1100联系起来。在较佳实施例中,这种查找机制部分地建立在对象注册450所含的数据结构之上。

在一个实施例中,对象注册450包含下列的表格:

对象注册表460

主题表462

用户权利表(“URT”)464

管理事件日志442

发送表444,以及

接收表446

在该示意性实施例中,对象注册460是某些信息的一个数据库,这些信息涉及注册的VDE对象300以及与这些对象有关的用户及用户组的权利。当电子设备600收到一个含有新预算或加载模块1100的对象300时,该电子设备通常需要将该对象所含的信息添加到安全数据库610中。而且,当任何新VDE对象300到达电子设备600时,该电子设备都要在对象注册450中“注册”该对象,以便允许该对象被访问。在较佳实施例中,每当电子设备600“注册”一个新对象时,将创建该对象的清单和记录。该对象的信息可以从其加密的私有头、对象体、以及加密名字服务记录中获取。该信息可以由SPE503从对象中提取或导出,然后以加密记录的形式存放在安全数据库610中。

在一个实施例中,对象注册表460包含对保存在对象存储器(仓库)728中的对象进行标识的信息。在本实施例中,这些保存在对象存储器728中的VDE对象300并非一定是安全数据库610一部分,这是因为,对象通常带有其自身的安全性(这些安全性是必要的并且是所要求的),并且是使用与维护安全数据库所用的机制不同的机制维护的。虽然VDE对象300可能不一定严格地作为安全数据库610的一部分,但对象注册450(具体说就是对象注册表460)引用了对象,从而是通过引用的形式把对象包含进了安全数据库中。在较佳实施例中,任何VDE对象300,在其被正确注册并在对象注册表460中保存了一条相应注册记录之前,是禁止电子设备600使用的。

在本实施例中,主题表462在对象注册表460引用的对象与电子设备600的用户(或用户组)之间建立对应关系。主题表462提供了访问控制表(“ACL”)的许多属性。这一点将在后面进行介绍。

在本实施例中,主题表462已经给出了特定用户或用户组与对象的组合信息,而用户权利表464则提供了特定于上述组合的许可以及其它信息。在本实施例中,许可记录808(图16示意了许可记录808,许可记录808存放在安全数据库610中)可以为特定的对象-用户组合提供全面的许可控制。根据(举例来说)用户在对象注册交互作用中所做的选择,用户权利表464中的记录可以指定上述许可控制体系中的一个子集。

管理事件日志442、发送表444、以及接收表446提供有关VDE对象300接收和交付的信息。这些数据结构跟踪由电子设备600发送或接收的管理对象,包括(举例来说)以概要和详情的形式的管理对象的目的和行为。简而言之,发送表444为电子设备600发送(或计划发送)到其它VDE参与者的每个管理对象保存一个发送记录。本实施例中的接收表446为电子设备600接收(或计划接收)的各管理对象保存一个接收记录。管理事件日志442为每个已发送的和每个已接收的管理对象保存一个事件日志,并可包含每个特殊事件的有关详情,该特殊事件由接收到的管理对象指定。

管理对象的发送和接收

图27示意了发送表444的详细格式示例。在较佳实施例中,发送表444包含头444A以及任意数目的发送记录445。头444A含有用来维护发送表444的信息。发送表444中的每个发送记录445都提供了与某个发送事件有关的详细情况(即,或者是一个已完成发送,或者是一个计划中的发送,前者表示已向另一个VDE参与者发送一个管理对象,后者表示正计划发送该管理对象)。

在安全数据库610的实施例中,发送表头444A可以包含一个站点记录号444A(1)、用户(或组)ID444A(2)、一系列引用字段444A(3)-444A(6)、确认标记444A(7)-444A(8)、以及校验值字段444A(9)。字段444A(3)-444A(6)引用了特定的近期ID,而这些ID指定发送表444中的发送记录445的表。例如,字段444A(3)可引用一个“最先”发送记录,该记录表示对某个管理对象已完成的向外发送,而字段444A(4)可引用一个“最末”发送记录,该记录表示对某个管理对象已完成的向外发送。在本例中,如果需要的话,“最先”和“最末”可以指发送的时间或次序。类似地,字段444A(5)和444A(6)可以指计划向外发送的“最先”和“最末”发送记录。确认标记444A(7)用来确认来自名字服务记录表452中某个名字服务记录,该名字服务记录与本头中的用户(组)标识相关联。这种方式允许从发送记录反过来访问名字服务记录,而名字服务记录则对发送记录所述对象的发送者进行了说明。确认标记444A(8)向由一个或多个指针444A(3)-444A(6)所引用的“最先”向外发送记录提供确认。可以提供其它确认标记,以便对计划发送记录进行确认。

所示的发送记录444(1)含有一个站点记录号445(1)(A)。它还包含最先和最末计划发送时间/日期445(1)(B),445(1)(C),最先和最末计划发送时间/日期445(1)(B),445(1)(C)提供了时间窗口以供调度管理对象发送之用。字段445(1)(D)可指定一个管理对象发送完成的实际日期/时间。字段445(1)(E)提供了已发送或准备发送的管理对象的ID,它标明了对象存储器728中的哪个管理对象涉及了上述特定发送记录。引用字段445(1)(G)引用了名字服务记录表452中的一个名字服务记录,它指定了已发送或准备发送的管理对象的实际接收者或预期接收者。名字服务记录表452中的上述信息可以(举例来说)提供足够的路由信息,以允许图12所示的向外的管理对象管理器754通知对象开关734将管理对象发送给预定的接收者。字段445(1)(H)可指定(例如使用一组位标志)管理对象发送的目的。字段445(1)(I)可以指定发送的状态。引用字段445(1)(J),445(1)(K)可以引用在一个链表中的“前一个”和“后一个”发送记录(在较佳实施例中,可有两个链表,一个用于已完成的发送记录,另一个用于计划发送记录)。字段445(1)(L)-445(1)(P)分别向下列记录提供确认标记:从头444A、向指针445(1)(F)指向的;管理事件日志442中的某个记录从头444A向字段445(1)(G)引用的某个名字服务记录;从字段445(1)(J)引用的前一个记录;以及对字段445(1)(K)引用的下一个记录。校验值字段445(1)(Q)可用来校验发送记录445。

图28示意了接收表446的一个可能的详细的格式示例。在一个实施例中,接收表446的结构与图27中发送表444的结构相似。于是,(举例来说)接收表446可含有一个头446a以及多个接收记录447,每个接收记录都包含有关管理对象接收或计划接收的详细情况。接收表446可包含两个链表,一个链表用于已完成的接收,另一个用于计划的接收。每个接收表记录447都引用了名字服务记录表452中的一个表项,它指定了一个管理对象发送者,并且每个接收表记录447都指向管理事件日志442中一个表项。接收记录470还可以包含与计划和/或已完成的接收有关的附加详情(如计划的或实际的接收日期/时间,接收目的以及接收状态),并且这些有关详情的字段每一个都可以包含确认标记,用来确认对其它安全数据库记录的引用。

图29示意了管理事件日志442的详细格式示例。在较佳实施例中,管理事件日志442对每一个已发送的管理对象和已接收的管理对象都保存一个事件日志记录442(1)...442(N)。每个管理事件日志记录可包括头443a和1个到N个的子记录442(J)(1)...442(J)(N)。在较佳实施例中,头443a可包含站点记录号字段443A(1)、记录长度字段443A(2)、管理对象标识字段443A(3)、指定了事件数的字段443A(4)、对发送表444或接收表446发来的引用进行确认的确认标记443A(5)、以及校验和字段443A(6)。由字段443A(4)指定的事件数目对应于管理事件日志记录442(J)中的子记录442(J)(1)...442(J)(N)的数目。每个上述子记录都指定了与特定“事件”有关的信息,该特定“事件”受到字段443(A)(3)指定的管理对象的影响,或者与之相对应。管理事件被保存在管理事件日志442中,以支持对系统已经发送或接收的管理对象进行重建(及构成或处理的准备)。这样,当某个管理对象丢失后就可以在以后对之重建。

每个子记录可包含:子记录长度字段442(J)(1)(a)、数据区长度字段442(J)(1)(b)、事件ID字段442(J)(1)(c)、记录类型字段442(J)(1)(d)、记录ID字段442(J)(1)(e)、数据区字段442(J)(1)(f)、以及校验值字段442(J)(1)(g)。数据区字段442(J)(1)(f)可以用来表明安全数据库610中哪些信息被事件标识字段442(J)(1)(c)所指定的事件所影响,或者添加哪些新的安全数据库条目,它还可以用来指定事件的输出。

对应于每个存放在对象存储器(仓库)728中的VDE对象300,较佳实施例中的对象注册表460都包含一个相应记录。当一个新对象(如通过重定向器684)到达或被检测到的时候,较佳实施例电子设备600将“注册”该对象,其步骤是:创建一个相应的对象注册记录并将之保存在对象注册表460中。在较佳实施例中,对象注册表存贮的信息具有用户无关性,这些信息只依赖于在给定的VDE电子设备600上注册的对象。注册活动通常由与对象相关的一个REGISTER(注册)方法进行管理。

在本例中,主题表462在用户(或用户组)与注册的对象之间建立关联。本例中的主题表462执行了访问控制表的功能,即规定哪些用户有权访问哪些已注册VDE对象300。

如上所述,安全数据库610对每个已注册的VDE对象300均至少保存一个PERC808。PERC808指定了一组权利,可以行使这些权利以便使用或访问对应的VDE对象300。较佳实施例允许用户“定制”他们的访问权,即允许用户从相应PERC808授权的权利中选择一个子集,并且/或者允许用户指定某些参数或选择,而这些参数或选择则对应于PERC808许可的某些或全部权利。在较佳实施例中,用户的选择存放用户权利表464中。用户权利表(URT)464包含URT记录,每个URT记录都对应于一个用户(或用户组)。每个URT记录规定了用户对于相应VDE对象300作出的某些选择。这些用户选择可以独立地或者与PERC808一起引用一个或多个方法1000,从而可以按照由URT记录中的选择所指定的方式来履行PERC808赋予用户的权利。

图30示意了上述各种表格是如何相互作用而提供安全数据库查找机制的。图30示意了对象注册表460,对象注册表460含有大量的对象注册记录460(1),460(2),...这些记录对应于存放在对象仓库728的VDE对象300(1),300(2)。图31示意了较佳实施例中对象注册表460的格式示例。对象注册记录460(N)可含有下列的字段:

站点记录号字段466(1)

对象类型字段466(2)

制作者ID字段466(3)

对象ID字段466(4)

引用字段466(5),它引用了主题表462

属性字段466(6)

最小注册时间间隔字段466(7)

一个对应于主题表字段的标记466(8),以及

校验值字段466(9)

站点记录号字段466(1)指定了该对象注册记录460(N)的站点记录号。在安全数据库610的一个实施例中,存放在该安全数据库中每个记录都由一个站点记录号来标记。可以将该站点记录号用在数据库查找进程之中,以便跟踪安全数据库610中的所有记录。

对象类型字段466(2)可以指定以注册对象300的类型(如信息内容对象、管理对象,等)。

本例中的制作者ID字段466(3)可以标识相应VDE对象300的制作者。

本例中的对象ID字段466(4)唯一地标识了已注册的VDE对象300。

在较佳实施例中,引用字段466(5)标识了主题表462中的一个记录。通过使用该引用,电子设备600可以确定在主题表462中列出的、有权访问相应VDE对象300的所有用户(或用户组)。标记466(8)用来确认使用字段466(5)访问的主题表记录是对象注册记录460(N)所要使用的正确记录。

属性字段466(6)可以保存与VDE对象300相对应的一个或多个属性或属性标志。

最小注册时间间隔字段466(7)可以指定最终用户能够以什么样的频率以VDE对象300用户的身份向票据交换所服务、VDE管理员或VDE提供者重新注册。禁止频繁进行重新注册的一个理由是阻止用户重新使用移动对象的预算额,直到一段指定的时间过去为止。当对象所有者不希望重新注册的时候,最小注册时间间隔字段466(7)将保留为未用。

校验值字段466(9)包含有确认信息,用来检测对记录460(N)的破坏或修改,从而保证该记录的安全性和完整性。在较佳实施例中,记录460(N)中的多个或全部字段(以及安全数据库610中的其它记录)可以被完全地或部分地加密并且/或者含有那些冗余地保存在每个记录中的字段(这些字段一次是以未加密形式保存,一次是以加密形式保存)。同一字段的加密和解密版本将在不同的时间被交叉检查,以探测破坏或修改记录的行为。

如上所述,引用字段466(5)引用了主题表462,具体地说,引用字段466(5)引用了主题表中的一个或多个用户/对象记录462(M)。图32示意了本例中用户/对象记录462(M)的格式示例。记录462(M)可含有头468和主题记录部分470。头468可包含一个字段468(6),该字段引用了存放在主题登记表462中的“第一个”主题记录470。上述“第一”主题记录470(1)又可包含一个引用字段470(5),该引用字段470(5)引用了存放在主题登记表462中的“下一个”主题记录470(2),依次类推。该“链表”结构使单个对象注册记录460(N)能够对1个到N个的主题记录470进行引用。

本例中的主题注册表头信息468包含一个站点记录号字段468(1),该站点记录号字段468(1)唯一地标识出作为安全数据库610中一个记录的上述头。头468还可含有一个制作者ID字段468(2),该字段拷贝了对象注册表制作者ID字段466(3)中的内容。同样,主题注册表头468可含有一个对象ID字段468(5),该字段则拷贝了对象注册表460中的对象ID字段466(4)。上述字段468(2),468(5)使用户/对象注册记录明确地与特定VDE对象300相关联。

头信息还可包含一个标记468(7)以支持确认。在一个实施例中,用户/对象注册头468中的标记468(7)可以等同于指向该用户/对象注册头的对象注册记录460(N)所含的标记466(8)。上述标记468(7)和466(8)之间的对应关系可以用来确认对象注册记录和用户/对象注册头是相匹配的。

用户/对象注册头468还含有一个原始分发者标识字段468(3)和一个上次分发者标识字段468(4)。前者标识了对应于VDE对象300的原始分发者,后者表明了在该对象控制链中位于电子设备600收到该对象之前的上次分发者。

头468还包含一个标记468(8),该标记可以用来在该头和字段468(6)引用的“第一”主题记录470(1)之间进行确认。

主题记录470(1)含有站点记录号字段472(1)、用户(或用户组)标号字段472(2)、用户(或用户组)属性字段472(3)、引用用户权利表464的字段472(4)、引用“下一个”主题记录472(2)(如果该记录存在的话)的字段472(5)、标记472(6)—该标记用来与头标记468(8)确认、标记472(7)—该标记用来与字段472(4)引用的用户权利表464中对应标记进行确认、标记472(9)—该标记用来与字段472(5)引用的“下一个”主题记录中对应标记进行确认、以及校验值字段472(9)。

用户(或用户组)标识字段472(2)标识了一个用户或用户组,该用户或用户组有权使用由字段468(5)标识的对象。因而,字段468(5)和472(2)共同组成了由主题表462提供的访问控制表的核心。用户属性字段472(3)可以指定某些属性,这些属性涉及由字段472(2)指定的用户或用户组对对象300进行的使用/访问。通过向“链表”结构中添加主题记录470,可以将任意数目的不同用户或用户组添加到该访问控制表中(其中每个用户或用户组带有一组不同的属性472(3))。

主题记录引用字段472(4)引用了用户权利表464中的一个或多个记录。图33示意了用户权利表记录464(k)的优选格式示例。用户权利记录464(k)可包含URT头474、记录权利头476、以及用户选择记录478的一个集合。URT头474可含有站点记录号字段、字段472(2)—该字段指定了URT记录464(k)中权利记录的数目、字段474(3)—该字段引用了一个“第一个”权利记录(即指向了权利记录头476)、标记474(4)—该标记用来确认来自主题表462的查找、标记474(5)—该标记用来确认对权利记录头476的查找、以及一个校验值字段474(6)。

较佳实施例中的权利记录头476可包含站点记录号字段476(1)、权利标识字段476(2)、引用“下一个”权利记录476(2)的字段476(3)、引用用户选择记录478(1)第一集合的字段476(4)、标记476(5)—该标记用来与URT头标记474(5)进行确认、标记476(6)—该标记用来与用户选择记录标记478(6)进行确认、以及一个校验值字段476(7)。权利标识字段476(2)可(举例来说)用来指定权利记录476传送的权利的类型(如使用权、分发权、读的权利、审核权等等)。

由权利记录头476引用的一个或多个用户选择记录478表明了与访问和/或使用相应VDE对象300相对应的用户选择。通常,对于授予用户或用户组的每项权利,都有一个权利记录476与之相对应。这些权利控制上述用户或用户组对VDE对象300的使用。例如,用户可具有“访问”权、“提取”权,但没有“拷贝”权。其它由权利记录476控制的权利(在较佳实施例中,利用REGISTER(注册)方法从PERC808中得到这些权利)包括分发权、审核权、以及定价权。当一个对象300向电子设备600注册并且向一个特定的用户和用户组注册以后,用户便可以在PERC808中的各种使用方法中作出选择。例如,一个VDE对象300可带有两个必要的计量方法:一个用于计帐目的,一个用来累加数据,这些数据与用户使用的宣传材料有关。可给予用户各种计量/计帐方法的选择,例如:用VISA或MasterCard付帐、从两种计帐方法中任选其一—一种是基于从信息数据库中检索出的材料数量进行计帐,一种是基于使用时间进行计帐、或者上述两种计帐方法都选用。如果用户愿意将他检索的信息内容的某些细节提供给一个第三方时(例如,为人口统计目的),他可能会在时间和/或数量计帐方面得到某些折扣。在对象注册的时候和/或用户为该对象而注册的时候,将要求用户为得到的第一个计量选择一个特定的计量方法作为“生效计量方法”。VDE管理员可能会为用户缩小可用选择的范围,从PERC808规定的原始选择集合中列出一个子集让用户选择。上述用户选择和配置的设置存放在用户选择记录480(1),480(2),480(N)中。用户选择记录不必明确地出现在用户权利表464中,相反,用户选择记录480可能(例如利用站点引用号)引用特定的VDE方法和/或用来参数化这些方法的信息。用户选择记录480对方法1000的上述引用需要经过存放在用户选择记录中的确认标记确认。因而,在较佳实施例中,用户选择记录480可选择一个或多个方法以用在相应VDE对象300中(如图27所示)。上述用户选择记录480本身可完全定义方法1000以及其它信息,这些信息是在为实现上述方法而创建适当部件组690中所用到的。作为另一种选择,用来引用用户权利记录464的用户/对象记录462也可以引用对应于VDE对象300的PERC808,以便提供创建部件组690和/或访问VDE对象300所需的附加信息。例如,可以访问PERC808以便获取某些MDE1202,这些MDE1202与所选方法、私有体和/或用于加密和/或解密对象的信息内容所用的权利密钥是相关的;也可以使用PERC808以提供特定校验功能,该校验功能用来确保用户权利记录传送的权利都是体现在PERC中的当前授权所允许的权利。

在本发明的一个实施例中,可以使用一个传统的数据库引擎(engine)来保存和组织安全数据库610,并且,前述的加密层可处于传统数据库结构“之上”。不过,如果上述传统数据库引擎无法组织安全数据库610中的记录同时也无法支持前面讨论的安全性措施时,那么电子设备600可以采用加密的方式维护单独的索引结构。这些单独的索引结构可以由SPE503来维护。本实施例将要求SPE503解密索引并且搜索解密的索引快,以寻找适当“站点记录ID”或其它指针。然后SPE503可请求传统数据库引擎以获取被指定的记录。如果不能对照记录表检验记录ID,SPE503可能需要索取数据文件本身,以便它检索到所需的记录。然后SPE503将执行适当的鉴别操作以保证该文件没有遭到破坏,并且返回的是正确的数据块。SPE503不能简单地将上述索引传给传统数据库引擎(除非该数据库引擎本身是安全的),这是因为这样会允许一个错误的记录替换所需的记录。

图34示意了如何使用上述的站点记录号来访问安全数据库610中各种数据结构。在本例中,安全数据库610还包含一个站点记录表482,该表保存了大量的站点记录号。在站点记录表482中保存的实际上是安全数据库610中所有记录的“主列表”。站点记录表482中保存的上述站点记录号允许对安全数据库610中任意记录进行访问。因而在站点记录表482中,某些站点记录可索引对象注册表460中的记录,站点记录表中其它站点记录号可索引用户/对象表462中的记录,站点记录表中又其它的站点记录号可访问URT464中的记录,站点记录表中又有其它站点记录号可访问PERC808。另外,每个方法核心1000’也都可包含一个站点记录号,以便站点记录表482可以访问它们。

图34A示意了站点记录表482中站点记录482(j)的示例。站点记录482(j)可包含:字段484(1)—它表明了记录的类型;字段484(2)—它表明了该记录的所有者或创建者;“类别”字段484(3)和“实例”字段484(4)—它们提供的信息与站点记录482(j)指向的记录有关;特定描述符字段484(5)—它指示与本记录相关的特定描述符(如对象ID);本站点记录引用的表或其它数据结构的一个标识符484(6);在本数据结构内的引用和/或偏移484(7)—它表明本记录的起始位置;确认标记484(8)—它用来确认正在被查找的记录;以及校验值字段484(9)。字段484(6)和484(7)共同提供了一种机制,通过这种机制,由站点记录484(j)引用的记录实际上是物理地位于安全数据库610中。

安全数据库610的更新

图35示意了一个进程1150,该进程可以被票据交换所、VDE管理员或其它VDE参与者用来更新由某个最终用户电子设备600维护的安全数据库610。例如,为了响应最终用户的请求,图35所示的进程1150可用来收集安全数据库610中的“审核跟踪”记录,以及/或者提供新的预算和许可(如PERC808)。

通常,最终用户电子设备600可起动与某个票据交换所通信(处理框1152)。该通信(举例来说)可自动建立或响应用户发出命令建立。该通信可以建立在电子高速公路108之上,或使用其它通信网络,如LAN、WAN、双向电缆,或使用电子设备之间的其它移动媒体交换。交换管理信息的进程不一定发生在单个“在线”会话中,相反,该进程持续一段相当的时间,基于在相同的或不同的通信装置上的多次不同的单向和/或双向通信。不过,图35所示的进程1150是一个特定的例子,其中,最终用户电子设备600与其它VDE参与者(如某个票据交换所)通过电话线、网络、电子高速公路108等建立了双向、实时的交互式通信交换。

最终用户电子设备600通常与一个特定的VDE管理员或票据交换所联系。特定票据交换所的身份取决于用户希望访问或已经访问的VDE对象300。例如,假设用户已经访问了一个特定的VDE对象300,并且他已经用光了继续访问所需的预算。用户可以发出一个请求,该请求使他的电子设备600自动与对上述特定对象负有责任的VDE管理员、分发者和/或财务票据交换所接触。在本例中,需要联系的合适VDE参与者的身份(举例来说)由UDE1200、MDE1202、对象注册表460和/或主题表462中的信息来提供。电子设备600可能需要联系多个VDE参与者(如向某个参与者分发审核记录,从另一个参与者处获取另外的预算或其它许可,等等)。在某个例子中,联系1152可能要依据图27中的发送表444和图29中的管理事件日志442进行安排。

一旦建立了联系以后,最终用户电子设备与票据交换所通常相互鉴别并同意使用某个会话密钥用来进行实时信息交换(处理框1154)。一旦建立好安全的连接以后,最终用户电子设备可(如根据发送表444)确定它是否有某些管理对象包含需要发送给该票据交换所的审核信息(判定框1156)。与多个VDE对象300相关的审核信息可放在同一管理对象中传送,或者不同管理对象可包含不同对象的审核信息。假设最终用户电子设备至少含有一个需要传送给该特定票据交换所的上述管理对象(判定框1156出口“是”),该电子设备通过已经建立好的安全实时通信将上述管理对象发送给票据交换所(处理框1158)。在一个实施例中,单个管理对象可发送带有多个VDE对象审核信息的管理对象,在该管理对象中,每个不同对象的审核信息处理一个单独“事件”。

票据交换所可接收该管理对象,并对其内容进行处理以确定该内容是否是“有效的”和“合法的”。例如,票据交换所可分析其中所含的审核信息以判断该审核信息是否表明了对相应VDE对象300发生过不合理使用。作为分析的结果,该票据交换所将产生一个或多个响应的管理对象,然后将这些对象发送给最终用户电子设备600(处理框1160)。最终用户电子设备600可执行某些事件处理,包括根据收到的管理对象对其安全数据库610和/或SPU500的内容进行更新(处理框1162)。例如,如果票据交换所收到的审核信息是合法的,那么票据交换所将可向最终用户电子设备600发送一个管理对象,要求电子设备删除和/或压缩已经传送的审核信息。作为另一种选择或作为一种补充方式,票据交换所在本阶段可要求从最终用户电子设备600那里得到更多的信息(例如,要求重新传送在起始传送过程中受到破坏的某些信息,要求传送前面没有传送的附加信息,等等)。如果票据交换所根据接收到的审核信息检测出不合理使用行为,它可传送某个特定管理对象,该管理对象将取消或修改最终用户继续访问相关VDE对象300的权利。

作为另一种选择或作为一种补充方式,票据交换所可向最终用户电子设备600发送一个管理对象,该管理对象命令电子设备向用户显示一条或多条消息。这些消息可将某些情况通知给用户,并且/或者要求用户提供附加信息。例如,该消息可能要求最终用户直接通过电话与票据交换所联系,或者要求最终用户解决某个指出的问题、输入一个PIN,或者通知用户与一个新的服务公司联系以便重新注册相关的VDE对象。作为另一种选择,上述消息可告诉用户:他需要获取该对象的新使用许可,并且可将花费、状态以及其它相关信息通知给用户。

在同一或不同的通信交换中,同一或不同的票据交换所可以处理最终用户对有关VDE对象300附加预算和/或许可的请求。例如,最终用户电子设备600(例如,为响应用户输入的、希望访问特定VDE对象300的请求)可向票据交换所发送一个管理对象,请求所需的预算和/或其它许可(处理框1164)。如上所述,这种请求可以采用一个或多个管理对象的形式发送,例如,采用单个管理对象的形式,该管理对象带有多个“事件”,这些事件分别对应于同一或不同VDE对象300的多个所需预算和/或许可。票据交换所收到该请求以后可检查该最终用户的信用、财务记录、商业协议和/或审核历史,以确定是否应给予所请求的预算和/或许可。根据这些分析,票据交换所可能发送一个或多个响应的管理对象,使最终用户电子设备600更新其安全数据库以作为响应(处理框1166、1168)。该更新过程可包括(举例来说)将一个过期的PERC808替换成一个新的,修改某个PERC808以便提供更多的(或更少的)权利,等等。可以在相同或不同通信会话期间多次重复步骤1164-1168,以便进一步修改最终用户的安全数据库610。

图36示意了如何将新记录或新元素插入到安全数据库610中。图35所示的加载进程1070在准备写入每个数据元素或项的时候首先对之进行检查,以确保这些数据元素没有被窜改、替代或替换。在如图35所示的进程1070中,第一步是查看当前用户或电子设备600是否被授权将该项插入到安全数据库610中(处理框1072)。在较佳实施例中,这个检测可以包括将相应方法1000或其它数据结构如UDE1200等装入SPE503(或者使用已经装入的上述方法或数据结构),然后SPE503判明用户是否得到了改动安全数据库610的授权(处理框1074)。如果用户得到批准可以改动安全数据库610,那么SPE503可以检查准备添加到安全数据库中的元素的完整性,其方法是首先将该数据块解密(处理框1076),然后确定该数据块受否已被毁坏或破坏(处理框1078)。对该数据块检查的目的是要确保它是用预定的管理文件密钥进行正确解密的,同时还要确认其校验值。另外,可以比较公开和私有头ID标记(如果这些标记存在的话),以确保送来的是正确的元素而没有经过替换,并且将唯一的元素标记ID与预定的元素标识相比较。如果上述的任一检查出现失败,那么将自动拒绝该元素、对之进行纠错处理、等等。假设SPE503发现该元素具有完整性,那么它将(举例来说)使用一个新密钥(参看下面针对图37的讨论)重新加密该信息(处理框1080)。在同一步骤中,最好提供一个适当的标记,以便使该信息经过加密后由一个带有适当标记的安全防护层中所保护(处理框1082)。SPE503可以保存上述适当标记信息,以便在将来再从安全数据库610中读出上述项时对之进行确认或鉴别(处理框1084)。然后,已经处于安全防护层中的安全元素便可以被存入安全数据库610中。

图37示意了另一个进程1050。在较佳实施例中,该进程用来安全地访问存放在安全数据库610中的项。在较佳实施例中,SPE503首先访问安全数据库610记录并从中读入项。SPE503从安全数据库610中读取加密形式的上述信息,然后将之“解包”(处理框1052),方法是利用内部存放在SPU500受保护的存贮器中的访问密钥将之进行解密(处理框1053)。在较佳实施例中,上述“解包”过程1052涉及将信息块送到加密/解密机522,同时还送去一个管理文件密钥和其它解密所需的信息。解密机522可返回“明文”信息。然后SPE503将检查该明文信息,以确保该对象的安全性没有受到损害,并且该对象是所需的正确对象(处理框1054)。然后SPE503可检查所有的关联和访问标记,以确保读入的元素没有被替换,并防备其它安全隐患(处理框1054)。上述“检查”进程还有一部分要涉及将从安全数据库610获取的标记与保存在SPU500或受保护的存贮器中的标记进行对比检查(处理框1056)。上述保存在SPU500中的标记可以从SPU的安全存贮器中访问(处理框1056),可以用这些标记进一步检查目前已解包的对象。假设上述“检查”进程1054没有检查出任何异常现象(处理框1052还表明上述对象没有遭到毁坏或破坏),SPE503便可访问或使用该项(处理框1058)。一旦使用完该项,如果对该项做过改动的话,SPE503可能需要将它存放回安全数据库610。如果对该项做过改动,SPE503将把该项按照它经过改动以后的格式送至加密/解密机522以便进行加密(处理框1060),同时要向加密/解密机522提供某些必要信息(例如同一或不同的管理文件密钥和数据)以便正确地加密上述对象。在该阶段中,可以利用一个唯一的、新的标记和/或加密密钥来唯一地标记和/或加密该项的安全防护层(处理框1062,同时参看下面对图37所做的详细介绍)。SPE503可在SPU500的受保护存贮器中保留上述密钥和/或标记的副本(处理框1064),以便将来再从安全数据库610中读出上述项时,可以对之进行解密和确认。

在较佳实施例中,用来解密安全数据库610记录的密钥单独地存放在SPU500的受保护存贮器中。每个离开SPU500的被更新索引和记录都将被打上时间戳,然后利用SPE503确定的某个唯一密钥进行加密。举例来说,可以在安全数据库610记录的首部以明文方式放置一个密钥标识码,以便SPE503在下次检索该记录时能够确定采用哪一个密钥。SPE503可以在其内部的一个列表中维护记录或索引的站点标识、与记录或索引相关的密钥标识码、以及实际密钥。在某些时刻,上述内部列表可能被填满。此时,SPE503可以调用一个维护例程,该例程将安全数据库610中包含改动信息的项重新加密。该数据结构中包含改动信息的某些或全部条目将可被读入,经过解密,然后再用同一密钥加密。此后可将同一密钥标识码发布到这些项中,并将它们从SPE503中写回到安全数据库610。SPE503于是可清除含有项ID和相应密钥标识码的内部列表。然后它可以重新开始向每个新的或改动的项分配一个不同的密钥和一个新的密钥标识码。通过上述进程,SPE503能够保护安全数据库610中的数据结构(包括索引),避免老的项被替换以及当前项的索引被替换。该进程还使SPE503能够对照预定标识的加密列表对接收到的条目的ID进行确认。

图38中的流程图详细地示意了上述进程。每当一个安全数据库610项被更新或修改,可以为该被更新项生成一个新的加密密钥,并使用新加密密钥进行加密,这样可以增加安全性,同时防止不合理地使用安全数据库610记录的后备拷贝。每个被更新安全数据库610记录的新密钥可以存放在SPU500的安全存贮器中,带有该密钥所适用的安全数据库记录的一个标志。

对于SPE503准备保存到安全数据库610中的每个新项,SPE503都要生成一个新的加密/解密密钥(处理框1086)。在将上述项存放到安全数据库之前,SPE503要首先用该新密钥对上述记录进行加密(处理框1088)。SPE503要确保保留上述密钥以便将来可以读入和解密上述记录。在较佳实施例中,这些解密密钥存放在受保护的非易失性存贮器(如NVRAM534b)中。由于这种受保护存贮器容量较小,可能没有足够空间来容纳一个新密钥。在较佳实施例中,上述情况由判定框1090来检查。如果没有足够空间来容纳一个新密钥(或出现其它情况,如存放在该存贮器中的密钥的个数超过了预定的数目,计时器到时,等等),那么为解决该问题,较佳实施例将使用同一新密钥对安全数据库610中的其它记录进行重新加密,以便减少(或改变)投入使用的加密/解密密钥。于是,可能要从安全数据库610中读入一个或多个安全数据库项,对它们进行解密,解密密钥用的是上次保存它们时对它们加密所用的老密钥。在较佳实施例中,首先选出一个或多个“老密钥”,然后将所有使用该老密钥加密的安全数据库项读入并解密。此时,便可以将这些记录重新加密(处理框1094),使用的密钥是在处理框1086为新记录生成的新密钥。现在,这些用来加密其它记录的老密钥可以从SPU安全存储器中删除(处理框1096),而新密钥则可以替换其位置上(处理框1097)。只有在SPE503确认安全数据库610中使用上述老密钥加密的所有记录已经被处理框1092读入并且由处理框1094使用新密钥重新加密之后,处理框1096才能够从安全存贮器中删除上述老密钥。现在,所有使用新密钥加密(或重新加密)的记录可以被保存到安全数据库610中(处理框1098)。如果判定框1090发现SPU500的受保护存贮器中还有空间存放新密钥,那么处理框1092、1094、1096的操作就不再需要,相反SPE503只是简单地将新密钥保存到受保护存贮器中(处理框1097),并且将新加密的记录存储到安全数据库610中(处理框1098)。

通过将安全数据库610记录划分成一个个“区段”可以进一步提高安全数据库610文件的安全性。可以使用不同的加密/解密密钥来保护不同的“区段”。这种措施可以用来限制安全数据库610使用单个密钥加密的信息的数量。另一种提高安全数据库610安全性的技术是用不同的密钥加密相同记录的不同部分,这样,为解密这样的记录就必须使用一个以上的密钥。

安全数据库610的备份

较佳实施例中的安全数据库610要周期地或按其它时间间隔进行备份,以保护安全数据库保存的信息。对许多VDE参与者来说,安全数据库中的信息可能具有重大价值。对安全数据库610的备份不能给用户带来太大的不便,也不能破坏任何安全性。

可以在多种时刻检查是否需要对安全数据库610进行备份,例如:在电子设备600加电时、初始启动SPE503时、在周期性的时间间隔、以及由SPE503维护的“审核累计”值或其它概要服务信息超过了用户设置的或其它的阈值时。上述检查也可由某些准则所触发,这些准则可以由一个或多个信息内容发布者和/或分发者和/或票据交换所服务提供者和/或用户来创建。可以在适当时刻提示用户做备份,例如当用户没有做备份时,或者在某个特定时间,或者经过一定时间,或者超过一定的使用量之后。也可以自动进行备份而无需用户的干预。

参看图8,可以用备份存贮设备668和存贮介质670(如磁带)来存放备份信息。当然,任何非易失性的介质(如一个或多个软磁盘、可写光盘、硬盘等等)也都可用来做备份存贮设备668。

至少有两种备份安全数据库610的方案。第一种方案是“特定于站点的”,它使用SPU500的安全性来支持备份信息的恢复。这种方法适用于安全数据库610由于某些原因受到破坏的情况,这些可能的原因有:二级存贮设备652故障,用户不留心对文件造成的破坏,或者其它可能对某些或全部安全数据库610造成破坏或毁坏的情况。上述第一种方案,即特定于站点的备份方案基于了这样一种假设,即:SPU500还能够正确运行,并可用来恢复备份信息。

第二种备份方案假设用户的SPU500不能继续工作并且需要替换或已经被替换。这种方案使一个经授权的VDE管理员或其他经授权的VDE参与者能够访问所存储的备份信息,以防关键数据丢失,以及/或者帮助用户从错误中恢复。

在图39所示的例子中,上述两种方案均由ROS602执行的一些程序控制步骤所支持。图39示意了一个备份例程1250,该备份例程1250由电子设备600执行以便将安全数据库610(以及其它信息)备份到备份存贮设备668中。如前所述,一旦备份过程开始,备份例程1250将产生一个或多个备份密钥(处理框1252)。之后备份例程1250读入所有的安全数据库项,将它们进行解密(处理框1254),此时使用的解密密钥是向安全数据库610存放这些项之前对之加密所用的原始密钥。由于对于安全数据库610实例中的上述信息来说SPU500通常是存放用来解密该信息的密钥的唯一站的地方,同时也由于备份例程1250所提供的第一种方案是假设SPU500已经完全失效或毁坏,备份例程1250因而执行上述读取和解密步骤1254,其目的是使以后从备份做恢复时不需要知道SPU中的那些密钥。相反,备份例程1250用新生成的一个备份密钥将每个安全数据库610项进行加密(处理框1256),并将加密后的项写入备份存贮设备668(处理框1258)。上述进程将重复进行,直到安全数据库610中的所有项都被读入、解密、用一个新生成的备份密钥进行加密、然后写回备份存贮设备668为止(由判定框1260对该条件进行检查)。

较佳实施例还通过SPE概要服务管理器560从SPU500的受保护存贮器中读出概要服务审核信息,并使用一个新生成的备份密钥对该信息进行加密,然后将该统计服务信息写入备份存贮设备668中(处理框1262)。

最后,备份例程1250把处理框1252产生的并由处理框1256、1262用来加密的备份密钥保存在备份存储器668上。为此,它采用两种安全方法以便支持上述两种恢复方案。备份例程1250可以用另一个或另一些密钥对上述备份密钥(以及其它某些信息,如备份的时间或者可以标识本次备份的其它适当信息)进行加密,这样只有SPU500才能解密(处理框1264)。然后这些经过加密的信息被写入备份存贮设备668(处理框1264)。举例来说,该步骤可以包含多次加密过程,并使用一个或多个公开密钥,这些公开密钥的对应私有密钥只有SPU500知道。作为另一种选择,可以不用公开密钥而是使用第二个备份密钥来做最后这次加密,这个第二备份密钥由SPU500产生而且只保存在该SPU中。处理框1264最好进行多次加密以便使备份的安全性更加稳固,这样,通过破解用来保护备份密钥的加密过程以期突破上述备份的安全保护就变得更加困难了。虽然处理框1262将加密后的概要服务信息保存到了备份中,但是最好不要将在备份中保存SPU设备私有密钥、共享密钥、SPU代码、以及其它内部安全性信息,以防这些信息即使在加密的格式下也被用户获知。

处理框1264保存的信息足以使执行(或至少部分执行)备份例程1250的同一SPU500能够恢复经过备份的信息。但是,这些信息只有对上述同一SPU有用,而对除此之外的其它设备来说是毫无价值的,这是因为只有上述的SPU才知道用来保护备份密钥的特定密钥。为了复盖其他可能的情况,其中上述SPU500无法进行恢复工作,考虑到这些情况,备份例程1250提供了附加的步骤(处理框1266),该步骤利用另外的一个或多个密钥来保护对备份密钥的保存,这些密钥可以被一个经授权的VDE管理员所读取。例如,处理框1266可以使用一个“下载授权密钥”对备份密钥进行加密,而该“下载授权密钥”则是在SPU500初始化的时候从一个VDE管理员那里接收到的。被加密的备份密钥同样被写入备份存贮设备668中(处理框1266)。该方法可以用来在SPU500失效的时候恢复备份文件。更加特别的是,对于某个VDE管理员来说,如果他知道由处理框1266使用的下载授权密钥(或其它密钥),那么他就可以恢复备份存贮设备668中的备份密钥,从而可以继续将经过备份的安全数据库610恢复到同一或不同的电子设备600中。

在较佳实施例中,只有从一个经过授权的VDE管理员那里得到备份授权之后,由备份例程1250保存在备份文件中的信息才能够被恢复。在大多数情况下,恢复过程只是简单地将安全数据库610进行恢复,同时对备份发生以后的任何使用进行记录。为了反映出上次备份以后的活动,该过程可要求用户与另外的提供者联系,以便向之传送审核和计帐数据,并且接收新的预算。为确定最近的使用行为,可把在SPU500中维护的当前概要服务信息与保存在备份中的概要服务信息做比较。

在SPU500失效的情况下,必须与一个授权的VDE管理员联系以便初始化更换SPU500,同时解密备份文件。这些进程考虑到了SPU失效的处理以及向新SPU的升级。在恢复时,备份文件用来将必须的信息恢复到用户的系统中。在升级时,备份文件可以用来确认升级进程。

在某些情况下,备份文件可以用来在电子设备600之间传递管理信息。但是,较佳实施例可禁止在具有适当授权的电子设备之间传输某些或者全部信息。可以将某些或者全部备份文件封装进管理对象中再进行传送,以供分析、传输等之用。

现在举一个更为详细的例子来说明需要恢复备份文件的一种情况。假设电子设备600出现硬盘故障或者其它事故从而导致部分或全部安全数据库610被抹掉或毁坏,不过假设SPU500还能运行。SPU500可含有恢复安全数据库610所需的全部信息(如密钥等)。但是,ROS602可禁止对安全数据库进行恢复,直到它从某个VDE管理员那里收到恢复授权为止。恢复授权信息可包含(举例来说)必须与SPE503预期的值相匹配的一个“秘密数值”。如果需要的话,VDE管理员可能只有在收到SPU500中的概要服务信息之后才提供上述恢复授权信息,其中,概要服务信息是放在供分析的管理对象中传输给该管理员的。在某些情况下,VDE管理员可要求将备份文件的(部分或完整)副本放在管理对象中传递过来。以检查是否用户有欺诈行为的迹象。一旦得到授权之后,恢复进程可能需要对恢复的预算记录等进行调整,以便反映出上次备份之后的行为,这一点前面已经讲过。

图40示意了一个由程序控制的“恢复”例程1268,该恢复例程1268由电子设备600执行以便根据图38例程提供的备份来恢复安全数据库610。该恢复过程使用的场合可以是(举例来说):电于设备600已经失效,但是与一个VDE管理员联系以后可以恢复或“重新初始化”该电子设备600时。由于较佳实施例不允许SPU500在没有得到VDE管理员授权的情况下就从备份中进行恢复,所以例程1268首先与一个VDE管理员建立安全的通信,而该VDE管理员能够对恢复过程进行授权(处理框1270)。一旦SPU500与VDE管理员互相鉴别对方之后(处理框1270的一部分),该VDE管理员可从SPU500内部的非易失性存贮器中提取“正在进行的工作”和概要值(处理框1272)。VDE管理员可用这些提取出的信息来帮助确定(举例来说)是否出现了侵犯安全性的问题。VDE管理员还允许出现故障的SPU500将其内容有效地“转储”给VDE管理员,从而使VDE管理员可以处理这些内容。SPU500可将这些信息加密、包装到一个或多个管理对象中,然后再传递给VDE管理员。然后VDE管理员可要求SPU500提供部分或全部当前安全数据库610的一份拷贝(处理框1274)。举例来说,该信息可由SPU500包装到一个或多个管理对象中,然后再发送给VDE管理员。收到该信息后,VDE管理员可以从备份卷中(即由图38处理框1262所保存的信息)读出概要服务审核信息以确定在备份的时候所保存的概要值和其它信息。通过察看由图38处理框1264所保存的信息,VDE管理员还可以确定备份时的时间和日期。

此时VDE管理员可以根据从处理框1272以及备份中获得的信息恢复SPU500中的概要值和其它信息(处理框1276)。例如,VDE管理员可能重新设置SPU内部概要值和计数器,使它们与上次备份的时候一致。VDE管理员可根据由处理框1272恢复的“正在进行的工作”、用上次备份以后经过的时间等对这些数值进行调整。其目的通常是尽量将SPU内部的值调整到如果未发生故障时它们现在应该具有的值。

然后VDE管理员可授权SPU500从备份文件中恢复安全数据库610(处理框1278)。该恢复进程将用备份中的记录替换安全数据库610的所有记录。在恢复进程中或恢复进程之后,根据需要VDE管理员可通过向SPU500发送命令来调整这些记录。

然后VDE管理员可根据恢复的数值来计算帐单(处理框1280),并执行其它操作以便从SPU故障时间中恢复(处理框1282)。其目的通常是计算用户的帐务并调整与失效电子设备600有关的其它VDE100值,这些值是上次备份之后到这次故障之前这段时间内所发生的使用。上述进程可包括下面的步骤:VDE管理员从其它VDE参与者那里得到在上述电子设备故障之前有关该电子设备使用的报告和其它信息,并将这些报告或信息与安全数据库备份相对比,以确定哪些使用或事件还没有经过记录。

在一个可选的实施例中,SPU500可带有充足的非易失性内部存贮器,从而可以存贮部分或全部安全数据库610。在该实施例中,这种附加的存贮器可以是一个或多个集成电路,这些集成电路置于在一个安全封装中,例如一个防破坏金属盒或者某种可以容纳多个集成电路部件的芯片封装,这些封装可以阻止和/或揭露破坏企图,并且/或者可以在受到破坏的时候,使部分或整个SPU500或相关关键密钥和/或其它控制信息处于失效状态。此时可以使用图38所示的同一备份例程1250把这类信息做备份,唯一的区别是处理框1254可从SPU内部存贮器中读取安全数据库条目,并且在用备份密钥将它们加密之前不再需要将它们解密。

事件驱动的VDE进程

如前所述,由较佳实施例权利操作系统(ROS)602提供或在其管理之下的进程可以是“事件驱动”的。这种“事件驱动”功能方便了集成性和可扩展性。

“事件”是在某一时刻发生的某件事。事件的某些例子包括:用户在键盘上敲了某个键、消息或对象300的到来、计时器的到期、以及其它进程发来的请求。

在较佳实施例中,ROS602为响应一个“事件”要执行一个进程。为响应一个“事件”,ROS602将动态地创建活跃进程和任务。例如,ROS602为响应一个事件可创建并执行一个或多个部件组690,以便执行一个或多个进程。一旦ROS602对事件的响应结束,上述活跃进程和任务可能就终止。这种为响应事件而动态创建(和终止)任务的能力提供了很大的灵活性,它同时还允许使用有限的执行资源(如SPU500所提供的那种执行资源)在不同的上下文中执行实际无限多的不同进程。

由于“事件”可以是任何类型的所发生情况,所以不同的事件就是无限多样的。因而,将事件分成不同类型必然是一种概括。基于这个出发点,就可将较佳实施例所提供/支持的事件分成下面两大类:

●用户引发的事件

●系统引发的事件

通常,“用户引发”的事件是归因于一个用户(或一个用户应用)的所发生情况。一个常见的“用户引发”事件是用户发出的、访问一个对象300或其它VDE保护信息的请求(如通过按下键盘上的键或透明地使用重定向器684发出这些请求)。

“系统引发”的事件通常不归因于一个用户。系统引发事件的例子包括:计时器到时—这表示需要将某些信息写回非易失性存贮器中;从其它电子设备600那里收到一条消息;以及由其它进程(该进程可以是为了响应一个系统引发的事件和/或一个用户引发的事件而被启动的)产生的一个服务调用。

为响应一个事件,由较佳实施例提供的ROS602通过指定进程并执行该进程以便处理该事件。在较佳实施例中,这些进程是基于方法1000的。由于事件的类型无限多样,较佳实施例于是支持无限多样的进程来处理事件。较佳实施例利用可独立交付的模块如方法核心1000’、加载模块1100、以及UDE1200之类的数据结构来动态地创建部件组690,从而支持了上述灵活性。尽管要划分较佳实施例支持/提供的无限多样的进程,必然要采用概括的方式,这些进程仍然可被划分为下面两种类型:

●与使用VDE保护信息有关的进程

●与VDE管理有关的进程

“使用”和“管理”进程

“使用”进程总是以种种形式与使用VDE保护信息有关。由较佳实施例提供的方法1000可以产生适当进程以创建和维护一条控制链,用该控制链来控制对VDE保护信息的使用。举一个“使用”进程的具体例子,通过执行某个“使用”进程可以允许某个用户打开一个VDE对象300并访问其内容。方法1000可以提供功能更为细化的、有关使用的进程,例如:(如果允许的话)向提出请求的用户发布信息内容,更新计量、预算、审核跟踪,等等。有关使用的进程通常由用户来启动,但是某些使用进程可能是由系统启动的。如果一个事件触发了一个与使用相关的VDE进程,那么该事件可称为“使用事件”。

一个“管理”进程对维护VDE100正常工作提供帮助。它提供的处理可以有助于支持交易管理基础结构,该结构可以维护VDE100安全有效地运行。管理进程可(举例来说)提供在某些方面与创建、修改和/或销毁VDE保护数据结构等操作有关的处理,上述操作可以建立和维护VDE的处理和控制链。例如,“管理”进程可以保存、更新、或销毁存放在VDE电子设备600安全数据库610中的信息。管理进程还可以提供通信服务,这些通信服务在不同的VDE电子设备600之间建立、维护以及支持安全的通信。触发了管理进程的事件可称为“管理事件”。

交互方法

某些VDE进程是成对出现的,这取决于它们一起交互作用的方式。一个VDE进程可以向另一个VDE进程“请求”处理服务。该请求处理服务的进程可以称为“请求进程”。由于该“请求”触发了进程对中另一个进程的处理,所以该“请求”形成了一个“事件”。响应该“请求事件”的VDE进程可以称为“响应进程”。“请求进程”和“响应进程”可称为“交互进程”。

“请求事件”可包含(举例来说)VDE节点电子设备600或某个进程为获取某些信息而发出的一条消息。对应的“响应进程”可(举例来说)通过发出在该消息中所请求的信息,作为对上述“请求事件”的响应。如果该响应触发了另一个VDE“响应进程”,那么该响应本身可以形成一个“请求事件”。例如,收到一条为响应早先产生的请求的消息可以触发一个“应答进程”。该“应答进程”是一种特殊类型的“响应进程”,对其的触发是为了响应来自另一“响应进程”的“应答”。在一个给定的VDE交易中,可以有任意数量的“请求”和“响应”进程对。

“请求进程”及其配对的“响应进程”可以在同一VDE电子设备600中执行,也可以分别在不同的VDE电子设备中执行。两个配对进程之间的通信可以是安全(VDE保护的)通信、“通道外”通信、或两者的组合。

图41a-41d是一些例子,它们示意了使用“交互方法”如何启动处理和控制链。处理和控制链的创建部分地利用了一个或多个“交互事件”对,这些“交互事件”对以请求-响应的方式相互协作。在较佳实施例中,可以在一个或多个“交互方法”中管理交互事件对。如上所述,一个“交互方法”是一个方法1000,该方法可以响应一个或多个“交互事件”。交互方法包含协作进程的两个组成部分,该进程可以在物理上和/或时间上相距较远的VDE节点中安全地运行。交互进程可以带有灵活定义的信息传送协议和信息内容结构。交互方法实际上可以基于运行于同一或不同VDE节点600上的同一或不同方法核心1000’。图41a所示的VDE节点600A和600B可以是同一个物理电子设备600,也可以是不同的电子设备。

图41a示意了一对交互事件的操作。在VDE节点600A中,方法1000a正在处理一个事件,该事件带有一个需要在VDE节点600B中处理的请求。响应该“请求”的方法1000a(例如,该方法基于某个部件组690,该部件组690包含相关的加载模块1100和数据)在图41a中标记为1450。进程1450创建了一个请求(1452)以及(可选地)某些信息或数据,该请求以及上述信息或数据将被发送到另外的VDE节点600B,以供与该交互事件相关的某个进程处理。可以采用本公开任何地方所说明的任意传送机制来传送上述请求或其它信息。

VDE节点600B收到的请求包括在该节点的一个响应事件。一旦收到该请求,VDE节点600B将执行由同一或不同方法1000b定义的“交互”进程1454,作为对该响应事件的响应。交互进程1454可以基于部件组690(如,一个或多个加载模块1100、数据,并且作为可选项,还可以包括VDE节点600B中的其它方法)。

图41b对图41a中的概念进行了扩展。图41b还包含从VDE节点600B发回VDE节点600A的一个响应。前面已经结合图41a讨论过,这一进程开始于VDE节点600B中响应进程1454收到上述请求事件和信息1452并对之进行处理。作为其处理的一部分,响应进程1454可与另一个请求进程(1468)相互协作,向起始VDE节点600A送回一个响应1469。由方法1000A产生的对应交互进程1470可响应该请求事件1469并对之进行处理。采用这种方式,两个或更多的VDE节点600A、600B可以相互协作,并在执行于这些节点之中的方法1000A、1000B之间传递可配置信息和请求。上述第一个和第二个请求-响应序列[(1450,1452,1454)和(1468,1469,1490)]可以由时间和空间距离所分离。为了提高效率,请求(1468)和响应(1454)进程可以基于同一方法1000,或它们也可以作为同一或不同方法核心1000’的两种方法来实现。可以用“事件代码”作为方法1000的参数,这样,方法1000就可以针对不同事件采取不同的行动/产生不同的结果,对于不同的事件也可以提供不同的方法。

图41c将图41a-41b所描述的控制机制扩展到三个节点(600A,600B,600C)。每个请求-响应对都按照图41b中描述的方式进行操作,其中,某些请求-响应对链在了一起从而在若干VDE节点600A,600B,600C之间形成了一条处理和控制链。使用这种机制可以将处理和控制链延长,使之包含任意数目的VDE节点,而这些VDE节点可以采用任何配置形式。例如,VDE节点600C可直接与VDE节点600A和VDE节点600B通信,而VDE节点600B可与VDE节点600A进行通信。作为另一种选择,VDE节点600C可直接与VDE节点600B通信,VDE节点600A可以与VDE节点600B通信,而VDE节点600B可以与VDE节点600C通信。

可以用事件的集合对方法1000进行参数化,这些事件则指定了相关的或相互协作的功能。可以根据功能(如使用、分发)对事件进行逻辑分组,也可以根据交互事件的集合进行分组,这些交互事件指定了可以彼此相互协作的进程。图41d示意了“交互事件”的一个集合,这些交互事件支持在信息内容分布模型下,若干VDE节点102、106、112之间的协作处理,从而支持预算的分发。在本例中,通过使用由BUDGET(预算)方法中指定的“交互事件”集合来形成处理和控制链。图41d示意了示例BUDGET方法中的交互事件如何相互协作,以建立若干VDE节点之间的处理和控制链。该示例BUDGET方法1510为响应“使用”事件1478执行“使用”进程1476,该进程规定了对处理进行预算的机制。BUDGET方法1510可(举例来说)指定一个使用进程1476,该进程将一个计量计数与一个预算值进行比较,当计量的计数超过了预算值时,该进程将停止操作下去。该进程还产生一个审核跟踪记录,用来描述所述BUDGET的判定结果。为响应一个“分发”事件,BUDGET方法1510可以执行一个分发进程1472,该进程规定了进一步分配预算的处理和/或控制信息。为响应一个“请求”事件,该方法可以执行一个请求进程1480,该进程规定了用户可如何向分发者请求使用权和/或分发权。为响应一个“响应”事件,该方法可以执行一个“响应”进程1484,该进程规定了分发者将响应其它用户请求的方式,而对于这些用户,分发者已经把他们的某些(或全部)预算分发给了他们。为响应一个“应答”事件1474,上述方法可以执行一个应答进程1475,该进程规定了用户应该如何响应一个再批准或否决(更多)预算的消息。

在较佳实施例中,对事件处理、交互事件、以及它们的相关方法和方法部件的控制是由PERC808提供的。这些PERC808可引用对特定数据结构型的创建、修改和分发进行控制的管理方法,以及引用允许对上述项进行访问、修改、以及进一步分发。采用这种方式,在处理和控制链中的每一个链接(举例来说)  都可以按照该分发链中前一个成员规定的方式定制审核信息、改变使用信息内容的预算需求、以及/或者对进一步分发这些权利进行控制。

在图41d中的例子中,VDE分发节点(106)中的分发者可向另一节点(102)中的信息内容制作者发出预算请求。可以通过安全的VDE通信来发出该请求,或者也可以通过“通道外”通信(如通过电话或信件)对之进行传送。制作者102可决定给予分发者预算,并处理一个分发事件(VDE节点102BUDGET方法1510中的1452)。在BUDGET方法中对该分发事件进行处理后,在VDE节点102和106之间将产生一次安全通信(1454),该通信将把给予分发者106使用权和分发权的预算从制作者102传送到分发者。为响应对预算信息的接收,分发者的VDE节点106可利用BUDGET方法1510的应答进程1475B来处理该通信。该应答事件处理1475B可(举例来说)在分发者的VDE节点106中安装一个预算和PERC808,以允许分发者访问某些信息内容和进程,而对这些信息内容和进程的访问至少部分地由上述预算和/或PERC808进行控制。在某些时刻,分发者106可希望使用那些他已经得到访问权的信息内容。

在对信息内容对象的使用进行注册之后,用户112可需要使用一组“使用”进程1476C来(举例来说)打开、读、写、和/或关闭上述信息内容对象,这些操作是上述使用进程的一部分。

一旦分发者106已经消耗了他的某些或全部预算,他可能希望得到更多的预算。该分发者106于是可使用BUDGET方法请求进程(1480B)来启动一个过程。请求进程1480B可以与VDE节点102建立一次通信(1082AB),通过该通信,请求进程1480B请求得到更多的预算,同时还可提供到现在为止的使用行为详细记录(如审核跟踪)。信息内容制作者102利用其BUDGET方法1510A中的响应进程(1484A)对上述“获取更多预算”请求事件1482AB作出处理。响应进程1484A可能(举例来说)要确定上述使用信息是否表明对信息内容的使用是恰当的,以及/或者分发者是否具有足够的信用以得到更多的预算。BUDGET方法响应进程1484A还可启动一次财务交易从分发者那里传送资金过来,以便偿付上述的使用;或者利用分发进程1472A将预算分发给分发者106。此时,作为对请求通信1482AB的响应,可能立即向分发者106发送一个用以给予更多预算(或否决更多预算)的响应,或者可能在以后作为另一次通信的一部分将该响应发送出去。一旦分发者的VDE节点106收到了上述的响应通信,将可以利用其BUDGET方法1510B拷贝中的应答进程1475B对该响应作出处理。应答进程1475B可采用与前面所述方式相同的方式处理这些附加的预算。

除了传送预算信息之外,处理和控制链还传递某些控制信息,这些控制信息可以控制所述预算的使用方式。例如,上述例子提到的控制信息还可说明某些进程和限制的控制信息,这些进程和限制适用于分发者如何分发对制作者的信息内容对象的使用权。所以,当分发者使用利用其BUDGET方法1510B拷贝中的分发进程1472B对用户发来的一个预算请求(该请求是VDE节点112中的用户与VDE节点106中的分发者之间的一次通信,其过程在原理上类似于前面所述的VDE节点106和102之间的通信)进行响应的时候,将可能会产生与上面所述相类似的分发及请求/响应/应答进程。

因而,在本例中,单个方法可以根据不同的“触发”事件产生多种动态的行为。例如,单个BUDGET方法1510可支持下列的任意或全部事件:

事件类型事件进程说明“使用”事件使用预算使用预算由用户节点请求进程1480c处理的请求事件请求更多预算为预算请求更多的资金请求1号审核员进行审核请求1号审核员对预算使用情况进行审核

请求删除预算请求将预算从系统中删除请求更新方法更新用来审核的方法请求更换审核员将1号审核员更换为2号审核员,或相反请求另一种审核间隔改变两次审核之间的时间间隔请求得到提供预算拷贝的能力请求得到提供预算拷贝的能力请求分配预算的能力请求得到向其它用户分配预算的能力请求得到帐户状态请求得到有关某个帐户当前状态的信息请求得到新方法请求得到新方法请求更新方法请求更新方法请求删除方法请求删除方法由用户节点请求进程1480C处理的响应事件收到更多预算为预算分配更多资金收到方法更新更新方法收到审核员更换将审核员从一个更换为另一个收到改变审核间隔改变审核间隔收到删除预算删除预算向1号审核员提供审核信息将审核信息传送给1号审核员向2号审核员提供审核信息将审核信息传送给2号审核员收到帐户状态提供帐户状态接收新预算接收新预算接收方法更新接收更新了的信息接收更多预算资金接收更多预算资金发送审核信息发送审核信息执行删除删除信息“分发”事件创建新预算创建新预算提供更多预算提供更多预算资金审核执行审核

删除删除信息协调协调预算和审核拷贝拷贝预算分发分发预算修改方法修改方法显示方法显示所需方法由分发者节点请求进程1484B所处理的“请求”事件删除删除信息获取新预算获取新预算获取更多预算资金获取更多预算资金获取更新了的信息获取更新了的信息获取审核信息获取审核信息由分发者节点请求进程1484B所处理的“响应”事件向用户提供新预算向用户提供新预算向用户提供更多预算向用户提供更多预算向用户提供更新了的预算向用户提供更新了的预算对用户进行审核对指定用户进行审核删除用户的方法删除属于用户的方法

交互方法进程的举例

A.预算

图42a,42b,43c和42d中的流程图分别示意了由BUDGET方法2250执行的进程控制步骤,此处的BUDGET方法2250是较佳实施例提供的一个有代表性BUDGET方法。在较佳实施例中,BUDGET方法2250可以操作于下列4种不同模式下:

使用(参看图42a)

管理请求(参看图42b)

管理响应(参看图42c)

管理应答(参看图42d)

通常,启动BUDGET方法2250的“使用”模式是为了响应一个有关对象或对象的信息内容使用的事件。BUDGET方法2250的“管理请求”模式是由用户启动的,或是以用户的名义启动的,它用来响应需要与VDE财务提供者联系的用户动作,通常,这种模式的任务是向该VDE财务提供者发送一个管理请求。BUDGET方法2250的“管理响应”模式是在VDE财务提供者处执行的,它通过启动BUDGET方法2250的“管理请求”处调用来响应由VDE节点发送到VDE财务提供者的管理请求,BUDGET方法2250的“管理响应”调用导致把一个管理对象从VDE财务提供者传送给VDE用户节点。图42d中BUDGET方法2250的“管理应答”调用是在用户VDE节点处执行的,一旦收到由图42c方法的“管理响应”调用所发出的管理对象后,就执行该调用。

在较佳实施例中,同一个BUDGET方法2250可以执行图42a-42d所示的4种不同步骤序列。在较佳实施例中,可以向BUDGET方法2250传递不同的事件代码以便调用上述不同的模式。当然,也有可能使用4种不同的BUDGET方法来代替单个的BUDGET方法,而这4种方法具有四种不同的“动态个性特征”,但是通过使用同一种方法来进行4种类型的调用,较佳实施例可以获得某些好处。

参看图42a,BUDGET方法2250的“使用”调用,首先准备好一个预算审核跟踪(处理框2252,2254)。然后它获取预算UDE的DTD,该DTD用来获取和读取预算UDE(处理框2256-2262)。在上述“使用”调用中,BUDGET方法2250接着判断预算审核日期是否已经到期,如果是的话(判定框2264的“是”出口;处理框2266、2268),它将终止处理。只要预算审核日期还未到期,上述方法将使用原子元素和事件计数(可能还包括其它信息)来更新预算(处理框2270,2272),并且在终止(位于终止点2278)之前将预算用户审核记录存放在预算审核跟踪UDE中(处理框2274,2276)。

参看图42b,前6步(处理框2280-2290)可以由用户VDE节点执行,以便响应某些用户操作(如请求访问新信息、请求得到新预算等)。BUDGET方法2250的“管理请求”调用可首先准备好一个审核跟踪(处理框2280,2282)。然后,该方法将把一个对相应预算进行管理处理的请求放入一个请求队列(处理框2284,2286)。最后,该方法保存相应审核跟踪信息(处理框2288,2290)。过了一段时间以后,用户的VDE节点可准备好一个通信审核跟踪(处理框2292,2294),然后可将预算管理请求写入某个管理对象中(处理框2296)。如果需要的话该步骤将访问安全数据库,并从诸如预算UDE、预算审核跟踪UDE以及管理请求记录之类的信息源中获取必要的信息(处理框2298)。

然后处理框2296可将上述管理对象传送到某个VDE财务提供者,作为另外一种选择,处理框2296也可以将该管理对象传递给某个独立的通信进程或方法,这些通信进程或方法可以安排上述通信。如果需要的话,方法2250可在终止(位于终止点2304)之前保存一个通信审核跟踪(处理框2300,2302)。

图42c中的流程图示意了由较佳实施例提供的示例BUDGET方法2250所执行的一系列示例进程控制步骤,该方法执行于“管理响应”模式下。某个VDE财务提供者在收到一个含有预算管理请求的管理对象时,将(举例来说)执行图42c所示的步骤,该对象是在图42b(处理框2296)中产生(并被发送给某个VDE管理员)的。

一旦收到上述管理对象,VDE财务提供者处的BUDGET方法2250可准备好一个预算通信和响应的审核跟踪(处理框2306,2308),然后解开该管理对象,并检索其中所含的预算请求、审核跟踪和记录(处理框2310)。从该管理对象中获取的信息可由该VDE财务提供者写入其安全数据库中(处理框2312)。然后VDE财务提供者可检索上述预算请求,并确定适当的响应方法以便处理该请求(处理框2314,2316)。BUDGET方法2250可将包含在该请求记录中的事件发送给适当的响应方法,并根据RESPONSE(响应)方法产生响应记录和响应请求(处理框2318)。处理框2318中的处理可执行相应操作来满足上述预算请求,即将相应的新响应记录写入VDE财务提供者的安全数据库中(处理框2320)。之后,BUDGET方法2250将上述预算管理响应记录写入一个管理对象中(处理框2322,2324),该对象接着被传送回发出预算请求的用户节点。BUDGET方法2250在终止之前(终止于终止点2330)可把通信和响应处理审核跟踪信息存入相应的审核跟踪UDE中(处理框2326,2328)。

图42d中的流程图示意了由有代表性的示例BUDGET方法2250所执行的一系列示例程序控制步骤,该方法执行于“管理应答”模式下。某个VDE用户节点在收到一个含有预算相关信息的管理对象时,可能(举例来说)执行图42d所示的步骤。BUDGET方法2250可首先准备好一个预算管理及通信审核跟踪(处理框2332,2334)。然后,BUDGET方法2250可从收到的管理对象中提取记录和请求,并将应答记录写入VDE安全数据库中(处理框2336,2338)。然后该VDE用户节点可将预算管理及通信审核跟踪信息存入相应的审核跟踪UDE中(处理框2340,2341)。

过了一段时间以后,该VDE用户节点可从安全数据库中检索上述应答记录,并确定应该使用哪个方法来对之进行处理(处理框2344,2346)。作为一个可选步骤,该VDE用户节点可准备好一个审核跟踪记录(处理框2342,2343)以便记录应答事件的处理结果。之后,BUDGET方法2250可向REPLY(应答)方法发送包含在应答记录中的事件,并且根据需要生成/更新安全数据库记录,例如插入新的预算记录、删除旧的预算记录、以及/或者对预算记录做修改(处理框2348,2350),在写审核跟踪记录(如果需要的话)(处理框2354m 2355)终止之前(终止于终止点2356),BUDGET方法2250可从安全数据库中删除上述应答记录(处理框2352,2353)。

B.注册

图43a-43d中的流程图示意了由REGISTER(注册)方法2400执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的一个有代表性REGISTER方法。在本例中,REGISTER方法2400在执行图43a所示的示例步骤时是操作于“使用”模式;在执行图43b所示的示例步骤时是操作于“管理请求”模式;在执行图43c所示的示例步骤时是操作于“管理响应”模式;在执行图43d所示的示例步骤时是操作于“管理应答”模式。

图43a所示的步骤(举例来说)可以在一个用户VDE节点中执行,它用来响应用户产生的某些操作或以用户名义用户而发生的某些操作。例如,用户可请求访问某个对象,而对象尚未(或目前没有)正确地向她注册。为响应这种用户请求,REGISTER方法2400可首先准备好一个注册审核跟踪UDE(处理框2402,2404),然后判断所请求的对象是否已经注册过了(判定框2406)。如果该对象已经注册过了(判定框2406的“是”出口),那么REGISTER方法将终止执行(终止于终止点2408)。如果该对象尚未注册(判定框2406的“否”出口),那么REGISTER方法2400可访问该VDE节点安全数据库PERC808和/或注册MDE(处理框2410)。然后,REGISTER方法2400可从上述PERC808和/或注册MDE中提取出相应的注册记录集合(处理框2412),并确定注册对象所需的所有元素是否都齐全(判定框2414)。如果缺少某些元素(判定框2414的“否”出口),REGISTER方法2400可能将一个注册请求记录放入通信管理器的队列中,然后挂起该REGISTER方法,直到队列中的请求得到满足为止(处理框2416、2418)。(举例来说)处理框2416可将一个注册请求发送给某个VDE分发者。当该请求被满足以后,并且收到了一个注册请求记录(处理框2420),那么判定框2414的测试得到满足(判定框2414的“是”出口),于是REGISTER方法2400将继续进行处理。在该阶段,REGISTER方法2400可允许用户从一系列备选方法中选择注册选项,这些备选方法为处理框2410中访问的PERC808所允许。举一个简单例子,PERC808可允许用户用VISA或MasterCard付帐,但不允许用American Express付帐。处理框2422可显示一个提示,要求用户从VISA付帐方式和MasterCard付帐方式中选择(处理框2424)。REGISTER方法2400最好对用户选择的注册选项进行确认,如果用户的选择无效的话,应该要求用户选择另外的选项(处理框2426,判定框2428的“否”出口)。一旦用户完成了所有必要的注册选项选择并且这些选择已经被确认(判定框2428的“是”出口),REGISTER方法2400将产生一个对应于上述对象和用户的用户注册表(URT),该用户注册表反映了该用户所做的注册选择,以及PERC808和/或注册MDE要求的其它注册信息(处理框2430、2432)。REGISTER方法2400在终止之前(终止于终止点2436)可将注册审核记录写入安全数据库中(处理框2432,2434)。

图43b示意了REGISTER方法2400的“管理请求”模式示例。管理请求模式可以发生在VDE用户系统中,它产生一个相应的管理对象,以便将该对象传送到请求得到注册信息的某个VDE分发者或其它适当的VDE参与者。因而,(举例来说)图43b所示的步骤可是图43a中“将注册请求记录排入队列”处理框2416的一部分。为产生注册管理请求,REGISTER方法2400可首先准备好一个通信审核跟踪记录(处理框2440、2442),然后访问安全数据库以获取有关注册的数据(处理框2444)。安全数据库可(举例来说)允许正接受注册对象的所有者和/或发布者在其中查找统计信息、用户或有关用户的其它信息。举一个特定的例子,假设正在被注册的对象是一个电子表格软件程序。该对象的分发者可能希望了解用户还注册了其它哪些软件。例如,如果用户注册了由同一分发者分发的、含多个软件产品的套件,那么该分发者可能愿意给予用户优惠的价格。这类的信息可以由包装于大多数标准软件包中的“用户注册”卡来征求,较佳实施例可以在注册时刻自动获取这类信息。为了保护用户的隐私权,REGISTER方法2400可以通过一个隐私过滤器传递这种特定于用户的数据,该隐私过滤器至少是部分地由用户定制,因而用户可以防止某些信息泄露到外界(处理框2446)。REGISTER方法2400可把得到的信息、用来标识上述对象的相应注册请求信息、以及其它相应参数写入一个管理对象中(处理框2448、2450)。然后REGISTER方法2400将该管理对象传送给一个通信处理程序。接着REGISTER方法2400可以保存通信审核跟踪(处理框2452、2454),然后终止(终止于终止点2456)。

图43c示意了某个VDE分发者节点在收到由图43b中处理框2448发来的注册管理对象时可能执行的REGISTER方法2400。在该“管理响应”模式下,REGISTER方法2400可首先准备好相应的审核跟踪记录(处理框2460、2464),然后对收到的管理对象进行解包,并将相关的注册请求配置信息写入安全数据库中(处理框2464,2466)。接着,REGISTER方法2400可从安全数据库中检索到上述管理请求,并确定应该运行哪个方法来处理该请求(处理框2468,2470)。如果用户没有提供注册对象所需的足够信息,REGISTER方法2400可以终止(处理框2472,2474)。否则,REGISTER方法2400将向相应的响应方法发送包含在相应请求记录中的事件,同时生成响应记录和响应请求(如PERC和/或UDE),并将之写入安全数据库中(处理框2476,2478)。然后REGISTER方法2400把相应的注册管理相应记录写入一个管理对象中(处理框2480,2482)。这些信息可包含(举例来说)一个或多个替换PERC808、方法、UDE,等等(处理框2482)。采用这种方法,(举例来说)分发者就可以先向用户分发有限的权限许可,这些权限许可只给予用户注册对象所需的足够信息;然后在以后在注册时,分发者就可以将这些有限的权限许可替换成范围更广的许可,后者可以允许用户更加完整地访问对象。接着,REGISTER方法2400将保存通信和响应处理审核跟踪(处理框2484,2486),然后终止(终止于终止点2488)。

某个VDE用户在收到由图43c处理框2480生成/传送的管理对象时,可(举例来说)执行图43d所示的步骤。图43d所示的步骤非常类似于图42d所示的BUDGET方法管理应答过程所采取的步骤。

C.审核

图44a-44c中的流程图示意了由AUDIT(审核)方法2520执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的一个有代表性REGISTER方法。从这些例子中可以看出,在本较佳实施例中,AUDIT方法2520提供了3种不同的操作模式:图44a示意了AUDIT方法在“管理请求”模式下执行的步骤;图44b示意了AUDIT方法在“管理响应”模式下执行的步骤;图44c示意了AUDIT方法在“管理应答”模式下执行的步骤。

通常,当VDE用户节点收到某些用户请求或以用户名义的请求时,该VDE用户节点将在“管理请求”模式下执行图44a所示的AUDIT方法2520。例如,用户可能已请求过一个审核,或者某个计时器已经到期从而启动一次通信,将审核信息传送到某个VDE信息内容提供者或其它VDE参与者。在较佳实施例中,不同的VDE参与者可以执行同一整体进程的不同审核。对于上面涉及到的任意一个(或所有)VDE参与者来说,都要启动一个特定的“审核”方法2520调用。一旦调用AUDIT方法2520,该方法可以首先准备好一个审核管理审核跟踪(因而在较佳实施例中,上述审核处理本身将可能被审核)(处理框2522,2524)。然后,AUDIT方法2520可将一个管理处理的请求放入队列中(处理框2526,2528),并且将审核管理审核跟踪存入安全数据库中(处理框2530,2532)。过一段时间,AUDIT方法2520可准备好一个通信审核跟踪(处理框2534,2536),然后可能根据保存于安全数据库中的特定UDE、审核跟踪UDE、以及/或者管理记录将审核管理请求写入一个或多个管理对象中(处理框2538,2540)。接着AUDIT方法2520可将相应信息保存到通信审核跟踪中(处理框2542,2544),然后终止处理(终止于终止点2546)。

当某个VDE信息内容提供者、财务提供者、或其它审核VDE节点收到由图44a中处理框2538生成并传送的管理对象时,它们将执行图44b所示的步骤示例。该“管理响应”模式下的AUDIT方法2520可首先准备好一个Audit通信和响应审核跟踪(处理框2550,2552),然后将收到的管理对象解包,从中检索审核请求审核跟踪和审核记录,并将它们保存到安全数据库中(处理框2554、2556)。AUDIT方法2520接着从安全数据库中检索到上述审核请求,并确定运行哪个方法可以处理该请求(处理框2558,2560)。然后AUDIT方法2520在这一阶段可向相应的响应方法发送存放在请求记录中的事件,并根据该方法生成响应记录和请求(处理框2562,2564)。处理框2562可以包含与外界进行一次通信。

例如,此时AUDIT方法2520可调用一个外部进程来执行,以便以电子方式从用户的银行帐户或某些其它银行帐户上划拨一部分资金。如果需要的话,AUDIT管理响应可以调用在VDE与一个或多个现有计算机系统之间充当接口的一个外部进程。可以向该外部进程传送用户的帐号、PIN、金额、或者其它相关信息,这些信息配置于正被处理的VDE审核跟踪中,或者与之相关。外部进程可以与一个非-VDE主机进行通信,并作为这些通信的一部分传递给它的信息。举例来说,该外部进程可以在某个文件中生成一个自动票据交换所(ACH)记录,并将该文件传送给一个银行。采用这种机制,就可以自动对任意金融机构中的银行帐户进行借贷操作。这种机制还可以用来与现有的信用卡(如VISA)网络进行通信,其过程是将基于VDE的费用记入收费帐户中。

一旦生成相应的审核响应记录以后,AUDIT方法2520可将一个审核管理记录写入一个管理对象中以便将之传回产生上述审核请求的VDE用户节点(处理框2566,2568)。然后AUDIT方法2520可将通信和响应处理审核信息存入相应的审核跟踪(处理框2570,2572),之后便终止处理(终止与终止点2574)。

当某个VDE用户节点收到由图44b中处理框2566生成并传送的管理对象时,在该节点中将由AUDIT方法2520执行图44c所示的步骤示例。图44c所示的步骤2580-2599类似于图43d中REGISTER方法2400在“管理应答”模式下执行的步骤。简而言之,这些步骤包括:从管理对象中接收并提取相应的响应记录(处理框2584),然后对这些收到的信息进行相应处理,并更新安全数据库记录,同时还执行其它必要处理(处理框2595,2596)。

事件驱动的基于信息内容的方法举例

VDE方法1000的设计使它能够实现更加灵活并且高度模块化的安全处理机制。通常可以作为方法1000的组合来创建服务于“使用事件”的完整进程。举一个例子,用来从对象300中阅读信息内容或其它信息的典型进程可含有下面的方法:

一个事件(EVENT)方法

一个计量(METER)方法

一个计帐(BILLING)方法

一个预算(BUDGET)方法

图45示意了VDE100为响应一个事件而顺序执行的一系列方法。在本例中,当出现一个事件后,EVENT方法402可以对该事件进行“考核”以判断它是否具有有效性。并非所有事件都是有效的。例如,假设某个控制进程中的EVENT方法1000要求对使用量度的计量要以阅读的页数为单位,在这个前提下,如果用户请求读取少于一页的信息,那么此“事件”将被忽略。再举一个例子,如果某个系统事件表示请求读取一定数目的字节,同时EVENT方法1000从属于设计成作段落计量的某个控制进程,那么该EVENT方法可能要对该读请求做适当测定,以便确定所请求的字节代表了多少个段落。该过程可能包括向“原子元素”做映射,这一点将在后面详细介绍。

EVENT方法402将根据涉及到的特定控制方法把那些不具有效性的事件过滤出去。EVENT方法402将有资格的事件发送给METER进程404,该进程根据其本身的特定标准或者对上述事件进行计量,或者丢弃该事件。

另外,较佳实施例提供了一种称为“预检查”的优化措施。EVENT方法/进程402可以根据计量、计帐和预算等信息执行“预检查”,以便确定基于事件的处理是否允许执行。假设,(举例来说)由于访问某些信息内容的原因,用户已经超出了其预算额,因而无法进一步对信息内容进行访问。尽管BUDGET方法408可以作出上述决定,而由BUDGET方法404和/或BILLING方法406执行的记录和处理就可能不得不“复原”,以避免(举例来说)用户虽然进行了一次实际已被拒绝了访问,但仍然为此而缴费。如果在EVENT方法402中执行一次“预检查”就可以使必须“复原”的交易减少,这样可能会提高效率。

举例来说,METER方法404可以将审核记录存放到计量“跟踪”UDE1200中,并且可以在计量UDE1200中记录与事件有关的信息。例如,METER方法404可以在每次信息内容被访问的时候增加或减少计量UDE1200中的一个“计量”值。可以维护两种不同的数据结构(计量UDE和计量跟踪UDE),(举例来说)这样可以分开维护用作报告用途的记录和用作内部操作用途的记录。

一旦事件由METER方法404计量以后,被计量的事件将接受BILLING方法406的处理。BILLING方法406确定该事件使用了多少预算,它还保存对协调计量和预算有用的有关记录。于是,(举例来说)BILLING方法406可以从一个预算UDE中读取预算信息,将计帐信息保存到一个计帐UDE中,并且将一个或多个审核记录写入一个计帐跟踪UDE中。尽管某些计帐跟踪信息可能与计量和/或预算跟踪信息重复,计帐跟踪信息仍然可以用来(举例来说)使信息内容制作者102可望得到一定数量的报酬,同时它还可以起到协调核对作用,以便在发送到制作者102的计量跟踪信息和发送到独立预算提供者的预算跟踪信息两者间进行协调。

然后BILLING方法406可将事件传送给BUDGET方法408。BUDGET方法408设置某些限制,并记录与这些限制相关的交易信息。例如,BUDGET方法408可将预算信息存入一个预算UDE中,并且还可将一个审核记录存入预算跟踪UDE中。经过BUDGET方法408处理后,预算UDE中的“预算余额”字段是减去由BILLING方法406指定的数量后所剩的数额。

一旦不同的方法402、404、406、408已经处理完上述事件,信息内容便可以发放,同时还可能允许其它操作发生。

如上所述,在较佳实施例中,可以利用“控制方法”来提供PERC808,这些控制方法实际上在某个控制进程中“监视”其它必要方法的性能。图46示意了控制方法410对图45中的必要方法/进程402,404,406及408是如何组织和控制的。控制方法410可以调用和调度事件,或者调用其它方法402,404,406及408,并且可以监视为响应某个“事件”而进行的处理。

控制方法运行于PERC808中控制集合906这一层次。控制方法在实现迥异的方法1000之间提供了结构、逻辑和控制流。这种机制使信息内容提供者可以创建所需的任意处理链,同时还允许居后的再次分发者(在允许的限度内)修改特定的处理链。这种控制结构概念提供了很大的灵活性。

图47示意了“聚合”方法412的一个例子,该聚合方法412把METER方法404、BUDGET方法406、BILLING方法408收集在一起放在了一个“聚合”处理流中。聚合方法412可以(举例来说)把各种计量、预算和计帐元素合并成单个方法1000。由于聚合地执行METER方法404、BUDGET方法406、BILLING方法408,因而聚合方法412可以提高效率。不过由于模块化的降低同时也导致了灵活性的降低。

多个不同的方法可以同时起作用。图48示意了较佳实施例中的一个事件处理过程,该过程使用了多个METER方法404和多个BUDGET方法1408。为了处理某事件,可能需要单独或同时执行多个不同的必要方法。例如,在图48所示的例子中,METER方法404a可以维护计量跟踪和计量信息记录,而这些记录与METER方法404b所维护的计量跟踪与计量信息记录是无关的。类似地,BUDGET方法408a维护的记录可能与BUDGET方法408b维护的记录也无关。某些事件可以绕过BILLING方法408的处理,同时仍然要经过METER方法404a和BUDGET方法408a的处理。各种不同的变化都是有可能的。

VDE方法的代表性例子

尽管方法1000实际可以无限多样,并且某些甚至是用产定义的,而较佳实施例最好使用某些基本的“使用”型方法以控制VDE100提供的大多数基本对象处理以及其它功能。例如,为了进行对象操作,通常提供下列的高层方法:

打开(OPEN)方法

读(READ)方法

写(WRITE)方法

关闭(CLOSE)方法

OPEN方法用来控制对容器的打开操作,从而使其中的信息内容可以被访问。READ方法用来控制对容器中信息内容的访问。WRITE方法用来控制向容器中插入信息内容的操作。而CLOSE方法则用来关闭一个已经打开的容器。

为了执行OPEN,READ,WRITE和/或CLOSE方法所要求的某些步骤,提供了一些辅助方法。这种辅助方法可能包括:

ACCESS方法

PANIC方法

ERROR方法

DECRYPT方法

ENCRYPT方法

DESTROY信息内容方法

INFORMATION方法

OBSCURE方法

FINGERPRINT方法

EVENT方法

CONTENT方法

EXTRACT方法

EMBED方法

METER方法

BUDGET方法

REGISTER方法

BILLING方法

AUDIT方法

ACCESS方法可以用来物理地访问与已打开容器相关的信息内容(该信息内容可以在任何地方)。在检测到安全保障遭到入侵的时候,可以用PANIC方法关闭至少部分VDE节点。ERROR方法可以用来处理错误情况。DECRYPT方法用来对加密信息进行解密。ENCRYPT方法用来加密信息。DESTROY信息内容方法用来取消对容器中特定信息内容的访问能力。INFORMATION方法用来提供有关容器中信息内容的公开信息。OBSCURE方法用来降低从已打开容器中读出的信息内容的价值(例如在显示出的图象之上打印出词“SMAPLE”)。FINGERPRINT方法用来对信息内容做标记,以表明是谁把该信息内容从安全容器中发布出来的。EVENT方法用来将事件转化成另外的事件,以便由其它方法进行响应。

OPEN(打开)

图49中的流程图示意了OPEN方法1500的较佳实施例进程控制步骤。不同的OEPN方法具有不同的详细步骤。但是,图49所示的OPEN方法则是由较佳实施例提供的、具有相对完备功能的“OPEN”方法中的代表性例子。图49示意了该OPEN方法的宏观图。图49a-49f则是为实现图49所示的方法所要执行的详细程序控制步骤示例。

OPEN方法进程从一个“打开事件”开始。该打开事件的产生来源可以是用户应用程序、操作系统截获、或者各种其它用于捕捉或截获控制的机制。例如,用户应用可以发出一个请求,希望访问存放在VDE容器的特定信息内容。作为另一个的例子,其它方法可以发出一个命令。

在所示的例子中,上述打开事件由控制方法1502来处理。控制方法1502可调用其它方法以处理该事件。例如,控制方法1502可以调用EVENT方法1504、METER方法1506、BILLING方法1508、以及BUDGET方法1510。并非所有的OPEN方法都必须调用上述附加的方法,不过图49所示的OEPN方法1500是一个有代表性的例子。

控制方法1502将打开事件的描述传递给EVENT方法1504。EVENT方法1504可确定(举例来说)该打开事件是否是经过允许的,并判断该打开事件是否重要得需要经过METER方法1506、BILLING方法1508和/或BUDGET方法1510的处理。EVENT方法1504可以在一个审核跟踪UDE中保存审核跟踪信息,并使用事件方法数据元素(MDE)来确定该事件的许可和有效性。EVENT方法1504还可将该打开事件映射到一个“原子元素”和计数,该“原子元素”和计数可以被METER方法1506、BILLING方法1508和/或BUDGET方法1510处理。

在OPEN方法1500中,一旦调用了EVENT方法1504并且EVENT方法1504成功地返回,控制方法1502接着可调用METER方法1506,并将EVENT方法1504返回的原子元素和计数传递给METER方法1506。METER方法1506可在METER方法审核跟踪UDE中保存审核跟踪信息,还可在一个METER方法UDE中维护计量信息。在较佳实施例中,假设METER方法1506成功地执行完处理,那么它将向控制方法1502返回一个计量数值。

在较佳实施例中,控制方法1502一旦收到一个标志表明METER方法1506已经成功执行完毕,那么它将调用BILLING方法1508。控制方法1502可向BILLING方法1508传递由METER方法1506返回的计量值。BILLING方法1508可读取并更新保存在BILLING方法映射MDE中的计帐信息,它还可在一个BILLING方法审核跟踪UDE中维护和更新审核跟踪。BILLING方法1508可以向控制方法1502返回一个计帐数量和一个完成码。

假设BILLING方法1508成功执行完毕,控制方法1502可以将BILLING方法1508提供的计帐值传递给BUDGET方法1510。BUDGET方法1510可以读取和更新一个BUDGET方法UDE中的预算信息,它还可在一个BUDGET方法审核跟踪UDE中维护审核跟踪信息。BUDGET方法1510可以向控制方法1502返回一个预算值,同时还可以返回一个完成码,该完成码表明上述打开事件是否超出了用户的预算(该预算对应于此类事件)。

一旦BUDGET方法1510执行完毕,控制方法1502可以创建一个通道,同时还可以生成读/使用控制信息,以便为后续对READ方法的调用做准备。

图49a-49f详细地说明了图49中所示的OPEN方法1500。参看图49a,为了响应一个打开事件,控制方法1502首先确定需要被打开的对象标识以及请求打开该对象的用户标识(处理框1520)。然后控制方法1502判断需要被打开的上述对象是否已向该用户注册(判定框1522)。在较佳实施例中,控制方法1502至少部分地读PERC808和用户权限表(URT)中的有关元素以便作出上述判断,这些元素与处理框1520确定的特定对象和特定用户相关(处理框1524)。如果用户尚未为该特定对象注册(判定框1522的“否”出口),那么控制方法1502可以为该对象调用REGISTER方法,并且在注册一旦完成后重新启动OPEN方法1500(处理框1526)。REGISTER方法处理框1526可以是一个独立的进程,并且可以与时间无关。可能(举例来说)需要花费较长的一段时间才能完成REGISTER方法(假设负责处理注册事宜的VDE分发者或其它参与者在为上述特定对象注册用户之前,希望检查一下用户的信用)。

假设上述用户和对象的适当URT是存在的,这样就表明已经为所述用户注册了所述对象(判定框1522的“是”出口),于是控制方法1502可以判断该对象是否已经为该用户而打开了(判定框1528)。这个测试可以避免为打开一个已经打开的对象而创建多余的通道。假设对象尚未被打开(判定框1528的“否”出口),控制方法1502将创建一个通道,并将相应的打开控制元素装配到该通道中(处理框1530)。它从安全数据库中读取相应的打开控制元素(或者举例来说,对于一个移动对象,控制方法1502将从容器中读取上述元素),并且将这些特定的相应控制元素“装配”和“链接”到一起,以便为该用户完成打开对象的控制。于是,处理框1530将一个事件与从安全数据库(或容器)中读取的一个或多个相应方法核心、相应加载模块、相应用户数据元素、以及相应方法数据元素(处理框1532相关联)。此时,控制方法1502为后续的EVENT方法1504、METER方法1506、BILLING方法1508、以及BUDGET方法1510指定打开事件(该事件启动了OPEN方法的执行)、对象ID和用户ID(在处理框1520中确定)、以及由处理框1530创建的通道的通道ID,这样就提供了一个安全数据库“交易”(处理框1536)。在这样做之前,控制方法1502可以首先要准备一个审核进程(处理框1533),并且将审核信息写入一个审核UDE中(处理框1534),因此,即使上述交易失败或者受到干扰,该交易的记录仍然存在。

图49b示意了EVENT方法1504所执行的详细步骤。根据需要,EVENT方法1504可以首先准备好一个事件审核跟踪(处理框1538),该审核跟踪可以被写入一个EVENT方法审核跟踪UDE(处理框1540)。然后,EVENT方法1504可利用一个映射MDE将上述打开事件映射到一个原子元素号和事件计数(处理框1542)。上述EVENT方法映射MDE可从安全数据库中读取(处理框1544)。由处理框1452执行的上述映射可(举例来说)确定该打开事件是否是可计量的、可计帐的、或者是可预算的,还可将该打开事件传送到某些分离的原子元素中以便进行计量、计帐和/或预算。举一个例子,处理框1542可以在打开事件和“打开”原子元素之间进行一一映射,或者它可以在该对象每到第五次打开的时候才提供一个打开原子元素。映射处理框1542最好返回打开事件、事件计数、原子元素号、对象ID、以及用户ID。这些信息可以被写入EVENT方法审核跟踪UDE中(处理框1546,1548)。在较佳实施例中,接着要执行一个测试(判定框1550),它用来判断该EVENT方法是否失败了。特别地,判定框1550可以判断是否已经产生了一个原子元素号。如果没有产生原子元素号(如,这意味着上述打开事件不具备有效性以供METER方法1506、BILLING方法1508和/或BUDGET方法1510处理),那么EVENT方法1504可以向控制方法1502返回一个“失败”完成码(判定框的1550的“否”出口)。

控制方法1502测试EVENT方法1504返回的完成码,以确定EVENT方法1504是成功还是失败了(判定框1552)。如果EVENT方法失败了(判定框1552的“否”出口),那么控制方法1502可以“回滚”(roll back)安全数据库交易(处理框1554),而且其本身将返回,同时带有一个返回标志表明OPEN方法失败(处理框1556)。在此处,“回滚”安全数据库交易意味着(举例来说)“复原”在处理框1540、1548对审核跟踪记录UDE做出的修改。不过,在较佳实施例中,处理框1554所执行的“回滚”操作并不“复原”在处理框1532、1534对控制方法审核信息UDE做出的修改。

假设EVENT方法1504执行成功,控制方法1502将接着调用METER方法1506,如图49c所示。在较佳实施例中,根据需要,METER方法1506首先准备好计量审核跟踪(处理框1558),该步骤通常包括向METER方法审核跟踪UDE写入信息(处理框1560)。然后METER方法1506可从安全数据库中读取一个METER方法UDE(处理框1562),对之进行修改,即把相应事件计数加到计量UDE中的计量值中(处理框1564),之后它将修改了的计量UDE写回安全数据库中(处理框1562)。换句话说,处理框1564可读出计量UDE,增加它所含有的计量计数,然后将改变后的计量UDE写回安全数据库中。在较佳实施例中,如果需要的话,METER方法1506接着会向METER方法审核跟踪UDE写入计量审核跟踪信息(处理框1566,1568)。下一步,METER方法1506最好执行一个测试,以确定计量值是否已经成功地增加(判定框1570)。METER方法1506向控制方法1502返回一个完成码(如成功或失败)以及由处理框1564确定的一个计量值。

控制方法1502(举例来说)通过检查完成码来确定METER方法是否执行成功(判定框1572)。如果METER方法失败(判定框1572的“否”出口),那么控制方法1502将“回滚”安全数据库交易(处理框1574),并返回一个标志表明OPEN方法失败(处理框1576)。假设METER方法执行成功(判定框1572的“是”出口),控制方法1502于是调用BILLING方法1508,并将METER方法1506提供的计量值传递给它。

图49d示意了BILLING方法1508执行的步骤示例。如果需要的话,BILLING方法1508可首先准备一个计帐审核跟踪(处理框1578),即向安全数据库中的BILLING方法审核跟踪UDE写入信息(处理框1580)。然后BILLING方法1508使用从安全数据库中读出的一个BILLING方法映射MDE把原子元素号、计数、以及计量值映射到一个计帐数额。提供包含价格表信息的独立BILLING方法映射MDE允许为计帐进程进行可独立传递的定价。处理框1582生成的结果计帐数额可被写入BILLING方法审核跟踪UDE(处理框1586,1588),该结果也可返回控制方法1502。另外,BILLING方法1508可确定处理框1582是否正确地选择了计帐数额(判定框1590)。在本例中,判定框1590所执行的测试通常不仅仅只包括检查返回的计帐数额,这是因为计帐数额可能会以各种无法预测的方式经过改变,这些方式在计帐方法映射MDE中已经做了规定。然后控制返回控制方法1502,控制方法1502将测试BILLING方法1508返回的完成码以确定BILLING方法是成功了还是失败了(判定框1592)。如果BILLING方法失败了(判定框1592的“否”出口),控制方法1502可以“回滚”安全数据库交易(处理框1594),并返回一个标志表明OPEN方法失败(处理框1596)。假设判定框1592所做的测试表明BILING方法执行成功(判定框1592的“是”出口),那么控制方法1502可以接着调用BUDGET方法1510。

(举例来说)还有一些BILLING方法使用地点、用户、以及/或者使用信息来生成定价信息。例如,可以使用有关对象存在或不存在的信息来实现“套件”购买、有竞争力的折扣等方式。计帐方法可以将使用级别作为一个考虑的因素,以便针对不同的使用级别而制定不同的价格。BILLING方法可以具有货币换算特性,该特性允许利用不同种类的货币进行购买和/或定价。还有许多其它方式可以用来确定某个事件消耗的预算额,这些方式都可以集成进BILLING方法。

图49e示意了BUDGET方法1510执行的详细控制步骤示例。如果需要的话,BUDGET方法1510可向一个预算审核UDE写入信息以便准备好一个预算审核跟踪(处理框1598,1600)。然后BUDGET方法1510可以执行一个计帐操作,即把一个计帐数额加到一个预算值中(处理框1602)。该操作可以包括:从安全数据库中读取预算方法UDE,对之进行修改,然后将它写回安全数据库中(处理框1604)。之后,BUDGET方法1510可向预算方法审核跟踪UDE中写入预算审核跟踪信息(处理框1606,1608)。在本例中,BUDGET方法1510可以最后确定由处理框1602计算得出的预算值是否超出了范围(处理框1610)。如果用户用光了其预算(判定框1610的“是”出口),那么BUDGET方法1510可向控制方法1502返回失败完成码。然后,BUDGET方法1510返回控制方法1502,控制方法1502将检查BUDGET方法完成码是否是成功的(判定框1612)。如果BUDGET方法失败(判定框1612的“否”出口),控制方法1502可以“回滚”安全数据库交易,并自己返回,同时返回一个标志表明OPEN方法失败(处理框1614、1616)。假设控制方法1502发现BUDGET方法执行成功,那么控制方法可以继续执行图49f所示的步骤。例如,如果需要的话,控制方法1502可以写入一个打开审核跟踪,其过程是将审核信息写入由处理框1532准备好的审核UDE中(处理框1618,1620)。然后,控制方法1502可以建立一个读事件处理(处理框1622),其间它使用与上述对象和用户相关的用户权利表和PERC来创建通道(处理框1624)。该通道既可能被VDE节点600的多个用户所共享,也可能只能由指定的用户使用。

在较佳实施例中,控制方法1502接着检查读通道是否已经成功地创建好(判定框1626)。如果读通道未能成功地创建(判定框1626的“否”出口),控制方法1502“回滚”安全数据库交易,并返回一个标志表明OPEN方法失败(处理框1628,1630)。假设读通道成功地创建好(判定框1626的“是”出口),控制方法1502可“提交”安全数据库交易(处理框1632)。在较佳实施例中,上述“提交”安全数据库交易的步骤包括(举例来说):删除与刚刚执行的安全交易有关的中间值,并且(举例来说)将修改了的UDE和MDE写入安全数据库。通常,某个安全交易一经处理框1632提交,那么它就不可能被“回滚”了。然后,控制方法1502可以“拆除”用来进行打开处理的通道,然后终止(处理框1636)。在某些配置中,诸如在多任务VDE节点环境中,上述OPEN通道可以一直保留,而任何开始执行的OPEN方法都可以使用该OPEN通道。在其它实现中,每次启动一个OPEN方法可以被重建并重启动上述进行打开处理的通道。

READ(读)

图50,50a-50f示意了有代表性READ方法1650示例所执行的进程控制步骤示例。将图50和图49对比一下可以发现,READ方法1650所执行的高层处理通常与前面结合OPEN方法1500所介绍的处理相同。于是,为响应一个读事件,READ方法1650可调用控制方法1652,然后控制方法1652又调用EVENT方法1654、METER方法1656、BILLING方法1658、以及BUDGET方法1660。在较佳实施例中,READ控制方法1652在发放被解密的信息内容之前可以请求某些方法首先对信息内容做指纹和/或使之模糊。

图50a-50e与图49a-49e相类似。当然,即使OPEN方法1500和READ方法1650可以使用同样的用户数据元素,但READ方法使用的方法数据元素可以完全不同,另外,读方法所使用的用户数据元素可以提供与打开处理截然相反的审核、计量、计帐、以及/或者预算标准。

参看图50f,READ控制方法1652必须确定:如果它准备将被解密的信息内容发放给用户的话,应该用哪个密钥解密该信息内容(处理框1758)。READ控制方法1652可部分地根据该对象的PERC808来做出上述密钥确定(处理框1760)。然后,READ控制方法1652可调用ACCESS方法以便真正地得到上述需要解密的加密信息内容(处理框1762)。此后,使用由处理框1758确定的密钥将上述信息内容解密(处理框1764)。READ控制方法1652接着判断是否需要一个“指纹”(判定框1766),如果需要对该信息内容按指纹(判定框1766的“是”出口),那么READ控制方法1652可以调用FINGERPRINT方法(处理框1768)。否则,READ控制方法1652可以判断是否需要将该被解密的信息内容模糊化(处理框1770)。如果需要的话,READ控制方法1652可调用OBSCURE方法来执行该功能(处理框1772)。最后,READ控制方法1652可以提交上述安全数据库交易(处理框1774),并可选地拆除读通道(未示出),然后终止(处理框1776)。

WRITE(写)

图51,51a-51f示意了在较佳实施例中有代表性WRITE方法1780示例所执行的进程控制步骤示例。在本例中WRITE方法1780使用控制方法1782来调用EVENT方法1784、METER方法1786、BILLING方法1788、以及BUDGET方法1790。因此,在较佳实施例中,将信息写入容器(或者通过改写已存储在容器中的信息,或者在容器中增加新信息)可以被计量、计帐和/或预算,而这些处理与容器打开和读取过程中所进行的计量、计帐和/或预算方式是相似的。如图51所示,WRITE方法1780的结果通常是对信息内容进行加密、更新容器的目录表和相关信息以便反映出新的信息内容、并将信息内容写入对象。

图51a中的WRITE控制方法1782类似于图49a中的OPEN控制方法和图50a中的READ控制方法。但是,图51b与对应的打开和读稍微不同。具体地说,当WRITE EVENT方法1784失败的时候,将执行处理框1820。处理框1820更新EVENT方法映射MDE以反映出新数据。只有这样,图51b READ方法处理框1678才能根据同一个(但此时已经被更新)的EVENT方法映射MDE来读取由处理框1810写入的信息。

参看图51f,一旦EVENT、METER、BILLING和BUDGET方法成功地返回到WRITE控制方法1782,WRITE控制方法即把审核信息写入审核UDE中(处理框1890,1892),然后(根据对应于该对象和用户的PERC,以及一个可选的算法)确定在将信息内容写入容器之前应该使用哪个密钥对之进行加密(处理框1894,1896)。接着,控制方法1782将加密该信息内容(处理框1898),其间可调用ENCRYPT方法,然后将加了密的信息内容写入对象中(处理框1900)。之后,控制方法1782可以更新容器的目录表(以及相关信息)以便反映出新写入的信息(处理框1902),并提交安全数据库交易(处理框1904),最后返回(处理框1906)。

CLOSE(关闭)

图52示意了在较佳实施例中有代表性CLOSE方法1920示例所执行的进程控制步骤流程。CLOSE方法1920用来关闭一个打开的对象。在较佳实施例中,CLOSE方法1920首先准备一个审核跟踪,并将审核信息写入一个审核UDE中(处理框1922,1924)。然后CLOSE方法1920可以拆除正用来支持和/或处理一个或多个打开对象的当前通道(处理框1926)。如上所述,在某些(如多用户或多任务)实现中,上述拆除通道的步骤是不必要的,因为该通道可以留着操作对同一或不同用户的其它对象进行处理。此时,CLOSE方法1920还释放此时与该对象相关的适当记录和资源(处理框1926)。然后,(如果需要的话)CLOSE方法1920可以在完成之前将审核跟踪写入审核UDE中(处理框1928、1930)。

EVENT(事件)

图53a示意了在较佳实施例中更为通用的EVENT方法1940示例所执行的进程控制步骤流程。前面的图49b,50b和51b已经展示了EVENT方法的某些例子,并且对之进行了描述。图53a所示的EVENT方法1940比上述例子稍微更通用一些。象前面的EVENT方法例子一样,EVENT方法1940接收事件的标识以及事件计数和事件参数。如果需要的话,EVENT方法1940可首先准备一个EVENT审核跟踪,即向一个EVENT方法审核跟踪UDE中写入适当的信息(处理框1942,1944)。然后EVENT方法1940可从安全数据库中获取并装入EVENT方法映射DTD(处理框1946,1948)。在本例中,该EVENT方法映射DTD描述了下面马上就要读取和访问(处理框1950,1952)的EVENT方法映射MDE的格式。在较佳实施例中,MDE和UDE可以具有各种不同的格式中任何一种,并且可以根据安装、用户等因素的不同动态地规定和改变其格式。DTD实际上告诉EVENT方法1940如何从EVENT方法映射MDE中读取。DTD还用来规定应该如何将方法写入MDE和UDE中,因此,它可以用来实现隐私过滤器,其原理是禁止将某些机密的用户信息写入将要报告给第三方的数据结构中。

处理框1950(使用映射MDE将事件映射到原子元素号和事件计数)在某些意义上是EVENT方法1940的“核心”。该步骤将事件“映射”到“原子元素号”,而该原子元素将由后面调用的方法来响应。图53b示意了上述“映射”步骤1950一个具有一定代表性的例子所执行的进程控制步骤示例。

图53b中的例子示意了将一个READ事件转换到相应原子元素的过程,该READ事件请求从特定的信息内容部分中获取范围位于1000-1500之间的字节。示例EVENT方法映射进程(图53a中的处理框195)可以细化为图53b所示的有代表性进程。

EVENT方法映射进程1950首先利用EVENT方法映射DTD(处理框1948)在EVENT方法MDE中查找事件代码(READ)(处理框1952),以便确定MDE的结构和内容。可能需要执行一个测试以判断是否在MDE中查到了事件代码(处理框1956),如果没有(“否”分支),那么该EVENT方法映射进程可以终止,而没有将事件映射到原子元素号和计数(框1958)。如果在MDE中发现了事件代码(“是”分支),那么EVENT方法映射进程可以将事件范围(如字节1001-1500)与保存在MDE中的、原子元素到事件范围的映射表相比较(处理框1960)。上述比较可能产生一个或多个原子元素号,或者可能无法在映射表中找到事件范围。比较的结果可能接着经过测试(处理框1962)以便确定在映射表中是否发现了任何原子元素号。如果没有(“否”分支),EVENT方法将终止,而没有选择任何原子元素或计数(处理框1964)。如果发现了原子元素号,该进程可以从事件范围中计算出原子元素计数(处理框1966)。在本例中,该过程计算所需字节数目的方法可以是用字节范围上界减去字节范围下界(如1500-1001+1=500)。然后,EVENT方法可以终止(处理框1968),并返回原子元素号和计数。

之后,如果需要的话,EVENT方法1940可以将一个EVENT审核跟踪写入EVENT方法审核跟踪UDE中(处理框1970,1972)。然后EVENT方法1940可以准备(在退出点1978)将上述原子元素号和事件计数传递给调用的CONTROL方法(或其它控制进程)。在此之前,EVENT方法1940可以检查是否选择了一个原子元素(判定框1947),如果没有选择原子元素,那么EVENT方法可能会失败(框1974)。产生这种结果的原因多种多样。例如,如果用户没有权利访问在EVENT方法MDE中未做描述的信息内容特定区域,那么EVENT方法可能不能将事件映射到原子元素。这种机制可以用来(举例来说)分发信息内容片段的定制版本,并且通过改变交付给用户的EVENT方法MDE,可以控制对信息内容对象中这些不同版本的访问。该技术的一个特殊用途是可以用来控制信息内容片段不同语言(如英语、法语、西班牙语)版本的分发。

BILLING(计帐)

图53c示意了BILLING方法1980所执行的示例进程控制步骤流程图。前面的图49d,50d和51d已经展示了BILLING方法的某些例子,并且对之进行了描述。图53c所示的BILLING方法1980比上述例子稍微更通用一些。象前面的BILLING方法例子一样,BILLING方法1980接收一个计量数值以确定计帐数额。BILLING方法1980可首先准备一个BILLING审核跟踪(如果需要的话),其过程是将相应信息写入BILLING方法审核跟踪UDE(处理框1982,1984)。然后BILLING方法1980可从安全数据库中获取并加载BILLING方法映射DTD(处理框1985,1986),该DTD描述了本BILLING方法需要使用的BILLING方法映射MDE(如一个价格清单、表格,以及传给计帐数额计算算法的参数)。可以将BILLING方法映射方法MDE作为信息内容对象的一部分进行交付,也可以作为一个可独立交付的部件来传递,在注册时,该部件被融合进某些控制信息。

本例中的BILLING方法映射MDE可以描述本BILLING方法需要使用的定价算法(如:对发布的信息内容每一字节计帐0.001美元)。处理框1988的功能(“将计量值映射到计帐数额”)与EVENT方法中处理框1950相同;它将计量值映射到计帐数额。进程步骤1988也可以查询安全数据库(该操作要接收隐私过滤器的限制)以便确定是否存在其它的对象或信息(如用户信息)可以作为BILLING方法算法的部分参数。

然后,如果需要的话,BILLING方法1980可以将一个BILLING审核跟踪写入BILLING方法审核跟踪UDE中(处理框1990,1992),并可以准备向调用它的控制方法(或其它进程)返回计帐数额。不过在此之前,BILLING方法1980可以判断是否确定了一个计帐数额(判定框1994)。如果没有确定计帐数额,那么BILLING方法可能失败(处理框1996)。出现这种结果的一个可能原因是用户无权访问BILLING方法MDE所描述的定价表特定区域(如用户从信息内容对象中购买的信息不能超过100.00美元)。

ACCESS(访问)

图54示意了ACCESS方法2000所执行的程序控制步骤流程图示例。如上所述,ACCESS方法可以用来访问嵌入到对象300中的信息内容,从而使该信息内容可以被写入、读取、或经过其它操作和处理。在许多情况下,ACCESS方法可以相对简单,因为对象可以(举例来说)被存贮在本地的存贮设备中,从而易于访问。不过,通常情况下,ACCESS方法2000为获取对象必须执行更为复杂的过程。例如,某些对象(或对象的部分)也许只能从远程获取,或者只能通过实时下载或输入的方式才能得到这些对象(例如在广播传送的情况下)。即使对象是保存在VDE节点本地,其保存方式也可以是安全的或受保护的,因此调用进程对它不能直接访问。ACCESS方法提供了访问对象所必须的连接、路由选择、以及安全要求。这些步骤的执行对调用进程来说可以是透明的,所以调用进程只需发出一个访问请求,而与对象或某类对象相对应的特定ACCESS方法将处理实际访问对象所涉及的所有细节和后方勤务(Logistics)。

ACCESS方法2000可首先准备一个ACCESS审核跟踪(如果需要的话),即向ACCESS审核跟踪UDE写入信息(处理框2002,2004)。然后ACCESS方法2000可以读取并加载ACCESS方法DTD以便确定ACCESS MDE的格式(处理框2006,2008)。在较佳实施例中,ACCESS方法MDE指定了需要访问的特定对象的来源和路由选择信息。利用ACCESS方法DTD,ACCESS方法2000可以加载校正参数(如用电话号码、帐号ID、口令和/或用远程资源相关语言书写的请求脚本)。

ACCESS方法2000根据ACCESS方法DTD从安全数据库中读入ACCESS方法MDE,并根据MDE加载加密的信息内容源和路由信息(处理框2010,2012)。源和路由信息指定了加密信息内容的位置。然后ACCESS方法2000判断与该信息内容之间是否有一个连接(判定框2014)。该“连接”可以是(举例来说):与远方站点建立的在线连接、实时信息输入、或连向安全/受保护信息资源的通路。如果目前与信息内容之间没有连接(判定框2014的“否”出口),那么ACCESS方法2000将执行打开连接的步骤(处理框2016)。如果连接失败(如由于用户没有权利访问被保护的安全资源),ACCESS方法2000将返回一个失败标志(终止点2018)。反之,如果打开连接步骤成功,ACCESS方法2000将获取加密的信息内容(处理框2020)。然后如果需要的话ACCESS方法2000将ACCESS审核跟踪写入安全数据库中的ACCESS方法审核跟踪UDE(处理框2022,2024),之后终止处理(终止点2026)。

ENCRYPT和DECRYPT(加密与解密)

图55a示意了在较佳实施例中有代表性DECRYPT方法2030示例所执行的进程控制步骤流程。在较佳实施例中,DECRYPT方法2030从一个相应的PERC808中获取或生成一个解密密钥,并使用该密钥对一块加密的信息内容进行解密。DECRYPT方法2030接收一块加密的信息内容或一个指向加密块存放位置的指针。DECRYPT方法2030从一个密钥块中选择一个密钥号(处理框2032)。为安全起见,一个信息内容对象可以用一个以上的密钥进行加密。例如,在一段电影中,其前10分钟的内容可以使用第一个密钥加密,第二个10分钟的内容可以使用第二个密钥加密,依此类推。存放在某个数据结构之PERC808中的上述密钥称为“密钥块”。上述选择过程即为从密钥块中确定可用来解密上述信息内容的正确密钥。该选择进程类似于EVENT方法将事件映射到原子元素号所用的进程。之后,DECRYPT方法2030访问安全数据库610中的一个相应PERC808,并从PERC中加载一个密钥(或“种子”)(处理框2034,2036)。该密钥信息可以是解密信息内容所用的实际解密密钥,或者至少可以部分地从该信息中推导出或计算出解密密钥。如果需要的话,DECRYPT方法2030根据在处理框2034从PERC808中读到的信息计算出解密密钥(处理框2038)。然后,DECRYPT方法2030使用上述获取的和/或计算得来的解密密钥真正地对加密信息进行解密(处理框2040)。DECRYPT方法2030输出解密了的块(或者指向该块所在位置的指针),然后终止(终止于终止点2042)。

图55b示意了在较佳实施例中有代表性ENCRYPT方法2050示例所执行的进程控制步骤流程。在较佳实施例中,ENCRYPT方法2050接收一块需要加密的信息(或一个指向该块存放位置的指针)作为输入。然后ENCRYPT方法2050可以从一个密钥块中确定使用的密钥(处理框2052)。密钥选择过程要确定:在保存于PERC808中的某个密钥块中,是否存在对应于要对之执行写入操作的特定信息内容块的密钥。如果密钥块中存在这样的密钥,那么将选择该密钥号码。如果密钥块中不存在这样的密钥,则利用合适的加密算法计算得出一个新密钥。该密钥被存放在PERC808的密钥块中,使DECRYPT方法2030可以访问该密钥,以便对存放在信息内容对象中的信息内容进行解密。之后,ENCRYPT方法2050访问相应的PERC以便获取、推导和/或计算出一个可用来加密信息块的加密密钥(处理框2054,2056,2058,这些处理框类似于图55a中的处理框2034,2036,2038)。接着,ENCRYPT方法2050用获取的和/或推导得出的加密密钥真正地加密上述信息块(处理框2060),并输出加了密的信息块或指向其位置的指针,随后终止(终止点2062)。

CONTENT

图56示意了在较佳实施例中有代表性CONTENT方法2070示例所执行的进程控制步骤流程。在较佳实施例中,CONTENT方法2070采用安全进程为受保护的CONTENT创建“梗概”。例如,可以使用CONTENT方法2070从受保护的CONTENT中导出不受保护的(“公开的”)信息。上述可导出的公开信息可以包括:(举例来说)摘要、索引、目录、文件目录、表明何时可以得到CONTENT的时间表、或摘录,比如影片的“演职员表”。

CONTENT方法2070首先判断要交付的被导出内容是否必须从安全的CONTENT中导出,还是它已经以静态值的形式存在于对象中(判定框2070)。某些对象可以(举例来说)包含了预保存的摘要、索引、目录等信息,这些信息被清楚地提供出来以供CONTENT方法2070提取之用。如果对象包含了上述静态值(判定框2072“静态”出口),那么CONTENT方法2070就可以简单地从该对象中读出上述静态值内容信息(处理框2074),可选地对之解密,然后发布该内容说明(处理框2076)。如果在另一方面,CONTENT方法2070必须从受保护对象中导出上述梗概/CONTENT说明的话(判定框2072的“导出”出口),那么,该CONTENT方法必须按照一个梗概算法从容器中安全地读取信息以便产生上述梗概(处理框2078)。

EXTRACT和EMBED(提取与嵌入)

图57a示意了在较佳实施例中有代表性EXTRACT方法2080示例所执行的进程控制步骤流程。EXTRACT方法2080用来从一个对象中复制或移动信息内容,然后将其放入一个新对象中。在较佳实施例中,EXTRACT方法2080不涉及对信息内容的任何发布,只是简单地将信息内容从一个容器中取出,然后放入另一个容器中,这两个容器可以都是安全的。对信息内容的提取不同于发布的地方在于,被提取的信息内容始终没有暴露到安全容器之外。提取和嵌入是两个互补的功能;提取过程是从一个容器中取出信息内容并创建一个新的容器存放被提取出的信息内容,同时还存放与该信息内容相关的任何被指定的控制信息。嵌入则是从一个容器中取出已经存在的信息内容,并直接地和/或通过引用方式将它存放到另外一个容器中,同时把与现有信息内容相关联的控制信息和新的信息内容的控制信息集成在一起。

EXTRACT方法2080首先准备一个审核UDE(处理框2082,2084)。然后,EXTRACT方法调用BUDGET方法以便确认用户具有足够的预算额用来(并且有权)从原始对象中提取信息内容(处理框2086)。如果用户的预算不允许该提取(判定框2088的“否”出口),那么EXTRACT方法2080将写一个失败审核记录(处理框2090),然后终止(终止点2092)。如果用户的预算允许该提取(判定框2088的“是”出口),EXTRACT方法2080创建被提取对象的一个拷贝,并附有指定的规则和控制信息(处理框2094)。在较佳实施例中,上述步骤涉及调用一个实际控制上述拷贝的方法。该步骤可以含有也可以不包括加密和解密,这取决于(举例来说)与原始对象相关联的特定PERC808。随后,EXTRACT方法2080将判断授权本次提取的权利是否允许进行某些控制改变(判定框2096)。在某些情况下,提取权利要求在新(目的地)容器中放置原始对象相关PERC808(或为此目的所含的某个PERC)的一份精确拷贝(判定框2096的“否”出口)。如果不允许有控制改变,EXTRACT方法2080可以简单地将审核信息写入审核UDE中(处理框2098,2100),然后终止(终止点2102),反之,如果提取权利允许用户进行控制改变(判定框2096的“是”出口),那么EXTRACT方法2080可以调用一个方法或加载模块,该方法或加载模块将请求(如从用户、创建/批准提取权的分发者、或从其它来源)从用户处得到新的或改变的控制信息(处理框2104,2106)。随后,EXTRACT方法2080可以调用一个方法或加载模块,以便创建一个新的PERC,该PERC反映了上述用户指定的控制信息(处理框2104)。上述新PERC将被放置于新的(目的地)对象中。然后EXTRACT方法2080执行审核步骤,之后终止。

图57b示意了在较佳实施例中有代表性EMBED方法2110示例所执行的进程控制步骤流程。EMBED方法2110类似于图57a所示的EXTRACT方法2080。不过,EMBED方法2110执行了一个稍微不同的功能—它将一个对象(或引用)写入目的地容器中。图57b所示的处理框2112-2122与图57a所示的处理框2082-2092相类似。在处理框2124,EMBED方法2110将源对象写入目的地容器中,同时可以提取或改变目的地容器的控制信息。另外一种选择是:简单地留下目的地容器的控制信息,而纳入原始容器的控制信息以及与被嵌入对象相关的完整控制信息集合。然而,作为一种优化方案,较佳实施例提供了一种技术,其中,与被嵌入对象相关的控制信息被“抽取”出并被集成进目的地容器的控制信息中。处理框2124可以调用某个方法以抽取或改变上述控制信息。然后,EMBED方法2110执行步骤2126-2130,这些步骤与图57a所示的步骤2096,2104,2106相似,步骤2126-2130允许一个已授权用户改变和/或指定与嵌入对象和/或目的地容器相关的控制信息。接着,EMBED方法2110将审核信息写入审核UDE中(处理框2132,2134),然后终止(终止于终止点2136)。

OBSCURE(模糊化)

图58a示意了在较佳实施例中有代表性OBSCURE方法2140示例所执行的进程控制步骤流程。OBSCURE方法2140通常用于以降价的形式发布受保护的信息内容。例如,OBSCURE方法2140可以将一幅高分辨率的图象以低分辨率的形式发布,从而使用户虽然可以欣赏该图象但无法享受其全部价值。再举一个例子,OBSCURE方法2140可能往一幅图象上放置某个模糊化符号(如“COPY”、“PROOF”等),以便降低其价值。OBSCURE方法2140可以“模糊化”正文,图象、声音信息、或其它任何类型的信息内容。

OBSCURE方法2140首先调用EVENT方法以确定该信息内容是否是适于处理的,并且属于要模糊化的范围(处理框2142)。如果该信息内容不适于模糊化,OBSCURE方法将终止(判定框2144的“否”出口,终止点为2146)。假设信息内容要被模糊化(判定框2144的“是”出口),那么OBSCURE方法2140将确定是否因为模糊化该信息内容它本身已经被调用过(判定框2148)。假设OBSCURE方法2140未因为模糊化该对象/信息内容而被调用过(判定框2148的“是”出口),OBSCURE方法2140将从安全数据库中读出一个相应的OBSCURE方法MDE,并从该MDE中加载模糊化公式和/或模式(处理框2150,2152)。然后,OBSCURE方法2140根据处理框2150加载的模式和/或公式施加模糊化变换(处理框2154)。此后OBSCURE方法2140将终止(终止于终止点2156)。

FINGERPRINT(指纹)

图58b示意了在较佳实施例中有代表性FINGERPRINT方法2160示例所执行的进程控制步骤流程。在较佳实施例中,FINGERPRINT方法2160使用一个“指纹”标识来“标记”发布的信息内容是谁发布的以及/或者检验这些标记。这种方式可以允许人们在以后通过检验该信息内容得以查明是谁发布了未受保护的信息内容。FINGERPRINT方法2160可以(举例来说)在代表数据流的声音、影像、或二进制格式信息中插入用户ID。FINGERPRINT方法2160非常类似图58a所示的OBSCURE方法2140,但有一点区别是:FINGERPRINT方法处理框2174所施加的变换不是模糊化被发布的信息内容而是在其中“留下指纹”。

图58c示意了“留指纹”过程2160的一个例子,该过程在被发布的信息内容留下指纹2161,这些指纹标识了:对象、和/或产权、和/或请求使用该被发布对象信息内容的用户、和/或发布的日期和时间、和/或被发布信息内容的其它标识标准。

这种指纹2161可以是“掩埋的”—其插入方式可以使指纹对于典型用户、破译高手、和/或所有用户是不可见的,这要取决于文件格式、插入算法的完善程度和/或多样性、以及是否可以得到原始的、未留下指纹的信息内容(供反向算法工程比较)。在较佳实施例中,可以至少部分地将插入的或嵌入的指纹2161进行加密,以便使它们更加安全。这种被插入的指纹2161可以以“明白的”(明文)形式嵌入到被发布的信息内容中。

指纹2161可适用于多种目的,包括(举例来说)一些经常涉及的用途如证明发布的材料是否被不合理的使用,以及指明被发布的信息内容的来源。尤其在制止软件盗版方面,指纹可以非常有用。对于大多数类型的电子传递信息,使用指纹技术还可以有助于加强这些信息信息内容提供者的权利,这类信息的例子有:电影、录音制品、多媒体、信息数据库、以及传统的“文献”资料。在防止拷贝方面,指纹技术是比较理想的可选方案或附加方案。

许多软件应用盗版行为(举例来说)其现象并非是某个人制作了一份非法拷贝,然后在另外一台自己的计算机上使用,而是将拷贝给予另外一方。这经常会产生一个非法拷贝的链(或更确切地说是一个金字塔),因为拷贝被一个人一个人传递下去。由于担心嵌入指纹2161而暴露其身份,大多数人可能会不再参与其目前所正在参与的广泛且无意的盗版。在某些情况下,可以用一种指纹方法来检查信息内容中有无指纹,以帮助加强信息内容提供者的权利。

不同的指纹2161可以有不同的安全级别(例如,出于商业考虑,指纹2161(1)可以是可读的/可识别的,而另一个指纹2161(2)则只能对一个更加可信的代理可读)。更为安全的指纹2161的生成方法可以使用更加复杂的加密技术(如数字签名)以及/或者模糊化位置的方法。为了防止加入指纹的信息被破译高手所识破,可以在不同的位置和/或使用不同的技术嵌入两个或更多指纹2161。如果用来产生更为安全指纹的技术要带来很多不该有的附加开销的话,那么也许只能定期地使用这种更为安全的指纹,而不是每次发布信息内容的时候都要使用。这样做仍然是有效的,因为加入指纹的主要目标是为了威慑—非法拷贝制作者担心其拷贝行为被发现。

例如,某人可能将一个指纹2161嵌入到拷贝中,而该指纹可以会很方便地被一个经授权的团体所识别。这些团体可以是分发者、服务人员、客户管理员、或使用VDE电子设备600的票据交换所。可以嵌入指纹2161的一个或多个附加拷贝或变型(例如,某些指纹带有一些描述性信息,这些信息说明了部分或全部相关识别信息),并且可以采用更为安全的方式来维护上述一个或多个附加指纹。

指纹技术也可以保护隐私。例如,用来识别指纹2161的算法和/或机制可能只有通过特别可信的代理才能得到。

指纹2161可有多种形式。例如,在一幅图像中,可以采用一种视觉不易察觉的方式(至少按正常的肉眼观察者是这样的)将可每N个像素(这些像素可能布满整幅图象,或该图象的子区域)的颜色进行极细微的移位通过分析图象便可以破译这些移位(可以利用原始图象,也可以不用),图象中每一点有无颜色(或灰度)移位实际对应于存贮的数字信息中一个或多个二进制位“1或0”的变化。这N个像素可以在顺序上或者是一致的,或者伪随机的(但至少部分地可以由对象制作者、对象提供者、客户管理员和/或VDE管理员来解释)。

对图象(或移动图象、声音等)的某些其它类型修改也可以产生类似的效果(也就是说,通过对原始信息的某些修改,将信息以一种不易察觉的方式存贮),这种修改方式也是可行的。例如,可以对被存贮的声音信息的频率做某些极其细微的修改,使听众对此一般不易察觉,但借助适当的工具仍然可以将其读出来。可以对存贮信息的某些特性进行一些修改,例如对某些采用光学手段存贮的信息在其偏光特性上做一些细微而又可解释的变化,从而达到与上面相同的效果。也可以采用其它电子特性、磁特性、和/或光学特性上的变化。

如果保存信息内容所用的文件具有图形格式,例如MicrosoftWindows字处理文件,那么这种文件将提供“掩埋”指纹2161的绝好机会。包含图象和/或声音的信息内容提供了嵌入指纹2161的机会,并且嵌入的指纹很难被未授权的个人识别出来,这是因为,在没有“未加指纹”的原件用来比较的情况下,由于通常不知道原件的本来特征,也由于图象和声音信息中都含有大量的数据(并且这些数据对微小的变化不是特别敏感),因而在声音频率上所出现的或在一幅或多幅视频图象上所出现的一次或多次细微变化等本身是难于分辨的。对于经过格式化的正文文档,特别是那些由图形字处理器(例如Microsoft Windows或Apple Macintosh字处理器以及它们的DOS和Unix等效物)创建的文档,通常可以把指纹2161非干扰性地插入到一般对用户不可见的文档数据表示部分(如标题或其它非显示性数据区域)。

而另外一种类型的指纹特别适用于某些正文文档,这种指纹技术对给定字体的字符构成加以利用和控制。可以让单个的字符带有略微不同的视觉构造,这些构造中包含了某些“指纹”信息。给定字符形式的上述变化通常难以分辨,一部分原因是不同供应商提供的同种字体版本之间本来就有许多微小的差异,一部分原因是由于这些差异非常小。例如,在一个较佳实施例中,可以采用诸如Adobe Type Align这样的程序,这种程序在其现用版本中允许用户采用多种方式修改字体特征。其过程是,按照用户发出某些指令产生特定的一系列改动,将这些改动施加到字体或字符上,从而完成了对字体特征数学定义的修改。可以用类似的方法(作为用户的一种选择)使用信息内容。对其中的某些或全部字体做修改,并使这些修改虽然在一般情况下细微得很难让用户识别出来,但仍然为指纹2161提供了适当编码手段。在单个文档中可以使用给定字符的具有略微差别的各种版本,这样更易于携带与交易有关的字体指纹信息。

指纹技术的某些其它应用示例可能包括:

1.在软件程序中,选择某些可互换的代码段,这些代码段产生近乎相同的操作,但是经过分析也可以得出它们之间的区别,而这些区别则刻画了指纹信息。

2.对于数据库,有选择地对某些字段如日期等进行格式化,使之以不同方式出现。

3.在游戏程序中,调整背景或改变某些事件的顺序,包括对游戏元素出现的时间和/或次序安排进行可察觉的或非常细微的修改,或者对游戏元素的外观进行细微的修改。

执行FINGERPRINT方法2160(如果确实需要执行的话)的时机一般是在信息内容从信息内容对象300中发布出来的时候。不过,也可以在分发对象的时候执行该方法以便对之做“标记”,尽管此时信息内容仍处于被加密形式。例如,基于网络的对象仓库在将某个对象传送给请求者之前,可以先将指纹2161嵌入到该对象的信息内容中,该指纹信息可以标识信息内容请求者/最终用户。这样做有助于探测出“欺骗性”电子设备600,这些设备被用来未经允许地散布信息内容。

DESTROY(销毁)

图59示意了在较佳实施例中有代表性DESTROY方法2180示例所执行的进程控制步骤流程。DESTROY方法2180通过消除用户访问对象所需的URT从而取消了用户使用对象的能力。在较佳实施例中,DESTROY方法2180可以首先向审核UDE写入审核信息(处理框2182,2184)。然后DESTROY方法2180可以调用WRITE和/或ACCESS方法写某些信息,这些信息将破坏(同时也就销毁)对象的头和/或其它重要部分(处理框2186)。随后,DESTROY方法2180可把一个或多个控制结构(如URT)标记为已毁坏的,其过程是通过向控制结构中写入相应信息(处理框2188,2190)。最后,DESTROY方法2180将向审核UDE中写入附加审核信息(处理框2192,2194),然后终止(终止点为2196)。

PANIC(紧急)

图60示意了在较佳实施例中有代表性PANIC方法2200示例所执行的进程控制步骤流程。当检测到安全性被侵犯的情况时,可以调用PANIC方法2200。PANIC方法2200可以执行一系列步骤来禁止用户继续访问目前正在访问的对象,(举例来说)这些步骤包括:拆除正在用来访问对象的通道,将与该用户和该对象相关的一个或多个控制结构(如URT)标记为已毁坏的(分别为处理框2206和2208-2210)。由于控制结构被毁坏,VDE节点需要在用户可以再次访问相同的对象之前与某个管理员联系,以便获取有效的控制结构。当VDE节点与管理员联系时,管理员可以请求获取某些必要信息使他相信没有发生过安全性被侵犯的情况,或者如果确实出现了安全性被侵犯的情况,他可以采取相应步骤确保不再发生上述侵犯安全性的情况。

METER(计量)

图61示意了在较佳实施例中有代表性METER方法示例所执行的进程控制步骤流程。尽管前面已经结合图49,50和51介绍了METER方法,而图61所示的METER方法2220可能是一个在一定程度上更具代表性的例子。在较佳实施例中,METER方法2220通过访问METER审核跟踪UDE首先准备一个审核跟踪(处理框2222,2224)。然后METER方法2220可以从安全数据库中为METER UDE读取DTD(处理框2226,2228),随后从安全数据库中读取METER UDE(处理框2230,2232)。接着METER方法2220测试所得到的METER UDE,以确定该UDE是否已经到期(判定框2234)。在较佳实施例中,每个METER UDE都可以被标记上一个过期日期。如果当前日期和/或时间已经过了METER UDE的过期日期(判定框2234的“是”出口),那么METER方法2220可以在审核记录中记下一个失败情况,并以失败条件终止(框2236,2238)。

假设METER UDE尚未过期,METER方法2220可以用由(举例来说)EVENT方法传来的原子元素和事件计数来更新该METERUDE(处理框2239,2240)。然后METER方法2220可以把计量使用审核记录存入METER审核跟踪UDE中(处理框2242,2244),随后终止(终止于2246)。

较佳实施例提供的附加安全特征

较佳实施例提供的VDE100具有足够的安全性,这些安全性有助于确保在短期的有成效的“强力攻击”前提下VDE100不能受到侵害;而且,即使“强力攻击”成功,那么花在其中的时间和代价实际上也要超过得到的任何价值。另外,VDE100提供的安全性还对VDE的内部操作进行相互隔离,这样,成功的“强力攻击”只能侵害被保护信息中被严格分界的一个子集,而不是整个系统。

下面列出了较佳实施例提供的某些安全性状况和特征:

PPE650及其所执行进程的安全性

安全数据库610的安全性

PPE650所执行的加密/解密操作的安全性

密钥管理;加密/解密密钥和共享秘密的安全性

鉴别/外部通信的安全性

安全数据库备份的安全性

VDE内部信息在电子设备600之间的可安全传输性

VDE安全信息的访问许可的安全性

VDE对象300的安全性

VDE安全性的完整性

上述某些安全性状况和考虑在前面已经讨论过。下面将对较佳实施例安全特性中尚未全面说明的部分进行扩充论述。

密钥和共享秘密的管理

VDE100使用密钥和共享秘密来提供安全性。较佳实施例提供了下列的密钥使用特性:

不同的密码系统/密钥类型

安全密钥长度

密钥生成

密钥“卷积”和密钥“衰老”

这几种类型将在下面进行讨论。

A.公开密钥和对称密钥密码系统

将信息进行伪装或变换以隐藏其实质的过程称为加密。加密产生“密文”。逆向执行加密进程以从密文中恢复信息实质称为“解密”。密码算法是用于加密和解密的数学函数。

多数现代的密码算法使用“密钥”。“密钥”规定了所要提供的某一类变换方式。密钥允许使用标准的、公布的和经过测试的密码算法,同时确保用该算法执行的特定变换是保密的。于是,特定变换的保密性是取决于密钥的保密性,而不是算法的保密性。

有两种一般形式的基于密钥的算法,较佳实施例PPE650可以使用其中任一种或两者。

对称;及

公开密钥(“PK”)

在对称算法中,加密密钥可以从解密密钥中计算出来,反之亦然。在许多这样的系统中,加密密钥和解密密钥是同一个。该算法也称为“保密密钥”,“单密钥”或“共用秘密”算法,该算法要求在接收者解密发送者生成的密文之前,发送者和接收者一致同意使用某个密钥。该密钥必须保密。对称算法的安全性取决于这个密钥:泄露了该密钥意味着任何人都可以在这种密码系统中对信息进行加密和解密。参看Schneier的《Applied Cryptography》第3页。较佳实施例可以使用的某些对称密钥算法例子包括DES、Skipjack/Clipper,IDEA,RC2和RC4。

在公开密钥密码系统中,加密所用的密钥与解密所用的密钥不同。而且,利用计算从一个密钥导出另一个密钥是不可行。这些密码系统中所用的算法称为“公开密钥”,因为两个密钥中的一个密钥可以是公开的,而这不致威胁另一密钥的安全性。因为这些算法对加密和解密使用不同的密钥,所以有时也称之为“非对称”密码系统。公开密钥算法的例子包括RSA,El Gamal和LUC。

较佳实施例PPE650可以只基于对称密钥密码系统,也可以基于公开密钥密码系统,或者两者都可。VDE100不特别要求任何特定加密算法。较佳实施例提供的体系结构可以支持包括PK和/或保密密钥(非PK)算法在内的大量算法。在某些情况下,加密/解密算法的选择将取决于大量的商业决定:如成本、市场需求、与其它商业可用系统的兼容性、出口法律等等。

尽管较佳实施例不依赖于任何特定类型的密码系统或加密/解密算法,而优选例则将PK密码系统用于PPE650之间的安全通信,而将保密密钥密码系统用于VDE对象300的“批量”加密/解密。使用保密密钥密码系统(如使用多密钥和多遍的DES实现、Skipjack,RC2或RC4)进行“批量”加密/解密处理可以提高加密和解密大量信息的效率,同时加密/解密还使得没有PK功能的PPE可以在各种各样的应用中对VDE对象300进行处理。在通信中使用PK密码系统有许多优点,如消除了在建立通信时对秘密共用外部通信密钥的依赖性,允许不依赖于共用内部秘密的查问/回答过程对PPE650进行鉴别,而且还支持不依赖于共用秘密密钥的对大众公开的“鉴定”进程。

某些信息内容提供者可能希望将其信息内容的使用限制于PK实现中。为满足这种需求,可以将PPE650中PK功能的加入以及PK功能的特定性质或类型作为VDE对象300注册过程的一个因素。其方法是(举例来说)在REGISTER方法中以加载模块的形式加入对这种对象的要求,而该加载模块将在允许继续注册之前针对特定的或一般的PK功能对PPE650进行检查。

尽管VDE100不要求特定的算法,但最好所有PPE650都可以使用相同的算法进行批量加密/解密处理。如果用来批量加密VDE对象300的加密/解密算法未经标准化,那么有可能某些VDE电子设备600将不能处理所有VDE对象300。如果标准化的批量加密/解密算法不是完全或部分地用基于硬件的加密/解密机522来实现,而是用软件实现,那么在PPE650以及相关电子设备600之间将存在性能上的差异,为了支持那些未完全或部分地由加密/解密机522实现的算法,PPE650中必须有一个实现该算法的部件组。

B.密钥长度

增加密钥的长度可以提高安全性。对密码系统进行“强力进攻”就需要尝试任何可能的密钥。密钥越长,需要尝试的可能密钥就越多。密钥长度到了一定值时,“强力进攻”者如果采用现有的计算资源尝试所有可能的密钥,那么,所花费的时间将是不现实地长。

较佳实施例提供的VDE100可以支持和使用多种不同的密钥长度。在较佳实施例中,VDE100所用密钥的长度取决于用来完成加密/解密的算法、所需安全性的级别、以及吞吐率要求。较长的密钥通常要求更多处理能力以便确保快速的加密/解密响应时间。因此,在(a)安全性和(b)处理时间和/或资源之间有一个折衷。由于基于硬件的PPE加密/解密机522的处理速度可能比基于软件的加密/解密更快,因而基于硬件的方法通常允许使用更长的密钥。

较佳实施例对于PK加密/解密可使用1024位模(密钥)RSA密码系统实现,对于“批量”加密/解密可使用56位DES。由于标准DES所提供的56位密钥其长度可能不够,而不能满足至少大多数敏感VDE信息的安全性需求,因此可以采用多遍运算和多个DES密钥的DES加密过程以提供更多的安全性。如果对于不同密钥采取多遍运算,那么可以使DES的安全性大大增强。例如,对于2个或3个单独的密钥进行3遍运算将更加提高安全性,因为这样做实际上是增加了密钥的长度。RC2和RC4(除DES的另外一些选择)可以输出长至40位的密钥,但为了提供高至DES级的安全性,密钥的长度可能还要更长。NSA Skipjack提供的80位密钥长度可能比较适于多数VDE安全性的需要。

如果具有向PPE650中动态下载代码和其它信息的能力,那么即使已经使用了相当多的VDE电子设备600,也可以动态地调整和修改密钥的长度。如果VDE管理员能够与两个PPE650进行通信,就可能有效地实现上述的事后动态改变,并且成本高效。可以将新的或修改了的密码系统下载到现有PPE650中,以替换或补充PPE中已有的密码系统清单,同时可以使较旧的PPE维持与较新的PPE和/或新发布的VDE对象300及其它受VDE保护的信息之间的兼容性。例如,可以在任何时间将软件加密/解密算法下载到PPE650之中,通过提供不同密钥长度的能力,从而补充了加密/解密机522基于硬件的功能。为提供更大的灵活性,可以配置PPE加密/解密机522,使之能够预先处理多遍运算和/或变量和/或更长的密钥长度。另外,最好可以使PPE650具有内部产生较长PK密钥的能力。

C.密钥生成

较佳实施例提供的密钥生成技术使PPE650能够产生只有它自己“知道”的密钥或其它信息。

被加密信息的安全性取决于对之加密所用密钥的安全性。如果用一个弱密码特性的进程来生成密钥,那么整个安全性就受到削弱。好的密钥是随机的位串,从而密钥空间中的任何可能密钥机会均等。因此,密钥通常必须由随机程度较为可靠的数据源产生,例如,可以用该数据源为一个具有密码安全特性的伪随机数发生器提供种子。这种密钥发生器的例子在Schneier的《Applied Cryptography》(John Wiley和Sons,1994)第15章中作了介绍。如果密钥的生成是在给定的PPE650之外进行的(如由另一个PPE650生成),那么在使用这些密钥之前必须对之进行校验以确保其来源是可信的。可以用“鉴定”过程来校验这些密钥。

较佳实施例PPE650提供了密钥的自动生成。例如,为保护基于PK的外部通信或为其它原因,较佳实施例PPE650可以生成其自身的公开/私有密钥对。PPE650还可以在初始化过程之中或之后生成其自身的对称密钥以用于各种用途。由于PPE650提供了安全的环境,较佳实施例大多数密钥产生过程都可以在PPE中进行(可能的例外是:在制造或安装时使用的PPE密钥不在PPE中进行,PPE使用这些密钥对初始下载得到的消息进行鉴别)。

好的密钥生成过程取决于随机性。前面结合图9讨论过,较佳实施例PPE650带有一个基于硬件的随机数发生器542,该随机数发生器542具有产生可靠随机数所需的特征。这些随机数可以用来向具有强密码特性的随机数发生器(如运行于输出反馈模式的DES)“提供种子”,以便从随机数种子产生附加的密钥数值。在较佳实施例中,随机数发生器542可以含有一个“噪声二极管”(noise diode)或其它基于物理的随机数值发生源(如放射性衰变过程)。

如果PPE650中没有随机数发生器542,那么SPE503可以使用一个密码算法(如运行于输出反馈模式的DES)从保护于SPE之中的一个保密数值来导出一个伪随机数序列。虽然这些数值是伪随机的而不是真正随机的,但由于它们是由具有密码特性的算法导出,并且导出过程所用的数值对于SPE503的外界来说是保密的,所以这种密钥可以满足某些应用的要求。

在包含HPE655而不含SPE503的实施例中,随机数发生器565软件可以从无法预知的外部物理事件中导出可靠的随机数(如磁盘I/O结束的精密定时,或用户敲击所接键盘612的精密定时)。

某些传统的技术基于上述“种子”来产生PK或非PK密钥,这些技术也是可以采用的。因此,如果性能和制造成本允许的话,较佳实施例中的PPE650可以基于这种随机或伪随机“种子”数值产生其自身的公开/私有密钥。可以在产生上述密钥对的PPE650和希望与该PPE650进行通信的其它PPE之间用该密钥对进行外部通信。例如,密钥生成方PPE650可以将该密钥对的公开密钥向其它PPE公开。这样就可以使其它PPE650使用该公开密钥加密某些信息,而这些信息只能由密钥生成方PPE(密钥生成方PPE是“知道”对应“私有密钥”的唯一PPE)解密。类似地,密钥生成方PPE可以用其私有密钥加密某些信息,而当这些信息被带有密钥生成方PPE之公开密钥的其它PPE成功解密后,这些PPE可以由此断定这些信息是密钥生成方PPE送来的。

在某一PPE650使用由另一PPE650生成的公开密钥之前,必须使用公开密钥验证进程为该公开密钥提供鉴别证明。公开密钥的证明表示某人的公开密钥经过了某个值得信赖实体的“签字“,这些实体的例子包括可信的PPE650或VDE管理员。当虚假的PPE试图说服某个PPE650使它相信它正与一个真实PPE通信时(例如该哄骗者实际上是某个企图侵犯PPE650安全性的人),证明就可以用来阻挠其企图得逞。在较佳实施例中,一个或多个管理员可以具有验证权威。通过“签字”由某个PPE生成的公开密钥以及与该PPE和/或对应VDE电子设备600相关的信息(如站点ID、用户ID、过期日期、名字、地址、等等),VDE管理员的验证权威可以证明有关PPE和/或VDE电子设备的信息是正确的,并且该公开密钥属于这个特定的VDE节点。

证明数字签名的可信度方面意义重大,在公开密钥鉴别通信协议方面(下面将要讨论)也发挥了重要作用。在较佳实施例中,这些证明可以含有有关特定VDE电子设备600(例如不管该电子设备600是否包含基于硬件的SPE503或不甚可信的软件仿真类型HPE655)安全性可信度/安全性级别的信息,这些信息可用来避免将高度保密的信息传送给不甚可信/安全的VDE设备。

证明的另一个重要作用是它可以用来解除欺诈性用户和/或站点的权利。通过在证明中存入一个站点标识和/或用户ID,PPE可以在鉴别过程中对这些信息进行检验。例如,如果某个VDE管理员或票据交换所碰到某张证明,并发现其中的ID(或其它信息)满足了某些条件(例如在列有被解除权利和/或有嫌疑的用户和/或站点的名单中发现了这些信息),他们可以根据上述条件有选择采取某些措施,例如拒绝通信,传送禁止信息,将该情况通知用户,等等。证明通常还带有一个过期日期,这是为了保证该证明必须定期更换,从而(举例来说)确保地点和/或用户必须处于与VDE管理员的接触之中,并允许证明密钥定期更换。可以向站点和/或用户发放基于不同密钥的一个以上的证明,这样,如果某个给定证明密钥受到破坏,还可以使用一个或多个“备份”证明。如果某个证明密钥受到破坏,VDE管理员可以拒绝根据由该密钥产生的证明进行鉴别,并在利用“备份”证明进行鉴别之后发送一个信号,该信号将作废与VDE参与者继续交互的过程中对该受损密钥的所有使用,以及与该密钥相关的所有证明。在出现上述密钥破坏情况以后,可能会生成一个或多个“备份”证明和密钥,并将之发送给可信的站点/用户。

如果可以有多个证明,那么某些证明可以作为备份保留着。作为另一种选择或作为一种补充方式,在给定的鉴别过程中,(例如通过使用RNG542)可以从一组证明中挑选一个证明,这样可以减小使用与某个受损证明密钥相关的证明的可能性。还有一种可选方案,在一个给定的鉴别过程中,可以使用一个或多个证明。

为了防止验证算法遭到泄露的可能(例如,由于算法所基于的数学基础可能会出现不可预测的发展),对于不同的证明可以使用不同的算法,这些算法基于了不同的数学基础。

另一种可以用来减小泄露可能性的技术是保密证明所基于的“公开”值(保存在PPE650的受保护存贮设备中),因而可以禁止攻击者访问该数值,否则该数值将对其进攻过程产生帮助。尽管这些数值通常是“公开”的,但只有那些实际确认证明的部件(即PPE650)才有必要知道这些数值。

在较佳实施例中,PPE650可以产生其自己的证明,或者可以从外部获得证明,例如可以从一个具有验证权威的VDE管理员处获取。不管上述数字证明在何处生成,它们最终要被VDE管理员验证机构所注册,以便其它VDE电子设备600可以访问(并信任)该公开密钥。例如,PPE650可以将其公开密钥和其它信息传送到一个验证机构,然后该验证机构使用其私有密钥将该公开密钥和其它信息进行加密。其它装置600可以信任该“证明”,因为使用验证机构的公开密钥可以解密该“证明”,这就可以鉴别出该“证明”是真实的。再举一个例子,验证机构可以加密它从密钥生成方PPE650收到的公开密钥,并使用该公开密钥加密验证机构的私有密钥。然后验证机构可以将该加密的信息传回密钥生成方PPE650。之后,密钥生成方PPE650可以使用验证机构的私有密钥来内部产生一个数字证明,在此之后它将销毁验证机构私有密钥的拷贝。于是,根据需要,PPE650可以将其数字证明发送给VDE管理员,并保存在其证明存放库中(或任何地方)。也可以利用外部的密钥对发生器或证明发生器来实现验证进程,但是由于这种安全措施的本质特征,其安全性可能要打些折扣。在这种情况下,PPE650中需要使用一个制造密钥,以限制对涉及到的其它密钥的暴露。

PPE650可能需要使用多个证明。例如,可能需要用一个证明使用户相信某个PPE使真实的,同时它还用来标识PPE。另一方面对于PPE650的各个用户来说可能还需要另外的证明。这些证明可以既含有用户信息又含有站点信息,或者也可以只含有用户信息。通常,验证机关在为给定用户创建证明之前要首先得到有效的站点证明。用户为得到证明可以各自请求获取各自的公开密钥/私有密钥。VDE管理员、票据交换所以及其它参与者通常可以在通信中或其它交互中要求对站点(PPE650)和用户两者进行鉴定。上述密钥生成进程以及PPE650的验证进程也适用于产生站点/用户证明或用户证明。

上述的证明还可以用来验证加载模块1100的来历和/或管理对象的真实性。上述的安全性技术和保险技术可以用来减小任何上述证明(所适用的证明不限于用于识别VDE电子设备600的证明)遭到泄露的可能性。

D.密钥衰老和卷积

在较佳实施例中,PPE650能够产生在多个PPE650之间共用的保密密钥和其它信息。在较佳实施例中,这些保密密钥和其它信息在多个PPE650之间共用并不要求这些共用的保密信息需要明确地在电子设备之间传递。更具体地说,当收到了在多个VDE电子设备600之间共用的种子信息时,PPE650使用了一种称为“密钥卷积”的技术根据确定的进程导出密钥。由于上述多个电子设备600“知道”“种子”信息是什么,并且还“知道”如何根据该信息产生密钥的确定进程,所以每个电子设备都可以独立地产生“真正的密钥”。这种方式一方面可以使多个VDE电子设备600共用一个共用的保密密钥,另一方面还避免了通过非安全通道传送密钥而使其安全性受到潜在危害。

任何密钥都不能无限期地使用。密钥的使用时间越长,密钥遭到泄露的机会可能越大,如果密钥遭到泄露以后依然还在用来保护新信息的话,那么可能造成的损失就越大。密钥的使用时间越长,它保护的信息就可能越多,因此,某些人花费必要的精力破解了该密钥将可能得到越多的报酬。而且,如果密钥的使用时间较长,那么将会有更多的密文落入攻击者手中,而这些攻击者则可以试图根据密文来破解密钥。参看Schneier的150-151页。较佳实施例中的密钥卷积技术则提供了一种手段,以定期地或根据其它标准有效地改变存贮在安全数据库610中的密钥,同时又简化了围绕密钥变化而存在的密钥管理事宜。另外,密钥卷积可以用来产生“逐渐衰老密钥”(将在后面介绍),以支持密钥使用和/或确认中的“过期日期”功能。

图62示意了较佳实施例中密钥卷积的实现示例。密钥卷积的执行过程是:使用站点标识2821和RTC528的高位这两者的组合,产生唯一于站点的数值“V”,而该数值“V”则是依赖于时间的,并且依赖的时间单位较大(如小时或天)。加密进程2871可以利用上述数值“V”将卷积种子数值2861变换为“当前卷积密钥”2862。种子数值2861可以是一个在全局范围内或在组范围内共用的保密数值,它可以存放在保密密钥存储器中(如存放在PPE650中受保护的存贮器内)。可以在制造过程中设置种子数值2861,并且VDE管理员可以不定期地将之更新。不同集合的对象300可以有大量的种子数值2861与之对应。

当前卷积密钥2862表示对站点标识2821和当前时间的编码。该变换得来的数值2862可以用作另一个加密进程2872的密钥,该进程2872将存放在PERC808中的密钥810变换成用于对象信息内容的真正私有体密钥2863。

处理框2861、2871执行的“卷积函数”可以(举例来说)是一个单向函数,该函数在信息内容制作者的站点和信息内容用户的站点都可以独立地执行。如果信息内容用户所使用的卷积函数和输入数值(如时间和/或站点和/或其它信息)与信息内容制作者所使用的不是精确相同的话,那么两者执行卷积函数所得到的结果将有差异。如果信息内容制作者将其卷积结果作为对称密钥用在了加密过程中,那么信息内容用户将无法解密,除非该信息内容用户的卷积结果与信息内容制作者的相同。

密钥卷积函数输入中的时间分量可以从RTC528获取(要注意避免VDE电子设备之间在RTC同步上的微小差异引起不同的电子设备使用不同的时间输入分量)。可以用RTC582输出的不同部分来提供具有不同有效期的密钥,或者可以在该进程中加入一定容差以便尝试若干不同的密钥数值。例如,可以调整“时间粒度”参数,以便产生适当的时间容差,该时间容差单位可以是天、星期、或其它任意时间段。作为一个例子,如果“时间粒度”被设为2天,而容差为±2天,那么卷积算法就可以尝试三种实际时间输入数值。可以尝试生成的每个密钥值以便确定实际使用的是这些可能密钥中的哪一个。在本例中,密钥将只有4天的寿命。

图63示意了如何选择适当的卷积输出密钥以补偿用户RTC528和制作者RTC528之间的偏斜。通过使用不同的输入数值2881(a-e)可以产生一个卷积密钥2862(a-e)序列,每一个输入数值2881(a-e)都来自于站点标识2881和RTC528与一个差值(如-2天、-1天、无差值、+1天、+2天)的和或差。卷积步骤2871(a-e)用来产生密钥2862(a-e)序列。

同时,制作者站点可以基于其RTC258的值(要适当调整该值以便使其对应于密钥的预计有效期)使用卷积步骤2871(z)产生卷积输出密钥2862(z),该密钥2862(z)于是可以用来生成对象PERC808中的信息内容密钥2863。为解密对象信息内容,用户站点可以尝试其卷积密钥2862(a-e)序列中的每一密钥以便生成主信息内容密钥810。此时,只要制作者站点的RTC538处于用户站点RTC528的可接受的容差范围之内,那么密钥2862(a-e)中的某一个将与密钥2862(z)相匹配,解密过程将成功。在本例中,匹配取决于解密输出的有效性,而不取决于密钥之间的直接对比。

上面所讲的密钥卷积不是一定要将站点标识和时间两者作为一个值来使用。某些密钥可以根据当前实际时间来生成,某些密钥则可以根据站点标识来产生,而另外一些密钥则可以根据实际时间和站点标识两者来产生。

密钥卷积可以用来提供“时间衰老”密钥。这种“时间衰老”密钥提供一种自动机制支持密钥的过期,并允许用“新”密钥替换过期密钥。它们给予用户受时间限制的权利,从而使用户受时间限制地使用对象或对象的部分,而这不需要用户的重新注册,同时又保障了信息内容制作者或管理员的重要控制权。如果安全数据库610安全性足够的话,通过检查与密钥相关的过期日期/时间可以实现相同的功能,不过这需要使用更多的存贮空间来存放各个密钥或密钥组。

在较佳实施例中,PERC808可以包含一个过期日期/时间,过了此日期/时间以后,将不再有权访问与该过期日期/时间相对应的受保护VDE信息。作为另一种选择或作为一种补充方案,当对电子设备600或一个或多个VDE对象300的有关使用过了一段时间之后,PERC808可以强迫用户将审核历史信息发送给票据交换所、分发者、客户管理员、或对象制作者,以便重新获得或维持使用对象的权利。为强制执行上述基于时间的约束,PERC808可以检查/加强某些参数,而这些参数则限制了密钥的使用和/或有权使用期的已消耗部分。“时间衰老”密钥可以用来强制或加强对访问受VDE保护信息的上述基于时间的控制。

“时间衰老”密钥可以用来在有限的时间段内加密和解密一个信息集合,因而它需要用户重新注册、或收到新的许可,或传送审核信息。如果用户不这样的话,他将得不到需要使用的新密钥。时间衰老密钥还可以用来提高系统的安全性,因为根据时间衰老标准一个或多个密钥将被自动替换,因而破译安全数据库610及定位一个或多个密钥可能没有实际价值。使用时间衰老密钥的另一个优点是它们可以被动态地产生,因而不再需要将解密密钥存放在二级和/或安全存贮器中。

在较佳实施例中,“时间衰老密钥”并不是可以用来执行加密/解密的“真实密钥”,而是一段信息,PPE650结合其它信息可以使用该信息生成一个“真实密钥”。,此处的其它信息可以是基于时间的,也可以是基于PPE650特定标识的,或者基于两者的。由于“真实密钥”始终不暴露,并且总是在PPE650安全环境中产生,同时还由于需要多个安全PPE来生成该“真实密钥”,所以VDE100使用“时间衰老”密钥可以大大增强系统的安全性和灵活性。

在较佳实施例中,“老化”密钥的过程包括产生一个时间衰老的“真实密钥”,该时间衰老的真实密钥是下面参数的函数:(a)一个“真实密钥”;及(b)某些其它信息(如实际时间参数、站点ID参数等等)。该信息被合并/变换(如采用上述的“密钥卷积”技术),以恢复或产生“真实密钥”。由于“真实密钥”可被恢复,从而避免将“真实密钥”保存在PERC808中,并允许不同的密钥可以对应于PERC808中的相同信息。由于没有将“真实密钥”保存在PERC808中,所以无法通过访问PERC而访问受“真实密钥”保护的信息。因此,“时间衰老”密钥使信息内容制作者/提供者可以在信息访问中加入限制,从某种意义上来说,该限制不属于或辅助了由一个或多个PERC808提供的许可。例如,“时间衰老”密钥可以将额外的时间限制强加在访问某些受保护信息的行为中,其中,上述额外时间限制不依赖于PERC808包含的任何信息或许可,而是基于一个或多个时间和/或站点标识数值。

举一个例子,可以用时间衰老解密密钥使电子出版报纸的“尝试订阅”购买者在一个星期之内观看报纸的各版,而在一个星期之后,解密密钥将不再有效。在本例中,用户为了观看在那一星期以外的版,需要购买一个或多个新的PERC808,或接收相应信息以更新现有的一个或多个许可记录。对上述其它版的访问将受到全新定价结构的控制(如采用“常规”订购费用,而不是免费,或最低的“试阅”订购费)。

在较佳实施例中,可以采用单向或可逆的“密钥卷积”函数生成基于时间衰老的“真实密钥”。该卷积函数的输入参数可以包括:所提供的时间衰老密钥;特定于用户和/或站点的信息;(如果有RTC528的话)RTC528时间值的指定部分(例如一定数目的高位信息)或采用预定方法从该时间值导出的数值;以及一个块标识符或记录标识符,它们用于确保各个时间衰老密钥都是唯一的。“密钥卷积”函数的输出可以是一个“真实密钥”,它可以一直用来解密直到其作废为止。如果使用时间衰老密钥和一个不适当的时间值作为输入而运行该函数,通常会产生一个无法执行解密的无用密钥。

当经过的、绝对的或相对的时间(例如,该时间基于从某个时钟如RTC528等得到的实际时间)达到某些特定数值的时候,将会触发新的时间衰老密钥的产生。在该时刻,卷积过程将产生错误的密钥,而解密过程将会失败,直到时间衰老密钥被更新为止。根据时间或其它输入变量,可以改变用来确定何时产生新“时间衰老密钥”的条件本身,以便提供另一层次的安全性。因此,卷积函数和/或调用该函数的事件可以改变、移位或使用变化的量作为其参数。

下面举一个使用时间衰老密钥的例子。

1)制作者生成一个“真实”密钥,并用它加密信息内容。

2)制作者执行“逆向卷积”过程生成一个“时间衰老密钥”,该“逆向卷积”过程使用的输入参数有:

a)上述“真实”密钥

b)一个时间参数(如RTC528时间的高有效位)

c)可选的其他信息(如站点标识和/或用户标识)

3)制作者向信息内容用户分发该“时间衰老密钥”(如果信息内容用户的PPE650不在使用她已得到的卷积算法,那么制作者可能还需要分发卷积算法和/或参数)。

4)信息内容用户的PPE650将下列信息合并:

a)“时间衰老”密钥

b)时间的高有效位

c)所需的其他信息(与2c相同)

信息内容用户的PPE650执行卷积函数(即上面步骤(2)中的“逆向卷积”算法之逆)以便得到“真实”密钥。如果所提供的的时间和/或其它信息是“错误”的,该卷积过程将无法产生“真实”密钥,于是信息内容将无法得到解密。

与VDE对象300或其它项相关的密钥块既可以是普通密钥块,也可以是时间衰老密钥块,这可以由对象制作者在对象配置进程中指定,或者如果合适的话由分发者或客户管理员来指定。

“时间衰老”密钥还可以用作协议的一部分以提供PPE650之间的安全通信。例如,PPE650在通信时可以不用采用“真实”密钥,相反,VDE100可以只向PPE提供“部分”通信密钥。(举例来说)可以在初始化时将这些“部分”密钥提供给PPE650。可以用一个预定的算法产生“真实”密钥以便在安全通信中执行信息加密/解密。该预定算法可以在所有PPE650中采用同种方式“老化”上述密钥,或者可以要求PPE650在某些预定的时间与VDE管理员联系,这样,就可以将一套新的部分通信密钥下载到PPE650中。如果PPE650不生成“新的”部分密钥,或者是获取“新的”部分密钥,那么它将被禁止与其它PPE通信(可以提供另外一个“失效保险”密钥以确保该PPE可以与VDE管理员通信以便进行重新初始化)。PPE650中可以维护两套部分密钥,以便在使这两套密钥在所有VDE设备600之间有固定的重叠使用时间。可以定期地更新两套部分密钥中较老的那一套。

在较佳实施例中还可以对下列附加类型的密钥(这些密钥在后面将要讲到)进行“老化”:

单个消息密钥(即用于特定消息的密钥)

管理、静止和移动对象共用密钥

安全数据库密钥,及

私有体密钥和信息内容密钥

初始安装过程密钥管理

图64示意了在创建PPE650的过程中全局范围内或“主”密钥流程。在较佳实施例中,PPE650包含一个安全的、非易失性密钥存贮设备2802(如SPU500的非易失性RAM534B或由HPE655维护的安全存贮设备),该存贮设备2802由厂家生成的密钥和PPE本身生成的密钥进行初始化。

生产厂家拥有一个或多个由公开密钥2871/私有密钥2812组成的密钥对(“拥有”意为知道该密钥,并保护该密钥不被泄露或修改),这些密钥对用来批准和确认站点标识证明2821。对每个站点,生产厂家都生成一个站点标识2821和站点特征2822的列表。另外,生产厂家还拥有公开密钥2813、2814,用以确认加载模块和初始化代码下载。为了加强安全性,可以采用大量的上述证明密钥,而且可以只采用每种上述密钥的一个子集对各个PPE650进行初始化。

作为初始化进程的一部分,PPE650可以内部生成一对或多对特定于站点的公开密钥2815和私有密钥2816,或可以由生产厂家生成和提供这些密钥。PPE650使用这些密钥来证实其身份。同样地,对应于本站点的特定站点数据库密钥2817被产生出来,同时,如果需要的话(即如果随机数发生器542不可用的话),随机初始化种子2818将被产生。

初始化过程可以首先生成站点ID2821和特征2822,以及由站点公开密钥2815/私有密钥2816组成的密钥对。这些数值接着被合并,并可以被用来产生一个或多个站点身份证明2823。站点身份证明2823可以由公开密钥生成进程2804产生,它可以被存放在PPE的安全密钥存贮设备2802中,以及存放在生产厂家的VDE站点证明数据库2803中。

验证进程2804可以由生产厂家执行,也可以由PPE650内部执行。如果由PPE650执行,那么PPE将暂时接收身份验证私有密钥2812,生成证明2823,将该证明保存在本地密钥存贮设备2802中,同时将之传送给生产厂家。此后,PPE650必须删除它保存的身份验证保密密钥2812拷贝。

接着,初始化过程可以要求PPE650或生产厂家生成特定于站点的密钥2817和特定于站点的种子数值2818,这些生成的数值将被存放在密钥存贮设备2802中。另外,生产厂家可以提供下载证明密钥2814和加载模块证明密钥2813,这些密钥被保存在密钥存贮设备2802中。PPE650可以使用这些密钥对与外部实体间的所有进一步通信进行确认。

此时,通过下载经过加载模块密钥2813和下载密钥2814验证的信息,可以用可执行码和数据进一步初始化PPE650。在较佳实施例中,上述密钥可以用来数字签名要加载进PPE650的数据,保证其有效性,并且可以使用附加的密钥对这些数据进行加密,以防止其受到泄露,而这些附加密钥则采用特定于站点的公开密钥2815进行了加密。

安装和更新密钥管理

图65示意了进一步的密钥安装过程,该安装过程或者由生产厂家执行,或者由VDE管理员的后续更新过程完成。生产厂家或管理员可为下列密钥设置初始值或新值,这些密钥包括:私有头密钥2831、外部通信密钥2832、管理对象密钥2833或其它共用密钥2834。这些密钥可以是全局性的,如同全局性证明密钥2811、2813和2814那样,或者其使用范围可以只限于VDE实例的某个规定组中。

为执行该安装过程,安装者首先检索到目的地站点的身份证明2823,然后从中抽取出站点公开密钥2815。加密进程2841可以使用这些密钥以保护被安装的密钥。然后被安装的密钥被传送到目的地站点的PPE650内部。在PPE650内部,解密进程2842可以使用站点私有密钥2816解密传送来的信息。然后PPE650将被安装的或被更新的密钥存放在其密钥存贮设备2802中。

特定于对象的密钥使用

图66和67示意了在保护与VDE对象300相关的数据和控制信息时,密钥的使用。

图66示意了静止信息内容对象850的使用,该静止信息内容对象850的控制信息来自管理对象870。这些对象可以由PPE650接收(例如,可以通过网络从对象仓库728中检索这些对象,也可以从本地存贮设备中检索这些对象)。管理对象解密进程2843可以使用私有头密钥2815解密管理对象870,于是检索到PERC808,而PERC808则控制对信息内容对象850的访问。可以从该PERC808中抽取出私有体密钥810,交由信息内容解密进程2845使用,使信息内容对PPE650外部可用。另外,加密进程2844可以使用数据库密钥2817对PERC进行加密,准备将其保存在安全数据库610中PPE650的外部。在对信息内容对象850的后续访问中,可以从该安全数据库610中检索出PERC808,用数据库密钥2817对之解密,然后就可以直接使用,而不用从管理对象870中抽取出PERC808。

图67示意了有关移动对象860的类似进程。图66和67的主要区别在于PERC808是直接存放在移动对象860中,因此,可以在解密进程2843之后直接使用PERC808以产生私有头密钥2831。该私有头密钥2831用来处理移动对象860中的信息内容。

秘密密钥的变型

图64至67示意了公开密钥的较佳实施例,但它们也可以帮助理解秘密密钥的处理过程。在秘密密钥的实施例中,验证过程和公开密钥加密/解密进程由私有密钥加密过程代替,并且公开密钥/私有密钥对由单独的秘密密钥代替,这些秘密密钥在PPE650实例和其它团体(如加载模块提供者、PPE生产厂家)之间共用。另外,在秘密密钥实施例中,证明生成进程2804没有被执行,而且不存在站点身份证明2823或VDE证明数据库2803。

密钥类型

下面给出了密钥类型的详细描述,进一步解释了秘密密钥实施例。这并不是一个完整描述。较佳实施例PPE650可以为不同的用途而使用不同类型的密钥和/或不同的“共享秘密信息”。某些密钥类型适用于使用公开密钥/秘密密钥实现中,另一些密钥则适用于只使用秘密密钥的实现中,还有一些密钥则两种实现皆可适用。下表列出了较佳实施例中使用的各种密钥和“共享秘密信息”的例子,并说明了这些信息的使用场合和存放地点。

密钥/秘密信息类型在PK或非PK中使用存放地点示例主密钥(可以包括上述的某些特定密钥)两者皆可PPE生产厂家设备中VDE管理员制造密钥两者皆可(PK可选)PPE(在PK情况下)生产厂家设备中证明密钥对PKPPE证明存放库公开/私有密钥对PKPPE证明存放库(仅限于共开密钥)初始秘密密钥非PKPPEPPE制造标识非PKPPE站点标识、共用代码、共用密钥以及共享秘密信息两者PPE下载授权密钥两者皆可PPEVDE管理员外部通信密钥和其它信息两者皆可PPE安全数据库管理对象密钥两者皆可许可记录静止对象密钥两者皆可许可记录移动对象共用密钥两者皆可许可记录安全数据库密钥两者皆可PPE私有体密钥两者皆可安全数据库某些对象信息内容密钥两者皆可安全数据库某些对象授权共享秘密信息两者皆可许可记录安全数据库备份密钥两者皆可PPE安全数据库

主密钥

“主”密钥是用来加密其它密钥的密钥。可以在PPE650中提供一个初始密钥或“主”密钥以便以安全方式传递其它密钥。在PPE650的初始化过程中,某些代码和共用密钥下载到PPE中。由于这些代码包含安全卷积算法和/或系数,因而它们类似于“主密钥”。同时也可以把共用密钥看成是“主密钥”。

如果用公开密钥密码系统作为与PPE650进行外部通信的基础,那么在PPE公开密钥对验证过程中需要使用一个主密钥。该主密钥可以是(举例来说)生产厂家或VDE管理员用来建立数字证明(被加密的公开密钥或PEP的其它信息)的一个私有密钥。也可以是VDE管理员对证明存放库中的项目进行加密所用的一个私有密钥。一旦出现验证过程,PPE就可以使用它们的证明在互相之间建立外部通信。

如果用共用秘密密钥作为外部通信的基础,那么为进行PPE650的初始化,需要使用一个初始秘密密钥建立外部通信。由于该初始秘密密钥用来加密其它密钥,所以它是一个“主密钥”。在PPE初始化进程中,可以下载一组共用部分外部通信密钥(参看前面的叙述),这些密钥可以用来建立后续的外部PPE通信。

制造密钥

制造密钥用于制造PPE过程中,以防止在初始化时下载到PPE中的、特定于PPE的密钥信息被生产人员获知。例如,作为制造设备一部分而运行的PPE650可以产生某些信息,这些信息需要下载到正在进行初始化的PPE中。在PPE650之间传送这些信息时,必须要对这些信息进行加密以保证其机密性,否则生产人员将会读取这些信息。制造密钥则用来保护上述信息。制造密钥可以用来保护下载到PPE中的各种其它密钥,例如:验证私有密钥、PPE公开/私有密钥对、以及/或者其它密钥如特定于PPE的共用秘密密钥。由于制造密钥用来加密其它密钥,所以它是“主密钥”。

制造密钥可以基于公开密钥,也可以基于共用秘密信息。一旦下载了信息,那么当前已经初始化了的PPE650可以丢弃(或简单地不使用)制造密钥。可以在制造时将制造密钥硬接线到PPE650中,或者将它作为PPE的第一个密钥传送给PPE,然后在以后不再用的时候将之丢弃。有一点在前面的表中已经指出并且本文也进行了说明,即:如果PPE内含有PK功能,那么就不需要制造密钥。

验证密钥对

验证密钥对可以用来作为PPE650和VDE电子设备600“验证”进程的一部分。在较佳实施例中,这一验证进程可用来允许VDE电子设备提出一个或多个证明它(或其密钥)是可信的“证明”。如上所述,PPE650可以使用该“验证”进程来“证明”该PPE650是一个可信的VDE PPE,该PPE650具有一定的安全级别以及功能组(如它是基于硬件的,而不是仅仅基于软件的),等等。简而言之,上述“验证”过程可能涉及的处理是采用验证密钥对中的一个证明私有密钥对包含另一个VDE节点公开密钥的信息进行加密。验证密钥对中的私有密钥最好用来生成一个PPE证明。它用来加密PPE的一个公开密钥。PPE证明可以存放在PPE中,也可以存放在证明存放库。

根据所选鉴别技术,验证密钥对的公开密钥和私有密钥可能需要得到保护。在较佳实施例中,通过在各PPE间分发验证公开密钥,使得PPE可以在作为验证过程一个方面的证明解密过程中利用这些密钥。由于在较佳实施例中,上述公开密钥是在PPE650内部使用,所以该公开密钥没有必要以明文形式投入使用,并且无论如何,维护该密钥的完整性并且在传送时保证其完整性都是相当重要的(例如,在初始化过程中和/或由VDE管理员更新的过程中都需要传送给密钥)。如果验证公开密钥是保密的(即只有在PPE650内部才可以得到其明文形式),那么将会使对安全性的攻击行为变得困难得多。验证密钥对的私有密钥必须是保密的,并且只能由验证机构存放该密钥(即不能分发该密钥)。

在较佳实施例中,为了能够使不同的安装设备具有不同级别/可信程度/安全性,可以使用不同验证密钥对(如可以使用一些验证密钥来验证HPE655,而使用另一些不同的验证密钥来验证SPE503)。

PPE公开/私有密钥对

在较佳实施例中,每个PPE650都拥有自己唯一的“设备”(和/或用户)公开/私有密钥对。该密钥对中的私有密钥最好在PPE内部产生而绝不以任何形式暴露于PEP之外。因此,在较佳实施例中,PPE650可以提供有某个内部功能以便内部地产生密钥对。如果PPE内部地产生其自身的公开密码系统密钥对,那么上述的制造密钥可能就不再需要了。根据需要而且更考虑到成本问题,可以只在制造PPE650的时候才暴露密钥对,并且当时可以使用制造密钥对之进行保护。允许PPE650内部地产生其自身的公开密钥对可以使该密钥对得到隐藏,但是在某些应用中,由于将公开密钥对发生器放到PPE650中的成本较高,上述做法可能得不偿失。

初始秘密密钥

一个只基于秘密密钥的PPE650可以将初始秘密密钥用作一个主密钥,以保护在初始化过程中下载到PPE中的信息。它由PPE650生成,从PPE发送到用制造密钥加密的安全制造数据库中。作为响应,安全数据库发回唯一的PPE制造ID,该PPE制造ID由上述初始秘密密钥加密。

基于初始秘密密钥在PPE初始化过程中所起的特殊作用,该初始化秘密密钥可能比用于“标准”加密的密钥长得多。由于由此带来的解密开销仅在初始化进程中出现,因而采用该密钥的选定部分通过解密硬件进行多遍处理还是可以接受的。

PPE制造ID

PPE制造ID不是一个“密钥”,但它确实满足“共享秘密信息”的典型定义。PPE制造ID最好唯一地标识PPE650,并且可以由安全数据库610用来在PPE初始化进程中确定PPE的初始秘密密钥。

站点ID、共享代码、共用密钥以及共享秘密信息

VDE站点ID、共享代码、共用密钥以及共享秘密信息最好或者在PPE初始化进程中下载到PPE650中,或者在PPE初始化进程中由PPE作为该进程的一部分内部产生。在较佳实施例中,多数或所有的这种信息是下载得到的。

PPE站点ID唯一地标识了PPE650。该站点ID最好是唯一的,以便唯一地标识PPE650并从所有PPE中区分出上述特定PPE来。在较佳实施例中,站点ID提供了一个唯一的地址,该地址可适用于多种用途,例如它可以提供“地址隐私性”功能。在某些情况下,站点ID可以是PPE650的公开密钥。而在另一些情况下,该PPE站点ID可以在制造过程和/或初始化进程中指定。在PPE650不具有公开密钥功能的情况下,最好不要将设备秘密密钥作为唯一的站点ID,因为这样将会暴露该密钥过多的数据位,因此,应该用另一个信息串来充当站点ID。

共享代码包含一些特定的代码段,这些代码段向PPE650提供了至少一部分控制程序。在较佳实施例中,在PPE制造过程中安装了基本的代码段,该代码段使得PPE可以进行自举并启动初始化进程。可以在初始化进程中或在后续的下载进程中利用更新了的控制逻辑将该代码段替换掉。

共用密钥可以在初始化进程中被下载到PPE650中。这些密钥可以用来(举例来说)解密许多对象结构的私有头。

当PPE650只运行于秘密密钥模式时,初始化进程和下载进程可以向PPE650输入共享秘密信息。在通信过程中可以使用这些共享秘密信息,使PPE650能够鉴别其它PPE和/或用户的身份。

下载授权密钥

在初始化下载进程中PPE650接收下载授权密钥。下载授权密钥用来授权进一步的PPE650代码更新、密钥更新,它还用来保护PPE安全数据库610的备份,以便在PPE失效时可以(举例来说)由VDE管理员恢复。同时使用下载授权密钥、站点ID、时间和卷积算法可以得到特定于站点标识的密钥。下载授权密钥可以还可以用来加密密钥块,该密钥块用来加密安全数据库610的备份。下载授权密钥还可以用来形成特定于站点的密钥,该特定于站点的密钥可以支持将来对PPE650的下载。在较佳实施例中,下载授权密钥并不在所有PPE650之间共用。它由经授权的VDE管理员所执行的功能专用。

外部通信密钥和相关的秘密和公开信息

在某些情况下当PPE650进行通信的时候需要使用密钥。建立安全通信的过程也可能需要使用与欲通信的电子设备600相关的公开和秘密信息。外部通信密钥和其它信息就用来支持和鉴别安全通信。在较佳实施例中,这些密钥包含一个公开密钥对,不过作为一种选择或补充方案,也可以使用共用秘密密钥。

管理对象密钥

在较佳实施例中,管理对象共用密钥可以用来解密管理对象870的私有头。在管理对象的情况下,私有头中可以含有一个许可记录808。在某些情况下,许可记录808可以作为一个管理对象(或存放在管理对象之中)被分发出去,以提供对其它管理对象信息内容的处理权。许可记录808最好含有用于私有体的密钥,并且,可被访问的信息内容的密钥将是在上述许可记录808中所引用的预算。管理对象共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。

静止对象密钥

静对象共用密钥可以用来解密静止对象850的私有头。如上所述,在某些情况下,静止对象850的私有头中可以出现许可记录808。如果出现的话,许可记录808可以包含用于私有体的密钥,但不包含用于信息内容的密钥。这些共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。

移动对象共用密钥

移动对象共用密钥可以用来解密移动对象860的私有头。在较佳实施例中,移动对象的私有头中可以含有许可记录808。许可记录808可以包含用于私有体的密钥,它也可以包含用于信息内容的密钥,而对于这些信息内容而言,许可记录808已经准许了对它们的访问。这些共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。

安全数据库密钥

PPE650最好生成这些安全数据库密钥并永不将它们暴露到PPE的外界。在较佳实施例中,这些安全数据库密钥是特定于站点的并如上所述是可以“老化”的。如上所述,每当一个被更新的记录被写入安全数据库610中的时候,一个新密钥将投入使用,并且被保存在PPE内部的一个密钥列表中。PPE 650可以定期地(以及在内部列表没有空间的时候)生成一个新密钥以加密新记录和老记录。根据安全数据库610容量,使用一组密钥而不是一个密钥。

私有体密钥

私有体密钥对于对象300是唯一的,并且它们不依赖于共享于PPE650之间的密钥信息。最好由PPE 650在加密私有体的时候生成私有体密钥,并且可以将实际时间作为它们的一部分,以便使其“老化”。这些密钥保存在许可记录808中,其使用可以由预算来控制。

信息内容密钥

信息内容密钥对于对象300是唯一的,并且它们不依赖于共享于PPE 650之间的密钥信息。最好由PPE 650在加密信息内容的时候生成信息内容密钥,并且可以将实际时间作为它们的一部分,以便使其“老化”。这些密钥保存在许可记录808中,其使用可以由预算来控制。

授权共享秘密信息

访问或使用PPE 650或安全数据库610中的信息可以通过使用授权“共享秘密信息”来控制,而不是使用密钥来控制。授权共享秘密信息可以存放在由它们授权的记录(许可记录808、预算记录等等)中。可以在创建相应记录的时候提出授权共享秘密信息。可以由一个有授权资格的PPE 650生成授权共享秘密信息,并且当记录被更新时可以替换共享秘密信息。授权共享秘密信息具有与“功能”有关的某些特性,这些功能用于基于功能的操作系统中。在较佳实施例中,访问标记(下面将要讲到)是一种重要的授权共享秘密信息集合。

备份密钥

如上所述,安全数据库610的备份过程包括读取所有安全数据库记录和当前审核“堆积”(roll up),这些记录和信息存放在PPE 650中,也可存放在外部。于是,备份进程使用一组新产生的密钥对上述信息进行解密和重新加密。这些密钥、备份的时间、以及可以标识该备份的其它相应信息可以被多次加密,并且可以同以前加密的安全数据库文件以及堆积数据一起存放在备份文件中。然后,使用由PPE 650内部生成和保存的一个“备份”密钥对这些文件进行加密。如果需要的话,PPE可以使用备份密钥500恢复备份。备份密钥也可以被安全地加密(例如,使用下载的授权密钥和/或VDE管理员公开密钥),并存放在备份本身之中,以便在出现PPE 650失效时VDE管理员可以恢复备份。

密码密封(Cryptographic Sealing)

某些时候,信息可能遭到不受PPE 650控制的修改,这种修改可能是偶然的,也可能是对VDE安全性的蓄意破坏,此时可以用密封来保障信息的完整性。密封有两种特定应用,即数据库记录校验值的计算,以及对交换至SPE 500之外的数据块的保护。

有两种类型的密封:无密钥密封—也称为密码散列,以及有密钥密封。两种技术都采用了具有较强密码功能的散列函数,如MD5或SHA。这种函数将任意长度的数据作为输入,并产生一个固定长度的散列,或称“提炼数据”(digest),该提炼数据具有一种特性,即不可能计算出产生同一提炼数据的两个输入,也不可能计算出产生特定提炼数据的一个输入,此处的“不可能”是相对于工作量因素而言的,而工作量因素又取决于提炼数据的位长。举例来说,如果认为256位的散列函数在密码特性方面较强的话,那么在可能产生复制的或指定的提炼数据之前必须进行平均大约1038(2128)次尝试。

无密钥封条(keyless seals)可以用来做数据库记录(如PERC808)和类似应用中的校验值。无密钥封条可以根据记录体内容而计算得出,并且可以与记录的其余部分存放在一起。可以对封条和记录的组合进行加密,以便保障其存贮的安全性。如果某人在不知道加密密钥(该密钥或者部分地代表数据,或者部分地代表封条)的情况下加密了记录,那么被加密的信息内容将与原先的不同,而被加密的校验值将不能匹配由记录数据得到的提炼数据。即使知道了散列算法,也不可能修改记录数据及其封条以实现对应,因为这两者都已经经过了加密。

对于未经加密地保存于受保护环境之外的数据来说,可以用有密钥封条作为它们的保护措施;另外,有密钥封条还可以用作两个受保护环境之间的有效性证明。有密钥封条的计算方法与无密钥封条的类似,不同之处在于:在被封的数据前面逻辑地加上了初始秘密数值,因此提炼数据取决于秘密值和数据两者,而且不可能计算出一个新的封条使之对应于被修改的数据,即使该数据本身对破坏者是可见的。有密钥封条可以利用单个秘密数据保护存放的数据,或者可以保护在共享单个秘密数值的两个环境之间传送的数据。

对于有密钥和无密钥封条的选择要根据被保护数据的特性,以及该数据是否还经过了加密的保护。 

加标记。

在支持重要部件组和相关信息在二级存贮器652中的安全存放方面,加标记特别有用。信息“加标记”和加密技术的结合使用可以实现用廉价的大容量存贮设备安全地存放信息。这种方法可以部分地允许、限制和/或记录VDE节点的配置、管理和操作以及对受VDE保护的信息内容的使用。

当加密的或安全化的信息被传递到用户的VDE安全处理区(如PPE 650)中时,该信息的一部分可以被用作一个“标记”,该标记首先被解密或被解除安全防范,然后与一个预期的数值相比较,以确认该信息确实是预期的信息。因此,可以将标记作为一个确认进程的一部分,该确认进程用来确认收到的受VDE保护信息的身份和正确性。

较佳实施例的控制结构中可以包含三种类型的标记:

访问标记

确认标记

关联标记

这些标记各自有不同的目的。

访问标记可以用作受VDE保护的元素与实体之间的“共享秘密”,而这些实体则得到授权可以读和/或修改被标记的元素。访问标记可以被划分成分开的字段以独立地控制不同的行为。如果某个元素如方法核心1000’使用了一个访问标记,那么影响该元素的管理事件必须带有被影响元素的访问标记(或访问标记的一部分),并且在某个事件被提交处理的时候要确立该标记。如果访问标记经过了安全的维护(例如,在创建元素的时候由PPE 650内部产生访问标记,并且只能以加密结构的形式将访问标记从PPE 650中释放出来),并且只将其分发给授权的团体,那么可以更为容易地控制对其结构的修改。当然,控制结构(如PERC 808)可以进一步地限制或核实由管理事件执行的修改或其它行为。

关联标记用于一个元素引用另一个元素的时候。例如,制作者在引用他们存放于制作者PERC中的预算之前预算拥有者可能首先向制作者发出要求以便获取许可并建立业务关系。当这种关系建立好以后,预算所有者可以将一个或多个关联标记传送给制作者,这可以作为一个步骤以允许制作者产生的PERC使之引用预算所有者的预算。

确认标记则有助于检测出破坏者替换记录的企图。

在某些方面,上述三种类型的标记在功能上有重叠。例如,通常访问标记出现不一致将禁止某种修改企图,但是如果在执行访问标记检查之前首先检查出关联标记不一致,那么将同样禁止该修改企图。较佳实施例在某些情况下可以利用这种重叠以减少开销,例如,如上所述,用访问标记充当类似上述的确认标记的角色。

通常,加标记过程包括:在SPE 503中改变加密密钥、安全化技术、以及/或者提供特定的、被存贮的标记。结合存放在所述廉价大容量存贮设备652中的安全数据库610信息执行上述过程可以用来对受VDE保护信息和管理数据库信息进行鉴别、解密、分析、使用,或使之可用。一般来说,改变确认标记的过程涉及将对应于标记变化的一个或多个信息元素保存在VDE节点硬件中。将信息保存于具有物理安全性的硬件SPE可信环境之外是一种非常节约成本的安全存贮途径,通过对信息进行上述加标记可以增强被存贮的重要管理数据库信息的安全性。频繁地执行标记“更换”(例如每次加密一个给定记录的时候进行一次更换)可以防止“不正确”信息对“正确”信息的替换,因为所述替换信息不带有某些特定信息,而这些特定信息可以在后续对其的检索过程中匹配存放在硬件SPE中的加标记数据。

作为信息加标记的另外一个好处,使用标记有助于有效地对双方或多方之间的信息和/或控制机制进行强化和/或校验。如果信息由一方进行了标记,然后传递给其它方,可以使用一个标记作为预期的数值,该数值与发生在双方之间的、有关被标记信息的通信和/或交易相关联,例如,如果某个标记与A方传递给B方的某个数据元素相关联,那么在与所述数据元素相关联的信息和/或所述数据元素的部分信息从B方发布给A方之前,B方可以请求A方证明自己知道一个标记至少其中一部分的正确值,反之亦然。再举一个例子,A方可以使用一个标记来确认由B方发来的信息确实与被标记的数据元素有关,以及/或者确实是被标记元素的一部分,反之亦然。

建立安全的、经鉴别的通信通道

两方(如PPE A和B)会不时地需要建立这样的通信通道,双方都知道该通道具有防窃听能力和防破坏能力,并且只能由这两方使用,而这两方都准确地知道相互的身份。

下面描述一个建立上述通道的示例进程,并介绍多方如何产生和确认安全性和鉴别的要求。本文将以抽象的形式就各方必须确立的声明和信任等方面展现上述进程,本文不打算将该进程作为任何特定协议的规范。特别是,无需使用不同的操作来实现每个步骤的各个子步骤;实际上,经常将相关证明的确立和确认合并到一个操作中。

不一定要按照下述的次序执行各个子步骤,一个例外是只有在另一方作出声明之后,才能对该声明的有效性进行证明。这些步骤可能涉及两方之间更多的通信,而不仅仅局限于所列举的那些子步骤所隐含的通信,因为信息的“传送”本身可以又分成多个子步骤。另外,不一定要在传送过程中对声明和证明进行保护以避免泄露或修改。同时,并不把有关声明的信息(包括特定的通信提议和确认)看作是受保护的信息。对证明的任何修改都将导致证明变成无效,并且将导致该进程失败。

该进程可以使用标准的公开密钥或秘密密钥密码技术(如X.509、经鉴别的Diffie-Hellman、Kerberos)。较佳实施例使用三向X.509公开密钥协议(three_way X.509 public key protocol)步骤。

下面列出的可以是该示例进程的前两步:

A.(先导步骤):由A产生一种方法以便创建可确认的声明

B.(先导步骤):由B产生一种方法以便创建可确认的声明

这两步用来确保每一方都有一种产生声明的方法,而所产生的声明可以由另一方来确认,例如,可以使用公开密钥签名机制,在这种机制中,两方都维护一个私有密钥,并提供一个公开密钥供对方用,该公开密钥本身由验证机构的数字签名进行了鉴别。

下面的步骤可以是:

A.(提议步骤):

1.确定B的身份

2.获取一种方法以便确认由B产生的声明

3.为本次所提议的通信创建一个唯一的身份

4.创建一个通信提议,该提议标识了双方和特定通信

5.为A的身份和通信提议的源创建可确认证明

6.将通信提议和相关证明传递给B

上述步骤确立对应B方的身份,并提议通信。由于通信的建立需要对B产生的声明进行确认,所以必须向A提供一种机制以确认这种声明。由于通信的建立对于A方为了通信而提出的特定请求必须具有唯一性,所以该通信提议和所有相关的业务都必须能够清楚地与所有其它类似业务区分开。由于B必须确认该提议是来自A的合法提议,所以必须提供一个证明以表明该提议是有效的。

后续步骤可以按如下进行:

B(确认步骤)

1.从通信提议中抽取出A的身份

2.获取一种方法以便确认由A产生的声明

3.确认A声明的身份和通信提议源

4.确定通信提议的唯一标识

5.确定该通信提议没有重复先前的提议

6.创建一个确认,该确认标识了上述特定的通信提议

7.为B的身份及确认源创建可确认的证明

8.将确认和相应证明传递给A

上述步骤确立了B方已经收到来自A方的通信提议,并准备处理该提议。由于B必须确认该提议,所以B必须首先确定该提议的源并确认其可信性。B必须确保其响应与某一特定提议相关联,而且该提议不是重复。如果B接受该提议,那么它必须证明自己的身份,并证明自己已经收到了特定提议。

后续的步骤可以是:

A.(建立步骤):

1.对B响应A的特定建议而发回的声明确认进行确认

2.从确认中抽取出特定通信提议的身份

3.确定该确认与一个未完的通信提议相关联

4.创建所提议通信要使用的唯一会话密钥

5.为A执行的会话密钥生成创建证明

6.为会话密钥与特定通信提议具有相关性创建证明

7.为收到B的确认创建证明

8.保护该会话密钥以避免在传送过程中被泄露

9.保护该会话密钥以避免在传送过程被修改

10.将受保护的会话密钥和所有证明传送给B

在上述步骤中,A指定了一个会话密钥,该密钥针对的是与A的特定通信提议相关的所有进一步业务。A必须创建该密钥,并证明该密钥是A创建的,还要证明该密钥与被提议的特定通信相关联。另外,A必须证明生成该会话密钥是为了响应B对上述提议的确认。必须保护该会话密钥以避免被泄露和修改,这样做是为了确保破坏者无法用另外的数值替换该密钥。

VDE安全设备在PPE 650之间的传输能力

在较佳实施例中,可以采用上述的各种密钥将适当的VDE对象300以及其它安全信息从一个PPE 650安全地传送到另一个。VDE 100利用重新分发VDE管理信息的方法交换VDE对象300的所有权,并允许在电子设备600之间传送对象。

VDE对象300的许可记录808含有权利信息,该信息可用来确定一个对象是否能被总体地、或部分地分发或完全不分发。如果VDE对象300可以被重新分发,那么电子设备600通常必须拥有允许自己重新分发该对象的“预算”和/或其它许可。例如,一个经授权可以重新分发对象的某个电子设备600可以创建一个管理对象,而该管理对象含有的预算或权限要低于或等于该电子设备600所拥有的预算或权限。某些管理对象可以被送往其它PPE 650。收到该管理对象的PPE 650能够使用相关对象预算或权利的至少一部分。

转移VDE对象300的所有权是一种特殊情况。其中,对应于VDE对象的全部许可和/或预算都被再次分发给另外一个PPE 650。某些VDE对象可以要求传送所有的对象相关信息(例如它可能将全部权限都“出售”给对象)。但是,某些VDE对象300可禁止这种转移。在转移所有权的情况下,VDE对象300的新所有者在完成所有权转移之前可能需要与该对象的原始提供者联系,向其通知转移,并利用再次授权中所伴随的授权共享秘密对其进行确认。

当电子设备600收到一个部件组时,该部件组中的一个加密部分中将包含只有提供部件组的一方或PPE 650才知道的一个数值。该数值可以与最终必须返回给该部件提供者的信息(如审核、计帐或相关信息)保存在一起。当部件提供者请求得到上述信息的报告时,提供者可以出示上述数值,以便本地的电子设备600将之与原来提供的数值做对比检查,以确保该请求是合法的。当收到一个新部件的时候,可以对照旧部件来检查新部件中的上述数值,以确定这个新部件是否是合法的(举例来说,新部件可包含下一报告进程所用的新数值)。

VDE安全性的完整性

有许多途径可能会造成对PPE 650的破坏。VDE 100所提供的安全性的目标是减少系统受到破坏的可能性,并在破坏发生时将不利影响降至最低。

本文假设用来实现VDE 100的基本密码算法是安全的(即具有较强的密码特性)。这些算法包括对信息内容进行秘密密码加密、针对完整性验证的公开密钥签名、用公开密钥加密在PPE 650之间或PPE和VDE管理员之间所传送的秘密信息,等等。本文假设破坏者没有能力对上述算法进行直接破坏。对于VDE 100的本地版本来说,上述某些假设可能是安全的,因为控制信息的底层基本结构含有足够长的密钥,并且经过了充分的证明。

下面列出了可能较为严重的几种威胁或破坏危险:

未经授权地创建或修改部件组(如预算)

未经授权地大量暴露信息内容

破坏一个或多个密钥

对硬件PPE进行软件仿真

用老记录替换新记录

引入“欺骗性”(即虚假的)加载模块

重复破坏行为

使“指纹功能”失效

未经授权地暴露个别的信息内容项

再次分发个别的信息内容项

如果一个或多个加密密钥受到了破坏,那么将会出现严重的安全性潜在缺口。如上所述,VDE 100使用的加密密钥具有充分的多样性和分离性,因而在大多数情况下,破坏了一个密钥给破坏者带来的价值是有限的。如果一个验证私有密钥遭到泄露,破坏者虽然因此可以通过上述的查问/应答协议,但随后即将面临下一级别的安全防范措施,它需要破坏者或者破解初始化查问/应答过程,或者破坏外部通信密钥。如果该初始化查问/应答的安全性防护也被突破,那么初始化代码和各种初始化密钥也将遭到暴露。但是,为了找到共用的VDE密钥并重复密钥生成(“卷积”)算法,仍然需要理解代码和数据。另外,上述欺骗性过程还必须保存正确的实际时间值。如果破坏者能够成功地完成上述所有步骤,那么与该仿冒的PPE进行的所有安全通信都将受到危及。如果在发送给仿冒PPE的信息中出现了与某个对象许可记录808相关的信息,那么该对象将遭到危及。

如果泄露了PPE下载授权密钥和用来生成特定加密密钥的算法—该加密密钥用来加密安全数据库610备份所用的密钥,那么可能危及特定电子设备600中的整个安全数据库。但是,为了利用上述信息来危及VDE对象300的信息内容,还必须了解VDE的适当内部细节。在较佳实施例中,通过在存放于安全数据库610中的私有体密钥和信息内容密钥之中加入时问分量,可以使这些密钥“老化”。将时间与上述被保存的数值进行卷积运算将得到解密信息内容所需的“真实密钥”。如果该过程也遭到了破坏,将会暴露对象信息内容或方法。在较佳实施例中,由于在没有得到经授权的VDE管理员的干预前,绝不会向PPE 650恢复安全数据库610的备份,因此不得不使用“仿冒的”的PPE来利用上述信息。

在较佳实施例中,外部通信共用密钥与基于站点ID和时间的密钥卷积算法结合使用。假如这些信息遭到破坏,为了能进一步利用它们,还必须了解与PPE 650进行通信所需的所有步骤。另外,必须破坏管理对象共用密钥中的至少一个密钥才能够访问被解密的许可记录808。

除非“破解者”还知道外部通信密钥,否则破坏管理对象共用密钥是毫无价值的。所有管理对象都由唯一的密钥进行加密,这些密钥利用共用的外部通信密钥、站点ID和时间进行交换。为进一步解密管理对象的信息内容还必须了解PPE 650的内部细节。

如果静止对象(或使用同一共用密钥的任意其它静止对象)的私有头遭到了破坏,那么将会使破坏者能够访问其信息内容,直到该共用密钥“老化”到不能继续解密私有头为止。除非对应于该对象的许可记录808也遭到了破坏,否则,该对象的私有体和信息内容都不会被暴露。上述对象的私有头一直处于被破坏的状态,直到上述密钥“老化”到不能继续解密私有头为止。

在较佳实施例中,安全数据库加密密钥更换较为频繁,并且是特定于站点的。破坏安全数据库610文件或记录的后果取决于被破坏的信息。例如,许可记录808含有对应于VDE对象300公开体和信息内容的密钥。如果许可记录808遭到破坏,同时假设产生“真实密钥”的算法也被泄露的话,那么由该许可记录提供的密钥所保护的对象部分也将遭到破坏。如果私有体密钥被泄露,那么对象的私有体将遭到破坏,直到该密钥“老化”、过期为止。如果该密钥的“老化”过程仍然遭到泄露,那么破坏将一直持续下去。由于私有体中可能含有由许多不同对象共享的方法,因而这些方法也将被破坏。一旦检测到上述破坏行为,提供预算和许可的所有管理对象都应该更新被破坏的方法。存放于安全数据库610中的方法只能由更新的方法版本来替换,因此当替换完成后,被破坏的版本将没有任何用处。

如果信息内容密钥遭到破坏,那么由该密钥加密的信息内容部分也将遭到破坏,直到该密钥“老化”并过期。如果该密钥的“老化”过程仍然遭到泄露,那么破坏将一直持续下去。如果使用了多级的加密过程,或者对信息内容的不同部分使用了不同的密钥进行加密,那么只了解单个密钥将不足以泄露某些或全部信息内容。

如果授权共享秘密信息(如某个访问标记)被泄露,假设“破解者”了解如何正确地使用该秘密信息,那么他可以利用一种经过授权的手段来修改包含该秘密信息的记录。一般来说,在共享秘密信息能派上用场之前,还必须“破解”外部通信密钥、管理对象密钥和管理文件密钥。当然,要得以利用这些信息还需要了解协议的任何细节。

在较佳实施例中,PPE 650可以检测它是否遭受了破坏。例如,通过将存放在SPE 503中的信息(如概要服务信息)与存放在安全数据库610中的信息和/或传送给VDE参与者(如VDE票据交换所)的信息进行比较,不一致的情况将变得显而易见。如果PPE 650(或某个正对其行为进行监测或正与其进行通信的VDE管理员)检测到它已经遭到了破坏,那么它将接受一个初始化过程的更新,以便使用新的代码、密钥和新的加密/解密算法。在加密系统遭到破解的时候,上述方法将会限制这时存在的VDE对象300的泄露。有可能要求PPE 650在某段时间之后停止运行,直到下载了新的代码和密钥为止。也有可能是VDE管理员强迫进行更新操作。还有一种可能,即在用户希望得到一个新VDE对象300的同时,他也意识到应该定期地更新其PPE 650。

最后,由于VDE应用具有端-对-端特性,即信息内容108按一个方向移动,而报告和帐单118的生成则发生在另一端,这种特性因而使“逆向”一致性检查成为可能。这种在票据交换所116中执行的检查可以检测使用的模式,而使用模式则可以或确实表明欺骗行为(如未支付相应费用便过度地获取被保护的信息内容,存在使用记录而不存在相应的计帐记录)的发生。借助于细粒度的使用报告,同时又由于电子格式的使用记录和报告可以随时得到,便可以创建复杂周密的欺骗行为检测机制,从而使为补救欺骗行为而花费的代价维持在一个可接受的水平上。

PPE初始化

每个PPE 650必须首先经过初始化才能投入使用。初始化过程可以在生产厂家所在地进行,也可以在PPE已经在厂外安置好以后进行,或两者皆可。PPE 650的制造过程通常涉及在PPE内部放入足够的软件,这些软件将允许该设备可以在以后进行更加完整的初始化。该制造过程可以包括(举例来说)对永久保存在PPE 650中的引导加载程序和查问-应答软件进行测试,并载入PPE的唯一ID。执行这些步骤以后,将产生一个具有VDE基本功能的PPE 650,该PPE 650可以被进一步初始化(举例来说,可以在该PPE 650已安装在电子设备600之内并且安放到位之后,再对该PPE 650进行进一步的初始化)。在某些情况下,可以将制造过程和进一步的初始化进程合并在一起,以产生“VDE就绪”PPE 650。前面已经结合图64和65对该步骤进行了概要性介绍。

图68示意了按照一个较佳实施例而执行的步骤示例,该步骤用来初始化PPE 560。在该流程图中,某些步骤可以在生产方执行,某些步骤则可以借助VDE管理员和PPE 650之间的相互联系而远程地执行。作为可选方案,图中的所有步骤都可以在生产方执行,或借助VDE管理员和PPE 650之间的远程通信而执行。

如果初始化进程1370是在生产方执行,则首先将PPE 650固定在一个测试台上。该生产测试台可以首先复位PPE 650(如利用上电清除)(处理框1372)。如果在生产方执行该复位操作,那么PPE 650最好执行一段特殊测试台引导代码,该代码从软件的角度对PPE的操作进行完整地测试,并且在PPE出现问题时测试将失败。之后,将采用初始查问-应答交互作用在生产测试台和PPE之间建立安全的通信交换过程(处理框1374),该交互作用最好是测试台引导进程一部分。一旦建立了上述安全通信,PPE 650可向生产测试台报告它所执行的引导测试的结果。假设PPE 650测试成功,生产测试台可以将新代码下载到PPE 650中,以更新其内部引导代码(处理框1376),以便使PPE650在以后复位时不再执行测试台引导进程(处理框1376)。然后,生产测试台可以将新的固件载入PPE内部非易失性存贮器中,以便提供另外的标准和/或定制功能(处理框1378)。例如,生产测试台可以将加载模块预装入PPE 650中,而这些加载模块则适合于特定的生产地点。该步骤允许在生产地点对PPE 500进行定制,使之适合特定应用。

随后,生产测试台可以将唯一的设备ID载入PPE 650内部(处理框1380)。此时,PPE 650带有了唯一的ID,该ID可以用于进一步的交互作用。

在较佳实施例中,处理框1372-1380R通常在生产地点执行。处理框1374以及1382-1388则既可以在生产地点执行,也可以在PPE 650安装完毕后执行,或两者皆可。

为了进一步初始化PPE 650,一旦在PPE和生产测试台或VDE管理员之间建立了安全通信(处理框1374),所有的所需密钥、标记或证明都被载入PPE 650中(处理框1382)。例如,生产测试台可以将其信息载入PPE 650之中,于是PPE可以在以后某个时间进行初始化。某些上述数值可以在PPE 650内内部地产生。之后,生产测试台或VDE管理员可以用当前的实际时间值来初始化PPE实时时钟528(处理框1384)。这将为PPE 650提供时间和日期的引用。下一步,生产测试台或VDE管理员可以初始化由PPE 650内部维护的概要数值(处理框1386)。如果已经将PPE 650安装成某个电子设备600的一部分,那么此时该PPE可以初始化其安全数据库610(处理框1388)。

图69示意了由PPE 650执行的程序控制步骤示例,该步骤是固件下载进程的一部分(参看图68,处理框1378)。PPE下载进程用来将外部提供的固件和/或数据元素载入PPE中。固件载入过程可以有两种形式:永久性载入和暂时性载入,前者用来载入一直驻留于PPE 650中的软件,后者是被加载用于执行的软件。为了把已经发送给电子设备600的元素保存到安全数据库610中,需要执行一个相关进程。

PPE 650自动执行若干检查,以确保被下载到PPE中的固件在载入之前没有遭到破坏、替换或替代。图中所示的下载例程1390示意了该检查的示例。一旦PPE 650收到一个新的固件项(处理框1392),它可对该项进行检查,以确保它使用了预定的下载密钥或管理对象密钥(何种密钥取决于元素的来源)正确地执行了解密过程(处理框1394)。如果固件的解密过程正确(判定框1394的“是”出口),则计算固件的校验值,并将计算结果与存放在固件加密封装中的校验值相对比(判定框1396)。如果两个校验和值正确地匹配(判定框1396的“是”出口),那么PPE 650将对比与该固件相关联的公开和私有头标识标记,以确保所收到的是正确的固件而没有被替换(图中没有示出该步)。假设该测试也通过了,PPE 650可计算该固件的数字签名(假设PPE 650支持数字签名,同时该固件经过了“签名”)并检查计算得出的签名结果,以确保该结果匹配了存放于固件加密封装中的数字签名(处理框1398,1400)。如果上述任何步骤失败,那么该下载过程将异常终止(“失败”终止点1401)。

假设上述所有测试都通过,PPE 650于是将确定该固件是要存放在PPE之中(如存放在内部的非易失性存贮器中),还是要存放在安全数据库610中(判定框1402)。如果准备将固件存放在PPE中(判定框1402的“是”出口),那么PPE 500将简单地内部保存该信息(处理框1404)。如果准备将固件存放在安全数据库610中(判定框1402的“否”出口),那么可以用特定于PPE的唯一标记将该固件做上标记,该唯一标记用来防止记录替换(处理框1406),然后可用相应的安全数据库密钥对该固件进行加密,最后将该固件存放到安全数据库610中(处理框1408)。

SPU 500和/或VDE电子设备600的联网

在由局域或广域网连接的许多计算机中,可能它们之中的一个或几个便是VDE电子设备600。例如,一个具有VDE功能的服务器可能含有一个或多个SPU 500。这个集中式的VDE服务器可以提供在网络中需要的所有VDE服务,或者它也可以与VDE服务器节点共同分担VDE服务。也就是说,它可以执行少量的、部分的、或大部分的VDE服务功能。例如,用户的非VDE计算机可以通过网络发出对受VDE保护的信息内容的请求。为响应该请求,VDE服务器可通过访问相应的VDE对象300,释放被请求的信息内容,并通过网络672将该信息内容传递给发出请求的用户来履行。这种方案可以允许将VDE功能方便地集成到现有的网络中,而不必对连接到网络上的各种计算机和其它设备进行修改或替换。

例如,一个带有一个或多个受保护处理环境650的VDE服务器可以通过网络与不带有受保护处理环境的工作站进行通信。该VDE服务器可以执行所有VDE安全处理,并将最后得到的信息内容以及其它信息发送给网络中的工作站。该方案不需要对工作站做任何硬件或软件的修改。

不过,某些应用可能要求更高的安全性、灵活性和/或性能,通过将多个VDE电子设备600连接到同一网络672中,就可以满足上述要求。由于通用的局域网包含非安全的信道,这样的信道有遭受破坏和/或窃听的危险,所以,在大多数安全应用中最好要对经过上述网络传输的信息进行保护。有可能使用常用的网络安全性技术来保护在一个VDE电子设备600和一个非VDE电子设备之间通过网络672传送的VDE发布的信息内容或其它VDE信息。然而,在同一个系统中提供多个联网的VDE电子设备600则更有优越性。

前面已经结合图8讨论过,多个VDE电子设备600彼此间可以通过网络672或其它通信途径进行通信。VDE电子设备600之间的这种联网具有一些优点。其优点包括(举例来说):有可能使VDE资源集中化、将计量信息在服务器VDE中保存和/或存档、通过网络672将信息和服务有效地传递给多个电子设备600。

例如,在局域网拓扑结构中,“VDE服务器”电子设备600可以存放受VDE保护的信息,并使该信息对一个或多个另外的电子设备600或计算机可用,这些电子设备600或计算机可以通过网络672与服务器进行通信。举一个例子,存放VDE对象的对象仓库728可以在集中化的服务器中维护,而多个联网电子设备600用户中的各个都可以根据需要通过网络672访问集中化的对象仓库。当用户需要访问特定的VDE对象300时,其电子设备600可以通过网络672发出一个请求,希望获取该对象的拷贝。作为对此请求的响应,“VDE服务器”可以交付所需对象300的全部或部分。提供这种集中化的对象仓库728具有以下优点:对于连到网络672上的每个电子设备600来说,可以将其本地的大容量存贮器要求降至最低;消除了同一信息的冗余拷贝;减轻了信息管理负担;对于出现在服务器中的特别重要的VDE进程和/或信息提供了附加的物理安全性和/或其它安全性,而对于某些商业模型来说,在VDE节点中提供上述安全性保护措施从商业角度看是不现实的;等等。

在局域网拓扑结构中最好也将安全数据库610集中化。例如,在一个局域网中,可以将安全数据库610放置在一个集中的地点。连入局域网672中的多个电子设备600中的每一个都可以通过该网络发出对安全数据库610记录的请求。可以通过该网络以加密的形式将被请求的记录提供给请求者。通过利用安全通信交换机制在网络上传送解密上述记录所需的“密钥”,可以实现这些密钥的共享。在网络672中集中化安全数据库610有许多潜在的优点,包括:将各个联网的电子设备600的二级存贮设备和/或其它存贮器的要求降至最低或从根本上消除;避免了冗余信息存贮;支持集中化的备份服务;减轻了信息管理负担;等等。

有一种方法可以廉价方便地在一个网络中配置电子设备600的多个实例,即把定义了HPE 655的软件提供给网络工作站。这种方案不需要对工作站进行任何硬件修改;可以只使用软件定义HPE 655。也可以在VDE服务器中提供SPE 503和/或HPE 655。这种方案的优点是它支持分布的VDE网络处理,而不需要定制或修改工作站(除非需要将新的程序加载到这些工作站中)。可以将需要较高安全性级别的VDE功能局限于一个基于SPU的VDE服务器中。基于“安全”HPE的工作站可以执行需要较低安全性的功能,并且可以利用VDE服务器协调其各项行为。

因此,在同一网络中提供多个VDE电子设备600可能具有许多优点。另外,将多个VDE电子设备600放置在同一工作站或其它电子设备600中也可能具有优越性。例如,一个电子设备600可以包含多个电子设备600,而其中每一个都含有一个SPU 500,并且能够执行VDE功能。

例如,可以将一个或多个VDE电子设备600用作计算机系统的输入/输出设备。这样就可以不再需要先在一个设备中解密信息,然后将该信息以未加密的形式通过某些总线或其它非安全通道移动到另一个设备,例如某个外部设备。如果该外部设备本身是一个带有SPU 500的VDE电子设备600,那么可以将受VDE保护信息通过非安全通道发送给该外部设备,以便在其中处理(如解密)。给予外部设备直接处理受VDE保护的信息的能力也提高了灵活性。例如,VDE电子设备600外部设备可以控制对VDE对象300的使用。它可以(举例来说)计量其所处理信息的使用或其它参数,它还可以收集特定于其执行过程的审核跟踪和其它信息,以便提供有关VDE对象使用的更多信息。提供多个相互协作的VDE电子设备600将不再需要把加密的信息移动到一个VDE电子设备600,然后再把该信息以未加密的形式移动到一个非VDE设备中,因而提高了性能。该受VDE保护信息可以被直接地移动到其目的地设备,而该设备如果具有VDE功能的话可以直接处理上述信息,而不必请求某些其它VDE电子设备600参与。

图70示意了方案2630的示例。该方案包含多个VDE电子设备600(1),600(2),600(3),...,600(N)。VDE电子设备600(1),...,600(N)相互间可以通过通信通路2631(如工作站的系统总线、电话线或其它线路、电缆、底板、网络672、或其它任何通信机制)进行通信。图中所示的每个电子设备600可以具有图8所示的相同通用体系结构,即它们每一个都包含CPU(或微控制器)654,SPU 500、RAM 656、ROM658、以及系统总线653。图中的每个电子设备600可以带有一个接口/控制器2632(可以将该接口/控制器2632看作是图8所示的某种特定类型的I/O控制器660和/或通信控制器666)。该接口/控制器2632提供了电子设备系统总线653和相应电连接器2634之间的接口。每个电子设备600(1),...,600(N)的电连接器2634提供了到通用网络672或其它网络通路的连接。

尽管图中所示的每个电子设备600可以带有总体上类似的体系结构,它们仍然可以执行不同的专门任务。例如,电子设备600(1)可能包含工作站的中央处理部件,该部件负责管理该工作站的全局操作,并提供计算资源。电子设备600(2)则可能是同一工作站的大容量存贮设备620,它可以提供存贮机制2636,该机制用来(举例来说)从二级存贮设备652中读取信息,或往二级存贮设备652写入信息。电子设备600(3)可以是一个显示设备614,它负责执行显示任务,并提供显示机制2638,例如图形控制器以及相关视频显示器或其它显示器。电子设备600(N)可以是一个打印机622,它执行与打印相关的任务,并且可以含有(举例来说)一个打印机制2640。

每个电子设备600(1),...,600(N)可以含有同一工作站的不同模块,而所有这些电子设备都包含在同一个机箱内。或者不同的电子设备可以放置在不同的系统部件中。例如,电子设备600(2)可以放置在磁盘控制部件中,电子设备600(3)可以放置在显示设备614的机箱中,而电子设备600(N)可以放置在打印机622的机箱内。重新参看图7,扫描仪626、调制解调器618、电信设备624、键盘614和/或声音识别器613每一个都可以包含一个带有自身SPU 500的VDE电子设备600。其它例子包括:RF或其它无线接口控制器、串口控制器、LAN控制器、MPEG(视频)控制器,等等。

由于每个电子设备600(1),...,600(N)都具有VDE功能,所以都能够对受VDE保护的信息执行加密和/或解密操作。这意味着经过连接了这些电子设备的网络672或其它通信通路2631而传递的信息可以受VDE保护(如可以以VDE管理对象和/或信息内容对象的形式包装上述信息,并采用上述方法对之进行加密)。作为这种方案的一个结果,搭入通信通路2631的窃听者只能获取以受VDE保护的形式存在的信息。例如,由电子设备600(1)产生的、需要打印的信息可以包装到VDE信息内容对象300中,然后经过通路2631传送到电子设备600(N)打印。破坏者即使截获到该信息也将收益甚微,因为该信息是以受保护的信息传送的。为了访问处于未受保护形式下的上述信息,破坏者不得不对电子设备600(1)或600(N)(或SPU 500(1),500(N))进行破坏。

图中所示方案的另一个优点是每个电子设备600(1),...,600(N)都可以执行它们自身的计量、控制和/或与VDE相关的其它功能。例如,电子设备600(N)可以进行计量和/或执行与被打印信息相关的其它VDE控制功能;电子设备600(3)可以进行计量和/或执行与被显示信息相关的其它VDE控制功能;电子设备600(2)可以进行计量和/或执行与往大容量存贮设备620中存贮的信息或从中检索的信息相关的其它VDE控制功能;电子设备600(1)可以进行计量和/或执行与它所处理的信息相关的其它VDE控制功能。

在一个特定的方案中,每个电子设备600(1),...,600(N)都可以接收命令,该命令指示由该电子设备收到的信息或发送到该电子设备的信息将要使用该电子设备的SPU 500来处理后续的信息。例如,电子设备600(N)可以接收到一个命令,该命令指示该电子设备将要收到的待打印信息是以受VDE保护的形式发来的(或者发来的信息本身可以表明这一点)。一旦收到该命令或其它信息,电子设备600(N)可以利用SPU 500解密收到的信息,并且还可以对SPU输出到打印机制2644以供打印的信息进行计量。可以向电子设备600(N)发送另一个命令以便禁止其解密进程,或者电子设备600(N)的VDE安全子系统可以判断出送来的信息不应被解密和/或打印。还可以有其它命令,例如载入加密/解密密钥、载入“限制”、创建“按指纹”要求、以及读计量的使用。可以根据情况用加密的或未加密的形式发送这些附加的命令。

假设(举例来说)电子设备600(1)产生了一些信息,而它希望由具有VDE功能的打印机622来打印这些信息。SPU 500(1)可以通过通路2631与SPU 500(N)建立安全通信,以便发送一个命令,该命令要求SPU500(N)解密下一个数据块,并将之作为一个解密密钥和限制来保存。然后SPU 500(1)可以向SPU 500(N)发送另一个命令,要求SPU 500使用解密密钥和相关限制来处理后续的任何加密的打印数据流(或者可以由CPU 654(1)将该命令发送给微控制器654(N))。之后,电子设备600(1)可以开始通过通路672发送加密的信息供打印机622解密和打印。打印机622一旦收到新的信息数据块,SPU 500(N)首先进行检查,以确保限制值大于零。然后,SPU 500(N)可以增加由它维护的使用情况计量值,并减少限制值。如果限制值是非零数值,SPU 500(N)可以解密收到的信息,并送到打印机制2640打印。如果限制值为0,SPU 500(N)既不会将收到的信息送到打印机制2640,也不会解密该信息。一旦收到一个停止命令,打印机622将回到“非安全”模式,在这种模式下,打印机622将打印通过通路2631接收到的所有信息,而不允许VDE处理。

与打印机622相关联的SPU 500(N)不一定非要放置在打印机的机箱内,而是可以(举例来说)放置在I/O控制器中(参看图8)。这样做仍然可以具有与上述优点相似的至少一部分优点,同时还不需要特别的、具有VDE功能的打印机622。作为另一种选择,可以在打印机622和与该打印机通信的I/O控制器660两者之中都安装SPU 500(N),这种做有利于协调I/O控制,并减轻与中央处理电子设备600(1)相关联的SPU 500的处理负担。当一个电子设备中出现多个VDE实例时,一个或多个VDE安全子系统可以成为“中央”子系统,也就是说“二级”VDE实例可以将与使用相关的加密信息传递给一个或多个中央安全子系统,以便允许所述的中央子系统直接控制对所述使用相关信息的存贮。某些控制信息也可以由中央子系统集中保存,在收到二级安全子系统的安全VDE请求时,可以将这种信息的全部或部分安全地送往二级安全子系统中。

便携式电子设备

本发明所提供的电子设备600可以是便携式的。图71示意了便携式电子设备的一个例子。便携式设备2600可以包含便携式机壳2602,在一个例子中,该机壳2602大约是信用卡大小。机壳2602可以(举例来说)通过带有一个或多个连接管脚(未示出)的电连接器2604与外界相连。连接器2604可以在机壳2602内部的外部总线接口2606与某个主机系统2608的配套连接器2604a之间建立电连接。外部总线接口2606可以(举例来说)含有一个PCMCIA(或其它标准)总线接口,从而使便携式电子设备2600可以与主机系统2608的总线2607进行连接,并通过该总线2607进行通信。主机2608可以(举例来说)是想象得出的几乎任何设备,例如计算机、付费电话机、另一个VDE电子设备600、电视机、拱廊视频游戏机、(arcade video game)洗衣机。以上只是列举了几个例子。

机壳2602可以是防破坏的(参看前面关于SPU屏障502防破坏功能的讨论)。

在较佳实施例中,便携式设备2600包含一个或多个SPU 500,这些SPU 500可以放置在机壳2602里面。SPU 500可以通过机壳2602内部的总线2610与外部总线接口2606相连。SPU 500通过该内部总线2610(经过外部总线接口2606)与主机2608通信。

可以用电池2612或其它便携式电源为SPU 500供电,这些电源最好放置在机壳2602里面。电池2612可以是(举例来说)手表或信用卡大小的计算器所使用的微型电池。可以用太阳能电池、可充电电池、电容存贮电池等来补充(或替换)电池2612。

最好在机壳2602里面提供随机访问存贮器(RAM)2614。RAM 2614可以与SPU 500相连,而不直接与总线2610相连,因此只有SPU才能访问到RAM 2614的内容,而主机2608则不能(除非通过该SPU访问并且经过了SPU的准许)。参看图9,RAM 2614可以是SPU 500中RAM 534的一部分,不过,它不一定非要包含在安放了SPU其余部分的同一集成电路或其它封装中。

便携式设备2600 RAM 534可以包含(举例来说)标识信息,用来唯一地标识便携式设备的每个实例。该信息可以用在(例如作为密钥或口令信息的至少一部分)鉴别、验证、解密、以及/或者加密过程中。

在一个实施例中,便携式设备2600可以包含能够执行VDE电子设备600基本上所有功能的机制。于是,(举例来说)便携式设备2600可以包含存贮和使用许可、方法、密钥、程序和/或其它信息的机制,并且可以作为一个“独立”VDE节点运行。

在另一个实施例中,一旦将便携式设备2600与另外的外部电子设备600耦合,该便携式设备2600便可以执行较佳实施例VDE的功能。某些信息—如数据库管理许可、方法、密钥和/或其它重要信息(例如其它VDE程序的至少一部分:管理信息、用户接口信息、分析信息等等)—可以(举例来说,以记录的形式)存放在外部VDE电子设备600中,该外部VDE电子设备600可以与便携式设备2600共享信息。

防破坏便携式设备2600一种可能的“独立”配置中包含一个防破坏包装(机壳2602),该包装中含有一个或多个处理器(500、2616)和/或其它计算设备和/或其它控制逻辑,同时还包括随机访问存贮器2614。处理器500、2616可以完全地(或至少部分地)在便携式设备2600中执行许可和方法。便携式设备2600可以有能力在将信息传送出机壳2602之前首先加密信息,以及/或者在从机壳之外接收到信息之后,将收到信息解密。这种类型的便携式设备2600还可以在所述防破坏便携式机壳2602的非易失性存贮器中安全地保存至少一部分许可、方法和/或密钥信息。

另外一种类型的便携式设备2600可以从其外部的一个本地VDE电子设备600中获取许可和/或方法和/或密钥,以控制、限制、或管理用户对受VDE保护的对象的使用。这种便携式设备2600可以包含在另一个电子设备600中,可以由该电子设备600所容纳,可以安装在该电子设备600之中、也可以直接连接到该电子设备600。

便携式设备2600的一个“最小”配置的例子可以只在机壳2602中包含SPU 500和电池2612(在这种情况下,图中所示的外部总线接口2606和RAM 2614将集成进SPU框)。在便携式设备2600的其它增强型例子中,可以在机壳2602中包含下面任意或所有可选部件:

一个或多个CPU 2616(同时带有相关支持部件,如RAM-ROM2617、I/O控制器(未示出)、等等);

一个或多个显示设备2618;

一个或多个键盘或其它用户输入按键/控制信息2620;

一个或多个可拆卸的/可替换的存贮设备2622;以及

一个或多个打印设备2624;

在上述增强型的便携式设备2600中,显示器2618、键盘2620、存贮设备2622和打印机2624可以连接到总线2610,也可以通过CPU2616的I/O端口/控制器部分(未示出)与CPU 2616相连。显示器2618可用以显示来自SPU 500、CPU 2616和/或主机2608的信息。键盘2620可用来向SPU 500、CPU 2616和/或主机2608输入信息。打印机2624可用来打印来自任一/所有上述源的信息。可拆卸的/可替换的存贮设备2622可以包含一个存贮器盒或存贮器介质如大容量存贮设备,以提供附加的长期或短期存贮功能。如果需要的话,存贮器2622可以方便地从机壳2602中拆卸下来。

在一个实施例中,便携式设备2600可以具有“智能卡”的形状要素(尽管“智能卡”形状要素有某些优点,但机壳2602的形状要素既可以与“常用”智能卡的相同,也可以不同)。作为另一种选择,这种便携式电子设备2600可以(举例来说)被封装在一个PCMCIA卡配置(或类似配置)中,目前,PCMCIA卡正十分普及地用于个人计算机中,而且有人预言PCMCIA卡将在桌上型计算机设备和个人数字助理中广泛使用。便携式电子设备机壳2602一种较为有利的形状要素可以是(举例来说)类型1、2或3的PCMCIA卡(或其它派生类型),这些类型PCMCIA的卡的尺寸有信用卡那么大或稍大。这种形状要素是便于携带,并且可以插入到多种类型的计算机和消费者设备中,也可以在诸如零售机构和银行等商业机构中的插孔中使用,还可以用在公共通信处所,如电话亭或其它电信亭中。

机壳2602可以插入到由主机2608提供的端口、插槽或其它插孔,也可以从中取出,这样是为了物理地(或操作地)连接到计算机或其它电子设备。可以配置便携式设备连接器2604以便使拆卸更加方便,这样,设备2600可以移动到位于另一地点的另一个计算机或其它电子设备,从而与另外这台设备进行物理的连接、或进行其它操作连接。

便携式电子设备2600可以为用户提供了有用的和相对简单的手段,使用户可以在他们的(兼容的)各种电子设备600之间移动许可和方法,这些电子设备可以是笔记本计算机、桌上型计算机和办公室计算机。便携式电子设备2600还可以(举例来说)使一个用户在去隔壁邻居家串门的时候让邻居观看该消费者已经获得了观看许可的一个电影,或者也许让邻居收听存放在大容量光盘中的曲目,而该消费者已经获得了对该光盘无限次放音的许可。

便携式电子设备2600还可以充当金融交易或其它交易中的“智能卡”,因此用户可以将它用于其它多种应用中,例如用于商业应用中。便携式电子设备2600可以(举例来说)携带用于授权(还可能记录)商业处理和服务的许可和/或方法信息。

在诸如银行和信用卡公司通常执行的财务交易中使用较佳实施例VDE便携式设备2600的一个优点在于,VDE使得财务票据交换所(如VISA,MasterCard或American Express)显著地降低了其操作成本。票据交换所降低成本的原因在于:通过使用诸如便携式设备2600之类的VDE电子设备600,计量和预算管理将发生在用户的站点本地,这就可以减轻票据交换所的负担,使之不必每一个交易都参与。与目前的要求相反,票据交换所将可以执行它们的功能,即定期地更新其记录(如每月一次)。在某些情况下将出现审核和/或预算的“累计”,这些情况可以是:在为传送审核和/或预算信息而启动的某个连接过程中;在周期性出现的或按照相对周期性时间间隔出现的连接过程中;在更新、购买信用的过程中或在便携式设备2600的其它交易过程中。

票据交换所VDE数字化分发交易将只需要对中央服务进行不定期的授权和/或审核或其它管理性“累计”处理,而不是在每次会话期间都进行代价昂贵得多的连接。由于不再需要维护信用卡购买过程的“书面跟踪”(用以记录授权过程以及送交信用卡卡片的过程),票据交换所的运行成本将实际大为降低(同时这也将潜在地降低用户的开销),原因在于这种方式降低了通信成本,减少了支持信息并发处理的设施,降低了交易处理成本中纸张处理方面的成本。使用便携式设备2600,可以充分发挥利用每个VDE电子设备600计算能力的分布式处理,以加强信用管理。上述在信用成本和处理方面的优越之处也可适用于非智能卡和非便携式型VDE电子设备600。

由于VDE 100可以配置成高度安全的商业处理环境,而且由于VDE提供的鉴别进程使用了数字签名处理,而这种数字签名提供了等同于书面文件和手写签名的法律有效性,所以便携式设备2600就不再需要维护书面的跟踪,即便对于代价更高的交易也是如此。由于在VDE100中设置了可审核的计帐和控制机制,并且对这些机制自动化,因而可以用这些机制替代那些针对VISA、MasterCard、AMEX以及银行借贷帐户而制定的、用来数字化地分发其它产品和服务的传统电子接口,而且这些机制可以为上述票据交换所节约实际运行开销。

如果需要的话,便携式设备2600可以为消费者维护便携式电子历史记录。举例来说,可以将该便携式电子历史记录移动到放置于或可操作地连接于计算机或其它消费者主机设备2608的电子“站台”(dock)或其它插孔。主机设备2608可以是(举例来说)一个电子组织器,它带有至少部分地类似微计算机的控制逻辑,并可以按照有组织的方式存贮信息,例如按照税务和/或其它交易类型(如使用或活动的类型)进行信息存贮。通过这种安排,消费者不再需要维护收据,也不需要手工地跟踪交易,相反,他可以维护电子的、高度安全的交易审核跟踪和交易说明。交易说明可以(举例来说)安全地包含用户的数字签名,并可选地包含服务提供者或商品提供者的数字签名。

当便携式设备2600被连接到诸如个人计算机或其它电子设备(如电子组织器)之类的主机2608时,便携式设备2600可以向该主机传送中间的审核信息。在一个实施例中,上述信息可以被直接地或间接地读入计算机或电子组织器的财金和/或税务管理程序(例如Quicken或Microsoft Money和/或Turbo Tax和/或Andrew Tobias的ManagingYour Money)中。这种自动化收据管理对消费者来说将是一个巨大的福音,因为收据的管理和维护既困难又费时,收据经常被丢失或遗忘,而且信用和计帐中的细节经常会出现完全不足以计帐和偿付目的的现象,其原因是信用卡计帐通常不提供有关被购买商品或重要交易参数的足够数据。

在一个实施例中,便携式设备2600可以支持与可带有VDE电子设备600的零售终端或与零售商的或第三方供应者的VDE电子设备600进行安全的双向通信(安全的通信在本例中即指加密和/或经鉴别的通信)。在(举例来说)各个参与者的安全VDE子系统之间所发生的上述安全双向通信过程中,便携式设备2600 VDE安全子系统可以向零售终端VDE安全子系统提供鉴别处理和相应的信用卡或借贷卡信息。在同一或不同通信会话期间,零售终端可以采用类似方式向便携式设备2600 VDE安全子系统安全地传回有关零售交易的详情(如购买的商品、价格、零售机构的数字签名、零售终端的标识、税务相关信息、等等)。

例如,可以在零售机构终端或其它商业机构终端中安装或有效地连接一个主机2608插孔,该插孔用来接插和/或连接便携式设备2600。该主机终端2608既可以由一个商业机构雇员来操作,也可以由便携式设备2600持有者来操作。它可以用来接收由特定键盘和/或声音输入的特定信息,如请谁去吃晚饭、为何购买某件东西、或者信息应该归属的类别。然后,信息可以自动地接受“语法分析”,并转送至便携式设备2600中经过安全维护的相应数据库管理记录中。所述“语法分析”和转送过程将受VDE安全子系统处理的安全控制,并且可以基于用户输入的类别信息、和/或基于机构的类型、和/或基于消费信息(或其它使用)的类型(类别)而进行。类别信息可以由零售机构提供,为此,(举例来说)零售机构可以将电子类别信息(举例来说)作为电子收据信息的一部分安全地传递出来,或者它也可以使用打印机2624打印一份硬拷贝收据。这一分类进程可以发生在便携式设备2600中,或者也可以由零售机构执行,并由零售机构定期“累积”然后传送给便携式设备2600持有者。

零售、票据交换所或其它商业组织可以通过安全地向设备2600传送的方式来维护和使用一个或多个通用交易类别(例如,由政府税务条款规定的交易类别),这些通用交易类别可以用来实现将信息语法分析为若干记录这一过程的自动化,以及/或者用来接受数据库信息“累积”;并且/或者它们可用于便携式设备2600或一个或多个相关VDE节点中。在这些例子中,主机2608可以(举例来说)含有一个辅助终端,它也可以含有或被直接安装进一个商业机构现金出纳机或其它零售交易设备。该辅助终端可以由菜单和/或图标驱动,并且支持用户对类别进行十分容易的选择。它还可以根据交易类型而提供若干模板,这些模板可以引导用户指定有用的或所需的交易特定信息(例如,某个商务晚餐的意图、以及/或者参加该晚餐的人员)。例如,用户可以选择了一个商务图标,然后在旅行、销售、进餐、管理、或购买图标中选择(举例来说),之后他可以输入特别具体的信息和/或关键字,或其它代码,该输入可能导致交易细节被下载到便携式设备2600中。这些信息也可以由商业机构存放,而且也可以被传送到相应的政府和/或商务组织,以便这些组织对报告来的交易进行确认(VDE的审核、通信、鉴别和确认所具备的高度安全性应该足够可信,以便不需要维护并行审核历史,但是至少在一段有限的时间内需要支持和保持并行维护,这是为了在便携式设备2600和/或与VDE安装设备相关联的一个或多个设备2600出现信息丢失或“失效”的情况下能够提供备份信息,其中,与VDE安装设备相关联的一个或多个设备2600使用VDE安装设备进行历史和/或信息记录维护)。例如,如果一个零售终端维护了涉及设备2600的必要交易信息,它可以将这种信息传送给票据交换所以便存档(以及/或者执行其它操作),它也可以定期地(例如在交易日结束的时候)采用(举例来说)VDE信息内容容器对象的形式安全地将上述信息发送给票据交换所或票据交换所代理。可以维护上述交易历史信息(以及所需的任何VDE相关状态信息,如可用的信用),并且在需要的时候可以根据该交易历史信息重新创建便携式设备2600中的信息,以允许向设备2600的用户提供替换设备,或者允许在数据中适当地复位内部信息,而这种替换和/或复位提供所有必要的交易和状态信息。

在零售机构中,辅助终端主机2608的形式可能是提供给用户的一个便携式设备,例如在进餐之后提供给用户。用户可以将其便携式设备2600插进一个诸如PCMCIA插槽之类的智能卡插孔中,然后他可以输入其它任何信息,这些信息可以正确地地描述了本次交易,同时还满足了电子设备600识别过程所提出的任何要求。如果可用的信用足够的话,那么本次交易将得到准许,接着,交易相关信息将从辅助终端传回并直接送至便携式设备2600中。对于信用使用和记录管理过程来说,上述过程将是一个非常方便的模式。

便携式设备辅助终端可以是“在线的”,即通过使用蜂窝通信、卫星、射频或其它通信手段将信息电子地传送回商业机构和/或第三方信息收集点。商业机构在收集点接受到某些识别信息时将执行一次检查,在检查之后,辅助终端可以根据其它信息向商业机构发回消息,表明是否接受便携式设备2600,所述的其它信息包括:信用记录是否坏的,或使用的是否是窃得的便携式设备2600。这种便携辅助终端在其它商业机构中也十分有用,例如用于加油站、租用汽车返还区、街道和体育馆自动售货机、酒吧、以及其它商业机构,在这些场所,由于允许职员和其它人员当场完成交易,而不是在传统的现金出纳机所在地完成,所以效率将大大提高。

如上所述,便携式设备2600可以不时地与诸如VDE管理员之类的其它电子设备600通信。在便携式设备2600使用会话期间发生的通信可能源于内部存放的某些参数,这些参数要求:在便携式设备使用的当前会话(或下一个会话,或其它会话)期间应该进行通信。电子设备600可以携带有关实际日期、或时间窗口、或时间段的信息,这些信息将在适当的时候请求进行通信(例如,也许在某些交易或其它进程之前、之中或紧接之后,这些交易或进程是用户为本次会话所一直预期的)。这种通信可以迅速完成,并且可以是安全的VDE双向通信,在该通信过程中,信息被传送到一个中央信息处理器。可以将某些其它信息传递给便携式设备2600和/或该便携式设备2600所连接的计算机或其它电子设备。上述被传送的其它信息可以允许或禁止一个预期的进程继续执行下去,以及/或者使便携式设备2600的至少一部分失效或生效。传送到便携式设备2600的信息可以包含对许可和方法的一个或多个修改,例如复位或增加一个或多个预算,增加或撤消某些许可,等等。

由便携式设备2600携带的许可和/或方法(即预算)可以已经结合另一个静止VDE电子设备600或其它便携式VDE电子设备600的“留存数据”(encumbering)而分配给该便携式设备2600了。在一个例子中,便携式设备2600持有者或其它VDE电子设备600和/或电子设备600用户可以充当由另一方执行的交易中财务部分的“担保人”。持有者的便携式设备2600将记录一个“留存数据”,该“留存数据”将在与票据交换所的一次安全通信中被票据交换所和/或某些其它财务服务机构记录并维护,直到上述另一方的所有或部分债务已被偿清或得到圆满解决为止。作为一种选择或补充,也可以在便携式设备2600中维护上述“留存数据”,它代表了担保人的可能义务。可以采用某种公式将上述留存数据计入用来确定担保人可用信用的确定中去。信用的转移、接受、以及/或者记录的管理、以及相关进程均可以由本发明各方面所提供的多种安全措施进行安全地维护。便携式设备2600可以是对应于一个或多个VDE对象300的所述许可和/或方法的唯一存放地点,它也可以携带对应于所述对象的预算信息,而该预算信息独立于在另一个非便携式VDE电子设备600中出现的所述对象的预算。这种方式允许预算是可携带的(举例来说),不需要“留存数据”和预算协调。

便携式VDE电子设备2600可以携带(上述其它VDE电子设备600也可以携带)某些信息,这些信息描述了信用历史细节、授权概要和使用历史信息(一定程度的交易历史或相关概要信息的审核,例如对特定类型/类别信息的使用),这些信息允许在不花代价地或代价较少的前提下重新使用某些受VDE保护信息。这种使用情况或使用代价可以至少部分地依赖于先前使用受VDE保护信息中一个或多个对象、或对象类、或使用量度的情况。

便携式设备2600还可以带有可至少部分地用于识别用途的某些信息。可以按照某种顺序(例如,基于伪随机数算法的某种模式)使用这些信息,以校验便携式设备2600携带者的身份。这种信息可以包含(举例来说)某人自己的、或妻子的和/或其它亲戚的婚前姓氏、或者某人自己的和/或其它人的社会安全号码、出生日期、出生医院、以及其它识别信息。另外或者作为另一种可选方案,它还可以提供或带有一个或多个口令或用来标识或校验/鉴别个人身份的其它信息,诸如声音复制信息和视网膜扫描信息。例如便携式设备2600可以用作一个智能卡,它带有各种用于鉴别和预算的许可和/或方法信息。这些信息可以按照安全数据库610的组织方式安全地存放在便携式设备2600之中。当用户试图购买或许可一个电子产品时,或使用该“智能卡”来授权一项处理时,便携式设备2600可以询问用户有关识别信息,或启动一个识别进程,该进程将用到扫描的或输入的信息(例如用户指纹、视网膜或声音分析技术,这些技术可以(举例来说)将所提供的特征与安全地存放在便携式设备2600中信息进行映射和/或匹配)。便携式设备2600可以在不同时间进行不同的问询(和/或提出大量问询或请求,以期扫描或输入识别信息),这样可以防止某人在已经知道了上述一次或多次身份“测试”的正确答案之后便可以成功地使用便携式设备2600。

便携式设备2600还可以将电子货币或信用转移到另一个便携式设备2600中,或转移到另一个人的帐户中,这可以通过(举例来说)使用在安全VDE子系统之间针对相关信息内容的安全VDE通信机制来实现。如果某个银行具备将信用和/或货币转移到另一个帐户的能力,那么通过与该银行进行远程通信,或在该银行内办理相应业务,就可以完成上述转移过程。也可以在同一便携式设备2600站台中使用两张卡片以便进行上述转移。例如,信用交易工作站中可以带有双PCMCIA插槽和相应的信用和/或货币转移应用软件,该软件支持安全地从一个便携式设备2600中借款,而向另一个便携式设备2600“贷款”(即在将一定的信用和/或货币贷放到一台设备中的同时,将会从另一设备中借出相应款项)。一个电子设备600(举例来说)可以为另一个用户提供经鉴别的信用。使用双“智能卡”便携式设备2600可以允许用户提供“信用”“智能卡”,使之经历某个交易过程,而在该过程中,所述用户首先提供适当的标识(例如,一个口令),然后就可以识别用来标识另一个“智能卡”便携式设备2600的一个“公开密钥”。上述的另一个“智能卡”便携式设备2600可以运行接受进程,并提供数字签名的正确标识(并且,信用和/或货币发送者还可以数字地签准某个交易证明,因而使发送证明书不会遭到否认。另外,该证明还可以与上述信用和/或货币放在一起共同作为VDE容器信息内容)。上述交易可能涉及(举例来说)用户接口交互过程以便约定本次转移的利息和/或其它条款。这可以使用常见交易类型的模板,该模板中针对某些说明了双方协议的参数向信用提供者提出询问。可以针对是否接受上述条款这一问题交互地或整个地询问接受方便携式设备2600的意见。在使用智能卡将电子信用和/或货币转移到另一个智能卡或其它VDE设备的过程中,可以使用本专利申请书所介绍的各种VDE协商技术。

这种VDE电子设备600/便携式设备2600信用转移特性将显著地降低管理某些电子信用和/或货币事务所带来的开销,因为这些设备扩展了对信用控制和信用可用性的计算机处理,从而大大地自动化了上述事务处理,所述的计算机处理以信用卡作为开端并扩展到了借帐卡。信用扩展和/或货币转移的自动化,以及上述的相关分布处理所具有的优越性,包括在每次交易中不再需要任何集中化处理和远程通信,真正地使信用和/或货币对于许多消费者和其它电子货币和/或信用用产来说成为了一种有效的、可信的、便携的日用品。

在一个实施例中,便携式设备2600或其它VDE电子设备600可以使许多税收处理工作自动化。电子设备600可以高度安全地记录财务交易,识别交易的特征,确定所需的销售税或相关的政府交易税,从用户的可用信用中扣掉税款,并按照某个时间间隔(如每月一次)安全地将该税款信息直接传送到一个或多个政府代理处,以及/或者将该税款信息安全地传送到(举例来说)某个票据交换所,然后该票据交换所再将一个或多个安全的、加密的信息(或由票据交换所计算出来的非安全数据信息,或计算得出的信息)审核包(如该包可以是VDE信息内容容器,并使用了安全的VDE通信技术)传送到一个或多个相应的、参与该业务的政府代理处。VDE 100的整体完整性和安全性具有一致性和集中化的特征,它可以保证(从一个或多个电子商业事务中得到的)税务相关信息的电子化报告过程是有效的和全面的。它还可以在销售税征收划拨过程中充当相关信息的确认源(例如,假定所述资金由一个商业操作直接划拨到政府,并且/或者其划拨方式保证了被报告的税务相关信息在VDE税务信息处理通道中无法被其它团体破坏)。政府代理处可以随机地选择交易,或者可以选择对应于给定商业操作的被报告交易之中的某些部分或所有部分。这可以用来确保该商业操作确实正在向政府支付赋税所需的所有适当征收资金,还可以确保对最终用户征收了适当交易税款(包括从银行帐户上收到利息、接受投资、接受礼物,等等)。

便携式设备2600的财务和税务处理可以包含所述的模板机制。一方面,如果至少部分地采用便携式设备2600对电子信用和/或货币事务进行管理,那么这种管理的效能将特别引人注目;另一方面,信用和/或货币转移以及类似特性还可适用于那些连接到或安装进计算机或其它电子设备的非便携式VDE电子设备600。

用户通告异常接口(“弹出式”)686

如上所述,用户修改异常接口686可以是一套用户接口程序,用来处理常用VDE功能。这些应用可以采用VDE模板的形式,其设计基于了涉及一些重要选项的某些假设,这些重要选项特别对应于某些VDE用户模型以及在某些事件发生后必须报告出来的重要消息。“弹出式”用户接口686的一个主要功能是提供一个简单的、一致的用户接口,(举例来说)通过该接口向用户报告计量事件和异常(例如这种异常可能是某些特殊情况,在该情况下,自动处理过程或者不可能进行,或者有争议地不合乎需要的),允许用户配置其电子设备600某些方面的操作,以及在适当的时候允许用户对是否执行某些交易处理进行交互地控制。如果一个对象包含了异常处理方法,那么该方法对“弹出式”用户接口686如何处理特定类型的异常作出控制。

“弹出式”接口686通常支持对非专用于特定对象300的任务进行处理,例如:

登录到电子设备600和/或输入VDE相关操作或操作类

为已注册的用户与/或通常针对本设备,考虑到用户的选择配置电子设备600,并自动处理某些类型的异常。

在适当的时候,由用户选择计量器,以便结合某些特定参数使用该计量器,以及

提供与其它电子设备600通信的接口,包括向分发者请求、和/或购买或租用信息内容,向票据交换所请求票据交换所信用和/或预算,以及/或者从其它电子设备接受信息或向其它电子设备发送信息,等等

图72A示意了VDE电子设备600常用“登录”功能,该功能可以使用用户接口686。通过输入用户名、帐户名和/或口令可以完成“登录”。如本例所示,“弹出式”用户接口686对话框中提供了一个名为“在启动时登录”的配置选项,该选项如果被选中的话,当用户的电子设备600每次被开机或复位的时候,都将自动地启动VDE登录过程。类似地,“弹出式”用户接口686可以提供称为“在某种类型上登录”的接口选项,当该选项被选中的话,每次打开特定类型的对象或特定信息内容类型的应用时,都将自动启动该登录过程,上述特定类型对象或应用的例子有:特定目录中的文件、带有特定扩展名的计算机应用或文件、等等。

图72B示意了在用户发出的某个动作被“截获”时“弹出式”用户接口686对话框的示例,在这种情况下,对话框将提醒用户由该用户动作所引起的花销数量,同时还提醒用户被请求的对象300的有关情况,以及使用该对象需要的花费是多少。在本例中,接口对话框提供了一个按钮,它允许用户请求有关对象的进一步详细信息,包括完整的文本描述、相关文件的列表、以及可能的该对象过去使用情况历史,包括有关使用该对象的剩余权利或相关折扣。

图72B中的CANCEL(取消)按钮2660用来取消被“截获”的用户请求。在本例中CANCEL按钮是该对话的默认按钮,为激活该按钮,可以在用户键盘612上按返回键或回车键、用鼠标揿击该按钮、使用声音命令、或使用其它命令机制。APPROVE(“同意按钮”)允许用户同意上述花销并继续执行下去,该命令必须明确地由鼠标揿击或其它命令过程选中。MORE OPTION(“更多选项”)控制2664将该对话框扩展到更详细的程度,这些详情中具有更多的选项,图72C中示意了一个这样的例子。

图72C是“弹出式”用户接口686呈现给用户的一个二级对话框,当图72B中MORE OPTION按钮2664被用户选中的时候将出现该二级对话框。如图所示,该对话框含有多个按钮,以便提供更多的选项以及执行不同的任务。

在该特定例子中,可以允许用户设置“限制”值,例如会话费用限额(字段2666)、总共交易费用限额(字段2668)、时间限制(分钟)(字段2670)、以及“单位限制”(诸如段落、页等单位的数目)(字段2672)。一旦用户完成选择之后,他可揿击“OKAY”按钮(2764)以确认这些限制的选择,并使之生效。

因此,弹出式用户接口可以用来指定用户的选择,例如,在任一会话中、或在一个时间段中或到某个特定时刻的设置对象的信息内容使用预算和/或其它方面的限制。

对话框还可以用来选择对象相关使用选项,例如选择用于一个或多个对象的计量器和预算。为将选出的选项施加到类型相关(即类别)的对象,可以将指令与一个或多个标识出的参数建立关联,而这些参数则涉及到所需的一个或多个类型。用户指定的配置信息可以设置在各种情况下都使用的默认值;另外,由于在某些情况下用户对一个对象使用可以被“弹出式”接口686对话框所中断,而用户指定的配置信息则可以用来限制出现这些情况的数目和类型。例如,用户可以指定:对于受VDE保护的信息内容的用户请求应该被自动执行而不要(由于出现异常动作)被中断,前提条件是:对信息的所需处理花费不会超过25.00美元,并且整个目前会话(和/或当前日、和/或当前周、等等)的总费用不超过200.00美元,并且全部未结的和未支付的使用费尚未超过2500.00美元。

弹出式用户接口对话框还可以用来通知用户有关重要的情况和时间。例如,接口686可以用来:

提醒用户向票据交换所发送审核信息

通知用户某个预算值较低而需要补充

提醒用户备份安全数据库610,以及

通知用户有关PERC的过期或其它日期/时间事件

其它“弹出式”用户接口686的重要功能还包括某些对话框,这些对话框允许用户灵活地浏览可以得到使用许可或可以购买的对象或产品库,这些对象或产品或者是存贮在本地的受VDE保护对象,或者来自于一个或多个不同的、位于远程的信息内容提供者。有多种时机可以提供这种功能,例如当用户的计算机连接到一个远程分发者的或票据交换所的电子设备600时,或者在进行了某种选择(例如选择了一个产品、一个资源位置、一类对象或资源等)之后与一个远程资源建立了电子连接时。上述浏览接口可以支持一旦用户选择了某个项就自动建立上述电子连接,或者可以由用户明确地启动上述连接本身。图72D给出了这种“浏览”对话框的例子。

智能对象

VDE 100将其控制功能和特性延伸到了“智能代理”。通常,“智能代理”可以充当一个使者,它允许调度它的进程得到该进程指定的结果。能够在调度进程不在的时候执行处理的智能代理有一个特别有用的用途,即允许其调度进程通过它们的代理访问远程电子设备中的资源。在这种情况下,调度进程可以创建一个代理(如某个计算机程序和/或与某个计算机程序相关联控制程序),在创建过程中指定了需要完成的特定任务,然后将该代理调度到远程系统中.一旦到达该远程系统,“代理”可以使用远程系统的资源执行分配给它的任务。这种方式可以使得调度进程实际上将自己的功能延伸到了它未在其中的远程系统。

在这种方式下使用“代理”可以提高灵活性。该调度进程可以通过其代理指定所需执行的特定任务,该任务在远程系统中可能不存在或不可用。使用这种代理还增加了可信度;调度进程可以只需“信任”其代理,而不是信任整个的远程系统。代理还具有其它优点。

软件代理要求具有有效的、安全的和有用的高度控制和责任。计算机病毒形式的代理已经在世界范围内造成了破坏性影响。因此,允许代理访问的系统必须有能力控制该代理,或必须有能力防止该代理毁坏其重要资源。另外,允许代理访问的系统应该足够地信任该代理,并且/或者提供一种机制以掌握应对该代理行为负责的真正代理调度者。类似地,调度进程应该有能力充分地限制和/或控制其调度的代理的权限,否则,它将可能要为该代理的不可预料行为负责(例如:调度进程提供给代理的指令可能不准确,在代理执行这些指令的过程中,它可能会积累出一个高额的帐单)。

在使用软件代理过程中出现的上述严重问题以前未能得到充分解决。  VDE 100的开放、灵活的控制结构则提供了对软件代理(如代理对象)的必要控制和责任,从而解决了上述问题。例如,VDE 100确实地控制对信息内容的访问和使用,提供对被使用信息内容付款的担保,并加强对被访问信息内容的预算限制。这些控制功能较好地适于调度代理的进程以及由被调度代理所访问的资源两者对被调度代理的行为进行控制。

本发明较佳实施例的一个方面提供了含有一个代理的“智能对象”。通常,“智能对象”可以是一个VDE对象300,它含有某些类型的软件程序(“代理”),这些软件程序在VDE电子设备600中结合VDE控制信息一起使用。基本的“智能对象”可以包含一个VDE对象300,该VDE对象300(举例来说)则(物理地和/或虚拟地)含有:

一个软件代理,以及

与该软件代理相关联的至少一个规则和/或控制,用来控制该代理的操作

尽管上述基本结构已经足够可以定义“智能对象”,图73示意了若干容器和控制信息的组合,它提供了一个特别优越的智能对象结构示例,该智能对象用于安全地管理和控制软件代理的操作。

如图73所示,智能对象3000可以由容器300构成,在该容器300中嵌入了一个或多个另外的容器(300z,300y,等)。容器300还可以包含规则和控制信息以控制对这些嵌入容器300z,300y等的访问和使用。嵌入到容器300中的容器300z使对象3000成为了一个“智能对象”。它含有一个由VDE 100管理和控制的“代理”。

与容器300z相关联的规则和控制信息806f对某些特定情况进行控制,在这些情况中,代理将被发送到远程VDE站点并执行,这些信息中包含(举例来说)基于执行所需费用而得出的任何有关执行的限制。可以在容器300z中完整地规定规则和控制信息,并且/或者可以将规则和控制信息作为容器300的一部分交付、作为另一容器(该容器或者位于容器300之中,或者是一个可独立交付的容器)的一部分交付,并且/或者该规则和控制信息已经存在于远程VDE站点之中。

第二个容器300y则是可选的,其内容描述了存放在容器300z中的代理所要执行的地点。容器300y也可以含有规则和控制信息806e,这些规则和控制信息描述了对容器300y中的信息内容进行使用或改变的方式。该规则和控制信息806e和/或容器300y中还包含的其它规则300y(1)可以描述搜索和路由选择机制,这些机制可以用来将智能对象3000引导到所希望的远程信息资源中。容器300y可以包含和/或引用规则和控制信息300y(1),规则和控制信息300y(1)规定了如何支付对搜索和路由选择信息的使用和所做的任何修改。

容器300x是一个可选的信息内容容器,当智能对象3000被调度到远程站点时,容器300x初始为“空”。它含有规则和控制信息300(1),当存放在容器300z中的代理经过执行检索到信息内容后,规则和控制信息300(1)用来控制对该信息内容的存放。容器300x还可以含有有关存放在检索容器中的信息内容值的限制,以便限制检索到的信息内容数量。

容器300中的其它容器可以包括若干管理对象,这些管理对象含有审核和计帐跟踪,描述了存放在容器300z中的代理的行为,以及由于在远程VDE节点中执行代理所引起的任何费用。智能对象3000的实际结构取决于受控的代理类型、代理执行所需的资源、以及被检索的信息类型。

图73所示的智能对象3000可以用来在VDE 100中对代理的操作进行控制和管理。下面将对图74所示的示例智能对象交易进行详细解释,该例子将是一个有帮助的同时又是一个非限制的示意。在该特定例子中,假设用户将创建一个智能对象3000,该智能对象3000利用“特别快速和高效”的软件代理执行图书馆资料搜索,以便搜索出描述了有关所感兴趣的主题(如“萤火虫”)的书籍。搜索机设计成把书籍的清单返回给用户。在本例中,搜索机为查找到相应书籍所需的花费不超过10.00美元,为访问图书馆或通过通信到达图书馆所需的花费不超过3.00美元,所检索到的信息收费则不超过15.00美元。有关搜索和使用的所有信息都将返回给该用户,而该用户将不允许涉及该用户或代理的任何信息被发布给第三方。

在本例中,调度VDE电子设备3010构成了如图73所示的智能对象3000。806a中的规则集合则规定为一个控制集合,它包含下列元素:

1.一个smart_agent_execution(智能代理执行)事件,该事件规定了该智能对象存放在嵌入容器300z中;它还带有某些规则,以控制由容器300z指定的智能对象的执行;

2.一个smart_agent_use(智能代理使用)事件,该事件规定了智能代理将使用存放在容器300中的信息和参数进行操作;

3.一个routing_use(路由使用)事件,该事件规定了信息路由选择信息存放在容器300y中;它还含有若干规则,用来对存放在上述容器中的上述信息进行控制;

4.一个information_write(信息写)事件,该事件规定了根据所写信息的类型(路由选择信息、检索得到的信息、或管理信息)将这些信息存放在容器300y、300x、或300w中,并且这些容器具有独立的规则以控制信息如何写入它们之中。

控制集合806b中的规则集合包含了若干规则,这些规则规定了智能对象3000所需的权利。具体地说,该规则集合表明上述软件代理需要:

1.在远程VDE站点中使用“代理执行”服务的权利;由容器300z携带针对上述权利的特定计帐和收费信息;

2.在远程VDE站点中使用“软件描述清单”服务的权利;由容器300y携带针对上述权利的特定计帐和收费信息

3.在远程VDE站点中使用“信息定位器服务”的权利;

4.无须缴费(发布信息则需收费,并且将由VISA预算进行付帐)便可以使信息返回给用户的权利;

5.一个特定权利,该权利允许返回所有审核信息而只有发送者才可以读这些信息。

控制集合806b中的规则集合规定了:容器300w规定了如何处理与该容器的使用相关联的所有事件;控制集合806d中的规则集合规定了:容器300x规定了如何处理与该容器的使用相关联的所有事件;控制集合806e中的规则集合规定了:容器300y规定了如何处理与该容器的使用相关联的所有事件;控制集合806f中的规则集合规定了:容器300z规定了如何处理与该容器的使用相关联的所有事件。

按照规定,容器300z包含“特别快速和高效”代理的信息内容,它与下面的规则集合相关联:

1.一个使用事件,该事件指定了一个计量器和VISA预算,该预算限制执行的费用不超过10.00美元,费用由所有者的VISA卡支付。需要提供使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。

在指定了容器300z及其规则集合之后,这些信息将被创建并嵌入在智能对象容器300中。

按照规定,容器300y是一个含有两类信息内容的信息内容对象。信息内容类型A是路由选择信息并且具有读/写特性。与信息内容类型A相关联的规则集合规定了:

1.一个使用事件,该事件规定了对该信息内容的发布不执行任何操作,其效果是对该信息内容的使用不收费;

2.一个写事件,该事件指定了一个计量器和VISA预算,该预算限制写操作的费用不超过3.00美元。写操作所用的计帐方法未予规定,该方法将被使用该规则的控制方法规定。

3.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。

信息内容类型B是软件代理所使用的信息,它为该代理指定了参数。该信息内容被规定为串“萤火虫”(“fire fly”或“fire flies”)。信息内容类型B与下面的规则集合相关联:

1.一个使用事件,该事件规定了该使用只能由软件代理或路由选择代理执行。对于该信息,软件代理具有只读许可,而路由选择信息具有读/写访问。对于该信息的使用不收取费用,但是要使用两个计量器进行计量,一个计量器用于计量读操作,另一个计量写操作,它们将跟踪各个处理步骤对该信息的使用。

2.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。

在指定了容器300y及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。

按照规定,容器300x是一个信息内容对象,该对象不含有任何信息内容。它带有的控制集合包含下面的规则:

1.一个write_without_billing(无须计帐的写操作)事件,该事件指定了一个计量器和一个通用预算,该预算限制写操作的费用不超过15.00美元。

2.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。

3.一个空的使用控制集合,该集合可以被该信息的所有者利用预定义的方法(方法选项)填充。

在指定了容器300x及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。

按照规定,容器300w是一个空的管理对象,它带有的控制集合包含下面的规则:

1.一个使用事件,该事件规定:包含在该管理对象中的信息只能被发布给智能对象容器300的创建者。

2.容器300w中的上述管理信息内容不附加其它规则。

在指定了容器300w及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。

此时,该智能对象已经创建好,并准备就绪可以被调度到远程站点。该智能对象通过路径3014(如使用电子邮件或其它传送机制)被发送到了含有信息定位器的远程站点。该智能对象在远程站点3012为使用“项定位器服务”而注册。容器中有关“项定位器服务”的控制集合被选中,并且该控制集合所包含的规则在远程站点3012被激活。然后,远程站点3012在规则集合806f和300y(1)的控制下读取容器300y的信息内容,并允许按照这些规则将一个位置信息的列表写入容器300y。项定位器服务将含有三个条目的列表写入了该智能对象,然后对该智能对象“取消注册”(此时该智能对象包含了位置信息),并将该智能对象通过通路3018发送到站点3016。站点3018由写入到智能对象中的列表所指定。在本例中,用户可以已经指定电子邮件作为传送机制,并且将可能含有所需信息的远程站点列表存放在一起,作为一个转发列表。

智能对象3000一旦抵达第二远程站点3016后,将在该站点处注册。站点3016提供代理执行以及与VDE兼容的软件描述列表服务,作为提供给智能对象的一项服务。它将这些服务对外公布,并规定为启动代理,它将收费10.00美元,而对于返回的所有信息,其收费标准为每条信息20美元。注册进程将公布的服务信息与存放在上述对象中规则进行对比,并确定不存在可接受的重叠。对所有这些动作的审核信息都被写入管理对象300w中。然后该注册进程失败(该对象未被注册),站点3016通过通路3022将该智能对象转发给列表中的下一VDE站点3020。

智能对象3000一旦抵达第三远程站点3020后,将在该站点处注册。站点3020提供代理执行以及与VDE兼容的软件描述列表服务,作为提供给智能对象的一项服务。它将这些服务对外公布,并规定为启动代理,它将收费1.00美元,而对于返回的所有信息,其收费标准为每条信息0.50美元。注册过程将公布的服务信息与存放在上述对象中规则进行对比,并确定存在可接受的重叠。该注册过程创建一个URT,该URT规定了协商同意的控制信息。该URT与其它控制信息一起使用,以便在VDE控制下执行上述软件代理。

该软件代理开始执行,并从容器300y中读取其参数。然后,它开始搜索数据库,并在该数据库中获得了253次“命中”。命中清单被写入容器300x,一起写入的还有一个完整控制集合,该控制集合规定了每个项的粒度,并规定每一个项收费0.50美元。一旦完成搜索,使用该服务的预算被增加1.00美元,以反映出对该服务的使用费用。对所有上述操作的审核信息被写入管理对象300w中。

远程站点3020通过通路3024将目前的“饱和”智能对象3000传送回VDE节点3010上的原始发送者(用户)。抵达以后,智能对象3000被注册,数据库记录可以从中得到。此时,由容器300x规定的控制信息是两种控制信息的混合,一种是原始的控制信息;一种控制信息则由上述服务指定,它与信息的远程的释放相关。然后,该用户从智能对象3000中抽取出20个记录,在抽取记录的同时,其VISA预算被收费10.00美元。

在上述智能代理VDE示例中,本文描述了智能对象3000及其组成容器的一种特定组织。也可以创建VDE及智能对象相关控制信息和参数的其它组织形式,并将之应用于上例所述对象3000所适用的相同用途。

协商和电子合同

电子合同是协议的一种电子形式,它包含了权利、限制、以及各方对该协议应承担的义务。在许多情况下,电子协议主要是围绕着对以数字形式提供的信息内容的使用,例如,电子协议可以是一份许可证,用来许可观看数字化分发的电影。不过,电子协议不一定要局限于电子信息内容的存在,或其针对的也不一定是由准备达成协议的一方或多方对电子信息内容的使用事宜。作为最简单的形式,电子协议含有一个权利和以及对该权利的使用进行管理的一个控制。

象传统的协议一样,电子协议可能需要参与各方的协商(由一方或多方提出的条款和条件可以简单地被其它一方或多方接受(依附合同),并且/或者上述其它各方可以有权选择某些上述的条款和条件(同时这些其它各方可以提出其它条款和条件))。在字典中,协商定义为:“由于相互达成一致而集合在一起的行为”。较佳实施例提供了电子协商进程,在该进程中,利用针对条款的电子化自动协商可以创建权利及相关控制。协商通常需要对权利及其相关控制的精确说明。PERC和URT结构提供了一种机制,使用这种机制可以产生对权利及其控制的精确电子化表示。因此,VDE提供了用户和制作者可以用来规定其愿望的“词汇表”和机制。多个自动化进程可以对这些愿望进行解释,根据这些愿望,经过适当协商后到达一个共同接受的中间点。所述协商的结果可以在一个结构中简明地描述出来,该结构可以用来控制和强制执行电子协商的结果。由于VDE提供了安全执行空间,而该空间可以保证协商进程在其操作过程中的完整性和保密性,所以VDE对协商进程提供了进一步支持。上述协商进程也可以按照某种特殊方式执行,以防止外部对协商进程的破坏。

通常,协议(特别是协议的电子化描述)应该具备的最后一个特征是它们应该用不可被否认的形式被精确地记录下来。按照传统的做法,上述过程涉及创建一个书面文件(一份合同),该文件描述了权利、限制、以及参与各方对该协议应承担的义务。所有参与各方将阅读该文件然后在上面签名,这样该文件将成为对上述协议的精确表示。电子协议由于其固有的特点开始时可能不用书面表达。在VDE支持下,可以精确地、电子化地描述这种协议,然后对之进行电子化地签名以防被否认。另外,较佳实施例提供了一种机制,以提供人们可读懂的电子合同条款描述。

VDE提供了一种规定控制集合的简明机制,这些控制集合对VDE站点是可判读的。机器可判读的机制通常不是人类可读的。VDE经常代表至少一个人类用户执行协商进程。因此,该协商最好能够以“人类可读的格式”表达。VDE有关对象、方法、和加载模块的数据结构中都准备了空间,以便在这些结构中规定一个或多个DTD。这些DTD可以与上述项保存在一起,也可以单独保存。DTD描述了一个或多个数据元素(MDE、UDE或其它相关数据元素),这些数据元素可以包含对上述条目所具功能的自然语言描述。这些自然语言描述为各项提供了与语言无关的、人类可读的描述。项的集合(例如一个BUDGET方法)可以与自然语言文本相关联,该文本描述了项的集合的功能,并形成了一份经过电子化规定的、具有可强制性的合同。项的集合(一个控制集合)定义了与特定权利相关联的合同。因此,VDE支持电子合同的电子说明、协商以及强制执行,这些电子合同可以被人类理解和遵守。

VDE 100采用下面若干方式支持电子合同的协商和强制执行:

它支持对权利和控制信息的简明描述,这样就可以为协商进程提供通用的词汇表和过程

它提供了安全处理环境,协商可以在该环境中执行

它提供了分布式环境,在该环境中,可以安全地分发权利和控制的详细说明

它提供了安全处理环境,在该环境中,可以由协商合同的进程采用电子方式描述和签准所商定的合同,以及

它提供了一种机制,该机制可以安全地强制执行商定了的电子合同。

协商类型

协商的一种简单形式是:由一方提出要求并形成一份“依附”合同。在该协商过程中,另一方可以选择的选项如果有的话也是很少。该要采的接收方有一个简单的选择:他或者接受或者拒绝该要求中的条款和条件(控制信息)。如果他接受上述条件,他就被授予了要接受指定控制信息控制的权利。如果他拒绝上述条件,那么他不被授予上述权利。PERC和URT结构可以根据要求支持协商进程。可以将PERC或来自PERC的控制集合作为一种要求提出,而接收者可以接受或拒绝该要求(如果提供了经过允许的备选方法的话,即可在其中进行选择)。

目前,上述协商类型的一个通用例子是在“收卷许可”(shrink-wrap license)的条款规定下购买软件。许多广泛采用的电子分发方案使用这种协商方式。CompuServe是一种采用这种方式运作的在线服务示例。用户面临的选择十分简单:或者支付指定的费用,或者不使用该服务或软件。VDE可以支持这种类型的协商,因为它能够提供描述了权利和控制信息的PERC和URT,同时,它还允许信息内容拥有者提供REGISTER方法,该方法则允许用户从一套预定义的备选方法中进行选择。在这种情况下,REGISTER方法可以包含一个部分,该部分是一个简化了的协商进程。

协商进程的一个更为复杂的形式可以被比喻为“讨价还价”。在该情况下,大多数条款和条件都是固定的,但是还有一个或多个条款(例如价格或付款条款)则不是。对于这些条款,还需要就其选项、限制和元素等方面进行磋商。可以用两方之间的VDE电子协商来决定所需的、允许的、和可选的条款。电子协商的结果可以是一套最终的规则和控制信息,它们规定了已完成的电子合同。一个简单的例子是在上述购买软件的方案中增加购买者选择付款方式(VISA,MasterCard,或American Express)的能力。一个更为复杂的例子是另一种购买信息的方案,在该方案中,所付价钱取决于与使用审核跟踪一道返回的、有关该用户的信息量。在第二个例子中,信息内容的使用权可以与两种控制集合相关联,一种控制集合可以描述信息内容使用的一个固定(“较高”)价格。另一个控制集合则可以描述信息内容使用的一个固定(“较低”)价格,而对信息内容的使用要结合附加控制信息和字段说明,这些字段说明要求收集和返回用户的个人信息。在上述两种情况下,PERC中的可选和允许字段以及控制集合可以描述某些选项,而这些选项可以被选定为协商的一部分。为了执行上述协商,一方可以提出一个控制集合,该控制集合含有由PERC规定的特定字段、控制信息、以及某些限制。另一方可以从提议的控制集合中挑选和接受某些部分、拒绝这些控制集合、或提出可用的替代控制集合。协商进程可以使用PERC中所允许的、所要求的、和可选的规定,以确定最终规则集合的可接受参数范围。一旦达成协议,协商进程将创建一个描述协商结果的新PERC和/或URT。最终的PERC和/或URT将由参与协商的所有协商进程“签准”(如使用数字签名),以便防止以后出现否认该协议的情况。

被协商元素的其它例子有:电子现金、定购单、采购证明(礼物证明、优待券)、标书和说明书、预算“回滚”和平衡、货币汇率、股票购买、以及计帐比率。

图75A(由信息内容所有者发送的PERC)、图75B(由用户创建的PERC,用来表示他们的选择和权利)以及图75C(用来控制协商进程的PERC)示意了可以用来支持上述第二个例子的一套PREC。这些PERC的使用可以结合下面所述的任意协商进程和协议。

图75A示意了PERC 3100的一个例子,该PERC 3100可能由信息内容提供者所创建,用来描述他们的权利选项。在本例中,该PERC含有涉及单一USE权利的信息。在本例中,针对该权利提供了两个可选的控制集合3102a,3102b。控制集合3102a允许使用信息内容,而不必传回有关用户的信息;而另一个控制集合3102b则在允许使用信息内容的同时,从用户那里收集“响应卡”类型的信息。控制集合3102a,3102b两者都可以对大多数控制信息使用通用的方法集合。该通用控制信息由CSR 3104和CS0 3106表示。

该PERC 3100中的控制集合3102a描述了一种机制,使用这种机制,用户可以得到信息内容,同时不必向信息内容提供者提供有关该信息内容用户的任何信息。控制集合3102a规定了众所周知的出售控制方法以及必要方法和备选方法的集合。特别地,在本例中,控制集合3102a定义了一个BUDGET方法3108(如VISA、Mastercard或AmericanExpress其中之一),并定义了一个BILLING方法3110,BILLING方法3110定义了一项费用(如一次性收费100.00美元)。

该PERC 3100中的控制集合3102b描述了另一种机制,用户可以通过该机制得到信息内容。在本例中,控制集合3102b规定了另一种的出售控制方法以及必要方法和备选方法的集合。该第二种控制集合3102b规定了一个BUDGET方法3112(如VISA、Mastercard或American Express其中之一)、一个BILLING方法3116、以及一个AUDIT方法,BILLING方法3116规定了一项费用(如较低的一次性收费25.00美元),AUDIT方法规定了一套所需的和必要的字段。上述必要的和所需的字段说明3116可以采用DTD说明的形式,在该字段中列出了字段的名字。

信息内容制作者可以“建议”两个控制集合之一(如控制集合2)而舍弃另外一个。如果是这样的话,在协商过程中可以首先“提供”上述被“建议”的控制集合,并且,如果其参与协商的另一方“拒绝”该“建议”的控制集合时,该“建议的”控制集合可以被撤出,而采用“非建议”的控制集合。

在本例中,上述两个控制集合3102a,3102b可以共享公用的BUDGET方法说明。如果需要的话,可以将BUDGET方法说明放置在CSR 3104或CS0 3106控制集合中。当控制集合3102a(使用该控制集合时没有信息返回)被选中时,将会按照PERC 3100的规定装配一个唯一的部件组。特别地,在本例中,该部件组将选择“出售”CONTROL方法3118、100美元固定费用的BILLING方法、以及由CSR 3104和CS0 3106规定的其余控制信息。部件组还要求用户选定他所接受的BUDGET方法(例如从VISA、Mastercard或American Express中进行选择)。选择控制集合3102b将会导致装配另一个部件组,该部件组使用了“带响应卡的出售”CONTROL方法3120、BILLING方法3116(例如25美元的固定费用)、以及一个AUDIT方法3114,该AUDIT方法3114需要必要字段DTD 3116中列出的字段。该进程还可以从所需字段DTD 3116列出的字段中选择该进程可用的所有字段。其余控制信息由CSR 3104和CS0 3106规定。对控制集合3102b的选择过程还强迫用户选定他们所接受的BUDGET方法(例如从VISA、Mastercard或American Express中进行选择)。

图75B示意了一个控制集合3125的例子,该控制集合3125可以被用户用来在协商过程中指定其愿望和要求。该控制集合带有一个USE权利区段3127,该USE权利区段3127含有了一个聚合的CSR预算说明3129和两个可选控制集合3131a,3131b用来控制信息内容的使用。控制集合3131a需要使用特定的CONTROL方法3133和AUDIT方法3135。指定的AUDIT方法3135由字段列表3137作为参数,这些字段3137可以在审核跟踪中发布。控制集合3131a还指定了一个BILLING方法3139,该方法的花费不能超过某个特定数额(如30.00美元)。在本例中,控制集合3131b描述了特定的CONTROL方法3141,并且可以引用一个BILLING方法3143,如果该备选方法被选中的话,其花费不能超过某个特定数额(如150.00美元)。

图75E示意了电子合同3200一个更高层次的外观,该电子合同作为上述协商进程的“结果”而形成。电子合同3200可以包含多项条款3202和多个数字签名3204。每项条款3202都可以含有一个PERC/URT,诸如前面所述并由图75D示意的项3160。因此,电子合同3200中的每项“条款”3202将对应于一个部件组690,该部件组可以由VDE电子设备600装配和执行。正如普通合同那样,为体现“各方”之间的“协议”需要多少合同条款3202,电子合同3200中就可以含有多少合同条款3202。每项条款3202都可以已经通过电子方式被商定,因此它体现了各方之间所达成“协议”(如某个“折衷”)的一个部分。电子合同3200是“自执行”的,其含义为,它可以由一个机器即一个VDE电子设备600按照字面意思执行,即该VDE电子设备600按照各种电子条款3202的要求装配部件组690。可以结合任意部件组690使用上述的同一VDE机制自动地“强制执行”电子合同3200。例如,假设条款3202(2)对应于一项付帐或BILLING条件或条款,其对应的部件组690在被用户的VDE电子设备600装配的时候,将自动判断是否已到该付款的条件了,如果到了,该部件组690将自动访问相应的付帐机制(如该用户的一个虚拟“信用卡”对象),以便安排进行本次付帐。再举一个例子,假设电子合同条款N 3202(N)对应于用户的一项义务,即用户应该向特定的VDE参与者提供审核信息,电子合同3200将使VDE电子设备600装配一个相应的部件组690,该部件组690可(举例来说)访问安全数据库610中的相应审核跟踪,并将这些信息放在一个管理对象中提供给正确的参与者。图75F示意了条款3202(N)可以(举例来说)指定一个部件组690,该部件组690可以对交易3206中发生的多个步骤进行安排。受测试(如3208(3))结果的影响,上述某些步骤(如步骤3208(4),3208(5))可以是有条件的,这些测试可以用来判断(举例来说):信息内容的使用量是否超过了特定的数量,某个时间段是否已经到期,是否到了某个特定的日期,等等。

图75E电子合同3200所示的数字签名3204可以含有(举例来说)使用了上述公开密钥技术的传统数字签名。某些电子合同3200可以不带有任何数字签名3204。不过,为了留有证据等目的,可能最好要求作为电子合同3200一方的用户所拥有的电子设备600采用数字方式在电子合同上“签名”,这样一来,该用户以后就不能否定该合同。参与同一合同的每一方都可以在同一电子合同3200中留下数字“签名”,其方式类似于参与一个合同的多方用书面文件形式记录了该合同之后,用一支钢笔在该合同上签字。

尽管电子合同3200的每个条款3202都可以最终对应于一组数据和可以由PPE 650执行的代码,在某些情况下可能仍然需要提供电子合同的一份人类可读的版本。如上所述,可以通过在一个或多个DTD提供文本的方式来满足这一要求,此处的一个或多个DTD与用来自动执行上述合同的一个或多个部件组690相关联。上述文本(举例来说)从功能的角度描述了对应的电子合同条款3202意味着什么、涉及了什么,并且/或者还可以以法律可强制的条款形式描述了在该合同下的法律义务是什么,该法律义务代表的是什么。可以使用(本文所述的)“模板”从一个文本库中提供上述文本。可以借助专家系统和/或人工智能功能来施加许多语法规则,这些语法规则可以将各种文本元素合并在一起,形成一个一致的、人类可读的合同文件。如果必要的话,可以由一个“人类”律师审阅和修改上述文本,以便为各方之间达成的上述特定协议对这些文本进行相应定制,并且/或者加入其它的法律义务,以便对体现在相关部件组690中并由该部件组690强制执行的“自执行”电子义务进行扩充,上述相关部件组690在VDE电子设备600中执行。一旦执行该电子合同时,可以自动地将上述文本显示出来,也可以根据要求显示这些文本;另外,可以在任意时刻利用这些文本打印出上述合同的一份人类可读版本。电子合同3200的这种文件形式版本不需要达成协议的各方用墨水签名(除非大家愿意的话),因为事实上数字签名3204可以提供足够安全和可信的证据基础,以证明各方均已共同赞成合同中的所有条款和条件。

在较佳实施例中,协商进程在PPE 650中执行,其执行过程要受规定该进程的另一个PERC控制。图75C示意了一个规定协商进程的PERC 3150示例。PERC 3150含有对应于协商进程的单一权利3152,对应于该权利3152有两个允许的控制集合3154a,3154b。第一个控制集合3154a可以用在“可信协商”中,它引用了所需的协商CONTROL方法(“协商”)3156,还(在字段3157a,3157b中)引用了两个UDE,这些UDE将被上述CONTROL方法使用。这些UDE可以是如图75A和75B所示的PERC 3100、3125。第二个控制集合3154b可以由“多协商”进程所使用,以便对协商进行管理,它还可以提供两个协商方法:“协商1”和“协商2”。这两个协商进程都可以被描述为必要方法(“协商1”和“协商2”)3156、3158,这两个必要方法分别以PERC 3100和3125为输入。该控制集合的CONTROL方法3158可以指定一个服务名,上述的两个协商进程可以使用该服务进行彼此间的通信;CONTROL方法3158还可以管理协商产生的URT的创建。

在执行图75C所示PERC 3150指定的协商进程时,可以提供PERC3100、3125作为该协商进程的输入;PERC 3100、3125将被用作该协商的基础。在本例中,可以由执行VDE节点选择协商进程的类型(是可信的,还是多个的)。图75C所示的PERC 3150可以(举例来说)由REGISTER方法在收到用户注册请求时创建。然后,该REGISTER方法可以使用由上述PERC指定的进程来启动对电子合同条款的协商。

在上述示例性的协商过程中,图75A和75B所示的PERC 3100、3125充当输入数据结构,根据图35C所示的PERC 3150创建的部件组将对这些输入数据结构进行比较。此时可以装配和比较由控制集合指定的部件组,在协商进行过程中,该部件组从必要“条款”开始处理,随后是提议的/所需的“条款”,然后处理允许的“条款”。可以使用由PERC 3100、3125指定的所需方法和备用方法来选择方法选项。在本例中,可以将对应于图75A所示PERC 3100的控制集合与图75B所示的PERC 3125进行比较。如果出现“匹配”,该协商进程将成功结束,协商的“结果”也将会产生。

在该实施例中,协商的结果通常将以URT的形式写出,并且将经过各协商进程的“签名”,表示已经达成了协议。这些电子签名反映了已经达到某种(虚拟的)“思想一致”(这是合同存在的传统法律前提之一)。图75D示意了上例创建的URT 3160示例。

URT 3160(其本身可以是一个PERC 808)含有一个控制集合3162,该控制集合反映了在协商过程中得到各方“一致认可”的“条款”。在本例中,这些经过“一致认可”的条款必须满足输入PERC 3100、3125所提出条款的要求,从这个意义来说,这些经过“一致认可”的条款必须与由输入PERC 3100、3125要求的条款“一样有利”。所示的协商结果包括(举例来说)一个“经协商”的控制集合3162,该控制集合3162在某种意义上对应于图75A PERC 3100的控制集合3102a以及图75B中PERC 3125的控制集合3131a。因此最终“协商得到”的控制集合3162含有一个所要求的BUDGET方法3164,该方法3164对应于控制集合3125所要求的BUDGET方法3142,但该方法3164处于由控制集合3100要求的BUDGET方法3112所允许的控制集合范围内。类似地,最终协商得到的控制集合3162包含一个所要求的AUDIT方法3166,该AUDIT方法3166符合由PERC 3100所要求的AUDIT方法3114和由PERC 3125所要求的AUDIT方法3135两者所提出的要求。同样,最终协商得到的控制集合3162包含一个所要求的BILLING方法3170,该BILLING方法3170“匹配”或符合由PERC 3100所要求的BILLING方法3116和由PERC 3125所要求的BILLING方法3170两者所提出的要求。

还有一种协商类型,在这种协商中,不确定规则,只规定所希望达到的目标。对于这种类型的协商,其协商进程可能非常复杂。它可以使用人工智能、模糊逻辑和/或相关算法以达到其目标。VDE提供了一种机制以支持这种类型的协商进程,该机制用来以简明地(以所希望权利、控制信息和字段的形式)规定权利、控制信息、字段和目标。可以将这种进程的目标规定为一个或多个控制集合,这些控制集合包含一些指定元素,这些元素被标记为可选的、所允许的或所希望的。

协商类型

可以采用下面的任何一种方法建立较佳实施例中的协商:

1.共享知识

2.信托协商者

3.“零基础”知识

“共享知识”型协商的基础是:所有各方都了解与协商相关的所有规则和限制。需求型协商是共享知识型协商的一个简单例子。需求者提出一个需求清单,这些需求必须要被一起接受或被一起拒绝。需求清单中含有一套完整的知识,这些知识是接受或拒绝清单中各项目所必须的。VDE提供了一种机制以支持这种协商以电子形式进行,采用这种机制,可以使用VDE安全处理技术和通信功能在VDE安全子系统之间或使用VDE安全处理对上述各类需求进行编码、安全地传送以及安全地处理。VDE使用的另一类共享知识型协商涉及到在参与协商的双方或多方之间交换信息。协商进程可以根据其独立的优先级独立地决定所希望的最后输出。这些进程可以针对任意分歧进行协商。共享知识型协商可以涉及一个单一协商进程(与需求型协商那样),也可以涉及两个或多个相互协作的进程。图76A和76B示意了在共享知识型协商中使用一个和两个协商进程的情形。

图76A示意了单个协商进程3172,该进程可以将任意数目的(例如由不同方提供的)PERC 808作为本次协商的输入。协商进程3172在“协商进程规则和控制信息”的监督下执行于VDE节点之中,该“协商进程规则和控制信息”可以由另一个PERC(如在图75C中示意的PERC 3150)提供。进程3172产生一个或多个PERC/URT 3160作为协商的结果。

图76B示意了多个协商进程3172A-3172N,每个进程都从一方和另一个PREC 3150得到一个PERC 808作为其输入。上述的PERC 3150对该协商进程进行控制,并且每个协商进程3172A-3172N都产生一个协商“结果”PERC/URT 3160作为输出。进程3172A-3172N可以在同一或不同的VDE节点中执行,并且可以使用“协商协议”进行相互间的通信。

对于特定的VDE站点,可以使用单个和多个协商进程。可以使用众所周知的方法对协商进程进行命名和访问,可以将PERC和URT放在管理对象或智能对象中传递给远方的VDE站点,以便在该站点中处理。控制该协商的控制PERC和REGISTER方法也可如此。

多协商进程要求具有在这些进程3172之间通信的能力,这包括出现在物理上分开的VDE站点(安全子系统)中的安全进程之间的安全通信。VDE将这种进程间的通信通用化成一种服务,这种服务采用安全方法提供出来,如果配置需要的话可以使用该服务。上述进程间通信使用了一种协商协议在进程3172间传递有关规则集合的信息。一个示例性协商协议包括下列协商“原语”:

WANT(需要)      需要一套条款和条件

ACCEPT(接受)    接受一套条款和条件

REJECT(拒绝)    拒绝一套条款和条件

OFFER(提供)     提供一套条款和条件,作为对其它条款

和条件的交换

HAVE(拥有)      宣布一套条款和条件是可能的或所希

望的

QUIT(退出)      在各方没有达到一致的情况下宣布协

商结束

AGREEMENT(一致)结束协商,并传递规则集合以供签名

WANT原语接收权利和控制集合(或控制集合的部分)信息,并向其它进程3172宣布:所指定的条款是所希望的或被要求的。需求型协商是使用WANT原语宣布需求的一个例子。本协议示意将介绍WANT原语的一个精练形式—REQUIRE。在本例中,REQUIRE允许一方设置他认为是形成合同所必要的条款,而WANT则可以允许一方设置他所希望的但不一定是所必需的条款。这样就可以使“必须有”和“希望有”之间有所差别。

在本例中,WANT原语必须始终由ACCEPT、REJECT、或OFFER原语回答。ACCEPT原语允许协商进程3172接受一套条款和条件。REJECT原语允许协商进程3172拒绝所提出的一套条款和条件。拒绝所要求的一套条款和条件将终止协商过程。OFFER原语则允许买方还价。

HAVE、QUIT和AGREEMENT原语允许协商协议传递有关规则组的信息。在共享知识型协商开始的时候,(举例来说)所有的协商进程3172A-3172N都向其它进程确立HAVE原语(即我的PERC)。当出现僵局时,一个协商进程3172还可以利用HAVE原语让其它进程3172知道有关被允许选项的情况。QUIT原语通告协商未达成最终协议而失败地结束,而AGREEMENT原语则通告已成功地达成了协议,该原语还将“协商”结果PERC/URT 3160传递给另外的进程3172让其签名。

在“信托协商者”协商中,所有协商各方都将他们的需求与希望提供给一个“信托协商者”,并同意受该协商者的决定的约束。这种方法类似于当今社会中的约束仲裁。为支持这种模式的协商,VDE提供了一个可以创建“信托”协商服务的环境。VDE不仅提供了一种用来简明地(如在PERC中))定义需求、希望和限制的机制,并且在该机制中,PERC可以同规定了如何指导协商的规则集合一起被安全地传送到一个“信托”协商服务;同时,通过提供一个安全的执行环境,可以确保协商进程不会受到破坏。如果众所周知某些站点具有完整性,那么这些站点可以使用信托协商者服务。假如某些VDE站点不具备充足计算资源以执行一个或多个协商进程,这些站点便可以使用远程信托协商者服务。它们可以与提供该服务的VDE站点建立通信链路,并允许该服务代表它们处理协商事宜。

“零基础”知识型协商采纳了用在鉴别过程中的零基础知识协议所具有的某些特性。在本领域中大家都熟知如何创建某个协议,使该协议可以在不交换或暴露项的前提下确定一个远程站点受否是该特定项的持有者。可以在两个具有下列特点的协商进程之间创建这种类型的协议:它们运行在至少一个VDE站点中,使用一个控制集合作为它们的知识库。这些协商进程可以交换有关其控制集合的信息,它们可以提出与使用它们各自控制集合有关的需求和反提议。例如,协商进程A可以与协商进程B通信,以协商阅读一本书的权利。协商进程A规定为了获取该书的阅读权,它支付的费用不超过10.00美元,并且希望对于该权利其付款范围最好在5.00美元到6.00美元之间。进程A的规则集合还规定了:对于5.00美元付款选项,它将允许公布读者的姓名和地址。进程B的规则集合规定:对于该书的阅读权它希望收取$50.00美元,同时如果用户同意公布其个人信息时,它将以5.50美元的价格提供该书的阅读权。其协商过程可能如下进行:

进程A       <--->              进程B

WANT(阅读权,无限制) --->

<---      HAVE(阅读权,无限制,50美元)

OFFER(阅读权,提供用 --->  户信息)

<--- HAVE(阅读权,提供用户信息,                             5.50美元)

ACCEPT(阅读权,提供  --->  用户信息,5.50美元)

在上例中,进程A首先规定它希望得到该书的阅读权,该阅读权不要附加任何限制,也不公开其它信息。在进程A用来作为一条规则的PERC中,将这一起点规定为一个权利选项。进程B检查其规则,并确定未加限制的阅读权实际上需要收费50美元。它答复进程A说可以提供上述的条款。进程A收到该应答后,对照特定控制集合对该应答进行检查,这些控制集合包含在进程A用来作为规则库的PERC中。由于50美元的数额超出了对该控制集合所规定的10美元限制,所以进程A不能接受上述提议。于是它进行一次讨价还价(由另一个可选权利选项规定该讨价还价事项),希望得到不受限制的阅读权同时附带允许公布读者名字和地址这一条件。名字和地址字段在进程A PERC引用的DTD中进行了描述。进程B检查其规则PERC,并确定不受限制的阅读权附带公布个人信息的条件是一个被允许的选项。它将对比两个字段,第一个字段是由进程A提供的DTD所描述的、将被公布的字段;另一个字段是在进程B自身PERC所含DTD中包含的所希望字段;在比较过程中进程B确定存在一个可接受的匹配。于是它向进程A发送一个5.50美元的要价,这个要价针对的是不受限制的阅读权附带公布特定信息的条件。进程A对照其规则集合比较收到的权利、限制和字段信息,并确定5.50美元处于其规则集合定义为可接受的5美元-6美元范围之中。于是它接受进程B做出的上述要价。双方通过“签署”一个新PERC将最终要价盖章落实,新PERC描述了最终协商的结果(未加限制的权利,附带公布用户信息,要价5.50美元)。进程A的所有者可以使用上述新PERC来阅读所希望的信息内容(书),该阅读要受到规定条款和条件的控制。

进一步的处理链模型

前面结合图2讨论过,在用来管理信息内容分发的一个VDE处理和控制链示例中,有四(4)种VDE 100的参与者实例。作为上述参与者实例中的第一种,信息内容制作者102的角色由文学作品的出版商、作者、权利所有者和分发者担任,他们准备好信息以便分发给消费者。作为第二种参与者实例,VDE权利分发者106可以分发权利,并且管理和分析消费者对VDE特许信息的使用。作为第三种参与者实例,信息内容用户112的角色则由用户(包括最终用户和分发者)在使用上述信息的时候充当。作为第四种参与者实例,财务票据交换所116提供VDE相关的票据交换所服务。作为另一种参与者,VDE管理员则提供支持,以维护VDE 100的正常运行。在安装了适当授权和权利操作系统部件后,任何VDE电子设备600都可以充当任意或所有上述的参与者角色。

文学作品是VDE 100中一类原始素材的一个例子。为了将这种原始素材转化成最终的商品,出版商、作者或权利所有者利用各种工具将数字信息(如电子图书、数据库、计算机软件和电影)转换成名为“对象”的受保护数字包。只有从分发者106那里得到许可的消费者(或位于拥有链中的其它人员,如再次分发者)可以打开这些包。经VDE打包的信息内容可以受到“规则和控制信息”的约束,这些“规则和控制信息”由信息内容制作者102和/或信息内容分发者106、或位于信息内容分发路径中的其它VDE参与者提供,即:“规则与控制信息”通常由那些离安全化VDE包的创建“较近”的参与者提供,而较少由那些受到约束的参与者提供。

一旦信息内容被包装成“对象”,则可以开始数字化的分发过程。由于信息包本身已经受到了保护,因而可以自由地以多种形式对之进行分发,如可以放在CD-ROM盘上分发,可以通过计算机网络分发,也可以通过有线电缆或无线电波进行广播。受保护的信息内容包在最终用户之间进行非正式的“通道外”交换不会给信息内容所有权带来风险。这是因为只有经过授权的个人才可以使用上述信息内容包。实际上,某些信息内容提供者可以鼓励这种“通道外”的分发方式,将它作为进入市场的一种低代价策略。拥有使用特许的消费者(如可提供一定使用费用的VISA票据交换所预算)可以(举例来说)自由地允许由其邻居提供给他们的各类通道外受保护VDE信息内容包。

为了打开VDE包并使用其信息内容,最终用户必须拥有许可。分发者106可以授予这些许可,并且(在上级控制信息的允许下)可以非常灵活地限制或规定包中信息内容的使用方式。分发者106和财务票据交换所116通常还负有财务责任(在某些情况下如果需要的话,它们可以是同一组织)。它们确保向最终用户要求的付款满足其自身的或其它参与者的要求。通过对使用情况进行审核,可以实现上述功能。

使用VDE 100的分发者106可以是软件发布者、数据发布者、有线、电视和无线电广播者,以及电子形式信息的其它分发者。VDE 100支持所有的电子分发形式,包括通过广播和电信进行分发,或采用对电子存贮介质的物理传送方式进行分发。它还支持以同类方式交付信息内容。在此过程中,VDE 100把来自多种分发类型的信息与许可、控制机制和信息内容无缝地集成在一起。

对于分发者106和财务票据交换所116来说,可以根据对其管理行为所做的安全记录对它们本身进行审核,同时,一连串可靠的并“可信”的进程确保了整个分发过程的完整性。这样做可以使信息内容所有者核实:根据实际的信息内容使用,或根据其它的协议基础,他们收到了应得的报酬。

在本例中,由于最终用户112是信息内容的最终消费者,因此VDE的设计保证了以无缝和透明方式提供被保护的信息内容—只要最终用户没有超越收到的许可的范围。可以对最终用户112的行为进行计量,以便分发者106能够实施审核。可以对审核进程进行筛选和通用化,以便满足用户对隐私的考虑。例如,对于被计量和记录的VDE信息内容使用信息和/或电子设备使用信息来说,可以在把它们报告给分发者106之前对将它们进行筛选,以防止泄露那些本不该泄露的、有关信息内容用户112和/或及其使用情况的信息。

VDE 100允许信息内容提供者以电子方式对他们的传统分发策略进行重要改革,并允许他们创新地建造适合其自身的需要和情况的新型分发机制。  VDE 100允许相关参与者出现在分发链中,并允许他们按照自身愿望指定价格策略、访问和再分发许可、使用规则和相关的管理和分析过程。VDE 100的可重用功能性原语可以由信息内容提供者灵活地结合使用,以反映他们各自的分发目标。作为结果,信息内容提供者可以将其信息输入到已建好的分发通道中,也可以创建他们自己的、带有个性化的分发通道。

下面概括性地列出了虚拟分发环境100中各种参与者的角色。

角色说明

传统参与者信息内容制作者数字信息的打包者和初始分发者信息内容所有者数字信息的所有者分发者提供预算和/或信息内容的权利分发服务审核者提供服务用来处理和压缩基于使用的审核跟踪。票据交换所为信息内容与审核信息提供中间的存贮转发服务。它还通常为其它服务提供平台,所述其它服务包括第三方财务提供者和审核者网络提供者提供站点和其它参与者之间的通信服务财务提供者向最终用户和分发者提供电子资金的第三方源。该类用户的例子有VISA、American Express或政府最终用户信息的消费者其它参与者再次分发者根据由信息内容提供者和/或其它分发者所规定的处理链限制,再次分发信息内容的使用权VDE管理员提供可信的服务,以便对VDE节点提供支持审核信息独立处理者提供某些服务,以处理和总结审核跟踪数据。它向用户提供匿名权,同时还保持信息内容提供者所需要的全面审核能力代理使最终用户和其它VDE参与者可以分布式出现

在上述各种VDE参与者之中,“再次分发者”、“VDE管理员”、“审核信息独立处理者”和“代理”在某些方面属于“新”的参与者,它们在许多“传统”的商业模型中没有对应者。而其它VDE参与者(即信息内容提供者、信息内容所有者、分发者、审核者、票据交换所、网络提供者和财务提供者)则具有“传统”的商业模型对应者,因为在某种意义上,传统分发模型中经常会有一些非电子的参与者执行的某些商业功能与它们在虚拟分发环境100中执行的功能相同。

在VDE分发者106中还可以包含一些特殊的“最终用户”,这些最终用户向其它的最终用户提供电子信息。例如,图77示意了本发明提供的虚拟分发环境100处理和控制链的另一个例子。与图2比较起来,图77含有一个新的“客户管理员”参与者700。另外,图77示例了若干不同的信息内容用户112(1),112(2),...,112(n),所有这些信息内容用户都要收到客户管理员700的“管辖”。客户管理员700可以是(举例来说)公司或其它组织中的另一个权利分发者,它把权利分发给雇员或其它组织的参与者单位(如分支机构、部门、网络和/或小组等)。这些雇员和单位都要受到特定于组织的“规则和控制信息”的管理。客户管理员700可以对控制分发过程的“规则和控制信息”进行加工,这种加工要受到由制作者102和/或分发者106规定的“规则和控制”的约束。

如上所述,VDE管理员116b是一个可信的VDE节点,它对VDE100提供支持,并维护其正常操作。在本例中,VDE管理员116b可以提供下列的任意或所有服务,而这些服务也并全部的。

VDE设备初始化服务

VDE设备重新初始化/更新服务

密钥管理服务

“欺骗性”VDE站点的“最新列表”

验证权威机构服务

公开密钥注册

客户参与者单位信息内容预算和其它权利

VDE 100的所有参与者都内在地可以参与各种角色的工作。例如,用户可以收集现有的受保护信息内容包,加入他们自己的包(创建新的信息内容包),并创造出新产品。他们可以决定充当其自身的分发者,也可以将该责任委派给其它参与者。在目前正在进军市场的面向对象设计革新中,上述功能具有十分重要的意义。复合对象的生成、对象链接和嵌入、以及其它多源进程将产生对VDE 100上述功能的需求。VDE100提供的分发过程是对称的,任何最终用户都可以将收到的信息再分发给其它最终用户,前提是他们拥有适当的许可,该许可来自或遵照了支配再分发过程的VDE分发链控制信息。最终用户也可以在同样的规则和许可约束下将属于其它参与者的信息内容封装到新公布的产品中,并独立地分发这些产品。对新产品的使用付费可以由发布者、分发者或最终用户查询和修改,并且可以在分发链中的任何阶段对之进行跟踪和电子化收集。

独立财务提供者在VDE 100中起重要作用。VDE财务提供者的作用与传统分发模式中的某些组织(如VISA)所起的作用类似。在任何分发模型中,一个十分关键的因素是:应该支持对产品或服务的使用进行偿付,并且对使用的一致性与不规则性进行审核是关键的。在VDE100中,这些规则由独立财务提供者提供。独立财务提供者还可以向信息内容提供者提供审核服务,因而,对于使用的预算和限制、以及对审核或使用的记录可以由票据交换所116来处理(也可以由票据交换所116来保存),而票据交换所可以从用户112那里收集使用费。任何VDE用户112都可以在上级控制信息允许的限度内将处理信息或执行服务的权利分派出去,使被分派者代表他们的操作。这种一个VDE参与者代表另一个进行操作的方案称为“代理”。如果信息内容提供者允许的话,可以将审核、分发、或其它重要权利“代理”出去。一个特殊类型的“代理”是VDE管理员116b。VDE管理员是一个组织(它也可以同时充当财务票据交换所116的作用),该组织具有一定的许可可以为VDE电子设备对某些或所有的VDE安全子系统控制信息进行管理(例如“进行干预”以便复位)。管理权的范围仅限于:允许新设备加入VDE结构中、恢复“崩溃的”或不可操作的设备、以及提供周期性的VDE更新。

对象创建、分发方法、预算和审核的补充说明

较佳实施例中的VDE节点600能够执行本发明提供的对象创建、分发、审核收集以及使用控制等功能。在较佳实施例提供的每个电子设备600中都集成进上述功能,对于为电子交易计量、控制和计帐创建单一(或重要)标准这个总目标来说具有重要意义,该标准经过综合实施后将构成安全、可信、虚拟的交易/分发管理环境。一般来说,如果至少在通用VDE节点电子设备600中某些关键功能通常或经常缺少的话,那么将会出现多种不同的产品和不同的标准以满足大量电子交易应用/分发管理应用。同时,也将无须为了满足发展中的“电子高速公路”所提出的迫切要求而事先提供出单一的一致工具集和单一的、“合理的”、可信安全性和商业分发环境。某些形式的特定电子设备600包含了特殊的VDE节点,这些VDE节点中装有嵌入的专用VDE微控制器—例如某些形式的录象带播放机、有线电视转换器等等,这些电子设备600可能不一定要带有或需要完整的VDE功能。然而,较佳实施例提供了大量分布的、位置完全不同的电子设备600,每个这样的电子设备600都最好具有创作、分发、抽取、审核、以及审核压缩功能,同时还具有对象创作功能。

较佳实施例提供的VDE创作功能向作者(举例来说)提供了多种菜单,以便往VDE对象300中加入方法,这些菜单包括:

针对计量和/或计帐方法的菜单,这些菜单规定了对VDE对象信息内容部分的使用将如何受到控制;

有关抽取方法的菜单,这些菜单限制和/或允许VDE对象的用户从该对象中抽取信息,还可以包括将该信息放入一个新创建的和/或早就存在的VDE容器中;

规定审核方法的菜单一即:是否通过某种安全方式生成某些审核信息,并将该审核信息送回对象提供者、对象创建者、管理员和/或票据交换所;

分发方法的菜单,这些菜单用来控制对象的分发方式,包括(举例来说)对处于VDE信息内容容器处理链下方的各个参与者所具有的分发权进行控制;

创作功能还可以含有将管理预算、对象分发控制密钥、以及审核控制密钥分发给分发者或某些其它VDE参与者的过程,所述其它VDE参与者已经过授权可以代表作者、分发者和/或他们自己执行分发和/或审核功能。创作功能还可以含有选择和分发审核方法、分发方法以及审核压缩方法的过程,包括(举例来说)安全地记录和/或控制某些预算,这些预算用来使分发者将对象再分发给VDE信息内容处理链中的后续参与者。

由作者创建的对象300的信息内容可以在VDE感知的应用程序或非VDE感知的应用程序的帮助下产生。由作者结合上述程序创建的上述对象的信息内容可以包含正文、格式化的正文、图片、电影、声音、计算机软件、多媒体、电子游戏、电子培训材料、各种类型的文件、等等,其种类无限。创作过程可以将作者所制作的信息内容装入某个对象中,使用一个或多个密钥对该信息内容进行加密,并附加一个或多个方法,这些方法定义了某些参数,所述参数规定了用户(和/或仅授权用户)对上述对象的允许的使用、和/或使用的必要审核、和/或这些用户使用该对象的费用。创作过程还可以包含与分发该对象有关的某些或所有方面。

总的来说,在较佳实施例中,作者可以:

A.规定在对象中将要放入什么样的信息内容;

B.规定面向信息内容的方法,包括:

信息—通常是与该信息内容和/或作者有关的抽象的、宣传性的、标识性的、调度性的、和/或其它方面的信息

信息内容—如文件的列表和/或含有信息内容、时间变量等的其它信息资源

C.规定控制信息(通常是若干方法的集合,这些方法间

通过一个或多个许可记录相互关联。该方法集合包括定义方法的任何变量)和任何授权的初始用户列表,例如:

控制访问和抽取的控制信息控制分发的控制信息

控制审核处理的控制信息

如果VDE节点从某个对象提供者那里收到管理预算信息,而该信息用于分发某个对象以及相关分发密钥信息,那么该VDE节点电子设备600可以(举例来说)代表所述对象提供者分发该对象。

如果VDE节点从某个对象提供者那里收到任何必要的管理预算、审核方法、以及审核密钥信息(举例来说,该审核密钥信息用来解密审核跟踪),那么该VDE节点电子设备600可以代表所述对象提供者接收并处理审核记录。具有审核功能的VDE电子设备600可以控制审核压缩方法的执行。较佳实施例中的“审核压缩”过程指的是从审核记录和/或审核进程中抽取某些信息,这些信息已经由对象提供者(例如,该对象处理链中的任意对象提供者)指定需要报告给对象的分发者、对象创建者、客户管理员、和/或审核信息的任意其他用户。这些接收报告者可以是(举例来说)需要替用户支付对象信息内容使用费的广告商。在一个实施例中,票据交换所能够在位于用户站点的或位于对象提供者站点的某个对象或某类对象或其它类别对象后面“添加”预算、审核方法、以及/或者审核密钥信息,以确保所期望的审核过程以“可信”的方式进行。VDE信息内容容器处理链和/或信息内容容器控制信息处理链中的参与者可以作为另一方的“代理”,所述的另一方则出现在与对象信息内容的使用相关联的使用情况审核信息控制链中(例如,所述另一方可以是一个票据交换所、广告商,或对市场调查和/或特定消费者使用信息感兴趣的某方)。为完成该过程,可以为所述另一方指定预算、审核方法、和/或密钥信息,这些信息必要地保证了将审核信息按照一种适当的方式收集起来和/或提供给所述另一方。该过程可以使用所述另一方提供的说明信息。

对象制作和初始控制结构

VDE较佳实施例对象制作和控制结构设计过程支持控制信息的基本可配置性。这就允许VDE 100能够支持各种可能的信息内容类型、分发路径、使用控制信息、审核要求、以及用户或用户组。在较佳实施例中,VDE对象制作过程利用了VDE模板,VDE模板中的元素至少部分地代表了模块化控制进程。利用VDE制作软件(在较佳实施例中,VDE制作软件是一个GUI编程进程)和VDE模板,用户可以采取一系列步骤制作VDE对象300,即:划分该对象,将“元数据”(meta data)(如作者的名字、制作日期等)放入对象中,然后把对应于对象和/或对象信息内容的权利分配给(举例来说)出版商和/或信息内容制作者。当对象制作者执行上述进程时,他通常要经历一个信息内容说明过程,该过程将索取必要的数据。该信息内容说明过程在得到满足之后将(举例来说)把数据插入到一个模板之中,并将信息内容封装起来。另外,在较佳实施例中,对象还可以自动向本地VDE节点电子设备600安全子系统注册其出现,并且,作为模板指令和原子方法交互作用的结果,将会产生至少一个许可字段808,同时还将产生一个或多个控制结构,这些控制结构中可以带有一个或多个方法、预算和/或其他信息。注册进程可以请求为对象创建一个预算。如果对象制作过程指定了初始分发,那么还将为分发创建一个管理对象。该管理对象可以包含一个或多个许可字段808、其他控制结构、方法、和/或加载模块。

许可字段808可以指定对象和用户之间的各种控制关系。例如,VDE 100既支持单一访问(如用户和权利用户之间的一对一关系)也支持组访问(可以准许任意数目的人员成为一个组)。单个许可记录808可以定义单一访问和组访问两者。VDE 100可以提供“共享”进程,该进程允许多个用户将单个控制预算作为一个预算进行共享。其它的控制结构概念包括分发、再分发、以及审核,后者支持计量和预算信息的压缩和/或传送。所有上述过程通常都由一个或多个VDE安全子系统安全地进行控制。

模板和类

VDE模板、类和灵活的控制结构向某些团体和个人提供了多种框架,这些组织或个人制作、修改、销售、分发、再分发、消费、或使用电影、录音和实况演出、杂志、电话零售、产品目录、计算机软件、信息数据库、多媒体、商业通信、广告、市场调查、通知、游戏、数控机床的CAD/CAM服务,等等。随着上述类别的外围环境变化或演变,本发明较佳实施例提供的模板也可以被修改,以满足上述变化的需求,这些变化或者要求使用面更广,或者要求活动更加集中。

VDE 100的创作可以向制作进程提供三种输入:模板、用户输入和对象信息内容。模板是一组用于对象控制软件的控制指令和/或数据,模板能够与创建VDE对象所需的用户指令和被提供的信息内容进行交互作用,以创建(和/或修改)VDE对象。一般来说,模板特别与对象创建和/或控制结构相关联。类代表的是某些用户组,这些用户组可以是某个组织中“自然”组,例如部门成员、特定安全许可级别等等,或个人和/或VDE节点的特定列表。

例如,模板可以由文本文件来代表,这些文本文件定义了特定结构和/或部件组。模板连同它们所带有的结构和/或部件组一起可以用作VDE对象创作或对象控制的应用。一个制作模板可以带有多个子模板,这些处于最底层的子模板代表了对象详细要求说明中的“原子层”。模板可以提供一个或多个模型,这些模型描述了信息内容对象的各个方面以及对象应该如何创建,创建方法包括采用某些安全原子方法,这些原子方法用来创建、改变、和/或销毁许可记录808和/或相关预算,等等。

模板、类(包括以组访问形式使用对象的用户组)、以及灵活的控制结构(包括“独立于”对象的许可记录(可以与多个对象相关的许可)以及支持将预算和审核作为独立VDE进程的结构)有助于将本发明所提供创作过程中的那些内在的、灵活的、以及可配置的功能集中在工业、和/或商业、和/或应用的范围中。VDE合理化地改造了目前(部分地通过使用专用于应用的或专用于产业的模板)正应用于各类支柱产业中的分发方案,并且涵盖了上述方案。因此,具有重要意义的一个步骤是提供一个操作和/或结构框架,以允许现有产业、和/或应用、和/或商业操纵它们所熟悉的概念,这些概念涉及信息内容类型、分发方价机制、用户与信息内容的交互作用、以及/或者相关的管理行为、预算等等。

VDE模板、类和控制结构具有内在的灵活性和可配置性,从而可以反映信息分发和安全存贮要求的广度,可以在发展中有效地适应新产业,可以反映现有产业和/或商业的发展和/或变化,同时支持可能与某些许可和/或预算及对象类型相关的一个或多个用户组。通过使用VDE聚合方法和控制方法,可以加强VDE模板、类和基本控制结构的灵活性,上述方法对于对象的控制可以产生复合的、有条件的进程影响。通过不时地将本发明与VDE管理对象和VDE安全方法及进程结合使用,本发明真正实现了一种信息内容控制和审核体系结构,该体系结构能够被配置到大多数的或任意的商业分发实施例中。因此,本发明完全支持信息内容提供者的要求和倾向,而不必强迫他们去适应预先定死的应用模型。它允许信息内容提供者规定权利、控制信息,及其信息内容(以及返回的审核信息)在分发通道中的流动方式。

修改对象信息内容(包括增添、隐藏、修改、删除和/或扩展)

向对象中加入新信息内容是本发明提供的创作过程的一个重要方面。提供者可能希望允许一个或多个用户对他们提供的信息内容进行增添、隐藏、修改、删除和/或扩展操作。采用这种方式,其他用户可以增值现有信息内容,为了新的目的对现有信息内容进行变动,以及维护和/或修改现有信息内容。能够向空的和/或新创建的对象中添加信息内容也具有重要意义。

当提供者提供信息内容和相关控制信息时,他可决定增加某些控制信息,这些控制信息用来允许和/或限制对所述信息内容的增添、修改、隐藏和/或删除操作。这些控制信息可以涉及:

可以被增添、隐藏、修改和/或删除的信息内容所具有的特性和/或所处的位置;

可以被修改、隐藏、删除和/或增添的信息内容部分;

所需的、用于控制后续VDE容器信息内容使用的安全控制信息,这些控制信息位于控制链中,并且/或者与被增添、隐藏、和/或修改的信息内容存放在一处;

对下述过程的要求:即由提供者指定的信息内容注意事项和/或信息内容部分,这些部分伴随被增加、隐藏、删除和/或修改的信息内容,同时还要随所述增加、隐藏、删除和/或修改操作的发生而发生;

对涉及某些信息内容的限制和/或要求的安全管理,这些信息内容可以被移走、隐藏和/或删除;上述管理范围包括对信息内容增添、隐藏、修改和/或删除的数量和/或程度;

通知提供者:已经发生了修改、隐藏、增添和/或删除操作,并且/或者指出该操作的性质;

涉及对提供者信息内容进行修改、增添、隐藏和/或删除的其他控制信息。

提供者可以使用上述控制信息为其他用户提供机会,允许他们采用受控的方式增值和/或维护现有的信息内容。例如,软件开发工具的提供者可以允许其他用户向这些用户得到的对象中增添注释,并且/或者增添类似的和/或补充的工具。电影提供者可允许在他们的材料上加上解释词与/或宣传材料。向机床工具所有者提供CAD/CAM规范的提供者可以允许其他用户修改某些对象(这些对象包含与某个规范相关联的指令),以便改进和/或翻译所述指令,并结合其设备使用这些指令。数据库所有者可以允许其他用户向所提供的数据库对象中增添记录,或从该数据库对象中删除记录,从而支持数据库的灵活性和/或维护。

引入控制信息还有一个好处,即提供者有机会允许其他用户为新的目的而改动信息内容。提供者可以允许其他用户提供新设置的信息内容。

为了将上述控制信息连接到信息内容,在经过允许的条件下,可以向提供者提供针对某个对象的一个或多个方法的设计和实现,这些方法控制对信息内容的增加、隐藏、修改和/或删除。可以结合PPE 650使用VDE软件工具来完成上述一个或多个方法的设计与实现。于是,提供者可以将这些方法连接到某个对象,并且/或者独立地提供这些方法。许可记录808可以含有与上述控制信息相关联的要求并且同时还含有其他控制信息,或者可以使用一个单独的许可记录808。

增加和/或修改信息内容的一个重要方面是:加密/解密密钥的选择,以及/或者涉及对新信息内容或被改动的信息内容进行安全保护。提供者可以在涉及上述进程的方法中规定一种或多种技术,这些技术用来创建和/或选择加密/解密密钥以及保护新信息内容或被改动的信息内容的其他有关方面。例如,提供者可以一套密钥、用来生成新密钥的技术、对用来生成新密钥的加载模块的引用、用来保护信息内容的协议,以及/或者其它类似信息。

如果创建或使用了新密钥,那么增加和/或修改信息内容的另一个重要意义是对新密钥的管理。提供者可以要求上述密钥以及使用密钥所涉及的引用必须被传送给该提供者,或者他也可以使上述密钥和/或安全保护措施不被提供者所了解和/或控制。提供者还可以选择一条中间路线,即:某些密钥是一定要被传输过来的,而其它密钥则可以不被其了解和/或控制。

涉及密钥管理的另一个方面是对某些许可的管理,这些许可与增添、隐藏、修改和/或删除信息内容所产生的对象相关联。提供者可以允许也可以禁止VDE控制信息链的用户采用某些或全部VDE规则和控制信息,这些规则和控制信息涉及授权访问和/或操作由VDE管理的、与所述最终对象相关的信息内容和/或规则和控制信息。例如,提供者可以允许第一个用户控制对对象中新信息内容的访问,因而,这部分信息内容的其他用户需要从上述第一个用户那里得到许可。这样可以使提供者按照自己的意愿来决定是否要求用户从提供者获得许可以便访问对象。

涉及增添、修改、隐藏和/或删除操作的密钥可以被存放在一个或多个独立的许可记录808中。所述许可记录808可以被传递给提供者,并且可能与一个或多个现有的许可记录合并,或者可以在新信息内容提供者的控制下保持独立。初始许可记录808的创建及其内容、以及控制许可记录的其他控制信息将由涉及提供者某些操作的方法来控制。对所述许可记录的后续修改和/或使用可能涉及提供者的方法、以及用户操作、或与两者皆有关。用户修改和/或使用许可记录808的能力至少部分地取决于与提供者的上述许可记录相关的上级控制信息。

分发控制信息

为了支持广泛和灵活的商业交易环境,提供者应该有能力创建用来控制分发进程的稳固控制信息,而避免对控制链中后续各方进行不当限制。本发明提供的分发控制信息支持积极灵活的控制。提供者不需要带有任何特别的控制,或使用任何特别的策略,除非上级控制信息要求他们这样做。相反,本发明允许提供者从一般的控制部件(这些一般控制部件可以是适合于提供者特定市场的部件子集,(举例来说)它们包含在VDE应用中,并且/或者与之直接兼容)中进行选择,以建立适合于给定处理/控制链的结构。提供者还可以建立其控制信息的控制信息,后者可以允许或限制其他用户对提供者控制信息的修改。

本发明提供的管理系统产生管理“事件”。这些“事件”对应于或者由系统或者由用户引发的活动,这些活动又对应于VDE中可能受保护的进程。这些进程包括的活动有:拷贝许可记录、拷贝预算、读审核跟踪记录、拷贝方法、更新预算、更新许可记录、更新方法、备份管理文件、恢复管理文件等等。从任意VDE记录中的任何部分读、写、修改、更新、处理和/或删除信息都可属于管理事件。一个管理事件代表了一个进程,该进程在一个或多个记录的一个或多个部分上执行一个或多个上述活动。

当VDE电子设备600遇到一个管理事件,通常结合VDE PPE 650对该事件进行处理。正如通常涉及访问和/或使用信息内容的事件那样,在大多数情况下,管理对象由信息内容提供者(包括(举例来说)信息内容制作者、分发者、和/或客户管理员)规定为专用来控制对象、对象组和/或对象类的一个控制方面。

例如,如果用户提出分发许可请求,以便在笔记本计算机中使用桌上型计算机中的某个对象,于是所产生的多个管理事件中的某一个可以拷贝一份对应于上述对象的许可记录。当ROS 602检测到该管理事件时,将会产生对应于该类事件的一个EVENT方法。如果产生了上述EVENT事件,还将会产生与该EVENT事件相关联的计量、计帐、和预算。计量、计帐和预算可以使提供者允许和限制对许可记录808的拷贝。

例如,在处理某个控制程序的过程中,可以产生和/或更新计量、计帐、预算和/或审核记录。所述审核记录可以记录某些信息,这些信息涉及到管理事件及对其所做处理的有关情况。例如,审核记录可以含有对引发事件的用户和/或系统活动的一个引用、对所述事件的处理是成功还是失败、日期和/或时间、和/或其他相关信息。

上面的一个例子中提到了一个既有桌上型计算机又有笔记本计算机的用户,在这个例子中,每当用来计量所述许可记录拷贝操作的计量被处理的时候,许可记录的提供者都要求提供审核记录。审核记录为提供者提供了灵活的和可配置的控制和/或记录环境。

在某些情况下,提供者最好限制控制部件的哪一个方面可以被修改、更新和/或删除。可以用“原子元素定义”将事件(于是还包括控制进程的剩余部分—如果该控制过程存在的话)的适用范围限制到控制部件的某些“原子元素”。例如,如果许可记录808被分解为图26示意的多个字段上的多个“原子元素”,那么(举例来说)就可以通过在某个原子元素定义中仅指定过期日期/事件字段而将事件处理链限制为对过期日期/事件信息的特定数量修改。在另一个例子中,可以根据控制集合将许可记录808分解为多个原子元素。在该例中,可以将事件链限制为操作某些控制集合的事件。

在某些情况下,提供者最好控制管理进程的执行方式。提供者可以决定在存放在安全数据库610中的分发记录中加入某些信息,以便结合某个部件组690使用这些信息,而该部件组690则控制和规定(举例来说)如何执行涉及某个给定方法和/或记录的给定事件。例如,如果提供者希望允许用户拷贝许可记录808,那么他可能希望内部地改动该许可记录。例如,在上述一个用户既有桌上型计算机又有笔记本计算机的例子中,提供者可以允许用户根据桌上型计算机提供的信息拷贝启动笔记本计算机所需的必要信息,但不允许该笔记本VDE节点对所述信息进行另外的拷贝。在该例中,前述的分发控制结构将在桌上型计算机中继续存在,但传递给笔记本计算机的启动信息拷贝将缺少从该笔记本计算机执行分发过程所需的分发控制结构。类似地,一个信息内容提供者可以向作为分发者的另一个信息内容提供者提供分发控制结构,在该分发控制结构中的某个控制结构将允许制作VDE信息内容容器对象一定数目的拷贝,同时也允许制作许可记录的相关拷贝,但是,该许可记录将(例如根据信、息内容提供者的规定)被改变,从而禁止接收分发者所做拷贝的最终用户再制作拷贝以期将之分发给其它VDE节点。

尽管上述示例着重描述一个可能情况下的特别事件(拷贝),也可以在本发明所设想的任何控制关系下使用类似的过程从记录和/或方法中读、写、修改、更新、处理、和/或删除信息。其它的例子包括:拷贝预算、拷贝计量器、更新预算、更新计量器、压缩审核跟踪等等。

创建常规方法

在本发明的较佳实施例中,可以“任意地”创建方法,或将为方法建立别名。这两种模式使VDE分发过程具有高度的可配置性和灵活性,并提供了对VDE分发进程的可靠控制。通常,创建方法的过程包括为方法的数据部分指定必要的属性或参数,然后“压模”(typing)出该方法。压模进程(typing process)通常涉及选择一个或多个加载模块来处理方法的任何数据部分。除了创建方法本身,方法创建进程还产生方法选项子记录以及分发记录注释,上述子记录将放置在许可记录中,或者对许可记录修改。除了执行方法所需的任何“标准”加载模块以外,如果允许的话还可以规定其它的加载模块和数据,这些加载模块和数据将结合前述加载模块一起使用。上述事件处理结构对方法的分发进行控制。

例如,考虑一下安全预算的情况。一种典型的预算类型可能限制用户每月最多使用10Mb的解密数据。该用户希望其将使用相关VDE信息内容容器对象的权利移到其笔记本上。预算创