CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
3.2 Xây dựng giải pháp
Giải pháp được đưa ra ở đây là ta sẽ xây dựng một chương trình RSA (Security for ATM or Digital Signature for ATM). RSA sẽ gồm 3 thành phần:
RSA SA
RSA Agent Software
RSA Server
RSA SA (RSA SecurID Authenticators): Là thiết bị được gắn với người sử dụng, cụ thể nó sẽ được gắn trên các thẻ ATM. Chúng được gọi là các Token (mã thông báo), Các thiết bị này tạo ra các con số khác nhau trong một khoảng thời gian nhất định.
RSA Agent Software: là phần mềm được cài lên trên các điểm truy cập vào mạng (cụ thể là các máy ATM được đặt tại mỗi điểm giao dịch). RSA Agent Software hoạt động giống như người gác cổng, khi có yêu cầu đăng nhập của người sử dụng gửi đến, nó sẽ tiếp nhận và chuyển những thông tin đăng nhập tới máy chủ có thành phần RSA Server để thực hiện xác thực.
RSA Server: là thành phần quản trị của giải pháp RSA, được sử dụng để kiểm tra các yêu cầu xác thực và quản trị tập trung chính sách xác thực trên toàn hệ thống. Mục tiêu là xây dựng làm sao RSA Server có thể được mở rộng theo bất cứ nhu cầu nào của ngân hàng, và có khả năng xác thực được hàng triệu người sử dụng.
Cơ chế hoạt động của RSA
Thành phần RSA SA hay còn gọi là các Token được gắn trên các thẻ ATM của người sử dụng, nó có khả năng tạo ra những chuỗi số khác nhau sau một khoảng thời gian nhất định (Thông thường là một phút).
Giả sử khi một khách hàng đăng nhập vào hệ thống tại các điểm giao dịch ATM, ngoài các thao tác cơ bản là đút thẻ vào mã nhập mã PIN thì người sử
51
dụng sẽ được yêu cầu nhập thêm một dãy số nữa được gọi là Passcode. Việc nhập thêm Passcode là để xác thực xem mặc dù các thông tin và mã PIN là đúng nhưng liệu đây có phải là chính chủ thẻ thực sự đang thực hiện giao dịch không?
Passcode gồm có hai thành phần là số PIN và dẫy số xuất hiện trên token (Token code) của người đó vào thời điểm đăng nhập. Tất cả các thông tin vừa đăng nhập sẽ được thành phần RSA Agent Software (được cài sẵn trên các máy giao dịch ATM) tiếp nhận và thành phần này sẽ lại gửi những thông tin này đến RSA Server. Server đặt tại hội sở chính của ngân hàng sẽ có số PIN của người sử dụng trong cơ sở dữ liệu của nó. Ngoài ra, nó cũng có một cơ chế cho phép nó tính toán ra một dẫy số của nó. RSA Server sẽ ghép số PIN trong cơ sở dữ liệu và dẫy số nó vừa tính ra xem có trùng hợp với các thông tin người dùng vừa đăng nhập không? Nếu hai dẫy số này giống nhau, người dùng được xác thực là hợp lệ và được quyền đăng nhập vào hệ thống và có thể tiến hàng giao dịch một cách bình thường. Trong trường hợp ngược lại, quyền truy cập sẽ bị từ chối.
Cơ chế để RSA Server tính toán được một dẫy số của nó để so khớp với dẫy số trên token của người sử dụng là tương đối đơn giản. Để tạo ra được dẫy số thay đổi sau mỗi khoảng thời gian, một token sẽ có những thành phần sau:
Một đồng hồ bên trong (Tính theo giờ UTC).
Một số Seed có độ dài 64 hoặc 128 bits.
Thuật toán tạo số giả ngẫu nhiên
Với hai yếu tố là thời gian và số seed, sau khi áp dụng thuật toán tạo số giả ngẫu nhiên, token sẽ có một con số xuất hiện trên màn hình của nó (token code) và sau một khoảng thời gian xác định, thuật toán này lại tạo ra được một con số khác ứng với thời gian đó. Thuật toán này luôn tạo được những con số thay đổi theo thời gian và không lặp lại. Do vậy, việc dự đoán trước con số sẽ xuất hiện tiếp theo hoặc con số sẽ xuất hiện tại một thời điểm nào đó trong tương lai là không thể (chỉ có thể thực hiện được khi có số seed và thuật toán).
52
Khi gán một token cho một người sử dụng, quản trị mạng cũng sẽ phải cập nhật số seed của token đó vào cơ sở dữ liệu của RSA Server tương ứng với người dùng. Trên RSA Server cũng có một chương trình chạy thuật toán tạo số giả ngẫu nhiên giống với trên token. Khi có yêu cầu đăng nhập của người sử dụng, căn cứ vào tên đăng nhập, căn cứ vào đồng hồ hệ thống, căn cứ vào số seed được lưu trong cơ sở dữ liệu, khi chạy thuật toán tạo số giả ngẫu nhiên, RSA Server cũng sẽ có được một dẫy số giống với dẫy số trên token của người sử dụng tại cùng một thời điểm. Dãy số này được ghép với số PIN của người sử dụng trong cơ sở dữ liệu, RSA Server có thể kiểm tra được người sử dụng này có hợp lệ hay không.
Một vấn đề đặt ra, nếu đồng hồ trên token và đồng hồ trên RSA Server không giống nhau? Trong thực tế thì điều này luôn luôn xảy ra. Tuy vậy, RSA Server luôn ghi nhận lại một sự sai lệch về thời gian giữa nó và từng token khi đăng nhập và RSA Server sẽ chấp nhận bất cứ Passcode nào của người sử dụng nằm trong khoảng thời gian sai lệch đó. Ví dụ, nếu RSA Server ghi nhận sự sai lệch của một token với nó là một phút thì nó sẽ chấp nhận bất cứ Passcode nào của người sử dụng mà rơi vào khoảng thời gian trước thời điểm đăng nhập một phút, tại đúng thời điểm và sau thời điểm đó một phút. Khoảng thời gian sai lệch tối đa cho phép có thể thay đổi được trên RSA Server.
Quá trình truyền thông tin từ RSA Agent Software đến RSA Server được xây dựng dựa trên nền tảng công nghệ chữ ký điện tử. Có nghĩa là các thông tin từ RSA Agent Software gửi về SRA Sever sẽ được mac hóa nhằm bảo mật thông tin. Cơ chế của việc mã hóa là, RSA Sever sẽ gủi cho RSA Agent Software khóa công khai (Public key) và khóa bí mật ( Parivae key), RSA Sever sẽ gửi cho RSA Agent Software khóa công khai. RSA Agent Software sẽ dùng khóa công khai để mã hóa thông tin mà hóa RSA Agent Software muốn gửi cho RSA Sever. RSA Sever nhận được đoạn mã thông tin sẽ dùng khóa bí mật để giải mã đoạn mã đó.