Thuật toán băm an toàn SHA

Một phần của tài liệu xây dựng thiết bị bảo mật vpn dựa trên giao thức ipsec (Trang 67 - 119)

b)

3.4.1.5 Thuật toán băm an toàn SHA

Thuật toán băm an toàn được diễn tả trong RFC 2404. SHA-1 tạo ra một tóm tắt bản tin dài 160 bit, và sử dụng khóa bí mật 160 bit. Có thể với một vài sản phẩm thì nó sẽ lấy 96 bít bên trái của tóm tắt bản tin để gửi vào trường xác thực. Bên thu tạo lại tóm tắt bản tin 160 bit sử dụng khóa bí mật dài 160 bit và chỉ so sánh 96 bit với tóm tắt bản tin trong khung của trường xác thực.

Tóm tắt bản tin SHA-1 dài 160 bit an toàn hơn so với MD5 dài 128 bit. Điều này được xem như là quá an toàn nhưng nếu như bạn cần một an toàn cao cho toàn vẹn bản tin thì có thể chọn thuật toán HMAC-SHA-1.

1.1.20.Xác thực các bên

Một trong những xử lý IKE là thực hiện xác thực các bên. Quá trình này diễn ra trong pha thứ nhất sử dụng thuật toán khóa băm cùng với một trong 3 loại khóa sau:

- Khóa chia sẻ trước - Chữ ký số RSA - RSA mật mã nonces

Đây là ba loại khóa và chúng kết hợp với xử lý xác thực như phác thảo sau 3.4.1.6 Khóa chia sẻ trước

Xử lý khóa chia sẻ trước là thủ công. Người quản lý tại một đầu cuối của IPSec IP- VPN đồng ý về khóa được sử dụng và sau đó đặt khóa vào thiết bị là host hoặc gateway một cách thủ công. Phương pháp này đơn giản, nhưng không được ứng dụng rộng rãi.

3.4.1.7 Chữ ký số RSA

Một giấy chứng nhận của người có quyền chứng nhận (Certificate Authority: CA) cung cấp chữ ký số RSA vào lúc đăng ký với CA. Chữ ký số cho phép an ninh hơn là khóa chia sẻ. Một khi cấu hình ban đầu đã được hoàn thành, các bên sử dụng chữ ký số RSA có thể xác thực đối phương không cần can thiệp của người điều hành.

Khi một chữ ký số RSA được yêu cầu, một cặp khóa công cộng và khóa riêng được sinh ra. Host sử dụng khóa riêng tạo ra một chữ ký số. Host này sẽ gửi chữ ký số của nó tới bên kia IPSec. Bên sử dụng khóa công cộng từ chữ ký số để phê chuẩn chữ ký số nhận được từ bên kia.

3.4.1.8 RSA mật mã nonces

Một cách phát triển của chữ ký số là xử lý RSA trong lúc mật mã để xác thực các bên. Một nonce là một số giả ngẫu nhiên. Xử lí này yêu cầu đăng ký với một CA để thu được một chữ ký số RSA. Các bên không chia sẻ khóa công cộng ở dạng xác thực này. Chúng không trao đổi các chữ ký số. Việc xử lí một khóa chia sẻ là thủ công và phải thực hiện trong suốt quá trình thiết lập ban đầu. RSA mật mã nonce cho phép từ chối truyền thông khi mà một bên từ chối hợp lý.

1.1.21.Quản lí khóa

Quản lí khóa có thể là một vấn đề lớn khi làm việc cùng với IPSec VPN. Nó giống như che dấu các khóa ở mọi nơi. Trong thực tế, chỉ có 5 khóa cố định cho mọi bên IPSec quan hệ với nhau.

- 2 khóa riêng được làm chủ bởi mỗi bên và không bao giờ chia sẻ. Chúng được sử dụng để mật hiệu bản tin.

- 2 khóa công cộng được làm chủ bởi mỗi bên và chia sẻ cho mọi người. Những khóa này được sử dụng để kiểm tra chữ ký.

- Khóa thứ 5 được sử dụng là khóa bảo mật chia sẻ. Cả hai bên sử dụng khóa này cho mật mã và hàm băm. Đây là khóa được tạo ra bởi thuật toán Diffie-Hellman, sẽ được diễn tả sau đây.

Điều này không giống như là nhiều khóa. Nhưng trong thực tế, khóa riêng và khóa công cộng được sử dụng cho nhiều kết nối IPSec cho một bên đưa ra. Một tổ chức nhỏ, những khóa này có thể toàn bộ được quản lý thủ công. Vấn đề xuất hiện khi cố gắngphân chia xử lí hỗ trợ cho hàng trăm hoặc hàng ngàn phiên VPN. Phần tiếp theo trình bày về giao thức Diffie-Hellman và xác thực số, đây là hai trong số những giải pháp hoàn hảo để quản lí tự động vấn đề nan giải này.

3.4.1.9 Giao thức Diffie-Hellman

Diffie-Hellman là giao thức đồng ý khóa cho phép 2 bên trao đổi một khóa bí mật không cần bất kì ưu tiên bí mật nào. Giao thức này là một ví dụ về xử lí trao đổi khóa đối xứng, trong đó các bên trao đổi khóa công cộng khác nhau để sinh ra khóa riêng giống nhau.

Giao thức Diffie-Hellman được sử dụng trong IPSec VPN, nhưng bạn rất khó để tìm ra nó. Nó được sử dụng trong xử lí thiết lập kênh an toàn giữa các bên IPSec. Dấu hiệu của nó như sau:

- IPSec sử dụng giao thức liên kết an ninh Internet và quản lí khóa (Internet Security Association and Key Management Protocol: ISAKMP) để cung cấp một khung cho xác thực và trao đổi khóa.

- ISAKMP sử dụng giao thức IKE để thương lượng an toàn và cung cấp nguyên liệu tạo khóa cho liên kết an ninh.

- IKE sử dụng một giao thức được gọi là OAKLEY, nó sẽ đưa ra một loạt các trao đổi khóa và chi tiết dịch vụ được cung cấp cho mỗi trao đổi.

- OAKLEY sử dụng Diffie-Hellman để thiết lập một khóa bí mật chia sẻ giữa các bên.

Xử lý mật mã khóa đối xứng sau đó sử dụng khóa bí mật chia sẻ cho mật mã và xác thực kết nối. Các bên sử dụng giao thức mật mã khóa đối xứng phải chia sẻ với nhau cùng một khóa bí mật. Diffie-Hellman cung cấp một giải pháp để cung cấp mỗi bên một khóa bí mật chia sẻ không cần giữ dấu vết các khóa sử dụng.

Xử lí mật mã khóa đối xứng quá chậm cho yêu cầu mật mã khối lượng lớn trong kênh IP-VPN tốc độ cao. Các bên IPSec sử dụng giao thức Diffie-Helman để thương lượng khóa bí mật chia sử dụng cho AH hoặc ESP để tạo dữ liệu xác thực hay mật mã gói tin IP. Bên thu sử dụng khóa đó để xác thực gói tin và giải mã phần tải tin. Chi tiết về các bước của thuật toán Diffie-Helman được trình bày trong chương 4.

3.4.1.10Quyền chứng nhận CA

Một phương pháp khác để nắm giữ khóa mà không nắm giữ nhiều công việc hỗ trợ quản lí là sử dụng CA (Certificate Authorities) như là một thực thể tin cậy để đưa ra và thu hồi chứng nhận số và cho việc cung cấp một ý nghĩa giúp kiểm tra về xác thực những chứng thực. CA thường có 3 phần tác nhân như VeriSign hoặc Entrust, nhưng để tiết kiệm, bạn có thể thiết lập thiết lập CA cho riêng mình trên cơ sở sử dụng dịch vụ giấy chứng nhận Windows 2000.

Dưới đây trình bày quá trình làm việc của CA:

1) Một client muốn sử dụng chứng thực số tạo ra một cặp khóa, một khóa công cộng và một khóa riêng. Tiếp theo, chient chuẩn bị chứng nhận không đánh dấu (X.509) nó chứa, giữ nhiều thứ: ID nhận dạng client và khóa công cộng mà nó vừa tạo thành. Chứng nhận không đánh dấu này sau đó được gửi tới phía CA nhờ sử dụng một vài phương pháp an toàn.

2) Phía CA tính toán mã băm của chứng nhận không đánh dấu. Sau đó CA giữ mã băm và đóng gói nó sử dụng khóa công khai của CA. Hàm mật mã băm này là một chữ ký số, và CA tấn công vào nó để chứng nhận và quay lại đánh dấu chứng nhận client. Chứng nhận này được gọi là nhận dạng chứng nhận và được lưu trong thiết bị client cho đến khi nó kết thúc hoặc bị xóa. CA cũng gửi cho client chứng nhận số của nó, các mà trở thành chứng nhận gốc cho client.

3) Bây giờ client có một chứng nhận số đánh dấu mà nó có thể gửi tới bất kì bên thành viên nào. Nếu bên thành viên muốn xác thực chứng nhận, nó giải mã chứng nhận nhờ sử dụng khóa công khai.

Chú ý quan trọng là với mỗi client thì CA chỉ gửi một chứng nhận của client đó. Nếu client muốn thiết lập IPSec IP-VPN với một client khác, nó trao đổi chứng nhận số với client kia nhờ sử dụng khóa công khai chia sẻ.

Khi một client muốn mật mã dữ liệu để gửi tới một bên, nó sử dụng khóa công khai của bên đó lấy từ chứng nhận số. Bên này sau đó giải mã gói tin với khóa công cộng.

Một chức năng khác của CA là sinh ra một loạt các chứng nhận theo chu kì mà nó đã hết hiệu lực hoặc đã mất giá trị. CA tạo ra danh sách chứng nhận bị hũy bỏ (Certificate Revocation Lists: CRL) của những khách hàng của nó. Khi một client nhận một chứng nhận số, nó kiểm tra CRL để tìm nếu như chứng nhận vẫn còn giá trị.

3.5 Ví dụ về hoạt động của một IP-VPN sử dụng IPSec

Để tóm tắt toàn bộ quá trình hoạt động của IPSec, ta đưa ra một ví dụ về kết nối IP- VPN như hình 3-14.

Chú ý rằng trước khi thiết lập kết nối IPSec, cần phải chắc chắn rằng các thiết bị đang sử dụng dọc theo đường dẫn của IP-VPN đảm bảo: có hỗ trợ IPSec (bao gồm các giao thức, thuật toán), không có kết nối IPSec nào trước đó hoặc nếu có thì các tham số trong SA đang tồn tại không xung đột với các tham số chuẩn bị thiết lập, có thể thực hiện lệnh “ping” để chắc chắn về kết nối đã sẵn sàng.

Hình 3-27:Ví dụ về hoạt động của IP-VPN sử dụng IPSec

Trong ví dụ này, user muốn truyền thông an toàn với mạng trụ sở chính. Khi gói dữ liệu tới router user (router này đóng vai trò là một cổng an ninh), router này sẽ kiểm tra chính sách an ninh và nhận ra gói dữ liệu cần truyền thông này là một ứng dụng của IP- VPN, cần được bảo vệ. Chính sách an ninh cấu hình trước cũng cho biết router mạng trụ sở chính sẽ là phía bên kia của đường ngầm IPSec, chính là trạm trụ sở chính của IP-VPN.

Router user kiểm tra xem đã có IPSec SA nào được thiết lập cho phiên truyền thông này hay chưa. Nếu hoàn toàn không có một IPSec SA nào thì bắt đầu quá trình thương lượng IKE. Certificate Authority có chức năng giúp trụ sở chính xác thực người sử dụng có được phép thực hiện phiên thông tin này hay không, chứng thực này là chữ ký số và được ký bởi một đối tác có quyền ký mà hai bên đều tin tưởng. Ngay sau khi hai router đã thỏa thuận được một IKE SA thì IPSec SA tức thời được tạo ra. Nếu hai bên không thỏa thuận được một IKE SA nào thì nó tiếp tục quá trình thỏa thuận hoặc ngừng kết nối phiên thông tin.

Việc tạo ra các IPSec SA chính là quá trình thỏa thuận giữa các bên về các chính sách an ninh, thuật toán mã hóa được sử dụng (chẳng hạn là DES), thuật toán xác thực (chẳng hạn MD5), và một khóa chia sẻ. Dữ liệu về SA được lưu trong cơ sở dữ liệu cho mỗi bên.

Tới đây, router người sử dụng sẽ đóng gói dữ liệu theo các yêu cầu đã thương lượng trong IPSec SA (thuật toán mật mã, xác thực, giao thức đóng gói là AH hay ESP…), thêm các thông tin thích hợp để đưa gói tin được mã hóa này về dạng IP datagram ban đầu và chuyển tới router mạng trung tâm. Khi nhận được gói tin từ router user gửi đến, router mạng trung tâm tìm kiếm IPSec SA, xử lý gói theo yêu cầu, đưa về dạng gói tin ban đầu và chuyển nó tới mạng trung tâm.

3.6 Tổng kết

Chương này trình bày chi tiết về giao thức IPSec và ứng dụng của nó đối với công nghệ IP-VPN. IPSec là một chuẩn mở, nó không định nghĩa các giải pháp cụ thể mà nó chỉ đưa ra các chuẩn. Giao thức IPSec gồm có 2 giao thức là AH và ESP, hoạt động khác nhau cung cấp khả năng đảm bảo tính toàn vẹn, bí mật, an toàn cho dữ liệu. Liên kết an ninh SA có chứa tập các chính sách, tham số, thuật toán, giao thức cho quá trình đóng gói dữ liệu giữa các bên tham gia vào IPSec. Tại mỗi đầu đường ngầm

IPSec được sử dụng (AH hay ESP), thuật toán và khóa được sử dụng cho quá trình mật mã và xác thực.

Bên cạnh đó, giao thức IKE là một giao thức quan trọng để thảo thuận xác thực các bên tham gia, thiết lập các tham số, chính sách của liên kết an ninh trong quá trình thiết lập. Nhiệm vụ của giao thức IKE chính là thương lượng giữa các bên trong quá trình thiết lập hoặc thương lượng lại khi cần thiết để tạo ra một liên kết an ninh SA.

Bảng 3-2 đưa ra tóm tắt về 3 giao thức trong chương 3.

Bảng 3-2: Tổng kết chương các giao thức của IPSec

Giao thức Dịch vụ Thuật toán/ phương thức

AH Toàn vẹn dữ liệu MD5, SHA1

ESP Bảo mật, toàn vẹn dữ liệu DES, 3DES, AES, MD5, SHA1

IKE Xác thực đối tác, thiết lập các

Chương 4 GIẢI PHÁP THỰC HIỆN THIẾT BỊ IPSEC VPN

4.1 Phân tích và lựa chọn giải pháp thực hiện.1.1.22.Kiến trúc tích hợp IPSec. 1.1.22.Kiến trúc tích hợp IPSec.

Để tiến hành tích hợp giao thức IPSec trên thiết bị thực có hai cách để thực hiện: Bump in the Stack (BITS) and Bump in the Wire (BITW).

4.1.1.1 Cấu trúc Bump in the Stack (BITS).

Trong kỹ thuật Bump in the Stack (BITS), IPSec được tiến hành như một lớp kiến trúc riêng biệt giữa lớp IP và các lớp liên kết dữ liệu (data link). Như được trình bày trong Hình 4-1,gói IP trước khi truyền dữ liệu xuống lớp liên kết dữ liệu phải qua lớp IPSec nhằm cung cấp dịch vụ bảo mật thích hợp.

Trong mô hình tích hợp IPSec này, IPSec trở thành một lớp riêng biệt trong mô hình TCP/IP. IPSec được thực thi như một phần mềm nằm phía gới lớp IP và thêm tính năng bảo vệ an ninh cho gói tin được tạo bởi lớp IP.

Ưu điểm của kỹ thuật này là IPsec có thể được trang bị thêm cho bất kỳ thiết bị IP nào vì các chức năng IPSec là tách biệt đối với IP. Tuy nhiên, nhược điểm của phương pháp này là chỉ có thể áp dụng trong giao tiếp unicast. Việc giao tiếp multicast cần những cơ chế khác.

4.1.1.2 Cấu trúc Bump in the Wire (BITW)

Trong cấu trúc Bump in the Wire (BITW) , một thiết bị phần cứng cung cấp dịch vụ IPsec được thêm vào. Ví dụ, giả sử một công ty sử dụng hai mạng khác nhau. Mỗi thành viên có một mạng lưới kết nối với Internet bằng cách sử dụng một router mà không có chức năng IPsec. Khi đó, một thiết bị IPsec được thêm vào giữa các router và Internet ở cả hai nơi, như thể hiện trong Hình 4-2. Những thiết bị này sẽ nhận tất cả gói tin đến nó, tiến hành xử lý IPSec và chuyển nó ra ngoài hoặc đi vào mạng nội bộ.

Hình 4-29:Cấu trúc IPsec bump in the wire (BITW)

Trong kiến trúc IPsec này, IPsec được thực sự thực hiện trong các thiết bị riêng biệt nằm giữa các thiết bị có nhu cầu giao tiếp an toàn. Những gói tin IP được đóng gói lại với mã hóa IPSec trước khi truyền ra mạng Internet và được giải mã tại đầu bên kia trước khi chuyển tiếp vào mạng nội bộ.

BITW thích hợp để trang bị cho các hệ thống mạng mà việc nâng cấp hệ thống bảo mật IPSec chiếm chi phí lớn và tốn thời gian (ví dụ như phải thay đổi toàn bộ các router thông thường thành router VPN trong một hệ thống mạng lớn).

Mô hình BITS đặt ra vấn đề cho một số ứng dụng máy chủ không nhận biết được giao thức IPSec nhưng vẫn cần phải giao tiếp sử dụng giao thức IPSec. Kỹ thuật này yêu cầu sự phát triển của các phần mềm mạng mới nhằm phù hợp với hệ điều hành của máy chủ. Điều này là không mang lại hiệu quả kinh tế, đặc biệt là đối với các hệ điều hành cũ không hỗ trợ mã hóa IPSec. Việc ứng dụng kỹ thuật IPSec BITW có thể hỗ trợ bất cứ hệ điều hành cũng như ứng dụng trước đó. Khi muốn cập nhật thuật toán cũng như quá trình trao đổi key, quá trình cập nhật chỉ cần tiến hành trên thiết bị IPSec.

Một phần của tài liệu xây dựng thiết bị bảo mật vpn dựa trên giao thức ipsec (Trang 67 - 119)