Use Unique Keys for Each Pair of Hosts (Automated)
Scanned 9/3/2026
Install to Claude Code
npx -y skills add CyberStrikeus/CyberStrike --skill cis-bind-v100-4-3 --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cis Bind V100 4 3?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/cyberstrikeus-cis-bind-v100-4-3)More formats (shields.io, HTML) on the badges page.
---
name: cis-bind-v100-4-3
description: "Use Unique Keys for Each Pair of Hosts (Automated)"
category: cis-bind
version: "1.0"
author: cyberstrike-official
tags: [cis, bind, dns, isc-bind, bind9, tsig]
cis_id: "4.3"
cis_benchmark: "CIS ISC BIND DNS Server 9.11 Benchmark v1.0.0"
tech_stack: [bind, isc-bind, dns, linux]
cwe_ids: []
chains_with: []
prerequisites: []
severity_boost: {}
---
# CIS 4.3 — Use Unique Keys for Each Pair of Hosts
## Profile Applicability
- Authoritative Name Server Level 1
- Caching Only Name Server Level 1
## Description
A unique TSIG key should be used for each pair of communicating hosts. For example, if there is one master authoritative name server and three slave authoritative name servers that were updated by the master, then there would need to be a unique TSIG key for at least the following:
- Master <-> Slave1
- Master <-> Slave2
- Master <-> Slave3
## Rationale
Each communication channel should have a unique key, to reduce the risk of key disclosure. If one of the TSIG keys or one of the slave servers is compromised, then the remaining TSIG keys are not disclosed.
## Impact
Not specified in the PDF.
## Audit Procedure
To verify each key is unique, and has unique usage, perform the following:
- The sample command below will extract the secret keys from the configuration files and count the number of occurrences of each key value.
```
# cat $CONFIG_FILES | egrep -o "secret.*;" | sort | uniq -c
1 secret "R/eBXL/5xso142dGZSGJixKAAW+bO1UHlIpxZAj92Cc=";
2 secret "P3/AuCgxdt3buLyeb/QxRmPe9IfMwsXRrKyNvQSbN1k=";
1 secret "SGNiICKGf86GbhzpDBZOkQ==";
1 secret "gyxEId4g2gB+pVJSKXA=";
```
The count occurrences preceding each key should be one in the output.
- Search the configuration files for duplicate uses of the same key name. The command below will extract references to key names.
```
# egrep "keys +{.+}" $CONFIG_FILES
named.conf: allow { 127.0.0.1; } keys { "rndc-key"; };
ns1-ns2.cisecurity.org.key: keys { "ns1-ns2.cisecurity.org"; };
ns1-ns3.cisecurity.org.key: keys { "ns1-ns3.cisecurity.org"; };
```
Each key name should be referenced only once.
## Remediation
Generate unique keys for host to host communication. The command below can be used to generate 2 files, a _<name>.key_ file and a _<name>.private_ file with secret keys of suitable length with base64 encoding. The files themselves are not needed, and should be securely deleted once the values are copied into a key file for including in the named configuration.
```
$ dnssec-keygen -a HMAC-SHA256 -b 256 -n HOST ns1-ns2.cisecurity.org
Kns1-ns2.cisecurity.org.+163+13013
$ cat Kns1-ns2.cisecurity.org.+163+13013.key
ns1-ns2.cisecurity.org. IN KEY 512 3 163
9FQ2dYCQ17HJwDi/uHgANh2dlb8M7eb+F4AjML8tTdA=
```
## Default Value
The `rndc` key is automatically generated during package installation.
## References
1. http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-81-2.pdf
## CIS Controls
| Controls Version | Control | IG 1 | IG 2 | IG 3 |
| ---------------- | ------------------------------------------------- | ---- | ---- | ---- |
| v6 | 14 Controlled Access Based on the Need to Know | N | Y | Y |
| v7 | 14.4 Encrypt All Sensitive Information in Transit | N | Y | Y |
## MITRE ATT&CK Mappings
| Tactic | Technique |
| ----------------- | --------------------------------------------- |
| Credential Access | T1552 - Unsecured Credentials |
| Lateral Movement | T1550 - Use Alternate Authentication Material |
## Profile
- Level 1 - Authoritative Name Server
- Level 1 - Caching Only Name Server
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!