[go: up one dir, main page]

WO2021091410A1 - Universal system for distributed secure remote voting - Google Patents

Universal system for distributed secure remote voting Download PDF

Info

Publication number
WO2021091410A1
WO2021091410A1 PCT/RU2019/000784 RU2019000784W WO2021091410A1 WO 2021091410 A1 WO2021091410 A1 WO 2021091410A1 RU 2019000784 W RU2019000784 W RU 2019000784W WO 2021091410 A1 WO2021091410 A1 WO 2021091410A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
module
activity
biometric
voting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/RU2019/000784
Other languages
French (fr)
Russian (ru)
Inventor
Андрей Юрьевич ТАМОЙКИН
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sberbank PAO
Original Assignee
Sberbank PAO
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
Application filed by Sberbank PAO filed Critical Sberbank PAO
Publication of WO2021091410A1 publication Critical patent/WO2021091410A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING OR 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q90/00Systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not involving significant data processing
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Definitions

  • the present technical solution generally relates to the field of computational data processing, and in particular to distributed secure remote voting systems.
  • voting-related activities impose additional difficulties on the people taking part in them: in person, following additional instructions (for example, sending a mail message of a certain format to specific address, detachment / attachment to the polling station), etc. - as well as additional manual work on organizing, conducting and processing the received data, which is due to legislative regulations, safety requirements and other standards. All this often requires additional knowledge from a citizen of the Russian Federation in order to exercise his right (for example, organizing a general meeting of owners of an apartment building), additional activity (to come to the polling station) and opens up opportunities for fraud (filling out ballots for people who did not participate in the activity).
  • the claimed technical solution proposes a new approach in the field of distributed secure remote voting using mobile devices.
  • the technical problem or technical problem to be solved is to create a new platform for remote voting with a high degree of reliability and accuracy of vote counting.
  • the main technical result achieved in solving the above technical problem is to enable secure remote voting using mobile devices.
  • an automated remote voting system comprising:
  • registration and primary authentication module performing registration and primary user authentication in the system to gain access to the biometric authentication module
  • biometric authentication module that performs biometric user authentication, access to voting, formation of a profile and user rights in the system using biometric verification algorithms
  • an electronic signature module that enables the use of an electronic signature by a user in the system and ensures user identification when connected to the system via a network
  • module for processing internal requests which interprets internal requests from system modules into requests to the module for integration with external systems
  • the modules are located in a single computing device and are united by a single tttin.
  • At least two modules are located on different computing devices and are interconnected by data transmission channels.
  • the computing device is a personal computer, server, or mainframe. DESCRIPTION OF DRAWINGS
  • FIG. 1 illustrates a general diagram of the claimed automated remote voting system.
  • FIG. 2 illustrates a general view of a computing device for implementing a system.
  • Automated remote voting system a system that allows you to organize and conduct voting (including elections, decisions on certain issues, opinion polls, referendums, etc. further activity).
  • the system implements the necessary conditions for carrying out these activities, such as: identification, anonymity, processing of results, formation of decisions, process audit, data storage, etc. - depending on the need for each specific type of activity.
  • the system implements this functionality using the mobile devices of the system users and the server part of the system, which allows users of the system to participate in voting or referendum without being personally present at the polling station.
  • Initiator - a person or group of persons initiating an activity in which a vote or a referendum is required.
  • the initiator submits to the system the question / questions for which activity is required, the necessary properties of the activity, the format of the activity, initial data (lists of users with the right to access the activity, lists of candidates, in case of elections, a list of questions, etc.) and additional materials for links to activity (explanatory note on the bill, information materials for the agenda of the meeting of owners, biographies of candidates, etc.).
  • Administrator a person or a group of persons responsible for the technical organization of the created activity.
  • the administrator takes the actions necessary to implement the declared properties of activity, support users at the time conducting activity, ensures the overall safety and health of the system, is responsible for the performance of the system at the time of activity.
  • Biometric identification requires a pre-created biometric profile.
  • the system connects to an external biometric system and, according to the biometric sample received from the user, requests data from the user profile in the biometric system, which are used to create a user's personal account.
  • the system sends an OTP (one-time password) token to the user's mobile device number specified in the biometric profile to confirm registration by the second factor. If the user successfully enters the second factor, the system creates a personal account and user profile, and also prompts the user to set an authentication method for subsequent use: pin code; biometric authentication supported by the device.
  • OTP one-time password
  • the system saves a number of parameters obtained from the biometric profile, as well as parameters that the user can additionally enter on their own in their personal account after registration. These parameters, at the user's choice, can be displayed in the personal account, or hidden from the user and stored exclusively in the internal databases of the system. According to the data entered by the user, the system, if possible, checks their reliability; for this, requests are made to external electronic registers containing this data.
  • the system After the formation of a user profile, the system automatically verifies this profile with the activity profile, which is generated when a new activity is created in the system. If the user can take part in the activity, then the system automatically grants the user access to participate in the activity. To participate in a number of activities (in which authorization is required), the user must use an electronic digital signature (EDS), including integrated with the cloud EDS service system.
  • EDS electronic digital signature
  • the user can be assigned the role of initiator of activity (including granulation to specific types activities and properties that the initiator can assign). Also, the role of initiator can be assigned not to a specific user, but to a separate account, which corresponds, for example, to a certain department.
  • the initiator can create an activity: vote or referendum - and also select properties for the created activity.
  • the initiator Before creating an activity, the initiator must pass biometric authorization in the system, for this he provides his biometric sample (face, fingerprint, or other).
  • the system makes a request to an external biometric system and sends the OTP to the initiator in the form of a password in an SMS message. After the initiator enters an SMS message, he is considered authorized and gets access to the activity creation functionality, according to his rights in the system.
  • the initiator To create an activity, the initiator must specify the following attributes: the type of activity, the name of the activity, the time range of availability for voting on the created activity, a list of questions put to vote, additional materials for review, as well as the conditions for user access to this activity and the properties required to carry out this activity. After that, the system checks the sufficiency of the input data and, if possible, requests additional data from third systems with which there is integration.
  • the initiator indicates the address of the house, and the system automatically generates a register of owners of residential premises of this house from the integrated state system. If it is impossible to automatically enrich the activity, the system requests additional data from the initiator.
  • the system determines the circle of users who can take part in the activity by comparing the activity profile and the user profile, and also receives (if possible) additional information from third-party systems, while the system must be able to unambiguously compare user profile and additional data on this user from an external system (for example, by a unique user identifier).
  • the system After determining the circle of users who can take part in the activity, the system notifies the user about the availability of a new activity using a push notification (or SMS message, or email or otherwise).
  • a push notification or SMS message, or email or otherwise.
  • a user who wants to take part in an activity must authenticate in the application on his device, select the desired activity and click "Participate".
  • the application forms a request to the system about the beginning of the activity process.
  • the system processes the request and sends directives and data to the application according to the activity process.
  • the user takes part in the activity according to the process and gives his vote on this or that issue.
  • the system processes the user's voice according to the activity process and generates the final result, which, according to the process, can also be transferred to a third-party system and / or returned to the initiator of the activity.
  • FIG. 1 shows a general diagram of the claimed system (100).
  • System (100) receives streams of information that are generated by users. The information entering the system (100) is distributed among the appropriate modules responsible for its processing in an automated mode. System (100) contains a set of interconnected data processing modules.
  • the registration and primary authentication module (101) is intended for registration of a new user of the system and subsequent primary authentication of the user.
  • Basic authentication is required to be able to use the functions of the biometric authentication module (102) and the activity module (105).
  • the registration and primary authentication module (101) asks the user for the mobile device number, full name and date of birth. Having received the indicated data, the module (101) sends a message with a confirmation code to the indicated mobile device number, which must be entered by the user. Having received the correct confirmation code, module (101) registers a new user.
  • the module (101) allows the user to select options for subsequent authentication, for example, fingerprint authentication on a mobile device, pincode authentication on a mobile device, authentication using a login / password link, etc.
  • the module (101) offers to use one of the authentication methods, for example, by a fingerprint, by a pin code, by a login + password link, or any other authentication method supported by the user's mobile device.
  • the module (101) transfers the right to access the user to the biometric authentication module (102) and the activity module (105).
  • the biometric authentication module (102) is intended for biometric user authentication, providing access to voting, forming a profile and user rights in the system. Module (102) interacts with the adjacent biometric authentication and identification system to implement biometric verification algorithms, with the internal database of the system (100), and with other modules that need to increase the level of trust in the user to provide access to additional functions or implement various properties of the activity. For successful authentication, the user must register once with the "Biometric Authentication Center".
  • the biometric authentication center can be a separate special body or any other system in which it is possible for users to provide biometric samples in person and the identity of the applicants is produced.
  • the module (102) asks the user for a biometric sample (face photo) and compares the received information with the sample stored in the biometric authentication center.
  • the module (102) asks the user for a biometric sample - a person; in this case, the module (102) does not take photos, but independently selects a frame from the video sequence from the camera of the mobile device.
  • the system (100) receives from the module (102) contextual information about the user who is currently authenticated in the application (name, date of birth and mobile device number). The information obtained is compared with samples stored at the biometric authentication center for authentication. If the biometric samples, full name, date of birth and mobile device number match correctly, the system (100) sends an SMS message with a confirmation code to the mobile device number, which must be entered by the user in the system (100). After the user enters the confirmation code, the system (100) generates a user profile in the internal database.
  • the formation of user rights in the system (100) is carried out sequentially. For each activity in the system (100), a list of conditions is formed in advance that the user must meet in order to obtain rights both to the activity itself and to one or another action within the activity. When forming or changing a user profile, it is assessed for compliance with the conditions necessary to obtain these rights. System (100) grants rights to the user at the time of their request, each time analyzing the request and its context, in accordance with the level of trust to this user. [0031] Example: a user has the right to initiate a meeting of owners, but has never done so, which means that the system (100) will allow this to be done only after additional user identification.
  • the system (100) transmits static data about the user (for example, the geolocation of the mobile device, timestamp, etc.), as well as dynamic data that the system (100) calculates independently (statistics on the frequency of user requests , uniqueness of requests, user behavior in the system (100), etc.), on the basis of which the level of trust in a particular request is formed.
  • static data about the user for example, the geolocation of the mobile device, timestamp, etc.
  • dynamic data that the system (100) calculates independently statistics on the frequency of user requests , uniqueness of requests, user behavior in the system (100), etc.
  • the system (100) can choose a way to authenticate the user and offer him additional checks to increase the level of trust.
  • the system (100) can facilitate user access, in the case of a high level of trust.
  • the determination of the legality of the user's participation in a particular activity is carried out sequentially. As part of the creation of each activity, a list of criteria is formed by which the circle of persons allowed to participate in the activity is determined. Further, each user profile is checked against the specified criteria. If the activity is available to the user, the system (100) generates a notification about the possibility of participation and sends it to the user in the form of a push notification, SMS message, email, etc.
  • the electronic signature module (103) is intended for using an electronic signature by a user in the system (100) and providing user identification when connected to the system (100).
  • Module (103) interacts with an external cloud digital signature system. Integration is carried out after the biometric registration of the user. There are two types of possible integration. The first one is integration with an existing cloud EDS account. The second is to create a new account in the cloud EDS service. As part of the integration, the module (103) transmits to the cloud EDS system the objects created as part of the activity for signing the user's personal EDS. Also, module (103) provides the user with a certificate for establishing mutual identification within a secure session (mutual TLS protocol).
  • the activity control module (104) is designed to initiate and administer activity by a user in the system (100). User access to the module (104) is determined by the user profile using the module (102). This module (104) also contains pre-prepared descriptions of some types of activities, including a list of conditions for initializing an activity, dynamic variables for organizing an activity and methods for obtaining them (a list questions / candidates, a list of users admitted to the activity, etc.), as well as a set of properties that the activity possesses.
  • a list of conditions is formed that the user profile must meet in order to obtain the rights to create a particular type of activity.
  • a basic activity profile is formed, where a list of variables is added, the values for which must be provided to initialize the activity. For some variables, a directive can be specified for receiving values from an external source (if such a source is integrated), while these directives are executed only after the activity is initialized by the initiator.
  • the initiation of activity is carried out sequentially. After creation or modification, the user profile is compared with the list of conditions for each activity, and in case of a match, the function of initializing a new activity becomes available to the user. A user who wants to initialize a new activity must pass authorization, while the conditions for the "complexity" of authorization are written in the list of conditions for each activity. After authorization, the initiator must indicate the values of the activity variables (including but not limited to: the name of the activity, the time range of availability for voting on the generated activity, the list of questions put to vote, additional materials for review, etc.).
  • the initiator must indicate in the activity a list of persons allowed to participate and a list of questions for discussion (or a list of candidates, etc.).
  • the list of persons allowed to participate can be a table with specific users of the system (100) or the conditions under which the system (100) will determine the participants on its own. After that, the system (100) generates the final activity profile in accordance with the information received from the initiator, as well as the baseline profile for the initiated activity, adding activity properties.
  • the system (100) provides for the creation of activity from scratch by almost any user (minimum conditions for obtaining rights), in this case, the user independently selects the activity properties and variables that will be used in the activity. Persons admitted to such activity are selected by determining the conditions for selecting user profiles. This type of activity is mainly intended for conducting surveys or social research. Each user of the system (100) in his profile can select the type of activity that will be offered to him by the system (100). The final activity profile is transmitted for execution to the activity execution module (105).
  • the Activity Conducting Module (105) is designed to process and implement a user initiated activity. Module (105) receives an activity profile from module (104). Further, the module (105) sequentially performs several stages of processing the activity profile.
  • a new activity object is created from the activity profile, which contains all information data: name, agenda / questions / candidates, dates of the activity, conditions for the activity, additional materials, a list of allowed users, if any, etc.
  • an access policy to the activity object is created, which determines the order and rules of access to this activity and contains the following parameters: date and time of activity availability, activity access properties, authorization criteria for accessing an activity - these conditions are formed from variables in the activity profile, properties that are specified in the activity profile, as well as from any other information specified in the activity profile.
  • An access policy is bound to an activity object by a unique identifier and is an integral part of it. Further, the technical implementation of the activity properties is carried out (“the user has the right to take part in voting” or the activity has the property “the ability to vote without authorization”, etc.).
  • the module (105) After creating an activity object and a policy for accessing an activity object, the module (105) generates an “activity lifecycle”, which determines the order of the activity phases (preparation, collection of votes, vote processing, vote counting, registration of results, storage of results) and the start date and the duration of these phases according to the data specified in the activity profile and preset parameters.
  • Each phase corresponds to a part of the automated process and contains information on additional directives that must be executed to implement certain properties of the activity (in addition to the properties that are displayed in the activity access policy).
  • Activity properties can correspond to only one of the phases of the life cycle or be distributed over several phases, depending on the specific property.
  • the activity phase is tied to the activity object and changes in accordance with the life cycle of the activity phase.
  • the system (100) After creating all the entities, the system (100) starts working with the activity according to its life cycle, in the order of phases. [0041]
  • the second step is processing user requests made within the activity. After creating an activity profile, the user profile is checked and the conditions for allowing the user to be active. If the user profile passes the activity admission conditions, then the system (100) notifies the user about the detection of new activity. The user for whom the activity was detected can take part in them - for this he, using the application from his mobile device, sends to the system (100) a request for additional information on the activity.
  • System (100) receiving a request for activity from the user, checks the current phase of activity and, if the phase allows adding one more user (preparation, collecting votes), then system (100) checks the access policy associated with the activity object to provide access to the user. Then, one by one, the presence of activity properties in the access policy is checked and the user is checked against them. In case of a successful check, the system (100) sends data about the activity (name, dates and format of the event, additional materials, etc.) to the user's device.
  • the module (105) implements the following property (if it is active "Voice confidentiality in data processing technology"). If this property is present, the system (100), after going to the preparation stage (immediately after the creation of activity entities: activity object, access policy, and life cycle), releases asymmetric encryption keys. Also, at the preparation stage, the user can view additional information on activity, as well as edit documents on activity, if the activity suggests such an opportunity (for example, suggest edits to a document). The preparation stage lasts from the moment of initiating an activity until the moment of starting voting by activity specified in the activity profile. Further user requests to the activity object are checked in accordance with the activity access policy and routed in accordance with the directives specified for the current activity phase in accordance with the activity lifecycle.
  • the user At the stage of collecting votes, the user generates a request to the activity object to vote. If the property "Voice confidentiality in technical means of data processing" is active, the system (100) provides a public key in response to a user's request. Next, the user makes a choice in terms of activity. The process of adding a user's decision to the internal database of the system (100) is accompanied by registration, within which a time stamp is added to each vote at which the registration took place. All time stamps, in which the decisions of the users were registered are additionally stored separately from the decisions of the users.
  • the user's decision is recorded in the format: "Unique identifier”, “Timestamp”, “User”, “Hash sum signed by the user's public key certificate”, “User's decision (as received: encrypted or open ) ". Of the specified values, only the unique identifier, timestamp, and solution are required.
  • the received decisions of users are signed using the EDS of the system (100) and are transmitted further for processing. The stage of collecting votes continues according to the data specified in the object of activity.
  • the system (100) automatically prepares votes for counting.
  • the primary processing of the received votes begins with checking the integrity of the data in the internal database of the system (100). For this, a hash of all collected data is generated and checked against the signed hash of the same dataset. If there are no differences, then the data is accepted for processing, if there are differences, then the system (100) notifies the initiator and the administrator about this. Further, the module (105) requests a list of timestamps generated earlier during the registration of votes. And for each voice it checks the added timestamp against the list of timestamps - only those voices for which matches are found are taken into account. Thus, a check is carried out for possible addition of votes by interested parties.
  • the activity property directives added in the vote processing phase are processed. If the property "Protection from” coercion “during electronic voting or not” is specified, then the data set generated after initial checks on users is analyzed. If several votes received from one user are detected, then within the framework of this property, the module (105) removes from the list of votes all the user's votes, except for the last one. If the property "Possibility of parallel voting or not” is specified, then this property implies the possibility of activity through other channels (including the traditional one with personal presence at the polling station) in parallel with the activity in the system (100).
  • the module (105) After executing the directives specified in the properties phase, the module (105) prepares a list of data for transmission to the stage of counting votes. If an algorithm of random permutations is used, then system (100) as input data to the next stage can transmit both mixed data and the initial anonymized list for additional verification on two data sets. At the stage of counting votes, system (100) implements the directives described in the properties, specified in this phase or the default directive. At the end of the vote counting stage, the generated results are signed with the system EDS (100) and stored in the internal database.
  • the system (100) proceeds to the stage of registration of results.
  • the results are drawn up in a predetermined form (report, table, machine view, etc.) and transmitted to the initiator of the activity.
  • the module (105) generates the final list of data for the activity and signs it with an EDS.
  • the list can additionally be linked to lists of users who took part in this activity, an object of activity or data from it.
  • the results and additional data are stored in a dedicated, secure database. After saving the results, the module (105) closes any access to the conducted activity.
  • the module for integrating with external systems (106) is designed to interact with external systems.
  • Module (106) transmits the results of certain stages of work to external systems, interacting with module (105). It also provides other systems with access interfaces that implement the functionality of processing external requests and provide the requested data upon requests from external systems.
  • Module (106) also implements the functional of normalizing external data received from external systems to bring these data in accordance with the schemes of the system's own databases (100).
  • the module (106) expects a request from another module of the system (100) or a request to the program interface from an external system.
  • the module (106) Upon receiving a request from another module of the system (100), the module (106) generates the necessary information for processing by the external system. After generating the necessary information, the module (106) establishes a connection with the external system according to the rules of the external system. For this, module (106) uses algorithms that are developed in advance for a specific integration.
  • the module for processing internal requests (107) is designed to interpret internal requests from modules of the system (100) into requests to the module for integrating with external systems (106). As input, the module (107) expects a request from another module of the system (100) (for example, from the biometric authentication and identification module (102)). The request must contain a pointer to the data type (for example, "unique user identifier"), which must be requested from the external system. If this identifier is absent, the request is rejected. If the identifier is present, the module (107) analyzes the relationship table between the internal data type of the system (100) and external systems in which you can get this data type. The table is generated and updated every time an external data source is connected. If there are no systems, then the request is rejected.
  • the data type for example, "unique user identifier”
  • the module (107) analyzes the rest of the request for the presence of metadata, which is necessary for the external system to provide data of the required type. If the request contains all the metadata, then the module (107) redirects the request to the module for integrating with external systems (106). If there is no meta data, then the module (107) generates a response with the need to provide additional meta data to the module that requested the data. Further, the module (107) awaits a response from the module for integrating with external systems (106). Upon receipt of a response, the module (107) redirects the response to the module that made the request.
  • the audit module (108) is designed to implement algorithms for checking the actions of a user of the system (100) and maintaining a system log based on the recorded information.
  • a data packet of the following form is generated: "Unique identifier”, “Timestamp”, “User”, “Hash sum signed by the user's public key certificate”, “User's decision ( as received: encrypted or open) "taking into account all additional properties of the activity.
  • this package is divided by module (108) into two components: a part describing the user (for example, "User”, “Hash sum signed by the user's public key certificate") and the user's will (for example, "Unique identifier", “Timestamp” "User's decision”).
  • a part describing the user for example, "User”, "Hash sum signed by the user's public key certificate”
  • the user's will (for example, "Unique identifier”, “Timestamp” "User's decision”).
  • three independent data packets are obtained: the complete set is sent via a secure communication channel with mutual identification to the side of the server side of the system (100) for further processing.
  • the data describing the user is sent to a public non-anonymous blockchain system.
  • Data describing the user's will is sent to the public anonymous blockchain system.
  • the module (108) publishes technical data: in the absence of encryption of ballots - an open anonymized table with user votes (without binding users to these votes). In the case of encryption, an impersonal table containing the cipher texts of all voices. Upon completion of the activity, the module (108) collects information received in the blockchain systems and compares these data.
  • FIG. 2 shows an example of a general view of a computing device (300) for implementing the system (100).
  • the computing device (300) contains one or more processors (301) united by a common bus of information exchange, memory means such as RAM (302) and ROM (303), input / output interfaces (304), devices input / output (1105), and a device for networking (306).
  • the processor (301) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as: Intel TM, AMD TM, Apple TM, Samsung Exynos TM, MediaTEK TM, Qualcomm Snapdragon TM, etc. Under the processor or one of the processors used in the device (300), it is also necessary to take into account a graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the system (100), and can also be used for training and applying models machine learning in various information systems.
  • a graphics processor for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the system (100), and can also be used for training and applying models machine learning in various information systems.
  • RAM (302) is a random access memory and is intended for storing machine-readable instructions executed by the processor (301) for performing the necessary operations for logical data processing.
  • RAM (302) contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (302).
  • ROM (303) is one or more persistent storage devices, for example, hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.
  • HDD hard disk drive
  • SSD solid state data storage device
  • EEPROM electrically erasable programmable read-only memory
  • NAND flash memory
  • optical storage media CD-R / RW, DVD-R / RW, BlueRay Disc, MD, etc.
  • I / O interfaces are used to organize the operation of the components of the computing device (300) and to organize the operation of external connected devices.
  • the choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.
  • I / O means for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touchpad, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.
  • the networking tool (306) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like.
  • One or more means (306) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and dr.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

The present technical solution as a whole relates to the field of computerized data processing, in particular to remote voting systems. An automated remote voting system comprising: a registration and primary authentication module which carries out registration and primary authentication of a user in a system for gaining access to a biometric authentication module; a biometric authentication module, which carries out biometric authentication of a user, gains access to voting and generates a user profile and user permissions in the system using biometric verification algorithms; an electronic signature module allowing use of an electronic signature by a user in the system and for identifying a user with a network connection to the system; an activity control module, which allows initiation and administration of activity by a user in the system; an activity performance module, which allows the processing and performance of activity initiated by a user; a module for integration with external systems, which interacts with external systems; a module for processing internal requests, which interprets internal requests from system modules to form requests to the module for integration with external systems; an audit module, which monitors user actions in the system and keeps a system log based on recordable information.

Description

УНИВЕРСАЛЬНАЯ СИСТЕМА РАСПРЕДЕЛЕННОГО ЗАЩИЩЕННОГО ДИСТАНЦИОННОГО ГОЛОСОВАНИЯ UNIVERSAL DISTRIBUTED PROTECTED REMOTE VOTING SYSTEM

ОБЛАСТЬ ТЕХНИКИ FIELD OF TECHNOLOGY

[0001 ] Настоящее техническое решение, в общем, относится к области вычислительной обработки данных, а в частности, к системам распределенного защищенного дистанционного голосования. [0001] The present technical solution generally relates to the field of computational data processing, and in particular to distributed secure remote voting systems.

УРОВЕНЬ ТЕХНИКИ LEVEL OF TECHNOLOGY

[0002] В настоящее время активности, связанные с голосованием (выборы, собрания собственников, референдумы и т.д.) накладывают дополнительные сложности на людей, принимающих в них участие: личное присутствие, выполнение дополнительных инструкций (например, отправка почтового сообщения определенного формата на определенный адрес, открепление/прикрепление к избирательному участку) и т.д. - а также дополнительную ручную работу по организации, проведению и обработки полученных данных, что обусловлено законодательными нормативами, требованиями безопасности и другими нормами. Все это зачастую требует от Гражданина РФ дополнительных знаний, чтобы воспользоваться своим правом (например, организация общего собрания собственников многоквартирного дома), дополнительной активности (прийти на избирательный участок) и открывает возможности для мошенничества (заполнение бюллетеней за людей, не участвовавших в активности). Современные технологии позволяют реализовать систему, способную смягчить требования к участнику активности. [0003] Такие системы широко известны из уровня техники, например, из следующих патентных документов: US 7237717 В1 (IP HOLDINGS INC, 03.07.2007), US 8892456 B2 (BROADRIDGE INVESTOR COMMUNICATION SOLUTIONS INC, 18.11.2014). Общим недостатком существующих решений в данной области является недостаточная защищенность данных при реализации удаленного голосования. [0002] Currently, voting-related activities (elections, meetings of owners, referendums, etc.) impose additional difficulties on the people taking part in them: in person, following additional instructions (for example, sending a mail message of a certain format to specific address, detachment / attachment to the polling station), etc. - as well as additional manual work on organizing, conducting and processing the received data, which is due to legislative regulations, safety requirements and other standards. All this often requires additional knowledge from a citizen of the Russian Federation in order to exercise his right (for example, organizing a general meeting of owners of an apartment building), additional activity (to come to the polling station) and opens up opportunities for fraud (filling out ballots for people who did not participate in the activity). Modern technologies make it possible to implement a system that can mitigate the requirements for a participant in an activity. [0003] Such systems are widely known from the prior art, for example, from the following patent documents: US 7237717 B1 (IP HOLDINGS INC, 03.07.2007), US 8892456 B2 (BROADRIDGE INVESTOR COMMUNICATION SOLUTIONS INC, 18.11.2014). A common drawback of existing solutions in this area is insufficient data security when implementing remote voting.

СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ ESSENCE OF THE TECHNICAL SOLUTION

[0004] Заявленное техническое решение предлагает новый подход в области распределенного защищенного дистанционного голосования с помощью мобильных устройств. [0004] The claimed technical solution proposes a new approach in the field of distributed secure remote voting using mobile devices.

[0005] Решаемой технической проблемой или технической задачей является создание новой платформы дистанционного голосования, обладающей высокой степенью надежности и точностью подсчета голосов. [0006] Основным техническим результатом, достигающимся при решении вышеуказанной технической проблемы, является обеспечение возможности защищенного дистанционного голосования с помощью мобильных устройств. [0005] The technical problem or technical problem to be solved is to create a new platform for remote voting with a high degree of reliability and accuracy of vote counting. [0006] The main technical result achieved in solving the above technical problem is to enable secure remote voting using mobile devices.

[0007] Заявленный результат достигаются за счет автоматизированной системы дистанционного голосования, содержащей: [0007] The claimed result is achieved by an automated remote voting system, comprising:

• модуль регистрации и первичной аутентификации, осуществляющий регистрацию и первичную аутентификацию пользователя в системе для получения доступа к модулю биометрической аутентификации; • registration and primary authentication module, performing registration and primary user authentication in the system to gain access to the biometric authentication module;

• модуль биометрической аутентификации, осуществляющий биометрическую аутентификацию пользователя, доступ к голосованию, формирование профиля и прав пользователя в системе с помощью алгоритмов биометрической проверки;• a biometric authentication module that performs biometric user authentication, access to voting, formation of a profile and user rights in the system using biometric verification algorithms;

• модуль электронной подписи, осуществляющий возможность использования электронной подписи пользователем в системе и обеспечивающий идентификацию пользователя при сетевом подключении к системе; • an electronic signature module that enables the use of an electronic signature by a user in the system and ensures user identification when connected to the system via a network;

• модуль управления активностью, осуществляющий возможность инициации и администрирования активности пользователем в системе; • an activity control module that enables the initiation and administration of activity by a user in the system;

• модуль проведения активности, осуществляющий возможность обработки и реализации, инициированной пользователем, активности; • a module for conducting an activity, which provides the ability to process and implement a user-initiated activity;

• модуль интеграции с внешними системами, осуществляющий взаимодействие с внешними системами; • module for integration with external systems, which interacts with external systems;

• модуль обработки внутренних запросов, осуществляющий интерпретацию внутренних запросов от модулей системы в запросы к модулю интеграции с внешними системами; • module for processing internal requests, which interprets internal requests from system modules into requests to the module for integration with external systems;

• модуль аудита, выполняющий мониторинг действий пользователя системы и ведения на основании фиксируемой информации системного журнала. • an audit module that monitors the actions of the system user and maintains the system log based on the recorded information.

[0008] В одном из частных вариантов осуществления модули располагаются в едином вычислительном устройстве и объединены единой тттиной. [0008] In one particular embodiment, the modules are located in a single computing device and are united by a single tttin.

[0009] В другом частном варианте осуществления по меньшей мере два модуля располагаются на различных вычислительных устройствах и объединены между собой каналами передачи данных. [0009] In another particular embodiment, at least two modules are located on different computing devices and are interconnected by data transmission channels.

[0010] В другом частном варианте осуществления вычислительное устройство представляет собой персональный компьютер, сервер или мейнфрейм. ОПИСАНИЕ ЧЕРТЕЖЕЙ [0010] In another particular embodiment, the computing device is a personal computer, server, or mainframe. DESCRIPTION OF DRAWINGS

[ООП] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых: [OOP] Features and advantages of the present invention will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

[0012] Фиг. 1 иллюстрирует общую схему заявленной автоматизированной системы дистанционного голосования. [0012] FIG. 1 illustrates a general diagram of the claimed automated remote voting system.

[0013] Фиг. 2 иллюстрирует общий вид вычислительного устройства, для реализации системы. [0013] FIG. 2 illustrates a general view of a computing device for implementing a system.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ CARRYING OUT THE INVENTION

[0014] В данном техническом решении могут использоваться для ясности понимания работы такие термины как «инициатор», «администратор», которые в общем виде следует понимать, как «пользователь» системы. [0014] In this technical solution, terms such as "initiator", "administrator", which in general should be understood as a "user" of the system, can be used for clarity of understanding of the operation.

[0015] Автоматизированная система дистанционного голосования - система, позволяющая организовывать и проводить голосования (в том числе выборы, решения по определенным вопросам, соцопросы, референдумы, и т.д. далее активности). Система реализует необходимые условия проведения указанных активностей, такие как: идентификация, анонимность, обработка результатов, формирование решений, аудит процесса, хранение данных и т.д. - в зависимости от необходимости для каждого конкретного типа активности. При этом система реализует данный функционал с использованием мобильных устройств пользователей системы и серверной части системы, что позволяет пользователям системы участвовать в голосовании или референдуме без личного присутствия на избирательном участке. [0015] Automated remote voting system - a system that allows you to organize and conduct voting (including elections, decisions on certain issues, opinion polls, referendums, etc. further activity). The system implements the necessary conditions for carrying out these activities, such as: identification, anonymity, processing of results, formation of decisions, process audit, data storage, etc. - depending on the need for each specific type of activity. At the same time, the system implements this functionality using the mobile devices of the system users and the server part of the system, which allows users of the system to participate in voting or referendum without being personally present at the polling station.

[0016] В системе реализованы следующие профили пользователей платформы: Инициатор - лицо или группа лиц, инициирующее активность, в рамках которой требуется проведение голосования или референдума. Инициатор предоставляет в систему вопрос/вопросы, по которым требуется активность, необходимые свойства активности, формат активности, исходные данные (списки пользователей с правом доступа к активности, списки кандидатов, в случае выборов, перечень вопросов и т.д.) и дополнительные материалы для привязки к активности (пояснительная записка по законопроекту, информационные материалы для повестки собрания собственников, биографии кандидатов и т.д.). [0016] The following user profiles of the platform are implemented in the system: Initiator - a person or group of persons initiating an activity in which a vote or a referendum is required. The initiator submits to the system the question / questions for which activity is required, the necessary properties of the activity, the format of the activity, initial data (lists of users with the right to access the activity, lists of candidates, in case of elections, a list of questions, etc.) and additional materials for links to activity (explanatory note on the bill, information materials for the agenda of the meeting of owners, biographies of candidates, etc.).

Администратор - лицо или группа лиц, отвечающая за техническую организацию созданной активности. Администратор осуществляет действия, необходимые для реализации заявленных свойств активности, поддержку пользователей в момент проведения активности, обеспечивает общую безопасность и работоспособность системы, отвечает за производительность системы в момент активности. Administrator - a person or a group of persons responsible for the technical organization of the created activity. The administrator takes the actions necessary to implement the declared properties of activity, support users at the time conducting activity, ensures the overall safety and health of the system, is responsible for the performance of the system at the time of activity.

Пользователь - гражданин, который имеет право участвовать в созданной активности. [0017] Для регистрации в системе пользователю необходимо однократно удаленно предоставить следующие данные: номер мобильного устройства, ФИО, дата рождения. После чего пройти биометрическую идентификацию для создания личного кабинета и обогащения профиля пользователя из доверенного источника. Биометрическая идентификация требует наличия заранее созданного биометрического профиля. Для этих целей система подключается к внешней биометрической системе и, по полученному от пользователя биометрическому образцу, запрашивает в биометрической системе данные из профиля пользователя, которые используются для создания личного кабинета пользователя. User is a citizen who has the right to participate in the created activity. [0017] To register in the system, the user must remotely provide the following data once: mobile device number, full name, date of birth. Then go through biometric identification to create a personal account and enrich the user profile from a trusted source. Biometric identification requires a pre-created biometric profile. For these purposes, the system connects to an external biometric system and, according to the biometric sample received from the user, requests data from the user profile in the biometric system, which are used to create a user's personal account.

[0018] После идентификации пользователя система отправляет OTP (one-time password) токен на номер мобильного устройства пользователя, указанный в биометрическом профиле для подтверждения регистрации вторым фактором. В случае успешного ввода пользователем второго фактора система создает личный кабинет и профиль пользователя, а также предлагает пользователю установить способ аутентификации для последующего использования: пин-код; биометрической аутентификации, поддерживаемой устройством. В процессе формирования профиля пользователя система сохраняет у себя ряд параметров, полученных из биометрического профиля, а также параметры, которые пользователь может дополнительно ввести самостоятельно в личном кабинете после регистрации. Данные параметры по выбору пользователя могут быть отображены в личном кабинете, или скрыты от пользователя и храниться исключительно во внутренних базах данных системы. По данным, введённым пользователем, система, при наличии возможности, проводит проверку их достоверности, для этого осуществляются запросы к внешним электронным реестрам, содержащим эти данные. [0018] After the user is identified, the system sends an OTP (one-time password) token to the user's mobile device number specified in the biometric profile to confirm registration by the second factor. If the user successfully enters the second factor, the system creates a personal account and user profile, and also prompts the user to set an authentication method for subsequent use: pin code; biometric authentication supported by the device. In the process of forming a user profile, the system saves a number of parameters obtained from the biometric profile, as well as parameters that the user can additionally enter on their own in their personal account after registration. These parameters, at the user's choice, can be displayed in the personal account, or hidden from the user and stored exclusively in the internal databases of the system. According to the data entered by the user, the system, if possible, checks their reliability; for this, requests are made to external electronic registers containing this data.

[0019] После формирования профиля пользователя система автоматически производит сверку этого профиля с профилем активности, который формируется при создании новой активности в системе. Если пользователь может принять участие в активности, то система автоматически предоставляет пользователю доступ для участия в активности. Для участия в ряде активностей (в которых требуется авторизация) пользователь должен использовать электронную цифровую подпись (ЭЦП), в том числе интегрированную с системой сервиса облачной ЭЦП. Помимо функционала участия в голосовании пользователю может быть назначена роль инициатора активности (включая грануляцию до конкретных видов активности и свойств, которые может назначить инициатор). Так же роль инициатора может быть присвоена не конкретному пользователю, а отдельной учетной записи, которая соответствует, например, определенному ведомству. [0019] After the formation of a user profile, the system automatically verifies this profile with the activity profile, which is generated when a new activity is created in the system. If the user can take part in the activity, then the system automatically grants the user access to participate in the activity. To participate in a number of activities (in which authorization is required), the user must use an electronic digital signature (EDS), including integrated with the cloud EDS service system. In addition to the functionality of participation in voting, the user can be assigned the role of initiator of activity (including granulation to specific types activities and properties that the initiator can assign). Also, the role of initiator can be assigned not to a specific user, but to a separate account, which corresponds, for example, to a certain department.

[0020] В зависимости от своих прав в системе инициатор может создать активность: голосование или референдум - а также выбрать для созданной активности свойства. Перед созданием активности инициатор должен пройти биометрическую авторизацию в системе, для этого он предоставляет свой биометрический образец (лицо, отпечаток пальца или иное). Система осуществляет запрос во внешнюю биометрическую систему и отправляет инициатору ОТР в виде пароля в SMS-сообщении. После того, как инициатор вводит SMS- сообщение он считается авторизованным и получает доступ к функционалу создания активности, согласно своим правам в системе. [0020] Depending on his rights in the system, the initiator can create an activity: vote or referendum - and also select properties for the created activity. Before creating an activity, the initiator must pass biometric authorization in the system, for this he provides his biometric sample (face, fingerprint, or other). The system makes a request to an external biometric system and sends the OTP to the initiator in the form of a password in an SMS message. After the initiator enters an SMS message, he is considered authorized and gets access to the activity creation functionality, according to his rights in the system.

[0021] Для создания активности инициатор должен указать следующие атрибуты: тип активности, название активности, временной диапазон доступности для голосования по создаваемой активности, перечень вопросов, поставленных на голосование, дополнительные материалы для ознакомления, а также условия доступа пользователей к данной активности и свойства необходимые для проведения данной активности. После этого система проверяет достаточность входных данных и по возможности запрашивает дополнительные данные из третьих систем, с которыми существует интеграция. [0021] To create an activity, the initiator must specify the following attributes: the type of activity, the name of the activity, the time range of availability for voting on the created activity, a list of questions put to vote, additional materials for review, as well as the conditions for user access to this activity and the properties required to carry out this activity. After that, the system checks the sufficiency of the input data and, if possible, requests additional data from third systems with which there is integration.

Пример: заочное голосование собственников многоквартирного дома. Инициатор указывает адрес дома, а система автоматически формирует реестр собственников жилых помещений этого дома из интегрированной государственной системы. В случае невозможности автоматического обогащения активности система запрашивает дополнительные данные у инициатора. Example: absentee voting of the owners of an apartment building. The initiator indicates the address of the house, and the system automatically generates a register of owners of residential premises of this house from the integrated state system. If it is impossible to automatically enrich the activity, the system requests additional data from the initiator.

[0022] После формирования процесса проведения активности, система определяет круг пользователей, которые могут принять участие в активности путем сравнения профиля активности и профиля пользователя, а также получает (при возможности) дополнительную информацию из сторонних систем, при этом система должна быть в состоянии однозначно сопоставить профиль пользователя и дополнительные данные по этому пользователю из внешней системы (например, по уникальному идентификатору пользователя). [0022] After the formation of the process of conducting the activity, the system determines the circle of users who can take part in the activity by comparing the activity profile and the user profile, and also receives (if possible) additional information from third-party systems, while the system must be able to unambiguously compare user profile and additional data on this user from an external system (for example, by a unique user identifier).

[0023] После определения круга пользователей, которые могут принять участие в активности система с помощью push-уведомления (или SMS-сообщение, или email или иным способом) оповещает пользователя о доступности новой активности. [0023] After determining the circle of users who can take part in the activity, the system notifies the user about the availability of a new activity using a push notification (or SMS message, or email or otherwise).

[0024] Пользователь, который хочет принять участие в активности должен аутентифицироваться в приложении на своем устройстве, выбрать нужную активность и нажать «Принять участие». В этот момент приложение формирует запрос к системе о начале процесса активности. Система обрабатывает запрос и отправляет приложению директивы и данные, согласно процессу активности. [0024] A user who wants to take part in an activity must authenticate in the application on his device, select the desired activity and click "Participate". At this moment, the application forms a request to the system about the beginning of the activity process. The system processes the request and sends directives and data to the application according to the activity process.

[0025] Пользователь принимает участие в активности согласно процессу и отдает свой голос по тому или иному вопросу. Система обрабатывает голос пользователя согласно процессу активности и формирует конечный результат, который также, согласно процессу, может быть передан сторонней системе и/или возвращен инициатору активности. [0025] The user takes part in the activity according to the process and gives his vote on this or that issue. The system processes the user's voice according to the activity process and generates the final result, which, according to the process, can also be transferred to a third-party system and / or returned to the initiator of the activity.

[0026] На Фиг. 1 представлена общая схема заявленной системы (100). [0026] FIG. 1 shows a general diagram of the claimed system (100).

Система (100) принимает потоки информации, которые генерируются пользователями. Информация, поступающая в систему (100) распределяется по соответствующим модулям, ответственным за ее обработку в автоматизированном режиме. Система (100) содержит набор из взаимосвязанных модулей обработки данных. System (100) receives streams of information that are generated by users. The information entering the system (100) is distributed among the appropriate modules responsible for its processing in an automated mode. System (100) contains a set of interconnected data processing modules.

[0027] Модуль регистрации и первичной аутентификации (101) предназначен для регистрации нового пользователя системы и последующей первичной аутентификации пользователя. Обычная аутентификация необходима для получения возможности использования функций модуля биометрической аутентификации (102) и модуля проведения активности (105). При обращении пользователя к системе (100), модуль регистрации и первичной аутентификации (101) запрашивает у пользователя номер мобильного устройства, ФИО и дату рождения. Получив указанные данные, модуль (101) отправляет на указанный номер мобильного устройства сообщение с кодом подтверждения, который должен быть введен пользователем. Получив корректный код подтверждения, модуль (101) регистрирует нового пользователя. Далее модуль (101) предоставляет пользователю возможность выбирать варианты последующей аутентификации, например, аутентификация по отпечатку пальца на мобильном устройстве, аутентификация по pin- коду на мобильном устройстве, аутентификация по связке логин/пароль и т.д. При входе в систему (100) зарегистрированного пользователя, модуль (101) предлагает использовать один из методов аутентификации, например, по отпечатку пальца, по pin-коду, по связке логин + пароль или любой другой метод аутентификации, поддерживаемый мобильным устройством пользователя. После успешной аутентификации модуль (101) передает право доступа пользователю к модулю биометрической аутентификации (102) и модулю проведения активности (105). [0027] The registration and primary authentication module (101) is intended for registration of a new user of the system and subsequent primary authentication of the user. Basic authentication is required to be able to use the functions of the biometric authentication module (102) and the activity module (105). When the user accesses the system (100), the registration and primary authentication module (101) asks the user for the mobile device number, full name and date of birth. Having received the indicated data, the module (101) sends a message with a confirmation code to the indicated mobile device number, which must be entered by the user. Having received the correct confirmation code, module (101) registers a new user. Further, the module (101) allows the user to select options for subsequent authentication, for example, fingerprint authentication on a mobile device, pincode authentication on a mobile device, authentication using a login / password link, etc. When a registered user enters the system (100), the module (101) offers to use one of the authentication methods, for example, by a fingerprint, by a pin code, by a login + password link, or any other authentication method supported by the user's mobile device. After successful authentication, the module (101) transfers the right to access the user to the biometric authentication module (102) and the activity module (105).

[0028] Модуль биометрической аутентификации (102) предназначен для биометрической аутентификации пользователя, обеспечения доступа к голосованию, формирования профиля и прав пользователя в системе. Модуль (102) взаимодействует со смежной системой биометрической аутентификации и идентификации для реализации алгоритмов биометрической проверки, с внутренней базой данных системы (100), а также с другими модулями, которым необходимо повысить уровень доверия к пользователю для предоставления доступа к дополнительным функциям или реализации различных свойств активности. Для успешной аутентификации пользователь должен однократно зарегистрироваться в «центре биометрической аутентификации». Центром биометрической аутентификации может быть отдельный специальный орган или любая другая система, в которых есть возможность пользователям очно предоставлять биометрические образцы и производится удостоверение личности заявителей. При обращении пользователя в центр биометрической аутентификации, создается соответствие между биометрическими образцами пользователя и его идентифицирующей информацией (номер паспорта или уникальный идентификатор пользователя, номер мобильного устройства, ФИО, дата рождения и т.д.). Далее модуль (102) запрашивает у пользователя биометрический образец (фото лица) и сравнивает полученную информацию с образцом хранящими в центре биометрической аутентификации. [0028] The biometric authentication module (102) is intended for biometric user authentication, providing access to voting, forming a profile and user rights in the system. Module (102) interacts with the adjacent biometric authentication and identification system to implement biometric verification algorithms, with the internal database of the system (100), and with other modules that need to increase the level of trust in the user to provide access to additional functions or implement various properties of the activity. For successful authentication, the user must register once with the "Biometric Authentication Center". The biometric authentication center can be a separate special body or any other system in which it is possible for users to provide biometric samples in person and the identity of the applicants is produced. When a user contacts the biometric authentication center, a correspondence is created between the user's biometric samples and his identifying information (passport number or unique user identifier, mobile device number, full name, date of birth, etc.). Next, the module (102) asks the user for a biometric sample (face photo) and compares the received information with the sample stored in the biometric authentication center.

[0029] Формирование профиля пользователя осуществляется последовательно. После регистрации модуль (102) запрашивает у пользователя биометрический образец - лицо; при этом модуль (102) не принимает фотографии, а самостоятельно выбирает кадр из видеоряда с камеры мобильного устройства. Далее система (100) получает от модуля (102) контекстную информацию о пользователе, который в данный момент аутентифицирован в приложении (ФИО, дату рождения и номер мобильного устройства). Полученная информация сравнивается с образцами, хранящимися в центре биометрической аутентификации, для проверки подлинности. В случае корректного совпадения биометрических образцов, ФИО, даты рождения и номера мобильного устройства система (100) отправляет на номер мобильного устройства SMS -сообщение с кодом подтверждения, который должен быть введен пользователем в системе (100). После введения пользователем кода подтверждения система (100) формирует профиль пользователя во внутренней базе данных. [0029] The formation of a user profile is carried out sequentially. After registration, the module (102) asks the user for a biometric sample - a person; in this case, the module (102) does not take photos, but independently selects a frame from the video sequence from the camera of the mobile device. Further, the system (100) receives from the module (102) contextual information about the user who is currently authenticated in the application (name, date of birth and mobile device number). The information obtained is compared with samples stored at the biometric authentication center for authentication. If the biometric samples, full name, date of birth and mobile device number match correctly, the system (100) sends an SMS message with a confirmation code to the mobile device number, which must be entered by the user in the system (100). After the user enters the confirmation code, the system (100) generates a user profile in the internal database.

[0030] Формирование прав пользователя в системе (100) осуществляется последовательно. Для каждой активности в системе (100) заранее формируется перечень условий, которым должен соответствовать пользователь для получения прав как на саму активность, так и на то или иное действие в рамках активности. При формировании или изменении профиля пользователя он оценивается на соответствие условиям, необходимым для получения этих прав. Система (100) выдает права пользователю в момент их запроса, каждый раз анализируя запрос и его контекст, в соответствии с уровнем доверия данному пользователю. [0031] Пример: пользователь имеет право инициировать собрание собственников, но никогда этого не делал - значит система (100) позволит это сделать только после дополнительной идентификации пользователя. [0030] The formation of user rights in the system (100) is carried out sequentially. For each activity in the system (100), a list of conditions is formed in advance that the user must meet in order to obtain rights both to the activity itself and to one or another action within the activity. When forming or changing a user profile, it is assessed for compliance with the conditions necessary to obtain these rights. System (100) grants rights to the user at the time of their request, each time analyzing the request and its context, in accordance with the level of trust to this user. [0031] Example: a user has the right to initiate a meeting of owners, but has never done so, which means that the system (100) will allow this to be done only after additional user identification.

[0032] Для этих целей в систему (100) передаются статические данные о пользователе (например, геолокация мобильного устройства, метка времени и т.д.), а также динамические данные, которые система (100) рассчитывает самостоятельно (статистика по частоте запросов пользователя, уникальность запросов, поведение пользователя в системе (100) и т.д.), на основании которых формируется уровень доверия к конкретному запросу. В случае подозрения или низкого уровня доверия система (100) может выбирать способ аутентификации пользователя и предложит ему дополнительные проверки для повышения уровня доверия. А также система (100) может облегчать доступ пользователя, в случае высокого уровня доверия. [0032] For these purposes, the system (100) transmits static data about the user (for example, the geolocation of the mobile device, timestamp, etc.), as well as dynamic data that the system (100) calculates independently (statistics on the frequency of user requests , uniqueness of requests, user behavior in the system (100), etc.), on the basis of which the level of trust in a particular request is formed. In case of suspicion or a low level of trust, the system (100) can choose a way to authenticate the user and offer him additional checks to increase the level of trust. And also the system (100) can facilitate user access, in the case of a high level of trust.

[0033] Определение правомерности участия пользователя в той или иной активности осуществляется последовательно. В рамках создания каждой активности формируется перечень критериев, по которым определяется круг лиц, допущенных к участию в активности. Далее каждый профиль пользователя сверяется с заданными критериями. В случае если активность доступна пользователю, система (100) формирует уведомление о возможности участия и отправляет его пользователю в виде push-уведомления, SMS- сообщения, email, и т.д. [0033] The determination of the legality of the user's participation in a particular activity is carried out sequentially. As part of the creation of each activity, a list of criteria is formed by which the circle of persons allowed to participate in the activity is determined. Further, each user profile is checked against the specified criteria. If the activity is available to the user, the system (100) generates a notification about the possibility of participation and sends it to the user in the form of a push notification, SMS message, email, etc.

[0034] Модуль электронной подписи (103) предназначен для использования электронной подписи пользователем в системе (100) и обеспечивающий идентификацию пользователя при сетевом подключении к системе (100). Модуль (103) взаимодействует с внешней системой облачной ЭЦП. Интеграция осуществляется после биометрической регистрации пользователя. Существует два вида возможной интеграции. Первый - интеграция с существующим аккаунтом облачной ЭЦП. Второй - создание нового аккаунта в сервисе облачной ЭЦП. В рамках интеграции модуль (103) передае†· системе облачной ЭЦП объекты, созданные в рамках активности для подписи личной ЭЦП пользователя. Также модуль (103) предоставляет пользователю сертификат для установления взаимной идентификации в рамках защищенной сессии (mutual TLS протокол). [0034] The electronic signature module (103) is intended for using an electronic signature by a user in the system (100) and providing user identification when connected to the system (100). Module (103) interacts with an external cloud digital signature system. Integration is carried out after the biometric registration of the user. There are two types of possible integration. The first one is integration with an existing cloud EDS account. The second is to create a new account in the cloud EDS service. As part of the integration, the module (103) transmits to the cloud EDS system the objects created as part of the activity for signing the user's personal EDS. Also, module (103) provides the user with a certificate for establishing mutual identification within a secure session (mutual TLS protocol).

[0035] Модуль управления активностью (104) предназначен для инициации и администрирования активности пользователем в системе (100). Доступ пользователя к модулю (104) определяется профилем пользователя с помощью модуля (102). Данный модуль (104) также содержит заранее подготовленные описания некоторых типов активностей, включая перечень условий для инициализации активности динамические переменные для организации активности и способы их получения (перечень вопросов/кандидатов, перечень пользователей, допущенных к активности и т.д.), а также набор свойств, которыми обладает активность. В модуле (104) формируется перечень условий, которым должен соответствовать профиль пользователя, чтобы получить права на создание того или иного типа активности. Далее в модуле (104) формируется базовый профиль активности куда добавляется перечень переменных, значения для которых необходимо предоставить для инициализации активности. Для некоторых переменных может быть указана директива по получению значений из внешнего источника (если такой источник интегрирован), при этом данные директивы выполняются только после инициализации активности инициатором. [0035] The activity control module (104) is designed to initiate and administer activity by a user in the system (100). User access to the module (104) is determined by the user profile using the module (102). This module (104) also contains pre-prepared descriptions of some types of activities, including a list of conditions for initializing an activity, dynamic variables for organizing an activity and methods for obtaining them (a list questions / candidates, a list of users admitted to the activity, etc.), as well as a set of properties that the activity possesses. In module (104), a list of conditions is formed that the user profile must meet in order to obtain the rights to create a particular type of activity. Further, in module (104), a basic activity profile is formed, where a list of variables is added, the values for which must be provided to initialize the activity. For some variables, a directive can be specified for receiving values from an external source (if such a source is integrated), while these directives are executed only after the activity is initialized by the initiator.

[0036] Инициация активности осуществляется последовательно. Профиль пользователя после создания или изменения сравнивается с перечнем условий по каждой активности и в случае совпадения, пользователю становится доступна функция инициализации новой активности. Пользователь, который хочет инициализировать новую активность должен пройти авторизацию, при этом условия «сложности» авторизации прописаны в перечне условий для каждой активности. После прохождения авторизации инициатор должен указать значения переменных активности (включая, но не ограничиваясь: название активности, временной диапазон доступности для голосования по создаваемой активности, перечень вопросов, поставленных на голосование, дополнительные материалы для ознакомления и т.д.). В случае, если система (100) не может заполнить значения переменных автоматически, инициатор должен указать в активности перечень лиц, допущенных к участию и перечень вопросов на обсуждение (или перечень кандидатов и т.д.). Перечень лиц, допущенных к участию может представлять собой таблицу с конкретными пользователями системы (100) или условия, по которым система (100) определит участников самостоятельно. После этого система (100) формирует окончательный профиль активности в соответствии с полученной информацией от инициатора, а также базовым профилем для инициируемой активности, добавляя свойства активности. [0036] The initiation of activity is carried out sequentially. After creation or modification, the user profile is compared with the list of conditions for each activity, and in case of a match, the function of initializing a new activity becomes available to the user. A user who wants to initialize a new activity must pass authorization, while the conditions for the "complexity" of authorization are written in the list of conditions for each activity. After authorization, the initiator must indicate the values of the activity variables (including but not limited to: the name of the activity, the time range of availability for voting on the generated activity, the list of questions put to vote, additional materials for review, etc.). If the system (100) cannot fill in the values of the variables automatically, the initiator must indicate in the activity a list of persons allowed to participate and a list of questions for discussion (or a list of candidates, etc.). The list of persons allowed to participate can be a table with specific users of the system (100) or the conditions under which the system (100) will determine the participants on its own. After that, the system (100) generates the final activity profile in accordance with the information received from the initiator, as well as the baseline profile for the initiated activity, adding activity properties.

[0037] Помимо базовых профилей активности в системе (100) предусмотрено создание активности с нуля практически любым пользователем (минимальные условия для получения прав), в этом случае пользователь самостоятельно выбирает свойства активности и переменные, которые будут использоваться в активности. Лица, допущенные к такой активности, выбираются путем определения условий выбора профилей пользователя. Данный тип активности предназначен в основном для проведения опросов или социальных исследований. Каждый пользователь системы (100) в своем профиле может выбрать тип активности, которая будет ему предлагаться системой (100). Окончательный профиль активности передается на исполнение в модуль проведения активности (105). [0037] In addition to the basic activity profiles, the system (100) provides for the creation of activity from scratch by almost any user (minimum conditions for obtaining rights), in this case, the user independently selects the activity properties and variables that will be used in the activity. Persons admitted to such activity are selected by determining the conditions for selecting user profiles. This type of activity is mainly intended for conducting surveys or social research. Each user of the system (100) in his profile can select the type of activity that will be offered to him by the system (100). The final activity profile is transmitted for execution to the activity execution module (105).

[0038] Модуль проведения активности (105) предназначен для обработки и реализации, инициированной пользователем, активности. Модуль (105) получает от модуля (104) профиль активности. Далее модуль (105) производит последовательно несколько этапов обработки профиля активности. [0038] The Activity Conducting Module (105) is designed to process and implement a user initiated activity. Module (105) receives an activity profile from module (104). Further, the module (105) sequentially performs several stages of processing the activity profile.

[0039] На первом этапе производится первичная обработка и создание технической базы активности. Из профиля активности создается новый объект активности, который содержит все информационные данные: название, повестка/вопросы/кандидаты, даты проведения активности, условия проведения активности, дополнительные материалы, перечень допущенных пользователей, если такой есть и т.д. Далее создается политика доступа к объекту активности, которая определяет порядок и правила доступа к данной активности и содержит следующие параметры: дата и время доступности активности, свойства доступа к активности, критерии авторизации для доступа к активности - данные условия формируются из переменных в профиле активности, свойств, которые указаны в профиле активности, а также из любой другой информации указанной в профиле активности. Политика доступа привязывается к объекту активности по уникальному идентификатору и является его неотъемлемой частью. Далее осуществляется техническая реализация свойств активности (“наличие права у пользователя на принятие участия в голосовании” или у активности указано свойство “возможность голосования без авторизации” и т.д.). [0039] At the first stage, primary processing and creation of a technical base of activity are performed. A new activity object is created from the activity profile, which contains all information data: name, agenda / questions / candidates, dates of the activity, conditions for the activity, additional materials, a list of allowed users, if any, etc. Next, an access policy to the activity object is created, which determines the order and rules of access to this activity and contains the following parameters: date and time of activity availability, activity access properties, authorization criteria for accessing an activity - these conditions are formed from variables in the activity profile, properties that are specified in the activity profile, as well as from any other information specified in the activity profile. An access policy is bound to an activity object by a unique identifier and is an integral part of it. Further, the technical implementation of the activity properties is carried out (“the user has the right to take part in voting” or the activity has the property “the ability to vote without authorization”, etc.).

[0040] После создания объекта активности и политики доступа к объекту активности модуль (105) формирует “жизненный цикл активности”, который определяет очередность фаз активности (подготовка, сбор голосов, обработка голосов, подсчет голосов, оформление результатов, хранение результатов) и дату начала и продолжительность этих фаз по данным, указанным в профиле активности и предустановленным параметрам. Каждая фаза соответствует части автоматизированного процесса и содержит информацию по дополнительным директивам, которые должны быть выполнены для реализации тех или иных свойств активности (помимо свойств, которые отображаются в политике доступа к активности). Свойства активности могут соответствовать только одной из фаз жизненного цикла или распределяться по нескольким фазам, в зависимости от конкретного свойства. Фаза активности привязана к объекту активности и изменяется в соответствии с жизненным циклом фазы активности. После создания всех сущностей система (100) начинает работу с активностью согласно ее жизненному циклу, в порядке фаз. [0041] На втором этапе производится обработка запросов пользователя, осуществленных в рамках активности. После создания профиля активности производится сверка профиля пользователя и условия допуска пользователя к активности. Если профиль пользователя проходит условия допуска к активности, то система (100) уведомляет пользователя об обнаружении новой активности. Пользователь, для которого были обнаружены активности может принять в них участие - для этого он с помощью приложения со своего мобильного устройства отправляет в систему (100) запрос о получении дополнительной информации по активности. Система (100), получая запрос об активности от пользователя, проверяет текущую фазу активности и, если фаза позволяет добавить еще одного пользователя (подготовка, сбор голосов), то система (100) проверяет политику доступа, привязанную к объекту активности для предоставления доступа пользователю. Далее поочередно осуществляется проверка наличия свойств активности в политике доступа и производится по ним проверка пользователя. В случае успешной проверки система (100) отправляет на устройство пользователя данные об активности (название, даты и формат проведения, дополнительные материалы и т.д.). [0040] After creating an activity object and a policy for accessing an activity object, the module (105) generates an “activity lifecycle”, which determines the order of the activity phases (preparation, collection of votes, vote processing, vote counting, registration of results, storage of results) and the start date and the duration of these phases according to the data specified in the activity profile and preset parameters. Each phase corresponds to a part of the automated process and contains information on additional directives that must be executed to implement certain properties of the activity (in addition to the properties that are displayed in the activity access policy). Activity properties can correspond to only one of the phases of the life cycle or be distributed over several phases, depending on the specific property. The activity phase is tied to the activity object and changes in accordance with the life cycle of the activity phase. After creating all the entities, the system (100) starts working with the activity according to its life cycle, in the order of phases. [0041] The second step is processing user requests made within the activity. After creating an activity profile, the user profile is checked and the conditions for allowing the user to be active. If the user profile passes the activity admission conditions, then the system (100) notifies the user about the detection of new activity. The user for whom the activity was detected can take part in them - for this he, using the application from his mobile device, sends to the system (100) a request for additional information on the activity. System (100), receiving a request for activity from the user, checks the current phase of activity and, if the phase allows adding one more user (preparation, collecting votes), then system (100) checks the access policy associated with the activity object to provide access to the user. Then, one by one, the presence of activity properties in the access policy is checked and the user is checked against them. In case of a successful check, the system (100) sends data about the activity (name, dates and format of the event, additional materials, etc.) to the user's device.

[0042] Помимо этого, на этапе подготовки модуль (105) реализует следующее свойство (если оно активно «Конфиденциальность голоса в технических средствах обработки данных»). В случае наличия данного свойства система (100) после перехода на этап подготовки (сразу после создания сущностей активности: объект активности, политика доступа и жизненный цикл) осуществляет выпуск ключей ассиметричного шифрования. Также на этапе подготовки пользователь может просматривать дополнительную информацию по активности, а также редактировать документы по активности, если активность предполагает такую возможность (например, предлагать правки к документу). Этап подготовки длится от момента инициации активности до момента начала голосования по активности, указанном в профиле активности. Дальнейшие запросы пользователя к объекту активности проверяются в соответствии с политикой доступа к активности и маршрутизируются в соответствии с директивами, указанными для текущей фазы активности в соответствии с жизненным циклом активности. [0042] In addition, at the preparation stage, the module (105) implements the following property (if it is active "Voice confidentiality in data processing technology"). If this property is present, the system (100), after going to the preparation stage (immediately after the creation of activity entities: activity object, access policy, and life cycle), releases asymmetric encryption keys. Also, at the preparation stage, the user can view additional information on activity, as well as edit documents on activity, if the activity suggests such an opportunity (for example, suggest edits to a document). The preparation stage lasts from the moment of initiating an activity until the moment of starting voting by activity specified in the activity profile. Further user requests to the activity object are checked in accordance with the activity access policy and routed in accordance with the directives specified for the current activity phase in accordance with the activity lifecycle.

[0043] На этапе сбора голосов пользователь формирует запрос к объекту активности об осуществлении голосования. Если активно свойство «Конфиденциальность голоса в технических средствах обработки данных» система (100) в ответ на запрос пользователя предоставляет публичный ключ. Далее пользователь осуществляет выбор по вопросам активности. Процесс добавления решения пользователя во внутреннюю базу данных системы (100) сопровождается регистрацией, в рамках которой каждому голосу добавляется отметка времени, в которую регистрация осуществилась. Все метки времени, в которые были зарегистрированы решения пользователей дополнительно сохраняются отдельно от решений пользователей. После этого во внутренней базе данных, решение пользователя записывается в формате: «Уникальный идентификатор», «Временная метка», «Пользователь», «Хэш-сумма, подписанная сертификатом открытого ключа пользователя», «Решение пользователя (в полученном виде: зашифрованное или открытое)». Из указанных значений обязательными являются только уникальный идентификатор, метка времени и решение. В конце этапа сбора голосов полученные решения пользователей подписываются с помощью ЭЦП системы (100) и передаются далее на обработку. Этап сбора голосов продолжается согласно данным, указанным в объекте активности. [0043] At the stage of collecting votes, the user generates a request to the activity object to vote. If the property "Voice confidentiality in technical means of data processing" is active, the system (100) provides a public key in response to a user's request. Next, the user makes a choice in terms of activity. The process of adding a user's decision to the internal database of the system (100) is accompanied by registration, within which a time stamp is added to each vote at which the registration took place. All time stamps, in which the decisions of the users were registered are additionally stored separately from the decisions of the users. After that, in the internal database, the user's decision is recorded in the format: "Unique identifier", "Timestamp", "User", "Hash sum signed by the user's public key certificate", "User's decision (as received: encrypted or open ) ". Of the specified values, only the unique identifier, timestamp, and solution are required. At the end of the stage of collecting votes, the received decisions of users are signed using the EDS of the system (100) and are transmitted further for processing. The stage of collecting votes continues according to the data specified in the object of activity.

[0044] На этапе обработки голосов система (100) автоматически подготавливает голоса для подсчета. Первичная обработка полученных голосов начинается с проверки целостности данных во внутренней базе данных системы (100). Для этого формируется хэш-сумма всех собранных данных и сверяется с подписанной хэш-суммой этого же набора данных. Если различий нет, то данные принимаются в обработку, если различия есть, то система (100) оповещает об этом инициатора и администратора. Далее модуль (105) запрашивает перечень меток времени, сформированный ранее при регистрации голосов. И для каждого голоса сверяет добавленную метку времени с перечнем меток времени - учитываются только те голоса, для которых найдены совпадения. Таким образом осуществляется проверка на возможное добавление голосов заинтересованными лицами. [0045] После прохождения проверок производится обработка директив свойств активности, добавленных в фазу обработки голосов. Если указано свойство «Защищенность от «принуждения» во время электронного голосования или нет», то анализируется набор данных, сформированный после первичных проверок по пользователям. Если выявлено несколько голосов, принятых от одного пользователя, то в рамках данного свойства модуль (105) удаляет из перечня голосов все голоса пользователя, кроме последнего. Если указано свойство «Возможность параллельного голосования или нет», то данное свойство подразумевает возможность активности по другим каналам (в том числе традиционное с личным присутствием на избирательном участке) параллельно с проведением активности в системе (100). [0044] In the step of processing votes, the system (100) automatically prepares votes for counting. The primary processing of the received votes begins with checking the integrity of the data in the internal database of the system (100). For this, a hash of all collected data is generated and checked against the signed hash of the same dataset. If there are no differences, then the data is accepted for processing, if there are differences, then the system (100) notifies the initiator and the administrator about this. Further, the module (105) requests a list of timestamps generated earlier during the registration of votes. And for each voice it checks the added timestamp against the list of timestamps - only those voices for which matches are found are taken into account. Thus, a check is carried out for possible addition of votes by interested parties. [0045] After passing the checks, the activity property directives added in the vote processing phase are processed. If the property "Protection from" coercion "during electronic voting or not" is specified, then the data set generated after initial checks on users is analyzed. If several votes received from one user are detected, then within the framework of this property, the module (105) removes from the list of votes all the user's votes, except for the last one. If the property "Possibility of parallel voting or not" is specified, then this property implies the possibility of activity through other channels (including the traditional one with personal presence at the polling station) in parallel with the activity in the system (100).

[0046] После выполнения директив указанных в фазе свойств, модуль (105) подготавливает перечень данных для передачи на этап подсчета голосов. Если используется алгоритм случайных перестановок, то система (100) в качестве входных данных на следующий этап может передавать как перемешанные данные, так и первоначальный обезличенный перечень для проведения дополнительной проверки на двух наборах данных. На этапе подсчета голосов система (100) осуществляет директивы, описанные в свойствах, указанных в данной фазе или директивы по умолчанию. В завершении этапа подсчета голосов сформированные результаты подписываются ЭЦП системы (100) и сохраняются во внутренней базе данных. [0046] After executing the directives specified in the properties phase, the module (105) prepares a list of data for transmission to the stage of counting votes. If an algorithm of random permutations is used, then system (100) as input data to the next stage can transmit both mixed data and the initial anonymized list for additional verification on two data sets. At the stage of counting votes, system (100) implements the directives described in the properties, specified in this phase or the default directive. At the end of the vote counting stage, the generated results are signed with the system EDS (100) and stored in the internal database.

[0047] Далее система (100) переходит на этап оформления результатов. Во время данного этапа результаты оформляются в заранее заданном виде (отчет, таблица, машинный вид и т.д.) и передаются инициатору активности. После чего модуль (105) формирует итоговый перечень данных для активности и подписывает его ЭЦП. К перечню дополнительно могут быть привязаны списки пользователей, принявших участие в этой активности, объект активности или данные из него. На этапе хранения, результаты и дополнительные данные сохраняются в специализированную, защищенную базу данных. После сохранения результатов модуль (105) закрывает любой доступ к проведенной активности. [0047] Next, the system (100) proceeds to the stage of registration of results. During this stage, the results are drawn up in a predetermined form (report, table, machine view, etc.) and transmitted to the initiator of the activity. After that, the module (105) generates the final list of data for the activity and signs it with an EDS. The list can additionally be linked to lists of users who took part in this activity, an object of activity or data from it. During the storage phase, the results and additional data are stored in a dedicated, secure database. After saving the results, the module (105) closes any access to the conducted activity.

[0048] Модуль интеграции с внешними системами (106) предназначен для взаимодействия с внешними системами. Модуль (106) передает во внешние системы результаты тех или иных этапов работы, взаимодействуя с модулем (105). Так же предоставляет другим системам интерфейсы доступа, которые реализуют функционал обработки внешних запросов и предоставляют запрашиваемы данные по запросам от внешних систем. Модуль (106) также реализует функционал нормализации внешних данных, полученных из внешних систем для приведения этих данных в соответствие со схемами собственных баз данных системы (100). В качестве входных данных модуль (106) ожидает запрос от другого модуля системы (100) или запрос к программному интерфейсу от внешней системы. При получении запроса от другого модуля системы (100), модуль (106) формирует необходимую информацию для обработки внешней системой. После формирования необходимой информации, модуль (106) устанавливает соединение с внешней системой согласно правилам внешней системы. Для этого модуль (106) использует алгоритмы, которые разработаны заранее для конкретной интеграции. [0048] The module for integrating with external systems (106) is designed to interact with external systems. Module (106) transmits the results of certain stages of work to external systems, interacting with module (105). It also provides other systems with access interfaces that implement the functionality of processing external requests and provide the requested data upon requests from external systems. Module (106) also implements the functional of normalizing external data received from external systems to bring these data in accordance with the schemes of the system's own databases (100). As input, the module (106) expects a request from another module of the system (100) or a request to the program interface from an external system. Upon receiving a request from another module of the system (100), the module (106) generates the necessary information for processing by the external system. After generating the necessary information, the module (106) establishes a connection with the external system according to the rules of the external system. For this, module (106) uses algorithms that are developed in advance for a specific integration.

[0049] Модуль обработки внутренних запросов (107) предназначен для интерпретации внутренних запросов от модулей системы (100) в запросы к модулю интеграции с внешними системами (106). В качестве входных данных модуль (107) ожидает запрос от другого модуля системы (100) (например, от модуля биометрической аутентификации и идентификации (102)). В запросе обязательно должен содержаться указатель на тип данных (например, «уникальный идентификатор пользователя»), который необходимо запросить во внешней системе. В случае отсутствия данного идентификатора запрос отклоняется. Если идентификатор присутствует, модуль (107) анализирует таблицу связи между внутренним типом данных системы (100) и внешними системами, в которых можно получить данный тип данных. Таблица формируется и обновляется при каждом подключении внешнего источника данных. Если системы отсутствуют, то запрос отклоняется. Если внешние системы, в которых можно получить указанный тип данных подключены к системе (100), то модуль (107) анализирует оставшуюся часть запроса на наличие мета- данных, которые необходимы внешней системе для предоставления данных необходимого типа. Если в запросе есть все мета данные, то модуль (107) перенаправляет запрос в модуль интеграции с внешними системами (106). Если мета данные отсутствуют, то модуль (107) формирует ответ с необходимостью предоставить дополнительные мета данные к модулю, запросившему данные. Далее модуль (107) ожидает ответ от модуля интеграции с внешними системами (106). При получении ответа модуль (107) перенаправляет ответ в модуль, который осуществил запрос. [0049] The module for processing internal requests (107) is designed to interpret internal requests from modules of the system (100) into requests to the module for integrating with external systems (106). As input, the module (107) expects a request from another module of the system (100) (for example, from the biometric authentication and identification module (102)). The request must contain a pointer to the data type (for example, "unique user identifier"), which must be requested from the external system. If this identifier is absent, the request is rejected. If the identifier is present, the module (107) analyzes the relationship table between the internal data type of the system (100) and external systems in which you can get this data type. The table is generated and updated every time an external data source is connected. If there are no systems, then the request is rejected. If external systems in which the specified type of data can be obtained are connected to the system (100), then the module (107) analyzes the rest of the request for the presence of metadata, which is necessary for the external system to provide data of the required type. If the request contains all the metadata, then the module (107) redirects the request to the module for integrating with external systems (106). If there is no meta data, then the module (107) generates a response with the need to provide additional meta data to the module that requested the data. Further, the module (107) awaits a response from the module for integrating with external systems (106). Upon receipt of a response, the module (107) redirects the response to the module that made the request.

[0050] Модуль аудита (108) предназначен для реализации алгоритмов проверки действий пользователя системы (100) и ведения на основании фиксируемой информации системного журнала. При заполнении итогового бюллетеня активности на стороне клиента (мобильное устройство или персональный компьютер) формируется пакет данных вида: «Уникальный идентификатор», «Временная метка», «Пользователь», «Хэш-сумма, подписанная сертификатом открытого ключа пользователя», «Решение пользователя (в полученном виде: зашифрованное или открытое)» с учетом всех дополнительных свойств активности. Далее этот пакет разбивается модулем (108) на две составляющие: часть, описывающая пользователя (например, «Пользователь», «Хэш-сумма, подписанная сертификатом открытого ключа пользователя») и волеизъявление пользователя (например, «Уникальный идентификатор», «Временная метка» «Решение пользователя»). В итоге получается три самостоятельных пакета данных: полный набор отправляется по защищенному каналу связи с взаимной идентификацией на сторону серверной части системы (100) для дальнейшей обработки. Данные, описывающие пользователя отправляются в публичную не анонимную блокчейн систему. Данные, описывающие волеизъявление пользователя отправляются в публичную анонимную блокчейн систему. [0051] После проведения активности модуль (108) публикует технические данные: в случае отсутствия шифрования бюллетеней - открытая обезличенная таблица с голосами пользователей (без привязки пользователей к этим голосам). В случае наличия шифрования - обезличенная таблица, содержащая шифр тексты всех голосов. По завершению активности модуль (108) собирает информацию, полученную в блокчейн системах и осуществляет сравнение этих данных. [0050] The audit module (108) is designed to implement algorithms for checking the actions of a user of the system (100) and maintaining a system log based on the recorded information. When filling out the final bulletin of activity on the client side (mobile device or personal computer), a data packet of the following form is generated: "Unique identifier", "Timestamp", "User", "Hash sum signed by the user's public key certificate", "User's decision ( as received: encrypted or open) "taking into account all additional properties of the activity. Next, this package is divided by module (108) into two components: a part describing the user (for example, "User", "Hash sum signed by the user's public key certificate") and the user's will (for example, "Unique identifier", "Timestamp" "User's decision"). As a result, three independent data packets are obtained: the complete set is sent via a secure communication channel with mutual identification to the side of the server side of the system (100) for further processing. The data describing the user is sent to a public non-anonymous blockchain system. Data describing the user's will is sent to the public anonymous blockchain system. [0051] After the activity, the module (108) publishes technical data: in the absence of encryption of ballots - an open anonymized table with user votes (without binding users to these votes). In the case of encryption, an impersonal table containing the cipher texts of all voices. Upon completion of the activity, the module (108) collects information received in the blockchain systems and compares these data.

[0052] На Фиг. 2 представлен пример общего вида вычислительного устройства (300), для реализации системы (100). [0053] В общем случае, вычислительное устройство (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (1105), и устройство для сетевого взаимодействия (306). [0052] FIG. 2 shows an example of a general view of a computing device (300) for implementing the system (100). [0053] In the General case, the computing device (300) contains one or more processors (301) united by a common bus of information exchange, memory means such as RAM (302) and ROM (303), input / output interfaces (304), devices input / output (1105), and a device for networking (306).

[0054] Процессор (301) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (300) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения исполнения системы (100), а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах. [0054] The processor (301) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as: Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the device (300), it is also necessary to take into account a graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the system (100), and can also be used for training and applying models machine learning in various information systems.

[0055] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (302) может выступать доступный объем памяти графической карты или графического процессора. [0055] RAM (302) is a random access memory and is intended for storing machine-readable instructions executed by the processor (301) for performing the necessary operations for logical data processing. RAM (302), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (302).

[0056] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш- память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD- R/RW, BlueRay Disc, MD) и др. [0056] ROM (303) is one or more persistent storage devices, for example, hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[0057] Для организации работы компонентов вычислительного устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/ Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п. [0057] Various types of I / O interfaces (304) are used to organize the operation of the components of the computing device (300) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.

[0058] Для обеспечения взаимодействия пользователя с вычислительным устройством (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п. [0058] To ensure user interaction with the computing device (300), various I / O means (305) are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touchpad, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0059] Средство сетевого взаимодействия (306) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [0059] The networking tool (306) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (306) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and dr.

[0060] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. [0060] The presented application materials disclose preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation, not going beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

Claims

ФОРМУЛА FORMULA 1. Автоматизированная система дистанционного голосования, содержащая: 1. An automated remote voting system containing: • модуль регистрации и первичной аутентификации, осуществляющий регистрацию и первичную аутентификацию пользователя в системе для получения доступа к модулю биометрической аутентификации; • registration and primary authentication module, performing registration and primary user authentication in the system to gain access to the biometric authentication module; • модуль биометрической аутентификации, осуществляющий биометрическую аутентификацию пользователя, доступ к голосованию, формирование профиля и прав пользователя в системе с помощью алгоритмов биометрической проверки; • a biometric authentication module that performs biometric user authentication, access to voting, formation of a profile and user rights in the system using biometric verification algorithms; • модуль электронной подписи, осуществляющий возможность использования электронной подписи пользователем в системе и обеспечивающий идентификацию пользователя при сетевом подключении к системе; • an electronic signature module that enables the use of an electronic signature by a user in the system and ensures user identification when connected to the system via a network; • модуль управления активностью, осуществляющий возможность инициации и администрирования активности пользователем в системе; • an activity control module that enables the initiation and administration of activity by a user in the system; • модуль проведения активности, осуществляющий возможность обработки и реализации, инициированной пользователем, активности; • a module for conducting an activity, which provides the ability to process and implement a user-initiated activity; • модуль интеграции с внешними системами, осуществляющий взаимодействие с внешними системами; • module for integration with external systems, which interacts with external systems; • модуль обработки внутренних запросов, осуществляющий интерпретацию внутренних запросов от модулей системы в запросы к модулю интеграции с внешними системами; • module for processing internal requests, which interprets internal requests from system modules into requests to the module for integration with external systems; • модуль аудита, выполняющий мониторинг действий пользователя системы и ведения на основании фиксируемой информации системного журнала. • an audit module that monitors the actions of the system user and maintains the system log based on the recorded information. 2. Система по п.1, характеризующаяся тем, что модули располагаются в едином вычислительном устройстве и объединены единой шиной. 2. The system according to claim 1, characterized in that the modules are located in a single computing device and are united by a single bus. 3. Система по п.1, характеризующаяся тем, что по меньшей мере два модуля располагаются на различных вычислительных устройствах и объединены между собой каналами передачи данных. 3. The system according to claim 1, characterized in that at least two modules are located on different computing devices and are interconnected by data transmission channels. 4. Система по любому из п.п. 2-3, характеризующаяся тем, что вычислительное устройство представляет собой персональный компьютер, сервер или мейнфрейм. 4. The system according to any one of paragraphs. 2-3, characterized in that the computing device is a personal computer, server or mainframe. 17 17 ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)
PCT/RU2019/000784 2019-11-05 2019-11-05 Universal system for distributed secure remote voting Ceased WO2021091410A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2019135322 2019-11-05
RU2019135322A RU2751315C2 (en) 2019-11-05 2019-11-05 Universal system of distributed secure remote voting

Publications (1)

Publication Number Publication Date
WO2021091410A1 true WO2021091410A1 (en) 2021-05-14

Family

ID=75848038

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2019/000784 Ceased WO2021091410A1 (en) 2019-11-05 2019-11-05 Universal system for distributed secure remote voting

Country Status (3)

Country Link
EA (1) EA201992482A1 (en)
RU (1) RU2751315C2 (en)
WO (1) WO2021091410A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230291747A1 (en) * 2020-03-10 2023-09-14 Duckpond Technologies, Inc. Method of securing a voting transaction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826029A (en) * 1995-10-31 1998-10-20 International Business Machines Corporation Secured gateway interface
US7237717B1 (en) * 1996-12-16 2007-07-03 Ip Holdings, Inc. Secure system for electronic voting
RU2459239C2 (en) * 2010-11-08 2012-08-20 Кирилл Евгеньевич Чирков Distributed computer system of optimum solutions
US20140283027A1 (en) * 2013-03-14 2014-09-18 Carefusion 303, Inc. Auditing User Actions in Treatment Related Files
US20180004858A1 (en) * 2009-02-04 2018-01-04 Neopad Inc. System and method for automatically collecting opinions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005526307A (en) * 2002-02-14 2005-09-02 ヴォートヒア インコーポレイテッド Non-mandatory voting scheme
RU2444063C1 (en) * 2010-09-22 2012-02-27 Российская Федерация, от имени которой выступает Федеральная служба по техническому и экспортному контролю (ФСТЭК России) Voting method with high-reliability biometric protection of anonymity of voter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826029A (en) * 1995-10-31 1998-10-20 International Business Machines Corporation Secured gateway interface
US7237717B1 (en) * 1996-12-16 2007-07-03 Ip Holdings, Inc. Secure system for electronic voting
US20180004858A1 (en) * 2009-02-04 2018-01-04 Neopad Inc. System and method for automatically collecting opinions
RU2459239C2 (en) * 2010-11-08 2012-08-20 Кирилл Евгеньевич Чирков Distributed computer system of optimum solutions
US20140283027A1 (en) * 2013-03-14 2014-09-18 Carefusion 303, Inc. Auditing User Actions in Treatment Related Files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230291747A1 (en) * 2020-03-10 2023-09-14 Duckpond Technologies, Inc. Method of securing a voting transaction

Also Published As

Publication number Publication date
EA201992482A1 (en) 2021-05-31
RU2019135322A (en) 2021-05-05
RU2751315C2 (en) 2021-07-13
RU2019135322A3 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
US11847199B2 (en) Remote usage of locally stored biometric authentication data
US11049205B2 (en) System and method for electronically providing legal instrument
RU2320009C2 (en) Systems and methods for protected biometric authentication
US9123031B2 (en) Attendance tracking via device presence
CA2840171C (en) System and method for user enrollment in a secure biometric verification system
JP6932175B2 (en) Personal number management device, personal number management method, and personal number management program
US10110574B1 (en) Biometric identification
EP1669836A1 (en) User authentication by combining speaker verification and reverse turing test
US20050216768A1 (en) System and method for authenticating a user of an account
EP4062351A1 (en) Know your customer (kyc) and anti-money laundering (aml) verification in a multi-decentralized private blockchains network
CN111159308B (en) Transaction record sharing method and device based on block chain network and electronic equipment
WO2018140832A1 (en) Managing distributed content using layered permissions
KR102308528B1 (en) Electronic voting system and Electronic voting method
RU2751315C2 (en) Universal system of distributed secure remote voting
JP7245390B2 (en) Identity authentication system and method
CN114826657A (en) Block chain-based security audit system and audit method
COSKUN et al. Secure Mobile Authentication With Blockchain Utilizing Ecc, Zkps, and Post-Quantum Cryptography
RU2701088C1 (en) Method and system for trusted paperless presentation of documents
US10003464B1 (en) Biometric identification system and associated methods
EA044528B1 (en) UNIVERSAL SYSTEM OF DISTRIBUTED SECURE REMOTE VOTING
He et al. Understanding mobile banking applications’ security risks through blog mining and the workflow technology
KR102307668B1 (en) Certification system and certification method
RU2751457C1 (en) Method and system for electronic voting in a distributed registry
Nwogu et al. Enhancing the robustness of a three-layer security electronic voting system using Kerberos authentication
KR102296322B1 (en) Identity authentication system and method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19951532

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19951532

Country of ref document: EP

Kind code of ref document: A1