โทรไม่กี่ครั้ง.
แพลตฟอร์มใดก็ได้

Identity Layer ผสานรวมกับพื้นผิวแบบมินิมอลด้วยการออกแบบ MicroPython บนไมโครคอนโทรลเลอร์ €10, Flutter บน Android และ Windows หรือบริดจ์ PHP หล่นลงในendpointที่มีอยู่ของคุณ โปรโตคอลเดียวกัน การรับประกันการเข้ารหัสแบบเดียวกัน สี่สาย

บูตเพื่อตรวจสอบ 6.5 วินาที

โปรโตคอลการท้าทาย/ตอบกลับ Ed25519 เดียวกันกับที่ใช้ตรวจสอบสิทธิ์ผู้ใช้อุปกรณ์เคลื่อนที่ หรือผู้ปฏิบัติงานที่ได้รับการควบคุมทำงานบนไมโครคอนโทรลเลอร์ 10 ยูโร device-bound key ไม่มีdatabaseข้อมูลประจำตัว JWT ออกเมื่อยืนยันแล้ว

Raspberry Pi Pico 2W, PN532 NFC reader, SSD1306 OLED display, NTAG424 DNA card
Boot
Registering
Node exists
Verified
Challenge
Active
สายปฏิบัติการสี่สาย การโหลด WiFi, OLED และการกำหนดค่าเป็นโครงสร้างพื้นฐานของอุปกรณ์ ไม่ใช่ Identity Layer เอกลักษณ์ดั้งเดิมก็คือ IdentityIoT, ติดตั้งผ่าน 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})
ส่วนประกอบ รุ่น บทบาท
มจร Raspberry Pi Pico 2W (RP2350) TrustZone, WiFi, device-bound key storage
NFC reader PN532 I2C interface, reads NTAG424 DNA badges
จอแสดงผล SSD1306 128x64 OLED Boot sequence, verification status
NFC badge NTAG424 DNA (NXP) AES-128 ออนบอร์ด, คีย์ที่ไม่สามารถส่งออกได้, CMAC แบบไดนามิก
กำลังดำเนินการปรับใช้อ้างอิง ESP32 และ RP2040 สำหรับศูนย์ข้อมูลและการเข้าถึงทางกายภาพ โปรโตคอลและ SDK เหมือนกันในฮาร์ดแวร์ที่รองรับทั้งหมด

ข้อมูลประจำตัวที่เชื่อมโยงกับอุปกรณ์
สี่สาย

แพ็คเกจท้องถิ่น ไม่มีบริการระบุตัวตนภายนอก รหัสส่วนตัวไม่เคยออกจากอุปกรณ์ การจัดเก็บข้อมูลที่ปลอดภัยผ่านทาง flutter_secure_storage และ TEE / Secure Enclave เมื่อพร้อมใช้งาน การเข้ารหัสเพย์โหลดเป็นแบบ end-to-end ผ่าน ITEMSEncrypter.

identity_package identity_std identity_hs items_crypto items_search items_document_body
แพ็คเกจทั้งหมดเป็นของท้องถิ่น ไม่มีการพึ่งพา pub.dev บนเลเยอร์ข้อมูลประจำตัว SDK ได้รับการแจกจ่ายโดยเป็นส่วนหนึ่งของแพ็คเกจสิทธิ์การใช้งาน
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
แพลตฟอร์มสถานะพื้นที่เก็บข้อมูลที่ปลอดภัย
Androidเวอร์ชันที่ใช้งานจริง Google Play เคลียร์แล้วที่เก็บคีย์ Android / TEE
Windowsการผลิต Microsoft Store เคลียร์แล้วตัวจัดการข้อมูลประจำตัวของ Windows
Linuxการผลิตlibsecret
iOS / macOSบนแผนงานวงล้อมที่ปลอดภัย

5 กิโลไบต์
สแต็คของคุณไม่เปลี่ยนแปลง

บริดจ์ PHP เป็นข้อกำหนดเดียวที่อยู่ด้านหน้าendpointที่มีอยู่ของคุณ เส้นทางของคุณ databaseของคุณ ตรรกะทางธุรกิจของคุณ ไม่ถูกแตะต้อง.. Identity Layer จัดการการรับรองความถูกต้องและการเข้ารหัสเพย์โหลด ลบออกแบบเดียวกับที่คุณเพิ่ม

ดรอปเข้า, ดรอปเอาท์. หนึ่ง require_once และการเรียกใช้ฟังก์ชันสองครั้ง ตำแหน่งข้อมูลของคุณเริ่มได้รับเพย์โหลดที่ผ่านการตรวจสอบและถอดรหัสแล้ว ไม่มีการโยกย้ายสคีมา ไม่มีการเปลี่ยนแปลงตารางผู้ใช้ ไม่มีที่เก็บข้อมูลเซสชัน สแต็กฝั่งเซิร์ฟเวอร์ที่สมบูรณ์คือ 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);
บันทึกการตรวจสอบมีอยู่แต่ไม่สามารถเข้าถึงได้แบบเข้ารหัส การเข้าถึงต้องมีคำสั่งศาลที่ผ่านการตรวจสอบแล้ว ที่ mj_mandate_log endpoint ลงทะเบียนอาณัติและเปิดหน้าต่างการส่งออกเป็นเวลา 72 ชั่วโมง บันทึกจะถูกทำลายหลังการรวบรวม หน่วยงานที่ร้องขอมีหน้าที่รับผิดชอบทางกฎหมาย
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
);
ส่วนประกอบเทคโนโลยีหมายเหตุ
รันไทม์PHP 8.xstandard, ไม่ต้องใช้ framework
databaseMySQL / MariaDBสคีมามาตรฐาน ไม่มีคอลัมน์credential
แคช / ชั่วคราวRedisโทเค็นการท้าทาย คิวข้อความ (TTL < 1 นาที)
ขนาดสะพาน5 KBไฟล์ PHP ไฟล์เดียว วางลงใน LAMP Stack ใดก็ได้
ขนาดกองเต็ม225 KBIdentity STD + HS + คีย์ + Secure Channel + IoT + ป้ายกำกับ + แท็ก
การปรับใช้คอนเทนเนอร์ / ภายในองค์กร / ช่องอากาศไม่มีการเชื่อมต่อระบบคลาวด์บังคับ