RFID & Security

Thảo luận trong 'Tài liệu' bắt đầu bởi ping, 19/06/13, 10:06 AM.

  1. ping

    ping VIP Members

    Tham gia: 19/06/13, 09:06 AM
    Bài viết: 102
    Đã được thích: 50
    Điểm thành tích:
    48
    I. Tổng quan RFID
    1.Khái niệm:
    RFID (Radio-frequency identification) là công nghệ xác nhận dữ liệu đối tượng bằng sóng vô tuyến để nhận dạng, theo dõi và lưu thông tin trong 1 thẻ (tag). Reader quét dữ liệu thẻ và gửi thông tin đến cơ sở dữ liệu lưu trữ của thẻ.
    Kĩ thuật RFID có liên quan đến hệ thống không dây cho phép 1 thiết bị đọc thông tin được chứa trong 1 chip không tiếp xúc trực tiếp, mà không thực hiện bất kì giao tiếp vật lý nào. Nó cho ta phương pháp truyền và nhận dữ liệu từ 1 điểm đến điểm khác.
    Kĩ thuật RFID sử dụng truyền thông không dây trong dải tần sóng vô tuyến để truyền dữ liệu từ các thẻ đến các reader. Thẻ có thể được đính kèm hoặc gắn vào đối tượng được nhận dạng.

    2.Cấu trúc :
    Thành phần cơ bản trong hệ thống RFID gồm thẻ transponder và reader.
    A. Thẻ Transponder :


    Là thiết bị lưu trữ dữ liệu thực tế của 1 hệ thống RFID, thường bao gồm 1 phần tử kết nối (coupling element) và 1 vi chip điện tử. Thành phần chính trong transponder gồm :

    • Chip: lưu trữ 1 số kí tự duy nhất hoặc thông tin khác dựa trên loại thẻ.
    • Antenna : được gắn với vi mạch truyền thông tin từ chip đến reader.
    • Antenna càng lớn cho biết phạm vi đọc càng lớn.
    • Các thẻ RFID được phân loại dựa trên việc thẻ có chứa 1 nguồn cung cấp gắn bên trong hay là được cung cấp bởi thiết bị chuyên dụng:


    Thụ động (Passive)
    Loại thẻ này không có nguồn bên trong (on-board), sử dụng nguồn nhận được từ reader để hoạt động và truyền dữ liệu được lưu trữ trong nó cho reader. Thẻ như thế có 1 thời gian sống dài và thường có sức chịu đựng với điều kiện môi trường khắc nghiệt.
    Đối với loại thẻ này, khi thẻ và reader truyền thông với nhau thì reader luôn truyền trước rồi mới đến thẻ. Cho nên bắt buộc phải có reader để thẻ có thể truyền dữ liệu của nó.
    Thẻ thụ động được đọc ở khoảng cách từ 11cm ở trường gần (ISO 14443), đến 10m ở trường xa (ISO 18000-6) và có thể lên đến 183m khi kết hợp với ma trận.

    Tích cực (Active)
    Thẻ tích cực có 1 nguồn năng lượng ở bên trong (1 bộ pin hoặc những nguồn năng lượng khác như sử dụng năng lượng mặt trời) và điện tử học để thực thi những nhiệm vụ chuyên dụng. Thẻ tích cực sử dụng nguồn năng lượng bên trong để truyền dữ liệu cho reader. Nó không cần nguồn năng lượng từ reader để truyền dữ liệu. Điện tử học bên trong gồm bộ vi mạch, cảm biến và các cổng vào/ra được cấp nguồn bởi nguồn năng lượng bên trong nó.
    Đối với loại thẻ này, trong quá trình truyền dữ liệu giữa thẻ và reader, thẻ luôn truyền trước rồi mới đến reader.
    Khoảng cách đọc của thẻ tích cực là 100 feet (xấp xỉ 30.5m) hoặc hơn nữa khi máy phát tích cực của thẻ này được dùng đến.

    B. Reader :
    RFID reader là 1 thiết bị cho phép đọc hoặc ghi tới các thẻ RFID thích hợp. Hành động ghi dữ liệu lên thẻ bởi 1 reader được gọi là công đoạn tạo thẻ. Công đoạn tạo thẻ cùng với việc gắn thẻ đó lên 1 đối tượng nào đó gọi là qui trình đưa thẻ vào hoạt động. Quãng thời gian 1 reader có thể phát xạ năng lượng RF đẻ đọc các thẻ gọi là chu trình hoạt động của reader.
    Reader là hệ thống trung tâm của toàn bộ phần cứng hệ thống RFID.

    Thành phần chính của reader:

    • Bộ truyền tín hiệu (transmiter)
    Sử dụng để truyền năng lượng điện xoay chiều và chu kì xung thông qua anten của chính nó tới các thẻ nằm trong phạm vi đọc của nó. Đây là 1 phần của bộ thu phát tín hiệu, là thành phần chịu trách nhiệm gửi tín hiệu của reader tới môi trường xung quanh. Các cổng anten của reader sẽ được kết nối tới thành phần thu phát của chính nó.

    • Bộ thu tín hiệu (receiver)
    Thành phần này cũng là 1 phần của khối thu phát. Nó nhận các tín hiệu tương tự từ thẻ thông qua anten của reader sau đó gửi các tín hiệu này tới bộ vi xử lý của reader.

    • Bộ vi xử lý (microprocessor)
    Thành phần này chịu trách nhiệm thực hiện các giao thức của reader để liên lạc với từng loại thẻ phù hợp. Nó sẽ thực hiện giải mã và kiểm tra lỗi của các tín hiệu tương tự từ bộ nhận tín hiệu. Ngoài ra, nó còn bao gồm thêm logic tùy chỉnh để lọc mức thấp và xử lý dữ liệu đọc được từ thẻ.

    • Bộ nhớ (memory)
    Được sử dụng để lưu trữ dữ liệu : thông số cấu hình của reader và danh sách các thẻ có thể đọc được.

    • Kênh vào / ra đối với các cảm biến, bộ truyền động và bộ báo hiệu ở bên ngoài
    Cung cấp 1 kết cấu cơ học để bật hay tắt reader phụ thuộc vào các sự kiện ở bên ngoài. Thông thường ta hay gặp các loại cảm biến : cảm biến chuyển động hay cảm biến ánh sáng để phát hiện sự hiện diện của các đối tượng được gắn thẻ trong vùng đọc của reader. Sau đó cảm biến có thể thiết lập reader để đọc thẻ này.

    • Khối điều khiển
    Cho phép 1 thực thể bên ngoài, hoặc là con người hoặc là 1 chương trình máy tính thực hiện liên lạc với reader và điều khiển các chức năng của nó cũng như điều khiển bộ báo hiệu và bộ truyền động được kết hợp với reader đó.

    • Khối giao tiếp truyền thông
    Cung cấp cách thức truyền thông tin tới reader, cho phép nó tương tác với các thực thể ở bên ngoài thông qua 1 thành phần điều khiển để chuyển dữ liệu lưu trữ trong nó, để nhận lệnh và gửi trở lại các phản hồi tương ứng.

    • Khối nguồn

    [​IMG]
    Hình 1 : Cấu trúc reader
    3. Cơ chế truyền tin :

    Modulated backscatter:
    Được triển khai với cả các thẻ thụ động cũng như với các thẻ bán tích cực.
    Trong kiểu truyền thông tin này, reader luôn luôn phải thực hiện “bắt chuyện”. Thẻ sử dụng kiểu truyền thông này sẽ không thể liên lạc được tại các thời điểm vắng mặt reader bởi vì nó phụ thuộc vào lượng năng lượng có trên reader để truyền dữ liệu của bản thân nó.

    Transmitter:
    Chỉ được triển khai với các thẻ tích cực.Trong quá trình truyền thông này, thẻ phát đi các thông điệp của nó tới môi trường xung quanh theo các khoảng cách chuẩn, bất chấp có sự hiện diện hay vắng mặt reader. Do đó, trong kiểu truyền thông tin này, thẻ luôn luôn phải thực hiện “bắt chuyện” trước reader.

    4. Giao thức :
    Giao thức được sử dụng nhiều trong công nghệ RFID hiện nay là EPCglobal Gen2
    Sau khi Reader chọn dc Tag làm việc. 2 bên phải thực hiện xác thực lẫn nhau, thẻ tag sẽ trả lời bằng cách gửi một số ngẫu nhiên 16bit RN16. .Reader nếu nhận dc sẽ gửi lặp lại số đó để xác nhận thẻ tag.Giao tiếp tiếp theo chứa thông tin gửi từ thẻ gồm :

    • Chuỗi điều khiển giao thức (protocol control bits - PC).
    • Chuỗi EPC trong thẻ. (Electronic Product Code)
    • Chuỗi mã kiểm tra lỗi CRC16.
    Sau đó reader mới kiểm tra thẻ thỏa mãn các yêu cầu mới tiếp tục thực hiện giao tiếp ở mức sâu hơn.

    [​IMG]
    Hình 2 : Giao thức EPCglobal Gen2

    Ưu – nhược điểm :
    Ưu điểm:

    • Nhận dạng mà không cần sự nhìn thấy
    • Cho phép nhiều thiết bị được đọc cùng 1 lúc
    • Bộ nhớ và lưu trữ dữ liệu: 1 thẻ RFID có thể lưu trữ từ 96bits đến 64Kbytes
    • Bền hơn mã vạch.
    • Thẻ RFID không những có thể đọc mà còn có thẻ ghi thông tin. Mã vạch chỉ chứa thông tin cố định, không thay đổi được.

    Nhược điểm:
    • Dễ bị ảnh hưởng gây tổn thương: có thể làm tổn hại 1 hệ thống RFID bởi việc phủ vật liệu bảo vệ từ 2 đến 3 lớp kim loại thông thường để ngăn chặn tín hiệu radio.
    • Việc thủ tiêu các thẻ phô ra: các thẻ RFID được dán bên trong bao bì và được phô ra rất dễ bị thủ tiêu.
    • Chuẩn công nghệ chưa có: quy định quốc tế và tiêu chuẩn cho công nghệ RFID hiện còn đang rất sơ khai

    II. Các vấn đề bảo mật RFID.
    Hệ thống RFID hoạt động dựa trên các kênh giao tiếp bên ngoài để kết nối dữ liệu đã được đăng kí bởi reader với các vùng dữ liệu khác.
    Các Hoạt động tấn công thường tập trung vào back-end của hệ thống RFID. Mục tiêu tấn công chủ yếu là vào vùng không gian giữa reader và transponder hoặc tấn công trực tiếp vào transponder.

    1. Tấn công transponder.
    Phá hủy – Cách ly
    Cách đơn giản để phá hủy Transponder là tác động vật lý hoặc đặt nó vào một điện trường đủ mạnh (vd lò vi sóng).
    Cách cách ly transponder tức là cách ly nó khỏi vùng từ trường của reader => có thể dùng lá nhôm bao bọc quanh nó. Với các hệ ghép cảm ứng, thì mạch dao động anten có thể được đóng gói bằng bề mặt kim loại lên trực tiếp bề mặt của nó. Như vậy từ trường của reader sẽ bị tiêu tán bởi dòng điện xoáy trên bề mặt kim loại. hoặc bị phản xạ lại trong các hệ backscatter. Do đó transponder sẽ không thể giao tiếp với reader. Hoặc dù có thì với các passive transponder sẽ không đủ nguồn để cung cấp cho chip hoạt động.

    Giả mạo – sao chép
    Loại transponder cơ bản và đơn giản nhất là read-only transponder, nó chỉ có 1 mã định danh cố định.

    [​IMG]
    Hình 3 : Sơ đồ khối của 1 transponder đơn giản

    Nếu như transponder chỉ đọc di chuyển vào vùng trường đủ mạnh của reader, nó sẽ ngay lập tức truyền liên tiếp các số serial của nó. Các reader phù hợp sẽ dễ dàng đọc được các số serial này. Người tấn công có thể sử dụng các thành phần rời rạc để tạo ra 1 transponder chỉ đọc và thay thế PROM mà chứa số serial của transponder bằng 1 bộ nhớ có thể lập trình nhiều lần (EPROM ) hay đơn giản chỉ là 1 chuyển mạch DIP. Và lập trình để đưa số serial của 1 transponder đã biết (bằng 1 cách nào đó) vào con con chip tự tạo này để tạo ra 1 bản sao của transponder thật. người tấn công sẽ dử dụng bản sao này để đánh lừa reader và giả mạo sự có mặt của transponder thật.
    Đối với các transponder có thể bộ nhớ có thể ghi được, thì thường thường, những vùng nhớ trong đó có thể dễ dàng ghi đọc, mà không có bất kì hạn chế nào cả, vì vậy, người tấn công có thể dễ dàng thực hiện việc lưu các dữ liệu có lợi cho bản thân hoặc sao chép dữ liệu sang 1 transponder khác.
    Những ứng dụng thường bị tấn công kiểu này là các hệ thống đi lại, hệ thống vé, … do các dữ liệu thường dễ dàng truy cập và không bị mã hóa.
    Biện pháp đơn giản nhất để tránh các tấn công kiểu này là tránh sử dụng các transponder chỉ đọc, và phải mã hóa truy cập tới dữ liệu.


    2. Tấn công môi trường truyền dẫn.
    Nghe lén.
    Các hệ thống RFID sử dụng sóng điện từ để giao tiếp cho nên có thể dễ dàng bị chặn để nghe lén, và đó cũng là mối nguy hiểm phổ biến nhất trong công nghệ RFID.
    Bộ thu Radio chỉ cần 1 hiệu điện thế ở đầu ra angten với 1 biên độ thấp để có thể thu được các tín hiệu cần thiết. do đó 1 vấn đề nảy sinh là giao tiếp giữa reader và transponder có thể bị chặn 1 cách bị động từ 1 khoảng cách rất xa.
    Các nghiên cứu đã chỉ ra rằng ở tần số 13.56MHz, giao tiếp của hệ thống ghép cảm ứng có thể bị chặn ở khoảng cách 3m. Với 1 băng thông của bộ thu chỉ vài kHz, tín iệu sóng mang không điều chế của reader có thể bị phát hiện ở khoảng cách vài trăn mét. Tuy nhiên, việc chặn 1 giao tiếp hoàn thiện thành công sẽ hiệu quả hơn với băng thông lớn hơn, dao động trong khoảng 100kHz đến vài MHz. mặt khác thì hiệu điện áp đầu vào cần thiết của reader tăng theo tỉ lệ Uin[dB] = √(B1+B2) , tuy nhiên, sự giao thoa cũng tăng lên với cùng tỉ lệ như vậy phụ thuộc vào mức độ mạnh của bộ truyền tải trong dải tần sóng ngắn.

    Tấn công từ chối dịch vụ - Blocker tag.
    Hệ thống RFID hoạt động với một Reader phục vụ nhiều Transponder trong vùng phủ sóng. Khi một Reader liên tục phát ra tín hiệu có thể có nhiều Tag trả lời do đó nguy cơ xảy ra xung đột. Do đó Reader phải sử dụng một giao thức đặc biệt gọi là “Tree-walking” để giao tiếp với từng Tag riêng biệt.Hoạt động của tree-walking có thể tóm tắt như sau : tại mỗi nút, Reader thực hiện đệ quy việc broadcast giá trị prefix của nút và nhận về giá trị là bit tiếp theo của Tag mà giống với prefix hiện tại.

    [​IMG]
    Hình 4 : Tree walking - RFID

    Tuy nhiên kể cả như vậy Reader cũng chỉ cùng lúc đáp ứng được một số lượng nhất định transponder.
    Như đã biết mỗi transponder có một số serial là một chuỗi n-bit nhị phân dùng để định danh. Reader sẽ sử dụng để quy thực hiện duyệt lần lượt từng bit trong chuỗi serial để xác định thẻ transponder. Tấn công vào giao thức này, các blocker tag sẽ phát trả lại đồng thời cả bit “0” và “1” khi nhận dc bất cứ request nào từ reader => các trạng thái xung đột bit liên tục xảy ra => tăng số lượng nút phải xử lý tại Reader. Giả sử mỗi transponder có ID là số gồm 32bit và thời gian reader xác định một số serial cụ thể là 1ms thì thời gian duyệt phải thực hiện của reader là
    T = 2^32 (ms) ~ 50 ngày.

    Tấn công Relay attack.
    Đây là dạng tấn công đặc biệt, ở đó, người tấn công có thể mở rộng 1 cách có chủ ý khoảng cách giữa transponder và reader bằng cách đặt vào giữa 1 thiết bị truyền tải (relay). Người tấn công có thể mượn transponder trong 1 thời gian ngắn và sử dụng relay để mô phỏng với reader rằng transponder đang ở trong vùng dò tìm của reader. Để làm điều này, người tấn công không nhất thiết phải thực hiện những truy cập vật lý tới transponder, chỉ cần đặt relay vào giữa dải đọc của transponder. Thông thường, chủ sở hữu của transponder không để ý đến việc cuộc tấn công hoặc chủ sau 1 thời gian dài sau khi bị tấn công. Ví dụ như, transponder bị tấn công được sử dụng để thực hiện các giao dịch liên quan đến mua bán như shopping hoặc vé tàu.
    Relay attack cần phải có 2 thiết bị khác nhau được liên kết với nhau thông qua giao tiếp radio :

    • 1 thiết bị đặt gần reader được gọi là ghost (proxy), nó cho phép nhận các tín hiệu của reader và tạo ra 1 tải điều chế để giao tiếp với reader như 1 transponder.
    • 1 thiết bị đặt gần transponder được gọi là leech (mole, có khả năng cung cấp cho transponder nguồn cần thiết để hoạt động cũng như giải mã tải điều chế của transponder như là 1 reader.

    Tuy nhiên, có 1 rủi ro có thể xảy ra khi sử dụng biện pháp này, đó là, nếu khoảng cách giữa ghost và leech quá lớn thì sẽ thời gian truyền tín hiệu giữa ghost và leech sẽ bị trễ 1 khoảng thời gian lớn. Tín hiệu phản hồi từ transponder sẽ không được reader chấp nhận do thời gian time-out có thể vượt quá mức cho phép nhiều lần.
    Một giải pháp để khắc phục đó là sử dụng xếp chồng giao thức.Tại cả ghost và leech, dữ liệu được đóng gói hoàn chỉnh qua tất cả các bước giao tiếp với thiết bị thật sau đó mới được gửi đi. Giải pháp này sẽ khắc phục được thời gian time-out tuy nhiên đối với các hệ thống sử dụng xác thực giao tiếp giữa transponder và reader sẽ không thực hiện được.

    III. Giải pháp.
    1. Chứng thực đối xứng lẫn nhau :
    Chứng thực lẫn nhau giữa reader và transponder dựa trên cơ sở về kiểu chứng thực bắt tay 3 bước, trong đó cả 2 bên đều phải kiểm tra khóa mã hóa bí mật của bên còn lại.
    Trong giải thuật này, cả transponder và receiver trong 1 ứng dụng đều sở hữu cùng 1 mã khóa bí mật K (giải thuật đối xứng). khi transponder lần đầu tiên xuất hiện trong vùng dò tìm của reader, nó không thể được xem là 2 đối tác của 1 giao tiếp trong cùng 1 ứng dụng. nhìn từ phía reader, cần phải bảo vệ ứng dụng khỏi các những hành vi sử dụng những dữ liệu giả mạo, tương tự, đứng từ phía transponder, cần phải bảo vệ dữ liệu được lưu trữ khỏi việc lấy ra và ghi đè dữ liệu.

    [​IMG]
    Hình 5 : Chứng thực đối xứng lẫn nhau giữa transponder và reader

    Việc chứng thực lẫn nhau bắt đầu bằng việc, reader gửi lệnh GET_CHALLENGE tới transponder, 1 số ngẫu nghiên RA được tạo ra ở transponder và gửi lại reader. Tiếp tục, reader sẽ tạo ra 1 số ngẫu nghiên RB , sử dụng cùng 1 khóa bí mật K và cùng 1 giải thuật khóa chung ek, reader sẽ tính toán 1 khối dữ liệu mã hóa (token 1), chứa cả 2 số ngẫu nghiên và các dữ liệu bổ xung, rồi gửi cho transponder.

    Nhận được token 1 transponder tiến hành giải mã số ngẫu nhiên R’A chứa trong plain text được so sánh với RA. Nếu giống nhau, sẽ tiến hành xác định xem các khóa chung có giống nhau không. Transponder tạo ra 1 số ngẫu ngiên RA2 và sử dụng để tính toán khối dữ liệu mã hóa tiếp theo, chứa RB và dữ liệu điều khiển, sau đó gửi trả lại reader.

    Reader giải mã khối token 2 và kiểm tra RBđã gửi trước đó, với R’B vừa nhận được, nếu chúng tương đồng, sẽ kiểm tra lại 1 lần nữa khóa chung. Khi transponder và reader đã biết chắc chắn rằng chúng thuộc về cùng 1 hệ thống thì những giao tiếp sâu hơn sẽ được hợp pháp hóa.
    Những ưu điểm của chứng thực đối xứng lấn nhau :

    • Khóa bí mật không bao giờ truyền thông quá sóng radio, chỉ có những số ngẫu nghiên đã mã hóa được truyền đi.
    • Hai số ngẫu nghiên luôn được mã hóa đồng thời, điều này sẽ tránh được khả năng thực hiện việc chuyển đổi ngược sử dụng RA để tính toán lại token 1, và sử dụng nó để tính toán ra khóa bí mật.
    • Token có thể được mã hóa bằng bất kì giải thuật nào.
    • Việc sử dụng 2 số ngẫu nhiên hoàn toàn được sinh ra từ 2 nguồn độc lập có nghĩa là việc chứng thực tuần tự để sử dụng lại ở 1 thời điểm khác là không thực hiện được.
    • Một khóa ngẫu nhiên có thể được tính toán từ bộ sinh số ngẫu nhiên, để bảo mật theo kiểu mã hóa logic việc truyền dữ liệu sau này.

    2. Chứng thực sử dụng khóa biến đổi :
    Để nâng cao bảo mật trong chứng thực giữa Reader và Transponder => yêu cầu khóa Kx sử dụng là khác nhau với mỗi transponder.Để thực hiện việc này,khóa Kx sẽ được tính toán sử dụng giải thuật mã hóa logic sử dụng số ID_number và khóa chính Km. Sau đó Kx được đưa ghi vào transponder.
    Việc chứng thực bắt đầu bằng request Get_ID gửi đến Transponder.
    Tại transponder tính toán và lưu lại Kx, gửi trả về reader số ID_number.
    Tại Reader thực hiện tính toán và lưu lại Kx dựa vào số ID_number nhận dc và khóa chính Km.
    Sau đó Reader gửi request Get_Challenge đến transponder. Transponder tại một số ngẫu nhiên A và gửi trả Reader.
    Tiếp tục, tại Reader tạo một số random B, sử dụng khóa Kx đã lưu và giải thuật khóa chung ek để tính toán token1 gửi cho transponder.

    Tiếp tục, tại transponder giải mã token1 để lấy RA, so sánh A | RA và khóa chung Kx có giống nhau không. Nếu giống nhau, transponder tạo số ngẫu nhiên A2 , tính toán token2 và gửi cho reader :

    Reader giải mã chuỗi token2 và kiểm tra RB và khóa chung Kx. Sau các bước xác nhận thành công thì các bước giao tiếp sâu hơn sẽ được thực hiện.

    [​IMG]
    Hình 6 : Chứng thực sử dụng khóa biến đổi
     
    Last edited by a moderator: 15/09/14, 03:09 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. python

    python VIP Members

    Tham gia: 20/06/13, 09:06 PM
    Bài viết: 72
    Đã được thích: 12
    Điểm thành tích:
    18
    bài viết kha hay và chi tiết thanks bạn
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan