Bảo mật BLE
Mô-đun này có các chức năng kiểm soát hoạt động giao tiếp bảo mật BLE (TLS qua BLE).
Tóm tắt
Mô-đun này bao gồm các chức năng triển khai hoạt động giao tiếp TCAT.
Các hàm trong mô-đun này có sẵn khi tính năng BLE Secure API (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
) được bật.
Bạn có thể sử dụng các hàm trong mô-đun này khi bật tính năng TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
).
Bảng liệt kê |
|
---|---|
otTcatApplicationProtocol{
|
enum Đại diện cho giao thức ứng dụng TCAT. |
otTcatCommandClass{
|
enum Đại diện cho một lớp lệnh TCAT. |
otTcatStatusCode{
|
enum Đại diện cho mã trạng thái TCAT. |
Typedef |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
Con trỏ để gọi khi trạng thái kết nối bảo mật ble thay đổi. |
otHandleBleSecureReceive
|
typedef Con trỏ để gọi khi nhận dữ liệu qua kết nối TLS bảo mật BLE. |
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
|
typedefvoid(*
Con trỏ để gọi khi nhận được dữ liệu ứng dụng qua kết nối TLS TCAT. |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
Con trỏ để gọi để thông báo về việc hoàn tất hoạt động kết hợp. |
otTcatApplicationProtocol
|
typedef Đại diện cho giao thức ứng dụng TCAT. |
otTcatCommandClass
|
typedefenum otTcatCommandClass
Đại diện cho một lớp lệnh TCAT. |
otTcatStatusCode
|
typedefenum otTcatStatusCode
Đại diện cho mã trạng thái TCAT. |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
Cấu trúc này thể hiện thông tin nhà cung cấp TCAT. |
Hàm |
|
---|---|
otBleSecureConnect(otInstance *aInstance)
|
Khởi động phiên TLS với một ứng dụng ngang hàng bằng cách sử dụng kết nối BLE đã mở.
|
otBleSecureDisconnect(otInstance *aInstance)
|
void
Dừng kết nối BLE và TLS.
|
otBleSecureFlush(otInstance *aInstance)
|
Xoá vùng đệm gửi.
|
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
|
Trả về base64 của chứng chỉ x509 ngang hàng được mã hoá.
|
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
|
Trả về giá trị thuộc tính được xác định bằng OID từ đối tượng của chứng chỉ x509 ngang hàng.
|
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Trả về giá trị thuộc tính cho OID 1.3.6.1.4.1.44970.x từ phần mở rộng v3 của chứng chỉ x509 riêng, trong đó chữ số cuối x được đặt thành aThreadOidDescriptor.
|
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Trả về giá trị thuộc tính cho OID 1.3.6.1.4.1.44970.x từ phần mở rộng v3 của chứng chỉ x509 ngang hàng, trong đó chữ số cuối x được đặt thành aThreadOidDescriptor.
|
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
|
bool
Cho biết liệu lớp lệnh TCAT có được cấp phép hay không.
|
otBleSecureIsConnected(otInstance *aInstance)
|
bool
Cho biết phiên TLS có được kết nối hay không.
|
otBleSecureIsConnectionActive(otInstance *aInstance)
|
bool
Cho biết phiên TLS có đang hoạt động hay không (được kết nối hoặc kết nối).
|
otBleSecureIsTcatEnabled(otInstance *aInstance)
|
bool
Cho biết liệu tác nhân TCAT có được bật hay không.
|
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Gửi gói dữ liệu BLE an toàn.
|
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Gửi gói dữ liệu BLE có chứa TLV dữ liệu ứng dụng gửi TCAT.
|
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
|
Gửi tin nhắn BLE bảo mật.
|
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
|
void
Thiết lập CA cấp cao nhất đáng tin cậy.
|
otBleSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
|
void
Đặt chứng chỉ X509 của thiết bị cục bộ với khoá riêng tư tương ứng cho phiên TLS có TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
|
otBleSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
|
void
Đặt Khoá chia sẻ trước (PSK) và bộ mật mã TLS_PSK_WITH_AES_128_CCM_8.
|
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
|
void
Đặt chế độ xác thực cho kết nối an toàn BLE.
|
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
|
Khởi động dịch vụ BLE Secure.
|
otBleSecureStop(otInstance *aInstance)
|
void
Dừng máy chủ bảo mật BLE.
|
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
|
Bật giao thức TCAT qua BLE Secure.
|
Cấu trúc |
|
---|---|
otTcatVendorInfo |
Cấu trúc này thể hiện thông tin nhà cung cấp TCAT. |
Bảng liệt kê
otTcatApplicationProtocol
otTcatApplicationProtocol
Đại diện cho giao thức ứng dụng TCAT.
Thuộc tính | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE
|
Tin nhắn được gửi mà không kích hoạt tác nhân TCAT. |
OT_TCAT_APPLICATION_PROTOCOL_STATUS
|
Tin nhắn gửi đến một dịch vụ UDP. |
OT_TCAT_APPLICATION_PROTOCOL_TCP
|
Tin nhắn được gửi tới một dịch vụ TCP. |
otTcatCommandClass
otTcatCommandClass
Đại diện cho một lớp lệnh TCAT.
Thuộc tính | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION
|
Các lệnh TCAT liên quan đến lớp ứng dụng. |
OT_TCAT_COMMAND_CLASS_COMMISSIONING
|
Các lệnh TCAT liên quan đến việc chạy thử. |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING
|
Các lệnh TCAT liên quan đến việc ngừng tham gia. |
OT_TCAT_COMMAND_CLASS_EXTRACTION
|
Các lệnh TCAT liên quan đến trích xuất khoá. |
OT_TCAT_COMMAND_CLASS_GENERAL
|
Các lệnh TCAT liên quan đến thao tác chung. |
otTcatStatusCode
otTcatStatusCode
Đại diện cho mã trạng thái TCAT.
Thuộc tính | |
---|---|
OT_TCAT_STATUS_BUSY
|
Không thể thực thi lệnh vì tài nguyên đang bận. |
OT_TCAT_STATUS_GENERAL_ERROR
|
Đã xảy ra lỗi không khớp với bất kỳ danh mục nào khác. |
OT_TCAT_STATUS_HASH_ERROR
|
Giá trị băm mà ủy viên hội viên cung cấp không chính xác. |
OT_TCAT_STATUS_PARSE_ERROR
|
Không thể phân tích cú pháp yêu cầu / lệnh một cách chính xác. |
OT_TCAT_STATUS_SUCCESS
|
Đã xử lý lệnh hoặc yêu cầu thành công. |
OT_TCAT_STATUS_UNAUTHORIZED
|
Người gửi không có đủ quyền đối với lệnh đã cho. |
OT_TCAT_STATUS_UNDEFINED
|
Giá trị, dữ liệu hoặc dịch vụ yêu cầu chưa được xác định (hiện tại) hoặc không có. |
OT_TCAT_STATUS_UNSUPPORTED
|
Không hỗ trợ lệnh đã yêu cầu hoặc TLV đã nhận. |
OT_TCAT_STATUS_VALUE_ERROR
|
Giá trị của TLV được truyền có lỗi. |
Typedef
otHandleBleSecureConnect
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
Con trỏ để gọi khi trạng thái kết nối bảo mật ble thay đổi.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
|
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
Con trỏ để gọi khi nhận dữ liệu qua kết nối TLS bảo mật BLE.
otHandleTcatApplicationDataReceive
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
Con trỏ để gọi khi nhận được dữ liệu ứng dụng qua kết nối TLS TCAT.
Thông tin chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
Con trỏ để gọi để thông báo về việc hoàn tất hoạt động kết hợp.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
Đại diện cho giao thức ứng dụng TCAT.
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
Cấu trúc này thể hiện thông tin nhà cung cấp TCAT.
Nội dung của cấu trúc này PHẢI duy trì và không thay đổi trong khi phiên TCAT đang chạy.
Hàm
otBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
Khởi động phiên TLS với một ứng dụng ngang hàng bằng cách sử dụng kết nối BLE đã mở.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
||
Giá trị trả về |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
Dừng kết nối BLE và TLS.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
Xoá vùng đệm gửi.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
Trả về base64 của chứng chỉ x509 ngang hàng được mã hoá.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||
Giá trị trả về |
|
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
Trả về giá trị thuộc tính được xác định bằng OID từ đối tượng của chứng chỉ x509 ngang hàng.
OID ngang hàng được cung cấp ở định dạng nhị phân. Độ dài thuộc tính được đặt nếu thuộc tính được đọc thành công hoặc không nếu thuộc tính được đọc không thành công. Loại ASN.1 được thiết lập theo quy định trong tiêu chuẩn ITU-T X.690 nếu thuộc tính được đọc thành công.
Thông tin chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||||||
Giá trị trả về |
|
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Trả về giá trị thuộc tính cho OID 1.3.6.1.4.1.44970.x từ phần mở rộng v3 của chứng chỉ x509 riêng, trong đó chữ số cuối x được đặt thành aThreadOidDescriptor.
Độ dài thuộc tính được đặt nếu thuộc tính được đọc thành công hoặc không nếu thuộc tính được đọc không thành công. Cần có kết nối để hoạt động.
Thông tin chi tiết | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||||||||
Giá trị trả về |
|
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Trả về giá trị thuộc tính cho OID 1.3.6.1.4.1.44970.x từ phần mở rộng v3 của chứng chỉ x509 ngang hàng, trong đó chữ số cuối x được đặt thành aThreadOidDescriptor.
Độ dài thuộc tính được đặt nếu thuộc tính được đọc thành công hoặc không nếu thuộc tính được đọc không thành công. Cần có kết nối để hoạt động.
Thông tin chi tiết | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||||||||
Giá trị trả về |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
Cho biết liệu lớp lệnh TCAT có được cấp phép hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
Cho biết phiên TLS có được kết nối hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
Cho biết phiên TLS có đang hoạt động hay không (được kết nối hoặc kết nối).
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
Cho biết liệu tác nhân TCAT có được bật hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Gửi gói dữ liệu BLE an toàn.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Gửi gói dữ liệu BLE có chứa TLV dữ liệu ứng dụng gửi TCAT.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
Gửi tin nhắn BLE bảo mật.
Nếu giá trị trả về là OT_ERROR_NONE, thì OpenThread sẽ sở hữu aMessage
và phương thức gọi không còn tham chiếu đến aMessage
nữa. Nếu giá trị trả về không phải là OT_ERROR_NONE, phương thức gọi vẫn giữ quyền sở hữu aMessage
, bao gồm cả việc giải phóng aMessage
nếu vùng đệm thông báo không còn cần thiết nữa.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Giá trị trả về |
|
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength )
Thiết lập CA cấp cao nhất đáng tin cậy.
Cần thiết để xác thực chứng chỉ của ứng dụng ngang hàng.
Chế độ TLS "ECDHE ECDSA với AES 128 CCM 8" để bảo mật BLE.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
otBleSecureSetCertificate
void otBleSecureSetCertificate( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength )
Đặt chứng chỉ X509 của thiết bị cục bộ với khoá riêng tư tương ứng cho phiên TLS có TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
otBleSecureSetPsk
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
Đặt Khoá chia sẻ trước (PSK) và bộ mật mã TLS_PSK_WITH_AES_128_CCM_8.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
otBleSecureSetSslAuthMode
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
Đặt chế độ xác thực cho kết nối an toàn BLE.
Tắt hoặc bật tính năng xác minh chứng chỉ ngang hàng. Phải được gọi trước khi bắt đầu.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
Khởi động dịch vụ BLE Secure.
Khi chế độ TLV đang hoạt động, hàm aReceiveHandler
sẽ được gọi sau khi nhận được một TLV hoàn chỉnh và độ dời thông báo trỏ đến giá trị TLV.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||||
Giá trị trả về |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
Dừng máy chủ bảo mật BLE.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
Bật giao thức TCAT qua BLE Secure.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
Macro
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
Độ dài chuỗi tối đa của tên dịch vụ UDP hoặc TCP (không bao gồm ký tự rỗng).
Tài nguyên
Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.