Sử dụng Microsoft CAPICOM

Một phần của tài liệu Ứng dụng thiết bị Ikey 2000 để triển khai xác thực giao dịch HomeBanking (Trang 56)

2.5.1 Giới thiệu thư viện Microsoft CAPICOM

CAPICOM là một thư viên COM Microsoft® ActiveX® cung cấp các giao diện để làm việc một cách dễ dàng với CryptoAPI. CAPICOM bao gồm một tập hợp các hàm cho phép người phát triển ứng dụng dễ dàng tích hợp các chức năng chữ ký số và mã hoá vào ứng dụng. Bởi vì CAPICOM được xây dựng trên mô hình COM nên được sử dụng dễ dàng trong các các môi trường như Visual Basic, Visual basic Script, ASP, C++…CAPICOM được đóng gói như một ActiveX cho phép tích hợp vào trang các ứng dụng Web thuận tiện

CAPICOM có thể được sử dụng trong các việc sau:

 Tạo chữ ký điện tử sử dụng thẻ thông minh (Smart card) hoặc khoá mềm

 Kiểm tra chữ ký điện tử

 Hiển thị thông tin về chứng chỉ

 Kiểm tra các thuộc tính như tên, hoặc ngày hết hạn

 Mã hoá, giải mã dữ liệu sử dụng khoá

 Mã hoá, giải mã dữ liệu sử dụng khoá công khia và chứng chỉ

2.5.2 Ký dữ liệu và kiểm tra chữ ký số

CAPICOM có thể sử dụng để ký điện tử sử dụng chứng chỉ số do các CA như Verisign, Microsoft® Windows® 2000 PKI. CAPICOM dùng privatekey được lưu trong phần mềm, hoặc trên Smartcard, USB token. Người sử dụng có thể lựa chon chứng chỉ số thích hợp để ký. Hình sau mô tả người sử dụng lựa chọn chứng chỉ số để ký.

2.5.3 CAPICOM cho phép 1 người sử dụng ký hoặc nhiều người ký trên một văn bản. Dữ liệu sau khi ký được lưu dưới dạng PKCS#7. Vì lưu dưới dạng PKCS#7 là chuẩn công nghiệp nên chữ ký được tạo ra bởi CAPICOM có thể được xác thực bởi các PKI của hãng thứ ba.

Sau đây là một ví dụ bằng Visual basic mô tả hàm ký dữ liệu Private Sub SignData_Click()

Dim sd As New SignedData sd.Content = Text1.Text Text2.Text = sd.Sign End Sub

2.5.4 Mã hoá dữ liệu

CAPICOM còn được sử dụng để mã hoá dữ liệu vì CAPICOM được kế thừa từ CryptoAPI. CAPICOM hỗ trợ các thuật toán mã hoá sau:

 RC2  RC4  DES  Triple DES

Đoạn mã sau mô tả hàm mã hoá dữ liệu sử dụng thuật toán DES Private Sub Encrypt_Click()

Dim ed As New EncryptedData ed.Content = Text1.Text

ed.SetSecret "secret"

ed.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_DES Text2.Text = ed.Encrypt

End Sub

Chƣơng 3 - XÂY DỰNG HỆ THỐNG XÁC THỰC GIAO DỊCH HOMEBANKING

3.1 Mục tiêu, yêu cầu của hệ thống xác thực giao dịch

 Đảm bảo tính toàn vẹn (intergrity) cho dữ liệu: xác định được dữ liệu bị thay đổi nội dung sau khi được phát hành trong mỗi giao dịch (transaction) hoặc sự thay đổi nội dung trong quá trình lưu trữ.

 Đảm bảo tính chống từ chối (non-repudiation): người tham gia giao dịch sẽ không chối bỏ được thông tin đã được đưa vào giao dịch

 Đảm bảo tính xác thực (authentication) của các cá nhân tham gia giao dịch: tránh việc giả mạo, mạo danh khi giao dịch

 Đảm bảo tính bí mật (confidentiality) của giao dịch bằng cách mã hoá sử dụng PKI.

 Có một hạ tầng thống nhất, thuận tiện và an toàn trong việc cấp phát, thu hồi và quản trị khoá mã.

3.1.1 Thiết kế tổng thể hệ thống xác thực giao dịch HomeBanking Dialup Dialup Microsoft CA/LDAP BIDV Gateway Firewall 1 Firewall 2 Core banking

Công ty chứng khoán BIDV

CoreBanking Firewall 3 BIDV Gateway Web browser Leased Lin e 256 K bps Firewall 2 Ikey 2032 Web browser Ikey 2032 Web browser Ikey 2032 BIDV Branch Ikey 2032 BIDV Branch Ikey 2032

Hình 24 Kiến trúc tổng thể hệ thống xác thực giao dịch HomeBanking

Thành phần CA: Microsoft certificate service là thành phần chính của hệ thống. Thực hiện các chức năng:

 Tạo chứng chỉ số cho người dùng, ứng dụng (xác thực cho các khoá công khai)

 Bảo trì cơ sở dữ liệu hệ thống, cho phép phục hồi các cặp khoá người dùng

 Buộc hệ thống tuân thủ các thủ tục bảo mật

 Bổ sung người dùng (xác thực chứng chỉ người dùng)

 Quản lý người dùng và chứng chỉ của họ

 Quản lý chính sách bảo mật

 Xây dựng cây xác thực

Thành phần LDAP: Microsoft Active Directory. Lưu trữ toàn bộ về Cơ sở dữ liệu người sử dụng:

 Quản lý cấp phát người sử dụng

 Dịch vụ xác thực người sử dụng

Thành phần Application Server(máy chủ ứng dụng):Sử dụng IBM Websphere Application Server.

 Là máy chủ WEB cài đặt ứng dụng HomeBanking

 Khách hàng truy nhập vào máy chủ để thực hiện các giao dịch với NH.

 Sử dụng cơ chế mã hoá SSL giữa các phiên làm việc

Thành phần Cơ sở dữ liệu:Sử dụng Oralce Database.

 Là máy chủ CSDL lưu trữ toàn bộ dữ liệu của hệ thống.

Thành phần Corebanking:

 Là hệ thống ngân hàng cốt lõi, lưu trữ dữ liệu về tài khoản khách hàng.

 Hệ thống HomeBanking giao tiếp với Corebanking qua hệ thống message theo định dạng ABCS, MBASE.

3.1.2 Bảo mật bằng tường lửa (firewall)

Toàn bộ hệ thống xử lý giao dịch trực tuyến được đặt trong nội bộ phía ngân hàng. Kết nối với mạng thông tin toàn cầu để khách hàng có thể truy cập thông qua một tường lửa. Tường lửa sẽ đóng vai trò kiểm soát thông tin. Chỉ cho phép các thông tin truyền trên cổng 80(HTTP) và 443 (SSL) được đi ra ngoài hệ thống.

Chặn mọi luồng thông tin vào/ra mà có địa chỉ nằm trong danh sách “đen” – danh sách những địa chỉ nghi ngờ hoặc các địa chỉ đã từng có hành động phá hoại hay thăm dò hệ thống BIDV Home Banking.

Chặn các truy cập trái phép từ các máy có địa chỉ thuộc danh sách đen.

Khách hàng sử dụng dịch vụ BIDV Internet Banking chỉ được phép truy cập đến máy chủ Web của hệ thống bằng giao thức https thông qua cổng 9443, không được truy cập đến các máy khác trong mạng Intranet của BIDV bằng bất cứ giao thức truy cập nào. Sơ đồ kết nối vật lý các thành phần của hệ thống BIDV Home Banking

3.1.3 Bảo mật tầng kết nối và xác thực người sử dụng

Sử dụng giao thức bảo mật SSL 128 bit để mã hoá thông tin trên đường truyền từ khách hàng đến ngân hàng. Việc sử dụng SSL sẽ đảm bảo tính toán vẹn của dữ liệu

trong suốt phiên truyền thông. Mọi thông tin truyền nhận giữa ngân hàng và khách hàng đều được mã hoá trên đường truyền bằng cách sử dụng giao thức truy cập SSL và HTTP-S. Bằng cách này đảm bảo mọi thông tin truyền nhận giữa ngân hàng và khách hàng không bị một kẻ thứ 3 khai thác hay sửa đổi.

 Đường truyền được mã hoá theo chuẩn SSL 128 bit, đây là chuẩn thông dụng dùng cho các giao dịch thương mại điện tử

 Sử dụng cơ chế mã hóa dựa trên cơ sở hạ tầng khoá công khai PKI

 Sử dụng chữ ký điện tử để xác thực người gửi

 Sử dụng mã hoá envelope là sự kết hợp của mã hoá công khai RSA và mã hoá bí mật 3DES để chống xem trộm thông tin.

 Sử dụng Microsoft CA để cấp chứng chỉ số dùng cho cơ sở hạ tầng khoá công khai

3.1.3.1 Giao thức truyền nhận an toàn SSL

SSL đảm bảo kết nối giữa máy trạm của khách hàng và máy chủ ứng dụng của ngân hàng an toàn, tin cậy. Quá trình mã hoá/ giải mã diễn ra tự động và trong suốt với người dùng. Khi trình duyệt trên máy của khách hàng yêu cầu một kết nối tới máy chủ ứng dụng của ngân hàng, máy chủ gửi một thông điệp trở lại cho trình duyệt và 2 phía xác định và chọn 1 chuẩn mã hoá mà cả 2 phía có thể hỗ trợ. Tiếp theo trình duyệt phía khách hàng yêu cầu máy chủ đưa ra một chứng chỉ số để chứng thực là trình duyệt kết nối đến đúng máy chủ yêu cầu. Máy chủ sẽ gửi lại cho trình duyệt một chứng chỉ số để trình duyệt kiểm tra dựa vào khoá công khai của chứng chỉ đó đã được lưu trong trình duyệt. Cơ chế SSL dùng cả 2 loại mã hoá là đối xứng và bất đối xứng để truyền dữ liệu. Vì mã hoá đối xứng có ưu điểm là tốc độ mã hoá/ giải mã nhanh, kích thước dữ liệu sau mã hoá không lớn nên tốc độ truyền nhận sẽ nhanh hơn. Tuy nhiên nhược điểm của mã hoá đối xứng là cả 2 bên đều dùng chung một khoá nên nếu dùng lâu dài rất dễ bị một kẻ thứ ba bẻ được khoá. Còn mã hoá bất đối xứng có ưu điểm là mỗi bên sẽ dùng một khoá riêng theo cặp để gửi và nhận thông tin nhưng tốc độ mã hoá/ giải mã chậm, kích thước dữ liệu sau mã hoá lớn ảnh hưởng đến tốc độ truyền/nhận. SSL đã tận dụng ưu điểm của cả 2 phương pháp và giảm thiểu nhược điểm của cả 2 phương pháp gây ra đối với quá trình truyền nhận đó là sử dụng khoá phiên. Khi bắt đầu một phiên truyền nhận dữ liệu trình duyệt phía khách hàng sẽ tự động sinh ra một khoá đối xứng và mã hoá khoá này bằng khoá công khai của CA của máy chủ rồi gửi đến máy chủ. Máy chủ nhận được sẽ sử dụng riêng để giải mã và lấy khoá đối xứng. Sau đó quá trình truyền nhận giữa máy chủ và trình duyệt sẽ được mã hoá bằng khoá đối xứng mà 2 bên cùng có. Khi phiên giao dịch kết thúc khoá phiên sẽ bị loại bỏ hoàn toàn và ko tái sử dụng cho các phiên tiếp theo. Đến phiên giao dịch sau 2 bên lại sử dụng một khoá phiên mới. Như vậy là khoá đối xứng chỉ tồn tại trong khoảng thời gian ngắn của phiên giao dịch và đảm bảo một kẻ thứ 3 không kịp bẻ khoá đó. SSL có 2 độ dài là 40 bits và 128 bits, đó là độ dài của khoá phiên. Thuật toán mã hoá có thể là DES hoặc RSA.

3.1.3.2 Giao thức truyền siêu văn bản an toàn (s- http)

S-Http là một mở rộng của HTTP hoạt động ở tầng ứng dụng. Ngoài việc cung cấp một giao thức truyền tin an toàn nó còn cung cấp công cụ nhằm xác thực máy khách/chủ, mã hoá thông tin và chống chối bỏ việc gửi tin và đảm bảo tính toàn vẹn dữ liệu. S-Http thiết lập phiên giao dịch an toàn khách với SSL. Trong khi SSL tiến hành “bắt tay” giữa 2 máy thì S-Http thiết lập chi tiết an toàn thông qua phần đầu (header) của gói đặc biệt. Header định nghĩa kiểu kỹ thuật an toàn, cụ thể là mã khoá riêng, xác thực máy chủ, xác thực máy khách và đảm bảo tính toàn vẹn dữ liệu. Header cũng qui định thuật toán nào máy khách/ máy chủ hỗ trợ hay cả 2 máy hỗ trợ, kỹ thuật nào được sử dụng, đặc tính nào được chọn lựa. Một khi phiên giao dịch an toàn được thiết lập, mọi thông tin trao đổi đều được đóng

kín (secure envelope), mọi thông tin đều được mã hoá, không ai có thể xem trộm được, cũng không ai có thể sửa được vì bất kỳ một sửa đổi nào cũng đều bị phát hiện đồng thời cũng đảm bảo người gửi/nhận.

3.1.4 Xác thực giao dịch với chứng chỉ số, chữ ký điện tử

Chứng chỉ số là một tệp tin điện tử dùng để xác minh danh tính một cá nhân, một máy chủ, một công ty... trên Internet. Chứng chỉ số cũng vậy, do một tổ chức đứng ra chứng nhận những thông tin của bạn là chính xác, được gọi là Nhà cung cấp chứng thực số (Certificate Authority, viết tắt là CA). CA phải đảm bảo về độ tin cậy, chịu trách nhiệm về độ chính xác của chứng chỉ số mà mình cấp.

Trong chứng chỉ số có ba thành phần chính: • Thông tin cá nhân của người được cấp

• Khoá công khai (Public key) của người được cấp • Chữ ký số của CA cấp chứng chỉ

Trong các hệ thống quản lý chứng thực số đang hoạt động trên thế giới, Nhà cung cấp chứng thực số (Certificate authority - CA) là một tổ chức chuyên đưa ra và quản lý các nội dung xác thực bảo mật trên một mạng máy tính, cùng các khoá công khai để mã hoá thông tin. Là một phần trong Cơ sở hạ tầng khoá công khai (public key infrastructure - PKI), một CA sẽ kiểm soát cùng với một nhà quản lý đăng ký (Registration authority - RA) để xác minh thông tin về một chứng chỉ số mà người yêu cầu xác thực đưa ra. Nếu RA xác nhận thông tin của người cần xác thực, CA sau đó sẽ đưa ra một chứng chỉ.

Tuỳ thuộc vào việc triển khai cơ sở hạ tầng khoá công khai, chứng chỉ số sẽ bao gồm khoá công khai của người sở hữu, thời hạn hết hiệu lực của chứng chỉ, tên chủ sở hữu và các thông tin khác về chủ khoá công khai.

Cơ sở hạ tầng khoá công khai - PKI

Một PKI (public key infrastructure) cho phép người sử dụng của một mạng công cộng không bảo mật, chẳng hạn như Internet, có thể trao đổi dữ liệu và tiền một cách an toàn thông qua việc sử dụng một cặp mã khoá công khai và cá nhân được cấp phát và sử dụng qua một nhà cung cấp chứng thực được tín nhiệm. Nền tảng khoá công khai cung cấp một chứng chỉ số, dùng để xác minh một cá nhân hoặc tổ chức, và các dịch vụ danh mục có thể lưu trữ và khi cần có thể thu hồi các chứng chỉ số. Mặc dù các thành phần cơ bản của PKI đều được phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra những chuẩn PKI riêng khác biệt. Một tiêu chuẩn chung về PKI trên Internet cũng đang trong quá trình xây dựng.

• Một Nhà cung cấp chứng thực số (CA) chuyên cung cấp và xác minh các chứng chỉ số. Một chứng chỉ bao gồm khoá công khai hoặc thông tin về khoá công khai

• Một nhà quản lý đăng ký (Registration Authority (RA) đóng vai trò như người thẩm tra cho CA trước khi một chứng chỉ số được cấp phát tới người yêu cầu

• Một hoặc nhiều danh mục nơi các chứng chỉ số (với khoá công khai của nó) được lưu giữ, phục vụ cho các nhu cầu tra cứu, lấy khoá công khai của đối tác cần thực hiện giao dịch chứng thực số.

• Một hệ thống quản lý chứng chỉ Nhà quản lý đăng ký - RA

Một nhà quản lý đăng ký (Registration Authority - RA) là một cơ quan thẩm tra trên một mạng máy tính, xác minh các yêu cầu của người dùng muốn xác thực một chứng chỉ số, và yêu cầu CA đưa ra kết quả. RA là một phần trong cơ sở hạ tầng khoá công khai PKI, một hệ thống cho phép các công ty và người dùng trao đổi các thông tin và hoạt động tài chính một cách an toàn bảo mật.

Trong luận văn này CA và RA được xậy dựng trên nền tảng Microsoft Certificate Service nên CA và RA sẽ do ngân hàng quản lý. Việc sử dụng hạ tầng PKI trong giao dịch HomeBanking có những lợi ích sau:

Mã hoá: Lợi ích đầu tiên của chứng chỉ số là tính bảo mật thông tin. Khi người gửi đã mã hoá thông tin bằng khoá công khai của bạn, chắc chắn chỉ có bạn mới giải mã được thông tin để đọc. Trong quá trình truyền thông tin qua Internet, dù có đọc được các gói tin đã mã hoá này, kẻ xấu cũng không thể biết được trong gói tin có thông tin gì. Đây là một tính năng rất quan trọng, giúp người sử dụng hoàn toàn tin cậy về khả năng bảo mật thông tin. Những trao đổi thông tin cần bảo mật cao, chẳng hạn giao dịch liên ngân hàng, ngân hàng điện tử, thanh toán bằng thẻ tín dụng, đều cần phải có chứng chỉ số để đảm bảo an toàn.

Chống giả mạo: Khi bạn gửi đi một thông tin, có thể là một dữ liệu hoặc một email, có sử dụng chứng chỉ số, người nhận sẽ kiểm tra được thông tin của bạn có bị thay đổi hay không. Bất kỳ một sự sửa đổi hay thay thế nội dung của thông điệp gốc đều sẽ bị phát hiện. Địa chỉ mail của bạn, tên domain... đều có thể bị kẻ xấu làm giả để đánh lừa người nhận để lây lan virus, ăn cắp thông tin quan trọng. Tuy nhiên, chứng chỉ số thì không thể làm giả, nên việc trao đổi thông tin có kèm chứng chỉ số luôn đảm bảo an toàn.

Xác thực: Khi bạn gửi một thông tin kèm chứng chỉ số, người nhận - có thể là đối tác

Một phần của tài liệu Ứng dụng thiết bị Ikey 2000 để triển khai xác thực giao dịch HomeBanking (Trang 56)