Sử dụng HSM và USB TOKEN bảo đảm an toàn cho ứng dụng chữ ký số
Hoạt động chứng thực điện tử (CTĐT) với ký số và bảo mật thông tin điện tử (TTĐT) sử dụng mật mã khóa công khai, được hiện thực hóa qua các hoạt động liên quan tới Chứng thư số (CTS). Đến lượt mình hoạt động ký số và bảo mật là hoạt động mật mã nên độ an toàn mật mã là giữ bí mật khóa để ký số và lập mã và đảm bảo tính toàn vẹn của các thao tác mật mã này.
Hoạt động CTĐT được giả thiết là thực hiện trong môi trường mạng máy tính không tin cậy. Hạ tầng PKI cung cấp các dịch vụ cần thiết về CTS, nên phần mềm Core CA sẽ thực hiện nhiều “thao tác mật mã” để sinh tham số và cặp khóa cho CTS, ký số và mã hoá TTĐT khi cần thiết.
Trong phần mềm thuê bao tại các máy tính trạm, các phần mềm ràng buộc PKI cũng tiến hành các thao tác mật mã để ký số và mã hóa các TTĐT. Hoạt động CTĐT chỉ được coi là an toàn nếu các thao tác mật mã và khóa mật mã được bảo vệ an toàn.
Để bảo đảm an toàn, khóa mật mã phải được bảo vệ không bị lộ khi lưu trữ cũng như khi sử dụng. Các môđun phần mềm thực thi mật mã phải đảm bảo toàn vẹn, không bị thay thế hoặc sửa đổi nhằm cài thêm các chức năng độc hại hoặc thực thi không đúng chức năng. Môi trường mạng máy tính thông thường (môi trường vật lý và môi trường lôgic) không thể đáp ứng được các yêu cầu an toàn này vì không đủ khả năng bảo vệ chống lại sự tiếp cận trái phép bằng các phương pháp phân tích mã hoặc các tấn công khác. Bởi vậy, cần phải tạo ra một môi trường có tính cách ly cao để lưu trữ khóa bí mật và bảo đảm thực hiện các thao tác mật mã một cách an toàn (cách ly cả về vật lý và lôgic).
Hiện nay, công nghệ thẻ thông minh (SmartCard) có thể tạo ra một môi trường an toàn để lưu trữ khóa bí mật và thực thi các thao tác mật mã. Thẻ thông minh thực chất là một máy tính chuyên dụng mà ở đó môi trường hoạt động được bảo vệ cả về an toàn vật lý và an toàn lôgic. Có thể sinh các cặp khóa mật mã và lưu trữ chúng bên trong các SmartCard này một cách an toàn mà không cần phải mã hóa khóa bí mật, vì chúng chỉ được sử dụng nội tại trong thẻ. Hơn nữa, ở đây các môđun mật mã và việc thực thi chúng cũng được đảm bảo tính toàn vẹn không thể bị xóa hoặc sửa đổi.
Vấn đề giao tiếp an toàn giữa SmartCard với các máy tính trạm được thực hiện trên các giao thức thông qua chuẩn giao diện mật mã PKCS#11. Giao tiếp vật lý giữa SmartCard và máy tính trạm được thực hiện thông qua ba loại giao diện là USB, giao diện đọc thẻ có tiếp xúc và giao diện đọc thẻ không tiếp xúc.
Các ứng dụng PKI hiện nay chủ yếu sử dụng giao diện USB sẵn có tại các máy tính trạm cùng với các USB Token (là các SmartCard) để lưu trữ khóa bí mật và môđun thao tác mật mã. Ngoài ra, người ta cũng sử dụng một loại SmartCard khác với cùng chức năng nhưng phải đặt thêm các ổ đọc thẻ tại các máy tính trạm. Sử dụng các USB Token lưu trữ CTS, khóa bí mật, các môđun mật mã và thực thi các môđun mật mã này sẽ tạo ra môi trường an toàn cao cho hoạt động CTĐT. Để sử dụng CTS trong việc ký số và mã hoá TTĐT cần phải có đủ cả hai nhân tố là USB Token (lưu trữ khóa bí mật và các môđun thao tác mật mã) và số bí mật cá nhân PIN.
Loại SmartCard sử dụng tại phía hạ tầng PKI, với cùng chức năng nhưng phục vụ được nhiều yêu cầu ký số và lập mã cùng một lúc do hiệu năng tính toán và lưu trữ cao được gọi là Môđun an toàn phần cứng (HSM).
Thiết bị USB Token và HSM đều tạo ra môi trường lưu trữ và tính toán cách ly an toàn và không thể nhân bản được nên không thể bị sao chép hoặc làm giả. Chất lượng an toàn mật mã của HSM và USB Token được đánh giá tuân theo các tiêu chuẩn quốc tế như Tiêu chuẩn Môđun mật mã an toàn (FIPS 140 - 2) và Tiêu chí chung (Common Criteria - CC) hay Tiêu chuẩn ISO/IEC 15408.
Sau đây sẽ xem xét một số yêu cầu cơ bản về an toàn vật lý, an toàn lôgic và an toàn kênh thứ cấp của các SmartCard khi đưa vào ứng dụng thực tế trong hoạt động CTĐT.
An toàn vật lý
Các thiết bị HSM và USB Token sẽ đảm bảo an toàn vật lý nếu chúng kháng được đầy đủ các tấn công vật lý đặc trưng hiện nay.
Bảo đảm an toàn vật lý nhằm phát hiện và ngăn chặn được các tấn công trực tiếp đến phần cứng của SmartCard để đọc khóa bí mật hoặc dịch ngược các hàm trong chip điện tử để tìm hiểu thuật toán. Chúng ta cần phải hiểu rõ các tấn công vật lý lên các thiết bị SmartCard trước khi đưa ra các giải pháp hữu hiệu để kháng lại các tấn công này.
Loại tấn công điển hình là sử dụng chất dung môi hóa học, các chất khắc axít và biến mầu. Các SmartCard có thể bị bóc lớp và tách lớp vỏ đóng gói bên ngoài bởi các chất khắc axít. Chất biến màu cũng là kỹ thuật khắc axít tiên tiến sử dụng sự khác nhau của tốc độ khắc axít để làm lộ ra sự khác biệt vật chất tinh tế và xác định được đâu là bit 0, đâu là bit 1 trong bộ nhớ ROM.
Bên cạnh đó là loại tấn công sử dụng kính hiển vi. Các kính hiển vi hạt điện tử quét và quang học được sử dụng đối với các phân tích quang học và kỹ nghệ dịch ngược. Một chip điện tử có thể bị phân tích nhằm làm lộ ra các khu vực đang hoạt động và thậm chí là các mã chương trình đang thực hiện hay các giá trị dữ liệu đang được chuyển đi.
Kẻ tấn công cũng có thể tiến hành loại tấn công sử dụng các loại trạm dò thử. Các trạm dò thử này cho phép đặt các kim dò thử vào các dây dẫn bất kỳ trên chip điện tử đã lột vỏ để tạo ra các kênh mới truyền ra bên ngoài. Dữ liệu trao đổi giữa CPU và bộ nhớ có thể bị thu chặn và khôi phục đầy đủ mã thực hiện chương trình hay dữ liệu chương trình kể cả các khóa bí mật.
Kẻ tấn công cũng có thể sử dụng chùm hạt ion tập trung để bắn các hạt ion nhằm thực hiện các thay đổi trong vi mạch. Các ngắt mạch của các vi mạch có thể được nối lại hay các tín hiệu ngầm bên trong có thể được truyền ra các dây dẫn bên ngoài.
Khả năng chống lại các tấn công vật lý của chip điện tử có thể thực hiện nhờ việc thiết kế chip có độ phức tạp cao cùng với các cải thiện đáng kể về độ an toàn vật lý.
Với kích cỡ nhỏ và đa lớp, SmartCard có thể chống lại việc sử dụng các kính hiển vi quang học, chống lại việc dò thử và che giấu được các dòng dữ liệu nhạy cảm bên trong. Cũng có thể tạo thêm lớp bảo vệ ngoài cùng có chứa một “lưới” chứa các tín hiệu bảo vệ ngăn chặn việc phân tích xử lý dữ liệu động.
Ngoài ra còn có các biện pháp chống tấn công vật lý như: Sử dụng các cảm biến với tín hiệu đo, các biến môi trường (như ánh sáng, nhiệt độ, nguồn điện và tần số đồng hồ) để ngừng hoạt động của chip điện tử khi các điều kiện vượt quá giới hạn nhằm giảm thiểu khả năng của kẻ tấn công muốn phân tích dữ liệu động trên chip; Xáo trộn tần số truyền dữ liệu; Tạo ra một lôgic kết dính hay pha trộn tất cả các khối chức năng để làm “rối” kẻ tấn công trong việc nhận biết các khối thành phần chức năng và phân tích cấu trúc vật lý của chip điện tử.
An toàn logic
Các SmartCard sử dụng giao diện tuần tự để đưa ra các lệnh thực hiện. Chúng hỗ trợ một số tùy chọn lệnh đưa vào một kênh liên lạc đơn để trao đổi dữ liệu với bộ đọc của SmartCard.
Bảo đảm tính bí mật và tính toàn vẹn của dữ liệu sẽ liên quan đến khả năng chống lại các tấn công lôgic. Bởi vậy, chúng ta cần hiểu rõ về các tấn công điển hình để đưa ra các biện pháp khắc phục chúng. Sau đây là một số tấn công logic điển hình:
- Tấn công sử dụng các lệnh được che giấu là loại tấn công lạm dụng một số câu lệnh của hệ điều hành Smartcard để khôi phục dữ liệu từ đó hoặc sửa đổi dữ liệu bên trong SmartCard. Các lệnh này có thể vẫn còn kích hoạt từ pha khởi hoạt hay thực hiện của ứng dụng trước đó.
- Tấn công hủy hoại tham số và tràn bộ đệm xảy ra khi các khả năng diễn dịch sai các tham số của các lệnh có thể dẫn đến các kết quả bất thường.
- Tấn công truy cập tệp xảy ra khi các hệ thống tệp của SmartCard đưa ra chi tiết các quyền cho phép truy cập đến các tệp và các thư mục; Các quyền này xác định quy trình an toàn để truy cập tệp. Các quyền cho phép truy cập có thể làm rối hệ điều hành của SmartCard với các tương tác phức tạp:
- Bị tổn hại bởi các chương trình Applet độc hại.
- Tấn công vào lỗ hổng trong giao thức liên lạc giữa SmartCard và máy trạm (được điều khiển bởi giao thức quản lý kiểm soát dòng dữ liệu và phục hồi lỗi), Giao thức mật mã, thiết kế và quá trình thực thi.
Tấn công lôgic phụ thuộc vào độ phức tạp chương trình phần mềm của SmartCard. Số lượng các lỗ hổng về an toàn sẽ tăng lên cùng với kích cỡ của mã phần mềm. Sau đây là các biện pháp chống lại các tấn công lôgic:
- Thực thi thiết kế có cấu trúc, là phương pháp tạo ra phần mềm từ các môđun chức năng nhỏ để có thể dễ dàng nắm bắt và kiểm tra, nhằm tránh những sai sót trong phần mềm và phát hiện sự phá hoại ngầm. Với phương pháp kiểm tra hình thức sử dụng các mô hình toán học để chứng tỏ tính đúng đắn của các chức năng thì có thể chứng minh tường minh được rằng một chương trình được phát triển có đúng hoàn toàn với thiết kế hay không.
- Thực hiện kiểm thử, là việc kiểm tra trên thực nghiệm của quá trình thực thi SmartCard. Kiểm thử giúp nhanh chóng phát hiện ra các lỗi thông dụng. Tuy nhiên, việc chưa phát hiện ra lỗi chưa chứng tỏ rằng chương trình không có lỗi.
- Chuẩn hóa các giao diện và các ứng dụng bằng cách tái sử dụng phần mềm đã được chứng tỏ là đúng đắn để làm giảm thiểu khả năng xuất hiện lỗi. Dùng các phần mềm đã được kiểm chứng qua sử dụng nhiều lần sẽ ít có khả năng để lại sai sót.
- Hướng đến sử dụng hệ điều hành Java Card, là ngôn ngữ hướng đối tượng được thiết kế dành cho các chức năng an toàn.
Đối với các USB Token chứa khóa bí mật, các môđun cũng như thực thi các thao tác mật mã thì giao diện giữa SmartCard và máy trạm cần theo chuẩn PKCS#11. Đối với thiết bị HSM thì có thể sử dụng giao diện mạng hoặc giao diện PCI, nhưng vẫn giao tiếp qua chuẩn PKCS#1.
Trong thiết bị SmartCard, giao thức lôgic kết nối với máy tính trạm thông qua chuẩn PKCS#11 là tập hợp các hàm API phục vụ cho các thao tác mật mã với các thuộc tính “không thiết lập lại được” để bảo đảm kiểm soát chặt chẽ hoạt động của SmartCard. Do vậy, khóa bí mật không thể bị truyền ra ngoài giới hạn vật lý của SmartCard. Các thao tác ký số, giải mã sử dụng khóa bí mật đều được thực hiện bên trong phạm vi vật lý của SmartCard. Các môđun chương trình thao tác mật mã, khóa công khai và CTS được lưu trữ bên trong thiết bị SmartCard không thể bị sửa đổi, cho dù các thông tin công khai có thuộc tính cho phép được đọc thông tin ra mà không cần xuất trình số bí mật cá nhân PIN.
An toàn lôgic của thiết bị HSM và USB Token được thiết kế ở mức cao hơn nhiều so với các máy tính thông thường, các hệ thống nhúng... và tùy biến phần mềm trong các thiết bị này rất phức tạp. Vì vậy, chỉ có các hãng công nghệ lớn sản xuất các thiết bị này mới có khả năng thực hiện tùy biến được phần “sụn” và phần mềm hệ điều hành cũng như các phần mềm ứng dụng khác. Điều đó cũng làm giảm đáng kể sự xuất hiện các mã độc bên trong thiết bị.
An toàn kênh thứ cấp
Bên cạnh an toàn vật lý và an toàn lôgic, SmartCard còn phải có khả năng chống lại các tấn công không tiếp xúc trực tiếp có kết hợp cả phần cứng và phần mềm, gọi là các tấn công kênh thứ cấp, hay tấn công kênh kề (Side Channel Attacks).
SmartCard được thiết kế với các mạch tích hợp IC tạo thành từ các mạch bán dẫn nhạy cảm với các hiện tượng vật lý như dòng điện và bức xạ. Tấn công kênh thứ cấp sử dụng các hiện tượng vật lý để phân tích hay điều khiển hành vi chip điện tử của SmartCard. Các tấn công này có thể thực hiện mà không cần tác động vật lý (hay tiếp xúc trực tiếp) tới thiết bị. Một số loại tấn công kênh thứ cấp điển hình gồm:
- Tấn công phân tích lượng sai dòng điện (Differential Power Analysis), là tấn công thống kê lên thuật toán mật mã, so sánh giả thuyết với kết quả đo được và thường có khả năng trích ra khóa lập mã từ SmartCard hay từ thiết bị tính toán khác.
- Tấn công gây sự cố dòng điện, trong trường hợp khi các bộ vi xử lý được thiết kế để vận hành từ một điện thế ổn định, khi mà các sự ngắt nguồn điện sẽ phá hỏng các ứng dụng đang chạy hay làm khởi động lại vi mạch. Gây sự cố dòng điện sẽ ảnh hưởng đến cả các giá trị ngưỡng và các giá trị được lưu trữ. Các thiết kế bên trong khác nhau sẽ gây ra các tác động khác nhau và có thể gây ra sự diễn dịch sai của giá trị hiện hành.
Người ta có thể khắc phục các tấn công kênh thứ cấp trên ba mức bảo vệ khác nhau:
- Khắc phục tại mức phần cứng, là các biện pháp dựa trên phần cứng nhằm làm giảm thiểu khả năng nhạy cảm đối với phân tích kênh thứ cấp. Nó giảm thiểu tỷ lệ tín hiệu đối với nhiễu và làm cho các tấn công khó xảy ra hơn. Người ta cân bằng các vi mạch và giảm thiểu các phát xạ điện từ để hạ thấp tín hiệu điện, thực hiện các quá trình ngẫu nhiên tương tranh nhằm làm tăng biên độ mức nhiễu. Xử lý các ngắt và tốc độ đồng hồ biến thiên được đưa vào với các nhiễu đếm thời gian để ngăn cản hoặc cản trở sự liên kết của các vết.
- Khắc phục tại mức phần mềm bao gồm các giải pháp: Thực hiện sắp thứ tự quá trình ngẫu nhiên đối với các giải pháp thay thế thuật toán song song nhằm giảm thiểu các tín hiệu liên quan; Thực hiện các trễ ngẫu nhiên hay các tuyến thay thế để thêm vào nhiễu đếm thời gian, nhằm cản trở sự liên kết của các vết và làm hỏng chất lượng của vết lượng sai; Cài đặt các vận hành khóa cố định thời gian để khử những tham số phụ thuộc thời gian trong nguyên liệu khóa và tránh cho các giá trị trung gian sự phân tích dòng điện đơn giản bằng theo dõi trực quan các vết; Thêm vào các giá trị ngẫu nhiên (sẽ được khử đi sau này) làm mù các giá trị trung gian nhằm ngăn chặn rò rỉ thông tin hữu ích. Những giá trị này được thiết kế cẩn thận để bù lại cho sự chênh lệch gây ra bởi các giá trị ngẫu nhiên.
- Khắc phục tại mức ứng dụng là việc kiểm tra mã số bí mật cá nhân PIN. Mã số này bị khóa lại sau ba lần thử liên tục không thành công sẽ là sự bảo vệ hữu ích chống lại phân tích lượng sai. Việc bộc lộ đầu vào và đầu ra của các thuật toán mật mã cần phải được hạn chế hoặc giới hạn để tránh kẻ tấn công thực hiện phân tích lượng sai.
- Cách khắc phục đối với tấn công gây sự cố dòng điện là sử dụng các cảm biến đối với điện thế, tần số và nhiệt độ. Tuy vậy, thiết lập cảm biến có thể tác động đến độ tin cậy và tiềm năng gây ra các tác động không mong muốn trong các môi trường của SmartCard.
Các biện pháp kết hợp cả phần cứng và phần mềm sẽ được thực thi để bảo vệ và phục hồi chống lại khả năng chèn lỗi vào chương trình. Kiểm tra các quyết định điều khiển luồng chương trình cốt yếu và các yếu tố mật mã giúp thực hiện việc phát hiện lỗi. Tính hợp lệ của các kết quả được thực hiện bằng cách tính kết quả hai lần và so sánh chúng với nhau.
Kết luận
Sử dụng thiết bị HSM và USB Token trên công nghệ smarcard cùng với CTS là một bước tiến lớn nhằm nâng cao khả năng an toàn trong quá trình triển khai hoạt động CTĐT. Thiết bị HSM làm tăng hiệu suất hoạt động của dịch vụ CTĐT của hạ tầng PKI khi cần đáp ứng một lượng lớn các nhu cầu tại một thời điểm. Đó là các nhu cầu về sinh tham số mật mã, sinh CKS, nhu cầu về kiểm tra hợp lệ CTS, CKS hay các dịch vụ an toàn mật mã khác. Chính vì vậy mà các thiết bị HSM lắp đặt tại hạ tầng PKI thường được gọi là CryptoServer.
Thiết bị USB Token tại phía thuê bao PKI là giải pháp có khả năng bảo đảm an toàn cao cho khóa bí mật dùng để sinh CKS hay mã hóa các tệp tin. Việc thực hiện các thao tác mật mã đối với USB Token cần có số bí mật PIN cho nên dù đã lấy được USB Token và CTS nhưng kẻ tấn công cũng không sử dụng được vì không có số PIN của thuê bao. Sử dụng USB Token, đáp ứng các yêu cầu an toàn vật lý và lôgic đặt ra và thuê bao có thể cách ly hoàn toàn hoạt động CTĐT khỏi môi trường máy tính không an toàn. Hơn nữa, đây là phương thức an toàn hai nhân tố nên kẻ tấn công phải có cả USB Token và số bí mật cá nhân PIN của thuê bao mới có thể giả mạo thuê bao trong giao dịch điện tử. Trường hợp khóa bí mật ký số bị lộ rất khó xảy ra.
Như vậy, cùng với sự phát triển của công nghệ điện tử - viễn thông, các giải pháp bảo đảm an toàn cho chứng thực điện tử sử dụng chứng thư số ngày càng có nhiều bước tiến mới, đáp ứng được yêu cầu của hệ thống PKI hiện đại