• Thứ Tư, 13/07/2011 09:58 (GMT+7)

    An toàn hơn với chứng thư số

    Đánh giá

    Phương Nga
    Chứng thư số sẽ giúp quá trình truyền tải các ứng dụng di động trên hệ thống mạng không dây được an toàn và có tính toàn vẹn dữ liệu cao.

    Khi những người dùng điện thọai thông minh (smartphone) tải về hàng tỷ các ứng dụng mỗi năm, kèm theo các mẫu quảng cáo thì nguy cơ bị nhiễm mã độc (malware) đối với người sử dụng lẫn hệ thống mạng không dây khá cao.  

    Do đó, để đảm bảo an toàn thông tin thì các nhà xuất bản và nhà phát triển ứng dụng di động đã triển khai mô hình chứng thư số (code signing - CTS) để có thể nhận biết đâu là phần mềm hợp pháp, đồng thời có thể ngăn chặn các ứng dụng giả mạo và quan trọng là có thể hủy bỏ các mã độc hại mà không làm ảnh hưởng đến các ứng dụng còn lại đã được xuất bản lên kho ứng dụng.

    Chứng thư số là gì?

    Mục đích chính của CTS là xác thực, nhận dạng phần mềm hay ứng dụng hợp pháp và không bị thay đổi trên đường truyền, ví dụ những activex control (điều khiển độc lập) tải về từ mạng Internet thì phải có chữ ký số để có thể sử dụng một cách an toàn. Ngoài ra, CTS còn giúp đảm bảo ứng dụng có ký số thì mới được chạy. Mỗi loại chứng thực được thiết kế dùng cho mỗi mục đích khác nhau vì vậy phải đúng loại và đúng mục đích mới chạy được. Bên cạnh đó, việc thực hiện CTS sẽ cung cấp số cơ chế chữ ký số nhằm nhận diện ra tác giả phát triển và có nhiệm vụ kiểm tra tổng thể để biết đối tượng trong mã nguồn đã không bị thay đổi.  

    Một khi ứng dụng đó có ký số nhưng nếu bị thay đổi hay nhiễm malware thì cũng có thể nhận diện ra. Nếu muốn cài phần mềm thì phải mang CTS và dùng chứng thực CTS của phần mềm đó trước khi cài đặt, điều này có nghĩa là dù virus hay malware muốn đột nhập vào máy tính cũng phải “xin” chứ không phải dễ dàng thâm nhập vào.  

    Hầu hết các phiên bản distro của Linux cũng như các dịch vụ cập nhật của hệ điều hành Mac OS X của Apple và Microsoft Windows đều sử dụng CTS để có thể bảo đảm không có mã nguồn nhiễm malware trong các hệ thống vá lỗi.

    Hash là gì?

    Các thuật toán hash rất thường được sử dụng trong mô hình chữ ký số (digital signatures) và nó là giải pháp phổ biến để tăng tốc quá trình xử lý chỉ mục (index) trong các cơ sở dữ liệu hay các mảng dữ liệu lớn. Trước khi muốn tìm hiểu về chữ ký số, bạn cần phải tìm hiểu về hash.  

    Thuật toán hash sẽ lấy ra một khối dữ liệu lớn và tinh giản nó thành một thông điệp dữ liệu (gọi là message digest) có chiều dài 160bit. Thông điệp thu gọn được tạo ra này sẽ được "ký" bằng một giải thuật mã hóa để tạo chữ ký điện tử cho thông điệp đó. Hash có thể được hiểu theo ngôn ngữ “bình dân” như ví dụ sau: nếu chia con số 286,820 cho 4, có kết quả là 71,705. Vì vậy, 71,705 là con số được thu gọn của phép toán (286,820/4). Giả sử bạn thay bất kỳ số hạng nào trong bài toán này bằng một con số khác, thương số sẽ không còn là 71,705 nữa. Nếu trong trường hợp chỉ đưa cho bạn con số 71,705 và không cho biết thêm một thông tin nào khác, chắc chắn bạn không thể biết phép toán nguyên gốc, bởi vì có vô số phép chia với thương số 71,705.  

    Ví dụ trên cũng có các đặc điểm liên quan đến thuật toán hash. Để hash, bạn sẽ lấy ra một khối dữ liệu lớn và tiến hành tính toán một phép tính nào đó trên toàn bộ khối dữ liệu đó. Kết quả thu được sau khi hash sẽ là một giá trị nhỏ hơn dữ liệu nguyên gốc. Nếu bạn thay đổi dữ liệu gốc, dù chỉ một bit, giá trị hash cũng sẽ khác đi.  

    Các thuật toán hash được dùng trong mã hóa đều được thiết lập với một số thuộc tính đặc biệt sau:  

    - Không thể cho hash duyệt ngược để tìm lại bất kỳ dữ liệu gốc nào.  

    - Message digest được tạo ra sẽ không thể cho biết bất kỳ điều gì về dữ liệu gốc.  

    - Không thể tính toán để tạo lại dữ liệu gốc từ một giá trị cụ thể đã hash ra. 

    Có nhiều thuật toán hash để mã hóa. MD2 là thuật toán hash của nhóm RSA7, tạo digest 128bit dùng tốt cho bộ vi xử lý cấp thấp 8bit. MD5 cũng tạo ra digest 128bit, dùng tốt cho bộ xử lý 32bit. Thuật toán hash SHA-1 cũng dùng tốt cho các bộ xử lý cao cấp và tạo ra digest 160bit.  

    Cơ chế họat động của CTS trên ứng dụng di động

    Các nền tảng phần mềm di động như Windows Mobile 7 và kho dữ liệu ứng dụng phổ biến như Windows Marketplace của Microsoft (mô hình kinh doanh cũng tương tự như “cửa hàng trực tuyến” của Apple là App Store) đã triển khai công nghệ chứng thư số (CTS) để ngăn chặn nhiều mối đe dọa về bảo mật. CTS giúp kiểm soát việc lưu thông phần mềm, bảo đảm tính an toàn của các ứng dụng di động.  

    Đối với các mô hình cung cấp phần mềm dạng truyền thống, người mua chỉ cần xác nhận nguồn ứng dụng và tính toàn vẹn của nó qua việc xem xét chi tiết gói ứng dụng đó. Tuy nhiên, phần mềm tải về qua hệ thống mạng di động sẽ chứa nhiều rủi ro hơn bởi vì công việc nhận dạng các nhà xuất bản ứng dụng di động nào là hợp lệ trở nên khó khăn hơn nhiều. Giả sử, nếu malware thâm nhập vào môi trường mạng không dây, nguy cơ rủi ro không chỉ tại smartphone của người dùng cuối mà còn ảnh hưởng toàn bộ thiết bị trong hệ thống mạng di động và thậm chí có thể làm nghẽn dịch vụ của hệ thống. Nghiêm trọng hơn là có thể phá hỏng hệ thống mạng của nhà cung cấp, gây thiệt hại lớn về tiền của.  

    Các kho ứng dụng như Windows Marketplace hiện đã dùng công nghệ CTS có ký số cho mã nguồn phần mềm trên thiết bị di động, giúp xác thực nguồn gốc của mã nguồn phần mềm và để xác nhận mã nguồn đó đã không bị hiệu chỉnh. CTS dựa trên mã hóa khóa công khai (public key cryptography) (Xem phần “Một số thuật ngữ”). Khi một nhà phát triển hay nhà xuất bản phần mềm dùng khóa riêng tư (private key) có chữ ký số gắn vào một đoạn mã nguồn của phần mềm, thì các nền tảng phần mềm di động như Windows Mobile 7 sẽ dùng khóa công khai để xác thực chữ ký số trong suốt tiến trình tải ứng dụng và so sánh thuật toán băm (hash) của ứng dụng đã được ký số xem có trùng khớp với thuật toán hash ở ứng dụng đã được tải về hay không. Lúc đó, hash sẽ giúp xác nhận những nội dung của tập tin và mã nguồn đã không bị thay đổi hay hiệu chỉnh kể từ lúc nội dung đó đã có chữ ký số. Trong lúc, người dùng có thể kiểm tra nội dung tập tin và tính toàn vẹn của phần mềm thì nhà xuất bản ứng dụng di động cũng có thể hủy các chứng nhận nếu nhận ra có mối đe dọa về bảo mật.  

    Đối với chứng thực CTS truyền thống, nhà phát triển thường phải dùng chữ ký số giống nhau áp dụng cho tất cả mã nguồn. Trong lúc đó, mô hình của môi trường dành cho di động thì có những cách tiếp cận khác, cụ thể, các nhà phát triển và nhà xuất bản ứng dụng di động có thể dễ dàng gỡ bỏ những mã nguồn có ẩn chứa mối đe dọa mà không gây ảnh huởng đến các phiên bản hay ứng dụng khác đã được xuất bản. 

    Cơ chế triển khai CTS của ứng dụng di động được coi là lý tưởng khi có cả 2 CTS: nhận dạng nhà xuất bản ứng dụng di động và xác thực nội dung. Trong hầu hết các trường hợp, nếu CTS xuất phát từ một nguồn đáng tin cậy thì ứng dụng sẽ tự động được chấp nhận hay đưa ra lời cảnh báo nhắc người dùng cuối nên xem lại thông tin chữ ký số để quyết định có chấp nhận mã nguồn đó hay không. Ngoài ra, một số nhà cung cấp mạng giảm thiểu rủi ro bằng cách chỉ chấp nhận các ứng dụng đã được ký số. Nếu chẳng may nền tảng di động, chẳng hạn như Windows Mobile 7 không nhận biết được chữ ký của ứng dụng là hợp lệ, lúc đó khả năng ứng dụng sẽ không thể họat động.

    Vai trò của cơ quan chứng thực

    Nhiệm vụ của các cơ quan chứng thực (Certification Authority - CA) là bảo đảm tính toàn vẹn của chữ ký số do tổ chức hợp pháp cấp. Trong suốt tiến trình đăng ký CTS, CA sẽ tập hợp thông tin về nhà xuất bản ứng dụng di động để kiểm tra tính xác thực. Tiến trình xác thực có thể mất vài giờ hay vài ngày phụ thuộc vào thông tin cung cấp và tùy vào mức độ kiểm tra thông tin ở mức khó hay dễ. Các hãng thứ 3 còn được gọi là CA, có nhiệm vụ cấp phép chứng thực số. CA sẽ kiểm tra tính xác thực của tất cả chứng thực. Chứng thực sẽ không hợp lệ nếu như CA không chứng nhận nó là hợp lệ. Để có một chứng thực số, đầu tiên người dùng phải tạo một cặp khóa công khai/riêng tư, sau đó khóa công khai sẽ được đệ trình lên CA cùng với thông điệp. Một chứng thực chỉ được tạo ra sau khi CA kiểm tra tất cả các chi tiết và trả về kết quả nguyên vẹn. Tiếp theo, người dùng có thể cài đặt chứng thực trên máy tính của mình. Để có thể nhận biết chữ ký số là thật, một số tùy chọn để kiểm tra tính xác thực là thông qua trình duyệt web, email, máy chủ web hay các ứng dụng khác. Một số CA phổ biến là Verisign, CommerceNet, COMODO, GlobalSign… 

    Trong trường hợp, các nhà phát triển muốn gửi các ứng dụng di động đến Windows Marketplace, lúc này phần mềm phải được thông qua tiến trình chứng thư số. Các nhà phát triển buộc ký số trên từng nội dung cập nhật trước khi các ứng dụng có mặt trên danh mục kho ứng dụng. Sau đó, Microsoft sẽ giám sát các ứng dụng và có thể gỡ những chứng thực số liên kết với malware nếu như phát hiện ra vấn đề trong lúc dò tìm.  

    CTS rõ ràng là một trong những phương thức có thể giúp quá trình tải ứng dụng trên smartphone trở nên an toàn hơn, và giúp các nhà xuất bản ứng dụng di động có thể tự bảo vệ chính khách hàng của họ.  

    Một số thuật ngữ

    Chữ ký số (digital signature)

    Chữ ký số được dùng để kiểm tra thông điệp gốc. Dữ liệu trong chữ ký số được gắn với khóa riêng tư. Trong ví dụ này, Anh Tý muốn gửi bức thư tình cho chị Liễu. Anh Tý cũng muốn rằng chị Liễu phải đọc được bức thư này do chính anh Tý gửi đến.

    Như trong hình minh họa, bức thư ở dạng thông điệp gốc. Tại đây một thuật toán hash thích hợp đã được chọn để xử lý thông điệp của bức thư, tạo ra một digest. Tiếp theo, khóa riêng tư của người gửi sẽ được dùng để mã hóa digest này. Digest đã mã hóa sẽ được gắn vào thông điệp của bức thư và gửi đến người nhận qua đường Internet.

    Chứng thực số (digital certificate)

    Trong môi trường khóa công khai, bản thân người dùng không thể tự bảo đảm tính xác thực của khóa công khai mà người đó đang dùng vì khóa có thể bị giả mạo. Trong thực tế, hầu hết ở các trường hợp thì người dùng không hề biết họ đang trao đổi khóa công khai với ai. Trong tình huống này, chứng thực số chính là “vũ khí" tuyệt vời để giúp người dùng có thể kiểm tra tính xác thực của khóa. Nói cách đơn giản, chứng thực số là những tài liệu mà trong đó có những nội dung chứng minh đó là khóa thật.  

    Thông qua các hãng thứ 3, chứng thực số sẽ được cung cấp dễ dàng và thuận tiện để đảm bảo sự tin cậy giữa các bên tham gia, chẳng hạn tiến trình một giao dịch thương mại trực tuyến. Chứng thực số giúp kiểm tra tính xác thực của mã hóa khóa công khai. Hãng thứ 3 sẽ tạo chứng thực có chứa mã số nhận diện của người dùng gắn với khóa công khai, sau đó ký số trên chứng thực đó bằng cách dùng khóa riêng tư.  

    Chứng thực là một dạng tương tự bằng lái xe, hộ chiếu, giấy chứng minh nhân dân, giấy khai sinh… để giúp nhận diện ai là chủ nhân thật sự.  

    Một chứng thực số bao gồm:  

    -Khóa công khai. 

    -Thông tin chứng thực gồm tên người dùng và mã số riêng của người dùng. 

    -Chữ ký số.

    PKc  

    Mã hóa khóa công khai còn có tên gọi khác là mã hóa bất đối xứng. Nó được thiết kế sao cho khóa sử dụng trong quá trình mã hóa sẽ khác biệt với khóa được sử dụng trong quá trình giải mã. Ngoài ra, khóa sử dụng trong quá trình giải mã không thể được tính toán dùng để mã hóa và ngược lại. Thuật toán này được gọi là mã hóa công khai vì khóa dùng cho việc mã hóa được công khai cho tất cả mọi người. Một người nào đó cũng có thể dùng khóa này để mã hóa dữ liệu nhưng chỉ duy nhất người có khóa giải mã tương ứng mới có thể đọc được dữ liệu. Do đó, trong thuật toán này có 2 loại khóa: public key (khóa dùng để mã hóa) và private key (khóa dùng để giải mã). Tham khảo (http://www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5c5f5e5d58)

     

    ID: A1105_79
    Ý kiến của bạn? Ý kiến của bạn?
    Tin ngày :