Ít cuộc gọi.
Bất kỳ nền tảng nào.

Identity Layer tích hợp với bề mặt tối thiểu theo thiết kế. MicroPython trên bộ vi điều khiển €10, Flutter trên Android và Windows, hoặc PHP bridge được thả vào các endpoint hiện có của bạn. Giao thức tương tự. Các đảm bảo về mật mã tương tự. Bốn cuộc gọi.

Khởi động để xác minh. 6,5 giây.

Giao thức thách thức/phản hồi Ed25519 tương tự xác thực người dùng di động hoặc một toán tử được quy định chạy trên bộ vi điều khiển €10. device-bound key. Không có database thông tin xác thực. JWT được cấp khi xác minh.

Raspberry Pi Pico 2W, PN532 NFC reader, SSD1306 OLED display, NTAG424 DNA card
Boot
Registering
Node exists
Verified
Challenge
Active
Bốn cuộc gọi tác chiến. WiFi, OLED và tải cấu hình là cơ sở hạ tầng của thiết bị, không phải Identity Layer. Danh tính nguyên thủy là IdentityIoT, được cài đặt qua mip.
MicroPython
# Install via mip — no external dependencies
# import mip; mip.install("github:wide/identity-micropython")

from identity_iot import IdentityIoT

# 1. Init — configure node identity
identity = IdentityIoT(
    base_url  = cfg['base_url'],
    node_type = cfg['node_type'],
    tenant_id = cfg['tenant_id'],
    comm_key  = cfg['comm_key'].encode(),
    comm_iv   = cfg['comm_iv'].encode(),
)

# 2. Register — device-bound key, runs once
identity.ensure_registered()

# 3. Authenticate — Ed25519 challenge / verify / JWT
token = identity.authenticate()

# 4. Authenticated request — AES-256-GCM encrypted payload
response = identity.post_encrypted({'request': 'record_sensor_data', 'value': 42})
thành phần người mẫu Vai trò
MCU Raspberry Pi Pico 2W (RP2350) TrustZone, WiFi, lưu trữ khóa device-bound
đầu đọc NFC PN532 Giao diện I2C, đọc huy hiệu DNA NTAG424
Hiển thị SSD1306 128x64 OLED Trình tự khởi động, trạng thái xác minh
Huy hiệu NFC NTAG424 DNA (NXP) AES-128 tích hợp, phím không thể xuất, CMAC động
Đang trong quá trình deployment tham chiếu ESP32 và RP2040 cho trung tâm dữ liệu và các ngành truy cập vật lý. Giao thức và SDK giống hệt nhau trên tất cả phần cứng được hỗ trợ.

Nhận dạng giới hạn thiết bị.
Bốn cuộc gọi.

Gói địa phương. Không có dịch vụ nhận dạng bên ngoài. Khóa riêng không bao giờ rời khỏi thiết bị. Lưu trữ an toàn thông qua flutter_secure_storage và TEE / Secure Enclave khi khả dụng. Mã hóa payload được thực hiện từ đầu đến cuối thông qua ITEMSEncrypter.

identity_package identity_std identity_hs items_crypto items_search items_document_body
Tất cả các gói đều là địa phương. Không có sự phụ thuộc pub.dev vào lớp nhận dạng. SDK được phân phối như một phần của gói cấp phép.
Dart / Flutter
// 1. Init — JWT identity, silent on subsequent boots
final auth = IdentityAuthServiceStd(ITEMSGlobals.authURI);
await auth.ensureJwt(
  preferredLocale: locale.languageCode,
  utcOffsetMin:    DateTime.now().timeZoneOffset.inMinutes,
);

// 2. Handshake — silent if identity already present on device
final result = await api.mjHandshake(
  identityHash: identityHash,
  publicKey:    publicKey,
);

// 3. Store JWT — session active, no password, no credential database
await _storage.write(key: 'token', value: result['token']);

// 4. Every request — AES-256-GCM payload, end-to-end encrypted
final response = await api.postEncrypted({'request': 'your_request'});
YAML
dependencies:

  # Identity Layer — local packages, no external registry
  identity_package:
    path: packages/identity_package
  identity_std:
    path: packages/identity_std
  identity_hs:
    path: packages/identity_hs
  items_crypto:
    path: packages/items_crypto
Nền tảngTrạng tháiLưu trữ an toàn
AndroidSản xuất, Google Play đã bị xóaKho khóa Android / TEE
WindowsSản xuất, Microsoft Store đã bị xóaTrình quản lý thông tin xác thực Windows
LinuxSản xuấtlibsecret
iOS / macOSTrên lộ trìnhVùng an toàn

5 KB.
stack của bạn, không thay đổi.

Cầu PHP là một yêu cầu duy nhất nằm ở phía trước các endpoint hiện có của bạn. Các tuyến đường của bạn, database của bạn, logic kinh doanh của bạn. Không đụng hàng.. Identity Layer xử lý xác thực và mã hóa payload. Loại bỏ nó giống như cách bạn đã thêm nó.

Thả vào, thả ra. một require_once và hai lệnh gọi hàm. Điểm cuối của bạn bắt đầu nhận được payload đã được xác minh, giải mã. Không di chuyển lược đồ. Không có thay đổi bảng người dùng. Không có lưu trữ phiên. stack phía máy chủ hoàn chỉnh là 225 KB.
PHP
// 1. Include the Identity Layer bridge — 5 KB
require_once 'identity/_mj_auth.php';

// 2. Authenticate — JWT verified, identity_hash extracted
//    identity_hash is a 64-char SHA-256 hex — never a user ID
[$identityHash, $tenantId, $claims, $role] =
    mj_authenticate_identity($encoder);

// 3. Every response — AES-256-GCM encrypted, end-to-end
sendEncryptedResponse($encoder, [
    'status' => 'ok',
    'data'   => $yourData,
], ['ts' => time()], 200);
Nhật ký kiểm tra tồn tại nhưng không thể truy cập được bằng mật mã. Quyền truy cập yêu cầu phải có lệnh tòa án được xác thực. các mj_mandate_log endpoint đăng ký ủy quyền và mở cửa sổ xuất 72 giờ. Nhật ký sẽ bị hủy sau khi thu thập. Cơ quan yêu cầu phải chịu trách nhiệm pháp lý.
PHP: mj_mandate_log
// Requires role = admin — never operator
[$userId, $tenantId, $claims, $role] = mj_authenticate($encoder);
mj_require_role($encoder, $claims, 'admin');

// Register mandate — opens 72h export window
// target_identity_hash: 64-char SHA-256, never plaintext identity
// Ciphertext is never stored — metadata only
$connector->executeDatabaseParameterQuery(
    "INSERT INTO audit_log (mandate_number, issuing_country,
     issuing_court, target_identity_hash, export_status)
     VALUES (?, ?, ?, ?, 'PENDING')",
    [$mandateNumber, $issuingCountry, $issuingCourt, $targetHash],
    $db
);
thành phầnCông nghệGhi chú
Thời gian chạyPHP 8.xVani, không cần khung
databaseMySQL / MariaDBLược đồ chuẩn, không có cột thông tin xác thực
Bộ nhớ đệm/phù duRedisMã thông báo thách thức, hàng đợi tin nhắn (TTL < 1 phút)
Kích thước cầu5 KBTệp PHP đơn lẻ, thả vào bất kỳ stack LAMP nào
Kích thước stack đầy đủ225 KBIdentity STD + HS + Phím + Secure Channel + IoT + Nhãn + Thẻ
DeploymentsContainer / tại chỗ / air-gappedKhông có kết nối đám mây bắt buộc