پاسخ کوتاه
از الگوریتمی استفاده کنید که منتشرکنندهٔ فایل ارائه میکند، چون برای مقایسه به همان الگوریتم نیاز دارید. برای کارهای جدید، SHA-256 سازگارترین گزینه است و SHA-512 هم انتخاب خوبی است. برای دادههای حجیم خودتان، BLAKE3 سریعترین گزینه است، به شرطی که ابزار آن روی تمام سیستمهای درگیر موجود باشد. هر سه در حال حاضر امن محسوب میشوند و برای هیچکدام حملهٔ عملی شناختهشدهای وجود ندارد.
تفاوت آنها چیست
SHA-256 و SHA-512 از خانوادهٔ SHA-2 هستند که NIST آن را استاندارد کرده است و مقررات انطباق اغلب استفاده از آنها را الزامی میکنند. BLAKE3 جدیدتر است و استاندارد NIST نیست، بنابراین ممکن است این مقررات را برآورده نکند. SHA-256 و BLAKE3 با خروجی پیشفرض، خروجی 256 بیتی میدهند که به معنای حدود 128 بیت مقاومت در برابر برخورد است. SHA-512 خروجی 512 بیتی و حدود 256 بیت مقاومت میدهد. در عمل، هر دو سطح بسیار فراتر از توان حملات قابل اجرا هستند.
سرعت به سختافزار شما بستگی دارد
BLAKE3 برای استفاده از چند هستهٔ CPU و دستورهای برداری مدرن طراحی شده است، بنابراین معمولاً در فایلهای حجیم با اختلاف چشمگیری سریعتر است. نتیجه در گونههای SHA-2 متفاوت است: SHA-512 اغلب روی پردازندههای 64 بیتی بدون دستورهای ویژه سریعتر است، در حالی که پردازندههای دارای افزونههای SHA باعث سریعتر شدن SHA-256 میشوند. با یک فایل حجیم روی رایانهٔ خودتان اندازهگیری کنید، چون حافظهٔ نهان و دیسک بر نتیجه اثر میگذارند. شاید لازم باشد b3sum را جداگانه نصب کنید.
time sha256sum large.iso
time sha512sum large.iso
time b3sum large.isoچکسام چه چیزی را اثبات میکند
یکسان بودن چکسام نشان میدهد که فایل دقیقاً با فایلی که مقدار هش از روی آن محاسبه شده یکسان است. اما نشان نمیدهد چه کسی فایل را ساخته است. اگر مهاجم بتواند هم فایل دانلودی و هم چکسام را در همان صفحه تغییر دهد، مقایسه موفق خواهد بود. برای بررسی مبدأ، به مقدار هش از یک کانال جداگانهٔ قابل اعتماد یا به امضایی مانند GPG نیاز دارید.
sha256sum -c SHA256SUMS
gpg --verify SHA256SUMS.asc SHA256SUMSاز چه چیزهایی پرهیز کنیم
مقاومت MD5 و SHA-1 در برابر برخورد شکسته شده است و نباید از آنها برای محافظت در برابر دستکاری عمدی استفاده کرد. ممکن است هنوز در فهرستهای قدیمی فایلها دیده شوند که در آنها فقط خرابی تصادفی را تشخیص میدهند. توابع غیررمزنگاری مانند CRC-32 و xxHash برای سرعت و تشخیص خطاهای تصادفی ساخته شدهاند و هرگز نباید برای امنیت به کار روند.
چکسامها در CH-J Server Manager
ماژول Hash & Checksum هر سه الگوریتم را دارد و SHA-256، SHA-512 و BLAKE3 را بهعنوان توصیهشده و MD5 و SHA-1 را بهعنوان شکستهشده علامت میزند. این ماژول میتواند مقدارهای هش را محاسبه کند، فایلها را مقایسه کند و یک مقدار مورد انتظار را بررسی کند. ماژول نمیتواند مشخص کند که خود مقدار مورد انتظار قابل اعتماد است یا نه، پس آن را از منبعی بگیرید که به آن اعتماد دارید. برنامه بهروزرسانیهای خودش را با SHA-512 و امضای OpenPGP در کنار هم بررسی میکند.