Hình 4.5: minh họa quá trình cấp chứng nhận số [26] 4.4 Triển khai thực tế quá trình cấp chứng nhận số
Phần này trình bày quá trình tạo ra Certificate Signing Request từ người dùng (smart phone Android) và X.509 certificate sau khi CA server nhận CSR từ người dùng.
4.4.1 Certificate signing request (CSR) 4.4.1.1 Nội dung CSR 4.4.1.1 Nội dung CSR
-----BEGIN CERTIFICATE REQUEST-----
MIIBHzCBxQIBADBBMRUwEwYDVQQDDAx0aGFuaGxhbS5jb20xDDAKBgNVBAoMA0JL VTEaMBgGA1UECwwRVGVsZWNvbSBEZXBhcm1lbnQwWTATBgcqhkjOPQIBBggqhkjO PQMBBwNCAARwSpBZC1BGY8RJTrPPHWFw9xqOLYdmvKTJQgoY8MMySHLyra7vlz4/ bRRHDW4AkY8a33ofRxZymdgErsLCQfE0oCIwIAYJKoZIhvcNAQkOMRMwETAPBgNV HRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQCP7OjF2Wb5Qt/YO7NjXpX6 oSYZkPYH6cuicPcGJPqZuQIhAMmCpyDHdgxCE4+3NoxGKtWVsRpXDk7sCSzt0ct0 X6eP
4.4.1.2 Giải mã CSR
Dùng cơng cụ giải mã online [27], ta có thể đọc được nội dung CSR
Hình 4.6: chép nội dung file CSR vào cơng cụ giải mã
Hình 4.8: giải mã CSR (2)
Hình 4.9: giải mã CSR (3) 4.4.2 X.509 certificate
4.4.2.1 Nội dung certificate -----BEGIN CERTIFICATE-----
MIICgjCCAWqgAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRUwEwYDVQQDDAx0aGFu
aGxhbS5jb20xDDAKBgNVBAoMA0JLVTEaMBgGA1UECwwRVGVsZWNvbSBEZXBhcm1l
bnQwHhcNMTcxMDI0MTYwMDAxWhcNMTgxMDI0MTYwMDAxWjBBMRUwEwYDVQQDDAx0
cm1lbnQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARwSpBZC1BGY8RJTrPPHWFw 9xqOLYdmvKTJQgoY8MMySHLyra7vlz4/bRRHDW4AkY8a33ofRxZymdgErsLCQfE0 o1AwTjAdBgNVHQ4EFgQUsEs7ZJPk3Ym4ycqosSiyGJzW3ZAwHwYDVR0jBBgwFoAU sEs7ZJPk3Ym4ycqosSiyGJzW3ZAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF AAOCAQEAFIDysmfoJkoQvBwKGL5OSdzEKmlMVEKLocpTsYFOZ2jD2ISHI4ZXwKcj 02VBD0btfLFB6JzkgYUHKiUbiW/Q5xTjODLtRydm6qJa0ThZgnSo8p5CM3DuzR4H Egik1JdupQWsX7m+7T1Ta+V7J8SOMdLyyqc/pXAKi6jlWYpuW8vv3GMvU5FkGvSu UM2VDKkrQyXLDZiIcJz6MryFQRrJ+LG7k6XDdABCgwLadsGYUJeADi084O1RSoTm Z2VbaFPi1EDHcBlJapoz56jmMabcVXHf4brLn7iRpSsERpAbgAOsDIwvgoji+6UN oTBT+CCrX8KrEv3EBdVvwvCPUsy/LA== -----END CERTIFICATE----- 4.4.2.2 Giải mã X.509 certificate
Hình 4.10: chép nội dung file certificate vào cơng cụ giải mã
Hình 4.12: giải mã certificate (2)
5 Chương 5: Tổng quan QR code
5.1 Giới thiệu
QR code còn gọi là mã ma trận (hay mã vạch hai chiều) được phát triển bởi công ty Denso Wave (Nhật Bản) vào năm 1994. [28]
Chữ “QR” xuất phát từ “Quick Response”, trong tiếng Anh có nghĩa là đáp ứng nhanh, vì người tạo ra nó có ý định cho phép mã được giải mã ở tốc độ cao. Các mã QR được sử dụng phổ biến ở Nhật Bản, và hiện nay là loại mã hai chiều thông dụng nhất Nhật Bản.
Mặc dù lúc đầu mã QR được dùng để theo dõi các bộ phận trong sản xuất xe hơi nhưng hiện nay nó được dùng trong quản lý kiểm kê ở nhiều ngành khác nhau. Gần đây hơn, phần mềm đọc mã QR có thể được cài vào điện thoại có camera điều này dẫn đến các ứng dụng mới và đa dạng hơn cho người dùng. Một mã QR có thể chứa một địa chỉ web (URL), thời gian diễn ra một sự kiện, thông tin liên hệ (như vCard), địa chỉ mail…giúp đơn giản hóa việc phải nhập dữ liệu vào điện thoại đi động.
Tiêu chuẩn Nhật Bản cho mã QR, JIS X 0510, được công bố vào tháng giêng năm 1999 và tiêu chuẩn quốc tế ISO tương ứng là ISO/IEC18004, được thông qua vào tháng sáu năm 2000.
Ngày nay, mã QR dần dần trở nên phổ biến trên toàn thế giới. Bảng 14: số lượng người dùng QR code 2011 -2015 [29] Số lượng người dùng QR code trong quý I của các năm
Năm Số lượng người dùng (triệu)
2011-Q1 7.5
2012-Q1 13.3
2013-Q1 18.2
2014-Q1 21.8
Hình 5.1: minh họa QR code 5.2 Cấu trúc QR code 5.2 Cấu trúc QR code
QR code gồm các thành phần sau:
- Finder Pattern: là các mẫu xác định vị trí đặc biệt nằm ở 3 góc (phía trên bên trái, phía trên bên phải và phía dưới bên trái) của mỗi QR code. Nhờ có finder pattern QR code có thể đọc 360o
- Separators: là phần khoảng trắng ở giữa finder pattern và vùng mã hóa (encoding region).
- Timing patterns: có hai timing pattern, một theo chiều dọc và một theo chiều ngang. Chúng bao gồm các module sáng và tối xen kẽ nhau. Timing pattern theo chiều ngang nằm ở hàng thứ 6 của QR code giữa separators. Timing pattern theo chiều dọc nằm ở cột thứ 6 của QR code giữa separators. Timing pattern rất hữu ích trong việc xác định mật độ các ký hiệu, tọa độ các module và vùng thông tin phiên bản.
- Alignment patterns: được xây dựng với 5x5 module tối, 3x3 module sáng và một module tối duy nhất ở trung tâm.
- Encoding region: khi vực mã hóa chứa thông tin định dạng (format information), thông tin phiên bản (version information), dữ liệu và mã sửa lỗi. Thông tin định dạng là một mảng module đặt ở phía trên bên trái, phía trên bên phải và phía dưới bên trái gần với finder pattern. Thông tin phiên bản là một khối 6x3 ở phía trên finder pattern (bên trái phía dưới) và 3x6 bên trái finder pattern (phía trên bên phải).
- Quiet zone: là một vùng rộng 4 module không chứa dữ liệu, được sử dụng để đảm bảo văn bản hoặc các thành phần khác xung quanh không làm sai lệch dữ liệu của QR code.
Hình 5.2: cấu trúc QR code [29] 5.3 Khả năng lưu trữ - sửa lỗi 5.3 Khả năng lưu trữ - sửa lỗi
5.3.1.1 Khả năng lưu trữ
Bảng 15: khả năng lưu trữ của QR code
Loại ký tự Khả năng lưu trữ tối đa
Số đơn thuần 7089 ký tự
Số và chữ cái 4296 ký tự
Số nhị phân (8 bit) 2953 byte
Kanji/Kana 1817 ký tự
5.3.1.2 Khả năng sửa lỗi
Bảng 16: khả năng sửa lỗi của QR code
Mức độ Phần trăm lỗi
Mức L 7% số từ mã có thể phục hồi
Mức M 15% số từ mã có thể phục hồi
Mức Q 25% số từ mã có thể phục hồi
5.4 So sánh QR code với các loại 2D code khác
Ngoài QR code, một số loại 2D code khác cũng được phát triển. Bảng dưới dây là các 2D code phổ biến và tính năng của chúng: [29]
Bảng 17: so sánh QR code và các 2D code khác
2D code QR code PDF417 Data
Matrix Maxi Code Hình minh họa Nhà phát triển DENSO (Japan) Symbol Technologies (USA) RVSI Acuity CiMatrix (USA) UPS (USA)
Loại Matrix Stacked Bar
Code Matrix Matrix Dung lượng data Numeric 7089 2710 3116 138 Alphanumeric 4296 1850 2355 93 Binary 2953 1018 1556 Kanji 1817 554 778 Tính năng chính Dung lượng lớn, kích thước nhỏ, tốc độ đọc cao Dung lượng lớn Kích thước nhỏ Tốc độ đọc cao Hạng mục sử dụng Tất cả hạng mục Office automation FA Logistics Tiêu chuẩn AIM JIS, ISO AIM, ISO AIM, ISO AIM, ISO Từ bảng so sánh trên, dễ dàng nhận thấy rằng QR code hoàn toàn vượt trội so với các loại 2D code khác
5.5 So sánh QR code và NFC 5.5.1 Các nguy cơ của NFC 5.5.1 Các nguy cơ của NFC
Cũng giống như các smart card RFID, NFC cũng sử dụng sóng RF để truyền dữ liệu và hoạt động trên dải tần 13.56 MHz do đó NFC cũng gặp phải các nguy cơ
nói chung của các thiết bị sử dụng sóng RF như: kỹ thuật đảo ngược và phân tích cơng suất. Ngồi ra NFC cịn phải đối mặt với một số nguy cơ khác như sau:
5.5.1.1 Eavesdropping (nghe trộm)
Bởi vì NFC là giao tiếp khơng dây nên nghe trộm là một vấn đề quan trọng cần phải chú ý. Khi hai tiếp bị giao tiếp qua NFC chúng sử dụng sóng RF để trao đổi thơng tin. Kẻ tấn cơng có thể sử dụng anten để nhận các tín hiệu truyền đi. Mặc dù, NFC thường được thực hiện giữa hai thiết bị ở gần nhau không quá 10cm tuy nhiên khoảng cách giao tiếp còn phụ thuộc vào chế độ hoạt động. Khi thiết bị đang gửi dữ liệu ở chế độ active, kẻ tấn cơng có thể nghe trộm trong khoảng cách lên đến 10m, trong khi đó khi thiết bị gửi thơng tin ở chế độ passive, khoảng cách này giảm xuống còn khoảng 1m. [30]
5.5.1.2 Phá hoại dữ liệu
Kẻ tấn cơng có thể làm thiết bị thu nhận không đúng dữ liệu được gửi bởi thiết bị phát. Phá hoại dữ liệu có thể thực hiện bằng cách phát một tần số phù hợp trong khoảng thời hai thiết bị giao tiếp với nhau. Về cơ bản nó là một hình thức tấn cơng Denial of Service. [30]
5.5.1.3 Chèn dữ liệu
Kẻ tấn cơng có thể chèn dữ liệu phá hoại vào quá trình trao đổi dữ liệu giữa hai thiết bị NFC. Kẻ tấn cơng có thể gửi dữ liệu của mình sớm hơn thiết bị hợp lệ trả lời. Nếu kẻ tấn công gửi dữ liệu trùng thời điểm thiết bị hợp lệ trả lời, dữ liệu sẽ bị hỏng. [30]
5.5.2 Tính tiện dụng của QR code so với NFC
So với NFC, QR code tiện dụng hơn do khơng địi hỏi smart phone phải trang bị chip NFC (chỉ 31% smartphone được trang bị NFC), khơng có sự phân biệt về nền tảng hệ điều hành, ngoài ra QR code cịn miễn phí.
Hình 5.3: so sánh QR code và NFC [31] 5.6 Kết luận
Như đã trình bày ở các phần trên RFID, NFC và các hình thức truyền thơng dùng sóng RF nói chung phải đối mặt với nhiều nguy cơ. Do đó, để tránh các nguy cơ khi sử dụng sóng RF, tơi quyết định sử dụng QR code để trao đổi thông tin giữa smart phone và module xử lý xác nhận truy cập (Raspberry Pi).
Capture QR code
Smart phone
Camera QR code
Hình 5.4: minh họa scan QR code từ màn hình smart phone của người dùng Như hình 5.4, QR code được scan trực tiếp từ màn hình smart phone của người Như hình 5.4, QR code được scan trực tiếp từ màn hình smart phone của người dùng, điều này giúp loại bỏ các hình thức tấn cơng như nghe trộm, chèn dữ liệu, phá hoại dữ liệu, MITM attack…
Tuy nhiên, với cách làm trên vẫn tồn tại một nguy cơ bị tấn cơng, đó là hình thức tấn cơng phát lại – replay attack. Phần xử lý khắc phục lỗ hổng này sẽ được trình bày ở chương 6.
6 Chương 6: Hình thức tấn cơng phát lại (Replay attack)
6.1 Giới thiệu
6.1.1 Kịch bản tấn cơng Xét tính huống sau: Xét tính huống sau:
Giả sử Bob là ngân hàng còn Alice là một khách hàng của Bob. Alice gửi thông điệp đề nghị Bob chuyển cho Trudy 10.000$.
Alice có áp dụng các biện pháp như chữ ký điện tử với mục đích khơng cho Trudy mạo danh cũng như sửa thông điệp.
Tuy nhiên, nếu Trudy sao chép và phát lại thơng điệp đến Bob thì các biện pháp bảo vệ này khơng có ý nghĩa. Bob sẽ tin rằng Alice đã gửi lại thông điệp mới để yêu cầu chuyển thêm cho Trudy 10.000$ nữa.
6.1.2 Định nghĩa
Replay attack hay còn gọi là tấn công phát lại. Trudy (kẻ tấn công) chặn thông điệp của Alice gửi cho Bob và sau đó một thời gian gửi lại thơng điệp này cho Bob. Như vậy Bob sẽ nghĩ rằng Alice gửi thông điệp hai lần khác nhau. Tuy nhiên, thực sự thì Alice chỉ gửi một lần.
Alice Bob Trudy
Network
Sao chép thông điệp của Alice và gửi lại cho Bob
Hình 6.1: replay attack 6.1.3 Liên hệ thực tế hệ thống 6.1.3 Liên hệ thực tế hệ thống
Trong phần trên, chúng ta có mơ hình scan QR code từ màn hình smart phone của người dùng như sau:
Capture QR code
Smart phone
Camera QR code
Hình 6.2: minh họa scan QR code từ màn hình smart phone của người dùng Nếu như kẻ tấn cơng đặt một camera bí mật và cũng chụp được QR code từ Nếu như kẻ tấn cơng đặt một camera bí mật và cũng chụp được QR code từ màn hình smart phone thì có thể sử dụng nó để đánh lừa module điều khiển access control và xâm nhập trái phép.
6.2 Các phương pháp chống Replay attack:
Có 3 phương pháp để chống replay attack [9] 6.2.1 Dùng số định danh
6.2.1.1 Phương pháp
Trong mỗi message gửi cho Bob, Alice nhúng vào đó một con số định danh thông điệp S. Mỗi message tương ứng với một S khác nhau.
, AB
CE P S K Với là phép nối dãy bit
Do đó, nếu Trudy phát lại message, Bob sẽ biết được hai message có cùng số định danh và loại bỏ message thứ hai.
6.2.1.2 Nhược điểm
Phương pháp này có hạn chế là Bob phải lưu trữ số định danh của Alice để có cơ sở so sánh.
6.2.2 Dùng timestamp 6.2.2.1 Phương pháp 6.2.2.1 Phương pháp
Trong mỗi thông điệp gửi cho Bob, Alice nhúng nào một timestamp T xác định thời điểm gửi. Bob chỉ chấp nhận thơng điệp nếu nó đến được Bob trong một thời gian giới hạn nào đó kể từ lúc gửi.
, AB
CE P T K
6.2.2.2 Nhược điểm
Phương pháp này yêu cầu đồng hồ của Alice và Bob phải đồng bộ, không được sai lệch quá nhiều. Ngoài ra, độ trễ việc truyền tin trên mạng cũng là một trở ngại đối với phương pháp này.
6.2.3 Dùng cơ chế challenge/ response 6.2.3.1 Phương pháp 6.2.3.1 Phương pháp
Để đảm bảo thông điệp từ Alice không phải là thông điệp phát lại, Bob gửi một số ngẫu nhiên N cho Alice (gọi là nonce). Alice sẽ nhúng N trong thông điệp gửi lại Bob.
Khi Bob giải mã thông điệp, Bob sẽ kiểm tra N mà Bob nhận được xem có trùng khớp với N mà Bob đã gửi đi không.
Như vậy, Trudy khơng thể phát lại thơng điệp vì mỗi lần Bob sẽ gửi một số N khác nhau. A B N , AB C E P N K A B N , U B C E M N K Mã hóa đối xứng Mã hóa bất đối xứng
Hình 6.3: cơ chế challenge/ response chống replay attack 6.2.3.2 Nhược điểm 6.2.3.2 Nhược điểm
Phương pháp này đòi hỏi phải thêm một bước là Bob gửi N cho Alice. 6.3 Kết luận
Trong đề tài luận văn này, tôi sử dụng phương pháp dùng timestamp để tránh nguy cơ bị tấn công phát lại. Phương pháp này khơng địi hỏi phải có thêm bước trao
đổi thông tin giữa người gửi và người nhận như cơ chế challenge/ response, cũng không yêu cầu bên nhận phải lưu trữ số định danh như phương pháp dùng định danh. Các thiết bị ngày nay có khả năng đồng bộ thời gian từ NTP server, hơn nữa, việc scan QR code trực tiếp từ màn hình smart phone diễn ra với tốc độ rất nhanh, không bị ảnh hưởng bởi độ trễ như khi truyền tin qua mạng.
7 Chương 7: Xây dựng hệ thống Access Control 7.1 Mơ hình hệ thống 7.1 Mơ hình hệ thống 7.1.1 Mơ hình thực tế CA server Smart Phone Certificate
Signing Request Digital signature QR code
Camera
Raspberry Pi (Access control module) Certificate FTP server Web server Control Name Email User name Password AES encrypt Pre-shared key Pre-shared key AES decrypt
Hình 7.1: mơ hình thực tế hệ thống access control 7.1.2 Thuyết minh hệ thống 7.1.2 Thuyết minh hệ thống
Bảng 18: thành phần và chức năng của các thành phần trong hệ thống access control
Thành phần Chức năng
Đăng ký tài khoản:
- Người dùng đăng ký thông gồm: tên, email, username, password cho web server (thông tin được gửi đi là các thơng tin đã mã hóa AES bằng pre-shared key thiết lập sẵn trong phần mềm).
- Thông tin username/ password sẽ được dùng để đăng nhập tài khoản quản lý của người dùng trên web server.
Phần mềm access control trên smart phone người dùng
- Username còn được dùng làm tên file certificate do CA tạo ra do đó username khơng được phép trùng.
Tạo chữ ký điện tử:
- Người dùng nhập vào chuỗi chữ ký dạng plaintext. - Tạo chữ ký điện tử.
- Đăng ký public key (upload Certificate Signing Request lên CA server).
Xác thực ra vào (Access control)
- Tạo QR code để scan bằng module điều khiển access (Raspberry Pi)
- QR code = time stamp + username + chuỗi chữ ký (plain text) + chuỗi chữ ký (mã hóa)
Module điều khiển access (Raspberry Pi)
Scan QR code:
- Scan QR code từ màn hình smart phone của người dùng
Xác thực chữ ký điện tử:
- Giải mã QR code → chuỗi
- Kiểm tra tính hợp lệ của time stamp (chống replay attack) - Kiểm tra file certificate (tương ứng với username) có tồn tại hay khơng? Nếu không → download file certificate từ CA server
- Kiểm tra tính hợp lệ của chữ ký điện tử với public key trong certificate tương ứng.
CA & web server
Nhận thông tin đăng ký từ người dùng
- Giải mã thông tin đăng ký từ người dùng bằng pre-shared key đã thiết lập sẵn.
- Kiểm tra thông tin đăng ký từ người dùng (username và email không được phép trùng)
- Tạo tài khoản người dùng tương ứng thông tin đã đăng ký
Nhận CSR và tạo certificate tương ứng
- Nhận certificate signing request từ người dùng - Tạo certificate tương ứng
- Chuyển file certificate sang FTP server với tên file là username của người dùng tương ứng.
7.2 Lưu đồ giải thuật
7.2.1 Phần mềm access control
START
Đăng ký thông tin người dùng lên Web Sever, bao gồm: - Tên người dùng (Name)
- Địa chỉ mail (Email) - Tên đăng nhập (User Name) - Mật khẩu (Password)
Tạo cặp khóa public key và private key dùng thuật tốn ECC (elliptic curve cryptography)
Tạo Certificate Signing Request (CSR) bao gồm: - Common name
- Organization - Organization Unit - Public key
Sau đó dùng private key để ký (sign) CSR