I. Giới thiệu
SHA (Secure Hash Algorithm – thuật giải băm an toàn) là năm thuật giải được chấp nhận bởi FIPS (Federal Information Processing Standard – Tổ chức tiêu chuẩn xử lý thông tin liên bang) dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với tỉ lệ sai khác cao.
Năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit). Thuật giải SHA là thuật giải băm mật được phát triển bởi Cục An ninh quốc gia Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi Viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST). Bốn thuật giải sau thường được gọi chung là SHA-2.
SHA-1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec. SHA-1 được angà thuật giải thay thế MD5, một thuật giải băm 128 bit phổ biến khác.
SHA-2 bao gồm bốn giải thuật SHA-224, SHA-256, SHA-384 và SHA-512. Ba thuật giải SHA-256, SHA-384 và SHA-512 được xuất bản lần đầu năm 2001 trong bản phác thảo FIPS PUB 180-2. Năm 2002, FIPS PUB 180-2, bao gồm cả SHA-1 được chấp nhận thành chuẩn chính thức. Năm 2004, FIPS PUB 180-2 được bổ sung ang một biến thể SHA-224, với mục đích tạo ra một biến thể SHA-2 có độ dài khóa trùng với DES ba lần với 2 khóa (2TDES) – 112 bit. Những biến thể SHA-2 này được đăng ký Bằng ang chế Hoa Kỳ số 6.829.355.
SHA-2 (Thuật giải băm an toàn 2) là một tập hợp các hàm băm mật mã được thiết kế bởi Cơ quan an ninh quốc gia Hoa Kỳ (NSA). SHA-2 bao gồm những thay đổi đáng kể từ người tiền nhiệm của nó, SHA-1. Họ SHA-2 bao gồm sáu hàm băm với các giá trị (giá trị băm) là 224, 256, 384 hoặc 512 bit: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA -512/256.
II. Đặc điểm nổi bật của Thuật giải băm an toàn SHA-2
Hash function hay còn gọi là “hàm băm” là hàm nhận một “input” đầu vào, từ “input” đó tạo ra một giá trị đầu ra “output” (hay còn gọi là “hash value” – “giá trị băm”) tương ứng. Giá trị đầu vào có thể có độ dài tuỳ ý nhưng giá trị băm thì luôn có độ dài cố định.
Hash function là hàm mã hoá một chiều.
.png)
Một hash function tốt phải thỏa mãn các điều kiện sau:
- Tính toán nhanh
- Ít xảy ra đụng độ, tức là khả năng để các gía trị input khác nhau cho ra cùng một giá trị băm là rất thấp
- Không thể đảo ngược: Đảm bảo không có phương pháp khả thi để tính toán được dữ liệu vào nào đó để cho ra giá trị băm mong muốn
Hash function được ứng dụng chính vào một số công việc sau:
- Xây dựng cấu trúc dữ liệu để tối ưu việc tìm kiếm: Hashtable
- Lưu và kiểm tra password
- Kiểm tra tính toán vẹn của dữ liệu
- Sinh mã OTP
Hàm băm mật mã tốt là một thuật toán, khi chạy với bất kỳ nội dung nào (ví dụ: tài liệu, âm thanh, video, hình ảnh,…) sẽ luôn trả về kết quả đầu ra duy nhất (thường được gọi là kết quả băm hoặc băm) cho nội dung đầu vào duy nhất. Không có hai đầu vào khác nhau nào sẽ trả về cùng một đầu ra băm và các đầu vào giống hệt nhau sẽ luôn dẫn đến cùng một đầu ra. Sử dụng các thuộc tính mật mã này, một đầu ra băm có thể được sử dụng trên hai đầu vào được gửi khác nhau để xem chúng có giống nhau hay không. Băm mật mã là xương sống của hầu hết mọi quy trình xác thực và toàn vẹn kỹ thuật số.
Các dịch vụ của cơ quan chứng nhận PKI (CA) sử dụng băm mật mã để xác nhận danh tính và yêu cầu chứng chỉ kỹ thuật số và cho phép xác nhận (nghĩa là ký) các danh sách thu hồi chứng chỉ kỹ thuật số (CRL) mà các bên liên quan khác (ví dụ: máy tính, phần mềm , người dùng,…). Nếu hàm băm mật mã được sử dụng bởi các dịch vụ PKI không được tin cậy là mạnh (nghĩa là không thể phá vỡ), thì các bên không thể dựa vào tính hợp lệ của chứng chỉ kỹ thuật số và nội dung khác được ký bởi CA. Đó là sức mạnh của băm mật mã điều đó tạo ra niềm tin trong toàn bộ hệ thống PKI.
Tính năng quan trọng nhất của hàm băm mật mã nằm ở khả năng vốn có của nó để đảm bảo rằng tất cả nội dung duy nhất được gửi luôn dẫn đến cùng một đầu ra duy nhất. Đồng thời, bất kỳ ai chỉ nhận được kết quả băm của nội dung sẽ không thể tạo nội dung gốc được gửi để tạo kết quả băm đơn giản chỉ từ kết quả băm. Nếu ai đó có thể làm như vậy thì nó được gọi là một cuộc tấn công của người tiền nhiệm. Và không có hai đầu vào khác nhau nào tạo ra cùng một đầu ra băm giống hệt nhau. Tất cả các giá trị băm có độ dài bit đã nêu, đó là số 1 và 0 (chữ số nhị phân) được biểu thị trong đầu ra băm.
Băm mật mã được oil à mạnh như độ dài bit hiệu quả đã nêu của nó trừ đi 1 bit. Do đó, hàm băm 128 bit được oil à mạnh, có khả năng bảo vệ hiệu quả 127 bit khi không có sai sót nào được biết đến. Khi chiều dài bit hiệu quả được rút ngắn, hàm băm trở nên ít bảo vệ hơn và ít giá trị hơn.
Họ SHA-2 (Thuật giải băm an toàn 2)
SHA-2 là tiêu chuẩn băm mật mã mà tất cả phần mềm và phần cứng nên sử dụng ngay bây giờ, ít nhất là trong vài năm tới. SHA-2 thường được gọi là họ băm SHA-2 vì nó chứa nhiều giá trị băm có kích thước khác nhau, bao gồm các SHA-224, SHA-256, SHA-384 và SHA-512 bit. Khi ai đó nói rằng họ đang sử dụng hàm băm SHA-2, bạn không biết họ đang sử dụng độ dài bit nào, nhưng mức phổ biến nhất là 256 bit. Mặc dù SHA-2 có chung một số đặc điểm toán học giống như SHA-1 và những điểm yếu nhỏ đã được phát hiện. Vì vậy, nó tốt hơn SHA-1 và bất kỳ các chứng chỉ, ứng dụng và thiết bị phần cứng hỗ trợ SHA-1 nên được chuyển sang SHA-2.
Tất cả các nhà cung cấp trình duyệt web lớn (ví dụ: Microsoft, Google, Mozilla, Apple) và các bên liên quan khác đã yêu cầu (và đã làm như vậy trong nhiều năm) rằng tất cả khách oil, dịch vụ và sản phẩm hiện đang sử dụng SHA-1 chuyển sang SHA-2, mặc dù vậy phải được cải tiến tùy thuộc vào nhà cung cấp. Ví dụ: hầu hết các nhà cung cấp chỉ quan tâm đến các chứng chỉ TLS (tức là, máy chủ web) và Microsoft Corporation, hiện chỉ quan tâm nếu SHA-1 được sử dụng trên chứng chỉ kỹ thuật số từ CA công cộng. Nhưng tất cả các nhà cung cấp yêu cầu chuyển sang SHA-2 cho tất cả các ứng dụng và thiết bị cho tất cả các hàm băm mật mã. Ngày nay, hầu hết các trình duyệt sẽ hiển thị thông báo lỗi nếu gặp phải chứng chỉ kỹ thuật số SHA-1 công khai trên một trang web, nhưng một số trình duyệt sẽ cho phép bạn bỏ qua lỗi và truy cập trang web được bảo vệ SHA-1 nếu bạn muốn. Sắp tới, tất cả các nhà cung cấp trình duyệt lớn có thể sẽ ngăn trình duyệt của họ truy cập các trang web được bảo vệ SHA-1 và ngăn chặn việc người dùng cuối bỏ qua.
Các chức năng SHA-2 ban đầu không được chấp nhận nhanh chóng, mặc dù bảo mật tốt hơn SHA-1. Lý do có thể bao gồm thiếu hỗ trợ cho SHA-2 trên các hệ thống chạy Windows XP SP2 trở. Nhóm Google Chrome đã công bố kế hoạch làm cho trình duyệt web của họ dần dần ngừng sử dụng chứng chỉ TLS phụ thuộc SHA-1 trong khoảng thời gian từ cuối năm 2014 và đầu năm 2015. Tương tự, Microsoft đã thông báo rằng Internet Explorer và Edge sẽ ngừng sử dụng các chứng chỉ TLS công khai có chữ ký SHA-1 từ tháng 2 năm 2017. Mozilla đã vô hiệu hóa SHA-1 vào đầu tháng 1 năm 2016, nhưng phải kích hoạt lại tạm thời thông qua bản cập nhật Firefox, sau các sự cố với giao diện người dùng dựa trên web của một số mô hình bộ định tuyến và thiết bị bảo mật.
Ưu điểm:
SHA-2 hay SHA nói chung được oil à họ hàm băm an toàn nhất bởi:
Từ giá trị băm được tạo ra bởi một giải thuật băm SHA, việc tìm lại được đoạn dữ liệu gốc là không khả thi.
Hai đoạn dữ liệu có cùng kết quả băm tạo ra bởi một trong những giải thuật SHA là không thể xảy ra. Chỉ cần một sự thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm khác hoàn toàn.
Nhược điểm:
Hiện nay SHA-1 không còn được oil à an toàn tuyệt đối tuy SHA-2 vẫn an toàn tuy nhiên thuật toán của SHA-2 không khác biệt nhiều so với SHA-1 do đó việc phá được nó chỉ là không lâu nữa. Do đó cần phải phát triển các thuật toán băm mới antoàn hơn cho tương lai.
Cho đến nay thì chưa thấy có báo cáo nào về phương pháp tạo ra đụng độ trong SHA-2. Mặc dù SHA-2 là họ “hash function” mạnh nhưng thiết kế của nó vẫn dựa trên SHA-1 nên NIST vẫn muốn có thiết kế của “hash function” mới cạnh tranh với SHA-2.
Theo thời gian, các cuộc tấn công chống lại mật mã sẽ cải thiện, và sức mạnh xử lý máy tính sẽ trở nên tốt hơn. Điều này làm cho chữ ký SHA-2 hợp lệ kém an toàn hơn vào năm 2020 so với năm 2016. Vì lý do này, việc lựa chọn thuật toán sẽ mạnh hơn nhiều so với cần thiết ngay để cải thiện ngắn hạn không dẫn đến sự xâm phạm bảo mật. Nó không phải là không thực tế cho một thuật toán băm cụ thể để duy trì an toàn trong một thập kỷ.
Các chuyên gia trong ngành và các nhà nghiên cứu bảo mật trên toàn thế giới đang liên tục phân tích SHA-2 và các thuật toán băm mật mã khác, vì vậy các chứng chỉ SSL hiện tại sẽ có chữ ký số đáng tin cậy và an toàn trong một thời gian.
III. Ứng dụng
Hàm băm SHA-2 được triển khai trong một số ứng dụng và giao thức bảo mật được sử dụng rộng rãi, bao gồm TLS và SSL, PGP, SSH, S / MIME và IPsec.
SHA-256 tham gia vào quá trình xác thực các gói phần mềm Debian và trong tiêu chuẩn ký tin nhắn DKIM (Domain Keys Identified Mail); SHA-512 là một phần của hệ thống xác thực video lưu trữ từ Tòa án Hình sự Quốc tế của nạn diệt chủng Rwandan. SHA-256 và SHA-512 được đề xuất sử dụng trong DNSSEC. Các nhà cung cấp Unix và Linux đang chuyển sang sử dụng SHA-2 256 bit và SHA-2 512 bit để băm mật khẩu an toàn.
Ngoài ra, một số loại tiền điện tử như Bitcoin sử dụng SHA-256 để xác minh các giao dịch và tính toán bằng chứng về công việc hoặc bằng chứng cổ phần. Sự gia ang của chip ang tốc ASIC SHA-2 đã dẫn đến việc sử dụng các chương trình chứng minh công việc dựa trên tiền điện tử.
SHA-1 và SHA-2 là các thuật toán băm an toàn theo yêu cầu của pháp luật để sử dụng trong một số ứng dụng của Chính phủ Hoa Kỳ, bao gồm sử dụng trong các thuật toán và giao thức mã hóa khác, để bảo vệ thông tin. FLIPS PUB 180-1 cũng khuyến khích việc áp dụng và sử dụng SHA-1 bởi các tổ chức tư nhân và thương mại.
SHA-256 được ứng dụng vào Chứng thư số cho các cơ quan, tổ chức, cá nhân sử dụng trong các hoạt động công cộng, bao gồm các loại chứng thư số chính: Chứng thư số cho khách ang cá nhân; Chứng thư số cho khách ang tổ chức, doanh nghiệp; Chứng thư số Code Signing angá nhân hoặc tổ chức phát triển phần mềm; Chứng thư số SSL bảo mật và chứng nhận hệ thống website; Chứng thư số cho hệ thống bảo mật Managed PKI.
Tại Việt Nam, SAVIS sẽ là đơn vị đầu tiên triển khai áp dụng chứng thư số SHA-256 trong giao dịch điện tử, ký hợp đồng điện tử, sổ tiết kiệm điện tử, khai báo thuế điện tử, hải quan điện tử, truy xuất nguồn gốc ang hóa hay mã hóa dữ liệu – tài liệu của tổ chức/doanh nghiệp.
SHA-256 đáp ứng tiêu chuẩn về “hàm băm bảo mật” được quy định tại Thông tư 06/2015/TT-BTTT của Bộ TT&TT quy định Danh mục tiêu chuẩn bắt buộc áp dụng về chữ ký số và dịch vụ chứng thực chữ ký số, bắt buộc các nhà cung cấp dịch vụ chứng thực chữ ký số công cộng chuyển đổi “hàm băm bảo mật” từ tiêu chuẩn SHA-1 sang tiêu chuẩn SHA-2.
Hàm băm SHA-256 có tính bảo mật cao hơn và hiện được đánh giá là một trong những hàm băm an toàn nhất hiện nay. Chứng thư số SHA-256 do TrustCA cung cấp chính thức hoạt động từ ngày 23/9/2019.
Trong Thông tư số 39/2017/TT-BTTTT ngày 15/12/2017 của Bộ trưởng Bộ Thông tin và Truyền thông Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Khuyến nghị áp dụng tiêu chuẩn SHA-2 và được xếp vào nhóm Tiêu chuẩn về an toàn thông tin.
Tài liệu tham khảo
1. Tiêu chuẩn quốc gia TCVN 11816-3:2017 (ISO/IEC 10118-3:2004 with amendment 1:2006) về Công nghệ thông tin – Các kỹ thuật an toàn – Hàm băm – Phần 3: Hàm băm chuyên dụng https://vanbanphapluat.co/tcvn-11816-3-2017-iso-iec-10118-3-2004-with-amendment-1-2006-cong-nghe-thong-tin
2. https://www.csoonline.com/article/2879073/all-you-need-to-know-about-the-move-from-sha1-to-sha2-encryption.html
3. Descriptions of SHA-256, SHA-384, and SHA-512 http://www.iwar.org.uk/comsec/resources/cipher/sha256-384-512.pdf
Nguyễn Thị Thu Trang