Skip to content
Law, security & funding

Interface security: accounts, keys and permissions

Sign-in, key handling, encryption in transit, minimal permissions, separate test accounts and key rotation: what to settle for every interface you run.

14 min read SchnittstellenIT-SicherheitZugangsdatenVerschlüsselungBerechtigungen

Every connection between two systems is a way in — even when both systems sit in your own building and nobody outside is meant to reach them. For data to flow, a program has to sign in somewhere, and that requires credentials. Those credentials then live somewhere: in a settings file, in a script, in a scheduled task, sometimes in a message from the rollout phase. Anyone running an interface is therefore also running a permanently open route into their own data. This article works through the questions that come up with every connection: how does the program sign in? Where is the key kept and who can reach it? Is the transport path encrypted? What can the account actually do? Are test and live separated? And what happens when a key has to be replaced? It closes with a checklist that lets you assess an existing connection in under an hour.

Key takeaways

  • The most common security problem with interfaces in mid-size companies is not an outside attack but a single account with full rights that was created during rollout, has been unchanged ever since and is stored in several files at once.
  • A sound account is limited to one connection, holds only the rights the specific process needs, and can be revoked without bringing other processes to a halt — that is the practical difference from a shared collective login.
  • Encryption in transit is standard today but achieves little if the far end is not verified or older protocol versions are still accepted; both can be checked on the running system within minutes.
  • Logs are essential for traceability but must contain neither passwords nor keys nor complete records — what gets logged is the identifier of an account or key, not the credential itself.
  • Key rotation belongs in the documentation as a planned procedure, with a deadline, a named owner and a transition period in which old and new keys are both valid; unplanned, it happens during an incident and under time pressure.

One account that can do everything and does not expire

When we look at an existing connection in a company, we very often find the same pattern: there is exactly one account for the interface, that account holds administrative rights in the target system, it was created at go-live and has been unchanged ever since. The password sits in a settings file on the server, additionally in a script somebody wrote for a special case, and frequently in a message from the rollout phase that is still sitting in several mailboxes.

This pattern does not arise from carelessness but from how a rollout works. During the first connection the goal is simply that data arrives at all. An account with broad rights saves questions in that phase: no error messages about missing permissions, no waiting for the vendor, no discussion about which field may be read. Once the transfer runs, the question disappears from view because it no longer shows up in daily work. An account with too many rights behaves quietly — it works, and it works exactly as well as a narrow one.

The consequences appear later and rarely on the day of the incident. Whoever obtains these credentials can usually do whatever the target system allows: read, change, delete, export. Because the same account serves several processes, it is impossible afterwards to say which action came from which program. And because the password is stored in several places, it cannot simply be changed: every change stops an unknown number of processes. That is the point where a security topic turns into an operational one — an account you cannot revoke without halting the business is not a managed account.

How to recognise the pattern in your own company

Three signs are usually enough. First: nobody can say offhand how many programs use this account. Second: the password has not changed since the rollout, and the rollout was years ago. Third: the account carries the name of a person who has since left, or a collective name such as admin or interface. If one of these applies, taking stock is the sensible next step, not an immediate password change.

Authentication: who is actually calling?

Authentication answers a single question: can the target system establish with sufficient certainty who is calling? With an interface, the caller is not a person but a program running unattended, often at night, often every few minutes. That rules out every method requiring input. Three basic forms remain, and they hold up differently in practice.

What matters for the choice is less technical elegance than what can realistically be maintained in daily operation. A method that requires a monthly manual step which nobody takes on is weaker in practice than a simpler method that is reliably looked after. This applies particularly to companies without their own IT department, where the connection is maintained by an external provider.

User name and password

The simplest and most widespread form. It works everywhere but has one weakness: the password sits in plain text in a file so the program can use it. That is only defensible if the account exists solely for this one connection, has tightly limited rights, and the file does not end up in a backup that many people can reach.

Key or access token

The target system issues a long character string tied to a specific account and scope of rights. The advantage: the key can be withdrawn on its own without disturbing other connections, and it can carry an expiry date. For most connections in mid-size companies this is the sensible middle ground.

Certificates on both sides

Both ends identify themselves with a certificate, not just the server. This is the strongest of the three and belongs where particularly sensitive data is transferred or where a partner requires it. The effort lies in administration: certificates expire, and an expired certificate stops the connection without warning.

Whatever the method, one rule has proven itself in projects: create a dedicated account for each connection, named recognisably after direction and environment, for example service-accounting-live. An account tied to a person does not belong on an interface — it disappears when the person leaves, and nobody sees it coming.

Key handling: storage, access and record

The question of where a key is kept is answered wrongly more often than the question of which method is used. Typical locations in existing installations: a settings file next to the program, a script in the task scheduler, a text document on a shared drive, a message in the managing director's mailbox, a note in the server cabinet. Each of these is individually explainable. Together they create a state in which nobody can say how many copies exist.

An orderly storage arrangement need not be a major purchase. Four properties matter: there is exactly one place that counts as authoritative; access to it is limited to named people; it is traceable who retrieved something and when; and there is a procedure for the case where the responsible person cannot be reached. These four points can be met with simple means as long as they are written down. Where the connection is looked after externally, the storage arrangement belongs in the agreement covering ongoing IT operations, not in a verbal understanding.

  • One named location counts as the valid source; all other copies are deleted rather than tolerated
  • The group of people with access is defined in writing and adjusted when staff change
  • Credentials are not sent by message, not even internally
  • Every key records which connection uses it and who is responsible for that connection
  • Every key has an expiry date, or at least a date for the next review
  • Emergency access is defined so that a stand-in can act during an incident

The practical benefit of this order does not show in normal operation but on two days: the day somebody leaves the company, and the day there is a suspicion of an incident. On both days the only relevant question is which accounts are affected and how quickly they can be changed. Anyone who can answer that in minutes has dealt with the larger part of the topic.

Encryption in transit

Encrypted transfer is the normal case by now, and in most connections it is active. Still, it is worth a look, because active encryption on its own says little. Three points decide the actual protection: the protocol version in use, the verification of the far end, and whether an unencrypted route remains open as a fallback.

The second point is overlooked most often. When a connection is set up, certificate verification is sometimes switched off because a test environment uses a self-issued certificate and the connection would otherwise fail. That setting then travels into the live environment because the same settings file is carried over. The result is an encrypted connection where nobody checks who is on the other end. Nothing about this stands out in operation, because the data flows as expected.

Terminal
$ # check the transport path of the connection
$ transport test --target accounting.internal --port 443
$ encryption active, current protocol version
$ certificate valid until 04.11.2026, issuer known
$ # show the rights of the account in use
$ account show --name service-accounting-live
$ read: documents | write: postings | master data: no access

The third point concerns file transfers, which in many companies date from the time before the actual connection existed. A folder on a server into which a file is dropped every night is an interface — even if nobody calls it one. The same questions apply to that route: is access to the folder restricted, is the transfer encrypted, and what happens to the file after processing? If copies containing personal data remain there permanently, that is a separate matter which should be assessed professionally in each individual case.

Minimal permissions instead of full access

The principle is old and simple: an account gets exactly the rights the process needs and none beyond that. The German federal information security authority (BSI) describes this principle in its baseline protection modules as one of the load-bearing rules for handling permissions. In practice it rarely fails on understanding, but on the fact that nobody has written down what the process actually needs.

Implementation therefore starts not in the permission system but with a list of operations. Which data does the connection fetch? Which does it write back? Does it need to delete? Does it need master data or are transaction records enough? That list is produced anyway when a connection is properly described, and it doubles as the basis for granting rights. Where no such description exists, going through a process analysis is the faster route, because otherwise the guesswork starts over with every permission error.

Task of the connectionRight requiredToo broadly granted
Fetch stock levels from the warehouseRead on stock dataFull access to the inventory system
Hand invoices to accountingWrite on documentsRights on master data and payments
Take over address changesWrite on address fieldsDeleting customer records
Produce reportsRead on selected tablesRead on the entire database
Place files in a folderWrite into exactly that folderAccess to the whole drive
Retrieve status messagesRead on status fieldsAdministrative rights on the server

A simple approach helps during the changeover: set the rights narrowly at first, run the connection in test mode for a week, and assess each permission error individually instead of widening the scope wholesale. The effort is manageable and occurs once. What remains afterwards is an account whose scope of rights is justified and can be explained during a later review.

Keeping test and live properly apart

Almost every connection needs an environment for trying things out. New fields, changed processes, a version change at the vendor — none of that can be assessed seriously in live operation. Separating test and live environments is therefore among the requirements described explicitly in the BSI baseline protection guidance. In practice it is often only half implemented: there are two environments but only one account.

Two failure patterns follow, and both are expensive. In the first, a test transfer writes into live data because an address was not adjusted in a settings file. In projects this has often surfaced only days later, when test documents appear in accounting. In the second, live data sits in the test environment because realistic data was needed for testing. Real customer data then sits in an environment that is less protected and reachable by more people — in data protection terms a separate matter that should be assessed professionally in each individual case.

Separation starts with the account, not the server

Two environments on separate servers achieve little if both use the same account and the same key. The effective step is a dedicated account per environment, with its own key and a name that contains the environment. The test account additionally gets no write rights on live data — then a wrongly set address stays an error message instead of becoming an incident.

For test data an intermediate route has proven useful: an extract from live data in which names, addresses, bank details and contact data are replaced before the transfer. Structure, volume and edge cases are preserved while the sensitivity drops considerably. The extract is generated automatically once and can then be reused.

Logging without storing credentials

Without a log it is impossible to establish after a problem what was transferred and what was not. A log is therefore not an add-on but part of the connection. At the same time it is the place where credentials most often end up unintentionally — not by intent, but out of convenience during troubleshooting.

The classic case: to analyse a sign-in problem, the complete request is written out, including the credentials it carries. The setting stays active because nobody reverses it after the fix. From then on the key appears in every log file, is backed up daily and thus sits in every backup of the following months. A password change then only helps partly, because the old backups still exist. What once appears in a log does not disappear from the backups again.

Log line of a transfer (schema)
timestamp   : 2026-07-17 03:12:44
connection  : inventory-to-accounting
account     : service-accounting-live
key_id      : k-2026-03 (identifier of the key, not its value)
operation   : invoice R-2026-5188
result      : success
duration_ms : 412
source_ip   : 10.20.4.11

A usable log contains timestamp, connection, account used, the operation concerned, result and duration. It contains no passwords, no keys and no complete records with personal content. Instead of the key, its identifier is written — that keeps it traceable which key was in use without storing the key itself. How long logs are kept and who may view them belongs in the process documentation and should not be left to whatever the default setting happens to be.

A log should explain what happened — not make it possible to repeat it.

Project experience

Key rotation: planned rather than during an incident

Replacing a key is the point at which it becomes clear whether a connection is managed. In many companies it is effectively not foreseen: the key is valid indefinitely, there is no deadline and no described procedure. Replacement happens only when something triggers it — a suspicion, a staff change, a requirement from an audit. The replacement then happens under time pressure, and nobody knows exactly which programs are affected.

One simple precondition makes rotation plannable: the target system has to accept two valid keys for a transition period. Many systems can do this; where they cannot, the change needs a short, agreed time window. The transition period is the actual difference between an orderly rotation and an incident, because it allows each consuming point to be switched individually and verified before the old key is withdrawn.

Before rotating, list which programs, scripts and scheduled tasks use this key. The list comes from the documentation and is checked against the logs of recent weeks so that rarely running processes also appear. Without this list, every rotation is an attempt with an open outcome.

A sensible interval cannot be set in general; it depends on how sensitive the data is and on the requirements a company is subject to. More important than the exact interval is that one exists at all and that the described procedure has been carried out once. A rotation you have already done once takes a fraction of the time the second time round.

When an external provider looks after the connection

Many connections in mid-size companies are maintained externally, by the vendor of a system or by an IT services firm. That is unproblematic as long as it is clear who owns which accounts. It becomes unclear when the credentials sit exclusively with the provider and the company itself has no access to them. In an emergency there is then no way to block an account at short notice.

Four points therefore belong in the agreement, in writing: which accounts exist and who owns them? Where are the credentials kept and does the company itself have access? Who reports a suspicion to whom, and within what time? And what happens to accounts and copies of the data when the cooperation ends? The last point is forgotten most often and is the one with the longest aftermath.

Surveys by Bitkom and the Association of German Chambers of Commerce and Industry (DIHK) on the state of IT security regularly show that smaller and mid-size companies less often have responsibilities defined in writing than larger organisations. The effort for such a definition is small — it is a page of text, not a project. The difference shows on the one day it is needed.

What you can check on an existing connection

The following list is deliberately written so that it can be worked through without deep technical knowledge. It does not replace a security assessment, but it reliably shows whether the basics are in place. Anyone going through it together with the person who maintains the connection has a solid picture within an hour.

One thing matters here: the aim is not to change everything at once. A single point that is not met does not constitute an emergency. The picture emerges only from the sum. If several points remain open, the next step is an orderly stocktake rather than a series of individual measures that get in each other's way.

  • Does the connection use a dedicated account, or does it share one with other processes?
  • What rights does this account hold, and can the scope be explained to somebody in one sentence?
  • When was the key last replaced, and is there a date for the next replacement?
  • In how many places are the credentials stored, and is one of them defined as authoritative?
  • Is the far end verified when the connection is established, or is verification switched off?
  • Do the test and live environments use separate accounts with different rights?
  • Do the logs contain passwords or keys, and how long are they retained?
  • Who can block the account if there is a suspicion, and how long does that take?

The answers usually produce their own order of priority. At the top is normally splitting a shared collective account into individual accounts per connection, because everything else depends on it: without separate accounts you can neither limit rights nor rotate keys individually nor attribute operations. Everything beyond that — narrower rights, orderly storage, clean logs, planned rotation — builds on it and is then a matter of individual steps, not of projects. If several systems are being touched anyway, it pays to think about data integration at the same time instead of reworking every account separately.

This article is based on data from: the German federal information security authority (BSI), Bitkom, the Association of German Chambers of Commerce and Industry (DIHK) and our own project experience from interface projects in mid-size companies.

Related Articles

Law, security & funding

Account Access When Staff Join and Leave the Company

How access is ready on the first working day and reliably ends after someone leaves: taking stock, roles, a trigger from the HR system, annual review.

13 min read
Automation & interfaces

Invoice checks automated: order, goods receipt, invoice

Matching order, goods receipt and invoice by machine: which fields are compared, where the tolerance band sits, who owns the exception and what stays manual.

18 min read
Law, security & funding

Cyber Resilience Act: a reporting process in 24 hours

From 11 September 2026 the reporting duty in Article 14 applies. Who reports to whom, what happens in the first 24 hours and which records remain at the end.

16 min read