Giao thức Ace

Một phần của tài liệu Nghiên cứu xây dựng hệ thống đảm bảo an toàn truyền tin trên mạng Vinaphone (Trang 61)

Trong phần này sẽ khảo sát giao thức đƣợc thiết lập trong phiên bản 1.2.4 của phần mềm. Mục đích của giao thức Ace là cho phép cơ sở dữ liệu các seed và thuật toán thẻ (card algorithm) cùng tồn tại trong một máy trung tâm có thể đƣợc bảo vệ tốt. Giao thức mà xác nhận, đƣa ra ―4 mức thành công của mã hoá chéo‖ và ―sự xác thực qua lại‖ giữa máy chủ và máy khách . Việc yêu cầu về sự xác thực qua lại sẽ đƣợc chỉ dẫn là thất bại.

Các thuật ngữ liên quan đến giao thức:

c : Là 1 khoá DES đƣợc phát sinh trƣớc đó bởi máy khách và gửi tới máy chủ. Ek(văn bản gốc - plaintext): Tham chiếu tới mã hoá DES của văn bản gốc với khoá K. Giao thức đó sẽ không sử dụng 1 IV, và chỉ mã hoá các khối đơn lẻ trong ECB mode.

IP: Là địa chỉ IP của máy khách ACE.

P: Là passcode mà ngƣời dùng muốn đƣợc xác thực.

: Là mã truyền mà một thẻ riêng + pin để đƣa ra các passcode +1, -1, là các passcode mong muốn nếu đồng hồ thẻ bị lệch 1 số lƣợng lên hoặc xuống.

T: Là 1 nhãn thời gian (timestamp).

F2: Là 1 hàm băm đƣợc phát triển bởi Security Dynamic. Đối với một giao thức hoạt động nhƣ đã thiết kế, nó phải là không thể bị đảo ngƣợc (tính toán đầu vào từ đầu ra) và có khả năng chống lại sự xung đột (không thể tìm thấy 2 đầu vào mà sinh ra cùng một kết quả). Nếu nhƣ nó có thể dẽ dàng bị hoán đổi thì 1 số seed của thẻ có thể sẽ bị kẻ tấn công phát Nó cần có khả năng chống lại sự tấn công bởi vì máy chủ đòi hỏi sẽ không chấp nhận các tokencode đã từng đƣợc sử dụng rồi. F2 sinh ra 256 bit đầu ra từ đầu vào của nó. F2 có thể đƣợc dẫn xuất từ việc kiểm tra chƣơng trình ‗sdshell‘ có sẵn trong máy tính.

WP: Tham chiếu tới ―Worktation Passcode‖, nó là 64 bit của 256 bit đầu ra của F2. WP[1] tham chiếu đến 64 bit đầu tiên.

Giao thức sẽ bắt đầu khi ngƣời dùng tác động lên một vài quá trình (đăng nhập, in rshd, …) để đƣa ra shell.

1. Sdshell ra tín hiệu cho máy chủ với 1 thông điệp Hello (Hình 2.12). 2. Aceserver đáp ứng với 1 nhãn thời gian T(Hình 2.13).

3. Sdshell nhắc ngƣời dùng ngƣời dùng ‗nhập passcode‘. 4. Ngƣời dùng gửi lại passcode hiện thời, P.

5. Sdshell tính toán ra F2(IP, T, P), và chia nhỏ nó thành wp[1-4].

6. Sdshell gửi đi một gói UDP với (tên ngƣời dùng, Ec(wp[1])), (Hình 2.14). 7. Aceserver giải mã gói tin trên, và tính ra F2(IP, T, ). Nếu wp từ việc tính

toán đó phù hợp với cái đƣợc gửi đi bởi sdshell thì giả sử ngƣời dùng đã có thẻ và pin, và sẽ đƣợc cho phép vào. Nếu không, aceserver sẽ tính ra F2(IP, T, +1) và F2(IP, T, -1) và so sánh chúng với giá trị nhận đƣợc.

8. Nếu nhƣ sự so khớp thành công thì một thông điệp xác thực sẽ đƣợc gửi đi cho sdshell: Ewp[2](authorization), shell chạy. Ngƣợc lại nếu không khớp, aceserver sẽ xem xét với khoảng từ -10 đến +10. Nó có thể gửi đi 1 thông điệp yêu cầu 1 tokencode thứ hai để nó đảm bảo rằng việc ƣớc lƣợng giờ của nó là chính xác. Nó cũng có thể gửi lại 1 thông điệp lỗi, đƣợc mã hoá với wp[1] giống nhƣ khoá .

Các gói tin (packets):

Các định dạng gói tin hoàn toàn chƣa đƣợc biết tới tại thời điểm này, nhƣng những cái mà chúng ta đã tìm ra minh hoạ cho một vài yếu điểm, xảy ra xác thực không mã. Mỗi gói đƣợc chỉ ra nhƣ là phần thân của gói udp, theo sau bởi một bộ phân tích của gói đó.

Mỗi gói sẽ chứa một vài con số mã thuật và các thiết bị lƣu trữ, cũng nhƣ là một vài hằng số đƣợc hoán chuyển theo các quy luật đã thiết đặt. Và cũng sẽ có ít nhất 2 chuỗi số trong mỗi gói.

Chuỗi A tăng lên 1 đối với mỗi gói client gửi đi trong 1 phiên (session). Chuỗi B giảm xuống 1 mỗi gói.

Chuỗi C tăng lên 5 cho mỗi thông điệp Chuỗi D giảm xuống 5 cho mỗi thông điệp

A B C D và F là các byte đƣợc gửi trả và đƣa ra trƣớc với một vài sự chuyển vị. E thay đổi từ phiên này qua phiên khác.

Tên đăng nhập không đƣợc mã hoá và đƣợc biểu diễn đạt dƣới dạng hệ số16(hex). (―adam‖ = 61 64 61 6d).

Các byte đƣợc gạch dƣới chƣa từng thay đổi trong một kiểu gói tin. 8 16 24 32 +----+----+----+----+----+----+----+----+ 4500 0098 1633 0000 3c11 517f cd88 41c6 c034 4720 09a0 02f3 0084 0000 6702 0010 0000 0000 0000 0000 0000 0000 0000 0000 (208 more 0 bytes) 8 16 24 32 +----+----+----+----+----+----+----+----+ Securid |SeqA|0000|mrkr|seqB| 'A' 'B' 'C' 'D' | 'E' 'F' |0084 0000|6702 0010

8 16 24 32

+----+----+----+----+----+----+----+----+ 4500 0098 c9b2 0000 3111 a8ff c034 4720 cd88 41c6 02f3 09a0 0084 0000 6c02 0010 4a58 8000 0000 000a 3273 c5c6 003a 5bfa c92d 5cc2 b52d cdcd df39 0ce8 0cfa 0b54 4b55 55dd 6bd9 e5fa 7931 7ee8 c72a 77a4 3c16 d2f8 897b 5fc8 dcc4 0cc4 ae86 a1f4 7279 e41d 66b3 100b a577 2c47 3762 d7d9 ab50 36d8 56b3 55aa 0599 d30a 6be8 6191 3349 3bff eafb 3a83 84e8 955e 4576 9071 bc96 df03 07f4 7605

8 16 24 32

+----+----+----+----+----+----+----+----+ Securid |SeqC|0000|mrkr|seqD| 'C' 'D' 'A' 'B'| 'F' 'E' |0084 0000|6702 0010 4a58 8000 0000 000a 32| Encoded time roughly decodes to October 27 1996 15.25 EST

8 16 24 32 +----+----+----+----+----+----+----+----+ 4500 0098 1634 0000 3c11 517e cd88 41c6 c034 4720 09a0 02f3 0084 0000 6502 0010 0000 0000 6164 616d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 2721 2e54 99da b278 561a 80cb a483 c1ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

+----+----+----+----+----+----+----+----+ Securid |SeqA|0000|mrkr|seqB| 'A' 'B' 'C' 'D'| 'E' 'F' |0084 0000|6702 0010

0000 0000|username |0000 0000 0000 0000 '0' characters to fill out to byte 201 (adsbygoogle = window.adsbygoogle || []).push({});

0000 0000 0000 0001| DES encrypted wp[1] DES (continued) |0000 0000 0000 0000

Một phần của tài liệu Nghiên cứu xây dựng hệ thống đảm bảo an toàn truyền tin trên mạng Vinaphone (Trang 61)