1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề thi có đáp án môn an toàn thông tin

17 836 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 217,11 KB

Nội dung

THÔNG TIN VÀ DỮ LIỆU - • • • • • Thông tin thu quan sát thấy Dữ liệu cung cấp, giới khách quan bên  Nhìn vào liệu để thu thông tin Thông tin Dữ liệu Đối tượng Vật Trừu tượng Trực quan Thành phần tương tác Kết tương tác Vấn đề lớn - Biểu diễn - Lưu trữ quản lý - Xử lý - Truyền liệu Bảo mật thông tin - Bảo mật - tính toàn vẹn - tin cậy  Trong ngữ cảnh cụ thể, thuộc tính cụ thể phải đảm bảo Tại quan tâm - Thông tin quan trọng - Dữ liệu không an toàn - An ninh thông tin thú vị  Cuối cùng, chủ đề bạn Mục đích mục tiêu - Hiểu nguyên tắc khái niệm - Tìm hiểu cách nguyên thủy mật mã làm việc - Tìm hiểu làm để sử dụng chúng cách xác lý an ninh  Cân khả sử dụng bảo mật luôn thách thức Điều kiện tiên phân loại - Điều kiện tiên o Nền toán học o Kỹ lập trình o Mạng máy tính - Phân loại: Chú ý Khoảng Cuối Tổng số • lý thuyết chức thiết lập - lý thuyết tập hợp - hàm số Quan hệ: 1-1, 1-n.n-1, n-n 10 30 60 100 • • Miền so với đồng miền Hình ảnh trước với hình ảnh injective, surjective, song ánh ngược Đột biến trước xác suất rời rạc - ngôn ngữ tính ngẫu nhiên - "Xác suất đồng tiền rơi xuống đất xác suất chiếm 0,5." Điều có nghĩa gì? - Giải thích frequentist - Giải thích Bayes - Biến cố Cho tập hợp: A ⊆ U: Pr[A] = ΣP(x) ∈ [0,1] Các tập A gọi biến cố - Biến ngẫu nhiên: o Một biến ngẫu nhiên X hàm: X: U⟶V o Pr[ X=v ] := Pr[ X-1(v) ] - Thuật toán bất định: y ⟵ A(x) - Thuật toán ngẫu nhiên: o Đầu biến ngẫu nhiên: y ⟵ A( x ; r ) y ⟵ A( x ) (R nằm mũi tên) Lý thuyết phức tạp: - Các mô hình toán học tính toán gì? Máy tự động - Cái vấn đề máy tính (không) giải Lý thuyết tính toán - Cái làm cho số vấn đề tính toán khó tin tức thành dễ dàng Lý thuyết độ phức tạp - Tỷ lệ tăng trưởng / thứ tự tăng trưởng BẢO MẬT • Khi bạn cần quan tâm đến bảo mật: Khi thông tin cá nhân trở thành liệu • Làm để làm được? Là khác biệt Steganography mật mã học • Bí mật riêng tư Thông tin riêng tư bị phá vỡ chuyển thành liệu thông qua xử lý Ta biến liệu thành liệu khác thông qua phương pháp dấu thư thành data’ khác F[k,L(I)] = data’ • Muốn data -> data’ ta thay đổi vị trí liệu Chia data thành khúc, mảnh -> xếp lại vị trí không định, khác với ban đầu -> data’ Muốn mật mã tốt cần: - Số lượng mảnh nhiều - Các mảnh gần giống MẬT Mà CỔ ĐIỂN • Thông tin thông qua mật mã để mã hóa liệu • Mật mã đối xứng(symmetric cipher) Một thuật toán mã hóa xác định (K, P, C) cặp thuật toán hiệu (E, D), nơi: K: tập hợp không gian khóa P: tập hợp gốc C: Văn mã hóa E(mã hóa) : K*P  C D(giải mã): K*C -P Ràng buộc: m thuộc P, k thuộc K: D(k,E(k,m))=m E chọn ngẫu nhiên D xác định  Chúng có số thuật toán mã hóa xác định chúng - Mật mã dịch chuyển: Def: Cung cấp tập hợp chữ A P = C = A* K tập hợp tất hoán vị E (mã hóa): E(k, m) = m[k(1)]m[k(2)]….m[k(n)] D (giải mã): D(k, c) = c[k-1(1)] c[k-1(2)]… c[k-1(n)] Ví dụ xem xét câu ngắn này: 35 chữ = 50*1030 hoán vị - Không khả thi • Mật mã thay thế(substitution cipher): Def: cho hai chữ A B P = A* and C = B* K = { k | k is a bijection from A to B} E (Encryption): E(k, m) = k(m[1])k(m[2]) … k(m[n]) D (Decryption): D(k, c) = k-1(c[1]) k-1(c[2]) … k-1(c[n]) - Mono mật mã chữ cái: 26 chữ = 5*1026 mật mã chữ - Thực • Nguyên tắc Kerchkhoff:  Cái làm cho mật mã Vigenefre trở thành yếu kém? DÒNG MẬT Mà (STREAM CIPHER) • • • Một mật mã an toàn gì? Các mật mã tốt gì? Nguyên tắc cốt lõi mật mã đại: - Định nghĩa thức: xác, mô hình toán học định nghĩa phương tiện bảo mật - Giả định: thỏa mãn rõ ràng không mơ hồ - Chứng minh an ninh: di chuyển từ thiết kế - phá – vá - Mô hình mối đe dọa: o Khả công o Những khả công cho có Yêu cầu bảo mật: muốn tránh công từ làm việc? • Mô hình mối đe dọa mã hóa: - Mật mã văn - công (COA) - Tấn công biết văn trước (KPA) - Tấn công văn tuý (CPA) - Tấn công mã - (CCA) • Yêu cầu bảo mật: - Không thể thu hồi khóa bí mật: o Dễ dàng để thiết kế chương trình mã hóa để giấu chìa khóa hoàn toàn, không an toàn o Cần thiết chưa đủ o Chính phương tiện để kết thúc, cuối - Không thể thu hồi văn biết trước: o 90% văn biết trước o ký tự văn bết trước o bít văn bết trước - Các văn mật mã nên tiết lộ thông tin rõ - Xem lại xác suất rời rạc: o Cho tập hợp: A ⊆ U: Pr[A] = ΣP(x) ∈ [0,1] o Các tập A gọi biến cố o Biến ngẫu nhiên: Một biến ngẫu nhiên X hàm: X: U⟶V - Pr[ X=v ] := Pr[ X-1(v) ] Thuật toán bất định: y ⟵ A(x) Thuật toán ngẫu nhiên: Đầu biến ngẫu nhiên: y ⟵ A( x ; r ) y ⟵ A( x ) (R nằm mũi tên) o Xác suất điều kiện: xác suất mà kiện xảy ra, giả định số kiện khác xảy ra: Pr[ A | B ] = Pr [ AB] / Pr[ B] o Hai biến ngẫu nhiên X, Y độc lập nếu: cho tất x, y: Pr[ X=x | Y=y] = Pr [X=x] o Luật tổng xác suất E1, E2, E3, , En phân vùng tất khả Sau cho A: Pr[A] = i��[��i] = i�� � | �i ��[ �i] o Định lý Bayes: Pr[ A | B] = Pr [B | A].Pr[A] / Pr[B] • Thông tin lý thuyết an ninh: Def: mật mã (K, P, C) có bí mật hoàn hảo nếu: Mọi m0, m1 thuộc P (len(m0)=len(m1 )) and c thuộc C Pr(E(k,m0)=c) = Pr(E(k,m1)=c) k đồng K(kK R) • OTP (): P=C={0,1}n K = {0.1}n – với k chuỗi bít ngẫu nhiên mà độ dài độ dài thông điệp E(k,m)= k xor m o o D(k,c) = k xor c - OTP giữ bí mât hoàn hảo - Lý do1: m,c Pr(E(k,m) = c) = Nếu m,c : = const OTP giữ bí mật hoàn hảo - Lý 2: m,c Nếu E(k,m) = c k xor m = c , k= m xor c OTP giữ bí mật hoàn hảo - (K,P,C) gọi bí mật cách tuyệt đối nếu: m0, m1 P(len(m0 )= len(m1)) c C Pr(E(k,m0) =c) = Pr(E(k,m1)=c)  khóa dùng lần, chiều dài khóa chiều dài message , làm cho không khả thi - Câu hỏi 1: Chứng minh mật mã OTP perfect chiều dài khóa phải lớn chiều dài message  Trả lời: Nếu |key| < |m| Mỗi c có m -> hệ Pr c có m|key| - Câu hỏi 2:Chứng minh OTP perfect: Perfect: m0,m1 P k K, c C Kết hợp với định nghĩa OTP phía ta có: m,c,k : Pr[E(k,m)=c] = const = với const = 1; k xor m = c k=m xor c • Mã hóa dòng ( stream cipher ) hàm PRG - Ý tưởng: key OTP ngẫu nhiên - Hàm PRG: sinh số giả ngẫu nhiên G={0,1}S =  {0,1}n , n>>S Len(k) < len(m) E(k,m) = m xor G(k) D(k,c) = c xor G(k) Do len(key) < len(m) => stream cipher perfect PRG ngẫu nhiên -> strem cipher an toàn Ngẫu nhiên -> dự đoán  Tìm PRG -> dự đoán -> PRG dự đoán nếu: i: G(k)|1,…,i -> G(k)|i+1……,n  Nếu biết đoạn đầu m -> biết G(k) -> biết full đoạn m  Nếu G(k) dự đoán -> không an toàn - CHúng ta nói : G: K->{0,1}n dự đoán Thuật toán hiệu A tồn 0 dự đoán xác suất nhỏ - Negligible ( không đáng kể) non-negligible( đáng kể) o Thực hành: β vo hướng và: β đáng kể β>= 1/230 β không đáng kể β =0 - R>=0 β đáng kể nếu: (≥1/poly , nhiều ) β không đáng kể nếu: (≤ 1/poly, ) G: K-> {0,1}n PRG Đ/nghĩa: [kR K, output G(k)] phân biệt từ [r R {0,1}n , output r] - Kiểm tra thống kê khoảng {0,1} thuật toán A cho A (x) kết đầu Ví dụ: - Lợi thế: G:K {0,1}n PRG A hàm thống kê kiểm tra khoảng {0,1}n Đ/nghĩa: Ví dụ: A(x) = 0=> - PRG an toàn: G: K {0,1}n PRG an toàn hàm kiểm tra thống kê A thỏa mãn: không đáng kể o Một PRG an toàn đoán trước PRG ⇒ dự đoán PRG không an toàn Giả sử A thuật toán hiệu s.t o Một PRG an toàn đoán trước Xác định thống kê thử nghiệm B là: rR [0,1]n: Pr[B(r)=1] = ½ rR K: Pr[B(G(k))=1] > ½+ o Một PRG đoán trước an toàn Cho G: K ⟶ {0,1} n PRG Nếu ∀ i ∈ {0, , n-1} PRG G đoán trước vị trí i •  G PRG an toàn Không thể phân biệt (Indistinguishable) Cho phân bố P1 P2 = {0,1}n Ta nói P1, P2 tính toán phân biệt (P1~pP2) Với hàm kiểm tra thống kê A: Ví dụ: PRG an toàn : { k ⟵K : G(k) } ≈p {0,1}n) • Semantically sercurity( An toàn ngữ nghĩa) Đ/nghĩa: Cho b thuộc [0,1] Ta có: Mật mã E, A • OTP An toàn ngữ nghĩa: Vì |m0| = |m1| k bên xét bất định MẬT Mà KHÓA( BLOCK CIPHER) • • • Mã khối mật mã Monoalphabetic - Mã khối Khả thi hay không khả thi (Kích thước khối 64-bit => thuật toán mã hóa kích thước chữ = 64 * 264 bit ≈ 220 TB)  Tìm mô hình toán học để tránh nhầm lẫn Hàm ngẫu nhiên (RF) xác định (X, Y): f: X  Y Funs [X, Y]: tập tất chức từ X đến Y Trong f thống nhấ: Funs[X,Y] (fR -Funs[X,Y]) Hàm ngẫu nhiên (PRF) xác định (K, X, Y): F: K x X  Y Đ/kiện: tồn thuật toán "hiệu quả" để đánh giá F (k, x) - PRFs an toàn: Để cho: F:K x X  Y PRF Funs[X,Y]: tất hàm từ X đến Y SF = { F(k,.) s.t k K } Funs[X,Y] Trực giác: PRF an toàn hàm ngẫu nhiên funs [X,Y] phân biệt từ hàm ngẫu nhiên SF - Cho b=0,1 xác định thử nghiệm EXP(b): • Def: F PRF an toàn cho tất "hiệu quả" A: AdvPRF [A, F]: = | Pr [EXP (0) = 1] - Pr [EXP (1) = 1] | "không đáng kể" Hàm hoán vị ngẫu nhiên (PRP) xác định (K, X): E: K x X  X Như mà: Tồn thuật toán "hiệu quả" xác định để đánh giá E (k, x) Chức E (k, ) trong-một Tồn thuật toán "hiệu quả" đảo ngược D (k, y) - PRPs an toàn: F: K x X  Y Hoán vị [X, Y]: tập hợp một-đối-một chức từ X đến Y SF = {F (k, ) s.t k K} ⊆ hoán vị [X, Y] Hãy để F: K  X  Y PRP o Trực giác: PRP an toàn hàm ngẫu nhiên Hoán vị [X, Y] phân biệt từ hàm ngẫu nhiên SF - Cho b=0,1 xác định thử nghiệm EXP(b): Def: F PRP an toàn cho tất "hiệu quả" A: AdvPRP [A, F]:=|Pr [EXP (0)=1] - Pr [EXP (1)=1] | "không đáng kể" - Chứng minh có hàm PRF sinh hàm PRG: • F: K x {0,1}n -> {0,1}n PRF an toàn X/dựng G: K x {0,1}n.t PRG an toàn G ={0,1}s  {0,1}n G(k) = F(k,0) || F(k,1)||…||F(k.t) = n.t bit (k,0): dãy toàn (k,1): dãy có số lại (k,t): dãy có số t lại Thực F(k,0) ; F(k,1) … riêng biệt, chạy song song -> chạy nhanh Còn RC4 chạy // hàm lồng nhau-> thời gian tốn  Hàm sinh khóa phải PRG số lần lặp chủ động TOÀN VẸN Làm để biết liệu bị thay đổi hay chưa? Redundancy (dư thừa):tạo sẵn vài khác(copy) cần sãn có để dùng • Đem Data’ so sánh với Data”: Nếu = -> data Nếu ≠ tương đối -> data Nếu ≠ tuyệt đối -> ≠ data Hàm băm( hash function) H: M T hàm băm (|M| >> |T|) h:{0,1}*  {0,1}n Ví dụ: Input: m có n khối bít Output: khối n bít ci= bi1 xor bi2 xor … bim-1 xor bim hàm băm tốt phát tính toàn vẹn: h: MT m0,m1 M ; m0 ≠ m1 • Chống xung đột ( collision resistance) - Hàm băm tốt có khả chống xung đột - Xung đột message khác có giá trị nhau: m0,m1 M; m0 ≠ m1 & h(m0) = h(m1) - Hàm gọi kháng xung đột nếu: AdvCR[A, h] = Pr[A xung đột đầu cho h] không đáng kể - Mã hóa hàm băm (cryptographic hash function (CHF)) (username, password)  (username, h(password)) o Quản lý gói liệu (software package distribution) - Phương pháp công tổng quát hàm băm: h:{0,1}*  {0,1}n hàm băm {0,1}* >> {0,1}n o Tìm xung đột: tìm P(h(x1),….,h()) =1 o thuật toán: Chọn 2n / tin nhắn ngẫu nhiên {0,1} *: m1, , Đối với i = 1, , 2n/2 tính ti = H (mi) ∈ {0,1} n Hãy tìm va chạm (ti = tj) Nếu không tìm thấy, trở lại bước Độ phức tạp theo thời gian = không gian = O(2n/2)  Hàm băm mật mã hàm băm kháng xung đột, thỏa mãn vừa hàm băm vừa thỏa mãn thuật toán mật mã chống xung đột : AdvCR[A,h] = Pr[A xung đột đầu cho h] không đáng kể - Xây dựng hàm băm(hàm nén) h: T x X  T  {0,1}n {0,1}r  {0,1}n {0,1}n+r  {0,1}n => Xây dựng hàm có độ dài n+r nén xuống độ dài n Nếu r nhỏ dễ dàng xây dựng hàm nén H: X≤L  T (r ≤ L) g.thích: {0,1}L*r  {0,1}n => Xây dựng hàm có độ dài L*r nén xuống độ dài n - Bài tập: Chứng minh h hàm kháng xung đột -> H hàm kháng xung đột (1) o C/minh có xung đột H có xung đột h (2) Giải: Ta cần biết, (2) -> (1) đúng, ngược lại chưa Giả sử ; H (m) = H (m ') Chúng làm cho vụ xung đột cho h IV = H0, H1,….,Ht, Ht+1 = H(m) IV = H’0, H'1,….,H’r, H’r+1 = H(m’) h =(Ht,mt||PB) = Ht+1= H’r+1 = h(H’r,m’r|| PB’) - Nếu Ht ≠ H’r mt ≠ m’r PB ≠ PB’ ta có xung đột h - Nếu h =(Ht,mt||PB) = Ht+1= H’r+1 = h(H’r,m’r|| PB’) tức Ht = H’r mt = m’r PB = PB’=> độ dài message => gộp điều kiện thành chung cái: t=r Khi ta được: h(Ht-1,mt-1) = Ht+1 = H’t = h(H’t-1,m’t-1) - Ta lại có trường hợp con:  Ht-1 ≠ H’t-1 mt-1 ≠ m’t-1 => xung đột h -> dpcm Ht-1=H’t-1 mt-1=m’t-1=> lại g.sử t=r lùi Ht-1=Ht-2 ;mt-1=mt-2 => Bước cuối ta m=m’ Nhưng điều kiện ban đầu m≠m’ => trường hợp không xảy => xảy trường hợp lại  Xung đột h => đpcm  Làm để xây dựng nén hàm số Hàm nén Davies mayer ( tốt nhất) Khối cho thuật toán mã hóa E: {0,1}r  {0,1}n Hàm nén Davies mayer: h (H, m)= E(m,H) xor H Giả sử E thuật toán mã hóa lý tưởng (bộ sưu tập | K | ngẫu nhiên) Tìm vụ va chạm h (H, m) = h (H ', m') có O(2n / 2) đánh giá (E, D) o  • AdvMAC [A, I] = 28 Cho E: {0,1} n × {0,1} n ⟶ {0,1} n đơn giản h (H, m) = E (m, H) ⨁H⨁m h (H, m) = E (H⨁m, m) ⨁m Tổng cộng có 12 biến thể Biến thể tự nhiên khác không an toàn: h (H, m) = E (m, H) ⨁ m AdvMAC [A, I] = 29 • Thông điệp mã xác thực (Message Authentication Code – MAC) - MAC: I=(S,V) xác định (K,M,T) cặp thuật toán: S(k,m): t T V(k,m,t): St:  MAC tốt cần thỏa mãn an toàn - Phương pháp công: công lựa chọn tin nhắn m1,m2,… ,mq công cho ti  S(k,mi) - Yêu cầu bảo mật: tồn 'unforgeability' (m, t) hợp lệ (m, t) ∉ {(m1, t1), (m2, t2), , (mq, tq)} - Định nghĩa: MAC: I=(S,V) adv A xác định trò chơi • • • b=1: V(k,m,t) = (m,t) {(m1,t1),….,(mq,tq)} b=0: không Def: I = (S, V) MAC an toàn cho tất "hiệu quả" A: AdvMAC [A, I] = Pr [Chal outputs Adv= 1] "không đáng kể" Định lý an toàn PRF F: K × X ⟶ Y 1/|Y| không đáng kể MAC an toàn Nếu quan sát A công hiệu PEF thì: AdvMAC[A,IF] ≤ AdvPRF[B,F] +1/|Y|  IF an toàn |Y| lớn |Y| = 280 Chứng minh phác thảo (Proof sketch) Giả sử f: X Y hàm ngẫu nhiên thực sự(RF) MAC đối thủ A phải giành chiến thắng trò chơi sau: A chiến thắng t = f(m) m ∉ { m1 , … , mq }  Pr[A thắng] = 1/|Y| Loại bỏ MACs dựa PRF Giả sử: F: K x X  {0,1}n PRFs an toàn Ft(k,m) = F(k,m)[1…t] Với t gửi lại cho A o Trên chiều ngược lai, hacker lại chặn t, từ x t -> tìm thuật giải -> không an toàn -> hacker bình đẳng với A B-> Giải pháp làm cho hacker không bình đẳng với A,B o Dùng hàm băm mật mã với trường hợp biết username password Bài 3: a) MAC: I=(S,V) Tìm m0 ≠ m1 S(k,m0 ) = S(k,m1) ½ key kK Giải: Do ½ key kK -> AdvMAC[A,I] = ½ >> negligible = (1/2)80  Non- negligible -> không an toàn b) S(k,m): K x m  {0,1}5  AdvMAC[A,I] = ½5 =1/32 >> negligible -> non- negligible  Muốn cho tag an toàn tag phải đủ dài n đủ lớn c) Giả sử có F: K x X  Y với PRF: Y ={0,1}10 AdvMAC[A,Y] = = non-negligible -> Không an toàn TIN CẬY • Chứng số dùng để xác minh public key người , người khác, có IDA PuA • CA( cetigale Authouty) người cấp chữ ký số • Chữ ký số liệu sinh nhờ liệu ký, văn ký thông tin riêng tư có • Thỏa mãn lược đồ: d = S(m,PrA) o Không dùng chữ ký cho văn thứ o Có d tìm PrA o Có PrA tìm d o Phải xác minh chữ ký  d=E(PrA,h(m)) • • • • - - - Trong đó: m văn PrA private key d chữ ký số Chứng số gì? Chứng số tệp tin điện tử dùng để xác minh danh tính cá nhân, máy chủ, công ty Internet Nó giống lái xe, hộ chiếu, chứng minh thư hay giấy tờ xác minh cá nhân Để có chứng minh thư, bạn phải quan Công An sở cấp Chứng số vậy, phải tổ chức đứng chứng nhận thông tin bạn xác, gọi Nhà cung cấp chứng thực số (CA - Certificate Authority) CA phải đảm bảo độ tin cậy, chịu trách nhiệm độ xác chứng số mà cấp Trong chứng số có ba thành phần chính: Dữ liệu cá nhân người cấp Khoá công khai (Public key) người cấp Chữ ký số CA cấp chứng Chữ ký số CA cấp chứng chỉ: Còn gọi chứng gốc Đây xác nhận CA, bảo đảm tính xác hợp lệ chứng Muốn kiểm tra chứng số, trước tiên phải kiểm tra chữ ký số CA có hợp lệ hay không Trên chứng minh thư, dấu xác nhận Công An Tỉnh Thành phố mà bạn trực thuộc Về nguyên tắc, kiểm tra chứng minh thư, phải xem dấu này, để biết chứng minh thư có bị làm giả hay không Lợi ích chứng số: mã hóa- bảo mật; Chống giả mạo; xác thực, chống chối cãi nguồn gốc Mã hoá - Bảo mật: Khi người gửi mã hoá thông tin khoá công khai bạn, chắn có bạn giải mã thông tin để đọc Trong trình truyền qua Internet, dù có đọc gói tin mã hoá này, kẻ xấu biết gói tin có thông tin Đây tính quan trọng, giúp người sử dụng hoàn toàn tin cậy khả bảo mật thông tin Chống giả mạo Khi bạn gửi thông tin, liệu email, có sử dụng chứng số, người nhận kiểm tra thông tin bạn có bị thay đổi hay không Bất kỳ sửa đổi hay thay nội dung thông điệp gốc bị phát Xác thực Khi bạn gửi thông tin kèm chứng số, người nhận xác định rõ danh tính bạn Có nghĩa dù không nhìn thấy bạn, qua hệ thống chứng số mà bạn người nhận sử dụng, người nhận biết chắn bạn người khác - Chống chối cãi nguồn gốc Khi sử dụng chứng số, bạn phải chịu trách nhiệm hoàn toàn thông tin mà chứng số kèm Trong trường hợp người gửi chối cãi, phủ nhận thông tin gửi (chẳng hạn đơn đặt hàng qua mạng), chứng số mà người nhận có chứng khẳng định người gửi tác giả thông tin Trong trường hợp chối cãi, CA cung cấp chứng số cho hai bên chịu trách nhiệm xác minh nguồn gốc thông tin, chứng tỏ nguồn gốc thông tin gửi

Ngày đăng: 29/11/2016, 11:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w