TX Text Control .NET for WPF

Security Overview

Topic

Who can read a document, who can change it and who can sign it? In a WPF application with TX Text Control, the answers start on the desktop: the editor, the engine and every document it opens live on the computer of the person using the application. TX Text Control contributes protections that travel inside the documents, and your application contributes identity, passwords and certificates. For architects, developers and reviewers, the sections below lay out this division before the pages that follow go into each part.

Where Documents Are Processed

TX Text Control .NET for WPF has no service or server component. Everything runs in the process of your application:

  • TextControl, the editor in your window, and ServerTextControl and MailMerge, which process documents without a user interface, are .NET classes that your application creates. Product Architecture shows how they fit together.
  • The document engine, .NET assemblies and native Windows libraries, is installed together with your application and does the loading, formatting, rendering, printing and saving.
  • The license is compiled into one of your assemblies. The people who run your application need no serial number, no license file and no activation, as Application Licensing explains.

Documents stay in memory until your code or the user saves them. Two features that involve other computers depend on your code:

The Desktop as a Security Boundary

On a desktop, the user can reach what the application reaches: the documents it opens, the templates it merges, its installation folder and any file it reads at startup. Text Control makes this point in an article comparing server-side and client-side document generation: templates kept and processed on the client can be tampered with by users, and highly sensitive data is safer when documents are generated on a server. Decide early which files your application may install on users' computers and which it should fetch from a place that checks who is asking.

What leaves the computer as a document can still carry protection with it. The next section compares what TX Text Control offers.

Protections of TX Text Control

MechanismProtects againstLeaves openRead
Document protectionEditing, formatting, copying and printing in the TextControl, outside the editable regions of the userReading: the content stays visibleDocument Protection and User Permissions
PDF user passwordOpening the PDF without the password; the file is encryptedChanges by those who know the passwordPDF Passwords and Permissions
PDF permissionsPrinting, copying or editing in PDF readers that respect themReaders that ignore themPDF Passwords and Permissions
Digital signatureUndetected changes to a PDF; it identifies the signerReading the contentCertificate and Private Key Handling
Load settings and eventsUnwanted imports and link targetsHarmful content inside supported formatsHandling Untrusted Documents

A form can be protected while it's filled in and then saved as a signed and encrypted PDF: the mechanisms add up.

Responsibilities of Your Application

  • Identifying the user. Editable regions belong to the names in UserNames. TX Text Control compares names and doesn't check them, so your application sets them after its own sign-in.
  • Handling passwords. The passwords for PDF documents and protected documents come from your code, which also asks the user when a document needs one.
  • Holding certificates. Your code passes the certificate that signs; where its private key is kept is your design.
  • Enforcing PDF permissions in the editor. The TextControl doesn't apply the permissions of a PDF it opens; your application does, as Respect the Permissions of a PDF shows.

Under the license agreement, the licensee is responsible for determining whether its application and its use of TX Text Control are subject to security, privacy or other regulatory requirements.

Packages, Licenses and Components

  • Where packages come from. TXTextControl.TextControl.WPF.SDK is restored from Text Control Offline Packages, which the setup installs, or from the Text Control Private NuGet Feed, which requires your email address and an API token. Configuring Package Sources covers both.
  • What stays out of your installer. Serial numbers, the license file txtextcontrol.wpf.license and a nuget.config with your API token must not be given to users, as the license agreement states. Secure Application Deployment turns this into a checklist.
  • What the packages contain. Signed SBOMs (software bills of materials) are available for the TX Text Control NuGet packages of version 34.0 and later, among them TXTextControl.TextControl.WPF.SDK. Check the Components You Ship describes them.

Next Steps