3.8.10 Màn hình vấn tin
Kết luận
Hệ thống xác thực HomeBanking đáp ứng được các yêu cầu về bảo mật giao dịch giữa khách hàng và ngân hàng. Hê thống cung cấp được các dịch vụ ngân hàng cơ bản một cách tin cậy, an toàn, chính xác, nhanh chóng, tiện lợi đối với người sử dụng. Thông qua hệ thống này, Ngân hàng ĐT&PT Việt Nam có thêm một kênh phân phối dịch vụ mới cung cấp cho khách hàng.
Đề xuất và kiến nghị
Để có thể mở rộng hệ thống HomeBanking của Ngân hàng ĐT&PT Việt Nam vào thực tế cần phải quan tâm đến các vấn đề sau:
Thứ nhất: Đó là cơ sở hạ tầng về CNTT. Cần phải đầu tư xây dựng một hệ thống thông tin hiện đại, an toàn và đồng đều trên tất cả các chi nhánh của ngân hàng ĐT&PT Việt Nam. Tích cực phát triển và hiện đại hoá các hệ thống thanh toán điện tử. Áp dụng các cơ chế bảo mật nhất quán, thống nhất để đảm bảo an toàn trong giao dịch.
Thứ hai: Cơ sở pháp lý. Để các giao dịch ngân hàng trên hệ thống được đảm bảo, cần phải có một hệ thống cơ sở pháp lý qui định phạm vi, trách nhiệm, quyền hạn của các bên tham gia (từ khách hàng, đến ngân hàng,..) để giải quyết các tranh
chấp khi xảy ra. Ngoài ra cần phải tiêu chuẩn hoá các vấn đề kỹ thuật được sử dụng như các quy định về chữ ký điện tử, các giao thức sử dụng, các tiêu chuẩn mã hoá trong việc xử lý giao dịch. Cần có các quy tắc, công nghệ, kỹ thuật phù hợp để bảo vệ thông tin giao dịch theo quy định của luật pháp và phù hợp với các qui định trong khu vực và trên thế giới.
Thứ ba: Nâng cao nhận thức và quan điểm người sử dụng. Hiện nay ở Việt Nam, nhu cầu giao dịch ngân hàng trên mạng Internet là rất lớn, tuy nhiên nhiều cá nhân cũng như các đơn vị còn e ngại với loại hình dịch vụ này. Vì vậy cần có các biện pháp quảng cáo cũng như thuyết phục khách hàng để khách hàng thấy rõ được lợi ích mà dịch vụ này đem lại, đồng thời cần khẳng định với khách hàng để tạo niềm tin của khách hàng với loại hình dịch vụ này là một dịch vụ an toàn (cả về kỹ thuật và về mặt pháp luật), tiện lợi, nhanh chóng, chính xác giúp cho khách hàng cũng như ngân hàng giảm được các chi phí phát sinh từ giao dịch trực tiếp giữa khách hàng với nhân viên ngân hàng.
Thứ tư: Ngân hàng ĐT&PT Việt Nam cần sớm ban hành văn bản hướng dẫn thực hiện cũng như qui trình nghiệp vụ xử lý giao dịch trên mạng Internet để áp dụng cho các đơn vị, các cán bộ vận hành hệ thống, kiểm soát viên cũng như qui trình thực hiện giao dịch áp dụng cho khách hàng.
Hướng phát triển
Hiện tại hệ thống mới chỉ dừng lại ở mức xử lý các giao dịch liên quan đến tài khoản tiền gửi Việt Nam đồng để phù hợp với hệ thống ATM hiện có của ngân hàng và hạn chế dưới 8 tài khoản đăng ký sử dụng. Trong tương lai gần, các dịch vụ sẽ được mở rộng với các tài khoản ngoại tệ và làm việc với tất cả các tài khoản tiền gửi hiện có của khách hàng tại ngân hàng, đồng thời cũng đưa việc theo dõi xử lý các tài khoản tiền vay lên hệ thống HomeBanking
Ngân hàng ĐT&PT Việt Nam sẽ tiếp tục đầu tư nghiên cứu nâng cấp hệ thống, tiếp tục đưa thêm các dịch vụ ngân hàng vào hệ thống HomeBanking như dịch vụ bảo lãnh, thư tín dụng,....
Bên cạnh các dịch vụ ngân hàng, BIDV sẽ tiếp tục nghiên cứu để đưa thêm các dịch vụ gia tăng khác như hỗ trợ doanh nghiệp trả lương cho nhân viên thông qua hệ thống HomeBanking. Kết hợp cùng các nhà cung cấp dịch vụ để đưa ra dịch vụ bán hàng trực tuyến đặc biệt là với các nhà cung cấp điện thoại di động để bán thẻ nạp tiền cho các thuê bao trả trước. Cùng với nhà cung cấp dịch vụ để đưa vào dịch vụ thanh toán hoá đơn trực tuyến, nghĩa là sau khi khách hàng hoàn thành giao dịch thanh toán hoá đơn thì tại CSDL của nhà cung cấp dịch vụ thông tin về việc trả
cước của khách hàng sẽ được cập nhật tức thì. Ngoài ra có thể khai thác kênh dịch vụ BIDV HomeBanking để mở thêm một loại hình dịch vụ mới đó là quảng cáo. Các doanh nghiệp có thể ký hợp đồng quảng cáo với ngân hàng để có thể quảng bá sản phẩm và tiếp cận với khách hàng một cách tốt hơn.
Trong tương lai, ngân hàng đầu tư và phát triển Việt Nam cũng sẽ đầu tư nghiên cứu nhằm có thể triển khai dịch vụ HomeBanking không chỉ trên máy tính cá nhân/ xách tay mà có thể triển khai trên bất kỳ thiết bị nào có thể kết nối với mạng thông tin toàn cầu Internet như PDA, điện thoại di động,...
TÀI LIỆU THAM KHẢO
[1] Nguyễn Nam Hải, Đào Thị Hồng Vân (2003), An toàn cho thương mại điện tử, Nhà xuất bản bưu điện
[2] Java seccurity Hand book
[3] Microsoft platform SDK http://msdn.microsoft.com
[4] Kevin Gilhooly (2004), Using WebSphere Studio Device Developer to Build Embedded Java Applications, IBM‟s Redbook.
[5] Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin hiện đại, Nhà xuất bản thống kê.
[6] Trần Tiến Dũng (2000), Giáo trình lý thuyết và thực hành Oracle, Nhà xuất bản giáo dục.
[7] Trần Tiến Dũng (2002), Xây dựng ứng dụng Web với JSP, servlet, Javabeans, Nhà xuất bản giáo dục.
PHỤ LỤC
3.9 Phụ lục A:
Mã chương trình Visual basic thực hiện mã hoá và ký sử dụng envelop của Capicom
Dim vSigner As String Dim vRecipients As String Dim vEnvmessage As String Dim vSignature As String Dim vContent As String Dim vSuccess As String Public Sub SignAndEncrypt() vSuccess = ""
On Error GoTo bug
Dim SignedData As New CAPICOM.SignedData Dim Signer As New CAPICOM.Signer
Dim TimeAttribute As New CAPICOM.Attribute Dim Cert As CAPICOM.Certificate
Dim CertStore1 As New CAPICOM.Store Dim k As Integer
Dim i As Integer
CertStore1.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
k = 1
For i = 1 To CertStore1.Certificates.Count k = i
Set Cert = CertStore1.Certificates.Item(i)
'If Cert.IsValid And Cert.SubjectName = "CN=" + vSigner Then
If Cert.IsValid And InStr(Cert.SubjectName, "CN=" + vSigner) > 0 Then Exit For
End If Next
'MsgBox CertStore1.Certificates.Item(k).SubjectName & vbCrLf & "CN=" + vSigner If InStr(CertStore1.Certificates.Item(k).SubjectName, "CN=" + vSigner) = 0 Then GoTo bug
'If CertStore1.Certificates.Item(k).SubjectName <> "CN=" + vSigner Then GoTo bug Signer.Certificate = CertStore1.Certificates.Item(k) TimeAttribute.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME TimeAttribute.Value = Now() Signer.AuthenticatedAttributes.Add TimeAttribute SignedData.Content = vContent
Dim CertStore As New CAPICOM.Store
Dim Envmessage As New CAPICOM.EnvelopedData Dim sl() As String sl = Split(vRecipients, ";") Dim kq As Boolean kq = False CertStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_OTHER_STORE, CAPICOM_STORE_OPEN_READ_ONLY For i = 1 To CertStore.Certificates.Count
For k = LBound(sl) To UBound(sl)
'If CertStore.Certificates.Item(i).SubjectName = sl(k) Then
If InStr(CertStore.Certificates.Item(i).SubjectName, sl(k)) > 0 Then Envmessage.Recipients.Add (CertStore.Certificates.Item(i)) kq = True End If Next Next If Not kq Then
CertStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
For i = 1 To CertStore.Certificates.Count For k = LBound(sl) To UBound(sl)
'If CertStore.Certificates.Item(i).SubjectName = sl(k) Then
If InStr(CertStore.Certificates.Item(i).SubjectName, sl(k)) > 0 Then Envmessage.Recipients.Add (CertStore.Certificates.Item(i)) kq = True End If Next Next End If
If Not kq Then GoTo bug Set Cert = Signer.Certificate
Envmessage.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_3DES
Envmessage.Algorithm.KeyLength =
CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS
Envmessage.Content = vContent + "|$$|" + Cert.PublicKey.EncodedKey + "|$$|" + Cert.SerialNumber
vEnvmessage = Envmessage.Encrypt()
If Len(vSignature) > 10 Then vSuccess = "OK" Exit Sub
bug:
Response = MsgBox("Khong thay ikey " + vbCrLf + "hoac chung chi khong hop le " + vbCrLf + "hoac khong dung mat khau iKey " + vbCrLf + "hoac khong co chung chi cua Ngan hang" + vbCrLf + "De nghi lien he voi bo phan ho tro BIDV CTW" + vbCrLf + Err.Description, vbExclamation + vbOKOnly, "", "", 0)
Public Property Let Signer(ByVal vNewValue As String) vSigner = vNewValue
End Property
Public Property Let Recipients(ByVal vNewValue As String) vRecipients = vNewValue
End Property
Public Property Get Envmessage() As String Envmessage = vEnvmessage
End Property
Public Property Get Signature() As String Signature = vSignature
End Property
Public Property Let Content(ByVal vNewValue As Variant) vContent = vNewValue
End Property
Public Property Get Success() As Variant Success = vSuccess
End Property
Hàm giải mã envelop
Private Sub Decode_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
If ExListView1.CheckedItems.Count = 0 Then Exit Sub Dim count As Integer = ExListView1.CheckedItems.Count Dim listCIF(count - 1) As String
Dim listChon(count - 1) As String Dim listdataout(count - 1) As String
For k As Integer = 0 To ExListView1.CheckedItems.Count - 1 listCIF(k) = ExListView1.CheckedItems(k).SubItems(2).Text listChon(k) = ExListView1.CheckedItems(k).Text
listdataout(k) = ExListView1.CheckedItems(k).SubItems(3).Text Next
Dim thanhcong As Integer = 0 Dim khongthanhcong As Integer = 0
Dim tongso As Integer = ExListView1.CheckedItems.Count ExListView1.Enabled = False
For k As Integer = 0 To ExListView1.CheckedItems.Count - 1 [Continue]: Dim CIF As String = listCIF(k)
Dim Chon As String = listChon(k)
Dim dataout As String = listdataout(k) Dim Envmessage As New CAPICOM.EnvelopedData Dim test As New CAPICOM.Store
Dim publickey As String = ""
Dim serialnumber As String = ""
dataout = dataout.Replace("|null|", "||") Try
Envmessage.Decrypt(dataout) dataout = Envmessage.Content
Dim sl() As String = Split(dataout, "|$$|") If sl.Length > 1 Then serialnumber = sl(2) publickey = sl(1) dataout = sl(0) publickey = publickey.Replace(vbCr, "") publickey = publickey.Replace(vbLf, "") End If Catch ex As Exception
ShowMessage("Không thấy chứng chỉ hoặc iKey " + vbCrLf + ex.Message, True) HuydienKhongGiaiMaDuoc(Chon) k += 1 If k <= ExListView1.CheckedItems.Count - 1 Then GoTo [Continue] Else Exit For End If End Try
sql = "select publickey from cert where serialnumber = '" + serialnumber + "' and nvl(blocked,' ')=' '"
Dim rs As String = soapSQLcommand(sql) rs = rs.Replace(vbCr, "")
rs = rs.Replace(vbLf, "") If rs <> publickey Then
ShowMessage("Không kiểm tra chữ ký được", True) HuydienKhongGiaiMaDuoc(Chon) k += 1 If k <= ExListView1.CheckedItems.Count - 1 Then GoTo [Continue] Else Exit For End If End If
Dim s As String = soapSQLcommand("Select Amount,curr_code,benacno,benbank from payments_his where id =" + Chon) Try
s = s.Replace("null", "") s = s.Remove(s.Length - 3, 3) Catch
ShowMessage("Không giải mã được", True) HuydienKhongGiaiMaDuoc(Chon) k += 1 If k <= ExListView1.CheckedItems.Count - 1 Then GoTo [Continue] Else Exit For End If End Try
Dim sign As String = soapSQLcommand("Select sign from payments_his where id =" + Chon)
Dim signsl As String() = Split(sign, "@@@@@") Dim CAPI As New CAPICOM.SignedData
Try
CAPI.Content = signsl(0) CAPI.Verify(signsl(1), True) Catch ex As Exception
ShowMessage("Không đúng chữ ký hoặc chứng chỉ không hợp lệ" + vbCrLf + ex.Message, True)
k += 1 If k <= ExListView1.CheckedItems.Count - 1 Then GoTo [Continue] Else Exit For End If End Try Dim i As Integer = 0
If signsl(0) <> dataout Then
ShowMessage("Không giải mã được signsl(0) <> dataout", True) HuydienKhongGiaiMaDuoc(Chon) k += 1 If k <= ExListView1.CheckedItems.Count - 1 Then GoTo [Continue] Else Exit For End If Else
sql = "update payments_his set branchcode='" + Common.branchcode + "' , appcurr_code = (Select currency from accounts
where account_number =(Select appacno from payments_his where
payments_his.id=" + Chon + ") and account_type='D' ), " + _
" datereceive = to_date('" + CStr(soapDate.Now) +
"','dd/MM/yyyy hh24:mi:ss')," + _
" appbank = (select min(rmsid.bankname) from rmsid where rmsid.bidvbankcode='" + Common.branchcode + _
"' ),APPLICANT=(select custname from customers where cif='" + CIF + _
"'),APPID_PP=(select id_pp from customers where cif='" + CIF + _
"'),APPDATEISSUED=(select date_issued from customers where cif='" + CIF + _
"'),APPPLACEISSUED=(select place_issued from customers where cif='" + CIF + _
"'),MST=(select nvl(MST,'-') from customers where cif='"
+ CIF + "') where id=" + Chon
soapSQLcommand(sql)
Dim col As String = "id, cif, branchcode, datecreate,
amount, curr_code, remark, importance, applicant, appid_pp,
appdateissued, " + _
" appplaceissued, appacno,appcurr_code, appbank, beneficiary, benid_pp, bendateissued, benplaceissued, benacno, " + _ " bencurr_code, benbankcode, benbank, charge, effdate, MSGID, user1_id, user2_id, user3_id, MST"
Dim selectsql As String = "Select payments_his.id, payments_his.cif, payments_his.branchcode, datecreate, amount, curr_code, remark, importance, applicant, appid_pp, appdateissued, " + _
" appplaceissued, appacno,appcurr_code, appbank, beneficiary, benid_pp, bendateissued, benplaceissued, benacno, " + _ " bencurr_code, benbankcode, benbank, charge, effdate, MSGID, user1_id, user2_id, user3_id, MST from payments_his" + _
" where payments_his.id = " + Chon
sql = "delete from payments_process where id= " + Chon soapSQLcommand(sql)
sql = "INSERT into payments_process (" + col + ") " + selectsql
soapSQLcommand(sql)
WriteLog("Cập nhập điện thanh toán", sql)
sql = "update payments_des Set Decoded='T' where id=" + Chon soapSQLcommand(sql) Try thanhcong += 1 printOrder(Chon, PaymentLibrary.Loaibaocao.NhanGiaoDich, "Nhận từ khách hàng", Me.RadioButton2.Checked) Catch ex As Exception
ShowMessage("Có lỗi máy in " + ex.Message) End Try
End If Next
ExListView1.Enabled = True
ShowMessage("Tổng số điện:" + CStr(tongso) + vbCrLf + "Thành công:" + CStr(thanhcong) + vbCrLf + "Không thành công:" + CStr(tongso - thanhcong))
reload() End Sub