mạng
Như phõn tớch ở trờn, việc sử dụng mụ hỡnh sử dụng server sinh khúa phiờn (RAAS) đó tận dụng được những lợi thế của hạ tầng hệ thống BioPKI. Ứng dụng hướng tới giải quyết 2 khú khăn lớn của cỏc ứng dụng truy cập CSDL từ xa:
- Xỏc thực chớnh xỏc người dựng muốn truy cập từ xa vào mỏy chủ CSDL: Sử dụng đối sỏnh đặc trưng sinh trắc sống của người dựng khi đăng nhập với đặc trưng sinh trắc lưu trong thẻ.
- Tạo 1 phiờn giao dịch an toàn giữa người dựng và DBServer: Mọi thụng tin trong quỏ trỡnh xỏc thực và trao đổi dữ liệu đều được mó húa và kớ số.
Ngay khi phiờn giao dịch kết thỳc, khúa phiờn cần phải được xúa bỏ và trở nờn vụ nghĩa, cỏc chức năng ứng với cỏc đối tượng được mụ tả qua biểu đồ Usecase sau: System User management User Login/Logout Verify token Sign/Verify signatures Exchange data Session management
Generate session key
Encrypt/Decrypt
RA Application Server
DBServer
Distribute session key
Destroy session key
Hỡnh 1.19 Biểu đồ usecase ứng dụng kiểm soỏt truy cập mạng Biểu đồ usecase của ứng dụng kiểm soỏt truy cập mạng bao gồm:
- 3 tỏc nhõn ngoài là người dựng, DBServer, RA Application Server. - 2 hệ thống con: User management, Session management.
- 3 usecase chớnh là: Sign/Verify signature, Exchange data và Encrypt/Decrypt
Hệ thống con quản lý người dựng (User management) bao gồm 2 usecase: Login/Logout và Verifytoken.
Hệ thống con quản lý khúa phiờn bao gồm 3 usecase: Generate session key, Distribute session key và Destroy session key.
Phõn tớch cỏc Usecase:
- Usecase Login/Logout: Thực hiện việc đăng nhập/đăng xuất ứng dụng ở mỏy client sử dụng username và password.
- Usecase Verify token: Thực hiện đối sỏnh đặc trưng sinh trắc sống của người dựng với đặc trưng sinh trắc của người dựng đó được lưu trong thẻ Bio-Etoken. Use case này bao gồm cỏc hàm đọc thẻ, trớch chọn đặc trưng võn tay và đối sỏnh đặc trưng.
- Usecase Generate session key: Thực hiện sinh khúa phiờn sử dụng để mó húa dữ liệu đối xứng.
- Usecase Distribute session key: Khúa phiờn sau khi được tạo ra, sẽ được usecase này phõn phối một cỏch an toàn tới người dựng và DBServer. - Usecase Destroy session key: Thực hiện hủy khúa phiờn.
- Usecase Sign/Verify signatures: Thực hiện kớ/xỏc thực dữ liệu. Dữ liệu kớ ở đõy cú thể là một chuỗi kớ tự bất kớ hay một file. Use case này sử dụng cỏc hàm của OpenSSL để thực hiện kớ và xỏc thực chữ kớ.
- Usecase Encrypt/Decrypt: Thực hiện mó húa và giải mó dữ liệu, usecase này hỗ trợ cả mó húa đối xứng và bất đối xứng. Mó húa đối xứng sử dụng thuật toỏn AES, cũn mó húa bất đối xứng thỡ sử dụng thuật toỏn RSA.
- Usecase Exchange data: Thực hiện truyền và nhận dữ liệu trờn kờnh truyền dữ liệu bảo mật SSL, usecase này sử dụng cỏc hàm của OpenSSL để thực hiện truyền dữ liệu.
- Tỏc nhõn người dựng sử dụng cỏc usecase Login/Logout, Verify token, Sign/Verify signatures, Encrypt/Decrypt và Exchange data
- Tỏc nhõn RAAS sử dụng cỏc usecase Generate session key, Distribute session key và Destroy session key.
- Tỏc nhõn DBServer sử dụng cỏc usecase Sign/Verify signature, Encrypt/Decrypt và Exchange data.
Từ phõn tớch ở trờn chỳng ta xõy dựng kịch bản ứng dụng kiểm soỏt truy cập mạng như hỡnh (1.20)
Một số kớ hiệu:
- Epkc(): mó húa thụng điệp sử dụng khúa cụng khai của Client. - Epks(): mó húa thụng điệp sử dụng khúa cụng khai của RAAS. - SNcc: Serial Number chứng thư của người dựng.
- IDs: ID của DB Server.
- Ek(): Mó húa đối xứng sử dụng khúa phiờn K.
Hỡnh 1.20 Sơ đồ giao dịch quỏ trỡnh kiểm soỏt truy cập mạng
Quỏ trỡnh kiểm soỏt truy cập mạng như sau:
- User
• Điền username, password đăng nhập CSDL vào client module (Việc này cú thể được tiến hành tự động như sau: sau khi người dựng xỏc thực sinh trắc thành cụng, username và password sẽ được tự động lấy ra từ thẻ và điền vào form đăng nhập)
• Cắm Bio-EToken vào mỏy client • Quột đặc trưng sinh trắc
- Mỏy client
• Kiểm tra username, password và xỏc thực đặc trưng sinh trắc ặ người dựng đăng nhập thành cụng/khụng thành cụng? : User Client 1 : Remote login() 2 : ReadToken() 3 : Bio-EToken 4 : Capture biometrics() 5 : Biometrics 6 : Verify() 7 : GetCredential() 8 : Username, password
• Ở đõy, sử dụng cả 3 nhõn tố đú là password, token và đặc trưng sinh trắc để xỏc thực người dựng.
• Phõn tớch biểu đồ tuần tự quỏ trỡnh đăng nhập vào ứng dụng ở mỏy Client:
1.Người dựng bật ứng dụng ở mỏy client, cắm thẻ Bio-Etoken, cắm Biometrika vào mỏy client và gửi yờu cầu đăng nhập đến. Để sử dụng được thẻ người dựng phải cú mó số PIN.
2.Khi nhận được yờu cầu đăng nhập của người dựng, ứng dụng ở mỏy client sẽ thực hiện đọc thẻ Bio-Etoken để lấy được đặc trưng sinh trắc của người dựng đó được lưu trong thẻ, sử dụng hàm ReadToken().
3.Ứng dụng ở mỏy client sẽ thực hiện lấy đặc trưng sinh trắc sống của người dựng Capture biometrics().
4.Ứng dụng ở mỏy client thực hiện đối sỏnh đặc trưng sinh trắc sống vừa thu được với đặc trưng trắc sống lưu trong thẻ, sử dụng hàm Verify().
5.Nếu kết quả việc đối sỏnh đặc trưng sinh trắc là chớnh xỏc, thỡ ứng dụng ở mỏy client sẽ thực hiện đọc username và password lưu trong thẻ.
6.Ứng dụng ở mỏy client thực hiện so sỏnh username, password vừa đọc được và username, password lưu trong cơ sở dữ liệu, nếu kết quả trả so sỏnh là chớnh xỏc thỡ người dựng sẽ đăng nhập thành cụng vào ứng dụng ở mỏy client.
Bước 2: Giao dịch giữa Client và RA Application Server, RA Application Server và DB Server.
• Client gửi yờu cầu truy cập CSDL, Serial Number chứng thư của người dựng đăng nhập tại Client (SNcc), và ID của DB Server (IDs).
cũng sẽ kớ lờn nội dung đú bằng khúa riờng được lấy ra từ thẻ và gửi cả chữ kớ Sig đi
• RAAS giải mó, xỏc thực chữ kớ. Xem yờu cầu của Client và nú kiểm tra chứng thư của người dựng cũn hợp lệ khụng, kiểm tra xem người dựng cú được truy nhập vào CSDL hay khụng? Nếu mọi quyền đều cũn hiệu lực, RAAS sẽ gửi thụng bỏo tới Client.
• Sau đú RAAS sẽ sinh khúa phiờn gửi đến cho Client và DB Server (Khúa phiờn này được mó húa sử dụng khúa cụng khai của cỏc bờn nhận, như vậy chỉ khúa riờng của bờn nhận mới giải mó và lấy được khúa phiờn), đồng thời, nú cũng kớ lờn từng thụng điệp nú gửi đi. • Cuối cựng RAAS sẽ hủy khúa phiờn nú tạo ra sau khi 2 bờn đều đó
nhận được khúa.
Client RA Application Server DBServer
1 : CreateLoginRequest() 2 : Sign() 3 : RemoteLoginRequest() 4 : VerifySignature() 5 : CheckCredential() 6 : OK 7 : GenerateSessionKey() 8 : EncryptAndSign()
9 : Session key 10 : Session key
11 : DecryptAndVerify()
12 : DecryptAndVerify()
13 : DestroySessionKey()
• Phõn tớch biểu đồ tuần tự quỏ trỡnh phõn phối khúa phiờn:
1.Người dựng tạo một yờu cầu cần đăng nhập CSDL, nội dung của yờu cầu bao gồm: Request (một cỳ phỏp duy nhất được gửi đến RAAS, do người lập trỡnh quy định), Serial number của chứng thư người dựng, và ID của cơ sở dữ liệu cần truy cập, nếu hệ thống cú nhiều cơ sở dữ liệu.
2.Người dựng sử dụng khúa riờng của mỡnh để kớ lờn yờu cầu và gửi đến RAAS, sử dụng hàm RemoteLoginRequest().
3.RAAS sau khi nhận yờu cầu của người dựng sẽ thực hiện xỏc thực chữ kớ VerifySignature() và kiểm tra xem chứng thư của người dựng cú cũn hiệu lực hay khụng CheckCredential(). Nếu việc xỏc thực chữ kớ thành cụng và chứng thư của người dựng vẫn cũn hiệu lực thỡ RAAS sẽ gửi thụng bỏo đồng ý cho phộp người dựng truy cập vào CSDL.
4.RAAS sinh khúa phiờn GenerateSessionKey(),và thực hiện mó húa và kớ lờn khúa phiờn EncryptAndSign(), sau đú sẽ gửi sang cho Client và DB Server.
5.Client thực hiện xỏc thực chữ kớ của RAAS và giải mó để thu được khúa phiờn, sử dụng hàm DecryptAndVerify().
6.DB Server thực hiện xỏc thực chữ kớ của RAAS và giải mó để thu được khúa phiờn, sử dụng hàm DecryptAndVerify().
7.RAAS hủy khúa phiờn DestroySessionKey().
Bước 3: Giao dịch giữa Client và DB Server
•Sau khi nhận được khúa phiờn K, Client sẽ sử dụng khúa phiờn này để mó húa bản băm password h(s) và username đăng nhập vào CSDL, kớ lờn đú và gửi đến DB Server.
đăng nhập vào CSDL của người dựng, nếu hợp lệ nú sẽ gửi thụng bỏo OK tới Client và quỏ trỡnh trao đổi dữ liệu bắt đầu. Sau khi kết thỳc quỏ trỡnh trao đổi dữ liệu DB Server sẽ hủy khúa phiờn vừa sử dụng. Client DBServer 1 : SSLConnect() 2 : ConnectOK 3 : CreateLoginRequest() 4 : EncryptBySessionKey() 5 : Sign() 6 : Login() 7 : Verify() 8 : DecryptBySessionKey() 9 : CheckCredential() 10 : LoginOK
Hỡnh 1.23 Biểu đồ tuần tự quỏ trỡnh đăng nhập CSDL • Phõn tớch biểu đồ tuần tự quỏ trỡnh đăng nhập CSDL:
1.Client thiết lập kờnh mật SSL với DBServer để thực hiện truyền dữ liệu, SSLConnect().
2.Sau khi việc thiết lập kờnh mật thành cụng, Client sẽ tiến hành mó húa đối xứng bản băm của password và username sử dụng khúa phiờn do RAAS gửi sang, sử dụng hàm EncryptBySessionKey(), và thực hiện kớ số Sign(). Sau đú Client sẽ gửi yờu cầu đăng nhập đó được mó húa và kớ số sang cho DB Server, sử dụng hàm Login(). 3.DB Server thực hiện xỏc thực chữ kớ của Client, Verify().
4.DB Server giải mó yờu cầu đăng nhập của Client sử dụng khúa phiờn do RAAS gửi sang, DecryptBySessionKey(). Sau đú DB Server tiến
hành so sỏnh thụng tin đăng nhập DB Server do người dựng gửi đến và thụng tin lưu trong CSDL. Nếu kết quả so sỏnh là chớnh xỏc, DB Server gửi thụng bỏo đăng nhập DB Server thành cụng tới Client. Kết hợp cỏc quỏ trỡnh này ta cú biểu đồ tuần tự quỏ trỡnh kiểm soỏt truy cập mạng như hỡnh (1.24).
Client : User
RA Application Server DB Server 1 : Remote login() 2 : ReadToken() 3 : Bio-EToken 4 : Capture biometrics() 5 : Biometrics 6 : Verify() 7 : GetCredential() 8 : Username, password 9 : CreateLoginRequest() 10 : Sign() 11 : RemoteLoginRequest() 12 : Verify() 13 : CheckCredential() 14 : GenerateSessionKey() 15 : EncryptAndSign() 16 : Session key 17 : Session key 18 : DecryptAndVerify() 19 : DecryptAndVerify() 20 : DestroySessionKey() 21 : SSLConnect() 22 : ConnectOK 23 : CreateLoginRequest() 24 : EncryptBySessionKey() 25 : Sign() 26 : Login() 27 : Verify() 28 : DecryptBySessionKey() 29 : CheckCredential() 30 : LoginOK 31 : LoginOK