diff --git a/src/keylogger.py b/src/keylogger.py index 02db8e9..45f8a40 100644 --- a/src/keylogger.py +++ b/src/keylogger.py @@ -230,12 +230,10 @@ def main(): sys.exit(1) if not api_key: - print("ERROR: LOG_INGEST_API_KEY environment variable is required.") - sys.exit(1) + sys.exit("ERROR: Ingestion API secret is required.") if len(api_key) < MIN_API_KEY_LENGTH: - print(f"ERROR: LOG_INGEST_API_KEY must be at least {MIN_API_KEY_LENGTH} characters.") - sys.exit(1) + sys.exit(f"ERROR: Ingestion API secret must be at least {MIN_API_KEY_LENGTH} characters.") if args.no_verify_ssl: print("⚠️ WARNING: SSL certificate verification is DISABLED!") diff --git a/src/server.py b/src/server.py index 80d0875..d57706e 100644 --- a/src/server.py +++ b/src/server.py @@ -117,7 +117,8 @@ def is_strong_password(password): has_lower = any(char.islower() for char in password) has_digit = any(char.isdigit() for char in password) has_special = any(char in string.punctuation for char in password) - return has_upper and has_lower and has_digit and has_special + has_min_length = len(password) >= MIN_PASSWORD_LENGTH + return has_min_length and has_upper and has_lower and has_digit and has_special def has_sufficient_key_entropy(value): @@ -374,17 +375,22 @@ def main(): if CONFIG['password'] == 'admin': sys.exit("ERROR: Authentication secret uses a disallowed default value.") - if len(CONFIG['password']) < MIN_PASSWORD_LENGTH or not is_strong_password(CONFIG['password']): - sys.exit("ERROR: Authentication secret does not meet complexity policy.") + if not is_strong_password(CONFIG['password']): + sys.exit( + "ERROR: Authentication secret must be at least 12 characters and include uppercase, " + "lowercase, number, and special character." + ) if not CONFIG['api_key']: sys.exit("ERROR: Ingestion API secret is required.") if len(CONFIG['api_key']) < MIN_API_KEY_LENGTH: - sys.exit("ERROR: Ingestion API secret does not meet length policy.") + sys.exit(f"ERROR: Ingestion API secret must be at least {MIN_API_KEY_LENGTH} characters.") if not has_sufficient_key_entropy(CONFIG['api_key']): - sys.exit("ERROR: Ingestion API secret does not meet entropy policy.") + sys.exit( + f"ERROR: Ingestion API secret must contain at least {MIN_API_KEY_UNIQUE_CHARS} unique characters." + ) # Get server settings host = args.host or server_config.get('host', '0.0.0.0')