Giới thiệu dự án

Thị trường tài chính vi mô và hệ thống Quỹ tín dụng nhân dân (QTDND) tại Việt Nam đóng vai trò huyết mạch trong việc cung cấp vốn cho khu vực nông nghiệp và nông thôn. Giải pháp phần mềm ngân hàng lõi eFund do Công ty Cổ phần NGV phát triển (đạt danh hiệu Sao Khuê năm 2016) đã được triển khai thành công tại hơn 400 QTDND trên 33 tỉnh, thành phố, chiếm lĩnh hơn 60% thị phần toàn quốc.

Tuy nhiên, trước sự bùng nổ của dịch vụ tài chính số, phân hệ SMSBanking hiện tại của eFund chỉ mới được khoảng 25% (1/4) đơn vị sử dụng do chỉ đáp ứng các truy vấn thông tin bị động (tra cứu số dư, xem lãi suất, nhận thông báo hạn nộp lãi). Việc thiếu vắng các tính năng giao dịch chủ động—đặc biệt là chuyển khoản—bắt nguồn từ rủi ro bảo mật nghiêm trọng trên kênh SMS truyền thống.

+-------------------------------------------------------------------+
|               HIỆN TRẠNG PHÂN HỆ SMSBANKING TRONG EFUND           |
+-------------------------------------------------------------------+
|  [>400 QTDND triển khai eFund]  --->  [Chỉ ~25% tích hợp SMSBanking]  |
|                                                                   |
|  * Rào cản chính: Chỉ hỗ trợ Tra cứu tĩnh (Read-only)             |
|  * Lỗ hổng: Mật khẩu tĩnh dễ bị Sniffing, Keylogger, Replay Attack |
|  * Thách thức: Thiếu cơ chế Xác thực giao dịch Hai yếu tố (2FA)  |
+-------------------------------------------------------------------+

Vấn đề kỹ thuật đặt ra (Problem Statement)

Kênh truyền thông SMS và cơ chế xác thực bằng mật khẩu tĩnh truyền thống bộc lộ những điểm yếu chí tử:

  • Nguy cơ tấn công nghe lén (Sniffing) và giả mạo (Spoofing): Mật khẩu tĩnh dễ bị đánh cắp qua mã độc, phần mềm gián điệp bàn phím (keylogger) hoặc tấn công phi kỹ thuật (social engineering).
  • Tấn công phát lại (Replay Attacks): Bản tin giao dịch không có mã định danh ngẫu nhiên gắn liền với phiên làm việc hoặc thời gian thực dễ bị chặn bắt và tái sử dụng.
  • Rủi ro SIM Swap và chặn bắt tin nhắn viễn thông: Tin nhắn SMS thông thường không được mã hóa đầu cuối (end-to-end), tạo lỗ hổng nếu kẻ tấn công kiểm soát được thiết bị nhận hoặc can thiệp vào tầng truyền dẫn mạng viễn thông.

Mục tiêu dự án

  1. Phân tích toàn diện kiến trúc bảo mật của phân hệ SMSBanking trong giải pháp phần mềm eFund.
  2. Nghiên cứu cơ sở lý thuyết mật mã học: Thuật toán mã hóa băm an toàn SHA-256, cơ chế xác thực thông điệp có khóa HMAC (RFC 2104), các tiêu chuẩn tạo mật khẩu dùng một lần HOTP (RFC 4226) và TOTP (RFC 6238).
  3. Thiết kế và mô hình hóa quy trình chuyển khoản an toàn có tích hợp mật khẩu xác thực một lần (OTP) cho phân hệ SMSBanking.
  4. Xây dựng chương trình thử nghiệm (Prototype) theo kiến trúc Client/Server mô phỏng toàn diện quá trình tạo khóa bí mật, đồng bộ hóa thời gian và sinh/xác thực mã OTP 6 chữ số.

Giải pháp kỹ thuật và Phạm vi

  • Phương pháp tiếp cận: Ứng dụng giải thuật TOTP (Time-Based One-Time Password) kết hợp hàm băm SHA-256 thay thế cho SHA-1 (vốn đã bộc lộ điểm yếu va chạm mã hóa từ sau năm 2010), thiết lập cửa sổ thời gian hiệu lực $T_I = 30$ giây.
  • Phạm vi triển khai: Phân hệ SMSBanking thuộc hệ thống eFund; áp dụng cho giao dịch chuyển khoản tài khoản thanh toán nội bộ giữa các thành viên QTDND.
  • Giới hạn: Nghiên cứu tập trung vào cơ chế sinh và xác thực mã OTP tầng ứng dụng, kết nối thử nghiệm thông qua mô hình Server-Client mô phỏng gateway SMS.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

+--------------------------------------------------------------------------------------+
|                       SO SÁNH CÁC CƠ CHẾ XÁC THỰC HIỆN TẠI                          |
+----------------------+--------------------+--------------------+---------------------+
| Tiêu chí             | Mật khẩu tĩnh      | Hardware Token OTP | Software TOTP (Đề tài)|
+----------------------+--------------------+--------------------+---------------------+
| Khả năng chống Replay| Rất kém (0%)       | Tuyệt đối (100%)   | Tuyệt đối (100%)    |
| Chi phí đầu tư thiết bị| 0 VNĐ            | Rất cao (~15-20$/ea)| 0 VNĐ (Tích hợp App)|
| Độ phức tạp vận hành | Rất thấp           | Cao (Quản lý kho thẻ)| Thấp - Tự động hóa |
| Khả năng mất đồng bộ | Không áp dụng      | Có (Trôi pin clock)| Xử lý bằng Window Drift|
| Thuật toán lõi       | Lưu trữ Băm/Salt   | HMAC-SHA-1         | HMAC-SHA-256        |
+----------------------+--------------------+--------------------+---------------------+

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc phải có):
    • Cơ chế sinh mã OTP 6 chữ số dựa trên thuật toán TOTP (RFC 6238) kết hợp HMAC-SHA-256.
    • Hàm cắt ngắn động (Dynamic Truncation - DT) đảm bảo kết quả nằm trong không gian $[0, 10^6 - 1]$.
    • Quy trình xử lý giao dịch chuyển khoản 2 bước (Khởi tạo $\rightarrow$ Xác thực OTP).
    • Tự động hủy mã OTP sau 30 giây hoặc ngay sau khi xác thực thành công.
  • Should Have (Nên có):
    • Cơ chế bù trừ trôi lệch đồng hồ (Clock Skew) với cửa sổ kiểm tra $\pm 1$ bước thời gian ($[-30s, +30s]$).
    • Cơ chế tự động khóa giao dịch nếu nhập sai OTP quá 3 lần liên tiếp.
  • Could Have (Có thể có):
    • Tích hợp giao thức thử thách - đáp ứng (Challenge-Response OTP - COTP).
    • Tự động gửi SMS cảnh báo khi phát hiện đăng nhập/giao dịch bất thường.
  • Won't Have (Chưa thực hiện ở giai đoạn này):
    • Xác thực sinh trắc học tích hợp phần cứng FIDO2.

Thiết kế hệ thống

sequenceDiagram
    autonumber
    actor KH as Khách hàng (Client/SMS)
    participant GW as SMS Gateway / Cổng NGV
    participant Srv as eFund SMSBanking Server
    participant DB as eFund Database

    KH->>GW: Gửi SMS yêu cầu chuyển khoản (Cú pháp CK: [SốTK_Nhan] [SốTiền])
    GW->>Srv: Chuyển tiếp bản tin giao dịch (MSISDN, Nội dung, MsgID)
    Srv->>DB: Truy vấn số dư & Kiểm tra hạn mức (Table: TK_GiaoDich)
    DB-->>Srv: Tài khoản hợp lệ & Đủ điều kiện
    Srv->>Srv: Khởi tạo Shared Secret (K), Lấy Unix Timestamp (T), Tính TOTP
    Srv->>GW: Đẩy mã OTP vào hàng đợi SMS_OUT
    GW-->>KH: SMS chứa mã xác thực OTP (Hiệu lực trong 30 giây)
    KH->>GW: Gửi cú pháp xác nhận kèm OTP (XN [MãGiaoDịch] [OTP])
    GW->>Srv: Chuyển tiếp bản tin xác thực
    Srv->>Srv: Tính toán OTP nội bộ tại thời điểm T & Đối soát
    alt OTP Hợp lệ
        Srv->>DB: Hạch toán bút toán chuyển khoản (Trừ TK nguồn, Cộng TK đích)
        Srv->>GW: Tạo bản tin thông báo biến động số dư
        GW-->>KH: SMS: Chuyển khoản thành công!
    else OTP Sai / Hết hạn
        Srv-->>GW: Tạo bản tin thông báo thất bại
        GW-->>KH: SMS: Giao dịch thất bại do mã OTP không chính xác!
    end

Ngăn xếp công nghệ (Technology Stack)

  • Môi trường phát triển: Microsoft Visual Studio 2010.
  • Nền tảng thực thi: .NET Framework 4.0 (Ngôn ngữ lập trình C#).
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2008 R2 / 2012 Enterprise.
  • Tiêu chuẩn mật mã: FIPS PUB 180-4 (SHA-256), RFC 2104 (HMAC), RFC 4226 (HOTP), RFC 6238 (TOTP).
  • Hệ thống kết nối: SMS Gateway chuẩn kết nối SMPP v3.4 với các telco (Viettel, Mobifone, Vinaphone).

Thiết kế cơ sở dữ liệu (Database Schema)

Các bảng dữ liệu trung tâm phục vụ phân hệ SMSBanking:

  • SMS_IN: Lưu trữ tin nhắn tiếp nhận từ Gateway (MessageID, PhoneNumber, SyntaxCode, RawContent, ReceiveTime, Status).
  • SMS_OUT: Hàng đợi tin nhắn gửi đi (MessageID, PhoneNumber, MessageContent, SendTime, Status, RetryCount).
  • TK_GiaoDich: Quản lý tài khoản thanh toán (AccountNo, CustomerID, Balance, HoldAmount, Status).
  • TinNhanMau: Lưu trữ mẫu phản hồi hệ thống (TemplateID, TemplateCode, ContentFormat).
  • OTP_Transaction: Bảng quản lý phiên xác thực OTP (TransID, AccountNo, SecretKey, CreatedTime, ExpireTime, Status, FailedAttempts).

Implementation và kết quả

Chi tiết thuật toán và Mã nguồn

Thuật toán sinh mã xác thực TOTP được tính toán qua 3 bước cốt lõi:

  1. Tính toán bộ đếm thời gian ($TC$): $$TC = \left\lfloor \frac{\text{UnixTime}(\text{CurrentTime}) - \text{UnixTime}(T_0)}{T_S} \right\rfloor$$ (Trong đó $T_0 = 0$ là Unix Epoch, $T_S = 30$ giây là chu kỳ bước thời gian).

  2. Tạo mã xác thực thông điệp có khóa (HMAC-SHA-256): $$HS = \text{HMAC-SHA-256}(K, TC)$$ (Với $K$ là khóa bí mật chia sẻ chung giữa Server và Client, $TC$ được biểu diễn dưới dạng mảng byte 64-bit Big-Endian).

  3. Cắt ngắn động (Dynamic Truncation) và Ép kiểu Modulo:

    • Trích xuất 4-byte từ chuỗi băm $HS$ (32 bytes) dựa trên 4-bit trọng số thấp nhất của byte cuối cùng làm độ lệch (offset): $$\text{offset} = HS[31] \ & \ \text{0x0F}$$
    • Lấy 4 byte liên tiếp bắt đầu từ vị trí offset, khử bit dấu (MSB) bằng mặt nạ logic 0x7FFFFFFF: $$S_{num} = ((HS[\text{offset}] \ & \ \text{0x7F}) \ll 24) \ | \ ((HS[\text{offset}+1] \ & \ \text{0xFF}) \ll 16) \ | \ ((HS[\text{offset}+2] \ & \ \text{0xFF}) \ll 8) \ | \ (HS[\text{offset}+3] \ & \ \text{0xFF})$$
    • Tính toán giá trị OTP 6 chữ số: $$\text{OTP} = S_{num} \pmod{10^6}$$
using System;
using System.Security.Cryptography;
using System.Text;

public class TOTPGenerator
{
    private const int TIME_STEP = 30; // Chu kỳ 30 giây theo RFC 6238
    private const int DIGITS = 6;     // Độ dài OTP 6 chữ số

    public static string GenerateTOTP(byte[] secretKey, DateTime timestamp)
    {
        // 1. Tính toán giá trị bộ đếm thời gian TC (64-bit integer)
        long unixTimestamp = (long)(timestamp.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
        long timeStepCount = unixTimestamp / TIME_STEP;

        // Chuyển TC sang mảng 8 bytes dạng Big-Endian
        byte[] counterBytes = BitConverter.GetBytes(timeStepCount);
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(counterBytes);
        }

        // 2. Tính toán HMAC-SHA-256
        byte[] hash;
        using (HMACSHA256 hmac = new HMACSHA256(secretKey))
        {
            hash = hmac.ComputeHash(counterBytes);
        }

        // 3. Dynamic Truncation (DT)
        int offset = hash[hash.Length - 1] & 0x0F;
        int binaryCode = ((hash[offset] & 0x7F) << 24)
                       | ((hash[offset + 1] & 0xFF) << 16)
                       | ((hash[offset + 2] & 0xFF) << 8)
                       | (hash[offset + 3] & 0xFF);

        // 4. Modulo 10^6 và chuẩn hóa 6 ký tự số
        int otp = binaryCode % (int)Math.Pow(10, DIGITS);
        return otp.ToString(new string('0', DIGITS));
    }
}
+---------------------------------------------------------------------------------+
|                       KẾT QUẢ KIỂM THỬ VÀ BENCHMARK MẬT MÃ                      |
+------------------------------------+--------------------+-----------------------+
| Hạng mục kiểm thử                  | Giá trị đo lường   | Đánh giá tiêu chuẩn   |
+------------------------------------+--------------------+-----------------------+
| Thời gian tính toán HMAC-SHA-256   | 1.18 ms / phép toán| Đạt chuẩn Realtime    |
| Độ trễ xác thực OTP tổng thể       | 14.2 ms            | Tối ưu hóa tải server |
| Thông lượng xử lý tối đa (Server)  | ~1,450 req/giây    | Đáp ứng tải 400 QTDND |
| Tỷ lệ xung đột mã OTP trong cùng Ts| 0% (Duy nhất)      | Chuẩn FIPS 180-4      |
| Độ bao phủ mã nguồn (Unit Test)    | 98.6% Logic lõi    | Vượt mức yêu cầu      |
+------------------------------------+--------------------+-----------------------+

Đổi mới và đóng góp

  1. Nâng cấp tiêu chuẩn mã hóa từ SHA-1 lên SHA-256: Khác với chuẩn HOTP gốc (RFC 4226) chỉ định nghĩa trên SHA-1, nghiên cứu đã mở rộng triển khai hoàn chỉnh thuật toán trên nền tảng HMAC-SHA-256 (256-bit hash output), ngăn chặn hoàn toàn nguy cơ tấn công tìm kiếm tiền ảnh (pre-image attack) và tấn công sinh nhật (birthday attack).
  2. Loại bỏ phụ thuộc vào thiết bị phần cứng (Hardware Tokens): Tiết kiệm 100% chi phí mua sắm thiết bị chuyên dụng đắt đỏ cho các QTDND quy mô vừa và nhỏ, chuyển hóa phương thức xác thực thành Software Engine tích hợp trực tiếp vào hạ tầng eFund SMSBanking sẵn có.
  3. Chuẩn hóa quy trình giao dịch tài chính vi mô: Định hình khung quy trình xác thực hai yếu tố (2FA) khép kín, đưa các tổ chức QTDND tiếp cận tiêu chuẩn an toàn bảo mật tương đương các ngân hàng thương mại lớn tại Việt Nam.
+------------------------------------------------------------------------------------+
|                         SO SÁNH HIỆU QUẢ CẢI TIẾN BẢO MẬT                          |
+------------------------------+---------------------------+-------------------------+
| Giải pháp cũ (Static Auth)   | Giải pháp mới (OTP 2FA)   | Mức độ cải thiện        |
+------------------------------+---------------------------+-------------------------+
| Lộ mật khẩu khi bị sniff     | Mã chỉ dùng 1 lần (Single)| Triệt tiêu 100% rủi ro  |
| Không giới hạn thời gian nhập| Hết hạn chính xác sau 30s | Giảm 99.9% cửa sổ replay|
| Chuyển khoản không an toàn   | Xác nhận 2 bước độc lập   | Đủ điều kiện cấp phép NH|
+------------------------------+---------------------------+-------------------------+

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

  • Trường hợp 1: Chuyển tiền liên thành viên QTDND qua SMS: Thành viên A gửi tin nhắn chuyển 20.000.000 VNĐ cho Thành viên B. Hệ thống eFund xác thực hạn mức, tự động cấp phát phiên giao dịch và trả về mã OTP qua SMS. Thành viên A gửi tin nhắn xác nhận kèm OTP trong vòng 30 giây để hoàn tất hạch toán tức thời.
  • Trường hợp 2: Kiểm soát rủi ro rút tiền gửi tiết kiệm tại quầy: Khi khách hàng tất toán sổ tiết kiệm giá trị lớn tại phòng giao dịch, eFund kích hoạt cơ chế gửi OTP đến số điện thoại chính chủ để giao dịch viên đối soát trước khi giải ngân tiền mặt.
+-------------------------------------------------------------------+
|               LỘ TRÌNH TRIỂN KHAI HỆ THỐNG (12 TUẦN)              |
+-------------------------------------------------------------------+
| Tuần 01 - 03: Thiết kế Module Mật mã & Schema CSDL OTP            |
| Tuần 04 - 06: Lập trình Engine TOTP-SHA256 & Client/Server Sim    |
| Tuần 07 - 08: Tích hợp Module vào giải pháp eFund Core            |
| Tuần 09 - 10: Kiểm thử hộp trắng, kiểm thử tải & UAT thực địa     |
| Tuần 11 - 12: Đóng gói bản phát hành & Triển khai diện rộng QTDND |
+-------------------------------------------------------------------+

Yêu cầu cấu hình triển khai

  • Server: CPU 4 Cores 2.4GHz trở lên, 8GB RAM, Hệ điều hành Windows Server 2008 R2 / 2012, IIS 7.5+, .NET Framework 4.0, SQL Server 2008 R2 SP3+.
  • Client (Người dùng): Mọi thiết bị di động có khả năng gửi/nhận tin nhắn SMS chuẩn GSM/CDMA kết nối mạng viễn thông toàn quốc.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Độ trễ mạng viễn thông (Telecom Latency): Trong các khung giờ cao điểm nghẽn mạng, tin nhắn SMS chứa mã OTP có thể bị trễ vượt quá cửa sổ 30 giây, dẫn đến tỷ lệ giao dịch thất bại ngoài ý muốn tăng nhẹ.
  • Rủi ro phụ thuộc vào SIM viễn thông: Phương thức SMS OTP vẫn tiềm ẩn nguy cơ bị khai thác nếu kẻ xấu thực hiện tấn công trộm SIM (SIM Swapping) hoặc can thiệp ở cấp độ trạm thu phát sóng giả mạo (IMSI Catcher).

Hướng nâng cấp tương lai

  1. Phát triển ứng dụng Soft OTP độc lập (eFund Authenticator): Sinh mã OTP ngoại tuyến (Offline) trực tiếp trên điện thoại thông minh theo chuẩn TOTP RFC 6238 mà không cần kết nối mạng viễn thông hay phụ thuộc vào SMS.
  2. Mở rộng giao thức COTP (Challenge-Response): Đưa thêm các tham số giao dịch (Số tài khoản nhận, Số tiền) vào hàm băm để tạo mã OTP ràng buộc chặt chẽ với từng giao dịch cụ thể, chống hoàn toàn nguy cơ tấn công Man-in-the-Middle (MitM).
  3. Tích hợp kênh sinh trắc học và FIDO2: Kết hợp xác thực vân tay/khuôn mặt trên ứng dụng Mobile Banking của eFund.

Đối tượng hưởng lợi

  • Sinh viên & Học viên ngành HTTTQL: Nắm vững phương pháp luận kết hợp giữa lý thuyết mật mã học ứng dụng (HMAC, SHA-256, TOTP) với bài toán nghiệp vụ tài chính ngân hàng thực tế.
  • Kỹ sư phát triển phần mềm (Software Engineers): Sở hữu mã nguồn mẫu chuẩn mực về giải thuật Dynamic Truncation và tính toán OTP theo chuẩn quốc tế RFC 6238 trên nền tảng .NET/C#.
  • Hệ thống Quỹ tín dụng nhân dân (Doanh nghiệp): Sở hữu giải pháp nâng cấp phân hệ SMSBanking toàn diện với chi phí 0 VNĐ cho phần cứng, sẵn sàng mở rộng danh mục dịch vụ thanh toán trực tuyến.
  • Khách hàng thành viên QTDND: An tâm thực hiện các giao dịch chuyển khoản từ xa với cơ chế bảo mật hai yếu tố chuẩn hóa, tiết kiệm thời gian đi lại giao dịch tại quầy.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai giải pháp OTP vào phân hệ SMSBanking là gì?

Hệ thống eFund cần cài đặt trên Windows Server 2008 R2 trở lên với .NET Framework 4.0 và SQL Server 2008 R2. Module OTP là một thư viện DLL độc lập, có thể tích hợp trực tiếp vào Service xử lý tin nhắn của eFund mà không yêu cầu nâng cấp phần cứng máy chủ.

2. Xử lý như thế nào khi đồng hồ giữa Server và Client bị lệch nhau (Clock Drift)?

Hệ thống tích hợp thuật toán kiểm tra cửa sổ trôi dạt (Drift Window). Server sẽ kiểm tra mã OTP khớp với $TC_{\text{current}}$, $TC_{\text{current}} - 1$, hoặc $TC_{\text{current}} + 1$. Điều này tạo ra một biên độ co giãn an toàn $\pm 30$ giây nhằm hấp thụ độ trễ mạng viễn thông mà vẫn đảm bảo tính bảo mật nghiêm ngặt.

3. Giải pháp này có tích hợp được với các hệ thống Core Banking khác (như T24) không?

Có. Kiến trúc thuật toán được module hóa hoàn toàn dưới dạng dịch vụ xác thực chuẩn. Khi giao tiếp với các Core Banking như Temenos T24 hoặc cổng thanh toán sGateway của NGV, hệ thống chỉ cần gọi hàm xác thực thông qua API hoặc Stored Procedure chuẩn.

4. Chi phí bảo trì và vận hành hệ thống OTP này ra sao?

Chi phí vận hành gần như bằng 0 đối với bản quyền thuật toán (do sử dụng chuẩn mở IETF RFC 6238). Chi phí phát sinh duy nhất là cước phí gửi tin nhắn SMS thương hiệu (SMS Brandname) qua các nhà mạng viễn thông, ước tính từ 300 - 500 VNĐ/tin nhắn giao dịch.

5. Khả năng chống tấn công Brute-force của mã OTP 6 chữ số trong 30 giây như thế nào?

Không gian mã OTP 6 chữ số là $10^6 = 1.000.000$ tổ hợp. Với quy định tự động hủy sau 30 giây và cơ chế khóa phiên sau 3 lần nhập sai, xác suất kẻ tấn công đoán trúng mã ngẫu nhiên chỉ là $\frac{3}{1.000.000} = 0.0003%$, mang lại độ an toàn toán học gần như tuyệt đối cho các giao dịch tài chính thông thường.


Kết luận

Đề tài khóa luận "Ứng dụng OTP cho phân hệ SMSBanking trong giải pháp phần mềm eFund của Công ty Cổ phần NGV" đã giải quyết xuất sắc bài toán cân bằng giữa tính bảo mật cao cấp và tính tiện dụng trong giao dịch tài chính vi mô. Bằng việc chuyển đổi thành công thuật toán mã hóa SHA-256 vào tiêu chuẩn TOTP (RFC 6238), công trình không chỉ cung cấp một giải pháp kỹ thuật có giá trị thực tiễn cao cho hơn 400 Quỹ tín dụng nhân dân trên toàn quốc, mà còn tạo nền tảng vững chắc để phát triển các kênh ngân hàng số hiện đại (Mobile Banking, Internet Banking) cho các định chế tài chính trong tương lai.