ATECC608A – Giới Thiệu Chip Bảo Mật Phần Cứng

1. Ứng dụng

ATECC608A là thành viên của dòng Microchip CryptoAuthentication™ thiết bị mã hóa bảo mật cao, kết hợp bộ lưu trữ khóa dựa trên phần cứng đẳng cấp thế giới với các bộ gia tốc mã hóa phần cứng để triển khai nhiều giao thức mã hóa (encryption) và xác thực (authentication) khác nhau.

ATECC608A có bộ tập lệnh linh hoạt cho phép sử dụng trong nhiều ứng dụng, bao gồm:

  • Bảo mật điểm cuối nút mạng/IoT (Network/IoT Node Endpoint Security)
    Quản lý xác thực danh tính nút (node identity authentication) cũng như tạo và quản lý khóa phiên (session key). Hỗ trợ toàn bộ luồng tạo khóa phiên tạm thời (ephemeral session key generation flow) cho nhiều giao thức bao gồm TLS 1.2 (và cũ hơn) và TLS 1.3
  • Khởi động an toàn (Secure Bood)
    Hỗ trợ máy chủ MCU (MCU host) bằng cách xác thực các bản tóm tắt mã và tùy chọn bật các khóa liên lạc khi thành công. Có sẵn nhiều cấu hình khác nhau để mang lại hiệu suất nâng cao.
  • Mã hóa tin nhắn nhỏ (Small Message Encryption)
    Động cơ AES phần cứng (hardware AES engine) để mã hóa và/hoặc giải mã các tin nhắn hoặc dữ liệu nhỏ như thông tin PII. Hỗ trợ trực tiếp chế độ AES-ECB. Các chế độ khác có thể được thực hiện với sự trợ giúp của bộ vi điều khiển chủ (host microcontroller). Chức năng tính toán GFM bổ sung để hỗ trợ AES-GCM.
  • Tạo khóa để tải xuống phần mềm (Key Generation for Software Download)
    Hỗ trợ tạo khóa được bảo vệ cục bộ cho image được tải xuống. Hỗ trợ cả việc broadcast một image tới nhiều hệ thống, mỗi hệ thống có cùng khóa giải mã (decryption key), hoặc tải xuống điểm-tới-điểm (point-to-point download) các image duy nhất cho mỗi hệ thống.
  • Kiểm soát hệ sinh thái và chống hàng giả (Ecosystem control and Anti-Counterfeiting)
    Xác thực rằng hệ thống (system) hoặc thành phần (component) là xác thực và đến từ OEM hiển thị trên bảng tên (nameplate).

ATECC608A cũng tương thích với ATECC508A khi được cấu hình đúng cách. Xem Phần 4.1 Microchip ATECC508A để biết thêm chi tiết.

Microchip ATTECC608A

2. Đặc tính của thiết bị

ATECC608A có nhiều EEPROM xếp thành mảng, có thể được sử dụng để lưu trữ tối đa 16 khóa (key), chứng chỉ (certificate), đọc/ghi linh tinh (miscellaneous read/write), dữ liệu chỉ đọc (read-only data) hoặc dữ liệu bí mật (secet data), ghi nhật ký tiêu thụ (consumption logging) và cấu hình bảo mật (security configuration). Quyền truy cập vào các phần khác nhau của bộ nhớ có thể bị hạn chế theo nhiều cách khác nhau và sau đó cấu hình có thể bị khóa để ngăn chặn sự thay đổi.

Truy cập vào thiết bị được thực hiện thông qua giao diện I2C tiêu chuẩn (standard I2C Interface) với tốc độ lên tới 1 Mb/s. Giao diện này tương thích với các thông số kỹ thuật giao diện Serial EEPROM I2C tiêu chuẩn (standard Serial I2C interface specifications). Thiết bị này cũng hỗ trợ Giao diện SingleWire (SWI – SingleWire Interface), điều này giúp giảm số lượng GPIO cần thiết trên bộ xử lý hệ thống và/hoặc giảm số lượng chân trên các đầu nối. Nếu giao diện SingleWire được bật, chân còn lại sẽ có thể sử dụng làm GPIO, đầu ra được xác thực (authenticated output) hoặc đầu vào giả (tamper input).

Mỗi chip ATECC608A đều có một số serial 72 bit duy nhất được đảm bảo (a guaranteed unique 72-bit serial number). Bằng cách sử dụng các giao thức mã hóa (cryptographic protocol) được thiết bị hỗ trợ, một hệ thống máy chủ (host system) hoặc máy chủ từ xa (remote server) có thể xác minh chữ ký của số serial để chứng minh rằng số serial đó là xác thực chứ không phải bản sao. Số serial thường được lưu trữ trong một standard Serial EEPROM. Tuy nhiên, những số này có thể được sao chép dễ dàng mà host không có cách nào biết được số serial đó là xác thực (authentic) hay là môt bản sao (clone).

3. Hoạt động mật mã (Cryptographic Operation)

ATECC608A triển khai một giải pháp chữ ký mật mã khóa bất đối xứng (công khai/riêng tư) hoàn chỉnh dựa trên Mật mã đường cong Elliptic (Elliptic Curve Cryptography) và giao thức chữ ký ECDSA (ECDSA signature protocol). Thiết bị này có tính năng tăng tốc phần cứng (hardware acceleration) cho đường cong chính P256 theo tiêu chuẩn NIST (NIST standard P256 prime curve) và hỗ trợ vòng đời khóa hoàn chỉnh từ tạo khóa riêng tư chất lượng cao (high quality private key generation) đến tạo chữ ký ECDSA (ECDSA signature generation), thỏa thuận khóa ECDH (ECDH key agreement), và xác minh chữ ký khóa công khai ECDSA (ECDSA public key signature verification).

Bộ tăng tốc phần cứng (hardware accelerator) có thể thực hiện các hoạt động mã hóa bất đối xứng (asymmetric cryptographic) nhanh hơn từ mười đến một nghìn lần so với phần mềm chạy trên bộ vi xử lý tiêu chuẩn mà không gặp phải nguy cơ cao bị lộ khóa thường thấy ở các bộ vi xử lý tiêu chuẩn.

ATECC608A cũng thực hiện AES-128, SHA256 và nhiều dẫn xuất SHA như HMAC(SHA), PRF (chức năng dẫn xuất chính trong TLS) và HKDF trong phần cứng. Sự hỗ trợ được bao gồm cho Galois Field Multiply (còn gọi là Ghash) để tạo điều kiện thuận lợi cho việc mã hóa/giải mã/xác thực GCM.

Thiết bị này được thiết kế để lưu trữ an toàn nhiều khóa riêng tư (private key) cùng với các khóa công khai (public key) và các chứng chỉ (certificate) liên quan của chúng. Lệnh xác minh chữ ký (signature verification command) có thể sử dụng bất kỳ khóa công khai ECC nào đang được lưu trữ hoặc từ bên ngoài. Khóa công khai được lưu trữ trong thiết bị có thể được cấu hình để yêu cầu xác thực thông qua chuỗi chứng chỉ nhằm tăng tốc độ xác thực thiết bị tiếp theo.

Việc tạo khóa riêng tư ngẫu nhiên (random private key generation) được hỗ trợ bên trong thiết bị để đảm bảo rằng khóa riêng tư không bao giờ được biết bên ngoài thiết bị. Khóa công khai tương ứng với khóa riêng tư lưu trữ luôn được trả về khi khóa được tạo và nó có thể được tính toán tùy ý sau đó.

ATECC608A có thể tạo các số ngẫu nhiên chất lượng cao (high-quality random number) bằng cách sử dụng bộ tạo số ngẫu nhiên bên trong nó.

Chức năng phức tạp này bao gồm việc kiểm tra tình trạng trong khi chạy (runtime health testing) được thiết kế để đảm bảo rằng các giá trị được tạo ra từ nguồn nhiễu nội (internal noise source) chứa đủ entropy tại thời điểm sử dụng. Bộ tạo số ngẫu nhiên (random number generator) được thiết kế để đáp ứng những yêu cầu được ghi trong tài liệu NIST 800-90A, 800-90B và 800-90C.

Những số ngẫu nhiên này có thể được sử dụng cho bất kỳ mục đích nào, bao gồm cả việc sử dụng như một phần của giao thức mã hóa của thiết bị. Vì mỗi số ngẫu nhiên được đảm bảo về cơ bản là duy nhất so với tất cả các số từng được tạo trên thiết bị này hoặc bất kỳ thiết bị nào khác, nên việc đưa chúng vào tính toán giao thức đảm bảo rằng các cuộc tấn công phát lại (replay attack), như là truyền lại giao dịch thành công trước đó, sẽ luôn thất bại.

ATECC608A cũng hỗ trợ giao thức phản hồi thử thách dựa trên hàm băm tiêu chuẩn (standard hash-based challenge-response protocol) để cho phép sử dụng nó rộng rãi ở nhiều ứng dụng bổ sung khác. Trong trường hợp cơ bản nhất, hệ thống sẽ gửi một thử thách (challenge) đến thiết bị, thiết bị này kết hợp thử thách đó với một khóa bí mật (secret key) thông qua lệnh MAC (MAC command) rồi gửi phản hồi (response) lại hệ thống. Thiết bị sử dụng thuật toán băm mật mã SHA-256 (SHA-256 cryptographic hash algorithm) để tạo sự kết hợp đó sao cho người quan sát trên dây bus không thể suy ra được giá trị của khóa bí mật. Đồng thời, bên nhận cũng có thể xác minh rằng phản hồi là chính xác bằng cách thực hiện phép tính tương tự với một bản sao bí mật được lưu trữ trên hệ thống của bên nhận. Có rất nhiều biến thể khả dĩ về chủ đề thách thức/phản hồi đối xứng này.

4. Khả năng tương thích

4.1 Microchip ATECC508A

ATECC608A được thiết kế để tương thích hoàn toàn với các thiết bị ATECC508A ngoại trừ một số chức năng được liệt kê ở phần 3.1 Microchip ATECC608A trong datasheet.

Nếu ATECC608A được cấu hình đúng cách, phần mềm được viết cho ATECC508A sẽ hoạt động với ATECC608A mà không cần bất kỳ thay đổi bắt buộc nào, được liệt kê ở phần 3.1 Microchip ATECC608A trong datasheet, một lần nữa.

Lưu ý: Hầu hết các thành phần của vùng cấu hình trong ATECC608A đều giống hệt cả về vị trí và giá trị với ATECC508A. Tuy nhiên, các giá trị ban đầu đã được lưu trữ trong trường LastKeyUse có thể cần phải được thay đổi để phù hợp với định nghĩa mới về các byte. Trường đó chứa số đếm khởi tạo cho chức năng sử dụng giới hạn Slot 15 được hỗ trợ trong ATECC608A thông qua bộ đếm đơn điệu (monotonic counter).

4.2 Microchip ATSHA204A, ATECC108A

The ATECC608A is generally compatible with all ATSHA204/A and ATECC108/A devices. If properly configured, it can be used in most situations where these devices are currently employed. For ATSHA204A and ATECC108A compatibility restrictions, see the ATECC508A data sheet.

ATECC608A nhìn chung tương thích với tất cả các thiết bị ATSHA204/A và ATECC108/A. Nếu được cấu hình đúng, nó có thể được sử dụng trong hầu hết các tình huống mà các thiết bị này hiện đang được sử dụng. Để biết các hạn chế về khả năng tương thích của ATSHA204A và ATECC108A, hãy xem datasheet của ATECC508A.

5. Tham khảo

ATTECC608A Datasheet – https://ww1.microchip.com/downloads/en/DeviceDoc/ATECC608A-CryptoAuthentication-Device-Summary-Data-Sheet-DS40001977B.pdf

Icons made by Freepik from www.flaticon.com