Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Designed for Reliable Performance and Enterprise Security

FrameworX combines deterministic real-time performance with comprehensive security architecture. Built on the [Technology Foundation] of 100% managed .NET code, the platform delivers millisecond response times while maintaining defense-in-depth protection and full compliance capabilities.

Operational Excellence:

  • Performance monitoring with <100ms tag updates & 1ms timestamps
  • Multi-layer security with RBAC, Secrets  and encryption
  • Compliance ready: FDA, IEC 62443, NERC-CIP
  • Git-based DevOps with JSON export
  • Hot-standby redundancy with <5 second failover


Panel
borderWidth1
borderStylesolid
titleOn this Page:

Table of Contents
maxLevel2
minLevel2
excludeSteps



Optimized  Architecture

Optimization Layers

LayerOptimizationImpact
ApplicationEfficient scripts, optimized queriesCPU usage
RuntimeThread pool tuning, memory managementResponse time
DatabaseIndexing, partitioning, archivingQuery speed
NetworkCompression, protocol selectionBandwidth
HardwareCPU cores, RAM, SSD storageOverall capacity

Operational Stability

  • 100% Managed Code - No memory leaks or pointer errors
  • Exception Handling - Graceful failure recovery at every level
  • Multi-threaded Execution - Parallel processing with thread safety
  • Resource Management - Automatic garbage collection and optimization

Key Operational Characteristics:

  • Performance - Millisecond response times with deterministic execution
  • Security - Multi-layer protection with RBAC and encryption
  • Compliance - FDA 21 CFR Part 11, IEC 62443, NERC-CIP ready
  • DevOps - Git integration with diff-friendly JSON export
  • Reliability - Hot-standby redundancy across all editions
  • Auditability - Complete audit trails with tamper detection

Operational Stability

  • 100% Managed Code - No memory leaks or pointer errors
  • Exception Handling - Graceful failure recovery at every level
  • Multi-threaded Execution - Parallel processing with thread safety
  • Resource Management - Automatic garbage collection and optimization

    Performance Metrics

    MetricTargetMeasurement
    Tag Update Rate<100msDevice to display. Use case deployed: 100,000 Modbus tags  in  < 1s
    Alarm Response<1 secondCondition to notification,  keeping 1ms timestamp on logs
    Client Response<200msUser display action to feedback
    Displays Update< 50msCode behind execution and realtime updates on diaplays
    Historian Write<1 secondTag change to storage, keeping 1ms timestamp on logs
    Failover Time<5 seconds

    Primary to standby


    Built-in Performance Monitoring Tools:

    • Real-time performance dashboards • Resource utilization tracking • Bottleneck identification • Historical trend analysis
     

    Security Architecture

    Defense in Depth

    Layers

    "Overview" 

    Tagline: Designed for Reliable Performance

    (Refer and link to the Technology Stack/Foundation as the number one importance on both performance and security

    Performance Architecture

    Optimization Layers

    Layer

    Optimization

    Impact

    ApplicationEfficient scripts, optimized queriesCPU usage
    RuntimeThread pool tuning, memory managementResponse time
    DatabaseIndexing, partitioning, archivingQuery speed
    NetworkCompression, protocol selectionBandwidth
    HardwareCPU cores, RAM, SSD storageOverall capacity

    Built-in Performance Monitoring tools

    Image Removed

    Diagnostic Architecture

    Logging Infrastructure

    Image Removed

    Technology Stack

    Both .NET & Java and powerful platforms for enterprises, with benefits and tradeoffs on specific scenarios.

    The one area, there is technical nonsense in the market is that .NET is the technology to go when performance is key. 

    Add:

    C#  vs Python 3 vs Jython

    Add:

    WebAssembly

    Add FactoryFloor Operations Performance Requirements

    (Research other .NET unique features, JIT, MamageCode, Dynamic Loading, Domain, etc)

    Performance Architecture

    Optimization Layers

    LayerOptimizationImpact
    ApplicationEfficient scripts, optimized queriesCPU usage
    RuntimeThread pool tuning, memory managementResponse time
    DatabaseIndexing, partitioning, archivingQuery speed
    NetworkCompression, protocol selectionBandwidth
    HardwareCPU cores, RAM, SSD storageOverall capacity

    Scalability Factors

    Enterprise Unlimited (Distributed) (*2)
    100,000+
    Enterprise Unlimited (Stand-alone)
    15,000-100,000 I/O (*)
    Enterprise Scaled
    1,500 to 15,000 I/O
    MachineHMI
    Up to 1,000 I/O

    (*1) The distributed model is frequently used in smaller applications.
    It provides easier management with the distributed nodes:

    •  DataHubNode: I/O acquisition and Alarm/Historian processing
    • ApplicationNode: Automation Islands for Displays & Users self-governance.

    (*2) There are no restrictions to deploy larger systems.

    That is just the typical usage. 

    (*3) EdgeConnect has unlimited  I/O, but not included in this chart, as it as Edge services to another app.

    Performance Metrics

    MetricTargetMeasurement
    Tag Update Rate<100msDevice to display
    Alarm Response<1 secondCondition to notification
    Client Response<200msUser action to feedback
    Historian Write<1 secondTag change to storage
    Failover Time<5 secondsPrimary to backup

    Diagnostic Architecture

    Logging Infrastructure

    Image Removed

    Performance Monitoring

    Image Removed

    AI Assistant Data

    <details> <summary>Structured Information for AI Tools</summary>

    json

    {
      "page": "Platform Architecture",
      "type": "Technical Architecture Guide",
      "purpose": "Explain FrameworX system architecture and deployment patterns",
      "sections": {
        "components": ["Three-tier architecture", "Runtime engine", "Module system"],
        "deployment": ["Standalone", "Distributed", "Redundant", "Cloud/Hybrid"],
        "dataFlow": ["Real-time processing", "Event-driven", "Message bus"],
        "security": ["Defense in depth", "Security zones", "Authentication/Authorization"],
        "performance": ["Scalability", "Optimization", "Metrics"]
      },
      "keyArchitecture": {
        "tiers": ["Presentation", "Application", "Data"],
        "core": "TServer Runtime Engine",
        "communication": "TCP/IP, HTTP/S, WebSocket",
        "storage": "In-memory tags, SQL databases"
      },
      "scalability": {
        "small": "Up to 5,000 tags",
        "medium": "5,000-50,000 tags",
        "large": "50,000-500,000 tags",
        "enterprise": "500,000+ tags"
      }
    }

    </details>

    Claude can make mistakes.
    Please double-check responses.

    Introduction

    Our platform caters to mission-critical systems in sectors like Energy, Oil & Gas, and Pharma. Whether meeting NERC or FDA standards, it provides a stable, secure infrastructure from HMI to IoT. This section delves into key features.

    On this page:

    Table of Contents
    maxLevel2
    stylenone

    Security Highlights

    Security and Reliability

    We prioritize stability and security throughout our platform's design, from technology selection to module architecture.

    Easy Configuration and Maintenance

    Our platform offers secure, straightforward configuration and maintenance for various scenarios, ensuring scalability and consistency.

    Operational Stability

    Operational stability is guaranteed with our platform's 100% managed code implementation, featuring robust exception handling and seamless failure recovery.

    Redundancy and Availability

    For high availability, our platform offers redundancy with a proven hot-standby system for real-time databases, alarms, and historians, catering to diverse network setups.

    FDA 21 CFR Part 11 and NERC

    The software platform has a range of security and compliance features that can be used to help organizations meet the requirements of FDA 21 CFR Part 11. It is important to note that compliance is an ongoing process, and therefore, organizations should regularly monitor and update their systems and policies to ensure adherence to the standards established by the FDA.

    The platform was also designed following the applicable recommendations from NERC CIP, such as the CIP-007-1 - Cyber Security-System Management.

    Title 21 CFR Part 11 is the part of Title 21 of the Code of Federal Regulations that establishes the United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).

    Part 11, as it is commonly called, defines the criteria under which electronic records and electronic signatures are considered trustworthy, reliable, and equivalent to paper records.

    Listed below and described are some security-related features available in the product:

    Panel
    bgColor#ffffff
    • Access Control: Security technique that regulates who or what can view or use resources in a computing environment.

    • Password Encryption: System administrator does not possess access to the user password. They are encrypted before being stored.

    • Maximum and Minimum Age for Password: A feature that imposes a minimum password age before allowing its change, and a maximum age before expiring.

    • Required Password changing: Forces the user to alter his password after the first login has been made.

    • User Name and Password Minimum Length: Establishes minimum requirements for passwords.

    • Block on Invalid Login Attempt: Blocks User after reaching maximum number of invalid logins attempted.

    • Store Password History: A range of the last 0-5 passwords can be stored to make sure User does not repeat an already used one.

    • Auto Log Off: User is logged off the system for inactivity or expiration date.

    • Audit Trail Data: Security-relevant chronological record, set of records, that provide documentary evidence of the sequence of activities that have affected at any time a specific operation.

    For detailed Explanation on how to add security management in project consist with these rules, go to the page FDA 21 CRT Compliance page.

    For addition information on NERC CIP-007-1 - Cyber Security-System Management, go to the page NERC CIP Overview.

    Implementation

    Layer 1 Multi-layer Security 

    Layer 1: Network. Security 

    • Hardware: Firewall VLAN / VPN Access
    • Software: IP filtering, connections-Monitoring

    Layer 2: Application Security

    • Identification: WA, LDAP, OAuth, Native, Custom
    • Authorization: (Role-Based Access)

    Layer 3: Data Security

    • Database Encryption 
    • Secure Communication & Audit Logging  

    Layer 4: Operational Security

    • Change Management & Built-in Validation 
    • Backup/Recovery & Incidents Recovery 



    Security Zones Architecture (ISA-99/IEC 62443)


    TSecureGateway enables secure data transfer across zones, bridging Level 2 (factory floor) to Level 4 (enterprise) while maintaining isolation and protection against threats.


    Security LayerComponentsProtection Level
    Layer 1: Network• Firewall, VLAN, VPN
    • IP filtering/whitelisting
    • TLS/SSL encryption
    Perimeter defense
    Layer 2: Application• RBAC authorization
    • Active Directory/LDAP
    • Session management
    Access control
    Layer 3: Data• Encrypted .dbsln files
    • SQL injection protection
    • Secure secrets management
    Information security
    Layer 4: Operational• Change management
    • Audit logging
    • Backup/recovery procedures
    Process integrity






    Operational Stability

    • 100% Managed Code - No memory leaks or pointer errors
    • Exception Handling - Graceful failure recovery at every level
    • Multi-threaded Execution - Parallel processing with thread safety
    • Resource Management - Automatic garbage collection and optimization

    Key Operational Characteristics:

    • Performance - Millisecond response times with deterministic execution
    • Security - Multi-layer protection with RBAC and encryption
    • Compliance - FDA 21 CFR Part 11, IEC 62443, NERC-CIP ready
    • DevOps - Git integration with diff-friendly JSON export
    • Reliability - Hot-standby redundancy across all editions
    • Auditability - Complete audit trails with tamper detection

    Operational Stability

    • 100% Managed Code - No memory leaks or pointer errors
    • Exception Handling - Graceful failure recovery at every level
    • Multi-threaded Execution - Parallel processing with thread safety
    • Resource Management - Automatic garbage collection and optimization

    Security Architecture

    Defense in Depth Layers











    "Overview" 

    Tagline: Designed for Reliable Performance


    (Refer and link to the Technology Stack/Foundation as the number one importance on both performance and security



    Diagnostic Architecture

    Logging Infrastructure

    Image Added


    Scalability Factors

    Enterprise Unlimited (Distributed) (*2)
    100,000+

    Enterprise Unlimited (Stand-alone)
    15,000-100,000 I/O (*)

    Enterprise Scaled
    1,500 to 15,000 I/O

    MachineHMI
    Up to 1,000 I/O





    Security Highlights

    Security and Reliability

    We prioritize stability and security throughout our platform's design, from technology selection to module architecture.


    Easy Configuration and Maintenance

    Our platform offers secure, straightforward configuration and maintenance for various scenarios, ensuring scalability and consistency.


    Operational Stability

    Operational stability is guaranteed with our platform's 100% managed code implementation, featuring robust exception handling and seamless failure recovery.


    Redundancy and Availability

    For high availability, our platform offers redundancy with a proven hot-standby system for real-time databases, alarms, and historians, catering to diverse network setups.




    FDA 21 CFR Part 11 and NERC

    The software platform has a range of security and compliance features that can be used to help organizations meet the requirements of FDA 21 CFR Part 11. It is important to note that compliance is an ongoing process, and therefore, organizations should regularly monitor and update their systems and policies to ensure adherence to the standards established by the FDA.

    The platform was also designed following the applicable recommendations from NERC CIP, such as the CIP-007-1 - Cyber Security-System Management.

    Title 21 CFR Part 11 is the part of Title 21 of the Code of Federal Regulations that establishes the United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).

    Part 11, as it is commonly called, defines the criteria under which electronic records and electronic signatures are considered trustworthy, reliable, and equivalent to paper records.

    Listed below and described are some security-related features available in the product:

    Panel
    bgColor#ffffff
    • Access Control: Security technique that regulates who or what can view or use resources in a computing environment.

    • Password Encryption: System administrator does not possess access to the user password. They are encrypted before being stored.

    • Maximum and Minimum Age for Password: A feature that imposes a minimum password age before allowing its change, and a maximum age before expiring.

    • Required Password changing: Forces the user to alter his password after the first login has been made.

    • User Name and Password Minimum Length: Establishes minimum requirements for passwords.

    • Block on Invalid Login Attempt: Blocks User after reaching maximum number of invalid logins attempted.

    • Store Password History: A range of the last 0-5 passwords can be stored to make sure User does not repeat an already used one.

    • Auto Log Off: User is logged off the system for inactivity or expiration date.

    • Audit Trail Data: Security-relevant chronological record, set of records, that provide documentary evidence of the sequence of activities that have affected at any time a specific operation.


    For detailed Explanation on how to add security management in project consist with these rules, go to the page FDA 21 CRT Compliance page.

    For addition information on NERC CIP-007-1 - Cyber Security-System Management, go to the page NERC CIP Overview.




    Built-in .NET Security

    FrameworX development is built on the .NET framework, following strict security protocols. Each module adheres to specific guidelines aligned with its function, such as FDA compliance for the Alarms module and adherence to standards like IEC61850 for modules handling electrical device communications.

    Below are the main security topics along with essential details about each.

    Tip
    titleSecurity at the Core Level

    Security implementation is ingrained at the core level rather than being applied externally. The platform's modules incorporate built-in security components designed from their very core.

    For more detailed insights into security in .NET, refer to Microsoft's documentation available at: Microsoft .NET Security Information





    Web Client Communication Security

    HTML5 provides flexibility in choosing between "http" or "https/ssl" protocols.

    The production servers will use HTTPS, but the allowing http connection on development, simplifies the early state of the projects.

    The HTTPS uses TLS security. 

    The TSecureGateway is a crucial part of our platform, enabling smooth data transfer across different security network zones. It serves as a bridge, moving data from lower levels, like the factory floor (Level 2), to higher levels such as the enterprise (Level 4).

    Acting as a protective barrier, the TSecureGateway shields internal networks from insecure traffic. Enterprises rely on it to guard employees and users against potential threats from malicious web traffic, websites, viruses, and malware.




    Files and Execution Protection

    License/Softkey

    The "License/Softkey" feature employs the .NET class System.Security.Cryptography.Rijndael, utilizing symmetric encryption with a key size of 256 bits.

    Digital signature

    All assemblies created by Tatsoft are signed digitally.

    Project format (Configuration protection) 

    All project settings, including security measures like cryptography, power recovery, and user/password protections, are stored in a relational database (.dbsln file). The source code and compiled binaries for Scripts and Displays are also stored in this file. This centralized storage method streamlines project management and deployment, making access and maintenance easier.




    User Authentication and Permissions

    User Authentication

    Our platform offers integration with various systems for user authentication:

    Panel
    bgColor#ffffff
    • Microsoft Active Directory and Windows Authentication
    • LDAP server connection
    • Built-in Users Database
    • External databases or user authentication servers


    Active-Directory / Windows Authentication

    Enabling Windows Authentication bypasses the project's configured user list, relying on Windows policies instead. Windows manages user authentication directly, utilizing the currently logged-in Windows user for system access.

    LDAP

    When LDAP is used, the project ignores its configured user list and relies on policies managed by Windows and the LDAP Server. Authentication is handled by both Windows and the LDAP Server, with the external user logged into the LDAP Server being utilized within the system.

    Runtime Users

    The system dynamically generates users and stores their credentials in SQL databases. It seamlessly integrates with Active Directory or third-party systems to retrieve users, enabling integrated security and unified login capabilities.


    Roles, Permission and Policies

    Group and User Permissions

    Our users have complete flexibility to define privileges based on groups or specific individuals. Permissions can be set globally or linked to particular displays, objects, or input actions, offering granular control over access levels.


    User Policies

    Our platform offers a comprehensive array of user management features, including identification policies, session duration control, automated logoff mechanisms, electronic signature capabilities, and robust audit-trail functionality.





    Database Injection Protection

    In database operations involving stored procedures, there is a significant concern about SQL injection. SQL injection can occur if parameters are passed as plain text within SQL statements, which could allow malicious code to be executed. To prevent this, we use the .NET API, where parameters are added to a command object’s parameter list. This approach makes SQL injection impossible by safely handling user input.





    Security External Validation

    Regularly the platform is accessed by Veracode, or third-party companies, on penetration testing report, gap analysis, and various other topics.

    Any issues that would prevent a 100% approval are corrected.


    Security & Users

    Overview

    Security & Users management in FrameworX 10.1 provides comprehensive access control, authentication, authorization, and audit capabilities to protect your industrial systems. This guide covers user management, role-based security, integration with enterprise authentication systems, and cybersecurity best practices following industry standards including ISA-99/IEC 62443.


    Security Architecture

    Defense in DepthSecurity

    Built-in .NET Security

    FrameworX development is built on the .NET framework, following strict security protocols. Each module adheres to specific guidelines aligned with its function, such as FDA compliance for the Alarms module and adherence to standards like IEC61850 for modules handling electrical device communications.

    Below are the main security topics along with essential details about each.

    Tip
    titleSecurity at the Core Level

    Security implementation is ingrained at the core level rather than being applied externally. The platform's modules incorporate built-in security components designed from their very core.

    For more detailed insights into security in .NET, refer to Microsoft's documentation available at: Microsoft .NET Security Information

    Web Client Communication Security

    HTML5 provides flexibility in choosing between "http" or "https/ssl" protocols.

    The production servers will use HTTPS, but the allowing http connection on development, simplifies the early state of the projects.

    The HTTPS uses TLS security. 

    The TSecureGateway is a crucial part of our platform, enabling smooth data transfer across different security network zones. It serves as a bridge, moving data from lower levels, like the factory floor (Level 2), to higher levels such as the enterprise (Level 4).

    Acting as a protective barrier, the TSecureGateway shields internal networks from insecure traffic. Enterprises rely on it to guard employees and users against potential threats from malicious web traffic, websites, viruses, and malware.

    Files and Execution Protection

    License/Softkey

    The "License/Softkey" feature employs the .NET class System.Security.Cryptography.Rijndael, utilizing symmetric encryption with a key size of 256 bits.

    Digital signature

    All assemblies created by Tatsoft are signed digitally.

    Project format (Configuration protection) 

    All project settings, including security measures like cryptography, power recovery, and user/password protections, are stored in a relational database (.dbsln file). The source code and compiled binaries for Scripts and Displays are also stored in this file. This centralized storage method streamlines project management and deployment, making access and maintenance easier.

    User Authentication and Permissions

    User Authentication

    Our platform offers integration with various systems for user authentication:

    Panel
    bgColor#ffffff
    • Microsoft Active Directory and Windows Authentication
    • LDAP server connection
    • Built-in Users Database
    • External databases or user authentication servers

    Active-Directory / Windows Authentication

    Enabling Windows Authentication bypasses the project's configured user list, relying on Windows policies instead. Windows manages user authentication directly, utilizing the currently logged-in Windows user for system access.

    LDAP

    When LDAP is used, the project ignores its configured user list and relies on policies managed by Windows and the LDAP Server. Authentication is handled by both Windows and the LDAP Server, with the external user logged into the LDAP Server being utilized within the system.

    Runtime Users

    The system dynamically generates users and stores their credentials in SQL databases. It seamlessly integrates with Active Directory or third-party systems to retrieve users, enabling integrated security and unified login capabilities.

    Roles, Permission and Policies

    Group and User Permissions

    Our users have complete flexibility to define privileges based on groups or specific individuals. Permissions can be set globally or linked to particular displays, objects, or input actions, offering granular control over access levels.

    User Policies

    Our platform offers a comprehensive array of user management features, including identification policies, session duration control, automated logoff mechanisms, electronic signature capabilities, and robust audit-trail functionality.

    Database Injection Protection

    In database operations involving stored procedures, there is a significant concern about SQL injection. SQL injection can occur if parameters are passed as plain text within SQL statements, which could allow malicious code to be executed. To prevent this, we use the .NET API, where parameters are added to a command object’s parameter list. This approach makes SQL injection impossible by safely handling user input.

    Security External Validation

    Regularly the platform is accessed by Veracode, or third-party companies, on penetration testing report, gap analysis, and various other topics.

    Any issues that would prevent a 100% approval are corrected.

    Security & Users

    Overview

    Security & Users management in FrameworX 10.1 provides comprehensive access control, authentication, authorization, and audit capabilities to protect your industrial systems. This guide covers user management, role-based security, integration with enterprise authentication systems, and cybersecurity best practices following industry standards including ISA-99/IEC 62443.

    Security Architecture

    Defense in Depth

    Layer 1 Multi-layer Security 

    Layer 1: Network. Security 

    • Hardware: Firewall VLAN / VPN Access
    • Software: IP filtering, connections-Monitoring

    Layer 2: Application Security

    • Identification: WA, LDAP, OAuth, Native, Custom
    • Authorization: (Role-Based Access)

    Layer 3: Data Security

    • Database Encryption 
    • Secure Communication & Audit Logging  

    Layer 4: Operational Security

    • Change Management & Built-in Validation 
    • Backup/Recovery & Incidents Recovery 
    Security

    Zones (ISA-99/IEC 62443)


    Image Modified



    User Management

    User Account Types

    Account TypePurposePermissionsBest Practice
    AdministratorSystem configurationFull accessLimit to 2-3 users
    EngineerSolution developmentDesign, configureIndividual accounts
    SupervisorOperations oversightView all, control criticalShift-based
    OperatorDaily operationsView assigned, basic controlArea-specific
    ViewerMonitoring onlyRead-only accessContractors, visitors

    SecureGateway module simplifies connecting Level 3 and Level 4 opeartoins 

    Creating Users

    Manual User Creation

    1. Navigate to Security  Users
    2. Click New User
    3. Configure user properties:
    User Configuration:
    ??? Identity
    ?   ??? Username: john.smith
    ?   ??? Full Name: John Smith
    ?   ??? Email: jsmith@company.com
    ?   ??? Employee ID: EMP001
    ??? Authentication
    ?   ??? Type: Forms / Windows / Certificate
    ?   ??? Password: (if Forms)
    ?   ??? Domain: COMPANY (if Windows)
    ??? Authorization
    ?   ??? Role: Operator
    ?   ??? Groups: [Production, Maintenance]
    ?   ??? Areas: [Line1, Line2]
    ??? Settings
        ??? Account Enabled: Yes
        ??? Password Expires: 90 days
        ??? Session Timeout: 20 minutes
        ??? Concurrent Sessions: 1

    Bulk User Import

    csv

    # Users.csv format
    Username,FullName,Email,Role,Groups,Password
    jsmith,John Smith,jsmith@company.com,Operator,"Production,Line1",TempPass123!
    mjones,Mary Jones,mjones@company.com,Supervisor,"All",TempPass456!
    bwilson,Bob Wilson,bwilson@company.com,Engineer,"Engineering",TempPass789!

    Import process:

    1. Prepare CSV file
    2. Security → Users → Import
    3. Map columns
    4. Validate and import
    5. Force password change on first login

    Password Policies

    Password Requirements Configuration

    PolicySettingRecommendedMaximum Security
    Minimum LengthCharacters812+
    ComplexityRequirements3 of 4 typesAll 4 types
    HistoryPrevious passwords512
    Maximum AgeDays9060
    Minimum AgeDays12
    Lockout ThresholdFailed attempts53
    Lockout DurationMinutes3060

    Password Complexity Rules

    Requirements (3 of 4):
    ? Uppercase letters (A-Z)
    ? Lowercase letters (a-z)
    ? Numbers (0-9)
    ? Special characters (!@#$%^&*)
    
    Additional Rules:
    ? Cannot contain username
    ? Cannot contain common words
    ? No sequential characters (123, abc)
    ? No repeated characters (aaa)

    Role-Based Access Control (RBAC)

    Predefined Roles

    Administrator (Level 0)
    ??? Full system access
    ??? User management
    ??? Security configuration
    ??? All operations
    
    Engineer (Level 100)
    ??? Solution configuration
    ??? Display design
    ??? Script development
    ??? No user management
    
    Supervisor (Level 200)
    ??? All operator functions
    ??? Setpoint changes
    ??? Alarm management
    ??? Report generation
    
    Operator (Level 300)
    ??? View displays
    ??? Acknowledge alarms
    ??? Basic control
    ??? No configuration
    
    Viewer (Level 999)
    ??? View only
    ??? No control
    ??? No acknowledgment
    ??? No configuration

    Creating Custom Roles

    xml

    <!-- Custom Role Definition -->
    <Role Name="MaintenanceTech" Level="250">
      <Permissions>
        <!-- Display Permissions -->
        <Display View="All" Control="Maintenance" />
        
        <!-- Tag Permissions -->
        <Tags Read="All" Write="Maintenance/*" />
        
        <!-- Alarm Permissions -->
        <Alarms View="All" Acknowledge="Maintenance" Configure="None" />
        
        <!-- Report Permissions -->
        <Reports View="All" Generate="Maintenance" Configure="None" />
        
        <!-- Script Permissions -->
        <Scripts Execute="Maintenance" Develop="None" />
        
        <!-- System Permissions -->
        <System Backup="Yes" Restore="No" Configure="No" />
      </Permissions>
      
      <Restrictions>
        <TimeWindow Start="06:00" End="18:00" />
        <DaysOfWeek>Monday,Tuesday,Wednesday,Thursday,Friday</DaysOfWeek>
        <IPRange>192.168.1.0/24</IPRange>
      </Restrictions>
    </Role>

    Permission Matrix

    FeatureAdminEngineerSupervisorOperatorViewer
    View Displays?????
    Control Equipment?????
    Change Setpoints?????
    Acknowledge Alarms?????
    Configure Alarms?????
    Design Displays?????
    Write Scripts?????
    Manage Users?????
    System Config?????

    Authentication Methods

    Windows Authentication

    Integration with Active Directory:

    xml

    <Authentication Type="Windows">
      <Domain>COMPANY.LOCAL</Domain>
      <DefaultDomain>COMPANY</DefaultDomain>
      <AllowLocalAccounts>false</AllowLocalAccounts>
      
      <GroupMappings>
        <Map ADGroup="Domain\SCADA_Admins" Role="Administrator" />
        <Map ADGroup="Domain\SCADA_Engineers" Role="Engineer" />
        <Map ADGroup="Domain\SCADA_Operators" Role="Operator" />
      </GroupMappings>
      
      <UserSync>
        <Enabled>true</Enabled>
        <Schedule>0 2 * * *</Schedule> <!-- Daily at 2 AM -->
        <BaseDN>OU=SCADA,DC=company,DC=local</BaseDN>
      </UserSync>
    </Authentication>

    Forms Authentication

    Built-in user database:

    csharp

    // Login validation
    public bool ValidateLogin(string username, string password)
    {
        // Hash password
        string hashedPassword = HashPassword(password);
        
        // Check database
        var user = GetUser(username);
        
        if (user != null && user.PasswordHash == hashedPassword)
        {
            // Check account status
            if (!user.IsEnabled)
                return LogFailure("Account disabled");
                
            if (user.IsLocked)
                return LogFailure("Account locked");
                
            if (user.PasswordExpired)
                return RequirePasswordChange();
                
            // Success
            CreateSession(user);
            LogSuccess(user);
            return true;
        }
        
        // Failed
        IncrementFailedAttempts(username);
        return false;
    }

    Certificate Authentication

    Smart card and certificate-based:

    xml

    <Authentication Type="Certificate">
      <TrustedRootCA>CN=Company Root CA</TrustedRootCA>
      <RequiredFields>
        <Field>SubjectName</Field>
        <Field>Thumbprint</Field>
      </RequiredFields>
      
      <Mappings>
        <Map Certificate="CN=John Smith" User="jsmith" />
        <Map Certificate="OU=Engineering" Role="Engineer" />
      </Mappings>
      
      <Validation>
        <CheckRevocation>true</CheckRevocation>
        <RequireSmartCard>true</RequireSmartCard>
      </Validation>
    </Authentication>

    Two-Factor Authentication (2FA)

    csharp

    // 2FA Implementation
    public class TwoFactorAuth
    {
        public bool ValidateLogin(string username, string password, string token)
        {
            // First factor - password
            if (!ValidatePassword(username, password))
                return false;
                
            // Second factor - token
            if (!ValidateToken(username, token))
                return false;
                
            return true;
        }
        
        private bool ValidateToken(string username, string token)
        {
            // Time-based OTP (TOTP)
            var secret = GetUserSecret(username);
            var totp = new Totp(secret);
            
            return totp.VerifyTotp(token, out long timeStepMatched);
        }
    }

    Authorization & Access Control

    Tag-Level Security

    xml

    <!-- Tag Security Configuration -->
    <TagSecurity>
      <Tag Name="Production.Setpoint">
        <Read>Operator, Supervisor, Engineer, Administrator</Read>
        <Write>Supervisor, Engineer, Administrator</Write>
      </Tag>
      
      <Tag Name="Maintenance.*">
        <Read>All</Read>
        <Write>MaintenanceTech, Engineer, Administrator</Write>
      </Tag>
      
      <Tag Name="Security.*">
        <Read>Administrator</Read>
        <Write>Administrator</Write>
      </Tag>
    </TagSecurity>

    Display Security

    xml

    <!-- Display Access Control -->
    <DisplaySecurity>
      <Display Name="Overview">
        <View>All</View>
        <Elements>
          <Button Name="StartProcess" Roles="Operator,Supervisor" />
          <Button Name="EmergencyStop" Roles="All" />
          <Input Name="Setpoint" Roles="Supervisor,Engineer" />
        </Elements>
      </Display>
      
      <Display Name="Engineering">
        <View>Engineer, Administrator</View>
        <Control>Engineer, Administrator</Control>
      </Display>
      
      <Display Name="UserManagement">
        <View>Administrator</View>
        <Control>Administrator</Control>
      </Display>
    </DisplaySecurity>

    Area-Based Security

    Plant Security Zones:
    ??? Area 1 (Production)
    ?   ??? Line 1
    ?   ?   ??? Operators: [User1, User2]
    ?   ?   ??? Supervisor: [Super1]
    ?   ??? Line 2
    ?       ??? Operators: [User3, User4]
    ?       ??? Supervisor: [Super1]
    ??? Area 2 (Packaging)
    ?   ??? Operators: [User5, User6]
    ?   ??? Supervisor: [Super2]
    ??? Area 3 (Utilities)
        ??? Operators: [User7]
        ??? Supervisor: [Super3]

    Audit Trail & Compliance

    Audit Configuration

    xml

    <AuditConfiguration>
      <General>
        <Enabled>true</Enabled>
        <Storage>Database</Storage>
        <Retention>7 years</Retention>
      </General>
      
      <Events>
        <Login>true</Login>
        <Logout>true</Logout>
        <FailedLogin>true</FailedLogin>
        <TagWrite>true</TagWrite>
        <AlarmAck>true</AlarmAck>
        <SetpointChange>true</SetpointChange>
        <ConfigChange>true</ConfigChange>
        <UserModification>true</UserModification>
      </Events>
      
      <Details>
        <IncludeOldValue>true</IncludeOldValue>
        <IncludeNewValue>true</IncludeNewValue>
        <IncludeWorkstation>true</IncludeWorkstation>
        <IncludeTimestamp>true</IncludeTimestamp>
      </Details>
    </AuditConfiguration>

    Audit Log Structure

    sql

    CREATE TABLE AuditLog (
        ID BIGINT IDENTITY PRIMARY KEY,
        Timestamp DATETIME2 NOT NULL,
        Username NVARCHAR(50) NOT NULL,
        FullName NVARCHAR(100),
        Workstation NVARCHAR(50),
        IPAddress NVARCHAR(45),
        Action NVARCHAR(50) NOT NULL,
        ObjectType NVARCHAR(50),
        ObjectName NVARCHAR(255),
        OldValue NVARCHAR(MAX),
        NewValue NVARCHAR(MAX),
        Result NVARCHAR(20),
        Comments NVARCHAR(MAX),
        Signature VARBINARY(256)
    );
    
    -- Index for performance
    CREATE INDEX IX_AuditLog_Timestamp ON AuditLog(Timestamp);
    CREATE INDEX IX_AuditLog_Username ON AuditLog(Username);
    CREATE INDEX IX_AuditLog_Action ON AuditLog(Action);

    21 CFR Part 11 Compliance

    Electronic signatures and records:

    csharp

    public class Part11Compliance
    {
        public void RecordChange(string tagName, object oldValue, object newValue)
        {
            // Require authentication
            var credentials = RequestCredentials();
            if (!ValidateCredentials(credentials))
                throw new SecurityException("Invalid credentials");
                
            // Require reason
            string reason = RequestReason();
            if (string.IsNullOrEmpty(reason))
                throw new ValidationException("Reason required");
                
            // Create audit record
            var audit = new AuditRecord
            {
                Timestamp = DateTime.UtcNow,
                Username = credentials.Username,
                Action = "Tag Modification",
                TagName = tagName,
                OldValue = oldValue,
                NewValue = newValue,
                Reason = reason,
                ElectronicSignature = GenerateSignature(credentials)
            };
            
            // Store with integrity check
            StoreAuditRecord(audit);
        }
        
        private byte[] GenerateSignature(Credentials creds)
        {
            // Generate cryptographic signature
            using (var rsa = RSA.Create())
            {
                var data = Encoding.UTF8.GetBytes($"{creds.Username}:{DateTime.UtcNow}");
                return rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
            }
        }
    }

    Security Configuration

    System Security Settings

    xml

    <SecuritySettings>
      <!-- Session Management -->
      <Sessions>
        <Timeout>20</Timeout> <!-- Minutes -->
        <MaxConcurrent>1</MaxConcurrent>
        <ExtendOnActivity>true</ExtendOnActivity>
        <WarningBefore>5</WarningBefore> <!-- Minutes -->
      </Sessions>
      
      <!-- Communication Security -->
      <Communication>
        <RequireEncryption>true</RequireEncryption>
        <TLSVersion>1.2</TLSVersion>
        <CipherSuites>
          <Suite>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</Suite>
          <Suite>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</Suite>
        </CipherSuites>
      </Communication>
      
      <!-- Client Restrictions -->
      <ClientRestrictions>
        <AllowedIPs>
          <Range>192.168.1.0/24</Range>
          <Range>10.0.0.0/8</Range>
        </AllowedIPs>
        <BlockedIPs>
          <IP>192.168.1.99</IP>
        </BlockedIPs>
      </ClientRestrictions>
    </SecuritySettings>

    Hardening Checklist

    Operating System

    •  Latest OS patches installed
    •  Unnecessary services disabled
    •  Windows Firewall configured
    •  Local security policies applied
    •  Antivirus installed and updated

    FrameworX Application

    •  Default accounts disabled/renamed
    •  Strong passwords enforced
    •  SSL/TLS configured
    •  Unnecessary modules disabled
    •  Latest FrameworX updates

    Network

    •  Firewall rules configured
    •  VLANs implemented
    •  VPN for remote access
    •  Network monitoring active
    •  IDS/IPS deployed

    Physical

    •  Server room access controlled
    •  Workstations locked
    •  USB ports disabled
    •  Screen lock timeout set
    •  Clean desk policy

    Security Monitoring

    Real-Time Security Dashboard

    Security Status Dashboard
    ????????????????????????????????????????????????
    ? Current Sessions: 12                         ?
    ? Failed Logins (24h): 3                      ?
    ? Configuration Changes (24h): 2               ?
    ? Suspicious Activities: 0                     ?
    ????????????????????????????????????????????????
    ? Recent Security Events:                      ?
    ? 10:23 - User login: jsmith                  ?
    ? 10:15 - Failed login: unknown               ?
    ? 09:45 - Password changed: mjones            ?
    ? 09:30 - Role modified: Operator             ?
    ????????????????????????????????????????????????

    Security Reports

    sql

    -- Failed login attempts report
    SELECT 
        Timestamp,
        Username,
        IPAddress,
        COUNT(*) as Attempts
    FROM SecurityLog
    WHERE Action = 'Login Failed'
        AND Timestamp > DATEADD(day, -7, GETDATE())
    GROUP BY Timestamp, Username, IPAddress
    HAVING COUNT(*) > 3
    ORDER BY Timestamp DESC;
    
    -- Privilege usage report
    SELECT 
        Username,
        Action,
        COUNT(*) as Count
    FROM AuditLog
    WHERE Action IN ('Setpoint Change', 'Force Value', 'Config Change')
        AND Timestamp > DATEADD(month, -1, GETDATE())
    GROUP BY Username, Action
    ORDER BY Count DESC;

    Incident Response

    Security Incident Procedure

    Incident Detected
          ?
          ?
    Classify Severity
          ?
          ??? Critical: Immediate response
          ??? High: Within 1 hour
          ??? Medium: Within 4 hours
          ??? Low: Next business day
          ?
          ?
    Contain Threat
          ?
          ??? Isolate affected systems
          ??? Disable compromised accounts
          ??? Block suspicious IPs
          ?
          ?
    Investigate
          ?
          ??? Review logs
          ??? Identify root cause
          ??? Assess damage
          ?
          ?
    Remediate
          ?
          ??? Apply patches
          ??? Reset credentials
          ??? Restore from backup
          ?
          ?
    Document & Learn

    Best Practices

    User Management

    • Use individual accounts (no shared accounts)
    • Implement least privilege principle
    • Regular access reviews (quarterly)
    • Disable unused accounts immediately
    • Enforce strong password policies

    Authentication

    • Use Windows Authentication when possible
    • Implement two-factor for critical access
    • Regular password rotation
    • Account lockout after failures
    • Session timeout enforcement

    Authorization

    • Role-based access control
    • Granular permissions
    • Area-based restrictions
    • Time-based access windows
    • Regular permission audits

    Monitoring

    • Enable comprehensive audit logging
    • Regular log review
    • Automated alerts for suspicious activity
    • Security dashboard for operators
    • Incident response procedures

    Troubleshooting Security Issues

    IssuePossible CauseSolution
    Cannot loginAccount lockedCheck failed attempts, unlock account
    Access deniedInsufficient permissionsVerify role assignments
    Session timeoutInactivityAdjust timeout settings
    Certificate errorExpired certificateRenew certificates
    AD sync failingNetwork/credentialsVerify domain connectivity
    Audit logs missingStorage fullArchive old logs
    Slow authenticationNetwork latencyCheck DC connectivity

    AI Assistant Data

    <details> <summary>Structured Information for AI Tools</summary>

    json

    {
      "page": "Security & Users",
      "type": "Security Reference",
      "purpose": "Comprehensive security and user management documentation",
      "sections": {
        "architecture": ["Defense in depth", "Security zones", "ISA-99/IEC 62443"],
        "userManagement": ["Account types", "Password policies", "Bulk import"],
        "authentication": ["Windows/AD", "Forms", "Certificates", "Two-factor"],
        "authorization": ["RBAC", "Tag security", "Display security", "Areas"],
        "compliance": ["Audit trail", "21 CFR Part 11", "Electronic signatures"],
        "monitoring": ["Real-time dashboard", "Security reports", "Incident response"]
      },
      "standards": {
        "industrial": "ISA-99/IEC 62443",
        "regulatory": "21 CFR Part 11",
        "enterprise": "Active Directory, LDAP"
      },
      "bestPractices": [
        "Least privilege principle",
        "Individual accounts",
        "Strong passwords",
        "Regular audits",
        "Comprehensive logging"
      ]
    }

    </details>




    In this section...

    Page Tree
    root@parent
    spaces93DRAF