Skip to content

BLE privacy, signing, persistent security database #6932

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

Merged
merged 314 commits into from
May 24, 2018

Conversation

paul-szczepanek-arm
Copy link
Member

@paul-szczepanek-arm paul-szczepanek-arm commented May 16, 2018

Description

This branch adds several feature to the security manager and updates features in other layers connected to it:

  • Support of lesc pairing
  • Support of Gap privacy
  • Support GATT signing
  • Support of GATT permissions
  • Database persistence

Implementations of these features targets the various Nordic boards and the cordio stack.

LE Secure Connection pairing

LE Secure Connection pairing is a new pairing method that has been introduced with Bluetooth 4.2. It uses Elyptic Curve Cryptography and offer better protection against eavesdropping.

Pull Requests:

  • OOB: 1, 2, 3
  • Nordic implementation: 1, 2
  • Cordio Implementation: 1

Gap Privacy

This feature allows a device to sends advertisements packets, scan requests and connections requests with a private address. The goal being to avoid devices tracking. A known peer (bonded) can retrieve the identity of a the by resolving its private address.

Pull Requests:

  • Interfaces: 1
  • Nordic implementation: 1 2
  • Cordio: 1, 2
  • Backwards compatibility: 1

Gatt Signing and permission

This feature allows the authentication of a known peer sending a write command on an unencrypted link.
To support this feature, the GATT server had to support proper security requirements per attributes.

Pull Requests:

  • SecurityManager: 1
  • GenericGattClient: 1
  • Nordic: 1 Note that these are stub as this feature is not supported by Nordic softdevices.
  • Cordio: 1
  • GattServer: 1

DataBase persistence

This addition allow a user to specify a path to a file that will store the secure database.

Pull Requests: 1 2

Documentation

Handbook (not part of this PR) pull request: 1

Pull request type

[ ] Fix
[ ] Refactor
[ ] New target
[x] Feature
[ ] Breaking change

paul-szczepanek-arm and others added 30 commits April 3, 2018 15:41
(github client fail)
signing integration between gatt and sm
This change allow vendor pal code to use its own array format.
With this change, it is possible to encode the size of the array viewed by an ArrayView into the type itself: ArrayView<T, Size>. Such objects are lighter than ArrayView of arbitrary size and allows verification of the size at compile time.

This change also fix operator== and bring new make_ArrayView overloads.
- Rename LescCrypto into CryptoToolbox
- Use ArrayView of fixed size as parameters
- Add licence
LE Secure Connections Nordic
@cmonr
Copy link
Contributor

cmonr commented May 22, 2018

@paul-szczepanek-arm Please rebase instead of merging mbed-os into the PR.

Merging mbed-os blows up the change set and file changes.

@paul-szczepanek-arm
Copy link
Member Author

merged with permission because rebase is problematic

@adbridge
Copy link
Contributor

/morph build

@mbed-ci
Copy link

mbed-ci commented May 23, 2018

Build : FAILURE

Build number : 2128
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6932/

@cmonr
Copy link
Contributor

cmonr commented May 23, 2018

@paul-szczepanek-arm Head up ^^^

@cmonr
Copy link
Contributor

cmonr commented May 23, 2018

Arm License checkout issues with pr-head. Assuming the rebuild is good, will start CI.

@cmonr
Copy link
Contributor

cmonr commented May 23, 2018

/morph build

Copy link
Member

@pan- pan- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every ble tests passes on all targets with this change set; its all green for me.

@donatieng
Copy link
Contributor

I can confirm IAR compilation issues have been fixed, validated locally.

@mbed-ci
Copy link

mbed-ci commented May 23, 2018

Build : SUCCESS

Build number : 2132
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/6932/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build
/morph mbed2-build

@mbed-ci
Copy link

mbed-ci commented May 24, 2018

Exporter Build : SUCCESS

Build number : 1756
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/exporter/6932/

@mbed-ci
Copy link

mbed-ci commented May 24, 2018

Test : SUCCESS

Build number : 1926
Test logs :http://mbed-os-logs.s3-website-us-west-1.amazonaws.com/?prefix=logs/6932/1926

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants