Addon Signatures – ArmA: Armed Assault

From Bohemia Interactive Community
Jump to navigation Jump to search
(Before 1.08 buggy)
(→‎Overview: Extended)
Line 7: Line 7:


Addon is signed by its creator using a private key, while the public key is used by the game to verify that the addon has not been modified.
Addon is signed by its creator using a private key, while the public key is used by the game to verify that the addon has not been modified.
===Terminology===
* '''Checked server:''' a server with signature verification on
* '''Unchecked server:''' a server with signature verification off
* '''Accepted signature:''' on of the signatures defined by the server as trusted
===What is checked===
Player connecting to a checked server is allowed to have present only addons which are signed by accepted signature. Any player not complying to this is detected, and based on server configuration a message in this sense may be displayed, or he may be kicked out, or another action defined by the server admin may be done.
Player cannot do any of the following is he want to pass signature verification:
* modify signed addons
* having unsigned addons present
* having addons which are signed, but not by a signature trusted by the server
If player wants to use unsigned addons when playing single player or when playing on other servers not testing for this, he needs to make sure such addons are not loaded before connecting to the checked server. This can be done using [[modfolders]] or by using some 3rd party addon management utilities.


===Controlling addon signature verification on the server===
===Controlling addon signature verification on the server===

Revision as of 10:30, 7 June 2007

Addon Signature implementation in all version before 1.08 contains serious bugs which cause even users with no modified or unsigned addons are marked as using modified data.

Overview

Addon signatures are a way to reduce cheating in Armed Assault. They are used to detect data files modified by anyone else but the addon creator. They are based on strong cryptographic principles (private/public key pairs), therefore hacking around them is very hard.

Addon is signed by its creator using a private key, while the public key is used by the game to verify that the addon has not been modified.

Terminology

  • Checked server: a server with signature verification on
  • Unchecked server: a server with signature verification off
  • Accepted signature: on of the signatures defined by the server as trusted

What is checked

Player connecting to a checked server is allowed to have present only addons which are signed by accepted signature. Any player not complying to this is detected, and based on server configuration a message in this sense may be displayed, or he may be kicked out, or another action defined by the server admin may be done.

Player cannot do any of the following is he want to pass signature verification:

  • modify signed addons
  • having unsigned addons present
  • having addons which are signed, but not by a signature trusted by the server

If player wants to use unsigned addons when playing single player or when playing on other servers not testing for this, he needs to make sure such addons are not loaded before connecting to the checked server. This can be done using modfolders or by using some 3rd party addon management utilities.

Controlling addon signature verification on the server

If a server admin decides addon signatures should be verified, he should add a following line to the server.cfg file:

verifySignatures=1

When signature verification is turned on, clients connecting to the server must not use any unsigned addons (which currently means only original content produced by Bohemia Interactive can be used on such server, as no tools for content creation has been released yet).

Server admin can decide which addon makers he considers trustworthy by placing their public keys in the "keys" directory.

Signing addons

Signing addons is done using DSSignFile utility. A private key is needed for this.

Security considerations

Addon makers need to make sure their private keys are not leaked.