لاگهای آدیت غیرقابل دستکاری؛ فراتر از کنترل دسترسی
خلاصهٔ کاملتر
نویسنده یه لاگ آدیت «مدرکپذیر در برابر دستکاری» رو اینجوری تعریف میکنه: لاگی که اگه کسی غیر از نویسندهی خودش دستکاریش کنه، قابل کشف باشه. یه جدول تو دیتابیس که فقط با کنترل دسترسی محافظت میشه این تعریفو برآورده نمیکنه، چون به یه خوانندهی بعدی نشون نمیده که هیچ ردیفی حذف نشده یا ترتیبش عوض نشده. مقاله چهار سطح «غیرقابل تغییر بودن» رو از هم جدا میکنه: سطح صفر یعنی سیاست نگهداری و ذخیرهسازی قفلشده مثل S3 Object Lock که فقط جلوی حذف یا بازنویسی توسط خود سازمانو میگیره، اما به یه طرف بیرونی هیچ راهی برای اثبات کامل و دستنخورده بودن نسخهای که بهش نشون داده میشه نمیده.
سه سطح بالاتر واقعا مدرک میسازن. هش چین (سطح یک) هر ردیف رو با هش ردیف قبلی زنجیر میکنه، طوری که تغییر یه ردیف قدیمی، هش همهی ردیفهای بعدیو بههم میریزه؛ اما فقط برای کسی که یه «سر» زنجیرهی قابلاعتماد و جدید رو در دست داره معنی داره، و کسی که خود زنجیره رو نگه میداره میتونه دنبالهشو دوباره بسازه. برای همین سطح دو، مرکل تری با چکپوینت امضاشده، وارد میشه (استاندارد RFC 9162، همونی که برای Certificate Transparency استفاده میشه): این ساختار «اثبات شمول» میسازه که یه ردیف خاص تو لاگه، و «اثبات سازگاری» که نشون میده یه لاگ جدیدتر واقعا ادامهی یه لاگ قدیمیتره، بدون اینکه لازم باشه همهی ردیفهای وسط چک بشن؛ برای یه لاگ صد میلیون ردیفی این اثبات فقط حدود ۲۸ تا هش طول میکشه.
یه هش چین ساده تو کد اینشکلیه؛ هر ردیف هش ردیف قبل از خودشو نگه میداره تا تغییر تو گذشته قابل کشف بشه:
struct Entry {
prev: Hash,
body: Vec<u8>,
}
fn entry_hash(e: &Entry) -> Hash {
let mut h = Sha256::new();
h.update(e.prev);
h.update(&e.body);
h.finalize().into()
}نکتهی مهم اینه که یه چکپوینت مرکل تری هم اگه هیچوقت از دست خود سازمان بیرون نره، هیچکیو محافظت نمیکنه؛ برای همین سطح سه، لنگر بیرونی، لازمه؛ یه توکن زمانی مثل RFC 3161 یا یه commitment روی بلاکچین بیتکوین محدودهای میسازه که نشون میده اون چکپوینت حداکثر تا کِی وجود داشته. نویسنده تاکید میکنه خود این مکانیزمها کوچیکن؛ چیزی که واقعا لاگهارو تو ممیزی به دردسر میندازه، مدیریت کلیدها، توزیع چکپوینتها، نگهداری، مهاجرت داده و مانیتورینگه، نه خود ریاضیات پشت هش و مرکل تری.
نکات کلیدی:
- چهار سطح «غیرقابل تغییر»: سیاست نگهداری، هش چین، مرکل تری با چکپوینت امضاشده، لنگر بیرونی
- هش چین فقط به کسی که سر زنجیرهی قابلاعتماد رو داره مدرک میده
- مرکل تری طبق RFC 9162 اثبات شمول و سازگاری میسازه؛ برای صد میلیون ردیف حدود ۲۸ هش کافیه
- چکپوینتی که بیرون از سازمان نره، هیچ محافظتی نداره؛ لنگر بیرونی (مثل RFC 3161 یا بیتکوین) این مشکلو حل میکنه
- نگهداری کلید و توزیع چکپوینت، نه خود الگوریتم، جایین که این سیستمها تو عمل شکست میخورن




