CN101359350B - 用于安全地管理在数据项上的操作的方法 - Google Patents

用于安全地管理在数据项上的操作的方法 Download PDF

Info

Publication number
CN101359350B
CN101359350B CN2008100822439A CN200810082243A CN101359350B CN 101359350 B CN101359350 B CN 101359350B CN 2008100822439 A CN2008100822439 A CN 2008100822439A CN 200810082243 A CN200810082243 A CN 200810082243A CN 101359350 B CN101359350 B CN 101359350B
Authority
CN
China
Prior art keywords
information
vde
user
information content
object
Prior art date
Application number
CN2008100822439A
Other languages
English (en)
Other versions
CN101359350A (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
Family has litigation
Priority to US38810795A priority Critical
Priority to US388107 priority
Application filed by 英特特拉斯特技术公司 filed Critical 英特特拉斯特技术公司
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23532729&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101359350(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Publication of CN101359350A publication Critical patent/CN101359350A/zh
Application granted granted Critical
Publication of CN101359350B publication Critical patent/CN101359350B/zh

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] the neutral party being 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 or video on demand [VOD]
    • 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 video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video 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 or video on demand [VOD]
    • 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 video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video 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 or video on demand [VOD]
    • 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 or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • 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 URL [Uniform Resource Locator] 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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 or video on demand [VOD]
    • 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

用于安全地管理在数据项上的操作的方法

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

[0002] 技术领域

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

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

[0005] 本发明还涉及用于保护电子商业活动以及其他电子的或由电子促进的交易中的各种参与者的权利的系统和方法。 [0006] 本发明还涉及用于信息内容和用来控制对该信息内容的使用以及所述使用的结果的信息的安全处理和控制链。它还涉及管理-包括计量和/或限制和/或监视-对电子存贮的或传播的信息的使用的系统和技术。本发明特别涉及使用上述系统和/或技术-包括使用上述系统和/或技术的使用结果-的交易、处理和方案。

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

[0008] 背景技术

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

[0010] 电子信息内容

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

发明内容

[0012] 本发明可以显著增加信息提供者的收益,降低分发成本和信息内容成本,更好地支持广告和使用信息收集,更好地满足电子信息用户的需要。这些改进将显著增加电子信息的数量和种类和分发该信息的方法的数量和种类。

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

[0014] 控制电子信息内容

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

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

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

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

[0019] VDE控制功能

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

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

[0022] 权利和控制信息

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

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

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

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

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

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

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

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

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

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

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

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

[0035] VDE功能特性

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

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

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

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

[0040]另外,VDE:

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

[0042] (b)支持广泛的有用功能,可以采用不同的方式将这些功能合并起来以支持大多数潜在的应用; [0043] (C)运行于各种各样的电子设备之上,其范围可以从手持式廉价设备到大型主计算机;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0058] 与传统解决方案的对比

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

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

[0061] 处理和控制链

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

[0063] VDE应用和软件

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

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

[0066] 使用电子信息许可的分发; [0067] 控制信息以及管理这些许可的控制信息的集合的持久性;

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

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

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

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

[0073] VDE 实现

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0090] I.不同类型的电子信息内容;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0122] (6)加密和解密装置;

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

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

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

[0126] 信息内容制作者;

[0127] 分发者;

[0128] 再分发者; [0129] 客户管理员;

[0130] 客户用户;

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

[0132] 以及/或者政府机构。

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

[0134] 广告商;

[0135] 市场调查组织,和/或

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

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

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

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

[0141] 使用本发明的信息内容提供者可以包括(举例来说)软件应用和游戏发行者、数据库发行者、有线电视、电视和无线电广播者、电子购物销售商、以及电子文件、书籍、期刊、电子邮件和/或其他形式的信息的分发者。充当电子信息的存放者和/或分发者的公司、政府机构、和/或个人“最终用户”也可以是VDE信息内容提供者(在一个受限制的模型中,一个用户只向其自身提供信息内容,并使用VDE来保护自己的机密信息,以防止其他参与者未经授权地使用这些信息)。电子信息可包括供个人或组织内部使用的有所有权的和/或机密的信息,以及诸如提供给其他团体使用的软件应用、文件、娱乐材料和/或参考信息之类的信息。分发可以通过(举例来说)物理介质传递、广播和/或电信手段进行,并且可以采用“静态”文件和/或数据流的形式进行。VDE也可以用于(举例来说)诸如电话会议、交互式游戏或联机公告版之类的多站点“实时”交互作用,在上述活动中实施了对全部或部分被传送信息的使用限制和/或审核。[0142] VDE为强制执行商业协定和支持隐私权保护提供了重要机制。VDE可以安全地将信息从一个参与者传递给另一个关心商业分发的电子信息内容使用的参与者。即使各个参与者被上述信息内容使用信息的处理链(路径)中的若干“步”分开,这些信息也可以由VDE通过加密和/或其他安全处理手段来保护。由于这种保护,VDE可以保证这些信息的准确性,并且这些信息可以被它们送达的所有参与者所信任。而且,VDE保证所有的参与者都可以相信:这些信息不会被除预期的、经过授权的参与者之外的其他任何人所接收,因为这些信息经过了加密 ,因此只有授权的参与者或其代理可以将它解密。这些信息也可以通过在一个以前的处理路径地点中执行一个安全的VDE进程得出,以产生安全的VDE汇报信息,然后该汇报信息被安全地传送给其预期接收方的VD E安全子系统。由于VDE可以安全地传递这些信息,电子协定的参与者不必相信通过除经过VDE控制的装置之外的其他装置传递的商业使用信息和/或其他信息的准确性。

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

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

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

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

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

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

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

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

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

[0152] !开发提高操作效率的机会[0153] 的电子商业技术(而本发明则支持上述功能)将导致其产品常常固有地较为昂贵而对消费者的吸引力较差,因此在市场中的竞争力较差。

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

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

[0156] (b)模块化数据结构;

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

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

[0159] (e)模块化安全结构;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0177] !通过使用安全的通信、存贮和交易管理技术,“充分”地阻止对电子信息和/或设备的未授权和/或无偿使用。VDE支持一个模型范围内的、创建了单一安全“虚拟”交易处理和信息存贮环境的、分布式安全性实现。VDE允许分布式VDE装置安全地存贮和传送信息,并远程地控制执行进程以及在其他VDE装置中采用多种方式对电子信息进行的使用的特征。[0178] !支持用于交易控制、审核、汇报、以及相关通信和信息存贮的、低成本、高效率以及有效的安全性体系结构。VDE可以使用涉及标记的安全性技术;解密密钥的时间衰老技术;对被存贮的控制信息(包括对该被存贮的信息进行有差别地标记以防止替换和破坏)和分发的信息内容两者都实行的隔离技术(以便对于许多信息内容应用使用一个或多个唯一于特定VDE装置和/或用户的信息内容加密密钥);诸如三重DES之类的用于加密信息内容的私有密钥技术;诸如RSA之类的公开密钥技术-用来保护通信,并提供数字签名和鉴别的诸多优点以便将VDE配置中的节点安全地结合在一起;对重要交易管理可执行码的安全处理;将少量的、高度安全的、受硬件保护的存贮器空间与大得多的、“暴露的”、用来安全地存放(通常为加密的和加标记的)控制和审核信息的大容量介质存贮器空间结合在一起;VDE使用了分布在VDE实现方案中的某些或所有地点的专用硬件:a)所述硬件控制下列的重要元素:信息内容的准备(例如使该信息内容被放入一个VDE信息内容容器中,并使信息内容控制信息与该信息内容相关联)、信息内容和/或电子设备使用审核、信息内容使用分析、以及信息内容使用控制山)所述硬件已经被设计为安全地处理加载模块控制活动,其中所述控制处理活动可以包括所要求的控制因素的一个序列。 [0179] !支持对VDE电子信息产品(受VDE控制的信息内容)的信息子集的动态用户选择。该特性与下列的限制相反,这些限制是:必须使用几个高层的、独立的、预定义的信息内容提供者信息增量,例如,必须选择整个信息产品或产品段以便获取或使用该产品或段的部分。VDE支持对各种增量(包括“原子的”增量、以及不同增量类型的组合)的计量和使用控制,这些增量由用户特别选择出来,它们代表一批预标识的一个或多个增量(诸如预定义特性的一个或多个块,这些预定义特性的例子包括:字节、图像、逻辑相关的块),这些预标识的增量构成了通常为任意的、但对于用户来说是逻辑的、“可传递”的信息内容。VDE控制信息(包括预算、定价、以及计量信息)可以被配置,以便它可以适当地专门应用于信息增量的不同的、变幻莫测的用户选择集合的特别选择,并且,价格标准可以至少部分地根据混合增量选择的数量和/或特性来制定(例如,特定数量的特定正文可意味着相关的图像可以折扣15%;“混合”增量选择中的更大数量的正文可意味着该图像被折扣20% )。所述用户选择的聚合信息增量可以反映用户对信息的实际要求,并且比限制为单一的、或几种更高层次的(如产品、文件、数据库记录)预定增量要更为灵活。所述高层次增量可能含有用户不希望的大量信息,于是比用户所需要的信息子集(如果可以得到该子集的话)更为昂贵。总而言之,本发明允许包含在电子信息产品中的信息按照用户的规定提供。进行剪裁以适应用户的规定允许本发明向用户提供最大的价值,而这样做又产生了最大数量的电子商业活动。用户(举例来说)将能够定义从一个可用信息内容产品的不同部分得到的信息内容的一个聚集,但作为供用户使用的可传递物,所述信息内容聚焦是完全唯一的被聚焦增量。用户可以(举例来说)从一个诸如参考文献之类的信息产品中的不同部分中选择特定数量字节的信息,将这些信息以未加密的形式拷贝到盘上,并且按照全部数量的字节加上对提供这些字节的“文章”的数量的附加计费而接受计帐。信息内容提供者可能适当地对这种用户定义的信息增量收取较少的费用,因为用户没有要求来自含有所需信息的所有文章的所有信息内容。这种定义用户所需信息增量的进程可能涉及人工智能数据库搜索工具,这种工具有助于从一个信息产品中定位信息的最相关部分,并使得描述搜索条件命中的信息被自动显示给用户,以便用户进行选择或自动抽取,以及将上述部分传递给用户。VDE还支持种类繁多的预定义增量类型,包括:

[0180] !字节,

[0181] !图像,

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

[0183] !句子,

[0184] !段落,

[0185] !文章,

[0186] !数据库记录,以及

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

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

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

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

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

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

[0193] !价格折扣(包括数量折扣)

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

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

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

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

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

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

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

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

[0203] !支持大量的、不同的、控制对电子信息内容的同一特定拷贝的使用和/或审核、以及/或者区分地控制对同一电子信息内容的不同拷贝(出现)的使用和/或审核的控制模型。用于计帐、审核、和安全性的不同模型可以被应用到同一电子信息内容,并且上述不同的控制信息集合可以为控制的目的使用相同的或不同的电子信息控制增量粒度。这包括对于预算和审核使用支持可变的、适用于多种预定义的电子信息增量的控制信息,包括对于给定电子信息使用多种不同的预算和/或计量增量,可以传递上述给定信息用于计帐的度量单位、信用限制、安全性预算限制和安全性信息内容计量增量、以及/或者市场调查和 消费者描述的信息内容计量增量。例如,对于一个带有科学文章数据库的CD-ROM光盘,可以部分地按照基于解密字节的数目、含有所述解密字节的文章的数目的一个公式对之进行计帐,同时安全预算可能把对该数据库的使用限制为该数据库安装所在的广域网中的每个用户每月对该数据库的使用不超过数据库的5%。[0204] !提供机制以便通过充分安全的信息内容和信息内容控制信息处理链并通过对该信息内容的各种形式的使用而持续地维护可信的信息内容使用和/或汇报控制信息,其中所述的控制持续性可以在上述使用中一直保持。控制的持续性包括从一个VDE容器对象中抽取信息的能力,其方式是创建一个新容器,该容器中的信息内容至少部分地受到安全保护并且该容器既含有被抽取出的信息内容又含有至少部分的控制原始容器的信息的控制信息,并且/或者该容器中的信息内容至少部分地由原始容器中的控制信息为上述目的而产生,并且/或者VDE装置控制信息规定应该持续不变并且/或者控制对新创建容器中的信息内容的使用。如果容器被“嵌入”到另一个受VDE管理的对象(例如一个含有大量嵌入VDE容器的对象,而其中的每个容器都含有从不同来源获取(抽取)的信息内容)中,那么上述控制信息可以继续管理对该容器信息内容的使用。

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

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

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

[0208] !支持通过从所述最终用户和/或提供者向一个政府机构转移信用和/或电子货币而由消费者对信息内容和/或设备的使用中、以及/或者提供者和/或最终用户支付的税款中产生的提供者收入信息,作为上述被接收信息的结果,将“自动”出现上述转移过程,该过程导致生成一个其信息内容包括反映了安全的、可信的收入概要信息和/或详细用户交易记录的消费者信息内容使用信息的VDE信息内容容器(详细的程度可能取决于(举例来说)交易的类型或规模-根据法律规定,涉及向消费者支付的银行利息或大宗(例如超过10000美元)转移的信息可以被自动地报告给政府)。这种涉及可征税的事件和/或货币的、以及贷方货币转移的概要和/或详细信息放在一个VDE容器中可以通过汇报和/或付款路径传递给政府。这种容器还可以用于其他涉及VDE的信息内容使用汇报信息。[0209] !支持信息内容控制信息沿信息内容控制信息处理的不同分支流动,以便在本发明的较佳实施例控制下支持对受VDE控制的信息内容所进行的多样化的、受控制的分发。这允许不同的参与者以不同的(可能是竞争性的)控制策略使用相同初始电子信息内容。在这种情况下,一个首先对信息内容设置控制信息的参与者可以规定某些控制假设,而这些假设将演变成更为专门的和/或充分的控制假设。这些控制假设可以在分支序列在一旦信息内容模型参与者提交信息内容控制信息时而发生变化(举例来说)以便用来与“就位”信息内容控制信息“协商”的过程中演变。这将产生新的或被修改的信息内容控制信息,并且/或者这将涉及选择特定的一个或多个已经“就位”的信息内容使用控制方法,就位的可选方法,以及涉及对相关控制信息参数数据的提交。应用于相同电子所有权信息内容和/或设备的不同拷贝的不同控制信息集合的上述形式的演变是VDE控制信息通过整条处理和控制路径的不同分支向下“流动”,并且在其通过这些不同路径分支向下分散的过程中受到了不同修改的结果。本发明的上述支持用于VDE控制信息和VDE管理的信息内容流动的多个路径分支的功能允许存在这样的电子商业市场,该电子市场支持分散的、竞争性业务伙伴关系、协定、以及正在演变的整体业务模型,该业务模型可以使用被合并(举例来说)到代表至少部分地不同的具有竞争性的产品的信息内容的不同集合中的相同信息内容特 性。

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

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

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

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

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

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

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

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

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

[0219] !提供用于范围从廉价的消耗装置(例如电视机顶置设备)和专业设备(以及掌上型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节点安全硬件处理功能一起使用。

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

[0221] !支持实际增加了“破坏”系统安全性所需时间的安全技术。这包括使用一批将由破坏本发明的安全性特性的某些方面而引起的危害降至最低的技术。 [0222] !提供了构成了本发明的可信的/安全的、普遍的、分布式的交易控制和管理系统的部件的一系列创作、管理、汇报、付款、和计帐工具用户应用。这些部件支持与VDE相关的:对象创建(包括为信息内容设置控制信息)、安全对象分发和管理(包括分发控制信息、与财务相关的和其他使用分析)、客户内部VDE活动管理和控制、安全性管理、用户接口、付款、以及与票据交换所有关的功能。这些部件被设计为支持高度安全的、统一的、一致的、和标准化的:处理、汇报、和/或付款的电子商业和/或数据安全性路径、信息内容控制和管理、以及人的因素(例如用户接口)。

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

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

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

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

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

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

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

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

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

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

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

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

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

[0236] 本发明提供的VDE的一个特征是:特定的一个或多个方法可以被规定为必要的,以便某个VDE装置和/或用户可以使用某个和/或所有信息内容。例如,“上级”参与者(例如信息内容制作者)可以允许某种类型的信息内容的分发者要求得到某个禁止最终用户电子地保存被解密的信息内容的方法,VDE交易的信用的提供者可以要求得到一个记录 电子购买次数的审核方法,并且/或者用户可以要求得到一个总结使用信息(如计帐信息)以便将这些信息以一种不传送涉及详细使用行为的机密的个人信息的方式汇报给票据交换所的方法。[0237] 本发明提供的VDE的另一个特征是:信息内容的制作者、分发者和用户可以从预定义的方法集合(如果可得到的话)中进行选择,以便控制容器信息内容的使用和分发功能,并且/或者他们可以有权提供新的、定制的方法以控制至少某些使用功能(对于VDE装置和/或一组VDE应用的可信度和互相协作性,可以要求对上述的“新”方法进行验证)。于是,就如何控制对每个所有权或对象(或所希望的和/或适用的的对象或所有权的一个或多个部分)的分发和其他使用活动而言,VDE提供了程度极高的可配置性。信息内容控制信息VDE路径中的每个VDE参与者都可以为VDE容器中的某些或所有信息内容设定方法,只要该控制信息没有与已经就位的上级控制信息在下列方面冲突,即:

[0238] (I)某些或所有的VDE管理的信息内容,

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

[0240] (3)特定的一个或多个VDE节点和/或节点组别,以及/或者 [0241] (4)特定的一个或多个VDE应用和/或配置。

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

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

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

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

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

[0247] I.解密所有物和控制信息;

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

[0249] 3.管理通信;

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

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

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

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

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

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

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

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

审核信息。

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

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

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

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

[0262] 电子协定和权利保护

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

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

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

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

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

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

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

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

[0271] ⑴安全性,

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

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

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

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

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

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

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

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

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

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

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

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

[0284] (I)广泛的参与者;

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

[0286] (3)对加入到信息内容控制信息中的条款和条件的演变的支持,包括对电子协商功能的应用, [0287] (4)支持多个信息内容的组合形成新的信息内容聚集,以及

[0288] (5)多个并发模型。

[0289] 安全处理部件

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

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

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

[0293] 附图说明

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

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

[0296] 图IA是对图I所示的“信息服务中心”示例的更为详细的示意;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0325] 图25A-25C示意了 “映射计量器”的示例;[0326] 图26示意了许可记录(PERC)结构的示例;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0344] 图42a_42d示意了 “交互”预算方法的示例;

[0345] 图43a_43d示意了 “交互”注册方法的示例;

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

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

[0348] 图49,49A_49F示意了 OPEN方法的示例;

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

[0350] 图51,51A_51F示意了 WRITE方法的示例;

[0351] 图52示意了 CLOSE方法的示例;

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

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

[0354] 图54示意了 ACCESS方法的示例;

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

[0356] 图56示意了 CONTENT方法的示例;

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

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

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

[0360] 图59示意了 DESTROY方法的示例;

[0361] 图60示意了 PANIC方法的示例;[0362] 图61示意了 METER方法的示例;

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

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

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

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

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

[0368] 图69示意了描述如何将固件下载到受保护处理环境中的一个例子; [0369] 图70示意了由网络或其他通信手段连接在一起的多个VDE电子设备的示例;

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

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

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

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

[0374] 图75A-7®示意了用于电子协商的数据结构的示例;

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

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

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

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

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

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

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

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

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

[0384] 具体实施方式

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

[0386] 概述

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

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

[0389] •家庭银行事务和电子付款;

[0390] •电子化法律合同;[0391] •信息内容分发,这些信息内容可以是电子出版物、影视、声音、图象或计算机程序;

[0392] •私人信息(如病历和金融信息)的安全通信。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0422] 规则和控制”可以规定向一定的参与者公开一定的信息,而其它信息对他们保r I I o

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

[0424] 根据需要,VDE参与者可以规定:他们的“规则和控制”在其本身或其它“规则和控制”所指定的条件下可以被修改。例如,由信息内容制作者102规定的“规则和控制”可以允许参与者106 “抬高”使用价格,正如零售店“抬高”批发商品的价格一样。图2A示意了一个例子,其中某些“规则和控制”在从信息内容制作者102传递到信信息内容用户112的过程中保持不变;其它“规则和控制”被分发者106修改和删除;而另外一些“规则和控制”则被该分发者添加进来。 [0425] “规则和控制”可以对报告给其它VDE参与者的信息进行限制,从而保护信息内容用户的隐私权。例如,“规则和控制”可以规定以匿名方式报告信息内容的使用信息而不暴露信息内容用户的身份,或者根据要求,在允许的前提下只将某些信息暴露给某些参与者(例如从使用情况中得到的信息)。这种功能安全地控制了哪些信息可被暴露以及可向哪些VDE参与者暴露,从而保护了所有VDE参与者的隐私权。

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

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

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

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

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

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

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

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

[0434] (a)需收费的使用类型

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

[0436] (C)每个单位需收取的费用

[0437] (d)何时产生报告

[0438] (e)如何付款

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

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

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

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

[0443] 容器和目标

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

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

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

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

[0448] (a) “许可记录”808[0449] (b) “预算 ”308

[0450] (c) “其它方法”1000

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

[0452] 图5B所示的“预算” 308是一种特殊类型的“方法” 1000,它可以规定的内容包括

信息内容304的使用限制,以及使用费用的付款方式。预算308可以规定整个信息内容304可被使用和(或)复制的量有多少。方法310可以禁止使用超过一个特定预算所规定的 量。

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

[0454] 安全处理单元(SPU)

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

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

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

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

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

[0460] 图7不意了包含SPU 500的电子设备600的一个例子。电子设备600实际上可以是任何电气或电子设备,例如:

[0461] •计算机

[0462] •电视“机顶置”控制盒

[0463] •寻呼机

[0464] •电话机

[0465] •声音系统

[0466] •影像再生系统

[0467] •视频游戏机

[0468] •“智能”信用卡

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

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

[0471 ] ⑶ROM盘620或其它存贮介质或设备;

[0472]打印机 622;

[0473] 广播接收装置624 ;

[0474] 文件扫描器626 ;以及

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

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

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

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

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

一个事件。

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

[0481] 电子设备600

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

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

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

[0485] 二级存贮器652可以包含一个或多个相同且不安全的二级存贮设备(例如磁盘和光盘驱动器),以供电子设备600完成一般的二级存贮功能之用。在某些实现中,部分或全部二级存贮器652可以包含一个二级存贮设备,该设备被物理地封装在一个安全包装中。然而,由于在许多实现中使用物理措施来保障二级存贮器652的安全并非现实和廉价,因此先将信息加密后再保存到二级存贮器652中,从而使二级存贮器652能够安全地保存信息。如果在存贮前先对信息进行加密,那么对二级存贮器652或其内容的物理存取将不会轻而易举地泄露或破坏该信息。 [0486] 本例中的二级存贮器652保存了 CPU 654和(或)SPU 500所使用的代码和数据,这些代码和数据用来控制电子设备600的整体运行。例如,从图8中可以看到,图7所示的“权利操作系统”(“R0S”) 602 (包括ROS的部分604以及部分606,其中部分604提供VDE功能,而部分606则提供其它OS功能)可以存贮在二级存贮器652中。二级存贮器652也可以保存一个或多个VDE对象300。从图8中还可以看到,图7所示的安全文件610可以采用“安全数据库”或管理文件系统610的形式存贮在二级存贮器652中。该安全数据库610可以保存和组织由ROS 602使用的、用来执行VDE功能604的信息。这样,二级存贮器652便可以保存用来完成VDE或其它功能604、606的可执行代码,以及与这些功能有关的安全文件610 (还包括VDE对象300)。二级存贮器652还可以保存“其它信息”673,例如其它操作系统功能606进行任务管理所使用的信息、非VDE文件等等。在二级存贮器652中所指出的部分元素也可以存贮在ROM 658中,只要这些元素没有修改要求(除了在更换ROM 658的时候)。ROS 602的某些部分尤其以保存在ROM 658中为好(例如,在加电时用来为电子设备600创建操作环境的“引导”程序、POST程序等等)。

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

[0488] 安全处理单元500

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

[0490] SPU物理封装和安全屏障502

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

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

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

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

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

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

[0497] SPU的内部结构

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

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

[0500] 微处理器520

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

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

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

[0504]实时时钟(RTC) 528

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

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

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

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

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

[0510] SPU加密/解密机522

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

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

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

[0514] 模式匹配机524

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

[0516] 压缩/解压缩机546

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

[0518] 随机数发生器542

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

[0520] 运算加速器544

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

[0522] DMA 控制器 526

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

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

[0526] 内存管理部件540

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

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

[0529] SPU存贮器体系结构

[0530] 在较佳实施例中,SPU 500使用3种通用类型的存贮器:

[0531] (I)内部 ROM 532;

[0532]⑵内部 RAM 534 ;及

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

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

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

[0536] SPU 内部 ROM

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

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

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

[0540] 在某些情况下,RAM 534a和/或NVRAM 534b (NVRAM 534b可以是(举例来说)被一直供电的传统RAM)可以至少部分地充当ROM 532的角色。

[0541] SPU 内部 RAM

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

[0543] 高速RAM 534a存贮需要执行的活跃代码及相关数据结构。

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

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

[0546] SPU外部存贮器

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

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

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

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

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

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

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

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

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

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

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

[0558] SPU 500使用的外部存贮器可以含有两种类型:

[0559] 今SPU 500专有的外部存贮器[0560] 今与电子设备600共享的存贮器

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

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

[0563] 权利操作系统602

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

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

[0566] +简化了编程

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

[0568] 事件驱动

[0569] +便于功能分解

[0570] 今可扩展

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

[0572] +简化了任务管理

[0573] 今简化了进程间通信

[0574] 基于服务

[0575] +支持简化的和透明的可伸缩性

[0576] +简化了多处理器支持

[0577] +隐藏了机器相关性

[0578] +便于网络管理和支持

[0579] 基于部件的体系结构

[0580] +基于可独立传送的安全部件的处理

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

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

[0583] 今针对预定义的和用户定义的应用事件的全面控制信息[0584] 今事件可由独立的可执行程序进行单独控制

[0585] 宏全

[0586] 今安全的通信

[0587] 今安全的控制功能

[0588] 今安全的虚拟内存管理

[0589] 今信息控制结构受到保护而不致泄露

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

[0591] 今部件被单独加密和确认

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

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

[0594] 今在I/O层集成了安全措施

[0595] 今提供了发布时的快速信息解密

[0596] 今支持安全的商业交易网络

[0597] 今灵活的密钥管理特性

[0598] 可伸缩件

[0599] 今可高度伸缩于多种不同平台之间

[0600] 今支持多处理器环境中的并行处理

[0601] 今支持多个相互协作的处理器

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

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

[0604] 今支持远程处理

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

[0606] 高度的可集成性

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

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

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

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

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

[0612] 分布件

[0613] +提供控制信息的分布和互换控制信息和机制

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

[0615] 今分布式环境中的受控权利分派

[0616] 今支持处理和控制链

[0617] 今为分布式的、偶尔连接但其它情况下异步的连网数据库提供了管理环境[0618] +实时及与时间无关的数据管理

[0619] 今支持“代理”进程

[0620] 诱明件

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

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

[0623] 网络友好件

[0624] +内部OS结构可以使用RPC分配处理

[0625] 今可将子网作为单个节点或独立地进行无缝操作 [0626] 有关操作系统的一般背景知识

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

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

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

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

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

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

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

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

[0635] ROS 602是一个具有显著优点的操作系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0659] ROS软件体系结构

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

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

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

[0663] +小且紧凑

[0664] +可被加载进具有资源限制的环境,例如最小配置的SPU 500

[0665] +可被动态地更新

[0666] +可被授权用户扩展

[0667] +可集成进对象或过程环境中

[0668] +具有安全性

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

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

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

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

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

[0674] 核心680可以管理电子设备600的硬件。例如,它可以提供适当的驱动程序和硬件管理器以便与输入/输出和/或外部设备进行交互作用。外部设备的例子有:键盘612、显示器614、其它设备如“鼠标”指示设备和语音识别器613、调制解调器618、打印机622和网络适配器672。核心680也可以负责初始加载ROS 602的其余部分,并且可以在各种ROS任务执行时对之(及其底层相关硬件资源)进行管理。OS核心680也可管理和访问安全数据库610和文件系统687。OS核心680也可为应用608a(I)、608a(2)等以及其它应用提供执行时的服务。[0675] RPC管理器732为核心680完成信息路由选择和/或资源管理/集成。例如,它接收来自API 682,HPE 655和SPE 503的“调用”,或选择合适的路由将“调用”送至API 682、HPE 655 和 SPE 503。

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

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

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

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

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

[0681] 重定向器684的这种“翻译”特性提供了“透明性”。它允许将VDE函数以“透明”的方式提供给应用608 (b),而使该应用无需陷入有关生成一个或多个VDE函数604调用的复杂性细节之中。ROS 602这一方面的“透明”特性至少有两个重要优点:[0682] (a)它允许不是专门为VDE函数604编写的应用(“非VDE感知型应用”)仍然可以访问关键的VDE函数;以及

[0683] (b)它减少了应用和ROS 602之间接口的复杂性。

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

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

[0686] 安全的ROS部件和部件组

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

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

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

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

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

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

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

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

[0695] 在较佳实施例中,ROS 602基于下列元素来装配部件组690 :

[0696]许可记录(“PERC”)808 ;

[0697]方法“核心” 1000;

[0698] 加载模块1100;

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

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

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

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

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

[0705] 々与电子设备600 —起用的、电子化表示的逻辑操作序列;

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

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

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

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

[0710] 今定义与其它方法之间关系的信息;

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

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

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

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

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

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

[0717] “事件代码”可以向方法核心1000提供参数,从而允许方法核心1000以不同方式

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

[0718] 在较佳实施例中,方法核心1000可以“包含”一个或多个“加载模块” 1100和一个或多个数据元素(UDE 1200,MDE 1202),这种“包含”或者是明确的,或者是通过引用来实现。在较佳实施例中,“加载模块” 1100是某个方法的一部分,该方法反映了基本指令和内部数据。较佳实施例中的加载模块含有可执行码,也可以含有与该可执行码相关的数据元素(“DTD”1108)。在较佳实施例中,加载模块1100提供实际由硬件“执行”的程序指令,以完成由方法规定的进程。加载模块可以包含或引用其它加载模块。 [0719] 较佳实施例中的加载模块1100是模块化的,并且是“纯代码”,这样一来就可以重入和重用单个加载模块。为了使部件690可被动态更新,可允许在全局公用名字空间内对它们进行访问。从这些设计目标来看,加载模块1100最好是较小的、具有纯代码(及纯类代码)特征的模块,并且可以单独命名和寻址。一个单一方法可以提供不同的加载模块1100,这些加载模块1100能够在不同的平台上完成相同或相似的功能,这样可以使方法具有可伸缩性,并且/或者可以使之在多种不同电子设备之间移植。

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

[0721] 图IlE中的部件组690(k)含有方法核心1000,UDE 1200a和1200b,MDE 1202、加载模块1100&-1100(1、以及另一个部件组690(1^1)。如上所述,PERC 808 (k)定义了部件组690 (k)的“装配指令”,并可以含有或引用了要用来装配部件组的部分或全部部件之中的一部分。

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

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

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

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

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

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

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

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

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

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

[0733] RPC 管理器 732

[0734] 较佳实施例中的ROS 602是围绕“基于服务”的远程过程调用体系结构/接口进 如,SPE 503支持对一个或多个基于RPC的服务进行处理。除了支持SPU 500,RPC接口还利用现有操作系统部件,支持对外部服务的动态集成,并提供了一组配置选项。ROS

[0735] 602也可以通过RPC接口与外部服务进行通信,从而无缝地提供了分布式和/或远程处理。在ROS 602的较小型实例中,为节省资源,可以使用较简单的消息传递IPC协议。这种方法可能限制了 ROS 602服务的可配置性,但在某些电子设备中,这点可能的限制还是可以接受的。

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

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

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

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

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

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

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

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

[0744] API服务742 (在较佳实施例中,该API服务与用户API 682相连); [0745] 重定向器684;

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

[0747] 名字服务管理器752;

[0748] 输出管理对象管理器754 ;

[0749] 输入管理对象管理器756 ;

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

[0751] 通信管理器776

[0752] 在前面已经论述了 HPE 655、SPE 503、用户通告686、API 742和重定向器684所提供的服务类型。现在简要地介绍一下OS资源744、752、754、756和776所提供的服务类型。

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

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

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

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

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

[0758] 对象开关734

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

[0760] 流路由器758;

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

[0762] 时间相关性流接口 762;

[0763]截获器 692 ;

[0764] 容器管理器764 ;

[0765] 一个或多个路由表766 ;以及

[0766] 缓冲区/存贮区768。

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

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

[0769] ROS 602含有下列的对象开关服务提供者/资源(每个提供者/资源都可以通过“0SI”与对象开关734通信):

[0770] 输出管理对象管理器754 ;

[0771 ] 输入管理对象管理器756 ;

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

[0773] 外部服务管理器772 ;

[0774] 对象提交管理器774 ;以及

[0775] 通信管理器776。

[0776] 简要地说,

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

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

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

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

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

[0782] 下面将详细论述图12中ROS 602各个子系统的特性及接口。

[0783] RPC管理器732及其RPC服务接口 [0784] 如上所述,ROS 602所提供的基本系统服务要通过使用RPC服务接口(RSI)进行调用。该RPC服务接口向ROS 602中的各种服务系统和子系统提供了通用的标准化接口。

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

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

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

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

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

[0790]

^接口调用 说明

SVC—LOAD__加载一个服务管理器并返回其状态。_

SVC—UNLOAD 卸载一个服务管理器。_

~ SVC_M0UNT — 安装(加载)一个动态加载的子服务,并返回其状态。

SVC—UNMOUNT 拆掉(卸载)一个动态加载的子服务。_

"SVC—OPEN — 打开一个安装了的子服务

.SVC—CLOSE — 关闭一个安装了的子服务 —

~ SVC—READ — 从一个打开了的子服务中读一个块

SVC—WRITE 向一个打开了的子服务写一个块_

_SVC—IOCTL 对一个子服务或服务管理器进行控制

[0791] 加载

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

[0793] RPC加载(LOAD)调用举例:

[0794] SVC_L0AD(long service_id)

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

[0796] 安装

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

[0798] RPC 安装(RPC MOUNT)调用举例

[0799] SVC_M0UNT (long servicejd, long subservice_id, BYTE*buffer)

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

[0801] 打开

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

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

[0804] RPC打开(OPEN)调用举例

[0805] SVC_0PEN (long servicejd, long subservice_id, BYTE*buffer, int (^receive)(long request_id))

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

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

[0808] 关闭、拆除和卸载

[0809] 0PEN.M0UNT和LOAD的相反调用分别是CLOSE、UNMOUNT和UNLOAD。这些接口将所有分配了的资源释放回R0S602(如内存管理器680a)。

[0810] RPC 关闭(RPC CLOSE)调用举例[0811] SVC_CL0SE(long svc_handle)

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

[0813] RPC 卸载(RPC UNLOAD)调用举例

[0814] SVC_UNL0AD (void)

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

[0816] RPC 拆除(RPC UNMOUNT)调用举例 [0817] SVC_UNM0UNT (long servicejd, long subservice_id)

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

[0819] 读和与

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

[0821] RPC 读(RPC READ)调用举例

[0822] SVC_READ(long svc_handle, long request_id, BYTE*buffer, longsize)

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

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

错误信息。

[0825] RPC 写(RPC WRITE)调用举例

[0826] SVC_READ (long servicejd, long sub servicejd, BYTE*buffer, long size,int(^receive)(long request_id)

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

[0828] 输入/输出控制

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

[0830] RPC IOCTL 调用举例[0831] R0I_SVC_I0CTL (long service_id, long subservice_id, intcommand,BYTE*buffer)

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

[0833]

Figure CN101359350BD00811

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

[0835] SPE设备驱动程序736

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

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

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

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

[0840] 通道服务管理器

[0841 ] 验证管理器/安全通信管理器

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

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

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

[0846]

Figure CN101359350BD00821

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

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

[0849] SPE_info (void)

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

[0851]

Figure CN101359350BD00822

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

[0853] SPE_initialize_interface (int (fcn*receiver) (void))

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

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

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

[0857] SPE_initialize_interface (int (fcn*receiver) (void))

[0858] 在较佳实施例中,该函数关闭SPE驱动程序736,清除所有通告地址,并终止SPE和ROS RPC管理器732之间的所有未完请求。在所有请求都得到解决之后,该函数还复位SPE503 (如通过对SPU 500进行一次热重新引导)。 [0859] 在操作系统正准备关机的时候,ROS 602应当执行对驱动程序736的终止操作。还有一种情况需要执行该调用,那就是SPE 503和ROS 602之间的同步严重紊乱,以致必须将SPE中的所有处理过程都复位成一个已知状态。

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

[0861] SPE_reset_interface(void)

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

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

[0864] SPE_get_stats (long servicejd)

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

[0866]

Figure CN101359350BD00831

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

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

[0869] SPE_clear_stats (long servicejd)

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

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

[0872] SPE_set_notify (long service_id, int (fcn*receiver) (void))

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

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

[0875] SPE_get_notify (long servicejd)

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

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

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

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

[0880] 重定向器服务管理器684

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

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

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

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

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

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

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

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

[0889] 用户通告服务管理器740

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

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

[0892] API服务管理器742

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

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

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

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

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

[0898] +商品化数据库方法,及[0899] 今地点记录编号方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0915] 输出管理对象管理器754

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

[0917] 输入管理对象管理器756

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

[0919] 对象仓库管理器770

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

[0921] 对象提交管理器774

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

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

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

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

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

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

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

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

[0930] 通信子系统776

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

[0932] 安全处理环境503

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

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

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

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

[0937] 如图13所示,较佳实施例中的SPE 503 (PPE 650)含有下列的服务管理器/主要功能模块: [0938] 核心/调度程序552

[0939] 今通道服务管理器562

[0940] +SPE RPC 管理器 550

[0941] +时基管理器554

[0942] +加密/解密管理器556

[0943] 今密钥和标记管理器558

[0944] +概要服务管理器560

[0945] +验证管理器/通信服务管理器564

[0946] +随机数发生器565

[0947] +安全数据库管理程序566

[0948] +其它服务592

[0949] 下面将详细讨论PPE 650的各个主要功能模块。

[0950] SPE核心/调度程序552

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

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

[0953] 加载模块执行管理器568

[0954] 任务管理器576

[0955] 内存管理器578

[0956] 虚拟存储器管理器580

[0957] “低层”服务管理器682

[0958] 内部中断处理程序584

[0959] BIU处理程序586 (HPE 655中可以没有)[0960] 服务中断队列588

[0961] DTD解释程序590

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

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

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

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

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

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

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

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

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

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

[0972] 运行(RUN)队列

[0973] 交换(SWAP)队列

[0974]睡眠(SLEEP)队列

[0975] 运行队列中存放的是那些已完全加载进安全执行空间并等候和/或正在使用微处理器502执行周期的任务。交换队列中存放的是那些被“换出”的任务(例如,这些任务正在等待其它可交换部件被加载进来)。睡眠队列存放的是那些正在睡眠的任务(例如,这些任务被除处理器周期之外的另一些资源所“阻塞”,或者当前不需要这些执行任务)。核心/调度程序任务管理器576可以(举例来说)按照“轮转”调度算法在运行队列和交换队列之间转换任务,轮转法选择下一等待服务的任务,将任何需要调页进来的部分交换进来, 然后执行任务。核心/调度程序任务管理器576在需要的时候可以在睡眠队列和活动(即运行或交换)队列之间转换任务。[0976] 在多任务分配环境中,当两个或多个任务试图对同一数据结构进行写操作时,会出现可能导致“死锁”或“任务饥饿”的情况。可以使用“多线程”任务分配配置以避免“死锁”或“任务饥饿”出现。较佳实施例核心/调度程序552可以支持“单线程”或“多线程”任务分配。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0992] (I)划分加载模块1100 ;以及

[0993] (2)支持虚拟页面机制

[0994] 加载模块1100之所以能被“划分”,是因为在许多情况下,它们可以分成独立的部件,而只有其中的一个子集才必须被加载供执行。在本例中,加载模块1100是可调页的最小可执行元素。这种加载模块1100可以划分为独立的部件(如划分为可执行码和大量的数据描述块),为执行简单的加载模块功能,这些独立的部件中只有一个才必须被加载。采用这种结构,可以使加载模块1100在初始时只加载执行码,并根据需要将数据描述块加载到系统其它页面中。许多加载模块1100的可执行部分可能太大,以致无法安放在SPU 500中,这时可将这些加载模块1100重新构造成两个或更多的加载模块。大的加载模块可以被手工“划分”成多个小的加载模块,并通过显式加载模块引用将它们相互“链接”在一起。

[0995] 虽然可以用“请求式页调度”来放松上述部分限制,而较佳实施例使用了虚拟页调度机制来管理大数据结构和可执行程序。虚拟内存管理器580将信息(如可执行代码与/或数据结构)“换”入或“换”出SPURAM 534a,并提供了其它相关的虚拟内存管理服务,以支持完备的虚拟内存管理功能。使用虚拟内存管理机制的一个重要原因是该机制允许用SPE 500配置中的有限资源来执行大任务和/或多任务。

[0996] C. SPE加载模块执行管理器568

[0997] SPE (HPE)加载模块执行管理器(“LMEM”) 568将可执行程序加载到由内存管理器578管理的内存中,并将之执行。LMEM568提供了一种机制,用来对当前已加载到受保护执行环境中的加载模块进行跟踪。LMEM 568还提供了对保存在SPE 503中的基本加载模块和代码段的访问机制,这些基本加载模块和代码段对于SPE 503来说是始终可用的。(举例来说,)LMEM 568可以被希望执行其它加载模块的加载模块1100所调用。

[0998] 在较佳实施例中,加载模块执行管理器568含有一个加载模块执行器(“程序加载器” )570、一个或多个内部加载模块572、以及库例程574。加载模块执行器570 (例如从内存管理器578收到一段内存分配之后)将可执行程序加载到内存中以便执行。内部加载模块572可以提供一组(保存于ROM 532或NVRAM 534b中的)通用基本加载模块1100。库例程574可以提供一组通用的代码段/例程(如引导例程)供SPE 503执行。

[0999] 库例程574可以提供一组存放于ROM 532中的标准库函数。可使用这些标准的库函数及其入口点和参数的一张标准清单。加载模块1100可以调用这些例程(例如使用一个为此保留的中断)。这种库调用机制将代码移到了一个中心位置并支持高度的代码重用,这样可以减少加载模块的大小。所有由SPE 503使用 的加载模块1100都最好被加载模块执行管理器568所引用,加载模块执行管理器568维护并扫描一个可用加载模块的表,并选择适当的加载模块以便执行。如果所需的加载模块没有出现在SPE中,那么该任务将进入“睡眠”状态,同时LMEM 586可以请求将该加载模块从二级存贮器652中加载进来。该请求将发出两个调用,一个调用以RPC调用的形式发向安全数据库管理器566,使之检索出该加载模块以及相关数据结构;另一个调用发向加密/解密管理器556,使之首先对该加载模块进行解密,然后再将它存放在由内存管理器578分配的内存中。

[1000] 说得更详细一点,为执行某个加载模块1100,较佳实施例将所需加载模块1100的名字(如VDE标识)传递给加载模块执行管理器568。LMEM 568首先搜索“存贮器内”的和“内置”的加载模块572表。如果在该表内不能发现所需的加载模块,它便发出一个RPC请求,要求从安全数据库610得到一个拷贝,该RPC请求可以被图12所示的安全数据库管理器744所处理。然后加载模块执行管理器568可以请求内存管理器578分配一个内存页面以存放该加载模块1100。加载模块执行管理器568可以将上述加载模块复制到那个内存页面中,并将该页放入队列中,以便由加密/解密管理器556和密钥及标记管理器558进行解密和安全检查。一旦该页经过解密和检查,加载模块执行管理器568将检查其合法性标记,并将该加载模块插入到调入模块表中,然后将页面地址返回给调用程序。然后调用程序可以直接调用该加载模块1100,或让加载模块执行模块570为其发出调用。

[1001] 图15a详细地示意了通道头信息596和通道594的可能格式,通道594含有通道详细记录594(1),594 (2),…594 (N)。通道头信息596可以含有通道标识字段597(1)、用户标识字段597 (2)、对象ID字段597 (3)、一个包含对“权利”所做引用或所做其它标记(即一组事件,这些事件由PERC 808和/或“用户权利表”464所引用的方法提供支持)的字段597 (4)、事件队列597 (5)、以及一个或多个字段598,字段598利用通道详细记录(“⑶R”)对特定的事件代码进行交叉引用。通道头信息596还可以带有“跳转”表或引用表599,表599允许对相关部件组690中的元素进行寻址。每个⑶R 594(1),. . . 594 (N)都对应于由通道594作出响应的某个特定事件(事件代码)。在较佳实施例中,这些CDR或者显式或者通过引用方式包含了各个方法核心1000N(或其片段)、加载模块1100以及数据结构(如URT、UDE 1200和/或MDE1202),这些都是处理相应事件所需要的信息。在较佳实施例中,一个或多个CDR(如594(1))可引用一个控制方法和作为数据结构的URT464。

[1002] 图15b例示了在较佳实施例中,SPE 503为“打开”通道594所需执行的程序控制步骤。在较佳实施例中,通道594向特定的VDE对象300、特定的授权用户、以及特定“权利”(如事件类型)提供了事件处理。可以将这三个参数传递给SPE 503。执行于“通道0”中的部分SPE核心/调度程序552最初可以通过分配一个由SPE 503处理资源所支持的可用通道(步骤框1125)来响应这个“打开通道”事件,“通道0”是由低层服务582在“引导”例程中创建的。然后该“通道0” “打开通道”任务可向安全数据库管理器566发出一系列请求,以便获取一份“蓝图”(blue print),利用该“蓝图”来创建与通道594相关的一个或多个部件组690 (步骤框1127)。在较佳实施例中,“蓝图”可以含有一个PERC 808和/或URT 464。通过使用传向“打开通道”例程的“对象、用户、权利”参数,将对象注册表460记录、用户/对象表462记录、URT 464记录、以及PERC 808记录相互链接在一起,这样就得到了这张“蓝图”。“打开通道”任务最好向密钥和标记管理器588发送调用请求,以便对与上述各种记录相关的标记进行验证和关联,从而确保它们是可信的和匹配的。然后较佳实施进程把适当的信息写至通道头信息596(块1129)。这些信息可以包括(举例来说)用户ID、对象ID、和一个引用,该引用指向了通道将要处理的“权利”。较佳实施例进程将使用“蓝图”访问(例如访问安全数据库管理器566和/或来自加载模块执行管理器库568)适当的“控制方法”,这些“控制方法”可实际用来监控通道594中所有其它方法1000的执行(步骤框1131)。然后该进程把该控制方法与通道相“装配”(bind)(步骤框1133),这个步骤将包括将URT 464的信息作为控制方法的数据结构合并到通道中。接着该过程向通道594传递一个“初始化”事件(步骤框1135)。该“初始化”事件可以由通道服务管理器562创建,通道服务管理器562发出原始调用要求被创建的通道处理某个服务。另外,与通道刚 装配的控制方法本身也可以产生一个初始化事件,并实际上将该事件传给自身。

[1003] 为响应该“初始化”事件,控制方法可以创建通道详细记录594(1), 594 (N),这些通道详细记录用来处理除“初始化”事件之外的其它事件。执行于通道内的控制方法可以访问各种部件,这些部件是它根据在步骤1127中访问到的“蓝图”来创建相关的部件组690(步骤框1137)所需要的。通过创建一个相关的通道详细记录将每个上述部件与通道594相装配(步骤框1139),此处的通道详细记录规定了用来响应上述事件的方法核心1000N、加载模块1100和相关数据结构(如UDE 1200和/或MDE 1202)。通道详细记录的数目取决于“权利”能够服务的事件数目,所述“权利”由“蓝图”(即URT 464)来指定。在此过程中,控制方法将创建“交换模块”,以便实际地生成所有需要的任务,并从核心562获取必要的内存分配。做为必要的步骤,该控制方法将向安全数据库610发送请求以检索所需部件,向加密/解密管理器556发送调用以解密检索到的加密信息,向密钥和标记管理器558发送调用以确保所有检索到的部件都是有效的。借助通道头信息事件代码/指针记录598并通过创建由通道详细记录594(1),. . . 594(N)所引用的相应交换块,将每个在前述步骤中创建的不同部件组690与通道相装配。当该进程完成后,通道594就被完全创建好了,并且已经可以响应其它事件了。作为最后的步骤,如果需要的话,图15b中进程将回收“初始化”事件任务以便释放资源。

[1004] 一旦通道594以按照上述步骤创建好,它就可以在事件到来时进行响应。通道服务管理器562负责将事件调度给通道594。每当一个新的事件(如通过RPC调用)到来,通道服务管理器562将对该事件进行检查,以确定是否存在一个能处理该事件的通道。如果确实存在这样的通道,通道服务管理器562就把该事件传送给这个通道。为处理该事件,任务管理器576有必要将某些“可交换模块”交换进来,这些“可交换模块”被通道详细记录定义为活动任务。通过这种方式,在图15b所示通道打开过程中形成的可执行部件组690被装入活动的安全执行空间中,同时已激活的特定部件组被选择来响应所接收的事件代码。被激活的任务将执行所需功能以响应该事件。

[1005] 为撤除一个通道,由通道详细记录定义的各种交换模块将被撤消,通道头信息596中信息将被清除干净,并使该通道可被“通道0” “打开通道”任务再分配。

[1006] D. SPE中断处理程序584

[1007] 如图13所示,核心/调度程序552还提供了内部中断处理程序584。它可以协助管理SPU 500的资源。对于所有重要的组件,SPU 500最好或者执行于“中断”模式或者执行于“查询”模式。在查询模式,核心/调度程序552可以对SPU 500内部的每个组件/电路进行查询,并为之仿真一个中断。较佳实施例中的SPU 500最好支持下面的中断:

[1008]今 RTC 528 的“滴答”中断(tick)

[1009] +来自总线接口 530的中断 [1010] +电源失效中断

[1011] 今监视计时器中断

[1012] 今来自加密/解密机522的中断

[1013] +内存中断(如来自MMU 540)

[1014] 当出现一个中断时,微处理器520中的中断控制器将使微处理器开始执行一个相应的中断处理程序。中断处理程序是核心/调度程序552提供的一段软件/固件,它使微处理器520在中断发生时执行特定的处理。中断可以被“矢量化”,于是不同的中断源可实际导致执行不同的中断处理程序。

[1015] 当实时RTC 528 “脉动”时会产生“计时器滴答”中断。计时器滴答中断由计时器滴答中断处理程序进行处理,用来计算内部设备日期/时间,并产生一个计时器事件供通道处理。

[1016] 总线接口部件530可产生一系列中断。在较佳实施例中,仿造USART设计的总线接口 530在各种情况下(如“接收缓冲区满”,“发送缓冲区空”以及“状态字改变”)将产生不同的中断。核心/调度程序552为服务发送缓冲区空中断,将从发送队列中传送下一字符到总线接口 530。核心/调度中断处理程序584为服务所接收的缓冲区满中断,将读出下一字符,将之附在当前缓冲区之后,并根据总线接口 530的服务机状态对缓冲区进行处理。核心/调度程序552最好处理状态字改变中断,并对相应的发送/接收缓冲区进行相应访问。

[1017] 当SPU 500检测到一个急迫的电源失效状态时,它将产生一个电源失效中断。这可能要求马上采取措施避免信息丢失。例如,在较佳实施例中,电源失效中断将把最近写入的所有信息(即“脏页”)转移到非易失性的NVRAM 534b,将所有交换模块标记为“换出”,并设置相应的电源失效标志,通过采取以上种种措施,可以使将来的恢复处理变得容易一些。然后核心/调度程序552可以定期查询状态字中的“电源失效位”,直到该数据被清除,或者电源被完全切断。

[1018] 本例中的SPU 500含有一个通常的监视计时器,监视计时器定期地产生监视计时器中断。监视计时器中断处理程序对内部设备进行检查,以确保没有发生破坏现象。将监视计时器和RTC 528的内部时钟进行比较,以确保SPU 500目前没有被暂停或探测,同时,还要对SPU 500的操作进行其它的内部检查以探测破坏。

[1019] 加密/解密机522在处理了一块数据之后将产生一个中断。核心中断处理程序584对被加密/解密数据块的处理状态进行适当调整,然后传递该数据块进行下一阶段的处理。对于下一需要进行加密的数据块,其密钥被取至加密/解密机522,之后下一加密过程开始。

[1020] 当一个任务试图访问的内存越过了分配给它的区域,内存管理部件540中断将会产生。内存管理部件540中断处理程序捕获上述请求,并采取必要的处理(例如将控制转移给内存管理器578和/或虚拟内存管理器580)。通常,任务将会失败,同时会产生一个页故障异常,或者相应的虚拟内存页将会调入。

[1021] E.核心/调度程序低层服务582

[1022] 在较佳实施例中,低层服务582提供了“低层”功能。举例来说,在较佳实施例中,这些功能可以包括:上电初始化、设备通电自检(POST)、以及故障恢复例程。较佳实施例中的低层服务582还可以(或者通过它们自身或者结合验证管理器/通信服务管理器564)提 供下载应答-询问式通信协议及验证通信协议,并且可以为SPU 500存贮器设备如EEPROM和ELASH存储器提供某些低层管理(或者通过它们自身或者结合内存管理器578和/或虚拟内存管理器580)。

[1023] F.核心/调度程序BIU处理程序586

[1024] 较佳实施例中的BIU处理程序586管理总线接口部件530 (如果总线接口部件530存在的话)。举例来说,它可以为BIU 530管理读和写缓冲区,提供BIU起动初始化,等等。

[1025] G.核心/调度程序DTD解释程序590

[1026] 在较佳实施例中,DTD解释程序590处理数据格式问题。例如,根据DTD内部的格式化指令,DTD解释程序590可以自动打开诸如UDE 1200之类的数据结构。

[1027] 上面讨论的核心/调度程序552支持SPE 503提供的所有其它服务。下面将叙述这些其它服务。

[1028] II. SPU通道服务管理器562

[1029] 在较佳实施例中,“通道”是SPE 503 (HPE 665)的基本的任务处理机制。ROS 602为“方法”提供了事件驱动接口。“通道”使部件组690可以对事件进行服务。“通道”是一种管道,它用来将“事件”从SPE 503 (HPE 665)所支持的服务传送给处理这些事件的各种指定方法和加载模块,它同时还支持部件组690的装配和部件组690之间的交互作用。更详细地说,“通道”594是通道管理器593所维护的一个数据结构,通道管理器593将一个或多个加载模块1100与数据结构(如UDE 1200和/或MDE 1202) “装配”到一起从而形成一个部件组690。通道服务管理器562使加载模块执行管理器569加载该部件组以便执行,同时还负责将事件传递到通道594,以便部件组690作出响应。在较佳实施例中,事件处理是作为向通道服务管理器562发送的消息来处理的。

[1030] 图15示意了较佳实施例通道服务管理器562创建“通道”594的过程,还示意了通道和部件组690之间的关系。简要地说,SPE通道管理器562创建“通道”及相关的“通道头信息”596。通道594及其头596含有一个数据结构,该数据结构“装配”或引用一个或多个部件组690。于是,较佳实施例中的通道594是一种机制,它将图IlE中所示的元素收集或组装在一起,从而形成部件组690,该部件组690可以用来进行事件处理。

[1031] 为响应某个事件的发生,通道服务管理器562将创建通道594。一旦通道创建好之后,通道服务管理器562可根据通道594向加载模块执行管理器568发送功能调用。加载模块执行管理器568将加载由通道594引用的加载模块1100,并请求核心/调度程序任务管理器576执行该加载模块1100。核心/调度程序552将事件处理请求视为一个任务而执行之,即执行由上述通道引用的加载模块1100所含的代码。

[1032] 通道服务管理器562可以被传递给一个事件标识码(如事件代码)。通道服务管理器562对一个或多个方法核心1000’进行语法分析。这些方法核心1000’是通道服务管理器准备组装的部件组690的一个组成部分。通道服务管理器562进行语法分析是为了确定针对不同的事件类型应该调用那些方法和数据结构。然后通道服务管理器562 (例如向安全数据库管理器566)发出调用以获取创建部件组690所必须的方法和数据。(如果需要的话,)这些被调用方法和数据结构(如加载模块1100、UDE 1200和/或MDE 1202)都要使用加密/解密管理器556进行加密,然后再使用密钥和标记管理器558进行验证。通道服务管理器562创建所有必须的“跳转表”引用,以便实际将上述元素“链接”或“装配”在一起,形成一个紧密结合在一起的可执行程序,从而使加载模块可以引用数据结构和部件组中的其它加载模块。然后通道管理器562向LMEM 568发出调用,以便将该可执行程序作 为一个活动任务进行加载。

[1033] 图15示意了通道594可以引用另一个通道。通道服务管理器562可以创建任意数目的通道594以便与另一个通道交互作用。

[1034] 较佳实施例中的通道头596是(或引用)一些数据结构和相关控制程序,这些控制程序将来自通道事件源的事件排入队列,处理这些事件,并释放由“通道详细记录”所指定的供处理的相应任务。在较佳实施例中,“通道详细记录”把一个事件与有关该事件的“交换模块”(即任务)链接在一起。“交换模块”可以引用一个或多个加载模块1100、UDE 1200以及私有数据区,它们是对事件进行正确处理所必须的。对于各个通道能响应的不同事件,均要创建一个交换模块和对应的通道详细记录。

[1035] 在较佳实施例中,通道服务管理器562为支持通道562的创建和维护,可支持下列

的(内部)调用:

[1036]

Hi名 丨'源 说明 —

"Write Event"(“写事件”) I 向通道写入一个事件以便该通道进行响应。因而“Write Event”调用允许调用程序将一个事件插入到

__与该通道相关的队列中。接着该事件将依次由通道594进行处理。_

“Bind Item"( “装配项”) 输入输出控制(Ioctl)以适当的处理算法将某项装配在一起并送入通道中。Bind Call调用允许调用程序将VDE项ID装配到通

__道中(如创建一个或多个与通道相关的交换块)。该调用可以对单个交换模块的内容进行操作。

“Unbind Item” ( “解除装配项”)输入输出控制(Ioctl)以适当的处理算法从一个通道中~解除一项的装配Unbind Item调用允许调用程序解除某个项与某个__I交换模块之间的装配。该调用可以对单个交换块的内容进行操作。_

[1037] SPE RPC 管理器 550

[1038] 前面已经结合图12介绍过,在较佳实施例中,ROS 602的体系结构是基于远程过程调用的。ROS 602含有一个RPC管理器732,RPC管理器732在服务之间传递RPC调用,而这些服务必须都具有与该RPC管理器的接口,即RPC服务接口(“RSI”)。在较佳实施例中,SPE 503 (HPE 655)同样构筑在相同的RPC概念之上。SPE 503 (HPE 655)可以含有大量的模块化内部服务提供者,而每个上述内部服务提供者都向(SPE(HPE)内部的)RPC管理器550提供RSI。这些内部服务提供者可以使用RPC服务请求互相进行通信,并且/或者与其它ROS RPC管理器732进行通信(从而可与ROS 602提供的任何其它服务以及与外部服务进行通信)。

[1039] SPE 503 (HPE 665)内部的RPC管理器550与图12所示的RPC管理器732不相同,但它却在SPE (HPE)内部执行相似的功能:它接收RPC请求,将之传递给特定RSI,该RSI由可处理上述请求的服务所提供。在较佳实施例中,通过SPE (HPE)核心/调度程序552在ROSRPC管理器732和外界(即SPE设备驱动程序736)之间传递请求。核心/调度程序552本身也能够服务某些RPC请求,但它通常将收到的RPC请求传递给RPC管理器550以便转送给SPE(HPE)内部的相应服务。在一个可选的实施例中,可以直接将请求在HPE、SPE、API、通告接口以及其它外部服务之间进行传递,而不是通过ROS RPC管理器732进行转送。具体使用哪种实施例可以体现该系统的可伸缩性的一部分。在不同通信负载和系统配置的前提下,某些实施例要比其它实施例更加有效。服务的响应(以及这些服务自身可以产生的附加服务请求)被送至RPC管理器550,以便再转送至SPE 503 (HPE 655)内部或外部的其它服务。

[1040] SPE RPC管理器550及其集成的服务管理器使用两个表格来发送远程过程调用:一个RPC服务表,一个可选RPC调度表。RPC服务表描述的是应该将指定服务转送到何处以便处理。在较佳实施例中,该表格构成在SPU RAM 534a或NVRAM 534b中,它列出了 SPU500中每个注册的RPC服务。RPC服务表的每一行都含有一个服务ID (标识)、服务位置和地址、以及一个控制字节。在简单的实现中,控制字节只表明了该服务是内部提供的还是外部提供的。在某些较为复杂的实现中,该控制字节可用来表明服务的一个实例(例如,在一个多任务环境中,每个服务都可以有多个“实例”)。在较佳实施例中,ROS RPC管理器732和SPE 530可以有RPC服务表的对称拷贝。如果某个RPC服务在RPC服务表中没有出现,SPE 503可以拒绝相应的服务请求,或者将它传递给ROS RPC管理器732,以得到其服务。

[1041] SPE RPC管理器550接受来自RPC服务表的请求,并按照特定服务的内部优先权对该请求进行处理。在SPE 503中,RPC服务表被一个RPC调度表所扩充。较佳实施例RPC调度表是每个由SPE 503内部支持的RPC服务对加载模块的引用列表。该表中的每一行都含有一个服务该调用的加载模块ID (标识)、以及一个控制字节,该控制字节表明了相应调用是否可以由外部调用程序发出,以及需要对该调用提供服务的加载模块是否永久地驻留在SPU 500中。可以在SPU固件508被加载到SPU 500中的时候把RPC调度表构成在SPUROM 532 (或EEPR0M)之中。如果该RPC调度表在EEPROM中,那么它可以灵活地支持对服务的更新,而不会产生加载模块位置和版本控制问题。

[1042] 在较佳实施例中,SPE RPC管理器550首先对照RPC服务表查阅某个服务请求,以确定可服务该请求的服务管理器位置。然后RPC管理器550将该服务请求转送给相应的服务管理器进行处理。SPE 503中的服务管理器利用RPC调度表来发送该请求。一旦RPC管理器550在RPC调度表中定位了服务引用信息,那么将利用加载模块执行管理器568来调用和加载对相应请求提供服务的加载模块。加载模块执行管理器568将在执行完所有必要的上下文配置之后把控制权转交给被请求的加载模块,或者如果需要的话加载模块执行管理器568首先发出一个调用用以将加载模块从外部管理文件610中加载进来。

[1043] SPU时基管理器554 [1044] 时基管理器554支持与实时时钟(“RTC”)528相关的调用。在较佳实施例中,时基管理器554 —直被加载,并准备好对基于时间的请求作出响应。

[1045] 下表列出了时基管理器554可以支持的基本调用示例:

[1046]

Figure CN101359350BD01021

[1047] SPU加密/解密管理器556

[1048] 加密/解密管理器556支持对SPE 503/HPE 655所支持的各种加密/解密技术进行调用。可用SPU 500内部一个基于硬件的加密/解密机522来支持加密/解密管理器556。SPU加密/解密机522所不支持的那些加密/解密技术可以由加密/解密管理器556采用软件方式来支持。主要的批量加密/解密加载模块最好一直被加载,而其它算法所需的加载模块则最好在需要时调页进来。这样,如果主要的批量加密/解密算法是DES的话,那么只有DES加载模块才需要永久驻留在SPE 503/HPE655的RAM534a 中。

[1049] 下面给出了较佳实施例中由加密/解密管理器556所支持的RPC调用示例:

[1050]

Figure CN101359350BD01022

[1051] 传递的调用参数可以包括:所使用的密钥、模式(是加密还是解密)、任何需要的初始化向量、所需的加密操作(如反馈类型)、需使用的加密实例标识、以及需要加密或解密的数据块的起始地址、目的地地址和长度。

[1052] SPU密钥和标记管理器558

[1053] SPU密钥和标记管理器558支持的调用包括:密钥存贮、密钥和管理文件标记查找、密钥卷积、以及随机密钥、标记和交易号码的生成。

[1054] 下表示意了 SPE/HPE密钥和标记管理器服务558调用示例的列表:

[1055]

Figure CN101359350BD01023
Figure CN101359350BD01031

[1056] 在较佳实施例中,密钥和标记可以在SPE 503 (HPE 655)中安全地生成。密钥生成算法通常专用于可支持的各类加密方法。在使用生成的密钥之前可以对之进行检查,以确定该密钥在加密上是否存在某种弱点。向密钥和标记管理器558发出的生成密钥、标记和/或交易号请求最好以长度作为其输入参数。密钥和标记管理器558将生成一个具有所请求长度的随机数(或其它适当的密钥数值),并将之作为输出。

[1057] 密钥和标记管理器558可支持从SPE 500中的密钥存贮区中检索特定密钥的调用,也可支持检索保存在SUP外部的密钥的调用。这些调用的基本格式是以密钥类型和密钥号请求密钥。通过VDE管理员的干预许多密钥将定期更新,这些密钥存放的位置是SPU500的NVRAM534b或EEPR0M,这是因为这些存贮器具有安全性,可以更新,并且具有非易失性。

[1058] SPE 503/HPE 655可以支持公开密钥类型的密钥和批量加密类型的密钥。公开密钥(PK)加密类型的密钥保存在SPU 500中,并由密钥和标记管理器558来管理,这种类型的密钥可以包括(举例来说)一个设备公开密钥、一个设备私有密钥、一个PK证明(certifitate),以及该证明的一个公开密钥。通常,如果愿意的话可以将公开密钥和证明存放在外部的非安全存贮器中,但设备私有密钥和证明的公开密钥只能内部存放在SPU500的EEPROM或NVRAM 534b中。SPU 500使用的某些批量加密密钥可以包括(举例来说)通用批量加密密钥、管理对象私有头密钥、固定对象私有头密钥、移动对象私有头密钥、下载/初始化密钥、备份密钥、轨迹密钥(trail Key)、以及管理文件密钥。

[1059] 如上所述,较佳实施例密钥和标记管理器558支持调整或卷积密钥以便生成新密钥的请求,举例来说,新密钥是根据地点和/或时间以确定方式产生的。密钥卷积是某种算法过程,该算法对某个密钥以及某些输入参数进行特定操作,最终生成一个新密钥。它可用来(举例来说)增加可用密钥的数量,而又不致占用额外的空间来保存密钥。通过将实时RTC 528的值作为参数,还可用这种算法来“老化”密钥。通过将某个地点标识的某些部分作为参数,还可用这种算法实现密钥对该地点专用化。

[1060] 密钥和标记管理器558还提供有关标记生成和管理的服务。在较佳实施例中,交易和访问标记最好由SPE 503 (HPE 655)保存在安全的存贮器中(如保存在SPU 500的NVRAM 534b中)。这些标记可由密钥和标记管理器558生成。它们用来(举例来说)检查对数据元素的访问权利、检查数据元素的有效性、并对数据元素进行关联。例如,它们可用来确保安全数据结构中的部件未遭受SPU 500外界的破坏。密钥和标记管理器558还可支持轨迹交易标记(trail transaction tag)和通信交易标记。

[1061] SPU概要服务管理器560

[1062] SPE 503在SPU 500的可编程非易失性存贮器中和/或安全数据库610中维护了一组检查跟踪数据。检查跟踪数据可以包含金融方面使用的预算行为审核概要,以及SPU使用安全性概要。当向SPU发出一个请求后,SPU将对该请求的发生作出记录,然后观察该请采是成功了还是失败了。所有成功请求将经过统计并按照类型存放在SPU 500中。失败信息(包括下面列出的元素)将与失败详情一起被保存起来。[1063]

Figure CN101359350BD01041

[1064] 可以对这些信息进行分析,以便检测破坏性的企图,或鉴别超过预期(或预算)限额的使用模式。SPU 500中的检查跟踪历史可以一直保存着,直到将它报告给适当方面为止。这样就可以使系统记录对合法失败的分析以及对SPU进行秘密分析的企图。

[1065] 概要服务管理器560可以存贮和维护这些内部概要审核信息。审核信息可用来检测安全性受到的侵犯或者SPE 503操作的其它方面。SPE 503 (HPE 655)或VDE管理员可维护、分析和使用事件概要,以便发现对电子设备600的不合理使用,并可以对这种使用进行限制。在较佳实施例中,这些参数可以存放在安全存贮器(例如存放在SPU500的NVRAM534b)中。

[1066] 在较佳实施例中,概要服务用于两种基本结构中。一种结构(“事件概要数据结构”)是专用于VDE管理员的,它对事件进行跟踪。事件概要数据结构可在VDE管理员的定期干预之中得到维护和审核。另一个数据结构由VDE管理员和/或分发者用来进行总体预算。在初始化电子设备600时,VDE管理员可以注册事件概要和总体预算概要。(举例来说,)在安全管理文件610遭受破坏的时候,VDE管理员可以得到总体预算概要的报告,并使用该预算概要来确定预算使用的分布情况。得到适当许可的参与者可向概要服务管理器560注册他们的过程(如特定的预算),然后概要服务管理器560可以(例如在NVRAM 534b中)保留出一部分安全存贮器空间,并保存所需的使用和/或访问参数。对每个概要的访问和修改都可以由其自身的访问标记来控制。

[1067] 下表示意了 PPE概要服务管理器560服务调用的列表:

[1068]

Figure CN101359350BD01042

[1069] 在较佳实施例中,事件摘要数据结构使用固定的事件号码在查找表中进行检索。查找表含有一个数值,该数值可以被配置为一个计数器或计数器外加极限。VDE管理员可以使用计数器模式来确定设备使用情况。极限模式则可用来限制破坏,或限制对电子设备600的不合理使用企图。如果发生超出极限的事件,SPE 503 (HPE 655)将拒绝服务用户的请求,直到VDE管理员复位SPE 503 (HPE 655)为止。对系统范围内的事件概要进程所发出的调用最好编入所有负责处理该事件的加载模块中。

[1070] 下表示意了较佳实施例事件概要数据结构可以独立计量的事件示例:

[1071]

Figure CN101359350BD01051

[1072] 另外,由较佳实施例概要服务管理器560维护的“货币总体预算”概要数据结构允许对VDE电子设备600进行注册。其第一表项代表货币总体预算花费值,该表项由第一个初始化SPE 503 (HPE 655)的管理员进行注册。某些货币花费加载模块以及对花费的货币预算进行审核处理的审核加载模块可调用概要服务管理器560以更新货币花费值。某些经过特别授权的加载模块可以具有对货币总体概要的访问权。同时,可以为个体提供者注册附加概要。

[1073] SPE验证管理器/服务通信管理器564

[1074] 验证管理器/服务通信管理器564支持用户口令验证以及“证明”的产生和有效性检查调用。它还可支持SPE 503与外部节点或设备(如VDE管理员或分发者)之间的安

全通信。在较佳实施例中,它可支持下面的有关有效性验证的服务请求示例:

[1075]

Figure CN101359350BD01052

[1076] 上表中没有包含对安全通信服务的调用。管理器564提供的安全通信服务可以(例如如果需要的话与低层服务管理器582 —起)提供基于公开密钥(或其它)询问-应答协议的安全通信。本文前面已经详细论述了该协议。在电子设备600可由多个用户使用的情况下,“证明”对电子设备600标识了这些用户。利用证明授予协议(如Kerberos),VDE软件应用程序可以请求并得到证明。为了授权特定服务,VDE部件可以要求提供证明。

[1077] SPE安全数据库管理器566

[1078] 安全数据库管理器566对SPE 503外部的存储器上的安全数据库610中的安全 数据库记录进行检索、维护、与存贮。许多安全数据库文件610是以加密形式保存的。因而所有被安全数据库管理器566检索的安全信息在使用之前都必须首先解密。对于由SPE503 (HPE 655)生成的、必须存放于安全执行环境之外的安全信息(如使用记录),在经由安全数据库管理器566将之保存到安全数据库文件610中以前,也必须由加密/解密管理器556进行加密。

[1079] 对于每个加载进SPE 503的VDE项,较佳实施例中的安全数据库管理器566可以对一个主表进行搜索以便找到该VDE项ID,然后对照项中交易标记检查主表中的相应交易标记,以确保提供的项是当前项。安全数据库管理器566可以“散列结构”来维护VDE项ID和交易标记的表,“散列结构”可以分页调入SPE 503,以便快速定位相应的VDE项ID。较小的系统可使用查找表这种方法。在两种情况下,上述表都必须组织成可分页的结构,以便快速地定位VDE项ID。

[1080] “基于散列”的方法可用来将表排序成“散列表元”(hashbucket),通过访问“散列表元”可以更加快速和有效地定位表中的项。“基于散列”的方法采用整个项ID的一个子集将VDE项ID进行“散列”,并组织成“散列”表的页。对于每个与该“散列”页相关的项,在该页中都可含有其余VDE项ID和当前交易标记。“散列”表页号码可以从VDE项ID的组成部分中推算出来,这些组成部分的例子有:分发ID、条目ID、地点ID、用户ID、交易ID、制作者ID、类型和/或版本等等。散列算法(包括算法本身和被散列的参数)可以由VDE管理员按照地点的不同而进行不同的配置,以便提供最佳的散列页使用率。下面给出了散列页面结构的一个例子:

[1081]

Figure CN101359350BD01061

[1082] 在本例中,对于每个散列页来说,如果其中的项具有相同分发者ID、项ID和用户 ID域(对于给定的电子设备600来说,地点ID是固定的),那么该页将包含所有的VDE项ID以及交易标记。因而,可将上述四条信息作为散列算法的参数来使用。

[1083] “散列”页自身可以被频繁更新,同时它必须含有交易标记。在每次“散列”页被加载的时候,该交易标记都要经过检查。在每次将“散列”页面写出的时候,也可以对交易标记进行更新。

[1084] 作为“基于散列”方法的一种替代,如果可更新的项一直比较少的话(比如在消费者专用电子设备600中),那么可为每个可更新项分配一个唯一的顺序地点记录号,并将之作为其VDE项ID的一部分,这样就可以采用查找表的方法。对于每个项,只需要较少字节长度的交易标记。而且可以将所有需要频繁更新的项所含的交易标记组织成一个表存放在诸如SPU NVRAM 534b之类的安全存贮器中。

[1085] 随机数发生器管理器565

[1086] 随机数发生器管理器565可以产生随机数。如果提供了基于硬件的SPU随机数发生器542的话,随机数发生器管理器565可加以使用以协助产生随机数。

[1087]其它 SPE RPC 服务 592

[1088] SPU 500可以包含其它经授权的RPC服务,其实现方式是使这些服务将它们自身“注册”到RPC服务表中,并将它们的表项添加到RPC调度表中。例如,一个或多个部件组690可以用来提供附加的服务,这些服务可作为SPE 503及其相关操作系统的一个整体组成部分。如果某些服务没有注册在这些表中,那么对这些服务的请求将从SPE 503 (HPE 655)中传送出去以便得到外部的服务。

[1089] SPE 503性能考虑

[1090] SPE 503的性能为下列因素的一个函数:

[1091] 令所采用的部件组的复杂性

[1092] +同时的部件组操作的数目

[1093] 令可用内部的SPU内存容量

[1094] ■<>块加密/解密算法的速度

[1095] 部件组进程的复杂性以及同时运行的部件组进程的数目可能是决定性能主要因素。这两种因素结合起来决定了在任意时刻都必须驻留在SPU 500中的代码量和数据量(最小设备容量),因而也就决定了进程必须划分成的设备大小“块”的数目。与较简单的模型相比,分段技术内在地增加运行时长度。当然,具有较少特性的SPU 500在实现方案中可以选用容量相对更少的RAM 534。使用上面提到的“聚合”加载模块可能会失去配置VDE体系结构的灵活性,同时还可能限制参与者独立更新分离元素的能力,但却可以减少最小的设备容量。可以构成一个非常简单的SPU 500计量方案来以最小的设备资源操作。

[1096] SPU 500内存RAM 534的容量对SPE 503性能造成的影响比SPU其它方面的因素更为明显。VDE进程的灵活特性允许使用大量的加载模块、方法和用户数据元素。SPU 500的ROM 532只能容纳较少的上述项,如果数量再多一些,在其中存放就不切实际了。当某个VDE进程被调用的时候,该进程绝大部分所需代码和数据结构需要被动态地加载进SPU500中。于是SPU 500内的操作系统可将必要的VDE项调入以执行上述进程。SPU 500的RAM 534容量将直接决定单个VDE加载模块加上其所需数据总共可以有多大长度,同时还决定了运行一个VDE进程所需的页交换次数。SPU I/O速度、加密/解密速度以及内存532、534的容量将直接影响设备中所需的页交换次数。使用非安全的外部存贮器,可以减少等待将需要加载进SPU 500中的页交换进来的时间,但仍然会带来对每个页进行加密/解密的代价。

[1097] 为了保证安全性,SPE 503必须将需要交换到支持SPU 500的外部存贮设备上的每个数据块进行加密并加密封装。同样地,在将这些数据块交换进SPU 500时,SPE 503必须对之进行解密,验证其加密封装,并对之进行验证。于是,对于每个交换块所要进行的数据移动和加密/解密开销将大大地影响SPE的性能。

[1098] 如果SPU微处理器520不负责移动数据经过加密/解密机522的话,那么微处理器520的性能将不会对它所支持的SPU 503的性能产生很大影响。

[1099] VDE安全数据库610

[1100] VDE 100将可独立传送的VDE元素存贮在分配给各VDE电子设备600的一个安全(如加密)数据库610中。较佳实施例中的数据库610可以存放/管理三种基本类型的VDE 项:

[1101] VDE 对象,

[1102] VDE进程元素,以及

[1103] VDE数据结构。

[1104] 下表给出了由安全数据库610保存和管理的某些VDE项示例:

[1105]

Figure CN101359350BD01081

[1106] 每个电子设备600可以含有安全数据库610的一个实例,该实例用来安全地维护VDE项。图16示意了安全数据库610的一个例子。本例中的安全数据库610含有下列由VDE保护的项:

[1107] 今一个或多个PERC 808 ;

[1108] +方法1000(包括静态的和动态的方法“核心” 1000,还包括MDE 1202);

[1109] •今静态的UDE 1200a和动态的UDE 1200b;以及

[1110] +加载模块1100。

[1111] 安全数据库610还可以包含下面的附加数据结构,这些数据结构的使用和维护是针对管理目的的。

[1112] 对象注册”450,它引用了含有一个或多个VDE对象的对象存放仓库728 ;

[1113] +名字服务记录452 ;以及

[1114] +配置记录454 (包括地点配置记录456和用户配置记录458)

[1115] 较佳实施例中的安全数据库610不包括VDE对象300,而是对存放在文件系统687和/或独立对象仓库728中的VDE对象进行引用。不过,不妨先讨论一下VDE对象300,作为了解VDE保护信息的“起始点”。

[1116] VDE 对象 300

[1117] 为了封装信息内容,VDE 100提供了一种与介质无关的容器模型。图17示意了较佳实施例提供的、对象300的“逻辑”结构或格式800。

[1118] 如图17所示,较佳实施例所采用的通用化“逻辑对象”结构800支持借助任何现用介质进行数字信息内容交付。较佳实施例中的“逻辑对象”可集体指代:信息内容;用于操作、记录与/或控制所述信息内容的使用的计算机软件和/或方法;以及适用于所述信息内容和/或所述计算机软件和/或方法的许可、限制、管理控制信息和/或要求。逻辑对象可以也可以不存放在任何给定的电子设备600中,它可以出现也可以不出现在任何给定的电子设备600中或由该电子设备600所访问。逻辑对象的信息内容部分可以组织成包含在, 也可以不包含在,或者部分包含在一个或多个对象中的信息。

[1119] 简要地说,如图17所示,较佳实施例中的“逻辑对象”含有公开头802、私有头804和“私有体”806。“私有体”806含有一个或多个方法1000、许可记录(PERC) 808 (许可记录808可以包含一个或多个密钥块810)、以及一个或多个数据块或数据区812。可以在“容器”302中将这些元素进行“包装”。在较佳实施例中,上述通用化的逻辑对象结构800适用于不同类型的VDE对象300,这些VDE对象300根据其信息内容的类型和位置的不同被分成了不同类别。

[1120] “容器”的概念是一种比较方便的比喻,它用来命名一个元素集合,而这些元素是使用信息内容或执行管理操作所必要的。容器302通常含有识别信息、控制结构和信息内容(如所有权或管理性的数据)。术语“容器”通常用来说明一个信息集合(如Bento/OpenDoc与OLE),该信息集合保存在计算机系统的二级存贮系统中,或者可以由计算机系统通过通信网络从“服务器”的二级存贮系统中得到对其的访问。较佳实施例中的“容器”302并不局限如此。在VDE 100中,不要求上述信息一定要一起存放、同时被接收、同时被更新、只为一个对象所使用、或只由一个实体所拥有。与上不同,在VDE 100中,容器的概念被扩展化和通用化,它包含实时信息内容和/或联机交互式信息内容,这些信息内容通过有线电缆、广播、或者其它电子通信途径被传送到某个电子设备。

[1121] 于是,在任何时刻,用户方(就这方面来说还包括其它任何地方)可能不存在“完整”的VDE容器302或逻辑对象结构800。“逻辑”对象可以存在一段特定的时间(或多个时间段),而不是转瞬即逝。上述概念含有“虚拟容器”的思想,在“虚拟容器”中,重要容器元素可以分布在大量不同的位置上,并且/或者它们可以存在于一序列时间段中(这些时间段可以重叠也可以不重叠)。当然,也可以将所有必要的控制结构和信息内容一起存放在VDE 100容器中。这就代表了一个连续:从所有存放在单个容器中的所有信息内容和控制结构,到本地无法访问的信息内容或容器专有的控制结构。

[1122] 尽管至少某些代表对象的数据通常要经过加密,而这样会使其结构变得对外不可见,不过在PPE 650中,对象被逻辑地看成是“容器”302,这是因为其结构和部件是被自动地、透明地解密的。

[1123] 容器模型可以与较佳实施例所提供的事件驱动进程以及ROS 602很好地合并在一块。在这种模型下,信息内容被方便地划分成小的、易于管理的部分,但其存放方式保持了未加密信息内容的内在的结构化优点。面向对象的容器模型(如Bento/OpenDoc或OLE)还提供了许多必要的“挂接点”,这些“挂接点”可用来插入必要的操作系统集成部件,或用来定义特定于信息内容的各种方法。

[1124] 详细地说,较佳实施例提供的逻辑对象结构800含有一个公开的(或未加密的)的头802,头802标识了对象,并且还可以标识该对象中的一个或多个权利所有者,以及/或者该对象的一个或多个分发者。私有的(或加密的)头804可以含有公开头中的部分或全部信息,另外,在较佳实施例中,头804还含有一些附加数据。当用户向服务票据交换所、VDE管理员、或SPU 500等进行注册,以期作为某对象300的用户时,上述附加数据可用来对该对象进行验证和识别。作为另外一种可选方案,可以将标识了对象的一个或多个权利拥有者和/或分发者的信息以加密形式放置在加密头804中,同时还可放入任何所述附加验证和识别数据。

[1125] 每个逻辑对象结构800都可以含有一个“私有体”806,“私有体”806包含或引用了一组方法1000(即程序或过程),这些方法1000控制了对象300的使用和分发。这种可选择地将不同方法1000纳入各个对象的能力对实现一个高度可配置的VDE 100来说是重要的。方法1000执行基本的功能,即定义哪些用户(在适当情况下还包括分发者、客户管 理员等)可以或不可以操作对象300。因而,一个对象300可以具有相对较为简单的方法,例如可允许以固定的费用(例如报亭的报纸价格即是固定的。在该价格的允许下,用户可在报纸出版之后一周的时间内读阅报纸)在固定时间段内无限制地观看信息内容。同时,可以用更加复杂的方法(如计帐和使用限制)来控制其它的对象。

[1126] 图17所示的逻辑对象结构800还可以包含一个或多个PERC808。PERC 808对对象300的使用进行控制,它规定了方法或方法的组合,而为了访问或使用对象或其信息内容,必须使用这些方法或方法的组合。对象的许可记录808可以含有密钥块810,密钥块810可存放为访问存于对象300中的加密信息内容所需的解密密钥。

[1127] 对象的信息内容部分通常划分成一些称为数据块812的部分。数据块812可以含有任意类型的电子信息,例如“信息内容”,其中包括计算机程序、图象、声音、VDE管理信息等等。数据块812的大小和数目可以由信息内容的制作者来选择。数据块812不必都具有相同的大小(影响大小的因素包括信息内容使用情况、数据库格式、操作系统、安全性和/或其它方面)。对象中的每个数据块812都使用至少一个密钥块810可以增强安全性,虽然并不要求这样做。密钥块810也可以采用一致的或伪随机的方式而涵盖大量数据块812的某些部分。这种涵盖方式将一个或多个密钥应用到对象300、数据库或其它信息实体中的分段的或看似随机的信息内容片段中,从而提供了附加安全性。

[1128] 许多对象300是由物理媒体和/或通过“通道外”途径分发的(如一个消费者收到对象300后将之再分发给另一个消费者),其中用来传送密钥块810所保护信息内容的同一对象300中可以不含有密钥块810。这是因为VDE对象可以包含那种能够在VDE节点限制之外利用电子方式进行复制的数据。如果该信息内容被加密,上述复制的数据也将被加密,而复制者将无法访问该信息内容,除非他带有正确的解密密钥。对于那些特别需要保障安全性的对象,将采用安全通信技术(下面将要对此进行讨论)以电子方式频繁分发许可记录808和密钥块810,上述的安全通信技术由发送者和接收者的VDE节点来控制。因而,在较佳实施例中,许可记录808和密钥块810只频繁地保存于注册的用户的电子设备600中(同时,作为注册/初始化过程的一部分,许可记录808和密钥块810本身也可以被传递给该用户)。在该例中,可以用只存放于SPU500安全存贮器中的私有DES密钥对适用于各个所有物的许可记录808和密钥块810进行加密,这样可以使该密钥块对任何其它用户的VDE节点来说都是不可用的。作为另外一种选择方案,可以用最终用户的公开密钥对密钥块810进行加密,使这些密钥块只对那些保存了相应公开密钥的SPU 500可用(或者也可以采用其它足够安全的加密/解密机制)。

[1129] 在较佳实施例中,用来加密各许可记录808或其它管理信息记录的一个或多个密钥将在许可记录808每次更新时(或在一个或多个特定事件发生之后)被修改。在这种情况下,将使用一个或多个新密钥对更新了的记录重新 进行加密。作为另外一种方案,用来加密和解密管理信息的一个或多个密钥可以是“时间老化”密钥,经过一段时间以后这些密钥可以自动失效。同时使用时间老化的密钥和其它的事件触发密钥可能是一种较好的选择。例如,密钥可以在特定次数的访问之后改变,并且/或者可以在经过特定时间段或越过某个绝对时间点之后发生改变。可以针对任意给定的密钥或密钥组合应用上述技术的组合。较佳实施例创建时间老化密钥的过程是一个单向卷积算法,其输入参数包括用户和地点信息以及由SPU RTC 528所提供实时时间值中的指定部分。也可以使用其它技术来产生时间老化密钥,(举例来说)某些这样的技术只使用用户或地点信息、绝对时间点、和/或与行为子集相关的时间段,上述行为又与对VDE所保密的信息内容的使用或加密或者对VDE系统的使用有关。

[1130] VDE 100支持多种不同类型的、具有图17所示逻辑对象结构800的“对象”300。根据保护信息是否与被保护信息装配在一起,可以对对象进行分类。例如,对于一个容器来说,如果它被它的控制装配到一个指定的VDE节点,那么该容器称为“静止对象”(参看图18)。还有一种容器称为“移动对象”,其特征为:其控制信息未将其装配到某个特定VDE节点,而该容器带有足够的控制和许可信息,使它可以在某些地点中的任一个地点都可以被部分地或整体地使用(参看图19)。

[1131] 还可以根据对象所含信息的特性对对象进行分类。含有信息内容的容器称为“信息内容对象”(参看图20)。含有交易信息、检查跟踪数据、VDE结构、和/或其它VDE控制/管理信息的容器称为“管理对象”(参看图21)。某些容器含有运行于VDE控制之下的可执行码(与VDE控制信息相反),这种容器称为“智能对象”。智能对象支持用户代理,并为用户代理在远程地点执行提供控制。根据地点、类型、以及与对象所含信息内容内容相关的访问机制,还有其它的对象分类方式,这些分类方式可以包含上述分类方式的组合。后面将讨论由VDE100支持的一些对象。图17中的部分或所有数据块812可以包含“嵌入的”信息内容,管理对象、静止对象、移动对象和/或其它对象。

[1132] I.静止对象

[1133] 图18示意了较佳实施例提供的“静止对象”结构850示例。“静止对象”结构850只适用于特定的VDE电子设备/装置中,这些VDE电子设备/装置已接收到了明确的许可以允许它们使用静止对象的一个或多个部分。因此,静止对象结构850不带有许可记录(PERC) 808,该许可记录则是被独立地提供和/或交付给设备/装置600 (例如在不同时间、通过不同途径、以及/或者由团体进行提供和/或交付)。许多不同的静止对象可以使用相同的 PERC 808。

[1134] 如图18所示,公开头802最好是“明文”(即未加密)。私有头804最好使用多个“私有头密钥”中的至少一个进行加密。私有头804最好还包含来自公开头802中的识别元素拷贝,这样一来,如果明文公开头中的识别信息被破坏了的话,系统可以精确地查明破坏者试图改变的是什么。方法1000可以包含在一个称为“私有体”806的部分中,其存放形式可以是本地对象方法、加载模块、以及/或者用户数据元素。私有体(方法)部分806最好使用保存在分开的许可记录808中的一个或多个私有体密钥进行加密。数据块812则包含信息内容(信息或管理数据),这些信息内容可以使用同样由许可记录808提供的一个或多个信息内容密钥进行加密。

[1135] 2.移动对象

[1136] 图19示意了较佳实施例提供的“移动对象”结构860示例。移动对象带有足够的信息,根据这些信息,当它们到达某个VDE节点以后,它们带有的至少部分信息内容可以至少被部分使用。

[1137] 移动对象结构860在私有头信息804中带有一个许可记录(PERC) 808,除此之外,移动对象结构860与静止对象结构850可以是相同的。移动对象结构860中的PERC 808 允许该移动对象可以在任何VDE电子设备/参与者600中使用(按照方法1000和所含的PERC 808)。

[1138] “移动”对象是VDE对象300中特别支持“通道外”分发的一类对象。因此,它们包含密钥块810,并且可以从一个电子设备600传送到另一个。移动对象带来的使用预算相当有限,因而用户可以或者全部或者部分地使用其信息内容(如计算机程序、游戏或数据库),并权衡是获取使用许可或进一步使用许可呢,还是购买对象信息内容。作为另一种方案,移动对象PERC 808可以包含或引用预算记录,这些预算可以是:

[1139] (a)反映了先前购买的权利,或反映了将来获取许可或进行购买的所需信用,并且允许对至少一类或多类对象信息内容进行使用的预算,与/或

[1140] (b)使用(并可以透支)特定的可用信用以允许使用对象信息内容的预算,上述信用保存于本地VDE节点中,并受本地VDE节点控制。与/或

[1141] (C)在要求向本地VDE节点提交报告(同时也可以选择向票据交换所提交报告)之前,反映一个或多个最大使用限额的预算,在提交上述报告之后,所反映的限额可以被复位,以便允许进一步使用和/或修改原始一个或多个预算之中的一个或多个。

[1142] 对于标准的VDE对象300,在用户可用的预算已经用完之后,如果用户希望继续使用移动对象,用户可能需要与票据交换所联系,以便获得额外的预算。另外,如果移动对象(或其拷贝)移动到了另一个电子设备中,而新设备没有足够的可用信用预算以满足许可记录808所提出的要求时,可能还需要用户与票据交换所联系以便获得额外预算。

[1143] 例如,移动对象PERC 808可以含有一个引用,该引用指向了一个所需的预算VDE1200或某些预算选项,预算VDE 1200或上述预算选项可能存在,并且/或者被预期为可用的。例如,预算VDE可以引用消费者的VISA、MC、AMEX或者其它“一般”预算,这些预算可以是与对象无关的,并且可以适用于某个或某些类移动对象信息内容(例如,一类移动对象中的任何电影对象,该电影对象可能是Blockbuster录像带出租品)的使用。该预算VDE本身可以限定它可以使用的一类或多类对象,同时,一个对象可以特别引用特定的一个或多个一般预算。在这种情况下,VDE提供者通常以允许对信息进行正确的引用,并支持计帐处理和帐单结付的方式,使信息可以利用。[1144] 移动对象可以用在接收VDE节点电子设备600上,其前提条件是:或者该设备带有正确的预算或预算类型(如可从票据交换所获得的充足信用,诸如VISA预算),这些预算或预算类型既可以是一般类型的也可以是特定于一个或多个用户或用户类别的;或者该移动对象本身带有充足的预算容许额或适当的授权(比如某个协约,移动对象可以将该协约应用于特定的一个或多个设备或设备类型,或应用于特定的一个或多个用户和用户类型,此处的类型对应于设备或用户的一个指定子集,而这些设备或用户则由存放在安全数据库610中的预定义类型识别码所指代)。收到该移动对象以后,如果用户(和/或设备)不带有适当的预算和/或授权,那么电子设备600可(利用保存在移动对象中的信息)通知用户:他们可以与哪个或哪些团体进行联系。这个或这些团体可能含有该移动对象可用的可选票据交换所提供者清单,用户可以从该清单中选择他希望的联系方。

[1145] 如上所述,移动对象使对象300可以在“通道外”分发。这就是说,未授权的或未明确授权的个体可以将对象分发给另一个体。“通道外”所含的分发渠道(举例来说)允许 用户直接将一个对象重新分发给另一个体。例如,一个对象提供者可以允许用户将某个对象的拷贝重新分发给他们的朋友或同事(例如可以借助存储介质进行物理地交付,或借助计算机网络传递)。于是,如果某个朋友或同事满足了使用所述对象的任何特定条件后,他便可以使用该对象。

[1146] 例如,如果某个软件程序作为移动对象被分发,那么假如该程序的用户希望将该程序或该程序的一个可用拷贝提供给他的朋友,该用户通常可以不受任何约束地这样做。移动对象具有巨大潜力的商业价值,其原因在于,这样可以主要由用户和公告版系统来分发有用的信息内容,而除了需要向“原始”信息内容提供者和/或票据交换所注册以外,通过用户和公告版系统进行分发所需的分发开销很小或者根本没有。

[1147] “通道外”分发方式可允许提供者收取再分发对象的使用费用,并且/或者使提供者对再分发对象维持至少一定程度的控制。这里面的某些限制可以包括(举例来说)在用户的VDE节点注册被授权的第三方财务关系(如信用卡),以及使用再分发对象所需的充足信用。

[1148] 于是,如果用户拥有一个VDE节点,用户可以被允许使用移动对象,其条件是:用户在其VDE节点(根据需要也可以是分配给他的VDE节点)中带有适当的可用预算,以及/或者该用户或其VDE节点属于一个经过特别授权的用户组或设备组,以及/或者该移动对象带有自身预算。

[1149] 由于移动对象的信息内容经过了加密,所以只有在经过授权的情况下才可以使用该对象,除非使用该对象所需的移动对象私有头密钥被破解。破解移动对象的私有头密钥(举例来说)与破解许可和/或预算信息相比,前者可能是相对较为容易一些,这是因为许多对象可共享同一个密钥,这就在密文方面给了破译者更多的信息以供分析,同时更加刺激破译者进行密码分析。

[1150] 在“移动对象”的情况下,信息内容拥有者可以将封装有该信息内容的对象300中所含的某些或全部密钥块810与信息内容信息一同分发。将密钥放入被分发的对象300中将增大安全保护机制受威胁的程度。(通过确定私有头的加密密钥)破解或密码分析用来保护保密头的加密算法对安全机制造成威胁。这种对安全性的破坏通常需要相当高的技术和相当长的时间,但是如果一旦造成破坏,加密算法和密钥将会被公开出去,而如果大量的人所拥有的对象使用了相同密钥和算法进行加密,那么这些人将因而得以对被保护的信息进行非法使用。所以,将密钥放入被分发的对象300中只限于某些情况,即:或者信息内容具有“时间敏感性”(即:过了特定的时间以后,这些信息内容的价值将会降低);或者这些信息内容的价值有限;或者将密钥放入对象中带来的商业价值(例如给最终用户带来了方便性、由于省去用远程通信或其它途径传送密钥和/或许可信息而使成本更为降低、以及/或者能够支持利用“通道外”方式传递对象)超过了由于破译高手发现破绽所引起的损失。如前所述,可以采用卷积技术避免将“真正”的密钥存放在移动对象中从而提高密钥的安全性,虽然在大多数情况下,使用VDE管理员提供给大多数或所有VDE节点共用的一个密码作为输入,而不是用站点标识和/或时间作为输入,以便对象与这些值无关。

[1151] 如图19所示,前面已经讲过,移动对象带有一个许可记录808,该许可记录808最好提供至少某些预算(在通常情况下包括一个预算、其它预算或两者都包括)。如上所述,许可记录808可以含有一个密钥块810,该密钥块810保存了重要的密钥信息。PERC 808还可以含有或引用某些预算,这些预算包含了有潜在价值的数量/数值。这种预算可以存放在移动对象本身之中,或者也可以将这些预算独立交付,并且可以使用高度安全的通信密钥和管理对象以及管理数据库技术对之加以保护。

[1152] 移动对象所包含方法1000通常含有一个安装过程,该安装过程使用对象中的许可记录808来“自我注册”对象(例如该方法是一个注册方法)。对于某些对象来说,上述特性是特别有用的。这样的对象包括:价值受时间限制的对象;最终用户使用免费或缴费极低的对象(或所有物)(例如向广告商和/或信息公布员的使用费用的收取标准要取决于实际访问过被公布信息的那些最终用户的数目);所需的预算在各处都可获得并且通过通道外分发可以获得特别受益的对象(这种预算的例子是由信用卡得到的预算,这些预算适用的范围包括诸如电影、软件程序、游戏等所有物的对象)。这些移动对象可以含有也可以不含有预算UDE。

[1153] 移动对象的一个用途是公布软件。此时,所含的许可记录可允许潜在消费者在演示模式下使用该软件,同时在支付许可费用之前或除起始试用费之外进行更多支付之前的一段有限时间之内可以使用所有程序特性。例如,结合预安装的少量时间预算,使用基于时间的计帐方法和预算记录,可以允许在短时期内对程序进行完整地使用。可以使用各种各样的控制方法以避免对对象信息内容进行非法使用。例如,通过将移动对象的最短注册间 隔适当地设置成一个较长的时间(如一个月、半年或一年),可以禁止用户重新使用同一移动对象中预算记录。

[1154] 控制对移动对象进行使用的另一种方法是在移动对象的许可记录中放置逐渐衰老的密钥。使用这种方法通常是为了确保在没有重新注册的情况下对移动对象的使用不会超过某个日期,这种方法对于那些通过广播、网络或电信(包括单向的和双向的有线电缆)等电子方式分发的移动对象来说特别有用,这是因为可以将这种移动对象逐渐衰老密钥的交付日期和时间精确地设置成用户开始拥有该对象的时间。

[1155] 移动对象还可用来简化将对象从一个电子设备100 “移动”到另一个的过程。用户可以从一台桌上型计算机中将一个移动对象连同其内置的一个或多个许可记录808 —起移动到其笔记本计算机中。移动对象可以在其内部注册其用户,因而只有该用户一个人才能使用该移动对象。移动对象可以维护单独的预算信息,一个用于基本的分发预算记录,一个用于注册用户的“活动”分发预算记录。采用这种方式,该对象可被拷贝并传送给另一个潜在用户,并且成为该用户的可携带对象。

[1156] 移动对象可以放在一个容器中,而该容器还同时含有其它对象。例如,一个移动对象容器可以包含一个或多个信息内容对象以及一个或多个管理对象,该管理对象用于在最终用户的对象注册处注册对象,并且/或者提供机制以强迫执行许可和/或其它安全性功能。所含的管理对象可用于在最终用户的电子设备中安装必要的许可记录和/或预算信肩、O

[1157] 信息内容对象

[1158] 图20示意了 VDE信息内容对象结构880的示例。通常,信息内容对象880包含或 提供信息信息内容。这种“信息内容”可以是任意类型的电子信息。例如,信息内容可能包括:计算机软件、电影、书籍、音乐、信息数据库、多媒体信息、虚拟现实信息、机器指令、计算计数据文件、通信报文和/或信号、以及其它信息,其中的至少一部分是由一个或多个电子设备使用和/或处理。经过配置,VDE还可以用来鉴定、控制和/或审核电子商业交易和通信,这些商业交易和通信的例子有:银行间交易,电子购物通信、以及对通过电子签名的合同及其它法律文书进行的传送、审核以及安全的、商业化的存档。这些交易中所使用的信息也可以称为“信息内容”。如上所述,信息内容不一定要物理地存放在对象容器中,它可以在不同的时间被独立地提供(如通过有线电缆发送的实时输入)。

[1159] 在图20所示的特定例子中,信息内容对象结构880是一类静止对象,这是因为它不带有PERC 808。在该例中,信息内容对象结构880含有至少一个如图5A所示的嵌入式信息内容对象882,并将嵌入式信息内容对象882作为其信息内容812的至少一部分。信息内容对象880还可以包含管理对象770。因而,较佳实施例提供的对象可以含有一个或多个“嵌入式”对象。

[1160] 管理对象

[1161] 图21示意了较佳实施例提供的管理对象结构870示例。“管理对象”通常含有与VDE 100操作有关的许可、管理控制信息、计算机软件和/或方法。管理对象还可以含有与VDE 100操作有关的使用记录和/或其它信息。管理对象区别于信息内容对象的地方在于它不含受VDE保护的、用以发放给最终用户的“信息内容”。由于对象可以包含其它对象,一个单一对象可能包含一个或多个包含信息内容的对象,及一个或多个管理对象。管理对象可以为更新、使用报告、计帐和/或控制的目的,在电子设备之间传送信息。它们含有的某些信息有助于管理VDE100,并使之正常运行。通常在两个VDE节点之间传送管理对象。这些VDE节点的例子有:VDE票据交换所服务、分发者、客户管理员和最终用户的电子设备600。

[1162] 本例中的管理对象结构870含有公开头802、私有头804(它带有一个PERC 808)以及包含方法1000的“私有体”806。在图20所示的特定例子中,管理对象结构是一类移动对象,这是因为它带有一个PERC 808。不过管理对象可以不带有PERC 808而变成静止对象。管理对象结构870不保存信息内容,而是保存“管理信息内容”872。管理信息内容872可以(举例来说)包含大量的记录872a、872b,. . . 872n,每个记录对应于一个不同的“事件”。每个记录872a、872b,... 872n可以包含一个“事件”字段874,并可以可选地包含一个参数字段876以及/或者一个数据字段878。这些管理信息内容记录872可以由VDE100用来定义交易过程可能要处理的事件,例如,一个用来向安全数据库增加记录的事件可能包含参数896和数据字段878,其中,参数896表明记录如何存贮和存贮何处站,而数据字段878则包含了需要增加的记录。在另一个例子中,一组事件可以定义在管理对象的制作者和收件人之间的财务交易,例如一项购买、一个订购单或一张发票。每个事件记录872都可以是一组指令,这组指令由最终用户的电子设备600执行,从而对最终用户的安全数据库610进行增加或修改(举例而言)。事件可以执行许多基本管理功能,例如,向对象注册处添加对象,这包括提供相关的用户/组记录、权利记录、许可记录和/或方法记录;删除审核记录(例如将审核跟踪记录聚集成一个更为紧缩的概要表格,或者进行实际删除);为以前注册的对象增添或更新许可记录808 ;增加或更新预算记录;增加或更 新用户权利记录;以及增加或更新加载模块。

[1163] 在较佳实施例中,管理对象可以由(举例来说)分发者、客户管理员、票据交换所或其它财务服务提供者等发送到最终用户,或者也可以由对象制作者发送给分发者或服务票据交换所。管理对象可以(举例来说)对接收了管理对象的那些VDE节点的预算和/或许可进行增加或调整。类似的,那些在事件记录872的数据区878中包含了审核信息的管理对象可以从最终用户发送给分发者、票据交换所和/或客户管理员,后者可能再将管理对象发送给对象制作者或对象处理链中的其它参与者。

[1164] 方法

[1165] 较佳实施例中的方法支持在使用对象以及与分发者通信过程中用户所遇到的多种操作。它们还可指定哪些方法字段可以显示给用户(如使用事件、用户请求事件、用户响应事件以及用户显示事件)。另外,如果某个方法支持分发功能,那么该方法可以支持分发活动、分发者与用户进行有关方法、方法的修改、确定哪些方法字段可以向分发者显示、以及对分发数据库的任何检查以及记录保存(如分发事件、分发者请求事件以及分发者响应事件)的通信。

[1166] 鉴于现有方法结构的一般性,以及装配方法的多种可能性组合,可使用一个通用化的结构来建立方法之间的关系。由于方法1000可以独立于给定会话中需要它的对象,所以不可能在方法本身之中定义上述关系。在较佳实施例中,使用“控制方法”来定义方法间的关系。控制方法可以是特定于对象的,并可以在每次会话中适应单个对象的要求。

[1167] 对象的控制方法建立与其它方法的关系。当在注册进程中创建记录集合(这些记录集合反映了对应于每个所需方法的所需方法选项)的时候,这些关系由明确的方法标识符参数化。

[1168] 在较佳实施例中,“聚合方法”代表了一组方法,这些方法可以被看成是一个整体。与特定所有物相关的一组方法可以被存放在一个“聚合方法”中。从实现角度来看,这种聚合方式是有用的,这是因为它可以降低簿记开销并提高数据库的总体性能。在其它情况下,当方法间存在逻辑相关性时,也可以把这些方法聚合起来。例如,两个预算可以会被链接在一起,这是因为其中一个代表了总体限额,而另一个则代表了当前可用的限额。当一个大额预算随着时间以小额形式发放时,上述情况就可能出现。

[1169] 举例来说,一个含有计量、计帐和预算进程的聚合方法可用来代替独立的三种方法。这个聚合方法可以引用单个“加载模块” 1100,而该加载模块1100可执行上述三个独立加载模块的所有功能,而只使用一个用户数据元素,该数据元素包含计量、计帐和预算数据。使用聚合方法而不是三种独立的方法可以最大限度地降低总体存贮器需求、数据库搜索次数、解密次数、以及将用户数据元素回写到安全数据库610的次数。使用聚合方法而不是三种独立的方法的缺点在于在提供者和用户方面将损失一些灵活性,因为许多功能将不能再被独立地替换了。

[1170] 图16示意了方法1000,这些方法是安全数据库610的一部分。

[1171] 较佳实施例中的“方法”1000是基本指令和信息的集合,而信息则与基本指令相关联。这些基本指令和信息提供了为执行和/或准备执行基本指令所需的上下文、数据、要求和/或关系,这些基本指令与一个或多个电子设备600的操作相关联。如图16所示,在较佳实施例中,方法1000由安全数据库610中的下列部分表示:

[1172] 今方法“核心” 1000N

[1173] +方法数据元素(MDE) 1202 [1174] 今用户数据元素(UDE) 1200

[1175] 今数据说明元素(DTD)

[1176] 较佳实施例中的方法“核心” 1000N可以包含或引用一个或多个数据元素如MDE1202和UDE 1200。在较佳实施例中,MDE 1202和UDE 1200可以带有相同的一般特性,它们之间的主要区别在于:UDE最好与一个特定方法、一个特定用户或一组特定用户结合在一起,但MDE可与一个特定方法结合在一起,而与用户无关。较佳实施例中,MDE和UDE数据结构1200、1202用来向方法1000提供输入数据,或接收方法的输出数据,或者两者兼做。MDE 1202和UDE 1200的传递可以独立于引用它们的方法核心1000N进行,或者这些数据结构可以作为方法核心的一部分进行传递。例如,在较佳实施例中,方法核心1000N可以含有一个或多个MDE 1202和/或UDE 1200 (或其中一部分)。作为另一种选择或作为一种补充方式,方法核心1000N可以或另外引用一个或多个MDE和/或UDE数据结构,而这些数据结构是独立于引用它们的方法核心进行传递的。

[1177] 在较佳实施例中,方法核心1000N还引用一个或多个“加载模块”1100。较佳实施例中的加载模块含有可执行代码,并且还可以包含或引用一个或多个称为“数据说明符”(DTD)信息的数据结构。该“数据说明符”信息可以(举例来说)向DTD解释程序590提供数据输入信息。DTD可使加载模块1100能够访问(如读出和/或写入)MDE和/或UDE数据元素1202,1200。

[1178] 方法核心1000’还可引用一个或多个包含了其操作正文说明的DTD和/或MDE数据结构,这些操作正文说明适于作为电子合同的一部分。对DTD和MDE数据结构的引用可以出现在方法核心1000’的私有头中,也可以定义成事件表的一部分,后面将要讲到事件表。

[1179] 图22示意了较佳实施例提供的方法核心1000N的格式示例。较佳实施例中的方法核心1000N含有一个方法事件表1006和一个方法局部数据区1008。方法事件表1006列出了“事件”,这些事件每一个都引用了控制事件处理的“加载模块”1100和/或PERC 808。与表中所列各事件对应的是向加载模块1000或许可记录808提供参数所必须的任何静态数据,以及对方法用户数据区1008的引用,这些引用用来支持事件的处理。为加载模块1100提供参数的数据可以部分地认为是对该加载模块的一个特殊函数调用,而与之相对应的数据元素则可以被认为是上述特殊函数调用的输入和/或输出数据。

[1180] 方法核心1000N可以由单个用户专用,也可以被大量用户共享(举例而言,这要取决于方法核心和/或特定用户数据元素的唯一性)。特别地,每个用户/组都可以拥有其自己的UDE 1200,并使用共用的方法核心1000N。比起将整个方法核心1000N与一个用户/组关联来说,上述的结构将使数据库的开销更低。为了使用户能用一个方法,可以向用户发送方法核心1000N,该方法核心指定了一个UDE 1200。如果所在地的安全数据库610中已经含有了方法核心1000N,那么只需要添加UDE 1200。作为另外一种选择,方法可以在注册的时候创建所有必须的UDE 1200。

[1181] 在图22中,由较佳实施例所提供的方法核心1000N格式示例包含公开(未加密)头802、私有(加密)头804、方法事件表1006、以及方法局部数据区1008。

[1182] 下表给出了方法核心1000N公开头802可能的字段布局示例:

[1183]

Figure CN101359350BD01181

[1184] 下表示意了私有头804的可能字段布局示例:

[1185]

Figure CN101359350BD01182

[1186] 再参看图22,较佳实施例中的方法事件表1006可以含有从I到N的方法事件记录1012。每个上述方法事件记录1012都对应于一个不同的事件,由方法核心1000N代表的方法1000对该事件作出响应。在较佳实施例中,根据所响应事件的不同,这些方法1000可以具有完全不同的行为。例如,为响应对应于用户使用一个对象或其它资源的事件,AUDIT(审核)方法可以在审核跟踪M)E 1200中保存某些信息。而同一 AUDIT(审核)方法可以将所保存的审核跟踪向VDE管理员或其它参与者进行报告,以作为对管理事件的响应,这种管理事件诸如(举例来说)VDE节点中的计时器计时终止或其它VDE参与者发来了报告审核跟踪的请求。在较佳实施例中,每一个上述不同事件都可以用一个“事件代码”来代表。该“事件代码”可以在某个方法被调用时作为参数传递给该方法,它可以用来在方法事件表1006中“查找”适当的方法事件记录1012。接下来,选定的方法事件记录1012指定用来创建部件组690的适当信息(如加载模块1100,数据元素UDE和MDE1200、1202,以及/或者PERC 808),该部件组690将响应所发生的事件而投入执行。

[1187] 于是,在较佳实施例中,每个方法事件记录1012都可以包含事件字段1014、LM/PERC引用字段1016、以及任意数量的数据引用字段1018。较佳实施例中事件字段1014可含有一个“事件代码”或标识相应事件的其它信息。LM/PERC引用字段1016可提供对安全数据库610的引用(或其它“指针”信息),该引用标识了某个加载模块1100和/或某个PERC 808,该加载模块1100和/或PERC 808提供(或引用)了特定的可执行码,该执行码要被加载和执行,以便执行用来响应上述事件的方法。数据引用字段1018可以含有对UDE1200或MDE 1202的引用信息。这些数据结构可以包含在方法核心1000N的方法局部数据区1008中,也可以作为独立可传递信息而保存在安全数据库610中。

[1188] 下表示意了方法事件记录1012的一个可能更详细的字段布局示例:

[1189]

Figure CN101359350BD01191

[1190] 加载模块

[1191] 图23示意了较佳实施例提供的加载模块1100示例。通常,加载模块代表了基本功能的集合,这些基本功能用来对操作进行控制。

[1192] 加载模块1100含有代码和静态数据(静态数据在功能上与代码是等价的),它用来执行VDE 100的基本操作。加载模块1100通常被系统中所有对象的所有控制结构共享,不过也允许独占的加载模块存在。加载模块1100可以在管理对象结构870中在VDE参与者之间传递,并通常保存在安全数据库610中。在上述两种情况中,加载模块1100总要经过加密和鉴别。当方法核心1000N引用加载模块1100时,该加载模块即被调入SPE 503,经过解密后,或者被传送给电子设备微处理器以便在HPE 655中执行(如果HPE 655是它执行的地方),或者保留在SPE中(如果SPE 503是它执行的地方)。如果没有SPE 503的话,该加载模块在执行前可能先要经过HPE 655解密。

[1193] 由各个团体创建加载模块最好受一个确认进程的控制,或由基于环的SPU体系结构进行控制。于是,创建新加载模块的进程本身即是一个受控进程,和替换、更新或删除已经保存在安全数据库610中的加载模块的进程一样。

[1194] 加载模块100只有在SPU 503或HPE 655的受保护环境中才能执行其功能,其原因在于,只有这样加载模块才有权访问它需要操作的受保护元素(如m)E 1200或其它加载模块1000)。在该环境中,起动加载模块执行中严格受控于访问标记、确认标记、加密密钥、数字签名和/或关联标记的组合。因此,调用者只有在知道加载模块1100的标识并能确立特定于该加载模块的共享保密关联标记时,才能引用该加载模块。执行解密操作的SPU在解密加载模块之后,可将识别标记和加载模块的本地访问标记进行匹配。采用这种技术,对任何加载模块所做的物理替换都可在下次对之进行访问时检测出来。而且,在较佳实施例中,可以将加载模块1100设置成“只读”。加载模块1100的只读特性将禁止对加载模块进行回写,而在非安全环境中,回写将破坏加载模块。

[1195] 加载模块不一定由控制它们的PERC 808直接管理,也不一定带有任何时间/日期信息或过期日期。在较佳实施例中,仅有的控制手段体现在一个或多个方法1000使用关联标记(关联标记是由加载模块所有者创建的、有关受保护对象的一个数值,关联标记被传递给经过授权的团体并存放在其方法中,对关联标记访问和使用由一个或多个PERC808来控制)来引用加载模块。如果某个方法核心1000N引用了一个加载模块1100并能够确立正确的关联标记(并且该加载模块通过了为在SPE 503内执行而进行的内部防破坏检查),那么该加载模块将可以被加载和执行,或可以从其它系统所获取,可以运送给其它系统,或者可以被其它系统所更新和删除。

[1196] 如图23所示,较佳实施例中的加载模块1100可能包含公开(未加密)头802、私有(加密)头804、包含加密可执行码的私有体1106、以及一个或多个数据说明元素(“DTD”)1108。DTD 1108可以存放在加载模块1100中,也可以是对安全数据库610中静态数据的引用。

[1197] 下表给出了加载模块公开头802可能的字段布局示例:

[1198]

Figure CN101359350BD01201

[1199] 许多加载模块1100含有在SPE 503中执行的代码。而某些加载模块1100含有在HPE 655中执行的代码。这就允许方法可以选择合适的环境执行。例如,可以让一个INFORMATION (信息)方法仅在SPE503安全空间中执行政府类的安全级,而在HPE 655中执行商业应用。如上所述,加载模块公开头802中可含有一个“执行空间代码”字段,该字段表明了加载模块1100需要执行的空间。此项功能还支持不同SPE指令集以及不同的用户平台,同时该功能还使方法的创建不依赖于低层的加载模块指令集。

[1200] 加载模块1100对三个主要的数据区进行操作,它们是:堆栈、加载模块参数和数据结构。执行加载模块1100所需的堆栈和运行内存大小最好在私有头804中说明。与来自关于加载模块调用、返回、以及任何返回数据区的栈图象的数据说明也一样。对堆栈和动态区的说明使用了相同的DTD机制。下表给出了加载模块私有头1104的可能布局示例:

[1201]

Figure CN101359350BD01202
Figure CN101359350BD01211

[1202] 每个加载模块1100还可以使用DTD 1108信息产生必要的信息以支持从加载模块中创建方法。DTD信息中含有定义和范围,前者用SGML之类的语言书写,它描述的是加载模块所支持的所有方法数据字段的名字和数据类型;后者规定了可以放入字段的数值的可接受范围。其它DTD可以英文形式说明加载模块的功能,(举例来说)这些内容是为加入电子合同之用。

[1203] 加载模块1100的下一部分是一个加密的可执行体1106,可执行体1106包含了一个或多个加密代码块。加载模块1100最好用其执行环境的“原来”指令集进行编码,以便获得较高效率和紧凑性。SPU 500以及平台提供者可以提供标准加载模块1100版本,以便使他们的产品可以与VDE 100计划采用各种分发机制的信息内容协同工作。较佳实施例创建并使用原来模式的加载模块1100来代替“解释的”或“p-代码”实现方案,从而使资源有限的SPU性能达到最优。不过,如果存在充足的SPE (或HPE)资源,并且或者平台具有足够的资源的,也可以采用其它实现方案,以便提高加载模块的跨平台使用能力。

[1204] 下表给出了加载模块DTD 1108的字段布局示例:

[1205]

Figure CN101359350BD01221

DTDl中的数值

[1208] 今将数据区DTD4中的数据元素(该数据元素由DTD3中的名字来定义)数值设置为DTD3中的数值。

[1209] 今按照DTD3中 的表格对来自DTDl内事件的原子元素进行计算,并将结果返回至DTD2 中

[1210] 今按照DTD3中的公式对来自DTDl内事件的原子元素进行计算,并将结果返回至DTD2 中

[1211] +根据由DTD3弓I用的加载模块创建模板创建加载模块

[1212] +使用DTD4中的内容修改DTD3中的加载模块

[1213] 今撤除在DTD3中指名的加载模块

[1214] 如果空间允许的话,可将公用的加载模块1100内置于SPU 500中。使用内置加载模块1100的VDE进程与必须查找、加载、解密外部加载模块的那些进程相比,前者性能更为突出。最为有用而应该内置于SPU中的加载模块1100包括计量加载模块、固定价格计帐加载模块、预算加载模块以及聚合了执行上面三种进程的方法的加载模块。

[1215] 用户数据元素(UDE) 1200和方法数据元素(MDE) 1202

[1216] 在较佳实施例中,用户数据元素(UDE) 1200和方法数据元素(MDE) 1202用来存放数据。较佳实施例提供了多种m)E 1200和MDE 1202。在较佳实施例中,每个上述不同类型的数据结构都共享通用的整体格式,这包括通用头定义和命名方案。其它共享该通用结构的UDE 1200包含“局部名服务记录”(下面马上就要对此进行解释)以及连接其它VDE参与者使用的帐户信息。这些元素没有必要与单独的用户相关联,所以被视为MDE 1202。如果需要的话,较佳实施例提供的所有UDE 1200和所有MDE 1202 (如图16所示)都可以被存贮在安全数据库610中一个共用物理数据表内。并且,可以共用数据库访问进程来访问所有这些不同类型的数据结构。

[1217] 在较佳实施例中,PERC 808和用户权利表记录是两种类型的UDE 1200。还有其它类型的UDE 1200/MDE 1202,包括计量器、计量器跟踪、预算、预算跟踪、以及审核跟踪。如上所述,上述各种UDE/MDE的各种格式由DTD 1108中的SGML来定义。方法1000使用上述DTD 以正确地访问 UDE/MDE 1200、1202。

[1218] 安全数据库610保存两种类型的项:静态的和动态的。静态数据结构及其它项用于实质上为静态的信息。这包括加载模块1100、PERC808以及方法的许多部件。这些项不常更新,它们包含过期日期,用来防止“老”的信息拷贝被新接收到的条目所替换。在存储在安全数据库610中时,可使用特定于站点的安全数据库文件密钥对这些项进行加密,然后在将它们加载进SPE的时候用相同的密钥对之进行解密。

[1219] 动态的项用来支持必须频繁更新的安全条目。许多方法的UDE1200在每次使用之后都必须被更新并从SPE 503中写出。计量器和预算是两个常见的例子。使用过期日期不能有效地防止对预算UDE 1200旧拷贝的替换。为了保证这些频繁更新项的安全,当每次更新这些项的时候,将生成一个交易标记并将之纳入被加密的项中。系统将维护所有VDE项ID的清单以及每个项的当前交易标记,并把这些信息作为安全数据库610的一部分。

[1220] 图24示意了较佳实施例提供的用户数据元素(“UDE”)1200示例。如图24所示,较佳实施例中的UDE 1200含有公开头802、私有头804、以及数据区1206。每个上述用户数据元素1200的组织结构通常都由保存于DTD 1108中的SGML数据定义来定义,而该DTDl 108与操作该UDE 1200的一个或多个加载模块1100相关联。

[1221] 一旦将UDE 1200载入某个站点以后,最好使用一个特定于该站点的密钥对该M)E1200进行加密。该特定于站点的密钥屏蔽了桌确认标记,该确认标记可以由SPE 503从具有强加密特性的伪随机数序列中得到,在记录每次写回安全数据库610中的时候,该确认标记要被更新。这种技术可以合理地保障UDE 1200在下次需要被系统使用的时候没有被破坏或替换。

[1222] 计量器和预算可能是VDE 100中最常见的数据结构。它们用来对事件进行计量和记录,还可以对事件进行限制。计量器和预算数据结构由信息内容提供者或经过授权可以修改该信息的分发者/再分发者来决定。不过,计量器和预算通常都含有以通用头格式存放的共同信息(如用户标识、站点标识、以及相关标识信息)。

[1223] 信息内容提供者或分发者/再分发者可以规定每个计量器UDE和预算UDE的数据结构。尽管这些数据结构会随着特定应用的不同而变化,但某些数据结构比其它数据结构更具通用性。下表列出了 METER(计量器)和BUDGET(预算)方法中某些更为常见的数据结构:

[1224]

Figure CN101359350BD01241

[1225] 上表中的信息并非完整或详实,它只是试图示意可以保存于计量器和预算相关数据结构中信息类型示例。特定计量器和预算的实际数据结构由一个或多个DTD 1108来决定,该DTD 1108与创建和操作该数据结构的加载模块1100相关联。经过适当授权的团体可以扩展由VDE100的DTD解释程序590所允许的数据结构类型。

[1226] 图25示意一个特别有用的UDE 1200数据区1206示例。该数据区1206定义了一个可用来记录使用信息的“图”。举例而言,一个计量方法1000可以维护一个或多个“使用图”数据区1206。从保存一个或多个信息位的角度看,使用情况图可能是一个“使用位图”(即一维或多维位图),上述信息位对应于使用的一个或多个种类或类别。在引用以前的使用方面,使用位图是一种有效的手段。例如,计量器方法1000可以利用使用图数据区来记录信息内容中用户已支付其使用的所有可应用部分,这样就可以提供一种十分有效和灵活的方法,以允许后续用户使用信息内容的相同部分。这种方法可以支持某些与VDE相关的安全性功能,例如“连续性”、“逻辑相关性”、“使用随机化”、以及其它使用类型。可为其它使用模式分析“使用图”(这些使用模式的例子包括数量的折扣,以及允许用户重新访问一个信息内容,而该用户以前已经支付了无限使用该信息内容的费用)。

[1227] 较佳实施例提供的“使用图”概念可以与“原子元素”概念结合。在较佳实施例中,可以以“原子元素”来计量对象300的使用。在较佳实施例中,涉及计量的“原子元素”定义了使用的一个单位,即该使用单位可作为一条“足够有效”的信息而被记录于一个计量器中。对构成“原子元素”的定义由对象300的制作者来决定。例如,可以将对象300中信息内容的一个“字节”定义为一个“原子元素”,也可将数据库的一个记录定义为一个“原子元素”,也可将电子出版书籍中的一章定义为一个“原子元素”。

[1228] 对象300可以带有重叠原子元素的多个集合。例如,对大量数据库中任一数据库的存取可被定义为一个“原子元素”。同时,大量数据库中任何一个的任意记录、记录字段、信息区段、以及/或者任意字节的存取都可被定义为一个“原子元素”。在一个电子出版的报纸中,每一文章的百字的篇幅都可以被定义为“原子元素”,同时,长度超过某一特定值的文章可以被定义为另一组“原子元素”。报纸的某些部分(如广告、分类部分等)可能不能映射到原子元素。

[1229] 较佳实施例为对象制作者提供了基本上无限的能力使之可以定义原子元素类型。某些原子元素定义可以非常灵活地支持种类繁多的信息内容使用类型。较佳实施例支持的某些原子元素类型包括:字节、记录、文件、区段、对象、大量字节、连续或相对连续的字节(或其它预定义的单位类型)、具有一定逻辑相关性的字节-这些逻辑相关字节所含内容在主题、位置或用户可定义的其它逻辑关系类型上存在着某些逻辑关系,等等。对象制作者最好可以灵活地定义原子元素的其它类型。

[1230] 本发明的较佳实施例提供了 EVENT(事件)方法,该方法可以在使用事件和原子元素之间提供映射。通常,对于为对象300定义的每一个不同原子元素集合,都有一个EVENT方法与之相对应。在许多情况下,对象300将含有至少另一类原子元素用以进行与计帐有关的计量,还含有至少另一种原子元素类型用以进行与计帐无关的计量(举例而言,这种计量用来检测欺诈行为、对登广告者进行计帐、以及/或者收集有关最终用户使用活动的数据)。

[1231] 在较佳实施例中,在有关使用的背景中,各EVENT方法执行两个功能:(I)它将一个受到访问的事件映射到含有零个或多个原子元素的集合;(2)它向一个或多个METER(计量)方法提供信息以计量对象使用。访问事件和原子元素之间的映射定义方式可采用许多形式,包括数学定义、表格、加载模块等等。当EVENT方法将一个访问请求映射到“零”个原子元素时,将不再根据适用的特定原子元素定义把用户访问的事件映射到任何原子元素。出现这种情况的一个例子是:对象所有者对基于上述访问进行使用计量不感兴趣(例如,其原因是该对象所有者认为这种访问从计量的角度看是无足轻重的)。

[1232] “使用图”技术可以利用“位图图象”来十分有效地保存历史使用信息。一幅使用图中的各个存贮元素可与原子元素相对应。使用图中的不同元素可与不同的原子元素相对应(如:一个图元素可能对应于大量的读进字节,另一个图元素可能对应于某个特定章节是否被打开,而另一个图元素可能对应于其它使用事件)。

[1233] 本发明较佳实施例所提供的使用图特征之一在于:图元素的意义至少部分地由使用图中该元素的位置所指定。因而,在较佳实施例提供的使用图中,由图元素指示或编码的信息是该图元素在图结构中的位置(或者是物理位置,或者是逻辑位置)的函数。举一个简单的例子,对于一本含有十二章的小说,其使用图可以包含十二个元素,每个元素对应于小说的一章。当用户打开第一章时,在对应于第一章的元素中,一个或多个位的数值将会发生改变(如设置成“I”)。在这个简单例子中,包含该小说的那个信息内容对象的所有者只对计量哪些章节已被用户打开感兴趣,当用户第一次打开某个章时,对应于该章的使用图元素可以被设置成“ I ”,并且不管该章又被用户打开了多少次,该元素都始终为“ I ”。只需简单的检查这张简洁紧凑的使用图,并确定哪些元素被置为“ I ”,对象所有者或其它感兴趣的VDE参与者就可以迅速有效地得知哪些章已被用户打开。

[1234] 假设信息内容所有者希望获知小说的每一章被用户打开多少次。在这种情况下,对于含有十二章的小说,该使用图可包含十二个元素,这些元素与小说的各章有一一对应关系。用户每次打开某一章,对应的METER方法将增加使用图中对应元素的值。采用这种方法,可以方便地得到小说每一章的使用记录。

[1235] 使用图中元素的位置可编码一个多变量函数。例如,可以将使用图中的元素组织成一个二维数组,如图25B所示。不同的数组坐标可以对对应于自变量,如原子元素和时间。举例而言,假设某个信息内容对象所有者分发的对象含有一组录音节目。进一步假设该信息内容对象所有者希望跟踪这组录音节目中每一个节目被用户收听的次数,而且他还希望跟踪这组节目按月的使用情况。因而,假设该信息内容对象所有者希望了解用户在一月 份按照一个节目接一个节目的次序对每个节目的收听次数,类似地,他还希望了解在二月份、三月份等的相同使用情况。在这种情况下,使用图(参看图25B)可以被定义成元素的二维数组。该数组的其中一维可以编码音频节目编号,另一维可以编码该年的月份。在一月份,对应的METER方法将在数组“一月”的列中增加数组元素的值,作为录音节目的编号的函数。选择哪一个元素递增。当一月份到头以后,METER方法可能将停止写入“一月”这一列内的数组元素,转而写入二月份的数组元素集合,此时它仍旧作为录音节目的编号的函数来选择该列中的相应数组元素。上述的概念可以被扩展到N维,编码N个不同变量。

[1236] 因此,在引用以前的使用方面,使用图是一种有效的手段。它们可以提供某些有关VDE的安全功能,例如它可以用来检查:连续性(包括相对连续性)、逻辑相关性(包括相对逻辑相关性)、使用随机化、以及对其它使用模式。例如,用户对信息内容的随机使用的程度或特征可能会潜在地反映了用户打算绕过VDE信息内容预算限额的企图。某个用户或某组用户可能利用多次交互会话提取信息内容,他们所采取的方式可能不会对该信息内容在连续性、逻辑相关性或数量限制方面造成破坏,但这种方式仍将某个给定的、有价值信息内容中的部分或全部素材重新创建。使用图可以用来分析确定其它使用模式以便进行适当的定价,例如,在用户使用特定数量的任何或某些原子元素之后给予用户数量折扣。还有一个用途是允许用户重新访问一个特定对象,该用户以前已经支付了无限使用该对象(或经过某个特定时间后可无限使用该对象)的费用。其它对使用图的有用分析还可以包括对给定原子元素的大量使用给予折扣。

[1237] 图计量器的另一个例子包括为用户已支付了使用费用的所有适用原子元素(或者,用户已经使用过这些原子元素并经过了计量,不过可能还未要求或支付使用费)保存一个记录。这种使用图将提供一种十分有效和灵活的方法,以支持后续用户使用相同的原子元素。

[1238] 进一步的使用图可用来探测对相同对象的欺诈性使用。例如,可以适当地保存对象,以保证决不发生对该对象较长数据块的顺序访问。METER方法可以在任何规定的时间增量内记录对所有适用原子元素的访问,此处的时间增量可以是(举例来说)十分钟、一小时、一天、一个月、一年、或其它时间期限。在规定的时间增量末尾,可以对使用图进行分析,以检查是否存在所访问的数据块的超长连续组。并且/或者在每次开始访问所适用的原子元素时对使用图进行分析。每次进行了这种基于持续时间的分析后,如果没有发现欺诈性访问,则可以清除(或部分清除)使用图,同时映射进程可以完全或部分地重新开始刚才的工作。如果怀疑出现了或确实检测到了欺诈性访问,将记录此信息,同时停止对象的使用。举例而言,可要求用户与信息内容提供者联系,而该信息内容提供者将进一步分析使用信息,以决定是否允许用户继续使用下去。

[1239] 图25C示意了一种特定类型的“宽位图”使用记录1206,其中,每个表项对应于在一段特定时间的使用(如本月的使用、上月的使用、上上月的使用等)。于是,所示的使用记录含有“标志”或字段1206的数组,在这个特定的例子中,该数组中的每一个元素都用来指定在不同时间段中的使用。当一个时间段到期后,该数组中的所有元素1206将被移位一个位置,因而经过一系列时间段后的使用信息(或用户访问权的购买)可以由一系列连续数组元素反映。在图25C所示的特定的例子中,整个宽数组1206每个月移动一个数组位置,其中最老的数组元素被删除,而新的数组元素被“拨”入对应于当前时间段的新数组图。在本例中,记录1206对在本月及紧邻本月的前5个月中所发生的使用访问权和/或其它与使 用相关的行为进行跟踪。对应的计帐过程和/或计帐方法406将对该图进行检查,并基于特定公式确定当前使用中与计帐和/或安全性监测有关的使用,此处的该公式使用保存该记录中的使用数据;及更新该宽记录以标记出适当的数组元素,表示对这些数组元素进行过使用,等等。宽位图还可以用于许多其它目的,例如维护逐个元素的使用计数,或上述的连续性、相关性等功能,或某些功能的组合。

[1240] 可以在任何频率上产生审核跟踪图,该频率取决于控制、计量、预算和计帐方法,以及与这些方法相关的加载模块。审核跟踪记录的结构与计量和预算的数据结构相似,除了包含导致其创建的使用事件之外,审核跟踪记录还可以包含特定于用户的信息。象计量和预算一样,审核跟踪的格式是动态的,该格式由信息内容提供者或其授权受让者定义,其基本元素类型与上表中计量和预算所使用的相同。除了这些类型以外,下表列出了审核跟踪中可能出现的其它重要数据字段示例:

[1241]

Figure CN101359350BD01281

程可能(举例来说)要受特定加载模块的控制,该加载模块创建了各个审核跟踪记录。

[1243] 许可记录综述

[1244] 从图16中还可以看到,可以将PERC 808作为安全数据库610的一部分进行保存。许可记录(“PERC”)808在较佳实施例VDE 100所提供的数据驱动控制层次中处于最高层。对于每一个由VDE 100分发的信息和/或交易的信息内容,都有至少一个相对应的PERC808。因而,在较佳实施例中,对于每个VDE对象300至少存在一个PERC808。某些对象可带有多个对应的PERC 808。PERC 808控制访问和/或操作许可的分发方式、以及/或者信息内容和/或其它信息的使用方式。PERC 808还为每个访问信息内容和/或其它信息的参与者规定了 “权利”。

[1245] 在较佳实施例中,任何用户在许可记录808传递给他之前是不能使用或访问VDE对象的。如上所述,可以将许可记录808作为移动对象860的一部分传递,也可以将它独立传递(例如在管理对象中)。一个电子设备600只有在带有相应PERC 808的时候才能够访问一个对象,并且只能使用PERC中控制结构所允许的对象和相关信息。

[1246] 简单地说,PERC 808存贮的信息与方法、备选方法、解密密钥以及涉及对应VDE对象300的权利有关。

[1247] PERC 808含有定义了高层操作类别或种类的控制结构。这些高层类别称为“权利”。而“权利”控制结构又提供了对“方法” 1000进行引用的内部控制结构。较佳实施例PERC 808的内部结构对“方法”进行组织,这些方法用来对对象或相关控制结构执行所有许可的操作(包括对PERC本身执行操作)。例如,PERC 808含有对象的解密密钥,而对密钥的使用则由特定方法来控制,PERC需要使用上述方法来执行与履行“权利”相关的操作。

[1248] 通常在创建对象的同时创建该对象的PERC 808,而以后对PERC的实质修改-如果允许进行这些修改的话-则是由与某些操作相关联的方法来控制,这些方法使用了由同一(或不同)PERC定义的分发权利。

[1249] 图22示意了较佳实施例提供的PERC 808示例的内部结构。所示的所有结构都代表(或引用)了一组方法,这些方法用来以某种特定方式处理对应的对象。PERC 808被组织成一个层次化结构,下面列出了该层次化结构中基本元素:

[1250] “权利”记录906

[1251] “控制集合”914

[1252] “必要方法”记录920

[1253] “备选必要方法”924

[1254] PERC 808层次化结构还可以含有其它元素,这些元素描述了一些规则和备选规贝U,这些规则和备选规则用来支持规则集合的协商及智能对象的控制信息,以及利用私有信息过滤器对用户私有信息进行保护的控制信息。这些可选的元素可包括:

[1255] 可选权利记录

[1256] 可选控制集合

[1257] 可选方法记录

[1258] 许可的权利记录

[1259] 许可的权利控制集合

[1260] 许可的方法记录[1261] 必要DTD说明

[1262] 可选DTD说明

[1263] 许可DTD说明

[1264] 这些可选的字段可以控制其它进程,这些进程将有关其操作的协商和决定部分地建立于其字段的内容之上。权利协商、智能对象控制信息、以及相关进程等都可以使用这些字段以便对它们的操作进行更加精确地控制。

[1265] 图26所示的PERC 808包含PERC头900、CSO ( “控制集合0”)902、私有体密钥904、以及一个或多个权利子记录906。较佳实施例中的控制集合0 902含有的信息通用于 与对象300相关的一个或多个“权利”。例如,特定“事件”方法对于使用权利、提取权利和/或其它权利来说可以是相同的。在这种情况下,“控制集合0”902可以引用这个对多种“权利”来说都相同的事件。提供“控制集合0”902实际上是一种优化措施,因为这样,就可能把通用事件的不同实例保存在PERC 808的多个“权利”记录906的各个之中。

[1266] 每个权利记录906都定义了对应于某个对象的一个不同的“权利”。“权利”记录906是PERC 808结构中的最高层次。在PERC 808中可以有若干不同的权利。一个“权利”代表了一种主要的功能划分,这种功能划分是VDE 100基本体系结构中的某个参与者所需要的。例如,使用对象的权利以及分发对象使用权的权利是VDE 100中主要的功能集合。某些可能的权利包括:对信息内容的访问、分发信息内容访问权的许可、对有关信息内容和/或控制结构的审核跟踪进行读取和处理的能力、进行交易的权利-此处的交易可以也可以不与信息内容和/或相关控制结构有关(这些交易的例子有:金融交易、产品目录购买、税收、EDI交易,等等)、以及修改部分或全部PERC内部结构的能力-该PERC是为向其它用户分发而创建的。对于PERC所允许的每一类对象访问/使用权利,PERC 808都带有一个权利记录906。

[1267] 通常,对于VDE最终用户来说,最常得到许可的权利是使用权。其它类型的权利包括“提取权”、访问最终用户审核跟踪信息的“审核权”、以及分发对象的“分发权”。上述各种不同权利可以在不同的权利记录906中体现出来(或者,对应于某个对象的不同PERC808可以用来准许不同的权利)。

[1268] 每个权利记录906都含有权利记录头908、CSR ( “权利控制集合”)910、一个或多个“权利密钥”912、以及一个或多个“控制集合”914。每个“权利”记录906都含有一个或多个控制集合914,控制集合914或者是必须的或者是可选的备选方案,它们用来在该“权利”的行使过程中对对象进行控制。因而“权利”906内部的下一层即是控制集合914,控制集合914又各含有控制集合头916、控制方法918、以及一个或多个必要方法记录920。每个必要方法记录920又都含有一个必要方法头922以及一个或多个备选必要方法924。

[1269] VDE 100中的控制集合914有两种类型:通用必要控制集合(Common requiredcontrol Set)-其标记为“控制集合0”或“权利控制集合”、以及一组备选控制集合(control Set Option)。“控制集合0”902含有必要方法的一个清单,这些必要方法为所有备选控制集合所通用,所以该通用必要方法不必在每个备选控制集合中都复制一份。“权利控制集合”(“CSR”)910含有给定权利中的相同控制集合清单。因而如上所述,“控制集合0”以及任意“权利控制集合”是最优的方案。通过列出备选控制集合中的所有通用必要方法并且略去“控制集合0”以及任意“权利控制集合”就可以实现各控制集合的相同功能。[1270] 备选控制集合之一、“控制集合O”、以及适当的“权利控制集合”这三者共同组成了行使一项权利所必须的完整控制集合。

[1271] 每个备选控制集合都含有必要方法1000的一个清单,并代表了行使权利的不同方式。在较佳实施例中,在任一时刻,可能的完整控制集合914中只有一个控制集合用来行使一项权利。

[1272] 每个控制集合914含有足够多的必要方法记录920用来满足制作者和/或分发者行使一项权利的所有要求。可以支持以多种方式行使一项权利,也可以支持用多个控制集合控制给定权利的行使方式。举一个例子,单个控制集合914可以要求多个计量和预算方法读取对象的信息内容,也可以要求不同的计量和预算方法打印对象的信息内容。读和打印对象的信息内容都可以在单个控制集合914中加以控制。

[1273] 或者,两个不同的备选控制集合可以支持读对象的信息内容,其中一个备选控制集合用来支持对所读字节数的计量和预算,另一个备选控制集合用来支持对所读段落数的计量和预算。在一个时刻这两个备选控制集合中有一个活跃。 [1274] 通常,每个控制集合914都引用一个相关方法集合,而不同的控制集合可以提供不同的备用方法集合。例如,一个控制集合914可代表一个特殊类型的计量方法,而另一个控制集合则可代表一个完全不同的特殊计量方法。

[1275] 控制集合914中的下一层次是必要方法记录920。在较佳实施例中,方法记录920包含或引用方法1000。方法1000包含一组“事件”、对与这些事件相关的加载模块的引用、静态数据、以及对安全数据库610的引用,其中对安全数据库610的引用是用来自动检索处理事件可能所需的任何其它独立可传递数据元素(如UDE)。控制集合914包含必要方法的一个清单,在行使一项特定权利(即处理与权利相关的事件)时必须使用这些必要方法。列在控制集合914中的必要方法记录920表明了必须存在一个方法以便履行该控制集合所支持的权利。必要方法可引用下面将要讲到的“加载模块”1100。简要地说,加载模块1100是一段可执行代码,它可用来执行必要方法。

[1276] 每个控制集合914都可带有一个控制方法记录918作为其必要方法之一。被引用的控制方法可以定义某些或全部不同方法1000之间的关系,这些方法由控制集合906定义。例如,一个控制方法可以表明哪些必要方法要按功能组织在一起以便处理特定的事件,以及表明处理必要方法的次序。于是,一个控制方法可指定由记录920 (a) (I)⑴所引用的必要方法是第一个应该被调用的方法,并且其输出要送到由记录920(a) (I) (ii)所引用的必要方法,依次类推。采用这种方式,一个计量方法可以被连接到一个或多个计帐方法,而该计帐方法由可以被单独连接到不同的预算方法,等等。

[1277] 必要方法记录920指定了一个或多个备选必要方法924。在较佳实施例PERC 808的控制结构中,备选必要方法处于最低层次。通过将必要方法参数化,并在独立于必要方法的前提下指定备选必要方法924,就有可能在许多不同情况下对必要方法进行重用。

[1278] 例如,必要方法记录920可以表明,必须从备选必要方法清单的预算方法ID清单中为该必要方法选择一个实际的预算方法ID。本例中的必要方法记录920不包含有关所需方法类型信息的方法ID,它只是表明需要一个方法。备选必要方法924含有特定方法的方法ID,该特定方法在所述备选必要方法被选中的时候将投入使用。作为一种进一步的优化方案,如果对于指定的必要方法只存在一个备选必要方法,则可以保存实际的方法ID。这样可以缩减这一数据结构的大小。

[1279] PERC 808还包含对象300的基本解密密钥,以及其它与“权利”结合使用的密钥(例如这些密钥用来加密和/或解密审核跟踪记录)。它可以包含用于对象信息内容的密钥,或者它包含用来解密对象某些部分的密钥,而这些对象部分又可包含用来解密对象的信息内容的其它密钥。对这些密钥的使用由相同“权利”906中的控制集合914来控制,该“权利” 906包含在PERC 808之中。。

[1280] 详细地说,图26示意了 PERC 808包含私有体密钥904以及权利密钥912。私有体密钥904用来对包含在对应VDE对象300中的私有体806所含信息进行解密。举例来说,这种信息可包括方法1000、加载模块1100和/或M)E 1200。在较佳实施例中,权利密钥912是行使一项权利所用的密钥。举例来说,这种权利密钥912可含有某些解密密钥,这些解密密钥允许由PERC 808指定的某个方法对信息内容进行解密,以便由VDE节点向最终用户发 布该信息内容。在较佳实施例中,这些权利密钥912对于对象300来说是唯一的,对 其的使用最好由较佳实施例中的预算进行控制。

[1281] PERC 808的详细举例

[1282] 图26A和26B示意了较佳实施例PERC 808的一个例子。在本例中,PERC头900包含:

[1283] 站点记录号926

[1284] 字段928,它规定了私有体密钥块的长度

[1285] 字段930,它规定了 PERC的长度

[1286] 过期日期/时间字段932,它规定了 PERC的过期日期和/或时间

[1287] 上次修改日期/时间字段934,它规定了上次修改PERC的日期和/或时间

[1288] 原始分发者标识字段936,它表明了 PERC和/或相应对象的原始分发者

[1289] 上次分发者标识字段938,它表明了 PERC和/或相应对象的上次分发者

[1290] 对象ID字段940,它标识了相应的VDE对象300

[1291] 字段942,它为该记录类别指定了 PERC和/或实例ID的类别和/或类型,用以区分类型相同但细节不同的PERC。

[1292] 字段944,它指定了 PERC中“权利”子记录904的数目确认标记948

[1293] 图26a,26b所示的PERC 808还包含私有体密钥,它们存放在私有体密钥块950中。

[1294] 该PERC 808包含了一个控制集合0子记录914(0),该子记录914(0)可通用于PERC中的所有权利906。该控制集合0子记录914(0)可以含有下列字段:

[1295] 长度字段952,它规定了该控制集合0记录的长度

[1296] 字段954,它规定了该控制集合中必要方法记录920的数目

[1297] 访问标记字段956,它规定了一个访问标记以控制对该记录的修改,以及

[1298] 一个或多个必要方法记录920

[1299] 每个必要方法记录920又可含有:

[1300] 长度字段958,它规定了该必要方法记录的长度

[1301] 字段960,它规定了该必要方法记录920中备选方法记录的数目

[1302] 访问标记字段962,它规定了一个访问标记以控制对该记录的修改,以及[1303] 一个或多个备选方法记录924

[1304] 每个备选方法子记录924可包含:

[1305] 长度字段964,它规定了该备选方法记录的长度

[1306] 长度字段966,它规定了对应于该备选方法记录的数据区(如果有的话)长度

[1307] 方法ID字段968,它指定了一个方法ID (如类型/所有者/类别/实例)

[1308] 关联标记字段970,指定了一个关联标记用来与字段968指定的方法建立关联。

[1309] 访问标记字段972,它规定了一个访问标记以控制对本记录的修改

[1310] 方法特有的属性字段974

[1311] 数据区976

[1312] 用于校验目的的校验值字段978

[1313] 在本例中,PERC 808还包含一个或多个权利记录906,以及一个全局校验值字段980。图23b是图16a所示的权利记录906的一个例子。在这个特定例子中,权利记录906a包含一个权利记录头908,该头908又包含:

[1314] 长度字段982,它规定了权利密钥块912的长度

[1315] 长度字段984,它规定了权利记录908的长度

[1316] 过期日期/时间字段986,它规定了权利记录的过期日期和/或时间

[1317] 权利ID字段988,它标识了一个权利

[1318] 数目字段990,它规定了权利字段906中控制集合914的数目

[1319] 访问标记字段992,它规定了一个访问标记以控制对本权利记录的修改

[1320] 本例中的权利记录906含有:

[1321] 本权利的控制集合(CSR) 910

[1322] 权利密钥块912

[1323] —个或多个控制集合914,以及 [1324] 校验值字段994

[1325] 对象注册

[1326] 再请参看图16,安全数据库610提供了一些数据结构用以支持对“已注册”对象的“查找”机制。这种“查找”机制允许电子设备600以安全的方式将VDE对象300与PERC808、方法1000以及加载模块1100联系起来。在较佳实施例中,这种查找机制部分地建立在对象注册450所含的数据结构之上。

[1327] 在一个实施例中,对象注册450包含下列的表格:

[1328] +对象注册表460

[1329] 今主题表462

[1330] 今用户权利表(“URT”)464

[1331] 今管理事件日志442

[1332] 今发送表444,以及

[1333] + 接收表 446

[1334] 在该示意性实施例中,对象注册460是某些信息的一个数据库,这些信息涉及注册的VDE对象300以及与这些对象有关的用户及用户组的权利。当电子设备600收到一个含有新预算或加载模块1100的对象300时,该电子设备通常需要将该对象所含的信息添加到安全数据库610中。而且,当任何新VDE对象300到达电子设备600时,该电子设备都要在对象注册450中“注册”该对象,以便允许该对象被访问。在较佳实施例中,每当电子设备600 “注册”一个新对象时,将创建该对象的清单和记录。该对象的信息可以从其加密的私有头、对象体、以及加密名字服务记录中获取。该信息可以由SPE 503从对象中提取或导出,然后以加密记录的形式存放在安全数据库610中。

[1335] 在一个实施例中,对象注册表460包含对保存在对象存储器(仓库)728中的对象进行标识的信息。在本实施例中,这些保存在对象存储器728中的VDE对象300并非一定是安全数据库610 —部分,这是因为,对象通常带有其自身的安全性(这些安全性是必要的并且是所要求的),并且是使用与维护安全数据库所用的机制不同的机制维护的。虽然VDE对象300可能不一定严格地作为安全数据库610的一部分,但对象注册450 (具体说就是对象注册表460)引用了对象,从而是通过引用的形式把对象包含进了安全数据库中。在较佳实施例中,任何VDE对象300,在其被正确注册并在对象注册表460中保存了一条相应注册记录之前,是禁止电子设备600使用的。 [1336] 在本实施例中,主题表462在对象注册表460引用的对象与电子设备600的用户(或用户组)之间建立对应关系。主题表462提供了访问控制表(“ACL”)的许多属性。这一点将在后面进行介绍。

[1337] 在本实施例中,主题表462已经给出了特定用户或用户组与对象的组合信息,而用户权利表464则提供了特定于上述组合的许可以及其它信息。在本实施例中,许可记录808 (图16示意了许可记录808,许可记录808存放在安全数据库610中)可以为特定的对象-用户组合提供全面的许可控制。根据(举例来说)用户在对象注册交互作用中所做的选择,用户权利表464中的记录可以指定上述许可控制体系中的一个子集。

[1338] 管理事件日志442、发送表444、以及接收表446提供有关VDE对象300接收和交付的信息。这些数据结构跟踪由电子设备600发送或接收的管理对象,包括(举例来说)以概要和详情的形式的管理对象的目的和行为。简而言之,发送表444为电子设备600发送(或计划发送)到其它VDE参与者的每个管理对象保存一个发送记录。本实施例中的接收表446为电子设备600接收(或计划接收)的各管理对象保存一个接收记录。管理事件日志442为每个已发送的和每个已接收的管理对象保存一个事件日志,并可包含每个特殊事件的有关详情,该特殊事件由接收到的管理对象指定。

[1339] 管理对象的发送和接收

[1340] 图27不意了发送表444的详细格式不例。在较佳实施例中,发送表444包含头444A以及任意数目的发送记录445。头444A含有用来维护发送表444的信息。发送表444中的每个发送记录445都提供了与某个发送事件有关的详细情况(即,或者是一个已完成发送,或者是一个计划中的发送,前者表示已向另一个VDE参与者发送一个管理对象,后者表示正计划发送该管理对象)。

[1341 ] 在安全数据库610的实施例中,发送表头444A可以包含一个站点记录号444A (I)、用户(或组)ID 444A (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)所引用的“最先”向外发送记录提供确认。可以提供其它确认标记,以便对计划发送记录进行确认。

[1342] 所示的发送记录444(1)含有一个站点记录号445(1) (A)。它还包含最先和最末计划发送时间/日期445(1) (B),445 (I) (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 (I)(J),445 (I) (K)可以引用在一个链表中的“前一个”和“后一个”发送记录(在较佳实施例中,可有两个链表,一个用于已完成的发送记录,另一个用于计划发送记录)。字段445(1) (L)-445 (I) (P)分别向下列记录提供确认标记:从头444么、向指针445(1) (F)指向的;管理事件日志442中的某个记录从头444A向字段445 (I) (G)引用的某个名字服务记录;从字段445 (I) (J)引用的前一个记录;以及对字段445 (I) (K)引用的下一个记录。校验值字段445(1) (Q)可用来校验发送记录445。

[1343] 图28不意了接收表446的一个可能的详细的格式不例。在一个实施例中,接收表446的结构与图27中发送表444的结构相似。于是,(举例来说)接收表446可含有一个头446a以及多个接收记录447,每个接收记录都包含有关管理对象接收或计划接收的详细情况。接收表446可包含两个链表,一个链表用于已完成的接收,另一个用于计划的接收。每个接收表记录447都引用了名字服务记录表452中的一个表项,它指定了一个管理对象发送者,并且每个接收表记录447都指向管理事件日志442中一个表项。接收记录470还可以包含与计划和/或已完成的接收有关的附加详情(如计划的或实际的接收日期/时间,接收目的以及接收状态),并且这些有关详情的字段每一个都可以包含确认标记,用来确认对其它安全数据库记录的引用。

[1344] 图29示意了管理事件日志442的详细格式示例。在较佳实施例中,管理事件日志442对每一个已发送的管理对象和已接收的管理对象都保存一个事件日志记录442 (I). . . 442 (N)。每个管理事件日志记录可包括头443a和I个到N个的子记录442 (J)(I)…442 (J) (N)。在较佳实施例中,头443a可包含站点记录号字段443A (I)、记录长度字段443A(2)、管理对象标识字段443A(3)、指定了事件数的字段443A(4)、对发送表444或接收表446发来的引用进行确认的确认标记443A(5)、以及校验和字段443A(6)。由字段443A(4)指定的事件数目对应于管理事件日志记录442 (J)中的子记录442 (J)(I)... 442 (J) (N)的数目。每个上述子记录都指定了与特定“事件”有关的信息,该特定“事件”受到字段443 (A) (3)指定的管理对象的影响,或者与之相对应。管理事件被保存在管理事件日志442中,以支持对系统已经发送或接收的管理对象进行重建(及构成或处理的准备)。这样,当某个管理对象丢失后就可以在以后对之重建。

[1345] 每个子记录可包含:子记录长度字段442 (J) (I) (a)、数据区长度字段442 (J) (I)(b)、事件 ID 字段 442 (J) (I) (C)、记录类型字段 442 (J) (I) (d)、记录 ID 字段 442 (J) (I) (e)、数据区字段442 (J) (I) (f)、以及校验值字段442 (J) (I) (g)。数据区字段442 (J) (I) (f)可以用来表明安全数据库610中哪些信息被事件标识字段442 (J) (I) (c)所指定的事件所影响,或者添加哪些新的安全数据库条目,它还可以用来指定事件的输出。

[1346] 对应于每个存放在对象存储器(仓库)728中的VDE对象300,较佳实施例中的对象注册表460都包含一个相应记录。当一个新对象(如通过重定向器684)到达或被检测到的时候,较佳实施例电子设备600将“注册”该对象,其步骤是:创建一个相应的对象注册记录并将之保存在对象注册表460中。在较佳实施例中,对象注册表存贮的信息具有用户无关性,这些信息只依赖于在给定的VDE电子设备600上注册的对象。注册活动通常由与 对象相关的一个REGISTER(注册)方法进行管理。

[1347] 在本例中,主题表462在用户(或用户组)与注册的对象之间建立关联。本例中的主题表462执行了访问控制表的功能,即规定哪些用户有权访问哪些已注册VDE对象300。

[1348] 如上所述,安全数据库610对每个已注册的VDE对象300均至少保存一个PERC808。PERC 808指定了一组权利,可以行使这些权利以便使用或访问对应的VDE对象300。较佳实施例允许用户“定制”他们的访问权,即允许用户从相应PERC 808授权的权利中选择一个子集,并且/或者允许用户指定某些参数或选择,而这些参数或选择则对应于PERC808许可的某些或全部权利。在较佳实施例中,用户的选择存放用户权利表464中。用户权利表(URT) 464包含URT记录,每个URT记录都对应于一个用户(或用户组)。每个URT记录规定了用户对于相应VDE对象300作出的某些选择。这些用户选择可以独立地或者与PERC 808—起引用一个或多个方法1000,从而可以按照由URT记录中的选择所指定的方式来履行PERC 808赋予用户的权利。

[1349] 图30示意了上述各种表格是如何相互作用而提供安全数据库查找机制的。图30示意了对象注册表460,对象注册表460含有大量的对象注册记录460(1),460(2),...这些记录对应于存放在对象仓库728的VDE对象300 (I),300 (2)。图31示意了较佳实施例中对象注册表460的格式示例。对象注册记录460 (N)可含有下列的字段:

[1350] 站点记录号字段466 (I)

[1351] 对象类型字段466 (2)

[1352] 制作者ID字段466 (3)

[1353]对象 ID 字段 466 (4)

[1354] 引用字段466 (5),它引用了主题表462

[1355] 属性字段466 (6)

[1356] 最小注册时间间隔字段466 (7)

[1357] —个对应于主题表字段的标记466 (8),以及

[1358] 校验值字段466 (9)[1359] 站点记录号字段466 (I)指定了该对象注册记录460 (N)的站点记录号。在安全数据库610的一个实施例中,存放在该安全数据库中每个记录都由一个站点记录号来标记。可以将该站点记录号用在数据库查找进程之中,以便跟踪安全数据库610中的所有记录。

[1360] 对象类型字段466 (2)可以指定以注册对象300的类型(如信息内容对象、管理对象7等)。

[1361] 本例中的制作者ID字段466 (3)可以标识相应VDE对象300的制作者。

[1362] 本例中的对象ID字段466⑷唯一地标识了已注册的VDE对象300。

[1363] 在较佳实施例中,引用字段466(5)标识了主题表462中的一个记录。通过使用该引用,电子设备600可以确定在主题表462中列出的、有权访问相应VDE对象300的所有用户(或用户组)。标记466(8)用来确认使用字段466 (5)访问的主题表记录是对象注册记录460 (N)所要使用的正确记录。

[1364] 属性字段466 (6)可以保存与VDE对象300相对应的一个或多个属性或属性标志。

[1365] 最小注册时间间隔字段466(7)可以指定最终用户能够以什么样的频率以VDE对象300用户的身份向票据交换所服务、YDE管理员或VDE提供者重新注册。禁止频繁进行重新注册的一个理由是阻止用户重新使用移动对象的预算额,直到一段指定的时间过去为止。当对象所有者不希望重新注册的时候,最小注册时间间隔字段466(7)将保留为未用。

[1366] 校验值字段466 (9)包含有确认信息,用来检测对记录460 (N)的破坏或修改,从而保证该记录的安全性和完整性。在较佳实施例中,记录460 (N)中的多个或全部字段(以及 安全数据库610中的其它记录)可以被完全地或部分地加密并且/或者含有那些冗余地保存在每个记录中的字段(这些字段一次是以未加密形式保存,一次是以加密形式保存)。同一字段的加密和解密版本将在不同的时间被交叉检查,以探测破坏或修改记录的行为。

[1367] 如上所述,引用字段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)能够对I个到N个的主题记录470进行引用。

[1368] 本例中的主题注册表头信息468包含一个站点记录号字段468 (I),该站点记录号字段468 (I)唯一地标识出作为安全数据库610中一个记录的上述头。头468还可含有一个制作者ID字段468 (2),该字段拷贝了对象注册表制作者ID字段466 (3)中的内容。同样,主题注册表头468可含有一个对象ID字段468 (5),该字段则拷贝了对象注册表460中的对象ID字段466 (4)。上述字段468 (2),468 (5)使用户/对象注册记录明确地与特定VDE对象300相关联。

[1369] 头信息还可包含一个标记468 (7)以支持确认。在一个实施例中,用户/对象注册头468中的标记468(7)可以等同于指向该用户/对象注册头的对象注册记录460 (N)所含的标记466 (8)。上述标记468 (7)和466 (8)之间的对应关系可以用来确认对象注册记录和用户/对象注册头是相匹配的。

[1370] 用户/对象注册头468还含有一个原始分发者标识字段468 (3)和一个上次分发者标识字段468(4)。前者标识了对应于VDE对象300的原始分发者,后者表明了在该对象控制链中位于电子设备600收到该对象之前的上次分发者。

[1371] 头468还包含一个标记468 (8),该标记可以用来在该头和字段468 (6)引用的“第一”主题记录470 (I)之间进行确认。

[1372] 主题记录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)。

[1373] 用户(或用户组)标识字段472 (2)标识了一个用户或用户组,该用户或用户组有权使用由字段468 (5)标识的对象。因而,字段468 (5)和472 (2)共同组成了由主题表462 提供的访问控制表的核心。用户属性字段472(3)可以指定某些属性,这些属性涉及由字段472(2)指定的用户或用户组对对象300进行的使用/访问。通过向“链表”结构中添加主题记录470,可以将任意数目的不同用户或用户组添加到该访问控制表中(其中每个用户或用户组带有一组不同的属性472(3))。

[1374] 主题记录引用字段472(4)引用了用户权利表464中的一个或多个记录。图33示意了用户权利表记录464 (k)的优选格式示例。用户权利记录464 (k)可包含URT头474、记录权利头476、以及用户选择记录478的一个集合。URT头474可含有站点记录号字段、字段472⑵-该字段指定了 URT记录464 (k)中权利记录的数目、字段474 (3)-该字段引用了一个“第一个”权利记录(即指向了权利记录头476)、标记474(4)-该标记用来确认来自主题表462的查找、标记474 (5)-该标记用来确认对权利记录头476的查找、以及一个校验值字段 474(6)。

[1375] 较佳实施例中的权利记录头476可包含站点记录号字段476(1)、权利标识字段476(2)、引用“下一个”权利记录476(2)的字段476 (3)、引用用户选择记录478 (I)第一集合的字段476⑷、标记476 (5)-该标记用来与URT头标记474 (5)进行确认、标记476 (6)-该标记用来与用户选择记录标记478 (6)进行确认、以及一个校验值字段476 (7)。权利标识字段476 (2)可(举例来说)用来指定权利记录476传送的权利的类型(如使用权、分发权、读的权利、审核权等等)。

[1376] 由权利记录头476引用的一个或多个用户选择记录478表明了与访问和/或使用相应VDE对象300相对应的用户选择。通常,对于授予用户或用户组的每项权利,都有一个权利记录476与之相对应。这些权利控制上述用户或用户组对VDE对象300的使用。例如,用户可具有“访问”权、“提取”权,但没有“拷贝”权。其它由权利记录476控制的权利(在较佳实施例中,利用REGISTER (注册)方法从PERC 808中得到这些权利)包括分发权、审核权、以及定价权。当一个对象300向电子设备600注册并且向一个特定的用户和用户组注册以后,用户便可以在PERC 808中的各种使用方法中作出选择。例如,一个VDE对象300可带有两个必要的计量方法:一个用于计帐目的,一个用来累加数据,这些数据与用户使用的宣传材料有关。可给予用户各种计量/计帐方法的选择,例如:用VISA或MasterCard付帐、从两种计帐方法中任选其一-一种是基于从信息数据库中检索出的材料数量进行计帐,一种是基于使用时间进行计帐、或者上述两种计帐方法都选用。如果用户愿意将他检索的信息内容的某些细节提供给一个第三方时(例如,为人口统计目的),他可能会在时间和/或数量计帐方面得到某些折扣。在对象注册的时候和/或用户为该对象而注册的时候,将要求用户为得到的第一个计量选择一个特定的计量方法作为“生效计量方法”。VDE管理员可能会为用户缩小可用选择的范围,从PERC 808规定的原始选择集合中列出一个子集让用户选择。上述用户选择和配置的设置存放在用户选择记录480(1),480 (2),480 (N)中。用户选择记录不必明确地出现在用户权利表464中,相反,用户选择记录480可能(例如利用站点引用号)引用特定的VDE方法和/或用来参数化这些方法的信息。用户选择记录480对方法1000的上述引用需要经过存放在用户选择记录中的确认标记确认。因而,在较佳实施例中,用户选择记录480可选择一个或多个方法以用在相应VDE对象300中(如图27所示)。上述用户选择记录480本身可完全定义方法1000以及其它信息,这些信息是在为实现上述方法而创建适当部件组690中所用到的。作为另一种选择,用来引用用户权利记录464的用户/对象记录462也可以引用对应于VDE对象300的PERC 808,以便提供创建部件组690和/或访问VDE对象300所需的附加信息。例如,可以访问PERC 808以便获取某些MDE 1202,这些MDE 1202与所选方法、私有体和/或用于加密和/或解密对象的信息内容所用的权利密钥是相关的;也可以使用PERC 808以提供特定校验功能,该校验功能用来 确保用户权利记录传送的权利都是体现在PERC中的当前授权所允许的权利。

[1377] 在本发明的一个实施例中,可以使用一个传统的数据库引擎(engine)来保存和组织安全数据库610,并且,前述的加密层可处于传统数据库结构“之上”。不过,如果上述传统数据库引擎无法组织安全数据库610中的记录同时也无法支持前面讨论的安全性措施时,那么电子设备600可以采用加密的方式维护单独的索引结构。这些单独的索引结构可以由SPE 503来维护。本实施例将要求SPE 503解密索引并且搜索解密的索引快,以寻找适当“站点记录ID”或其它指针。然后SPE 503可请求传统数据库引擎以获取被指定的记录。如果不能对照记录表检验记录ID, SPE 503可能需要索取数据文件本身,以便它检索到所需的记录。然后SPE 503将执行适当的鉴别操作以保证该文件没有遭到破坏,并且返回的是正确的数据块。SPE 503不能简单地将上述索引传给传统数据库引擎(除非该数据库引擎本身是安全的),这是因为这样会允许一个错误的记录替换所需的记录。

[1378] 图34示意了如何使用上述的站点记录号来访问安全数据库610中各种数据结构。在本例中,安全数据库610还包含一个站点记录表482,该表保存了大量的站点记录号。在站点记录表482中保存的实际上是安全数据库610中所有记录的“主列表”。站点记录表482中保存的上述站点记录号允许对安全数据库610中任意记录进行访问。因而在站点记录表482中,某些站点记录可索引对象注册表460中的记录,站点记录表中其它站点记录号可索引用户/对象表462中的记录,站点记录表中又其它的站点记录号可访问URT 464中的记录,站点记录表中又有其它站点记录号可访问PERC 808。另外,每个方法核心1000’也都可包含一个站点记录号,以便站点记录表482可以访问它们。

[1379] 图34A示意了站点记录表482中站点记录482 (j)的示例。站点记录482 (j)可包含:字段484(I)-它表明了记录的类型;字段484(2)-它表明了该记录的所有者或创建者;“类别”字段484 (3)和“实例”字段484⑷-它们提供的信息与站点记录482 (j)指向的记录有关;特定描述符字段484(5)-它指示与本记录相关的特定描述符(如对象ID);本站点记录引用的表或其它数据结构的一个标识符484(6);在本数据结构内的引用和/或偏移484 (7)-它表明本记录的起始位置;确认标记484 (8)-它用来确认正在被查找的记录;以及校验值字段484 (9)。字段484 (6)和484 (7)共同提供了一种机制,通过这种机制,由站点记录484(j)引用的记录实际上是物理地位于安全数据库610中。

[1380] 安全数据库610的更新

[1381] 图35示意了一个进程1150,该进程可以被票据交换所、VDE管理员或其它VDE参与者用来更新由某个最终用户电子设备600维护的安全数据库610。例如,为了响应最终用户的请求,图35所示的进程1150可用来收集安全数据库610中的“审核跟踪”记录,以及/或者提供新的预算和许可(如PERC 808)。

[1382] 通常,最终用户电子设备600可起动与某个票据交换所通信(处理框1152)。该通信(举例来说)可自动建立或响应用户发出命令建立。该通信可以建立在电子高速公路108之上,或使用其它通信网络,如LAN、WAN、双向电缆,或使用电子设备之间的其它移动媒 体交换。交换管理信息的进程不一定发生在单个“在线”会话中,相反,该进程持续一段相当的时间,基于在相同的或不同的通信装置上的多次不同的单向和/或双向通信。不过,图35所示的进程1150是一个特定的例子,其中,最终用户电子设备600与其它VDE参与者(如某个票据交换所)通过电话线、网络、电子高速公路108等建立了双向、实时的交互式通信交换。

[1383] 最终用户电子设备600通常与一个特定的VDE管理员或票据交换所联系。特定票据交换所的身份取决于用户希望访问或已经访问的VDE对象300。例如,假设用户已经访问了一个特定的VDE对象300,并且他已经用光了继续访问所需的预算。用户可以发出一个请求,该请求使他的电子设备600自动与对上述特定对象负有责任的VDE管理员、分发者和/或财务票据交换所接触。在本例中,需要联系的合适VDE参与者的身份(举例来说)由UDE1200,MDE 1202、对象注册表460和/或主题表462中的信息来提供。电子设备600可能需要联系多个VDE参与者(如向某个参与者分发审核记录,从另一个参与者处获取另外的预算或其它许可,等等)。在某个例子中,联系1152可能要依据图27中的发送表444和图29中的管理事件日志442进行安排。

[1384] 一旦建立了联系以后,最终用户电子设备与票据交换所通常相互鉴别并同意使用某个会话密钥用来进行实时信息交换(处理框1154)。一旦建立好安全的连接以后,最终用户电子设备可(如根据发送表444)确定它是否有某些管理对象包含需要发送给该票据交换所的审核信息(判定框1156)。与多个VDE对象300相关的审核信息可放在同一管理对象中传送,或者不同管理对象可包含不同对象的审核信息。假设最终用户电子设备至少含有一个需要传送给该特定票据交换所的上述管理对象(判定框1156出口“是”),该电子设备通过已经建立好的安全实时通信将上述管理对象发送给票据交换所(处理框1158)。在一个实施例中,单个管理对象可发送带有多个VDE对象审核信息的管理对象,在该管理对象中,每个不同对象的审核信息处理一个单独“事件”。

[1385] 票据交换所可接收该管理对象,并对其内容进行处理以确定该内容是否是“有效的”和“合法的”。例如,票据交换所可分析其中所含的审核信息以判断该审核信息是否表明了对相应VDE对象300发生过不合理使用。作为分析的结果,该票据交换所将产生一个或多个响应的管理对象,然后将这些对象发送给最终用户电子设备600 (处理框1160)。最终用户电子设备600可执行某些事件处理,包括根据收到的管理对象对其安全数据库610和/或SPU 500的内容进行更新(处理框1162)。例如,如果票据交换所收到的审核信息是合法的,那么票据交换所将可向最终用户电子设备600发送一个管理对象,要求电子设备删除和/或压缩已经传送的审核信息。作为另一种选择或作为一种补充方式,票据交换所在本阶段可要求从最终用户电子设备600那里得到更多的信息(例如,要求重新传送在起始传送过程中受到破坏的某些信息,要求传送前面没有传送的附加信息,等等)。如果票据交换所根据接收到的审核信息检测出不合理使用行为,它可传送某个特定管理对象,该管理对象将取消或修改最终用户继续访问相关VDE对象300的权利。

[1386] 作为另一种选择或作为一种补充方式,票据交换所可向最终用户电子设备600发送一个管理对象,该管理对象命令电子设备向用户显示一条或多条消息。这些消息可将某些情况通知给用户,并且/或者要求用户提供附加信息。例如,该消息可能要求最终用户直接通过电话与票据交换所联系,或者要求最终用户解决某个指出的问题、输入一个PIN,或者通知用户与一个新的服务公司联系以便重新注册相关的VDE对象。作为另一种选择,上述消息可告诉用户:他需要获取该对象的新使用许可,并且可将花费、状态以及其它相关信 息通知给用户。

[1387] 在同一或不同的通信交换中,同一或不同的票据交换所可以处理最终用户对有关VDE对象300附加预算和/或许可的请求。例如,最终用户电子设备600 (例如,为响应用户输入的、希望访问特定VDE对象300的请求)可向票据交换所发送一个管理对象,请求所需的预算和/或其它许可(处理框1164)。如上所述,这种请求可以采用一个或多个管理对象的形式发送,例如,采用单个管理对象的形式,该管理对象带有多个“事件”,这些事件分别对应于同一或不同VDE对象300的多个所需预算和/或许可。票据交换所收到该请求以后可检查该最终用户的信用、财务记录、商业协议和/或审核历史,以确定是否应给予所请求的预算和/或许可。根据这些分析,票据交换所可能发送一个或多个响应的管理对象,使最终用户电子设备600更新其安全数据库以作为响应(处理框1166、1168)。该更新过程可包括(举例来说)将一个过期的PERC 808替换成一个新的,修改某个PERC 808以便提供更多的(或更少的)权利,等等。可以在相同或不同通信会话期间多次重复步骤1164-1168,以便进一步修改最终用户的安全数据库610。

[1388] 图36示意了如何将新记录或新元素插入到安全数据库610中。图35所示的加载进程1070在准备写入每个数据元素或项的时候首先对之进行检查,以确保这些数据元素没有被窜改、替代或替换。在如图35所示的进程1070中,第一步是查看当前用户或电子设备600是否被授权将该项插入到安全数据库610中(处理框1072)。在较佳实施例中,这个检测可以包括将相应方法1000或其它数据结构如UDE 1200等装入SPE 503 (或者使用已经装入的上述方法或数据结构),然后SPE 503判明用户是否得到了改动安全数据库610的授权(处理框1074)。如果用户得到批准可以改动安全数据库610,那么SPE 503可以检查准备添加到安全数据库中的元素的完整性,其方法是首先将该数据块解密(处理框1076),然后确定该数据块受否已被毁坏或破坏(处理框1078)。对该数据块检查的目的是要确保它是用预定的管理文件密钥进行正确解密的,同时还要确认其校验值。另外,可以比较公开和私有头ID标记(如果这些标记存在的话),以确保送来的是正确的元素而没有经过替换,并且将唯一的元素标记ID与预定的元素标识相比较。如果上述的任一检查出现失败,那么将自动拒绝该元素、对之进行纠错处理、等等。假设SPE 503发现该元素具有完整性,那么它将(举例来说)使用ー个新密钥(參看下面针对图37的讨论)重新加密该信息(处理框1080)。在同一步骤中,最好提供一个适当的标记,以便使该信息经过加密后由一个带有适当标记的安全防护层中所保护(处理框1082)。SPE 503可以保存上述适当标记信息,以便在将来再从安全数据库610中读出上述项时对之进行确认或鉴别(处理框1084)。然后,已经处于安全防护层中的安全元素便可以被存入安全数据库610中。

[1389] 图37示意了另一个进程1050。在较佳实施例中,该进程用来安全地访问存放在安全数据库610中的项。在较佳实施例中,SPE 503首先访问安全数据库610记录并从中读入项。SPE 503从安全数据库610中读取加密形式的上述信息,然后将之“解包”(处理框1052),方法是利用内部存放在SPU 500受保护的存贮器中的访问密钥将之进行解密(处理框1053)。在较佳实施例中,上述“解包”过程1052涉及将信息块送到加密/解密机522,同时还送去ー个管理文件密钥和其它解密所需的信息。解密机522可返回“明文”信息。然后SPE 503将检查该明文信息,以确保该对象的安全性没有受到损害,并且该对象是所需的正确对象(处理框1054)。然后SPE 503可检查所有的关联和访问标记,以确保读入的元素没有被替换,并防备其它安全隐患(处理框1054)。上述“检查”进程还有一部分要涉及 将从安全数据库610获取的标记与保存在SPU 500或受保护的存贮器中的标记进行对比检查(处理框1056)。上述保存在SPU 500中的标记可以从SPU的安全存贮器中访问(处理框1056),可以用这些标记进ー步检查目前已解包的对象。假设上述“检查”进程1054没有检查出任何异常现象(处理框1052还表明上述对象没有遭到毁坏或破坏),SPE 503便可访问或使用该项(处理框1058)。一旦使用完该项,如果对该项做过改动的话,SPE 503可能需要将它存放回安全数据库610。如果对该项做过改动,SPE 503将把该项按照它经过改动以后的格式送至加密/解密机522以便进行加密(处理框1060),同时要向加密/解密机522提供某些必要信息(例如同一或不同的管理文件密钥和数据)以便正确地加密上述对象。在该阶段中,可以利用ー个唯一的、新的标记和/或加密密钥来唯一地标记和/或加密该项的安全防护层(处理框1062,同时參看下面对图37所做的详细介绍)。SPE 503可在SPU 500的受保护存贮器中保留上述密钥和/或标记的副本(处理框1064),以便将来再从安全数据库610中读出上述项时,可以对之进行解密和确认。

[1390] 在较佳实施例中,用来解密安全数据库610记录的密钥单独地存放在SPU 500的受保护存贮器中。每个离开SPU 500的被更新索引和记录都将被打上时间戳,然后利用SPE503确定的某个唯一密钥进行加密。举例来说,可以在安全数据库610记录的首部以明文方式放置一个密钥标识码,以便SPE 503在下次检索该记录时能够确定采用哪ー个密钥。SPE503可以在其内部的一个列表中维护记录或索引的站点标识、与记录或索引相关的密钥标识码、以及实际密钥。在某些时刻,上述内部列表可能被填满。此时,SPE 503可以调用一个维护例程,该例程将安全数据库610中包含改动信息的项重新加密。该数据结构中包含改动信息的某些或全部条目将可被读入,经过解密,然后再用同一密钥加密。此后可将同一密钥标识码发布到这些项中,并将它们从SPE 503中写回到安全数据库610。SPE 503于是可清除含有项ID和相应密钥标识码的内部列表。然后它可以重新开始向每个新的或改动的项分配ー个不同的密钥和一个新的密钥标识码。通过上述进程,SPE 503能够保护安全数据库610中的数据结构(包括索引),避免老的项被替换以及当前项的索引被替换。该进程还使SPE 503能够对照预定标识的加密列表对接收到的条目的ID进行确认。

[1391] 图38中的流程图详细地示意了上述进程。每当ー个安全数据库610项被更新或修改,可以为该被更新项生成一个新的加密密钥,并使用新加密密钥进行加密,这样可以增加安全性,同时防止不合理地使用安全数据库610记录的后备拷贝。每个被更新安全数据库610记录的新密钥可以存放在SPU 500的安全存贮器中,带有该密钥所适用的安全数据库记录的ー个标志。

[1392] 对于SPE 503准备保存到安全数据库610中的每个新项,SPE 503都要生成ー个新的加密/解密密钥(处理框1086)。在将上述项存放到安全数据库之前,SPE 503要首先用该新密钥对上述记录进行加密(处理框1088)。SPE 503要确保保留上述密钥以便将来可以读入和解密上述记录。在较佳实施例中,这些解密密钥存放在受保护的非易失性存贮器(如NVRAM 534b)中。由于这种受保护存贮器容量较小,可能没有足够空间来容纳ー个新密钥。在较佳实施例中,上述情况由判定框1090来检查。如果没有足够空间来容纳ー个新密钥(或出现其它情況,如存放在该存贮器中的密钥的个数超过了预定的数目,计时器到吋, 等等),那么为解决该问题,较佳实施例将使用同一新密钥对安全数据库610中的其它记录进行重新加密,以便減少(或改变)投入使用的加密/解密密钥。于是,可能要从安全数据库610中读入ー个或多个安全数据库项,对它们进行解密,解密密钥用的是上次保存它们时对它们加密所用的老密钥。在较佳实施例中,首先选出ー个或多个“若密钥”,然后将所有使用该老密钥加密的安全数据库项读入并解密。此时,便可以将这些记录重新加密(处理框1094),使用的密钥是在处理框1086为新记录生成的新密钥。现在,这些用来加密其它记录的老密钥可以从SPU安全存储器中删除(处理框1096),而新密钥则可以替换其位置上(处理框1097)。只有在SPE 503确认安全数据库610中使用上述老密钥加密的所有记录已经被处理框1092读入并且由处理框1094使用新密钥重新加密之后,处理框1096才能够从安全存贮器中删除上述老密钥。现在,所有使用新密钥加密(或重新加密)的记录可以被保存到安全数据库610中(处理框1098)。如果判定框1090发现SPU 500的受保护存贮器中还有空间存放新密钥,那么处理框1092、1094、1096的操作就不再需要,相反SPE503只是简单地将新密钥保存到受保护存贮器中(处理框1097),并且将新加密的记录存储到安全数据库610中(处理框1098)。

[1393] 通过将安全数据库610记录划分成一个个“区段”可以进ー步提高安全数据库610文件的安全性。可以使用不同的加密/解密密钥来保护不同的“区段”。这种措施可以用来限制安全数据库610使用单个密钥加密的信息的数量。另ー种提高安全数据库610安全性的技术是用不同的密钥加密相同记录的不同部分,这样,为解密这样的记录就必须使用一个以上的密钥。

[1394] 安全数据库610的备份

[1395] 较佳实施例中的安全数据库610要周期地或按其它时间间隔进行备份,以保护安全数据库保存的信息。对许多VDE參与者来说,安全数据库中的信息可能具有重大价值。对安全数据库610的备份不能给用户带来大大的不便,也不能破坏任何安全性。

[1396] 可以在多种时刻检查是否需要对安全数据库610进行备份,例如:在电子设备600加电时、初始启动SPE 503时、在周期性的时间间隔、以及由SPE 503维护的“审核累计”值或其它概要服务信息超过了用户设置的或其它的阈值时。上述检查也可由某些准则所触发,这些准则可以由一个或多个信息内容发布者和/或分发者和/或票据交換所服务提供者和/或用户来创建。可以在适当时刻提示用户做备份,例如当用户没有做备份时,或者在某个特定时间,或者经过一定时间,或者超过一定的使用量之后。也可以自动进行备份而无需用户的干预。

[1397] 參看图8,可以用备份存贮设备668和存贮介质670 (如磁带)来存放备份信息。当然,任何非易失性的介质(如ー个或多个软磁盘、可写光盘、硬盘等等)也都可用来做备份存贮设备668。

[1398] 至少有两种备份安全数据库610的方案。第一种方案是“特定于站点的”,它使用SPU 500的安全性来支持备份信息的恢复。这种方法适用于安全数据库610由于某些原因受到破坏的情况,这些可能的原因有:ニ级存贮设备652故障,用户不留心对文件造成的破坏,或者其它可能对某些或全部安全数据库610造成破坏或毁坏的情況。上述第一种方案,即特定于站点的备份方案基于了这样ー种假设,即=STO 500还能够正确运行,并可用 来恢复备份信息。

[1399] 第二种备份方案假设用户的SPU 500不能继续工作并且需要替换或已经被替换。这种方案使ー个经授权的VDE管理员或其他经授权的VDE參与者能够访问所存储的备份信息,以防关键数据丢失,以及/或者帮助用户从错误中恢复。

[1400] 在图39所示的例子中,上述两种方案均由ROS 602执行的一些程序控制步骤所支持。图39示意了一个备份例程1250,该备份例程1250由电子设备600执行以便将安全数据库610 (以及其它信息)备份到备份存贮设备668中。如前所述,一旦备份过程开始,备份例程1250将产生ー个或多个备份密钥(处理框1252)。之后备份例程1250读入所有的安全数据库项,将它们进行解密(处理框1254),此时使用的解密密钥是向安全数据库610存放这些项之前对之加密所用的原始密钥。由于对于安全数据库610实例中的上述信息来说SPU 500通常是存放用来解密该信息的密钥的唯一站的地方,同时也由于备份例程1250所提供的第一种方案是假设SPU 500已经完全失效或毁坏,备份例程1250因而执行上述读取和解密步骤1254,其目的是使以后从备份做恢复时不需要知道SPU中的那些密钥。相反,备份例程1250用新生成的ー个备份密钥将每个安全数据库610项进行加密(处理框1256),并将加密后的项写入备份存贮设备668 (处理框1258)。上述进程将重复进行,直到安全数据库610中的所有项都被读入、解密、用ー个新生成的备份密钥进行加密、然后写回备份存贮设备668为止(由判定框1260对该条件进行检查)。

[1401] 较佳实施例还通过SPE概要服务管理器560从SPU 500的受保护存贮器中读出概要服务审核信息,并使用一个新生成的备份密钥对该信息进行加密,然后将该统计服务信息写入备份存贮设备668中(处理框1262)。

[1402] 最后,备份例程1250把处理框1252产生的并由处理框1256、1262用来加密的备份密钥保存在备份存储器668上。为此,它采用两种安全方法以便支持上述两种恢复方案。备份例程1250可以用另ー个或另ー些密钥对上述备份密钥(以及其它某些信息,如备份的时间或者可以标识本次备份的其它适当信息)进行加密,这样只有SPU 500才能解密(处理框1264)。然后这些经过加密的信息被写入备份存贮设备668 (处理框1264)。举例来说,该步骤可以包含多次加密过程,并使用ー个或多个公开密钥,这些公开密钥的对应私有密钥只有SPU 500知道。作为另ー种选择,可以不用公开密钥而是使用第二个备份密钥来做最后这次加密,这个第二备份密钥由SPU 500产生而且只保存在该SPU中。处理框1264最好进行多次加密以便使备份的安全性更加稳固,这样,通过破解用来保护备份密钥的加密过程以期突破上述备份的安全保护就变得更加困难了。虽然处理框1262将加密后的概要服务信息保存到了备份中,但是最好不要将在备份中保存SPU设备私有密钥、共享密钥、SPU代码、以及其它内部安全性信息,以防这些信息即使在加密的格式下也被用户获知。

[1403] 处理框1264保存的信息足以使执行(或至少部分执行)备份例程1250的同一SPU500能够恢复经过备份的信息。但是,这些信息只有对上述同一 SPU有用,而对除此之外的其它设备来说是毫无价值的,这是因为只有上述的SPU才知道用来保护备份密钥的特定密钥。为了复盖其他可能的情况,其中上述SPU 500无法进行恢复工作,考虑到这些情况,备份例程1250提供了附加的步骤(处理框1266),该步骤利用另外的一个或多个密钥来保护对备份密钥的保存,这些密钥可以被ー个经授权的VDE管理员所读取。例如,处理框1266可以使用一个“下载授权密钥”对备份密钥进行加密,而该“下载授权密钥”则是在SPU500 初始化的时候从ー个VDE管理员那里接收到的。被加密的备份密钥同样被写入备份存贮设备668中(处理框1266)。该方法可以用来在SPU 500失效的时候恢复备份文件。更加特别的是,对于某个VDE管理员来说,如果他知道由处理框1266使用的下载授权密钥(或其它密钥),那么他就可以恢复备份存贮设备668中的备份密钥,从而可以继续将经过备份的安全数据库610恢复到同一或不同的电子设备600中。

[1404] 在较佳实施例中,只有从ー个经过授权的VDE管理员那里得到备份授权之后,由备份例程1250保存在备份文件中的信息才能够被恢复。在大多数情况下,恢复过程只是简单地将安全数据库610进行恢复,同时对备份发生以后的任何使用进行记录。为了反映出上次备份以后的活动,该过程可要求用户与另外的提供者联系,以便向之传送审核和计帐数据,并且接收新的预算。为确定最近的使用行为,可把在SPU500中维护的当前概要服务信息与保存在备份中的概要服务信息做比较。

[1405] 在SPU 500失效的情况下,必须与一个授权的VDE管理员联系以便初始化更换SPU500,同时解密备份文件。这些进程考虑到了 SPU失效的处理以及向新SPU的升级。在恢复时,备份文件用来将必须的信息恢复到用户的系统中。在升级时,备份文件可以用来确认升级进程。

[1406] 在某些情况下,备份文件可以用来在电子设备600之间传递管理信息。但是,较佳实施例可禁止在具有适当授权的电子设备之间传输某些或者全部信息。可以将某些或者全部备份文件封装进管理对象中再进行传送,以供分析、传输等之用。

[1407] 现在举一个更为详细的例子来说明需要恢复备份文件的ー种情況。假设电子设备600出现硬盘故障或者其它事故从而导致部分或全部安全数据库610被抹掉或毁坏,不过假设SPU 500还能运行。SPU 500可含有恢复安全数据库610所需的全部信息(如密钥等)。但是,R0S602可禁止对安全数据库进行恢复,直到它从某个VDE管理员那里收到恢复授权为止。恢复授权信息可包含(举例来说)必须与SPE 503预期的值相匹配的一个“秘密数值”。如果需要的话,VDE管理员可能只有在收到SPU 500中的概要服务信息之后才提供上述恢复授权信息,其中,概要服务信息是放在供分析的管理对象中传输给该管理员的。在某些情况下,VDE管理员可要求将备份文件的(部分或完整)副本放在管理对象中传递过来。以检查是否用户有欺诈行为的迹象。一旦得到授权之后,恢复进程可能需要对恢复的预算记录等进行调整,以便反映出上次备份之后的行为,这一点前面已经讲过。

[1408] 图40示意了一个由程序控制的“恢复”例程1268,该恢复例程1268由电子设备600执行以便根据图38例程提供的备份来恢复安全数据库610。该恢复过程使用的场合可以是(举例来说):电子设备600已经失效,但是与ー个VDE管理员联系以后可以恢复或“重新初始化”该电子设备600吋。由于较佳实施例不允许SPU 500在没有得到VDE管理员授权的情况下就从备份中进行恢复,所以例程1268首先与ー个VDE管理员建立安全的通信,而该VDE管理员能够对恢复过程进行授权(处理框1270)。一旦SPU 500与VDE管理员互相鉴别对方之后(处理框1270的一部分),该VDE管理员可从SPU 500内部的非易失性存贮器中提取“正在进行的工作”和概要值(处理框1272)。VDE管理员可用这些提取出的信息来帮助确定(举例来说)是否出现了侵犯安全性的问题。VDE管理员还允许出现故障的SPU 500将其内容有效地“转储”给VDE管理员,从而使VDE管理员可以处理这些内容。SPU500可将这些信息加密、包装到ー个或多个管理对象中,然后再传递给VDE管理员。然后VDE管理员可要求SPU 500提供部分或全部当前安全数据库610的一份拷贝(处理框1274)。举例来说,该信息可由SPU 500包装到ー个或多个管理对象中,然后再发送给VDE管理员。收到该信息后,VDE管理员可以从备份卷中(即由图38处理框1262所保存的信息)读出概要服务审核信息以确定在备份的时候所保存的概要值和其它信息。通过察看由图38处理框1264所保存的信息,VDE管理员还可以确定备份时的时间和日期。

[1409] 此时VDE管理员可以根据从处理框1272以及备份中获得的信息恢复SPU 500中的概要值和其它信息(处理框1276)。例如,VDE管理员可能重新设置SPU内部概要值和计数器,使它们与上次备份的时候一致。VDE管理员可根据由处理框1272恢复的“正在进行的工作”、用上次备份以后经过的时间等对这些数值进行调整。其目的通常是尽量将SPU内部的值调整到如果未发生故障时它们现在应该具有的值。

[1410] 然后VDE管理员可授权SPU 500从备份文件中恢复安全数据库610(处理框1278)。该恢复进程将用备份中的记录替换安全数据库610的所有记录。在恢复进程中或恢复进程之后,根据需要VDE管理员可通过向SPU 500发送命令来调整这些记录。

[1411] 然后VDE管理员可根据恢复的数值来计算帐单(处理框1280),并执行其它操作以便从SPU故障时间中恢复(处理框1282)。其目的通常是计算用户的帐务并调整与失效电子设备600有关的其它VDE100值,这些值是上次备份之后到这次故障之前这段时间内所发生的使用。上述进程可包括下面的步骤:VDE管理员从其它VDE參与者那里得到在上述电子设备故障之前有关该电子设备使用的报告和其它信息,并将这些报告或信息与安全数据库备份相对比,以确定哪些使用或事件还没有经过记录。

[1412] 在一个可选的实施例中,SPU 500可带有充足的非易失性内部存贮器,从而可以存贮部分或全部安全数据库610。在该实施例中,这种附加的存贮器可以是ー个或多个集成电路,这些集成电路置于在ー个安全封装中,例如ー个防破坏金属盒或者某种可以容纳多个集成电路部件的芯片封装,这些封装可以阻止和/或揭露破坏企图,并且/或者可以在受到 破坏的时候,使部分或整个SPU 500或相关关键密钥和/或其它控制信息处于失效状态。此时可以使用图38所示的同一备份例程1250把这类信息做备份,唯一的区别是处理框1254可从SPU内部存贮器中读取安全数据库条目,并且在用备份密钥将它们加密之前不再需要将它们解密。[1413] 事件驱动的VDE进程

[1414] 如前所述,由较佳实施例权利操作系统(ROS) 602提供或在其管理之下的进程可以是“事件驱动”的。这种“事件驱动”功能方便了集成性和可扩展性。

[1415] “事件”是在某一时刻发生的某件事。事件的某些例子包括:用户在键盘上敲了某个键、消息或对象300的到来、计时器的到期、以及其它进程发来的请求。

[1416] 在较佳实施例中,ROS 602为响应ー个“事件”要执行ー个进程。为响应一个“事件”,ROS 602将动态地创建活跃进程和任务。例如,ROS 602为响应ー个事件可创建并执行ー个或多个部件组690,以便执行ー个或多个进程。一旦ROS 602对事件的响应结束,上述活跃进程和任务可能就終止。这种为响应事件而动态创建(和終止)任务的能力提供了很大的灵活性,它同时还允许使用有限的执行资源(如SPU500所提供的那种执行资源)在不同的上下文中执行实际无限多的不同进程。

[1417] 由干“事件”可以是任何类型的所发生情况,所以不同的事件就是无限多祥的。因 而,将事件分成不同类型必然是ー种概括。基于这个出发点,就可将较佳实施例所提供/支持的事件分成下面两大类:

[1418] •用户引发的事件

[1419] •系统引发的事件

[1420] 通常,“用户引发”的事件是归因于ー个用户(或ー个用户应用)的所发生情況。一个常见的“用户引发”事件是用户发出的、访问ー个对象300或其它VDE保护信息的请求(如通过按下键盘上的键或透明地使用重定向器684发出这些请求)。

[1421] “系统引发”的事件通常不归因于ー个用户。系统引发事件的例子包括:计时器到时-这表示需要将某些信息写回非易失性存贮器中;从其它电子设备600那里收到一条消息;以及由其它进程(该进程可以是为了响应ー个系统引发的事件和/或一个用户引发的事件而被启动的)产生的ー个服务调用。

[1422] 为响应ー个事件,由较佳实施例提供的ROS 602通过指定进程并执行该进程以便处理该事件。在较佳实施例中,这些进程是基于方法1000的。由于事件的类型无限多祥,较佳实施例于是支持无限多样的进程来处理事件。较佳实施例利用可独立交付的模块如方法核心1000’、加载模块1100、以及UDE 1200之类的数据结构来动态地创建部件组690,从而支持了上述灵活性。尽管要划分较佳实施例支持/提供的无限多样的进程,必然要采用概括的方式,这些进程仍然可被划分为下面两种类型:

[1423] •与使用VDE保护信息有关的进程

[1424] •与VDE管理有关的进程

[1425] “使用”和“管理”进程

[1426] “使用”进程总是以种种形式与使用VDE保护信息有夫。由较佳实施例提供的方法1000可以产生适当进程以创建和维护一条控制链,用该控制链来控制对VDE保护信息的使用。举ー个“使用”进程的具体例子,通过执行某个“使用”进程可以允许某个用户打开ー个VDE对象300并访问其内容。方法1000可以提供功能更为细化的、有关使用的进程,例如:(如果允许的话)向提出请求的用户发布信息内容,更新计量、预算、审核跟踪,等等。有关使用的进程通常由用户来启动,但是某些使用进程可能是由系统启动的。如果ー个事件触发了ー个与使用相关的VDE进程,那么该事件可称为“使用事件”。[1427] ー个“管理”进程对维护VDE 100正常工作提供帮助。它提供的处理可以有助于支持交易管理基础结构,该结构可以维护VDE 100安全有效地运行。管理进程可(举例来说)提供在某些方面与创建、修改和/或销毁VDE保护数据结构等操作有关的处理,上述操作可以建立和维护VDE的处理和控制链。例如,“管理”进程可以保存、更新、或销毁存放在VDE电子设备600安全数据库610中的信息。管理进程还可以提供通信服务,这些通信服务在不同的VDE电子设备600之间建立、维护以及支持安全的通信。触发了管理进程的事件可称为“管理事件”。

[1428] 交互方法

[1429] 某些VDE进程是成对出现的,这取决于它们一起交互作用的方式。ー个VDE进程可以向另ー个VDE进程“请求”处理服务。该请求处理服务的进程可以称为“请求进程”。由于该“请求”触发了进程对中另一个进程的处理,所以该“请求”形成了ー个“事件”。响应该“请求事件”的VDE进程可以称为“响应进程”。“请求进程”和“响应进程”可称为“交互

进程”。

[1430] “请求事件”可包含(举例来说)VDE节点电子设备600或某个进程为获取某些信息而发出的一条消息。对应的“响应进程”可(举例来说)通过发出在该消息中所请求的信息,作为对上述“请求事件”的响应。如果该响应触发了另ー个VDE “响应进程”,那么该响应本身可以形成一个“请求事件”。例如,收到一条为响应早先产生的请求的消息可以触发ー个“应答进程”。该“应答进程”是ー种特殊类型的“响应进程”,对其的触发是为了响应来自另一“响应进程”的“应答”。在一个给定的VDE交易中,可以有任意数量的“请求”和“响应”进程对。

[1431] “请求进程”及其配对的“响应进程”可以在同一 VDE电子设备600中执行,也可以分别在不同的VDE电子设备中执行。两个配对进程之间的通信可以是安全(VDE保护的)通信、“通道外”通信、或两者的组合。

[1432] 图41a_41d是ー些例子,它们示意了使用“交互方法”如何启动处理和控制链。处理和控制链的创建部分地利用了ー个或多个“交互事件”对,这些“交互事件”对以请求-响应的方式相互协作。在较佳实施例中,可以在ー个或多个“交互方法”中管理交互事件对。如上所述,一个“交互方法”是ー个方法1000,该方法可以响应ー个或多个“交互事件”。交互方法包含协作进程的两个组成部分,该进程可以在物理上和/或时间上相距较远的VDE节点中安全地运行。交互进程可以带有灵活定义的信息传送协议和信息内容结构。交互方法实际上可以基于运行于同一或不同VDE节点600上的同一或不同方法核心1000’。图41a所示的VDE节点600A和600B可以是同一个物理电子设备600,也可以是不同的电子设备。

[1433] 图41a示意了ー对交互事件的操作。在VDE节点600A中,方法IOOOa正在处理ー个事件,该事件带有ー个需要在VDE节点600B中处理的请求。响应该“请求”的方法IOOOa (例如,该方法基于某个部件组690,该部件组690包含相关的加载模块1100和数据)在图41a中标记为1450。进程1450创建了一个请求(1452)以及(可选地)某些信息或数据,该请求以及上述信息或数据将被发送到另外的VDE节点600B,以供与该交互事件相关的某个进程处理。可以采用本公开任何地方所说明的任意传送机制来传送上述请求或其它信息。

[1434] VDE节点600B收到的请求包括在该节点的一个响应事件。一旦收到该请求,VDE节点600B将执行由同一或不同方法IOOOb定义的“交互”进程1454,作为对该响应事件的响应。交互进程1454可以基于部件组690 (如,ー个或多个加载模块1100、数据,并且作为可选项,还可以包括VDE节点600B中的其它方法)。

[1435] 图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就可以针对不同事件采取不同的行动/产生不同的结果,对于不同的事件也可以提供不同的 方法。

[1436] 图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通信。

[1437] 可以用事件的集合对方法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,该进程规定了用户应该如何响应ー个再批准或否决(更多)预算的消息。[1438] 在较佳实施例中,对事件处理、交互事件、以及它们的相关方法和方法部件的控制是由PERC 808提供的。这些PERC 808可引用对特定数据结构型的创建、修改和分发进行控制的管理方法,以及引用允许对上述项进行访问、修改、以及进一歩分发。采用这种方式,在处理和控制链中的每ー个链接(举例来说)都可以按照该分发链中前一个成员规定的方式定制审核信息、改变使用信息内容的预算需求、以及/或者对进一歩分发这些权利进行控制。

[1439] 在图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中安装一个预算和PERC 808,以允许分发者访问某些信息内容和进程,而对这些信息内容和进程的访问至少部分地由上述预算和/或PERC 808进行控制。在某些时刻,分发者106可希望使用那些他已经得到访问权的信息内容。

[1440] 在对信息内容对象的使用进行注册之后,用户112可需要使用一組“使用”进程1476C来(举例来说)打开、读、写、和/或关闭上述信息内容对象,这些操作是上述使用进程的一部分。

[1441] 一旦分发者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可采用与前面所述方式相同的方式处理这些附加的预算。

[1442] 除了传送预算信息之外,处理和控制链还传递某些控制信息,这些控制信息可以控制所述预算的使用方式。例如,上述例子提到的控制信息还可说明某些进程和限制的控制信息,这些进程和限制适用于分发者如何分发对制作者的信息内容对象的使用权。所以,当分发者使用利用其BUDGET方法1510B拷贝中的分发进程1472B对用户发来的一个预算请求(该请求是VDE节点112中的用户与VDE节点106中的分发者之间的一次通信,其过程在原理上类似于前面所述的VDE节点106和102之间的通信)进行响应的时候,将可能会产生与上面所述相类似的分发及请求/响应/应答进程。

[1443] 因而,在本例中,单个方法可以根据不同的“触发”事件产生多种动态的行为。例如,单个BUDGET方法1510可支持下列的任意或全部事件:

[1444]

Figure CN101359350BD01521

由用户节点请求进程1480c处理的请求事件 请求更多预算

请求I号审核员进行审核_1青求I号审核员对预算使用情^

Figure CN101359350BD01531
Figure CN101359350BD01541

[1447] 交互方法进程的举例

[1448] Α.预算

[1449] 图42a,42b,43c和42d中的流程图分别示意了由BUDGET方法2250执行的进程控制步骤,此处的BUDGET方法2250是较佳实施例提供的ー个有代表性BUDGET方法。在较佳实施例中,BUDGET方法2250可以操作于下列4种不同模式下:

[1450] 今使用(參看图42a)

[1451] 令管理请求(參看图42b)

[1452] +管理响应(參看图42c)

[1453] 今管理应答(參看图42d)

[1454] 通常,启动BUDGET方法2250的“使用”模式是为了响应ー个有关对象或对象的信息内容使用的事件。BUDGET方法2250的“管理请求”模式是由用户启动的,或是以用户的名义启动的,它用来响应需要与VDE财务提供者联系的用户动作,通常,这种模式的任务是向该VDE财务提供者发送ー个管理请求。BUDGET方法2250的“管理响应”模式是在VDE财务提供者处执行的,它通过启动BUDGET方法2250的“管理请求”处调用来响应由VDE节点发送到VDE财务提供者的管理请求,BUDGET方法2250的“管理响应”调用导致把ー个管理对象从VDE财务提供者传送给VDE用户节点。图42d中BUDGET方法2250的“管理应答”调用是在用户VDE节点处执行的,一旦收到由图42c方法的“管理响应”调用所发出的管理对象后,就执行该调用。

[1455] 在较佳实施例中,同一个BUDGET方法2250可以执行图42a_42d所示的4种不同步骤序列。在较佳实施例中,可以向BUDGET方法2250传递不同的事件代码以便调用上述不同的模式。当然,也有可能使用4种不同的BUDGET方法来代替单个的BUDGET方法,而这4种方法具有四种不同的“动态个性特征”,但是通过使用同一种方法来进行4种类型的调用,较佳实施例可以获得某些好处。

[1456] 參看图42a,BUDGET方法2250的“使用”调用,首先准备好ー个预算审核跟踪(处理框2252,2254)。然后它获取预算UDE的DTD,该DTD用来获取和读取预算UDE (处理框2256-2262)。在上述“使用”调用中,BUDGET方法2250接着判断预算审核日期是否已经到期,如果是的话(判定框2264的“是”出口 ;处理框2266、2268),它将终止处理。只要预算审核日期还未到期,上述方法将使用原子元素和事件计数(可能还包括其它信息)来更新预算(处理框2270,2272),并且在終止(位于终止点2278)之前将预算用户审核记录存放在预算审核跟踪UDE中(处理框2274,2276)。

[1457] 參看图42b,前6步(处理框2280-2290)可以由用户VDE节点执行,以便响应某些用户操作(如请求访问新信息、请求得到新预算等)。BUDGET方法2250的“管理请求”调用可首先准备好ー个审核跟踪(处理框2280,2282)。然后,该方法将把ー个对相应预算进行管理处理的请求放入ー个请求队列(处理框2284,2286)。最后,该方法保存相应审核跟踪信息(处理框2288,2290)。过了一段时间以后,用户的VDE节点可准备好ー个通信审核跟踪(处理框2292,2294),然后可将预算管理请求写入某个管理对象中(处理框2296)。如果需要的话该步骤将访问安全数据库,并从诸如预算UDE、预算审核跟踪UDE以及管理请求记录之类的信息源中获取必要的信息(处理框2298)。

[1458] 然后处理框2296可将上述管理对象传送到某个VDE财务提供者,作为另外ー种选 择,处理框2296也可以将该管理对象传递给某个独立的通信进程或方法,这些通信进程或方法可以安排上述通信。如果需要的话,方法2250可在終止(位于终止点2304)之前保存ー个通信审核跟踪(处理框2300,2302)。

[1459] 图42c中的流程图示意了由较佳实施例提供的示例BUDGET方法2250所执行的一系列示例进程控制步骤,该方法执行干“管理响应”模式下。某个VDE财务提供者在收到ー个含有预算管理请求的管理对象时,将(举例来说)执行图42c所示的步骤,该对象是在图42b (处理框2296)中产生(并被发送给某个VDE管理员)的。

[1460] 一旦收到上述管理对象,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)。

[1461] 图42d中的流程图示意了由有代表性的示例BUDGET方法2250所执行的一系列示例程序控制步骤,该方法执行干“管理应答”模式下。某个VDE用户节点在收到ー个含有预算相关信息的管理对象时,可能(举例来说)执行图42d所示的步骤。BUDGET方法2250可首先准备好ー个预算管理及通信审核跟踪(处理框2332,2334)。然后,BUDGET方法2250可从收到的管理对象中提取记录和请求,并将应答记录写入VDE安全数据库中(处理框2336,2338)。然后该VDE用户节点可将预算管理及通信审核跟踪信息存入相应的审核跟踪UDE中(处理框2340,2341)。

[1462] 过了一段时间以后,该VDE用户节点可从安全数据库中检索上述应答记录,并确定应该使用哪个方法来对之进行处理(处理框2344,2346)。作为ー个可选步骤,该VDE用户节点可准备好ー个审核跟踪记录(处理框2342,2343)以便记录应答事件的处理结果。之后,BUDGET方法2250可向REPLY(应答)方法发送包含在应答记录中的事件,并且根据需要生成/更新安全数据库记录,例如插入新的预算记录、删除旧的预算记录、以及/或者对预算记录做修改(处理框2348,2350),在写审核跟踪记录(如果需要的话)(处理框2354m2355)终止之前(终止于终止点2356) ,BUDGET方法2250可从安全数据库中删除上述应答记录(处理框2352,2353)。

[1463] B.注册

[1464] 图43a_43d中的流程图示意了由REGISTER(注册)方法2400执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的ー个有代表性REGISTER方法。在本例中,REGISTER方法2400在执行图43a所示的示例步骤时是操作干“使用”模式;在执行图43b所示的示例步骤时是操作干“管理请求”模式; 在执行图43c所示的示例步骤时是操作干“管理响应”模式;在执行图43d所示的示例步骤时是操作干“管理应答”模式。

[1465] 图43a所示的步骤(举例来说)可以在ー个用户VDE节点中执行,它用来响应用户产生的某些操作或以用户名义用户而发生的某些操作。例如,用户可请求访问某个对象,而对象尚未(或目前没有)正确地向她注册。为响应这种用户请求,REGISTER方法2400可首先准备好ー个注册审核跟踪UDE (处理框2402,2404),然后判断所请求的对象是否已经注册过了(判定框2406)。如果该对象已经注册过了(判定框2406的“是”出口),那么REGISTER方法将终止执行(终止于终止点2408)。如果该对象尚未注册(判定框2406的“否”出ロ),那么REGISTER方法2400可访问该VDE节点安全数据库PERC 808和/或注册MDE (处理框2410)。然后,REGISTER方法2400可从上述PERC 808和/或注册MDE中提取出相应的注册记录集合(处理框2412),并确定注册对象所需的所有元素是否都齐全(判定框2414)。如果缺少某些元素(判定框2414的“否”出口),REGISTER方法2400可能将ー个注册请求记录放入通信管理器的队列中,然后挂起该REGISTER方法,直到队列中的请求得到满足为止(处理框2416、2418)。(举例来说)处理框2416可将ー个注册请求发送给某个VDE分发者。当该请求被满足以后,并且收到了ー个注册请求记录(处理框2420),那么判定框2414的测试得到满足(判定框2414的“是”出口),于是REGISTER方法2400将继续进行处理。在该阶段,REGISTER方法2400可允许用户从一系列备选方法中选择注册选项,这些备选方法为处理框2410中访问的PERC 808所允许。举ー个简单例子,PERC 808可允许用户用VISA或MasterCard付帐,但不允许用American Express付帐。处理框2422可显示ー个提示,要求用户从VISA付帐方式和MasterCard付帐方式中选择(处理框2424)。REGISTER方法2400最好对用户选择的注册选项进行确认,如果用户的选择无效的话,应该要求用户选择另外的选项(处理框2426,判定框2428的“否”出口)。一旦用户完成了所有必要的注册选项选择并且这些选择已经被确认(判定框2428的“是”出口),REGISTER方法2400将产生ー个对应于上述对象和用户的用户注册表(URT),该用户注册表反映了该用户所做的注册选择,以及PERC 808和/或注册MDE要求的其它注册信息(处理框2430、2432)。REGISTER方法2400在终止之前(终止于终止点2436)可将注册审核记录写入安全数据库中(处理框2432,2434)。

[1466] 图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)。 [1467] 图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)。这些信息可包含(举例来说)一个或多个替换PERC 808、方法、UDE,等等(处理框2482)。采用这种方法,(举例来说)分发者就可以先向用户分发有限的权限许可,这些权限许可只给予用户注册对象所需的足够信息;然后在以后在注册时,分发者就可以将这些有限的权限许可替换成范围更广的许可,后者可以允许用户更加完整地访问对象。接着,REGISTER方法2400将保存通信和响应处理审核跟踪(处理框2484,2486),然后终止(终止于终止点2488)。

[1468] 某个VDE用户在收到由图43c处理框2480生成/传送的管理对象时,可(举例来说)执行图43d所示的步骤。图43d所示的步骤非常类似于图42d所示的BUDGET方法管理应答过程所采取的步骤。

[1469] C.审核

[1470] 图44a_44c中的流程图示意了由AUDIT (审核)方法2520执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的ー个有代表性REGISTER方法。从这些例子中可以看出,在本较佳实施例中,AUDIT方法2520提供了 3种不同的操作模式:图44a示意了 AUDIT方法在“管理请求”模式下执行的步骤;图44b示意了 AUDIT方法在“管理响应”模式下执行的步骤;图44c示意了 AUDIT方法在“管理应答”模式下执行的步骤。

[1471] 通常,当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)。

[1472] 当某个VDE信息内容提供者、财务提供者、或其它审核VDE节点收到由图44a中处理框2538生成并传送的管理对象时,它们将执行图44b所示的步骤示例。该“管理响应”模式下的AUDIT方法2520可首先准备好ー个Audit通信和响应审核跟踪(处理框2550,2552),然后将收到的管理对象解包,从中检索审核请求审核跟踪和审核记录,并将它们保存到安全数据库中(处理框2554、2556)。AUDIT方法2520接着从安全数据库中检索到上述审核请求,并确定运行哪个方法可以处理该请求(处理框2558,2560)。然后AUDIT方法2520在这ー阶段可向相应的响应方法发送存放在请求记录中的事件,并根据该方法生成响应记录和请求(处理框2562,2564)。处理框2562可以包含与外界进行一次通信。

[1473] 例如,此时AUDIT方法2520可调用ー个外部进程来执行,以便以电子方式从用户的银行帐户或某些其它银行帐户上划拨一部分资金。如果需要的话,AUDIT管理响应可以调用在VDE与一个或多个现有计算机系统之间充当接ロ的ー个外部进程。可以向该外部进程传送用户的帐号、PIN、金額、或者其它相关信息,这些信息配置于正被处理的VDE审核跟踪中,或者与之相关。外部进程可以与ー个非-VDE主机进行通信,并作为这些通信的一部分传递给它的信息。举例来说,该外部进程可以在某个文件中生成ー个自动票据交換所(ACH)记录,并将该文件传送给ー个银行。采用这种机制,就可以自动对任意金融机构中的银行帐户进行借贷操作。这种机制还可以用来与现有的信用卡(如VISA)网络进行通信,其过程是将基于VDE的费用记入收费帐户中。

[1474] 一旦生成相应的审核响应记录以后,AUDIT方法2520可将ー个审核管理记录写入ー个管理对象中以便将之传回产生上述审核请求的VDE用户节点(处理框2566,2568)。然后AUDIT方法2520可将通信和响应处理审核信息存入相应的审核跟踪(处理框2570,2572),之后便终止处理(终止与终止点2574)。

[1475] 当某个VDE用户节点收到由图44b中处理框2566生成并传送的管理对象时,在该节点中将由AUDIT方法2520执行图44c所示的步骤示例。图44c所示的步骤2580-2599类似于图43d中REGISTER方法2400在“管理应答”模式下执行的步骤。简而言之,这些步骤包括:从管理对象中接收并提取相应的响应记录(处理框2584),然后对这些收到的 信息进行相应处理,并更新安全数据库记录,同时还执行其它必要处理(处理框2595,2596)。

[1476] 事件驱动的基于信息内容的方法举例[1477] VDE方法1000的设计使它能够实现更加灵活并且高度模块化的安全处理机制。通常可以作为方法1000的组合来创建服务于“使用事件”的完整进程。举ー个例子,用来从对象300中阅读信息内容或其它信息的典型进程可含有下面的方法:

[1478] +—个事件(EVENT)方法

[1479] 今一个计量(METER)方法

[1480] 今一个计帐(BILLING)方法

[1481] 今一个预算(BUDGET)方法

[1482] 图45示意了 VDE 100为响应ー个事件而顺序执行的一系列方法。在本例中,当出现ー个事件后,EVENT方法402可以对该事件进行“考核”以判断它是否具有有效性。并非所有事件都是有效的。例如,假设某个控制进程中的EVENT方法1000要求对使用量度的计 量要以阅读的页数为単位,在这个前提下,如果用户请求读取少于ー页的信息,那么此“事件”将被忽略。再举ー个例子,如果某个系统事件表示请求读取一定数目的字节,同时EVENT方法1000从属于设计成作段落计量的某个控制进程,那么该EVENT方法可能要对该读请求做适当測定,以便确定所请求的字节代表了多少个段落。该过程可能包括向“原子元素”做映射,这一点将在后面详细介绍。

[1483] EVENT方法402将根据涉及到的特定控制方法把那些不具有效性的事件过滤出去。EVENT方法402将有资格的事件发送给METER进程404,该进程根据其本身的特定标准 或者对上述事件进行计量,或者丢弃该事件。

[1484] 另外,较佳实施例提供了一种称为“预检查”的优化措施。EVENT方法/进程402可以根据计量、计帐和预算等信息执行“预检查”,以便确定基于事件的处理是否允许执行。假设,(举例来说)由于访问某些信息内容的原因,用户已经超出了其预算额,因而无法进ー步对信息内容进行访问。尽管BUDGET方法408可以作出上述決定,而由BUDGET方法404和/或BILLING方法406执行的记录和处理就可能不得不“复原”,以避免(举例来说)用户虽然进行了一次实际已被拒绝了访问,但仍然为此而缴费。如果在EVENT方法402中执行一次“预检查”就可以使必须“复原”的交易減少,这样可能会提高效率。

[1485] 举例来说,METER方法404可以将审核记录存放到计量“跟踪”UDE 1200中,并且可以在计量m)E 1200中记录与事件有关的信息。例如,METER方法404可以在每次信息内容被访问的时候増加或减少计量UDE 1200中的一个“计量”值。可以维护两种不同的数据结构(计量UDE和计量跟踪UDE),(举例来说)这样可以分开维护用作报告用途的记录和用作内部操作用途的记录。

[1486] 一旦事件由METER方法404计量以后,被计量的事件将接受BILLING方法406的处理。BILLING方法406确定该事件使用了多少预算,它还保存对协调计量和预算有用的有关记录。于是,(举例来说)BILLING方法406可以从ー个预算UDE中读取预算信息,将计帐信息保存到一个计帐UDE中,并且将一个或多个审核记录写入ー个计帐跟踪UDE中。尽管某些计帐跟踪信息可能与计量和/或预算跟踪信息重复,计帐跟踪信息仍然可以用来(举例来说)使信息内容制作者102可望得到一定数量的报酬,同时它还可以起到协调核对作用,以便在发送到制作者102的计量跟踪信息和发送到独立预算提供者的预算跟踪信息两者间进行协调。

[1487] 然后BILLING方法406可将事件传送给BUDGET方法408。BUDGET方法408设置某些限制,并记录与这些限制相关的交易信息。例如,BTOGET方法408可将预算信息存入ー个预算UDE中,并且还可将ー个审核记录存入预算跟踪UDE中。经过BUDGET方法408处理后,预算UDE中的“预算余额”字段是减去由BILLING方法406指定的数量后所剩的数额。

[1488] 一旦不同的方法402、404、406、408已经处理完上述事件,信息内容便可以发放,同时还可能允许其它操作发生。

[1489] 如上所述,在较佳实施例中,可以利用“控制方法”采提供PERC808,这些控制方法实际上在某个控制进程中“监视”其它必要方法的性能。图46示意了控制方法410对图45中的必要方法/进程402,404,406及408是如何组织和控制的。控制方法410可以调用和调度事件,或者调用其它方法402,404,406及408,并且可以监视为响应某个“事件”而进行的处理。

[1490] 控制方法运行于PERC 808中控制集合906这ー层次。控制方法在实现迥异的方 法1000之间提供了结构、逻辑和控制流。这种机制使信息内容提供者可以创建所需的任意处理链,同时还允许居后的再次分发者(在允许的限度内)修改特定的处理链。这种控制结构概念提供了很大的灵活性。

[1491] 图47示意了“聚合”方法412的ー个例子,该聚合方法412把METER方法404、BUDGET方法406、BILLING方法408收集在一起放在了一个“聚合”处理流中。聚合方法412可以(举例来说)把各种计量、预算和计帐元素合并成单个方法1000。由于聚合地执行METER方法404、BUDGET方法406、BILLING方法408,因而聚合方法412可以提高效率。不过由于模块化的降低同时也导致了灵活性的降低。

[1492] 多个不同的方法可以同时起作用。图48示意了较佳实施例中的ー个事件处理过程,该过程使用了多个METER方法404和多个BUDGET方法1408。为了处理某事件,可能需要单独或同时执行多个不同的必要方法。例如,在图48所示的例子中,METER方法404a可以维护计量跟踪和计量信息记录,而这些记录与METER方法404b所维护的计量跟踪与计量信息记录是无关的。类似地,BUDGET方法408a维护的记录可能与BUDGET方法408b维护的记录也无关。某些事件可以绕过BILLING方法408的处理,同时仍然要经过METER方法404a和BUDGET方法408a的处理。各种不同的变化都是有可能的。

[1493] VDE方法的代表性例子

[1494] 尽管方法1000实际可以无限多祥,并且某些甚至是用户定义的,而较佳实施例最好使用某些基本的“使用”型方法以控制VDE 100提供的大多数基本对象处理以及其它功能。例如,为了进行对象操作,通常提供下列的高层方法:

[1495] +打开(OPEN)方法

[1496] +读(READ)方法

[1497]今写(WRITE)方法

[1498] +关闭(CLOSE)方法

[1499] OPEN方法用来控制对容器的打开操作,从而使其中的信息内容可以被访问。READ方法用来控制对容器中信息内容的访问。WRITE方法用来控制向容器中插入信息内容的操作。而CLOSE方法则用来关闭ー个已经打开的容器。

[1500] 为了执行OPEN,READ, WRITE和/或CLOSE方法所要求的某些步骤,提供了ー些辅助方法。这种辅助方法可能包括:[1501]今 ACCESS 方法

[1502] +PANIC 方法

[1503] +ERROR 方法

[1504]今 DECRYPT 方法

[1505] +ENCRYPT 方法

[1506] 令DESTROY信息内容方法

[1507]令 INFORMATION 方法

[1508] +OBSCURE 方法

[1509]今 FINGERPRINT 方法

[1510]今 EVENT 方法

[1511] +CONTENT 方法

[1512] +EXTRACT 方法

[1513] +EMBED 方法

[1514]今 METER 方法

[1515]令 BUDGET 方法

[1516]今 REGISTER 方法

[1517] +BILLING 方法

[1518] +AUDIT 方法

[1519] ACCESS方法可以用来物理地访问与已打开容器相关的信息内容(该信息内容可以在任何地方)。在检测到安全保障遭到入侵的时候,可以用PANIC方法关闭至少部分VDE节点。ERROR方法可以用来处理错误情況。DECRYPT方法用来对加密信息进行解密。ENCRYPT方法用来加密信息。DESTROY信息内容方法用来取消对容器中特定信息内容的访问能力。INFORMATION方法用来提供有关容器中信息内容的公开信息。OBSCURE方法用来降低从已打开容器中读出的信息内容的价值(例如在显示出的图象之上打印出词“SMAPLE”)。FINGERPRINT方法用来对信息内容做标记,以表明是谁把该信息内容从安全容器中发布出来的。EVENT方法用来将事件转化成另外的事件,以便由其它方法进行响应。

[1520] OPEN (打开)

[1521] 图49中的流程图示意了 OPEN方法1500的较佳实施例进程控制步骤。不同的OEPN方法具有不同的详细步骤。但是,图49所示的OPEN方法则是由较佳实施例提供的、具有相对完备功能的“OPEN”方法中的代表性例子。图49示意了该OPEN方法的宏观图。图49a-49f则是为实现图49所示的方法所要执行的详细程序控制步骤示例。

[1522] OPEN方法进程从ー个“打开事件”开始。该打开事件的产生来源可以是用户应用程序、操作系统截获、或者各种其它用于捕捉或截获控制的机制。例如,用户应用可以发出ー个请求,希望访问存放在VDE容器的特定信息内容。作为另ー个的例子,其它方法可以发出ー个命令。

[1523] 在所示的例子中,上述打开事件由控制方法1502来处理。控制方法1502可调用其它方法以处理该事件。例如,控制方法1502可以调用EVENT方法1504、METER方法1506、BILLING方法1508、以及BUDGET方法1510。并非所有的OPEN方法都必须调用上述附加的方法,不过图49所示的OEPN方法1500是ー个有代表性的例子。[1524] 控制方法1502将打开事件的描述传递给EVENT方法1504。EVENT方法1504可确定(举例来说)该打开事件是否是经过允许的,并判断该打开事件是否重要得需要经过METER方法1506、BILLING方法1508和/或BUDGET方法1510的处理。EVENT方法1504可以在ー个审核跟踪UDE中保存审核跟踪信息,并使用事件方法数据元素(MDE)来确定该事件的许可和有效性。EVENT方法1504还可将该打开事件映射到ー个“原子元素”和计数,该“原子元素”和计数可以被METER方法1506、BILLING方法1508和/或BUD GET方法1510处理。

[1525] 在OPEN方法1500中,一旦调用了 EVENT方法1504并且EVENT方法1504成功地返回,控制方法1502接着可调用METER方法1506,并将EVENT方法1504返回的原子元素和计数传递给METER方法1506。METER方法1506可在METER方法审核跟踪UDE中保存审核跟踪信息,还可在ー个METER方法UDE中维护计量信息。在较佳实施例中,假设METER方法1506成功地执行完处理,那么它将向控制方法1502返回一个计量数值。 [1526] 在较佳实施例中,控制方法1502 —旦收到ー个标志表明METER方法1506已经成功执行完毕,那么它将调用BILLING方法1508。控制方法1502可向BILLING方法1508传递由METER方法1506返回的计量值。BILLING方法1508可读取并更新保存在BILLING方法映射MDE中的计帐信息,它还可在ー个BILLING方法审核跟踪UDE中维护和更新审核跟踪。BILLING方法1508可以向控制方法1502返回一个计帐数量和ー个完成码。

[1527] 假设BILLING方法1508成功执行完毕,控制方法1502可以将BILLING方法1508提供的计帐值传递给BUDGET方法1510。BUDGET方法1510可以读取和更新ー个BUDGET方法UDE中的预算信息,它还可在ー个BUDGET方法审核跟踪UDE中维护审核跟踪信息。BUDGET方法1510可以向控制方法1502返回ー个预算值,同时还可以返回ー个完成码,该完成码表明上述打开事件是否超出了用户的预算(该预算对应于此类事件)。

[1528] —旦BUDGET方法1510执行完毕,控制方法1502可以创建ー个通道,同时还可以生成读/使用控制信息,以便为后续对READ方法的调用做准备。

[1529] 图49a_49f详细地说明了图49中所示的OPEN方法1500。參看图49a,为了响应一个打开事件,控制方法1502首先确定需要被打开的对象标识以及请求打开该对象的用户标识(处理框1520)。然后控制方法1502判断需要被打开的上述对象是否已向该用户注册(判定框1522)。在较佳实施例中,控制方法1502至少部分地读PERC 808和用户权限表(URT)中的有关元素以便作出上述判断,这些元素与处理框1520确定的特定对象和特定用户相关(处理框1524)。如果用户尚未为该特定对象注册(判定框1522的“否”出口),那么控制方法1502可以为该对象调用REGISTER方法,并且在注册一旦完成后重新启动OPEN方法1500 (处理框1526)。REGISTER方法处理框1526可以是ー个独立的进程,并且可以与时间无关。可能(举例来说)需要花费较长的一段时间才能完成REGISTER方法(假设负责处理注册事宜的VDE分发者或其它參与者在为上述特定对象注册用户之前,希望检查ー下用户的信用)。

[1530] 假设上述用户和对象的适当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),因此,即使上述交易失败或者受到干扰,该交易的记录仍然存在。

[1531] 图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的“否”出口)。

[1532] 控制方法1502测试EVENT方法1504返回的完成码,以确定EVENT方法1504是成功还是失败了 (判定框1552)。如果EVENT方法失败了 (判定框1552的“否,,出口),那么控制方法1502可以“回滚”(roll back)安全数据库交易(处理框1554),而且其本身将返回,同时带有ー个返回标志表明OPEN方法失败(处理框1556)。在此处,“回滚”安全数据库交易意味着(举例来说)“复原”在处理框1540、1548对审核跟踪记录UDE做出的修改。不过,在较佳实施例中,处理框1554所执行的“回滚”操作并不“复原”在处理框1532、1534对控制方法审核信息Μ)Ε做出的修改。

[1533] 假设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确定的ー个计量值。

[1534] 控制方法1502 (举例来说)通过检查完成码来确定METER方法是否执行成功(判定框1572)。如果METER方法失败(判定框1572的“否”出口),那么控制方法1502将“回滚”安全数据库交易(处理框1574),并返回一个标志表明OPEN方法失败(处理框1576)。假设METER方法执行成功(判定框1572的“是”出口),控制方法1502于是调用BILLING方法1508,并将METER方法1506提供的计量值传递给它。

[1535] 图49d示意了 BILLING方法1508执行的步骤示例。如果需要的话,BILLING方法 1508可首先准备ー个计帐审核跟踪(处理框1578),即向安全数据库中的BILLING方法审核跟踪Μ)Ε写入信息(处理框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。

[1536](举例来说)还有ー些BILLING方法使用地点、用户、以及/或者使用信息来生成定价信息。例如,可以使用有关对象存在或不存在的信息来实现“套件”购买、有竞争カ的折扣等方式。计帐方法可以将使用级别作为ー个考虑的因素,以便针对不同的使用级别而制定不同的价格。BILLING方法可以具有货币換算特性,该特性允许利用不同种类的货币进行购买和/或定价。还有许多其它方式可以用来确定某个事件消耗的预算额,这些方式都可以集成进BILLING方法。

[1537] 图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的多个用户所共享,也可能只能由指定的用户使用。

[1538] 在较佳实施例中,控制方法1502接着检查读通道是否已经成功地创建好(判定框1626)。如果读通道未能成功地创建(判定框1626的“否”出口),控制方法1502 “回滚”安全数据库交易,并返回一个标志表明OPEN方法失败(处理框1628,1630)。假设读通道成功地创建好(判定框1626的“是”出口),控制方法1502可“提交”安全数据库交易(处理框1632)。在较佳实施例中,上述“提交”安全数据库交易的步骤包括(举例来说):删除 与刚刚执行的安全交易有关的中间值,并且(举例来说)将修改了的Μ)Ε和MDE写入安全数据库。通常,某个安全交易ー经处理框1632提交,那么它就不可能被“回滚” 了。然后,控制方法1502可以“拆除”用来进行打开处理的通道,然后终止(处理框1636)。在某些配置中,诸如在多任务VDE节点环境中,上述OPEN通道可以一直保留,而任何开始执行的OPEN方法都可以使用该OPEN通道。在其它实现中,每次启动ー个OPEN方法可以被重建并重启动上述进行打开处理的通道。

[1539] READ(读)

[1540] 图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在发放被解密的信息内容之前可以请求某些方法首先对信息内容做指纹和/或使之模糊。

[1541] 图50a_50e与图49a_49e相类似。当然,即使OPEN方法1500和READ方法1650可以使用同样的用户数据元素,但READ方法使用的方法数据元素可以完全不同,另外,读方法所使用的用户数据元素可以提供与打开处理截然相反的审核、计量、计帐、以及/或者预算标准。

[1542] 參看图50f,READ控制方法1652必须确定:如果它准备将被解密的信息内容发放给用户的话,应该用哪个密钥解密该信息内容(处理框1758)。READ控制方法1652可部分地根据该对象的PERC 808来做出上述密钥确定(处理框1760)。然后,READ控制方法1652可调用ACCESS方法以便真正地得到上述需要解密的加密信息内容(处理框1762)。此后,使用由处理框1758确定的密钥将上述信息内容解密(处理框1764)。READ控制方法1652接着判断是否需要ー个“指紋”(判定框1766),如果需要对该信息内容按指纹(判定框1766的“是”出口),那么READ控制方法1652可以调用FINGERPRINT方法(处理框1768)。否贝U,READ控制方法1652可以判断是否需要将该被解密的信息内容模糊化(处理框1770)。如果需要的话,READ控制方法1652可调用OBS⑶RE方法来执行该功能(处理框1772)。最后,READ控制方法1652可以提交上述安全数据库交易(处理框1774),并可选地拆除读通道(未示出),然后终止(处理框1776)。

[1543] WRITE(写)

[1544] 图51,51a_51f示意了在较佳实施例中有代表性WRITE方法1780示例所执行的进程控制步骤示例。在本例中WRITE方法1780使用控制方法1782来调用EVENT方法1784、METER方法1786、BILLING方法1788、以及BUDGET方法1790。因此,在较佳实施例中,将信息写入容器(或者通过改写已存储在容器中的信息,或者在容器中増加新信息)可以被计量、计帐和/或预算,而这些处理与容器打开和读取过程中所进行的计量、计帐和/或预算方式是相似的。如图51所示,WRITE方法1780的结果通常是对信息内容进行加密、更新容器的目录表和相关信息以便反映出新的信息内容、并将信息内容写入对象。

[1545] 图51a中的WRITE控制方法1782类似于图49a中的OPEN控制方法和图50a中的READ控制方法。但是,图51b与对应的打开和读稍微不同。具体地说,当WRITE EVENT方法 1784失败的时候,将执行处理框1820。处理框1820更新EVENT方法映射MDE以反映出新数据。只有这样,图51b READ方法处理框1678才能根据同一个(但此时已经被更新)的EVENT方法映射MDE来读取由处理框1810写入的信息。

[1546] 參看图51f,一旦EVENT、METER、BILLING和BUDGET方法成功地返回到WRITE控制方法1782,WRITE控制方法即把审核信息写入审核UDE中(处理框1890,1892),然后(根据对应于该对象和用户的PERC,以及ー个可选的算法)确定在将信息内容写入容器之前应该使用哪个密钥对之进行加密(处理框1894,1896)。接着,控制方法1782将加密该信息内容(处理框1898),其间可调用ENCRYPT方法,然后将加了密的信息内容写入对象中(处理框1900)。之后,控制方法1782可以更新容器的目录表(以及相关信息)以便反映出新写入的信息(处理框1902),并提交安全数据库交易(处理框1904),最后返回(处理框1906)。

[1547] CLOSE(关闭)

[1548] 图52示意了在较佳实施例中有代表性CLOSE方法1920示例所执行的进程控制步骤流程。CLOSE方法1920用来关闭ー个打开的对象。在较佳实施例中,CLOSE方法1920首先准备ー个审核跟踪,并将审核信息写入一个审核Μ)Ε中(处理框1922,1924)。然后CLOSE方法1920可以拆除正用来支持和/或处理ー个或多个打开对象的当前通道(处理框1926)。如上所述,在某些(如多用户或多任务)实现中,上述拆除通道的步骤是不必要的,因为该通道可以留着操作对同一或不同用户的其它对象进行处理。此时,CLOSE方法1920还释放此时与该对象相关的适当记录和资源(处理框1926)。然后,(如果需要的话)CLOSE方法1920可以在完成之前将审核跟踪写入审核UDE中(处理框1928、1930)。

[1549] EVENT (事件)

[1550] 图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中,因此,它可以用来实现隐私过滤器,其原理是禁止将某些机密的用户信息写入将要报告给第三方的数据结构中。

[1551] 处理框1950(使用映射MDE将事件映射到原子元素号和事件计数)在某些意义上是EVENT方法1940的“核心”。该步骤将事件“映射”到“原子元素号”,而该原子元素将由后面调用的方法来响应。图53b示意了上述“映射”步骤1950 —个具有一定代表性的例子所执行的进程控制步骤示例。

[1552] 图53b中的例子示意了将ー个READ事件转换到相应原子元素的过程,该READ事件请求从特定的信息内容部分中获取范围位于1000-1500之间的字节。示例EVENT方法映射进程(图53a中的处理框195)可以细化为图53b所示的有代表性进程。 [1553] 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-100L+1 = 500)。然后,EVENT方法可以终止(处理框1968),并返回原子元素号和计数。

[1554] 之后,如果需要的话,EVENT方法1940可以将ー个EVENT审核跟踪写入EVENT方法审核跟踪UDE中(处理框1970,1972)。然后EVENT方法1940可以准备(在退出点1978)将上述原子元素号和事件计数传递给调用的CONTROL方法(或其它控制进程)。在此之前,EVENT方法1940可以检查是否选择了ー个原子元素(判定框1947),如果没有选择原子元素,那么EVENT方法可能会失败(框1974)。产生这种结果的原因多种多祥。例如,如果用户没有权利访问在EVENT方法MDE中未做描述的信息内容特定区域,那么EVENT方法可能不能将事件映射到原子元素。这种机制可以用来(举例来说)分发信息内容片段的定制版本,并且通过改变交付给用户的EVENT方法MDE,可以控制对信息内容对象中这些不同版本的访问。该技术的ー个特殊用途是可以用来控制信息内容片段不同语言(如英语、法语、西班牙语)版本的分发。

[1555] BILLING (计帐)

[1556] 图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作为信息内容对象的一部分进行交付,也可以作为ー个可独立交付的部件来传递,在注册时,该部件被融合进某些控制信息。

[1557] 本例中的BILLING方法映射MDE可以描述本BILLING方法需要使用的定价算法(如:对发布的信息内容每一字节计帐O. 001美元)。处理框1988的功能(“将计量值映射到计帐数額”)与EVENT方法中处理框1950相同;它将计量值映射到计帐数额。进程步骤1988也可以查询安全数据库(该操作要接收隐私过滤器的限制)以便确定是否存在其它的对象或信息(如用户信息)可以作为BILLING方法算法的部分參数。

[1558] 然后,如果需要的话,BILLING方法1980可以将ー个BILLING审核跟踪写入 BILLING方法审核跟踪UDE中(处理框1990,1992),并可以准备向调用它的控制方法(或其它进程)返回计帐数额。不过在此之前,BILLING方法1980可以判断是否确定了ー个计帐数额(判定框1994)。如果没有确定计帐数额,那么BILLING方法可能失败(处理框1996)。出现这种结果的ー个可能原因是用户无权访问BILLING方法MDE所描述的定价表特定区域(如用户从信息内容对象中购买的信息不能超过100. 00美元)。

[1559] ACCESS(访问)

[1560] 图54示意了 ACCESS方法2000所执行的程序控制步骤流程图示例。如上所述,ACCESS方法可以用来访问嵌入到对象300中的信息内容,从而使该信息内容可以被写入、读取、或经过其它操作和处理。在许多情况下,ACCESS方法可以相对简单,因为对象可以(举例来说)被存贮在本地的存贮设备中,从而易于访问。不过,通常情况下,ACCESS方法2000为获取对象必须执行更为复杂的过程。例如,某些对象(或对象的部分)也许只能从远程获取,或者只能通过实时下载或输入的方式才能得到这些对象(例如在广播传送的情况下)。即使对象是保存在VDE节点本地,其保存方式也可以是安全的或受保护的,因此调用进程对它不能直接访问。ACCESS方法提供了访问对象所必须的连接、路由选择、以及安全要求。这些步骤的执行对调用进程来说可以是透明的,所以调用进程只需发出ー个访问请求,而与对象或某类对象相对应的特定ACCESS方法将处理实际访问对象所涉及的所有细节和后方勤务(Logistics)。

[1561] ACCESS方法2000可首先准备ー个ACCESS审核跟踪(如果需要的话),即向ACCESS审核跟踪UDE写入信息(处理框2002,2004)。然后ACCESS方法2000可以读取并加载ACCESS方法DTD以便确定ACCESS MDE的格式(处理框2006,2008)。在较佳实施例中,ACCESS方法MDE指定了需要访问的特定对象的来源和路由选择信息。利用ACCESS方法DTD, ACCESS方法2000可以加载校正參数(如用电话号码、帐号ID、ロ令和/或用远程资源相关语目书写的请求脚本)。

[1562] 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)。

[1563] ENCRYPT 和 DECRYPT (加密与解密)

[1564] 图55a示意了在较佳实施例中有代表性DECRYPT方法2030示例所执行的进程控制步骤流程。在较佳实施例中,DECRYPT方法2030从ー个相应的PERC 808中获取或生成ー个解密密钥,并使用该密钥对ー块加密的信息内容进行解密。DECRYPT方法2030接收ー块加密的信息内容或ー个指向加密块存放位置的指针。DECRYPT方法2030从ー个密钥块中选择ー个密钥号(处理框2032)。为安全起见,一个信息内容对象可以用ー个以上的密钥进行加密。例如,在一段电影中,其前10分钟的内容可以使用第一个密钥加密,第二个10分钟的内容可以使用第二个密钥加密,依此类推。存放在某个数据结构之PERC 808中的上述密钥称为“密钥块”。上述选择过程即为从密钥块中确定可用来解密上述信息内容的正确密钥。该选择进程类似于EVENT方法将事件映射到原子元素号所用的进程。之后,DECRYPT方法2030访问安全数据库610中的一个相应PERC 808,并从PERC中加载ー个密钥(或“种子”)(处理框2034,2036)。该密钥信息可以是解密信息内容所用的实际解密密钥,或者至少可以部分地从该信息中推导出或计算出解密密钥。如果需要的话,DECRYPT方法2030根据在处理框2034从PERC 808中读到的信息计算出解密密钥(处理框2038)。然后,DECRYPT方法2030使用上述获取的和/或计算得来的解密密钥真正地对加密信息进行解密(处理框2040)。DECRYPT方法2030输出解密了的块(或者指向该块所在位置的指针),然后终止(终止于终止点2042)。

[1565] 图55b示意了在较佳实施例中有代表性ENCRYPT方法2050示例所执行的进程控制步骤流程。在较佳实施例中,ENCRYPT方法2050接收ー块需要加密的信息(或ー个指向该块存放位置的指针)作为输入。然后ENCRYPT方法2050可以从ー个密钥块中确定使用的密钥(处理框2052)。密钥选择过程要确定:在保存于PERC 808中的某个密钥块中,是否存在对应于要对之执行写入操作的特定信息内容块的密钥。如果密钥块中存在这样的密钥,那么将选择该密钥号码。如果密钥块中不存在这样的密钥,则利用合适的加密算法计算得出ー个新密钥。该密钥被存放在PERC 808的密钥块中,使DECRYPT方法2030可以访问该密钥,以便对存放在信息内容对象中的信息内容进行解密。之后,ENCRYPT方法2050访问相应的PERC以便获取、推导和/或计算出ー个可用来加密信息块的加密密钥(处理框2054,2056,2058,这些处理框类似于图55a中的处理框2034,2036,2038)。接着,ENCRYPT方法2050用获取的和/或推导得出的加密密钥真正地加密上述信息块(处理框2060),并输出加了密的信息块或指向其位置的指针,随后终止(終止点2062)。

[1566] CONTENT

[1567] 图56示意了在较佳实施例中有代表性CONTENT方法2070示例所执行的进程控制步骤流程。在较佳实施例中,CONTENT方法2070采用安全进程为受保护的CONTENT创建“梗概”。例如,可以使用CONTENT方法2070从受保护的CONTENT中导出不受保护的(“公开的”)信息。上述可导出的公开信息可以包括:(举例来说)摘要、索引、目录、文件目录、表明何时可以得到CONTENT的时间表、或摘录,比如影片的“演职员表”。

[1568] CONTENT方法2070首先判断要交付的被导出内容是否必须从安全的CONTENT中导出,还是它已经以静态值的形式存在于对象中(判定框2070)。某些对象可以(举例来说)包含了预保存的摘要、索引、目录等信息,这些信息被清楚地提供出来以供CONTENT方法2070提取之用。如果对象包含了上述静态值(判定框2072“静态”出ロ),那么CONTENT方法2070就可以简单地从该对象中读出上述静态值内容信息(处理框2074),可选地对之解密,然后发布该内容说明(处理框2076)。如果在另一方面,CONTENT方法2070必须从受保护对象中导出上述梗概/CONTENT说明的话(判定框2072的“导出”出口),那么,该CONTENT方法必须按照ー个梗概算法从容器中安全地读取信息以便产生上述梗概(处理框2078)。

[1569] EXTRACT 和 EMBED (提取与嵌入)

[1570] 图57a示意了在较佳实施例中有代表性EXTRACT方法2080示例所执行的进程控制步骤流程。EXTRACT方法2080用来从ー个对象中复制或移动信息内容,然后将其放入一个新对象中。在较佳实施例中,EXTRACT方法2080不涉及对信息内容的任何发布,只是简单地将信息内容从ー个容器中取出,然后放入另ー个容器中,这两个容器可以都是安全的。对信息内容的提取不同于发布的地方在于,被提取的信息内容始終没有暴露到安全容器之夕卜。提取和嵌入是两个互补的功能;提取过程是从ー个容器中取出信息内容并创建ー个新的容器存放被提取出的信息内容,同时还存放与该信息内容相关的任何被指定的控制信息。嵌入则是从ー个容器中取出已经存在的信息内容,并直接地和/或通过引用方式将它存放到另外ー个容器中,同时把与现有信息内容相关联的控制信息和新的信息内容的控制信息集成在一起。

[1571] EXTRACT方法2080首先准备ー个审核UDE(处理框2082,2084)。然后,EXTRACT方法调用BUDGET方法以便确认用户具有足够的预算额用来(并且有权)从原始对象中提取信息内容(处理框2086)。如果用户的预算不允许该提取(判定框2088的“否”出口),那么EXTRACT方法2080将写ー个失败审核记录(处理框2090),然后终止(终止点2092)。如果用户的预算允许该提取(判定框2088的“是”出口),EXTRACT方法2080创建被提取对象的一个拷贝,并附有指定的规则和控制信息(处理框2094)。在较佳实施例中,上述步骤涉及调用ー个实际控制上述拷贝的方法。该步骤可以含有也可以不包括加密和解密,这取决于(举例来说)与原始对象相关联的特定PERC 808。随后,EXTRACT方法2080将判断授权本次提取的权利是否允许进行某些控制改变(判定框2096)。在某些情况下,提取权利要求在新(目的地)容器中放置原始对象相关PERC 808(或为此目的所含的某个PERC)的ー份精确拷贝(判定框2096的“否”出ロ )。如果不允许有控制改变,EXTRACT方法2080可以简单地将审核信息写入审核UDE中(处理框2098,2100),然后终止(终止点2102),反之,如果提取权利允许用户进行控制改变(判定框2096的“是”出口),那么EXTRACT方法2080可以调用ー个方法或加载模块,该方法或加载模块将请求(如从用户、创建/批准提取权的分发者、或从其它来源)从用户处得到新的或改变的控制信息(处理框2104,2106)。随后,EXTRACT方法2080可以调用ー个方法或加载模块,以便创建一个新的PERC,该PERC反映了上述用户指定的控制信息(处理框2104)。上述新PERC将被放置于新的(目的地)对象中。然后EXTRACT方法2080执行审核步骤,之后终止。

[1572] 图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)。

[1573] OBSCURE (模糊化)

[1574] 图58a示意了在较佳实施例中有代表性OBSCURE方法2140示例所执行的进程控制步骤流程。OBSCURE方法2140通常用于以降价的形式发布受保护的信息内容。例如,OBSCURE方法2140可以将一幅高分辨率的图象以低分辨率的形式发布,从而使用户虽然可以欣赏该图象但无法享受其全部价值。再举ー个例子,OBSCURE方法2140可能往一幅图象上放置某个模糊化符号(如“C0PY”、“PR00F”等),以便降低其价值。OBSCURE方法2140可以“模糊化”正文,图象、声音信息、或其它任何类型的信息内容。

[1575] OBS⑶RE方法2140首先调用EVENT方法以确定该信息内容是否是适于处理的,并且属于要模糊化的范围(处理框2142)。如果该信息内容不适于模糊化,OBSCURE方法将终止(判定框2144的“否”出ロ,终止点为2146)。假设信息内容要被模糊化(判定框2144的“是”出ロ),那么OBSCURE方法2140将确定是否因为模糊化该信息内容它本身已经被调用过(判定框2148)。假设OBS⑶RE方法2140未因为模糊化该对象/信息内容而被调用过(判定框2148的“是”出ロ),OBSCURE方法2140将从安全数据库中读出ー个相应的OBSCURE方法MDE,并从该MDE中加载模糊化公式和/或模式(处理框2150,2152)。然后,OBS⑶RE方法2140根据处理框2150加载的模式和/或公式施加模糊化变换(处理框2154)。此后OBSCURE方法2140将终止(终止于终止点2156)。

[1576] FINGERPRINT (指纹)

[1577] 图58b示意了在较佳实施例中有代表性FINGERPRINT方法2160示例所执行的进程控制步骤流程。在较佳实施例中,FINGERPRINT方法2160使用ー个“指紋”标识来“标记”发布的信息内容是谁发布的以及/或者检验这些标记。这种方式可以允许人们在以后通过检验该信息内容得以查明是谁发布了未受保护的信息内容。FINGERPRINT方法2160可以(举例来说)在代表数据流的声音、影像、或ニ进制格式信息中插入用户ID。FINGERPRINT方法2160非常类似图58a所示的OBSCURE方法2140,但有一点区别是:FINGERPRINT方法处理框2174所施加的变换不是模糊化被发布的信息内容而是在其中“留下指紋”。

[1578] 图58c示意了 “留指纹”过程2160的ー个例子,该过程在被发布的信息内容留下指纹2161,这些指纹标识了 :对象、和/或产权、和/或请求使用该被发布对象信息内容的用户、和/或发布的日期和时间、和/或被发布信息内容的其它标识标准。

[1579] 这种指纹2161可以是“掩埋的”-其插入方式可以使指纹对于典型用户、破译高手、和/或所有用户是不可见的,这要取决于文件格式、插入算法的完善程度和/或多祥性、以及是否可以得到原始的、未留下指纹的信息内容(供反向算法工程比较)。在较佳实施例中,可以至少部分地将插入的或嵌入的指纹2161进行加密,以便使它们更加安全。这种被插入的指纹2161可以以“明白的”(明文)形式嵌入到被发布的信息内容中。

[1580] 指纹2161可适用于多种目的,包括(举例来说)一些经常涉及的用途如证明发布的材料是否被不合理的使用,以及指明被发布的信息内容的来源。尤其在制止软件盗版方面,指纹可以非常有用。对于大多数类型的电子传递信息,使用指纹技术还可以有助于加强这些信息信息内容提供者的权利,这类信息的例子有:电影、录音制品、多媒体、信息数据 库、以及传统的“文献”资料。在防止拷贝方面,指纹技术是比较理想的可选方案或附加方案。

[1581] 许多软件应用盗版行为(举例来说)其现象并非是某个人制作了一份非法拷贝,然后在另外一台自己的计算机上使用,而是将拷贝给予另外一方。这经常会产生ー个非法拷贝的链(或更确切地说是ー个金字塔),因为拷贝被ー个人ー个人传递下去。由于担心嵌入指纹2161而暴露其身份,大多数人可能会不再參与其目前所正在參与的广泛且无意的盗版。在某些情况下,可以用ー种指纹方法来检查信息内容中有无指紋,以帮助加强信息内容提供者的权利。

[1582] 不同的指纹2161可以有不同的安全级别(例如,出于商业考虑,指纹2161 (I)可以是可读的/可识别的,而另ー个指纹2161 (2)则只能对ー个更加可信的代理可读)。更为安全的指纹2161的生成方法可以使用更加复杂的加密技术(如数字签名)以及/或者模糊化位置的方法。为了防止加入指纹的信息被破译高手所识破,可以在不同的位置和/或使用不同的技术嵌入两个或更多指纹2161。如果用来产生更为安全指纹的技术要带来很多不该有的附加开销的话,那么也许只能定期地使用这种更为安全的指紋,而不是毎次发布信息内容的时候都要使用。这样做仍然是有效的,因为加入指纹的主要目标是为了威慑-非法拷贝制作者担心其拷贝行为被发现。

[1583] 例如,某人可能将ー个指纹2161嵌入到拷贝中,而该指纹可以会很方便地被ー个经授权的団体所识别。这些团体可以是分发者、服务人员、客户管理员、或使用VDE电子设备600的票据交換所。可以嵌入指纹2161的ー个或多个附加拷贝或变型(例如,某些指纹带有ー些描述性信息,这些信息说明了部分或全部相关识别信息),并且可以采用更为安全的方式来维护上述一个或多个附加指紋。

[1584] 指纹技术也可以保护隐私。例如,用来识别指纹2161的算法和/或机制可能只有通过特别可信的代理才能得到。

[1585] 指纹2161可有多种形式。例如,在一幅图像中,可以采用一种视觉不易察觉的方式(至少按正常的肉眼观察者是这样的)将可每N个像素(这些像素可能布满整幅图象,或该图象的子区域)的颜色进行极细微的移位通过分析图象便可以破译这些移位(可以利用原始图象,也可以不用),图象中每一点有无颜色(或灰度)移位实际对应于存贮的数字信息中一个或多个ニ进制位“I或O”的变化。这N个像素可以在顺序上或者是一致的,或者伪随机的(但至少部分地可以由对象制作者、对象提供者、客户管理员和/或VDE管理员来解释)。

[1586] 对图象(或移动图象、声音等)的某些其它类型修改也可以产生类似的效果(也就是说,通过对原始信息的某些修改,将信息以ー种不易察觉的方式存贮),这种修改方式也是可行的。例如,可以对被存贮的声音信息的频率做某些极其细微的修改,