Note: If you are making a
Web Application: Secwin 7 requires NetTalk 12. For Desktop programs
Secwin 7 will work with NetTalk 11.
Secwin aims to provide program-level-security to your application. It
allows your customer to control who can use your program, and what aspects
of the program they can use. We call this
Program
Access Control. The key goals here are flexibility (every end
user has different policies) and usability (customers need to be able to
manage their own security and not rely on the developer to do it for
them.)
In addition large customers have different needs to small customers (such
as Active Directory integration) and so Secwin is designed to be flexible,
allowing customers to tailor the security to their needs. A range of
features, including password resets, self-sign-on, guest accounts and more
make Secwin the last security tool you will need.
It also allows you to control which features in your program the customer
has access to. We call this
Licensing. The
primary goal of licensing is to ensure that you get paid. Licensing needs
to be flexible to match your needs, easy for both you and your customer,
and online so that you can easily update your clients license as their
needs (or lack of payment) change. Designed for both single-sale software
and subscription services. It includes a web server app that can be used
as a licensing server, or you can make use of our SecwinOnlineServer to
host your licenses for you.
Secwin is designed to work on desktop, and web applications, and supports
single-tenant or multi-tenant setups.
Secwin does not provide data-level-security. That is provided by MyTable
and Cryptonite.
Secwin protects its own data from external viewing using MyTable and
Cryptonite so these accessories are required in order for Secwin to
compile.
In today's world no program, or user, stands alone. Secwin is designed to
integrate to a SendEmail or SendSMS function (or both). These allow
features like second factor authentication, password resets, self-sign-up
accounts and so on. For this reason NetTalk (Desktop level or higher) is
recommended even for Desktop programs. NetTalk also allows for online
licensing features and Active Directory integration. NetTalk is officially
an "optional" requirement, however many features require it, so it is
highly recommended.
If unauthorized uses have access to the database, and they can tamper with
fields (for example deleting them, or causing them to become invalid) or
delete records, then certain Secwin features may no longer be effective.
For example if someone can TopScan the DSSW7 file, and remove a user
record, then that user will no longer be able to log in.
For this reason physical access to the database should be restricted using
whatever mechanism is appropriate for the database. For TPS this means
adding an owner to the table. For SQL it means limiting access to the
security database and so on.
If an unauthorized person does get access to the database, data inside it
will not be exposed. Any data they damage can be restored from backups,
and the data itself will not be compromised.
History
Secwin was one of CapeSoft's first accessories for
Clarion for Windows, and shipped in the mid 90's. It has proved to be a
work-horse providing access control, and licensing for a generation of
Clarion programmers.
Fast-forward to the mid-teens and cwin's age is starting to show.
Designed originally for desktop use, it's not ideal on the web. Plus it
uses a DLL, which is now something we prefer not to do. And
best-practices with regard to passwords have changed enormously over the
last twenty five years.
Enter Secwin 7. A complete re-design, and a brand new implementation of
Secwin. This is a complete, from the ground up, rebuild of Secwin and
uses next to none of the existing code or table structures. It takes the
current best practices and provides them in a modern way, aimed not just
at desktop users but web users as well.
None of this would be useful though if your existing security settings,
or customer setups, are lost. Secwin 7 is therefore a drop-in
replacement for Secwin 6 (and earlier) and converting an application
from Secwin 6 to Secwin 7 takes a minimal amount of time and fuss.
Equally, a simple utility for converting existing Secwin data to Secwin
7 is provided.
The user logs in using a user name and password.
However individual customers have individual requirements that can vary
enormously from one customer to another. In addition the platform being
used (desktop or web) may have special requirements that need to be
supported.
To make logins as powerful, safe, and as feature-rich as possible - while
at the same time making them easy enough to setup and use by mere humans
has been a challenge. The result though is the most comprehensive login
system available for Clarion. All facets of the login system can be
controlled at runtime so each customer can configure it to their own needs
and policies. These features include;
- No logins at all - Users can choose to make the system loginless.
- Passwords are stored as Salted-Hashed values, not as encrypted text,
in accordance with all current best practices.
- Second Factor Authentication using SMS or Email with Customer
Defined Policies. When to require the second factor is a crucial
element here, with options including every time, only on new devices,
or on a time-based system.
- Active Directory support for those customers with an Active
Directory server. This allows for password, or password-less logins[1] against an Active Directory server, and
also an optional In-Group setting on the server. This gives Active
Directory Administrators complete control over who can use the
program.
- Guest Logins (with pre-defined guest accounts) can be added. These
have a user name, but no password, and usually have limited program
access rights.
- Customer-defined password policies allow each customer to determine
the password requirements for their users. Interesting options here
include the prevention of password-reuse, and also the unacceptance of
passwords that are commonly used by people. (So no 1234
or password weak passwords.)
- Customer-defined Lockout policies allow the user to determine when a
user account will be locked (and for how long it will be locked) if
multiple incorrect passwords are entered.
- Password Resets via SMS or Email
- Users can create new accounts (ie self sign-up) and be given default
access rights.
- multi-tenant support with either unique-user or company/user logins.
Note [1]
Password-Less Active Directory Logins are currently only available in
Desktop apps.
Security Tables
- All sensitive information in the data tables are stored encrypted
and cannot be altered (or deciphered) by unauthorized programs.
- Unencrypted fields are tamper resistant - editing them in an
external program will make the data unusable.
- Tables make use a of 3-secret system meaning that data can be
bound to a specific program, specific table, or specific customer.
- All secure information in the tables can be extended without
changes to the file structure. This means that (for example) new
security policies (and new settings) can be introduced and no file
conversion is required.
- The tables are declared in your dictionary, and can be extended
with additional fields if you desire. (This would then necessitate a
normal table-conversion)
- User data is stored encrypted, in conformance with various
privacy laws.