SHA-2, mặt khác đáng kể khác với các hàm băm SHA-1.SHA-1 là sử dụng rộng rãi nhất hiện có của hàm băm SHA, và được sử dụng trong một số ứng dụng bảo mật sử dụng rộng rãi và giao thức.Tro
Trang 1BÁO CÁO BÀI TẬP SỐ 1
Họ và tên sinh viên: Võ Tiến Đạt N13DCCN022 D13CQCP01-N
Giảng viên hướng dẫn: TS Võ Xuân Thể
Môn: Kiến trúc và thiết kế phần mềm
Chủ đề: Tổng hợp và tiềm hiểu về các yếu tố công nghệ mới.
MỤC LỤC
I HYPER-V (VIRTUAL) VÀ CÁC HỆ THỐNG MÔ PHỎNG (EMULATOR / SIMULATOR): 3
1 Hyper-V (Virtual): 3
2 Các hệ thống mô phỏng (Emulator/ Simulator): 4
II CÔNG NGHỆ PHÒNG VÀ CHỐNG HACKER (HACKING): 6
III PHẦN MỀM MÃ NGUỔN MỞ VÀ GPL & GNU: 9
1 Phần mềm mã nguồn mở: 9
2 GNU & GPL: 10
IV CHỮ KÝ SỐ (CHỮ KÝ ĐIỆN TỬ) VÀ MỘT SỐ KỸ THUẬT MÃ HÓA CHỮ KÝ SỐ, GIỚI THIỆU CÁC GIẢI THUẬT SHA VÀ RSA : 11
1 Chữ ký số: 11
2 Một số giải thuật mã hóa chữ ký số: 11
V CÔNG NGHỆ TÌM KIẾM VÀ ĐỊNH VỊ: 15
1 Sematic Web (Web ngữ nghĩa): 15
2 Điện toán đám mây (cloud computing): 16
3 GoogleMap API, Facebook API: 18
4 Kỹ thuật tin nhắn sms trong phần mềm: 20
VI CÔNG NGHỆ NHẬN DIỆN VÀ THỊ GIÁC MÁY TÍNH (COMPUTER VISION): 22
VII KHO DỮ LIỆU, KHAI PHÁ DỮ LIỆU, CÔNG NGHỆ TRI THỨC VÀ TIN SINH HỌC (BIOINFOMATICS): 24
1 Khai phá dữ liệu: 24
2 Công nghệ tri thức: 26
3 Tin sinh học (BioInfomatics) 27
VIII NGÂN HÀNG ĐIỆN TỬ (EBANKING): 27
IX THƯƠNG MẠI ĐIỆN TỬ (ECOMMERCE) VÀ THANH TOÁN ĐIỆN TỬ (EPAYMENT): 28
1 Thương mại điện tử (ecommerce): 28
2 Thanh toán điện tử (ePayment): 29
X ERP VÀ CRM: 30
1 ERP: 30
2 CRM: 32
XI DỊCH VỤ SEO: 33
XII E-LEARNING VÀ DISTANCE LEARNING: 33
XIII BÁO ĐIỆN TỬ (EPAPER) VÀ RSS: 36
Tp.HCM, ngày 17 tháng 04 năm 2017 2015
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
o0o
BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 2
o0o
Trang 3I HYPER-V (VIRTUAL) VÀ CÁC HỆ THỐNG MÔ PHỎNG (EMULATOR /
SIMULATOR):
1 Hyper-V (Virtual):
Công nghệ ảo hóa đang trở thành một phần của cuộc sống chúng ta
Virtual là việc tạo ra một phiên bản ảo ( không phải thiết kế vật lí), bao gồm hệ điều hành vàmột số thiết bị lưu trữ,…Ảo hóa diễn ra trên cùng một nền tảng phần cứng sau khi cài đặtphần mềm chuyên dụng – hypervision Hypervision là lớp bổ sung giữa cấu hình vật lý vàthành phần ảo Nó quản lý các tài nguyên phần cứng của hệ thống để chúng được phân phốihiệu quả giữa các máy ảo (VM)
Tài nguyên của hệ thống được cung cấp cho các máy ảo và hypervision phân phối các tàinguyên này một cách linh hoạt, thậm chí còn điều chỉnh thời gian tuy thuộc vào chính sáchcủa hệ thống và VM hiện hành
Guest software được cung cấp cho người dùng chạy trên máy ảo như thể nó đang chạy trênphần cứng vật lý
Từ khi công nghệ hyper-V ra đời, các công ty nhận ra rằng họ có thể tiết kiệm chi phí bằngcách chuyển từ cơ sở vật lý sang cơ chế ảo
Một số lợi ích mà công nghệ ảo hóa mang lại:
cũng như chi phí duy trì
Microsoft không thể bỏ qua xu hướng ảo hóa Microsoft giới thiệu Hyper-V như là một nền tảng ảo hóa trong năm 2008 và tiếp tục phát hành các phiên bản Hyper-V mới với các phiên bản máy chủ Windows mới Cho đến nay, có tất cả bốn phiên bản, bao gồm Windows Server
2012 R2, Windows Server 2012, Windows Server 2008 R2 và Windows Server 2008
Kiến trúc của Hyper-V:
Hình 1
Trang 42 Các hệ thống mô phỏng (Emulator/ Simulator):
Để thực hiện mobile testing, bạn cần một thiết bị di động Ngoài ra bạn cần sự hỗ trợ từ nhiều phần mềm giả lập khác nhau, trên những phần mềm giả lập đó bạn cần khẳng định một điều rằng làm thế nào sản phẩm của chúng ta sẽ làm việc và có giao diện trông giống như trên một thiết bị điện thoại di động nhất
Để có thể thực hiện kiểu test này, chúng ta cần phải có được những thiết bị cần thiết bị tương ứng
và sau đó tiến hàng test để kiểm tra xem ứng dụng có đạt được kỳ vọng phát triển hay không Chắc bạn cũng từng có suy nghĩ, muôn có đầy đủ thiết bị để thực hiện công việc test thì việc phải
bỏ ra một khoản chi phí khá lớn là điều không thể tránh khỏi Vậy có lựa chọn nào khả thi hơn không?
Các giải pháp cho vấn đề này là sử dụng Mobile Simulators and Mobile Emulators Đây chủ yếu
là các chương trình phần mềm được thiết kế để cung cấp mô phỏng cho các tính năng quan trọng của smartphone Tổng quan chúng rất giống nhau, nên trên thực tế chúng được sử dụng khá nhiều
để thay thế cho nhau
Hãy so sánh cách test trên một Emulator / Simulator khác nhau như thế nào đối với một Real Device - Thiết bị thực
Một Emulator / Simulator không thể bắt chước các tính năng sau đây:
Pin điện thoại di động
Trang 5 Camera của điện thoại di động.
Bây giờ chúng ta hiểu thêm về mobile simulators và mobile emulators
Có sự khác biệt giữa hay kiểu ứng dụng này Bảng sau đây liệt kê sự khác biệt lớn giữa một simulators và một emulators
II CÔNG NGHỆ PHÒNG VÀ CHỐNG HACKER (HACKING):
Giới thiệu một số biện pháp kỹ thuật quan trọng để phong chống tấn công vào các lỗ hổng antoàn của website
1 Cập nhật phiên bản ứng dụng thường xuyên để chống hack website
Điều này trông có vẻ hiển nhiên nhưng hãy chắc chắn rằng tất cả ứng dụng của mình đều được cập nhật phiên bản mới nhất, đây là công việc quan trọng giúp website trở nên an toàn Biện pháp này được áp dụng trên cả hệ điều hành máy chủ hoặc bất cứ ứng dụng nào đang chạy trên website, ví dụ như một hệ quản trị nội dung (CMS) hay một diễn đàn Khi một lỗ hổng bảo mật được tìm thấy trong ứng dụng, tin tặc luôn biết cách để lợi dụng triệt để chúng.Đây là một mối lo mà bất kỳ quản trị viên nào cũng phải đối mặt
Trang 6Nếu người dùng sử dụng hosting mà website không được cập nhật thường xuyên, họ phải nhanh chóng yêu cầu nhà cung cấp dịch vụ để thực hiện.
2 Chống tấn công SQL Injection
Tấn công SQL Injection xảy ra khi tin tặc khai thác điểm yếu trong các điểm đầu vào trên website, một tham số trong URL để tấn công và chiếm quyền truy cập, khai thác cơ sở dữ liệu của website Tin tặc có thể chèn các đoạn Shellcode độc hại nhằm thay đổi, lấy thông tin hoặc xóa dữ liệu trên website Biện pháp đơn giản để ngăn chặn kiểu tấn công này là kiểm duyệt chặt chẽ các tham số đầu vào
Ví dụ thực hiện truy vấn sau:
"SELECT * FROM table WHERE column = '" + tham_so_tu_url + "';"
Nếu tin tặc thay đổi tham số URL thành ‘ or ‘1’=’1 như sau:
"SELECT * FROM table WHERE column = '' OR '1'='1';"
Do 1 luôn bằng 1 nên câu lệnh cho phép tin tặc thêm vào các đoạn truy vấn SQL ở cuối cùng
sẽ được thực thi và làm sai lệch cách xử lý của ứng dụng và làm lộ các thông tin nhạy cảm
3 Chống tấn công XSS
Tấn công Cross site scripting xảy ra khi tin tặc cố gắng đưa các mã độc JavaScript, VBscript,Flash… hoặc những đoạn mã độc khác trang web nhằm thực thi mã độc với người dùng truy cập website
Để chống hack website cần chắc chắn rằng ứng dụng web đã được kiểm duyệt chặt chẽ các tham số đầu vào cũng như ứng dụng web kiểm soát được các dữ liệu hiển thị trên trình duyệt web
4 Hạn chế tối đa các thông báo lỗi
Thận trọng với các thông tin trả về của website, đặc biệt là các thông báo lỗi, nó có thể chứa các thông tin nhạy cảm về đường dẫn, dữ liệu RAM, tài khoản… Ví dụ nếu có một form đăng nhập trên website, người quản trị nên nghĩ về việc sử dụng ngôn ngữ giao tiếp với người dùng trong trường hợp đăng nhập thất bại thay vì hiển thị các thông báo lỗi mặc định
5 Kiểm duyệt phía máy chủ, kiểm duyệt form nhập
Kiểm duyệt dữ liệu đầu vào luôn phải được hoàn thành ngay trên trình duyệt và cả phía máy chủ Trình duyệt web có thể bắt những lỗi đơn giản như để trống trường bắt buộc hay nhập
ký tự chữ cái vào trường số điện thoại Tuy nhiên, tin tặc hoàn toàn có thể vượt qua các thao tác kiểm duyệt này Cần đảm bảo chắc chắn rằng webiste đã kiểm duyệt được các dữ liệu đầuvào được gửi đến từ người dùng website
Trang 76 Sử dụng Mật khẩu an toàn
Mọi người đều biết nên sử dụng mật khẩu phức tạp, nhưng không phải ai cũng làm điều đó Quản trị website nên sử dụng mật khẩu mạnh cho máy chủ và khu vực quản trị website, kể cả những tài khoản người dùng cũng nên dùng tài khoản mạnh Nếu một máy chủ đặt mật khẩu yếu,máy chủ đó có thể bị hack chỉ “5 phút” sau khi hoàn thành việc cài đặt?
7 Bảo vệ các form File Upload
Các form này cho phép người dùng tải lên các tệp tin, đây có thể là một rủi ro an toàn rất lớn, nếu các form này không được kiểm duyệt, kiểm soát chặt chẽ, tin tặc có thể vượt qua để tải lên các tệp tin độc hại Đây sẽ là các điểm yếu nguy hiểm trên website
Nếu website có một form upload thì form này phải được kiểm duyệt chặt chẽ và kết hợp nhiều yếu tố trước khi ghi file vào ổ cứng của máy chủ Bao gồm: tên file, phần mở rộng, MIME TYPE, kích thước… Ngoài ra bạn có thể đảm bảo an toàn bằng cách không cho phép thực thi tệptin trong các thư mục chứa tài liệu upload Một vài lựa chọn có thể dùng là đổi tên file đã được tải lên nhằm đảm bảo đúng phần mở rộng, hoặc thay đổi quyền của tệp tin, ví dụ chmod 0666 không thể thực thi Nếu bạn sử dụng máy chủ Apache, bạn có thể tạo một tệp tin htaccess file như sau:
Để chống hack website, giải pháp được khuyến cáo khác là ngăn sự sự truy cập trực tiếp đến các file được tải lên.Theo cách này, bất cứ file nào tải lên website đều được lưu trữ trong một thư mục ngoài webroot hoặc trong cơ sở dữ liệu dưới dạng blob Nếu tệp tin của người dùng không thể truy cập trực tiếp, bạn cần tạo ra một script lấy file từ thư mục riêng (hoặc một HTTP xử lý trong NET) và chuyển chúng đến trình duyệt
Ngoài ra, nếu có thể hãy đặt cơ sở dữ liệu ở máy chủ khác máy chủ web Máy chủ cơ sở dữ liệu
sẽ không thể truy cập trực tiếp từ bên ngoài, chỉ máy chủ web mới có thể truy cập được nó, giảm thiểu rủi ro rò rỉ dữ liệu
Cuối cùng, đừng quên cách ly truy cập vật lý đến máy chủ
9 Triển khai HTTPs
SSL là một giao thức cung cấp chuẩn an toàn thông qua Internet để mã hóa các dữ liệu được gửi
Trang 8trên đường truyền và chống hack website
10 Kiểm thử an toàn cho website, máy chủ
Nếu website của người dùng đã đảm bảo được 9 yếu tố trên thì chưa hẳn đã an toàn Để chống bịhack website nên thực hiện việc kiểm thử độ an toàn website, tìm kiếm các lỗ hổng khác của website Cách hiệu quả nhất là thông qua một số dịch vụ Các chuyên gia về An toàn thông tin cóthể hỗ trợ bạn tìm kiếm các lỗ hổng, hỗ trợ khắc phục và ứng cứu khi có sự cố xảy ra Tại Việt Nam hiện nay có khá nhiều đơn vị cung cấp các dịch vụ về Kiểm tra, đánh giá bảo mật cho website, máy chủ với chi phí hợp lý, các dịch vụ này sẽ giúp người dùng đảm bảo an toàn cho website của mình
III PHẦN MỀM MÃ NGUỔN MỞ VÀ GPL & GNU:
1 Phần mềm mã nguồn mở:
Phần mềm nguồn mở là phần mềm với mã nguồn được công bố và sử dụng một giấy phépnguồn mở Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi và cải tiếnphần mềm, và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi
tiến sản phẩm phần mềm
một chương trình tuyệt vời với bạn bè
nứt được tìm thấy, nó thường được trám nhanh hơn phần mềm có bản quyền
khó tin nổi Bởi vỡ chúng được xây dựng từ nhiều khối thống nhất và được miêu tảcặn kẽ, rất dễ để bạn thay thế nhiều phần của hệ thống với phần có giao diện tương tự
phối lại và hưởng mọi qui định của giấy phép gốc
khác
người sử dụng nên độ bảo mật của chúng sẽ được cải thiện, cũng như chúng cũng sẽđược mang thêm nhiều tính năng mới và những cải tiến mới nên phần mềm mã mở sẽ
dễ chú ý sử dụng hơn
Trang 9 Tính ổn định và đáng tin cậy: Các phần mềm nguồn mở thường ổn định và đáng tincậy đó là kết luận từ những cuộc phân tích, đánh giá và so sánh với các phần mềmnguồn đóng khác.
phần mềm mã nguồn mở đang được tiến hành do thiếu những người vừa giỏi về kỹthuật lại vừa thạo về chuyên ngành kinh doanh, nghiên cứu
khi cài trên máy để bàn Khi nào các công ty chuyển hẳn từ hệ thống chuẩn đóng sangchuẩn mở thì nhược điểm này sẽ được khắc phục
thương mại Giao diện đồ họa với người sử dụng (GUI – Graphical User Interface)của phần mềm mã nguồn mở chưa thực sự thân thiện
nói trên sẽ dần được khắc phục
mình cho xã hội mà không cần trả công
Sự phát triển của các Lập trình viên nói chung và Internet nói riêng
hướng nào, do đó, khi một hướng nào đó thay đổi công nghệ thì cũng không ảnhhưởng trực tiếp hoặc nếu có thì cũng rất ít đến hoạt động của ta
ngoài ra, khi có lỗi (do nguồn mở) nên sẽ được phát hiện ngay và sửa chữa kịp thời
+ Tự do chạy chương trình, cho bất cứ mục đích nào
+ Tự do tìm hiểu chương trình hoạt động cách nào, và tự do sửa đổi nó (Quyền truy cập mãnguồn là điều kiện tiên quyết cho tự do này)
+ Tự do tái phân phối bảo sao
Trang 10+ Tự do cải tiến chương trình, và phát hành những gỡ cải tiến ra cụng cộng (Quyền truy cập
mó nguồn là điều kiện tiên quyết cho tự do này)
Có 3 dạng quyền truy xuất và khai thác sử dụng các phần mềm mã nguồn mở:
+ Dạng BSD: cho phép lấy mã nguồn, chỉnh sửa nhưng không được đưa phần đó chỉnh sửangược trở lại thư viện mã nguồn ban đầu
+ Dạng Apache: cho phép lấy mã nguồn, chỉnh sửa và có thể đưa lại thư viện mã nguồn banđầu
+ Dạng GNU: cho phép lấy mã nguồn, chỉnh sửa và có thể đưa lại thư viện mã nguồn ban đầu.Điểm quan trọng của GNU là dựa trên mã nguồn của một phần mềm theo GNU để tạo phầnmềm khác thì phần mềm mới bắt buộc phải theo GNU (tức nguồn mở, được quyền sao chép,sửa chữa,… chỉ được tính phí phát hành, quảng cáo, hỗ trợ kỹ thuật không được tính “công”làm ra phần mềm – điều này gọi là Copyleft với nghĩa trái lại với phần mềm thương mại cóCopyright)
IV CHỮ KÝ SỐ (CHỮ KÝ ĐIỆN TỬ) VÀ MỘT SỐ KỸ THUẬT MÃ HÓA CHỮ
KÝ SỐ, GIỚI THIỆU CÁC GIẢI THUẬT SHA VÀ RSA :
CHỮ KÝ SỐ dựa trên công nghệ mã hóa công khai (RSA): mỗi người dùng phải có 1 cặp
khóa (keypair) gồm khóa công khai (public key) và khóa bí mật (private key)
“PRIVATE KEY” là một khóa trong cặp khóa thuộc hệ thống mã không đối xứng được
dùng để tạo chữ ký số
“PUBLIC KEY” là một khóa trong cặp khóa thuộc hệ thống mã không đối xứng, được sử
dụng để kiểm tra chữ ký số được tạo bởi khóa bí mật tương ứng trong cặp khóa
“KÝ SỐ” là việc đưa khóa bí mật vào một chương trình phần mềm để tự động tạo và gắn
chữ ký số vào thông điệp dữ liệu
“NGƯỜI KÝ” là thuê bao dùng đúng khóa bí mật của mình để ký số vào một thông điệp dữ
liệu dưới tên của mình
“NGƯỜI NHẬN” là tổ chức, cá nhân nhận được thông điệp dữ liệu được ký số bởi người
ký, sử dụng các chứng thư số của người ký đó để kiểm tra chữ ký số trong thông điệp dữ liệunhận được và tiến hành các hoạt động, giao dịch có liên quan
2 Một số giải thuật mã hóa chữ ký số:
Giải thuật SHA:
Trang 11SHA (Secure Hash Algorithm hay thuật giải băm an toàn) là năm thuật giải được chấp nhận
bởi Federal Information Processing Standards(FIPS) dùng để chuyển một đoạn dữ liệu nhất
định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao Những thuậtgiải này được gọi là "an toàn" bởi vì, theo nguyên văn của chuẩn FIPS 180-2 phát hành ngày
Technology hay NIST) Bốn thuật giải sau thường được gọi chung là SHA-2
SHA-1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao
gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec SHA-1 được coi là thuật giải thay thế MD5, một thuật giải băm 128 bit phổ biến khác
Hiện nay, SHA-1 không còn được coi là an toàn bởi đầu năm 2005, ba nhà mật mã học
người Trung Quốc đã phát triển thành công một thuật giải dùng để tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi SHA-1 Mặc dù chưa có ai làm được điều tương tự với SHA-2, nhưng vì về thuật giải, SHA-2 không khác biệt mấy so với SHA-1 nên nhiều nhà khoa học đã bắt đầu phát triển một thuật giải khác tốt hơn SHA NIST cũng đã khởi đầu một cuộc thi phát triển thuật giải băm mới an toàn hơn SHA, giống như quy trình phát triển chuẩn mã hóa tiêntiến (Advanced Encryption Standard hay AES)
SHA-1
Trong mật mã, SHA-1 là một hàm băm mật mã được thiết kế bởi National Security Agency và được công bố bởi NIST là U.S.Federal Information Processing Standard SHA là viết tắt
của Secure Hash Algorithm Ba thuật toán SHA được cấu trúc khác nhau và được phân biệt
như SHA-0 , SHA-1 , và SHA-2 SHA-1 rất giống với SHA-0, nhưng sửa chữa một lỗi trong đặc
tả kỹ thuật băm SHA ban đầu dẫn đến những điểm yếu đáng kể Các thuật toán SHA-0 không được chấp nhận bởi nhiều ứng dụng SHA-2, mặt khác đáng kể khác với các hàm băm SHA-1.SHA-1 là sử dụng rộng rãi nhất hiện có của hàm băm SHA, và được sử dụng trong một số ứng dụng bảo mật sử dụng rộng rãi và giao thức.Trong năm 2005, các lỗi bảo mật được xác định trong SHA-1, cụ thể là một điểm yếu toán học có thể tồn tại, chỉ ra rằng một hàm băm mạnh hơn
sẽ được mong muốn.Mặc dù không có cuộc tấn công thành công vẫn chưa được báo cáo trên các biến thể SHA-2, chúng những nỗ lực tương tự như thuật toán SHA-1 và như vậy đang được tiến hành để phát triển các lựa chọn thay thế được cải thiện.Một tiêu chuẩn mới băm, SHA-3, hiện
Trang 12đang được phát triển - một liên tục NIST băm cạnh tranh chức năng dự kiến sẽ kết thúc với việc lựa chọn một chức năng giành chiến thắng trong năm 2012.
SHA-2
2 bao gồm bốn giải thuật 224, 256, 384 và 512 Ba thuật giải
SHA-256, SHA-384 và SHA-512 được xuất bản lần đầu năm 2001 trong bản phác thảo FIPS PUB 180-2 Năm 2002, FIPS PUB 180-2, bao gồm cả SHA-1 được chấp nhận thành chuẩn chính thức.Năm 2004, FIPS PUB 180-2 được bổ sung thêm một biến thể - SHA-224, với mục đích tạo ra một biến thể SHA-2 có độ dài khóa trùng với DES ba lần với 2 khóa (2TDES) - 112 bit Những biến thể SHA-2 này được đăng ký Bằng sáng chế Hoa Kỳ số 6.829.355
Về giải thuật, các biến thể của SHA-2 không khác nhau Mặc dù chúng sử dụng giá trị biến và hằng số cũng như độ dài từ, v.v khác nhau
Mặc dù Gilbert và Handschuh (2003) đã nghiên cứu và không tìm ra điểm yếu của những biến thể này, chúng vẫn chưa được kiểm chứng kĩ như SHA-1
Giải thuật RSA:
RSA là một trong những hệ thống mã hoá bất đối xứng được sử dụng rộng rãi Nó được đặt theo
tên của 3 nhà khoa học MIT thiết kế ra nó là: Ron Rivest, Adi Shamir, và Leonard Adleman Ý
tưởng then chốt để đảm bảo tính an toàn của RSA là dựa trên sự khó khăn trong việc phân tích nhân tử của 2 số nguyên tố lớn (a x b = c, tìm ngược lại a, b từ c là phân tích nhân tử)
Hệ thống mã hoá RSA bao gồm 4 bước: key generation, key
distribution, encryption và decryption Vì để đảm bảo tính bí mật, nên mỗi hệ thống khác nhau
cần tạo ra các public, và private key khác nhau Sau qúa trình handshake và public key được gởi tới phía client thì thông tin mới chính thức được mã hoá khi server và client giao tiếp với nhau
Mã hoá và giải mã
Tạm thời bỏ qua bước public key và private được tạo ra như thế nào Chúng ta có công thức để
mã hoá và giải mã dữ liệu như sau:
d là private key thường là một số rất lớn, tích của 2 số nguyên tố, và được giữ an toàn tuyệt đối
Ví dụ cho e = 17, n = 3233, d = 2753 và cho thông điệp cần đc mã hoá là m = 42
Số 2557 này khi được giải mã thì nó trở về 42 như cũ:
Trang 13 Giải mã: 25572753mod3233=4225572753mod3233=42
private key d được tạo ra dựa vào 2 prime factor của n Trong thực tế n được tạo ra bằng cách nhân hai số nguyên tố 2048 bits cho nên tính ra d thì dễ, còn từ n tính ngược lại 2 số đó để tìm private key là gần như bất khả thi với máy tính hiện giờ
Cách tạo public và private key
Phần này thiêng về toán, hầu như chúng ta không cần quan tâm nếu như sử dụng các gói Cipher
có sẵn của Java hoặc JavaScript
1 Chọn hai số nguyên tố ngẫu nhiên phân biệt p và q (trong thực tế là càng lớn càng tốt, cỡ
Cách brute force thì như sau (chạy chưa tới 15 bước là ra):
def compute_d(phi_n, e):
compute_d(3120, 17)
Như vậy cuối cùng chúng ta tính toán được public key: e = 17, n = 3233 và private key: d = 2735
Tính an toàn của RSA
Tính an toàn của RSA chủ yếu dựa vào bộ tạo số ngẫu nhiên sinh ra 2 số nguyên tố p và q ban đầu Việc tính ngược lại p và q từ n là chuyện hầu như không thể với hai số nguyên tố 2048 bits như đã đề cập ở trên Nhưng việc tính ra d từ từ p và q là việc rất dễ dàng Do đó nếu như một bên nào đó đoán ra được hoặc tìm ra lỗ hổng của bộ sinh số ngẫu nhiên đó thì coi RSA bị hoá
Trang 14giải Gần đây có ý kiến cho rằng Bộ An ninh Nội địa Hoa Kỳ (NSA) đã cài một back door vào
bộ tạo số ngẫu nhiên Dual Elliptic Curve để giúp NSA có thể crack RSA nhanh hơn 10,000 lần
Và điều đáng quan tâm là bộ tạo số ngẫu nhiên này được công ty RSA (được thành lập bởi 3 đồng tác giả của hệ thống RSA) cài đặt mặc định trong rất nhiều ứng dụng khác nhau
V CÔNG NGHỆ TÌM KIẾM VÀ ĐỊNH VỊ:
1 Sematic Web (Web ngữ nghĩa):
2001: Tim Berners Lee cùng nhóm nghiên cứu đã công bố công trình về web ngữ nghĩa:
“Semantic Web như một sự mở rộng của web hiện tại mà trong đó thông tin được xử lý một cách tự dộng bằng máy tính, làm cho máy tính và con người có thểhợp tác với nhau”
Hình 2
Kiến trúc web ngữ nghĩa:
Hình 3
Trang 15TầngUnicode & URI:
- Unicode: sử dụng tập kí tự quốc tế
TầngXML + namespace + schema: tầng cơ sở cú pháp của semantic web cho phép viết tàiliệu web có cấu trúc với từ vựng do người dùng định nghĩa
• mô hình sơ khai cho sự tổ chức các đốit ượng web vào các phân cấp
Ontology vocabulary: định nghĩa mối liên hệ giữa các khái niệm khác nhau
Lớp Digital Signature: được dùng để xác định tác giả của tài liệu
Các lớp Logic, Proof, Trust:đang trong giai đoạn nghiên cứu
- Lớp Logic cho phép viết ra các luật
- Lớp Proof thi hành các luật
=> quyết định ứng dụng nên hay không nên tin tưởng/chấp nhận
2 Điện toán đám mây (cloud computing):
Điện toán đám mây là một giải pháp toàn diện cung cấp công nghệ thông tin như một dịch
vụ Nó là một giải pháp điện toán dựa trên Internet ở đó cung cấp tài nguyên chia sẻ giống như dòng điện được phân phối trên lưới điện Các máy tính trong các đám mây được cấu hình để làm việc cùng nhau và các ứng dụng khác nhau sử dụng sức mạnh điện toán tập hợp
cứ như thể là chúng đang chạy trên một hệ thống duy nhất
Trang 16Tính linh hoạt của điện toán đám mây là một chức năng phân phát tài nguyên theo yêu cầu Điều này tạo điều kiện thuận lợi cho việc sử dụng các tài nguyên tích lũy của hệ thống, phủ nhận sự cần thiết phải chỉ định phần cứng cụ thể cho một nhiệm vụ Trước điện toán đám mây, các trang web và các ứng dụng dựa trên máy chủ đã được thi hành trên một hệ thống cụthể Với sự ra đời của điện toán đám mây, các tài nguyên được sử dụng như một máy tính gộp ảo Cấu hình hợp nhất này cung cấp một môi trường ở đó các ứng dụng thực hiện một cách độc lập mà không quan tâm đến bất kỳ cấu hình cụ thể nào.
Tại sao lại đổ xô vào đám mây?
Có các lý do có cơ sở và quan trọng về kinh doanh và công nghệ thông tin đối với sự dịch chuyển sang mẫu hình điện toán đám mây Việc coi thuê ngoài như một giải pháp có những điểm cơ bản được xem là các lý do ấy
• Chi phí giảm: Điện toán đám mây có thể làm giảm cả chi phí vốn (CapEx) lẫn chi phí vận hành (OpEx) vì các tài nguyên chỉ được mua khi cần và chỉ phải trả tiền khi sử dụng
• Cách sử dụng nhân viên được tinh giản: Việc sử dụng điện toán đám mây giải phóng đội ngũ nhân viên quý giá cho phép họ tập trung vào việc cung cấp giá trị hơn là duy trì phần cứng và phần mềm • Khả năng mở rộng vững mạnh: Điện toán đám mây cho phép khả năng điều chỉnh quy mô ngay lập tức hoặc tăng lên hoặc giảm xuống, bất cứ lúc nào mà không cầngiao kết dài hạn
Các khối xây dựng của điện toán đám mây
Mô hình điện toán đám mây gồm có một mặt trước (front end) và một mặt sau (back end) Hai thành phần này được kết nối thông qua một mạng, trong đa số trường hợp là Internet Phần mặt trước là phương tiện chuyên chở qua đó người dùng tương tác với hệ thống; phần mặt sau chính là đám mây Phần mặt trước gồm có một máy tính khách hoặc mạng máy tính của doanh nghiệp và các ứng dụng được sử dụng để truy cập vào đám mây Phần mặt sau cung cấp các ứng dụng, các máy tính, các máy chủ và lưu trữ dữ liệu để tạo ra đám mây của các dịch vụ
Các tầng: Điện toán là một dạng hàng hoá
Khái niệm điện toán đám mây được xây dựng trên các tầng, mỗi tầng cung cấp một mức chức năng riêng Sự phân tầng này của các thành phần đám mây đã cung cấp một phương tiện cho các tầng của điện toán đám mây để trở thành một loại hàng hóa như điện, dịch vụ điện thoại hoặc khí tự nhiên Hàng hóa mà điện toán đám mây bán là khả năng tính toán với chi phí và phí tổn thấp hơn cho người dùng Điện toán đám mây đã sẵn sàng để trở thành dịch vụ siêu tiện ích tiếp theo
Trình giám sát máy ảo (VMM- virtual machine monitor) cung cấp phương tiện để sử dụng đồng thời các tiện ích điện toán đám mây VMM là một chương trình trên một hệ thống ibm
Cơ bản về điện toán đám mây của máy tính chủ cho phép một máy tính hỗ trợ nhiều môi trường thi hành giống hệt nhau Từ quan điểm của người dùng, hệ thống này là một máy tính độc lập, hoàn toàn cách biệt với những người dùng khác Trong thực tế, các người dùng đangđược phục vụ bởi cùng một máy tính Một máy ảo là một hệ điều hành (OS) đang được quản
lý bởi một chương trình điều khiển nằm dưới cho phép nó xuất hiện giống như là nhiều hệ điều hành Trong điện toán đám mây, VMM cho phép những người dùng giám sát và do đó quản lý các khía cạnh của quá trình như là truy cập dữ liệu, lưu trữ dữ liệu, mã hóa, đánh địa chỉ, cấu trúc liên kết và di chuyển tải công việc
Trang 17Đây là các tầng đám mây được cung cấp:
• Tầng cơ sở hạ tầng là nền tảng của đám mây Nó gồm có các tài sản vật lý — các máy chủ, các thiết bị mạng, các ổ đĩa lưu trữ, v.v Cơ sở hạ tầng là một dịch vụ (IaaS) có các nhà cungcấp như IBM® Cloud Khi sử dụng IaaS bạn thực tế không kiểm soát cơ sở hạ tầng nằm dưới, nhưng bạn có quyền kiểm soát các hệ điều hành, lưu trữ, triển khai các ứng dụng và ở một mức độ hạn chế, có quyền kiểm soát việc lựa chọn các thành phần mạng Dịch vụ in theoyêu cầu (POD) là một ví dụ về các tổ chức có thể hưởng lợi từ IaaS Mô hình POD được dựa trên việc bán sản phẩm có khả năng tùy chỉnh Các POD cho phép các cá nhân mở cửa hàng
và bán thiết kế các sản phẩm Các chủ cửa hàng có thể tải lên nhiều hay ít thiết kế tùy theo khả năng sáng tạo của họ Có hàng ngàn lần tải lên Với các khả năng lưu trữ đám mây, một POD có thể cung cấp không gian lưu trữ không hạn chế
• Tầng giữa là nền tảng hệ thống Nó cung cấp cơ sở hạ tầng của ứng dụng Nền tảng là một dịch vụ (PaaS) cung cấp sự truy cập đến các hệ điều hành và các dịch vụ có liên quan Nó cung cấp một cách để triển khai các ứng dụng lên đám mây bằng cách sử dụng các ngôn ngữ lập trình và các công cụ do nhà cung cấp hỗ trợ Bạn không cần phải quản lý hoặc kiểm soát
cơ sở hạ tầng nằm dưới, nhưng bạn có quyền điều khiển các ứng dụng đã triển khai và ở một mức độ nào có quyền điều khiển ứng dụng sử dụng các cấu hình môi trường trên máy tính chủ PaaS có các nhà cung cấp như là Elastic Compute Cloud (EC2) của Amazon Nhà phần mềm doanh nhân nhỏ là một hoạt động kinh doanh lý tưởng đối với PaaS Với nền tảng hệ thống đã chọn lọc kỹ, có thể tạo ra các sản phẩm đẳng cấp thế giới mà không thêm gánh nặngcho hệ thống đang chạy trong công ty
• Tầng trên cùng là tầng ứng dụng, tầng mà hầu hết mọi người xem như là đám mây Các ứngdụng chạy ở đây và được cung cấp theo yêu cầu của những người dùng Phần mềm là một dịch vụ (SaaS) có các nhà cung cấp như Google Pack Google Pack bao gồm các ứng dụng, các công cụ có thể sử dụng được qua Internet, như Calendar, Gmail, Google Talk, Docs và nhiều hơn nữa
Các cách hình thành đám mây
Có ba kiểu hình thành đám mây: riêng tư (theo giả thuyết), công cộng và lai
• Các đám mây công cộng có sẵn cho công chúng hoặc một nhóm ngành nghề lớn và do một
tổ chức bán các dịch vụ đám mây sở hữu và cung cấp Một đám mây công cộng là cái mà người ta hình dung là đám mây theo nghĩa thông thường; đó là, các tài nguyên được cung cấpđộng trên Internet bằng cách sử dụng các ứng dụng web từ một nhà cung cấp bên thứ ba bên ngoài cung cấp các tài nguyên chia sẻ và gửi hóa đơn tính cước trên cơ sở tính toán việc sử dụng
• Các đám mây riêng tư tồn tại bên trong tường lửa của công ty bạn và do tổ chức của bạn quản lý Chúng là các dịch vụ đám mây do bạn tạo ra và kiểm soát trong doanh nghiệp của mình Các đám mây riêng tư cũng cung cấp nhiều lợi ích tương tự như các đám mây công cộng — sự khác biệt chủ yếu là tổ chức của bạn chịu trách nhiệm thiết lập và duy trì đám mây đó
• Các đám mây lai là một sự kết hợp của đám mây công cộng và riêng tư khi sử dụng các dịch vụ có trong cả hai vùng công cộng và riêng tư Các trách nhiệm quản lý được phân chia giữa các nhà cung cấp dịch vụ đám mây công cộng và chính doanh nghiệp Khi sử dụng một
Trang 18đám mây lai, các tổ chức có thể xác định các mục tiêu và các yêu cầu của các dịch vụ được tạo ra và có được chúng dựa vào sự lựa chọn thích hợp nhất.
Trong thời đại cách mạng mới này, điện toán đám mây có thể cung cấp cho các tổ chức phương tiện và các phương pháp cần thiết để đảm bảo sự ổn định tài chính và dịch vụ chất lượng cao Tất nhiên, phải có hợp tác chung nếu quá trình điện toán đám mây là để đạt tới sự
an toàn tối ưu và các tiêu chuẩn vận hành chung Với sự ra đời của điện toán đám mây, điều cấp thiết với tất cả chúng ta là sẵn sàng cho cuộc cách mạng này
3 GoogleMap API, Facebook API:
GoogleMap API
Google Map là một dịch vụ ứng dụng vào công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google đặc biệt là dò đường và chỉ đường; hiển thị bản đồ đường sá, các tuyến đường tối ưu cho từng loại phương tiện, cách bắt
xe và chuyển tuyến cho các loại phương tiện công cộng (xe bus, xe khách ), và những địa điểm (kinh doanh, trường học, bệnh viện, cây ATM ) trong khu vực cũng như khắp nơi trên thế giới
Một số ứng dụng của Google Map API
Đánh dấu các địa điểm trên bản đồ kèm theo thông tin cho địa điểm đó : khu vui chơi giảitrí, nhà hàng khách sạn, cây ATM, bệnh viện, trường học,… bất cứ địa điểm nào bạn muốn
Chỉ dẫn đường đến các địa điểm cần tìm(đường tối ưu và nhiều option khác),chỉ dẫn đường giao thông công cộng, có thể là các địa điểm cung cấp như trên Ở đây sử dụng các service google cung cấp
Thời gian đi lại dự đoán