Skip to content

security manager doc #418

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
21 changes: 21 additions & 0 deletions docs/reference/api/connectivity/bluetooth/SecurityManager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Security Manager

Security Manager deals with authentication and encryption for the link. This is provided through the process of pairing and optionally bonding. Bonding is achieved by saving the pairing information to be reused on subsequent re-connections.

The process of pairing may produce a set of keys to be used during current or later connections, these are handled by the Security Manager and include the Long Term Encryption Key (LTK), the Identity Resolving Key (IRK) and the Connection Signature Resolving Key (CSRK). The LTK is used to encrypt subsequent connections. IRK is used to identify peers who use random resolvable addresses. CSRK is used to sign and authenticate signed data.

The pairing process may provide Man in the Middle protection (MITM). This is achieved through various means, including out of band communication, depending on the capabilities of the local and peer device.

The Security Manager will store the keys, if possible permanently, to speed up security requests on subsequent connections.

Security requests may come explicitly from the user application or implicitly from the GATT server based on attribute requirements.

### Security Manager class reference

[![View code](https://www.mbed.com/embed/?type=library)](http://os.mbed.com/docs/v5.7/mbed-os-api-doxy/class_securitymanager.html)

### Security Manager example

The Security Manager example shows its basic usage. It demonstrates both a central and a peripheral connecting and performing basic pairing and setting up link security.

[![View code](https://www.mbed.com/embed/?url=https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-SM/)](https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-SM)