CHƯƠNG I:



TR??NG ??I H?C C?NG NGH? TH?NG TIN V? TRUY?N TH?NG VI?T – H?NKHOA KHOA H?C M?Y T?NH?? ?N C? S? 4?? tài: X?y d?ng ch??ng trình cho phép ??ng nh?p t? xa Sinh viên th?c hi?n: Bùi Minh Phúc Tr?n Thái To?n Ngành : C?ng ngh? th?ng tin L?p : 18IT1 GV h??ng d?n : Tr?n ?ình S?n ?à N?ng, tháng 12, n?m 2020TR??NG ??I H?C C?NG NGH? TH?NG TIN V? TRUY?N TH?NG VI?T – H?NKHOA KHOA H?C M?Y T?NH?? ?N C? S? 4?? tài: X?y d?ng ch??ng trình cho phép ??ng nh?p t? xa?à N?ng, tháng 12, n?m 2020NH?N X?T(C?a gi?ng viên h??ng d?n)……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………....………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………Ch? kí c?a gi?ng viênM?c l?c TOC \o "1-3" \h \z \u CH??NG I: C? S? L? THUY?T PAGEREF _Toc60836107 \h 71.T?ng quan v? l?p trình m?ng PAGEREF _Toc60836108 \h 71.1.Khái ni?m PAGEREF _Toc60836109 \h 71.2.Các m? hình l?p trình m?ng PAGEREF _Toc60836110 \h 71.3.M? hình ?ng d?ng m?ng PAGEREF _Toc60836111 \h 91.4.M?t s? giao th?c l?p trình m?ng ph? bi?n PAGEREF _Toc60836112 \h 92.S? l??c v? ng?n ng? l?p trình Java PAGEREF _Toc60836113 \h 92.1.Java là gì? PAGEREF _Toc60836114 \h 92.2.??c ?i?m c?a ng?n ng? l?p trình Java PAGEREF _Toc60836115 \h 102.3.Tính an toàn và b?o m?t PAGEREF _Toc60836116 \h 102.4.Các phiên b?n c?a Java PAGEREF _Toc60836117 \h 112.5.Các thành ph?n c?a Java SE Platform PAGEREF _Toc60836118 \h 113.S? l??c v? th? vi?n h? tr? l?p trình SSH (Java Secure Channel (JSCH)) PAGEREF _Toc60836119 \h 114.S? l??c v? giao th?c SSH PAGEREF _Toc60836120 \h 124.1.SSH là gì? PAGEREF _Toc60836121 \h 124.2.L?ch s? phát tri?n c?a SSH PAGEREF _Toc60836122 \h 124.3.Nh?ng c?ng d?ng c?a giao th?c SSH PAGEREF _Toc60836123 \h 134.4.T?ng quan các ??c ?i?m c?a SSH PAGEREF _Toc60836124 \h 134.5.?u ?i?m c?a SSH PAGEREF _Toc60836125 \h 145.Các c?ng c? h? tr? l?p trình PAGEREF _Toc60836126 \h 145.1.Eclipse PAGEREF _Toc60836127 \h 145.2.VMware Workstation PAGEREF _Toc60836128 \h 155.3.H? ?i?u hành Linux PAGEREF _Toc60836129 \h 175.4.IntelliJ IDEA PAGEREF _Toc60836130 \h 19CH??NG II: PH?N T?CH V? X?Y D?NG H? TH?NG PAGEREF _Toc60836131 \h 201.Ph??ng pháp phát tri?n ?? tài PAGEREF _Toc60836132 \h 202.C?ng ngh? ???c s? d?ng trong ?? tài PAGEREF _Toc60836133 \h 202.1.H? ?i?u hành linux PAGEREF _Toc60836134 \h 202.2.Th? vi?n JSCH h? tr? l?p trình giao th?c SSH PAGEREF _Toc60836135 \h 202.3.Java Swing PAGEREF _Toc60836136 \h 203.M? t? bài toán PAGEREF _Toc60836137 \h 214.M? hình PAGEREF _Toc60836138 \h 215.Giao th?c PAGEREF _Toc60836139 \h 216.Cách th?c ho?t ??ng PAGEREF _Toc60836140 \h 227.Thu?t toán PAGEREF _Toc60836141 \h 237.1.Các thu?t toán t?o khóa PAGEREF _Toc60836142 \h 237.2.Các k? thu?t m? hóa PAGEREF _Toc60836143 \h 238.Demo ch??ng trình PAGEREF _Toc60836144 \h 278.1.Giao di?n ??ng nh?p SSH PAGEREF _Toc60836145 \h 278.2.Giao di?n sau khi ??ng nh?p SSH PAGEREF _Toc60836146 \h 28DANH M?C H?NH ?NH TOC \h \z \c "Hình" Hình 1: Các phiên b?n c?a Java PAGEREF _Toc60828293 \h 10Hình 2: Quy trình ho?t ??ng c?a SSH PAGEREF _Toc60828294 \h 22Hình 3: Symmetric Encryption PAGEREF _Toc60828295 \h 24Hình 4: Asymmetrical encryption PAGEREF _Toc60828296 \h 25Hình 5: Giao di?n ??ng nh?p SSH PAGEREF _Toc60828297 \h 27Hình 6: Giao di?n sau khi ??ng nh?p SSH PAGEREF _Toc60828298 \h 28L?I N?I ??UM?t h? th?ng m?ng ???c k?t n?i internet s? có r?t nhi?u nguy c? b? t?n c?ng. Khi d? li?u ???c truy?n ?i trên m?ng, nhi?u kh? n?ng s? b? hacker ??c tr?m d? li?u. Khi m?t h? th?ng liên l?c v?i nhau th?ng qua ??a ch? ?? truy?n nh?n d? li?u c?ng d? b? hacker gi? danh ?? l?y d? li?u ho?c v?n ?? và Virus… còn có nhi?u nguy c? khác n?a khi?n cho h? th?ng m?ng c?a chúng ta tr? nên kh?ng an toàn ngh?a là h? th?ng c?a chúng ta có th? b? t?n c?ng b?ng nhi?u hình th?c khác nhau.SSH (Secure Shell) ra ??i là l?i gi?i ?áp cho bài toán làm th? nào ?? thi?t l?p k?t n?i m?ng m?t cách b?o m?t. SSH là m?t ch??ng trình t??ng tác gi?a máy ch? và máy khách có s? d?ng c? ch? m? hoá ?? m?nh nh?m ng?n ch?n các hi?n t??ng nghe tr?m, ?ánh c?p th?ng tin trên ???ng truy?n. Các ch??ng trình tr??c ??y: telnet, rlogin kh?ng s? d?ng ph??ng pháp m? hoá. Vì th? b?t c? ai c?ng có th? nghe tr?m th?m chí ??c ???c toàn b? n?i dung c?a phiên làm vi?c b?ng cách s? d?ng m?t s? c?ng c? ??n gi?n. S? d?ng SSH là bi?n pháp h?u hi?u b?o m?t d? li?u trên ???ng truy?n t? h? th?ng này ??n h? th?ng khác.CH??NG I: C? S? L? THUY?TT?ng quan v? l?p trình m?ng Khái ni?mL?p trình m?ng là các k? thu?t l?p trình nh?m x?y d?ng ?ng d?ng, ph?n m?m khai khác hi?u qu? tài nguyên m?ng máy tính.Các m? hình l?p trình m?ngM? hình OSIKhái ni?mM? hình m?ng OSI hay m? hình 7 t?ng OSI (vi?t t?t c?a Open Systems Interconnection Reference Model) là m? hình c?n b?n v? các ti?n trình truy?n th?ng, thi?t l?p các tiêu chu?n c?u trúc m?ng ? m?c ?? Qu?c t?, c?ng là c? s? chung ?? các h? th?ng khác nhau có th? liên k?t truy?n th?ng v?i nhau.M? hình OSI t? ch?c các giao th?c thành 7 t?ng, m?i t?ng t?p trung gi?i quy?t m?t ph?n c?a ti?n trình truy?n th?ng, chia ti?n trình truy?n th?ng thành nhi?u t?ng và trong m?i t?ng có th? có nhi?u giao th?c khác nhau th?c hi?n các nhu c?u truy?n th?ng c? th?.Các giao th?cCác giao th?c trong OSI là y?u t? v? cùng quan tr?ng, 2 lo?i giao th?c s? d?ng trong m? hình ?ó là:Giao th?c h??ng k?t n?i (Connection Oriented): TCP là m?t ví d? v? giao th?c h??ng k?t n?i. Nó yêu c?u m?t k?t n?i logic ???c thi?t l?p gi?a hai quá trình tr??c khi d? li?u ???c trao ??i. K?t n?i ph?i ???c duy trì trong toàn b? th?i gian mà giao ti?p ?ang di?n ra, sau ?ó ???c thoát ra sau ?ó. Quá trình này gi?ng nh? m?t cu?c g?i ?i?n tho?i, trong ?ó m?t m?ch ?o ???c thi?t l?p - ng??i g?i ph?i bi?t s? ?i?n tho?i c?a ng??i ?ó và ?i?n tho?i ph?i ???c tr? l?i - tr??c khi có th? g?i tin nh?n.Giao th?c kh?ng k?t n?i (Connectionless)Các giao th?c kh?ng k?t n?i cho phép d? li?u ???c trao ??i mà kh?ng c?n thi?t l?p liên k?t gi?a các quy trình. M?i ??n v? d? li?u, v?i t?t c? th?ng tin c?n thi?t ?? ??nh tuy?n nó ??n ?ích ?? ??nh, ???c truy?n ??c l?p v?i các gói d? li?u khác và có th? di chuy?n qua các con ???ng khác nhau ?? ??n ?ích cu?i cùng. M?t s? gói d? li?u có th? b? m?t trong quá trình truy?n ho?c có th? ??n các gói d? li?u khác kh?ng theo trình t?. UDP là m?t giao th?c kh?ng k?t n?i. Nó ???c bi?t ??n nh? m?t giao th?c datagram vì nó t??ng t? nh? vi?c g?i m?t b?c th? mà b?n kh?ng xác nh?n ?? nh?n.Vai trò và ch?c n?ng c?a 7 t?ng OSITrong m? hình OSI, kh? n?ng ki?m soát s? ???c lu?n chuy?n t? t?ng này ??n t?ng khác, quá trình b?t ??u t? t?ng 7, sau ?ó d?n d?n ???c chuy?n ??n t?ng cu?i cùng th?ng qua các kênh t?i các station r?i sau ?ó sau l?u hierarchy.M? hình OSI 7 t?ng ti?p nh?n nhi?m v? liên m?ng, ti?n hành chia các t?ng t??ng ?ng ???c x?p ch?ng lên nhau.M? hình OSI là m?t h? th?ng m?, nó có kh? n?ng k?t n?i th?ng tin v?i các h? th?ng khác nhau, t??ng thích v?i các chu?n OSI.T?ng 1-4: là các t?ng th?c hi?n các ch?c n?ng di chuy?n d? li?u, ??y là các t?ng c?p th?p.T?ng 5-7: t?ng cao c?p ch?a các d? li?u ?ng d?ng. Cách th?c v?n hàng c?a h? th?ng network n?m trong m?t quy t?c chung ?ó là chuy?n d? li?u ?i. M?i t?ng s? th?c hi?n các ch?c n?ng chuyên bi?t riêng sau ?ó m?i chuy?n các d? li?u ?i các t?ng ti?p theo.M? hình TCP/IPKhái ni?mTCP/IP vi?t t?t c?a Transmission Control Protocol (TCP) và Internet Protocol (IP) là giao th?c cài ??t truy?n th?ng, ch?ng giao th?c mà h?u h?t các m?ng máy tính ngày nay ??u s? d?ng ?? k?t n?i.TCP/IP ???c ??t theo tên c?a 2 giao th?c là giao th?c ?i?u khi?n giao v?n và giao th?c liên m?ng. ??y là 2 giao th?c ??u tiên trên th? gi?i ???c ??nh ngh?a. TCP/IP ???c phát tri?n vào n?m 1978 b?i Bob Kahn và Vint Cerf.Cách th?c ho?t ??ngTrong giao th?c TCP/IP, IP có vai trò quan tr?ng. IP cho phép máy tính chuy?n ti?p gói tin ??n m?t máy tính khác. Th?ng qua m?t ho?c nhi?u kho?ng (chuy?n ti?p) g?n v?i ng??i nh?n gói tin. TCP s? giúp ki?m tra các gói d? li?u xem có l?i kh?ng? Sau ?ó g?i yêu c?u truy?n l?i n?u có l?i ???c tìm th?y.Các giao th?c TCP/IP ph? bi?n nh?tHi?n nay, TCP/IP có 3 giao th?c ???c s? d?ng ph? bi?n nh?t là HTTP, HTTPS, FTP.HTTP: truy?n d? li?u kh?ng an toàn gi?a m?t web client và m?t web server. Theo quy trình, web client (trình duy?t web trên máy tính) s? g?i yêu c?u ??n m?t web server ?? xem m?t website. Sau ?ó, máy ch? web nh?n ???c yêu c?u ?ó và g?i th?ng tin website v? cho web client.HTTPS: truy?n d? li?u an toàn gi?a m?t web client và m?t web server. Giao th?c này ???c dùng ?? g?i d? li?u giao d?ch th? tín d?ng ho?c d? li?u cá nh?n khác t? m?t web t?i m?t web server.FTP: ph??ng th?c trao ??i file ???c s? d?ng gi?a hai ho?c nhi?u máy tính th?ng qua Internet. Nh? FTP, các máy tính có th? g?i và nh?n d? li?u ??n nhau m?t cách tr?c ti?p.M? hình ph?n t?ng trong TCP/IPM? hình TCP/IP tiêu chu?n bao g?m 4 t?ng ???c ch?ng lên nhau, b?t ??u t? t?ng th?p nh?t là:T?ng 1: T?ng v?t l? (Physical)T?ng 2: T?ng m?ng (Network)T?ng 3: T?ng giao v?n (Transport)T?ng 4: T?ng ?ng d?ng (Application) M? hình ?ng d?ng m?ngKhi b?t tay vào x?y d?ng m?t ?ng d?ng m?ng, m?t trong nh?ng v?n ?? ??u tiên ??t ra chính là l?a ch?n m? hình cho ?ng d?ng m?ng. M?c dù ph?n m?m m?ng r?t ?a d?ng nh?ng có th? chia chúng vào 2 m? hình c? b?n theo cách th?c ph?n chia vai trò nhi?m v? c?a các thành ph?n: M? hình Ch? ? Khách (Client ? Server).M? hình ngang hàng (Peer to Peer) M?t s? giao th?c l?p trình m?ng ph? bi?nTransmission Control Protocol (TCP)Internet Protocol (IP)Hypertext Transfer Protocol (HTTP)File Transfer Protocol (FTP)Secured Shell (SSH)TelnetSimple Mail Transfer Protocol (SMTP)Domain Name System (DNS)Post Office Protocol version 3(POP 3)Simple Network Management Protocol (SNMP)Hypertext Transfer Protocol over SSL/TLS (HTTPS)S? l??c v? ng?n ng? l?p trình Java Java là gì?Java là m?t trong nh?ng ng?n ng? l?p trình h??ng ??i t??ng. Nó ???c s? d?ng trong phát tri?n ph?n m?m, trang web, game hay ?ng d?ng trên các thi?t b? di ??ng.Java ???c kh?i ??u b?i James Gosling và b?n ??ng nghi?p ? Sun MicroSystem n?m 1991. Ban ??u Java ???c t?o ra nh?m m?c ?ích vi?t ph?n m?m cho các s?n ph?m gia d?ng, và có tên là Oak.Java ???c phát hành n?m 1994, ??n n?m 2010 ???c Oracle mua l?i t? Sun MicroSystem.Java ???c t?o ra v?i tiêu chí “Vi?t (code) m?t l?n, th?c thi kh?p n?i” (Write Once, Run Anywhere – WORA). Ch??ng trình ph?n m?m vi?t b?ng Java có th? ch?y trên m?i n?n t?ng (platform) khác nhau th?ng qua m?t m?i tr??ng th?c thi v?i ?i?u ki?n có m?i tr??ng th?c thi thích h?p h? tr? n?n t?ng ?ó. ??c ?i?m c?a ng?n ng? l?p trình JavaH??ng ??i t??ng hoàn toàn??c l?p ph?n c?ng và h? ?i?u hànhNg?n ng? th?ng d?chC? ch? thu gom rác t? ??ng?a lu?ng Tính an toàn và b?o m?tTính an toànNg?n ng? l?p trình Java yêu c?u ch?t ch? v? ki?u d? li?u.D? li?u ph?i ???c khai báo t??ng minh.Kh?ng s? d?ng con tr? và các phép toán v?i con tr?.Java ki?m soát ch?t ch? vi?c truy nh?p ??n m?ng, chu?i. Kh?ng cho phép s? d?ng các k? thu?t tràn. Do ?ó các truy nh?p s? kh?ng v??t quá kích th??c c?a m?ng ho?c chu?i.Quá trình c?p phát và gi?i phóng b? nh? ???c th?c hi?n t? ??ng.C? ch? x? l? l?i giúp vi?c x? l? và ph?c h?i l?i d? dàng h?n.Tính b?o m?tJava cung c?p m?t m?i tr??ng qu?n l? ch??ng trình v?i nhi?u m?c khác nhau.M?c 1 : Ch? có th? truy xu?t d? li?u c?ng nh? ph??ng ph?c th?ng qua giao di?n mà l?p cung c?p.M?c 2 : Trình biên d?ch ki?m soát các ?o?n m? sao cho tu?n th? các quy t?c c?a ng?n ng? l?p trình Java tr??c khi th?ng d?ch.M?c 3 : Trình th?ng d?ch s? ki?m tra m? bytecode xem các ?o?n m? này có ??m b?o ???c các quy ??nh, quy t?c tr??c khi th?c thi.M?c 4: Java ki?m soát vi?c n?p các l?p vào b? nh? ?? giám sát vi?c vi ph?m gi?i h?n truy xu?t tr??c khi n?p vào h? th?ng. Các phiên b?n c?a JavaHình SEQ Hình \* ARABIC 1: Các phiên b?n c?a JavaCác thành ph?n c?a Java SE PlatformG?m 2 thành ph?n: JRE (Java Runtime Environment): cung c?p JVM (Java Virtual Machine) và th? vi?n ???c s? d?ng ?? ch?y ch??ng trình Java.JDK (Java Development Kit): ???c bi?t ??n nh? b? cung c? phát tri?n Java, bao g?m: trình biên d?ch và trình g? r?i ???c s? d?ng ?? phát tri?n các ?ng d?ng Java.S? l??c v? th? vi?n h? tr? l?p trình SSH (Java Secure Channel (JSCH))Ban ??u, ??ng l?c c?a chúng t?i ?? phát tri?n c?ng c? này là cho phép ng??i dùng máy ch? java X thu?n túy c?a chúng t?i, Wired X, t?n h??ng các phiên X an toàn. Vì v?y, các n? l?c c?a chúng t?i ch? y?u nh?m vào vi?c tri?n khai giao th?c SSH2 cho chuy?n ti?p X11. T?t nhiên, tuy nhiên, chúng t?i hi?n c?ng quan t?m ??n vi?c thêm các ch?c n?ng khác nh? chuy?n ti?p c?ng, truy?n t?p, m? ph?ng thi?t b? ??u cu?i, v.v.Kh?ng c?n ph?i nói, SSH cung c?p h? tr? ??ng nh?p t? xa an toàn, truy?n t?p an toàn và chuy?n ti?p TCP / IP và X11 an toàn. Nó có th? t? ??ng m? hóa, xác th?c và nén d? li?u ?? truy?n.SSH2 ???c phát minh ?? tránh các v?n ?? v? b?ng sáng ch? liên quan ??n RSA (b?ng sáng ch? RSA ?? h?t h?n) và ?? kh?c ph?c m?t s? v?n ?? v? toàn v?n d? li?u mà SSH1 m?c ph?i và vì m?t s? l? do k? thu?t khác.Giao th?c SSH2 ?? ???c chu?n hóa trên nhóm làm vi?c IETF Secure Shell và các b?n th?o liên quan ??n giao th?c SSH2 có s?n trên web.S? l??c v? giao th?c SSH SSH là gì?SSH, ho?c ???c g?i là Secure Shell, là m?t giao th?c ?i?u khi?n t? xa cho phép ng??i dùng ki?m soát và ch?nh s?a server t? xa qua Internet. D?ch v? ???c t?o ra nh?m thay th? cho trình Telnet v?n kh?ng có m? hóa và s? d?ng k? thu?t cryptographic ?? ??m b?o t?t c? giao ti?p g?i t?i và g?i t? server t? xa di?n ra trong tình tr?ng m? hóa. Nó cung c?p thu?t toán ?? ch?ng th?c ng??i dùng t? xa, chuy?n input t? client t?i host, và relay k?t qu? tr? v? t?i khách hàng.SSH ?? c?p ??n c? giao th?c m?ng m?t m? và b? ti?n ích tri?n khai giao th?c ?ó. SSH s? d?ng m? hình Client - Server, k?t n?i ?ng d?ng Client Secure Shell, là ph?n cu?i n?i phiên ???c hi?n th?, v?i máy ch? SSH, là ph?n cu?i c?a phiên ch?y. Vi?c tri?n khai SSH th??ng bao g?m h? tr? các giao th?c ?ng d?ng ???c s? d?ng ?? thao tác v?i terminal (hay Powershell ho?c command line trên Windows) ho?c truy?n t?p. M?t máy ch? SSH m?c ??nh l?ng nghe trên c?ng TCP 22.B? SSH bao g?m ba ti?n ích: Slogin, ssh và scp. ?ó là các phiên b?n an toàn c?a các ti?n ích Unix kh?ng an toàn tr??c ?ó nh? rlogin, rsh và rcp. SSH s? d?ng m? hóa khóa c?ng khai ?? xác th?c máy tính t? xa và cho phép máy tính t? xa xác th?c ng??i dùng, n?u c?n. L?ch s? phát tri?n c?a SSHN?m 1995, Tatu Ylonen, m?t nhà nghiên c?u ? tr??ng ??i h?c Helsinki c?a Ph?n Lan ?? nghiên c?u và trình bày v? SSH-1. Sau khi m?ng tr??ng ??i h?c c?a ?ng ta là n?n nh?n c?a m?t cu?c t?n c?ng ?ánh c?p password vào ??u n?m ?ó.Tháng 7 n?m 1995, SSH1 ???c phát hành r?ng r?i d??i d?ng m?t ph?n m?m mi?n phí có source code, cho phép m?i ng??i có th? sao chép và s? d?ng mà kh?ng thu phí. Vào cu?i n?m ?ó, ??c tính có kho?ng 20000 ng??i trên 50 qu?c gia ?? s? d?ng SSH1, và m?i ngày Ylonen nh?n 150 mail m?i ngày. ?? ?áp l?i, Ylonen ?? thành l?p SSH Communications Securyty vào tháng 12 n?m 1995 ?? duy trì, th??ng nghi?p hóa và ti?p t?c phát tri?n SSH.C?ng trong n?m 1995, Ylonen so?n th?o giao th?c SSH-1 còn g?i là Internet Engineering Task Force (IETF), nó di?n t? ho?t ??ng c? b?n c?a ph?n m?m SSH1 trên th?c t?. Nó là m?t giao th?c có ph?n qu?ng cáo nh?ng cò m?t s? l?i và gi?i h?n nh?ng r?t ph? bi?n. N?m 1996, SCS gi?i thi?u m?t phiên b?n m?i ?ó là phiên b?n chính th?c c?a giao th?c, SSH 2.0 hay SSH-2, phiên b?n này ???c k?t h?p ch?t ch? nh?ng thu?t toán và kh?ng h?p v?i SSH-1. Trong lúc ?ó, IETF thành l?p m?t nhóm làm vi?c g?i là SECSH ?? chu?n hóa giao th?c và ch? ??o s? phát tri?n c?a nó trên l?i ích chung. Nhóm làm vi?c SECSH ?? trình bày phác th?o Internet ??u tiên ??i v?i giao th?c SSH-2 vào tháng 2 n?m 1997.N?m 1998, SCS phát hành s?n ph?m ph?n m?m SSH Secure Shell (SSH2), d?a trên giao th?c SSH-2. Tuy nhiên, SSH2 kh?ng thay th? SSH1 trong m?t s? l?nh v?c, có 2 lí do. Th? nh?t, SSH2 kh?ng có m?t s? ti?n ích, các ??c ?i?m có ích và c?u hình tùy ch?n nh? SSH1. Th? hai, SSH2 có nhi?u gi?i h?n v? vi?c ??ng k?. B?n SSH1 ?? có s?n mi?n phí t? Ylonen và tr??ng ??i h?c k? thu?t Helsinki. Phiên b?n m?i h?n cuae SSH1 c?a SCS v?n có s?n mi?n phí cho t?t c? ng??i dùng, th?m chí c? c?u hình th??ng m?i c?ng mi?n phí ch? c?n ph?n m?m ?ó kh?ng tr?c ti?p bán cho vi?c thu l?i nhu?n ho?c ???c t?ng nh? m?t d?ch v? cho khách hàng. Vì th?, tuy SSH2 ?? xu?t hi?n, nh?ng h?u h?t ng??i s? d?ng SSH1 ??u nh?n ra vài ?u ?i?m c?a SSH1 so v?i SSH2 và ti?p t?c s? d?ng SSH1, ba n?m sau khi SSH2 ra ??i thì SSH1 v?n là phiên b?n s? d?ng ph? bi?n trên Internet và v??t qua c? SSH2 là giao th?c t?t h?n và b?o m?t h?n.Tuy nhiên, SSH2 c?ng có 2 s? phát tri?n h?a h?n, ?ó là m?t b?n n?i l?ng c?a SSH2 b?n quy?n và s? xu?t hi?n c?a SSH-2 b? sung. N?m 2000, SCS m? r?ng SSH2 b?n quy?n ?? cho phép s? d?ng khi làm vi?c riêng l? ??i v?i các ho?t ??ng t? ch?c phi l?i nhu?n. Nó c?ng m? r?ng cho phép dung mi?n phí ??i v?i linux, NetBSD, FreeBSD và h? ?i?u hành OpenBSD. Cùng th?i gian ?ó, OpenSSH ?? ???c phát tri?n n?i b?t nh? m?t SSH b? sung, ???c phát tri?n d??i ho?t ??ng c?a m?t d? án OpenBSD và mi?n phí bên d??i OpenBSD có ??ng kí. OpenSH h? tr? c? SSH-1 và SSH-2 trong m?t ch??ng trình. Tuy OpenSSH ???c phát tri?n trên n?n OpenBSD nh?ng nó c?ng ho?t ??ng ???c trên Linux, Solais, AIX và nh?ng h? ?i?u hành khác. M?c dù OpenSSH t??ng ??i m?i và kh?ng có vài ??c ?i?m có trong SSH1 và SSH2 nh?ng nó ?ang trên ?à phát tri?n nhanh chóng và h?a h?n tr? thành b?n SSH chính trong t??ng lai kh?ng xa. Nh?ng c?ng d?ng c?a giao th?c SSHGiao th?c ???c s? d?ng trong các m?ng c?ng ty ??:Cung c?p quy?n truy c?p an toàn cho ng??i dùng và quy trình t? ??ngChuy?n các file t??ng tác và t? ??ngPhát l?nh t? xaQu?n l? c? s? h? t?ng m?ng và các thành ph?n h? th?ng gi? nhi?m v? quan tr?ng khác. T?ng quan các ??c ?i?m c?a SSHTính bí m?t (Privacy) c?a d? li?u th?ng qua vi?c m? hoá m?nh m?Tính toàn v?n (integrity) c?a th?ng tin truy?n, ??m b?o chúng kh?ng b? bi?n ??i.Ch?ng minh xác th?c (authentication) ngh?a là b?ng ch?ng ?? nh?n d?ng bên g?i và bên nh?nGi?y phép (authorization): dùng ?? ?i?u khi?n truy c?p ??n tài kho?n.Chuy?n ti?p (forwarding) ho?c t?o ???ng h?m (tunneling) ?? m? hoá nh?ng phiên khác d?a trên giao th?c TCP/IP ?u ?i?m c?a SSHL? do nhi?u ng??i l?a ch?n s? d?ng giao th?c này xu?t phát t? nh?ng ?u ?i?m v??t tr?i c?a SSH so v?i các giao th?c khác. SSH có kh? n?ng m? hóa và truy?n t?i d? li?u an toàn gi?a m?ng l??i host và client. Host ??i di?n cho máy ch? t? xa c?a b?n mu?n k?t n?i t?i và client là máy tính c?a b?n dùng ?? truy c?p host.L?i th? th? 2 hai là có nhi?u là có nhi?u cách dùng khác nhau giúp vi?c m? hóa qua SSH ???c th?c hi?n toàn v?n hi?u qu? nh?:Symmetrical encryption.Asymmetrical encryption.Hashing.Các c?ng c? h? tr? l?p trình EclipseGi?i thi?uEclipse là m?t m?i tr??ng phát tri?n tích h?p (IDE) ???c s? d?ng trong l?p trình máy tính. Nó ch?a kh?ng gian làm vi?c c? s? và h? th?ng plug-in có th? m? r?ng ?? tùy ch?nh m?i tr??ng. Eclipse ???c vi?t ch? y?u b?ng Java và m?c ?ích s? d?ng chính c?a nó là ?? phát tri?n các ?ng d?ng Java, nh?ng nó c?ng có th? ???c s? d?ng ?? phát tri?n các ?ng d?ng b?ng các ng?n ng? l?p trình khác th?ng qua các trình c?m thêm, bao g?m Ada, ABAP, C, C ++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (bao g?m c? khu?n kh? Ruby on Rails), Rust, Scala và Scheme. Nó c?ng có th? ???c s? d?ng ?? phát tri?n tài li?u v?i LaTeX (th?ng qua m?t trình c?m thêm TeXlipse) và các gói cho ph?n m?m Mathematica. M?i tr??ng phát tri?n bao g?m các c?ng c? phát tri?n Eclipse Java (JDT) cho Java và Scala, Eclipse CDT cho C / C ++ và Eclipse PDT cho PHP, trong s? nh?ng m?i tr??ng khác.C? s? m? ban ??u b?t ngu?n t? IBM VisualAge. B? phát tri?n ph?n m?m Eclipse (SDK), bao g?m các c?ng c? phát tri?n Java, dành cho các nhà phát tri?n Java. Ng??i dùng có th? m? r?ng kh? n?ng c?a nó b?ng cách cài ??t các trình c?m thêm ???c vi?t cho N?n t?ng Eclipse, ch?ng h?n nh? các b? c?ng c? phát tri?n cho các ng?n ng? l?p trình khác và có th? vi?t và ?óng góp các m?-?un b? tr? c?a riêng h?. K? t? khi gi?i thi?u tri?n khai OSGi (Equinox) trong phiên b?n 3 c?a Eclipse, các trình c?m thêm có th? ???c ng?t ??ng và ???c g?i là gói (OSGI).B? phát tri?n ph?n m?m Eclipse (SDK) là ph?n m?m m? ngu?n m? và mi?n phí, ???c phát hành theo các ?i?u kho?n c?a Gi?y phép C?ng c?ng Eclipse, m?c dù nó kh?ng t??ng thích v?i Gi?y phép C?ng c?ng GNU. Nó là m?t trong nh?ng IDE ??u tiên ch?y trong GNU Classpath và nó ch?y mà kh?ng g?p v?n ?? gì trong IcedTea.L?ch s?Eclipse ?? ???c l?y c?m h?ng t? Smalltalk d?a trên VisualAge gia ?ình tích h?p m?i tr??ng phát tri?n s?n ph?m (IDE). M?c dù khá thành c?ng, m?t nh??c ?i?m l?n c?a các s?n ph?m VisualAge là m? ???c phát tri?n kh?ng n?m trong m? hình k? thu?t ph?n m?m d?a trên thành ph?n. Thay vào ?ó, t?t c? m? cho m?t d? án ???c gi? trong m?t t?p tin nén (gi?ng nh? m?t t?p zip nh?ng ? ??nh d?ng ??c quy?n có tên là .dat). Kh?ng th? d? dàng truy c?p các l?p riêng l?, ch?c ch?n kh?ng n?m ngoài c?ng c? này. M?t nhóm ch? y?u t?i phòng thí nghi?m Cary NC c?a IBM ?? phát tri?n s?n ph?m m?i nh? m?t s?n ph?m thay th? d?a trên Java. Vào tháng 11 n?m 2001, m?t t?p ?oàn ???c thành l?p v?i m?t h?i ??ng qu?n tr? ?? ti?p t?c phát tri?n Eclipse nh? ph?n m?m m? ngu?n m?. Ng??i ta ??c tính r?ng IBM ?? ??u t? g?n 40 tri?u ?? la vào th?i ?i?m ?ó. Các thành viên ban ??u là Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft và WebGain. S? l??ng ng??i qu?n l? t?ng lên h?n 80 ng??i vào cu?i n?m 2003. Vào tháng 1 n?m 2004, Qu? Eclipse ???c thành l?p. Eclipse 3.0 (phát hành vào ngày 21 tháng 6 n?m 2004) ?? ch?n các th?ng s? k? thu?t c?a N?n t?ng D?ch v? OSGi làm ki?n trúc th?i gian ch?y. Các ACM nh?n Eclipse v?i 2011 gi?i th??ng ACM Software Systems vào ngày 26 tháng T? n?m 2012. VMware WorkstationGi?i thi?uVMware Workstation Pro là m?t siêu giám sát ???c l?u tr? ch?y trên các phiên b?n x64 c?a h? ?i?u hành Windows và Linux (?? có phiên b?n x86 c?a các phiên b?n tr??c ?ó) nó cho phép ng??i dùng thi?t l?p các máy ?o (VM) trên m?t máy v?t l? duy nh?t và s? d?ng chúng ??ng th?i cùng v?i máy ch?. M?i máy ?o có th? th?c thi h? ?i?u hành riêng c?a nó, bao g?m các phiên b?n Microsoft Windows, Linux, BSD và MS-DOS. VMware Workstation ???c phát tri?n và bán b?i VMware Inc m?t b? ph?n c?a c?ng ngh? c?a Dell. Có m?t phiên b?n mi?n phí, VMware Workstation Player, ?? s? d?ng phi th??ng m?i. C?n có gi?y phép h? ?i?u hành ?? s? d?ng nh?ng h? ?i?u hành ??c quy?n nh? Windows. Các máy ?o Linux làm s?n ???c thi?t l?p cho các m?c ?ích khác nhau có s?n t? m?t s? ngu?n.VMware Workstation h? tr? b?c c?u các b? ?i?u h?p m?ng máy ch? hi?n có và chia s? ? ??a v?t l? và thi?t b? USB v?i máy ?o. Nó có th? m? ph?ng ? ??a; m?t hình ?nh ISO t?p tin có th? ???c g?n k?t nh? m?t ?o ? ??a quang, và ?o ? ??a c?ng ???c th?c hi?n nh? vmdk t?p tin.VMware Workstation Pro có th? l?u tr?ng thái c?a máy ?o ("?nh ch?p nhanh") b?t k? lúc nào. Nh?ng ?nh ch?p nhanh này sau ?ó có th? ???c kh?i ph?c, ??a máy ?o tr? l?i tr?ng thái ?? l?u m?t cách hi?u qu?, nh? ban ??u và kh?ng b? h?ng hóc sau ?nh ch?p nhanh ??i v?i máy ?o.VMware Workstation bao g?m kh? n?ng nhóm nhi?u máy ?o trong m?t th? m?c hàng t?n kho. Sau ?ó, các máy trong m?t th? m?c nh? v?y có th? ???c b?t và t?t ngu?n nh? m?t ??i t??ng duy nh?t, h?u ích ?? ki?m tra các m?i tr??ng máy ch?-máy khách ph?c t?p.Nh?ng thay ??i và s? phát tri?n trong t??ng laiVMware Workstation phiên b?n 12.0.0, 12.0.1 và 12.1.0 ???c phát hành trong kho?ng hai tháng vào n?m 2015. Vào tháng 1 n?m 2016, toàn b? nhóm phát tri?n ??ng sau VMware Workstation và Fusion ?? b? gi?i tán và t?t c? các nhà phát tri?n Hoa K? ngay l?p t?c b? sa th?i. C?ng ty cho bi?t "các ho?t ??ng tái c? c?u s? kh?ng ?nh h??ng ??n s? t?n t?i c?a b?t k? dòng s?n ph?m hi?n t?i nào", r?ng "vai trò và trách nhi?m liên quan ??n các doanh nghi?p c? th? s? ???c chuy?n sang các khu v?c và ??a ?i?m v?n phòng khác", và vi?c ??u t? s? ti?p t?c "v?i nh?n m?nh c?a chúng t?i s?n ph?m t?ng tr??ng”. T??ng lai c?a Workstation và Fusion tr? nên kh?ng ch?c ch?n. Vào ngày 24 tháng 4 n?m 2016, b?n phát hành b?o trì 12.1.1 ?? ???c phát hành. Vào tháng 9 cùng n?m, c?ng ty ?? th?ng báo r?ng "chúng t?i r?t s?ng và kh?e". Do ?ó, vào ngày 13 tháng 9 Workstation 12.5 và Fusion 8.5 ?? ???c phát hành d??i d?ng b?n n?ng c?p mi?n phí b? sung h? tr? cho phiên b?n Windows 10 Anniversary và Windows Server 2016. H? ?i?u hành LinuxGi?i thi?uLinux là m?t gia ?ình c?a m? ngu?n m? Unix nh? h? ?i?u hành d?a trên Linux kernel, là m?t nh?n h? ?i?u hành ???c phát hành l?n ??u tiên vào ngày 17 tháng 9 n?m 1991, b?i Linus Torvalds. Linux th??ng ???c ?óng gói trong m?t b?n ph?n ph?i Linux.Các b?n ph?n ph?i bao g?m nh?n Linux, ph?n m?m h? th?ng h? tr? và th? vi?n, nhi?u ph?n m?m ???c cung c?p b?i D? án GNU. Nhi?u b?n ph?n ph?i Linux s? d?ng t? "Linux" trong tên c?a chúng, nh?ng T? ch?c Ph?n m?m T? do s? d?ng tên GNU / Linux ?? nh?n m?nh t?m quan tr?ng c?a ph?n m?m GNU, g?y ra m?t s? tranh c?i.Các b?n ph?n ph?i Linux ph? bi?n bao g?m Debian, Fedora và Ubuntu. Các b?n ph?n ph?i th??ng m?i bao g?m Red Hat Enterprise Linux và SUSE Linux Enterprise Server. Các b?n ph?n ph?i Linux dành cho máy tính ?? bàn bao g?m h? th?ng c?a s? nh? X11 ho?c Wayland và m?i tr??ng máy tính ?? bàn nh? GNOME ho?c KDE Plasma. Các b?n ph?n ph?i dành cho máy ch? có th? b? qua hoàn toàn ?? h?a ho?c bao g?m m?t ng?n x?p gi?i pháp nh? LAMP. Vì Linux có th? t? do ph?n ph?i l?i, b?t k? ai c?ng có th? t?o b?n ph?n ph?i cho b?t k? m?c ?ích nào. Linux ban ??u ???c phát tri?n cho máy tính cá nh?n d?a trên ki?n trúc x86 c?a Intel, nh?ng sau ?ó ?? ???c chuy?n sang nhi?u n?n t?ng h?n b?t k? h? ?i?u hành nào khác. Do s? th?ng tr? c?a Android trên ?i?n tho?i th?ng minh, Linux c?ng có c? s? ???c cài ??t l?n nh?t trong t?t c? các h? ?i?u hành ?a n?ng. M?c dù nó ???c s? d?ng b?i ch? kho?ng 2, 3 ph?n tr?m c?a máy tính ?? bàn, các Chromeboo, mà ch?y Linux kernel d?a trên Chrome OS, th?ng tr? th? tr??ng giáo d?c K – 12 c?a Hoa K? và ??i di?n cho g?n 20 ph?n tr?m doanh s? bán máy tính xách tay d??i $ 300 ? Hoa K?. Linux là h? ?i?u hành hàng ??u trên máy ch? (h?n 96,4% trong s? 1 tri?u h? ?i?u hành c?a máy ch? web hàng ??u là Linux), d?n ??u các h? ?i?u hành l?n khác nh? máy tính l?n và là h? ?i?u hành duy nh?t ???c s? d?ng trên TOP500 siêu máy tính (k? t? tháng 11 n?m 2017, ?? d?n lo?i b? t?t c? các ??i th? c?nh tranh). Linux c?ng ch?y trên các h? th?ng nhúng, t?c là các thi?t b? có h? ?i?u hành th??ng ???c tích h?p s?n trong ph?n s?n và ???c thi?t k? phù h?p v?i h? th?ng. ?i?u này bao g?m b? ??nh tuy?n, b? ?i?u khi?n t? ??ng hóa, c?ng ngh? nhà th?ng minh (nh? Google Nest), TV (Samsung và LG Smart TV s? d?ng Tizen và WebOS, t??ng ?ng), ? t? (ví d?, Tesla, Audi, Mercedes-Benz, Hyundai và Toyota ??u d?a trên Linux), máy ghi video k? thu?t s?, b?ng ?i?u khi?n trò ch?i ?i?n t? và ??ng h? th?ng minh. H? th?ng ?i?n t? hàng kh?ng c?a Falcon 9 và Dragon 2 s? d?ng phiên b?n tùy ch?nh c?a Linux. Linux là m?t trong nh?ng ví d? n?i b?t nh?t v? h?p tác ph?n m?m ngu?n m? và mi?n phí. Các m? ngu?n có th? ???c s? d?ng, s?a ??i và ph?n ph?i th??ng m?i ho?c phi th??ng m?i b?i b?t c? ai theo các ?i?u kho?n c?a gi?y phép t??ng ?ng c?a nó, ch?ng h?n nh? GNU General Public License. 90% t?t c? c? s? h? t?ng ?ám m?y ???c cung c?p b?i Linux bao g?m siêu máy tính và nhà cung c?p ?ám m?y. 74% ?i?n tho?i th?ng minh trên th? gi?i s? d?ng h? ?i?u hành Linux.Phát tri?nS? khác bi?t c? b?n gi?a Linux và nhi?u h? ?i?u hành hi?n ??i ph? bi?n khác là nh?n Linux và các thành ph?n khác là ph?n m?m m? ngu?n m? và mi?n phí. Linux kh?ng ph?i là h? ?i?u hành duy nh?t nh? v?y, m?c dù nó ???c s? d?ng r?ng r?i nh?t cho ??n nay. M?t s? gi?y phép ph?n m?m m? ngu?n m? và mi?n phí d?a trên nguyên t?c copyleft, m?t ki?u có ?i có l?i: b?t k? tác ph?m nào b?t ngu?n t? m?t ph?n m?m copyleft c?ng ph?i là b?n th?n copyleft. Gi?y phép ph?n m?m t? do ph? bi?n nh?t, gi?y phép C?ng c?ng GNU (GPL), là m?t d?ng copyleft và ???c s? d?ng cho nh?n Linux và nhi?u thành ph?n t? d? án GNU.Các b?n ph?n ph?i d?a trên Linux ???c các nhà phát tri?n dành cho kh? n?ng t??ng tác v?i các h? ?i?u hành khác và các tiêu chu?n ?i?n toán ?? ???c thi?t l?p. Các h? th?ng Linux tu?n th? các tiêu chu?n POSIX, SUS, LSB, ISO và ANSI n?u có th?, m?c dù cho ??n nay ch? có m?t b?n ph?n ph?i Linux ???c ch?ng nh?n POSIX.1 là Linux-FT.Các d? án ph?n m?m mi?n phí, m?c dù ???c phát tri?n th?ng qua s? h?p tác, nh?ng th??ng ???c s?n xu?t ??c l?p v?i nhau. Tuy nhiên, th?c t? là gi?y phép ph?n m?m cho phép ph?n ph?i l?i m?t cách r? ràng t?o c? s? cho các d? án quy m? l?n h?n thu th?p ph?n m?m ???c t?o ra b?i các d? án ??c l?p và cung c?p t?t c? cùng m?t lúc d??i d?ng b?n ph?n ph?i Linux.Nhi?u b?n ph?n ph?i Linux qu?n l? t?p h?p t? xa các gói ph?n m?m h? th?ng và ph?n m?m ?ng d?ng có s?n ?? t?i xu?ng và cài ??t th?ng qua k?t n?i m?ng. ?i?u này cho phép ng??i dùng ?i?u ch?nh h? ?i?u hành theo nhu c?u c? th? c?a h?. Vi?c ph?n ph?i ???c duy trì b?i các cá nh?n, nhóm ho?t ??ng l?ng l?o, t? ch?c tình nguy?n và các t? ch?c th??ng m?i. B?n ph?n ph?i ch?u trách nhi?m v? c?u hình m?c ??nh c?a nh?n Linux ?? cài ??t, b?o m?t h? th?ng chung và tích h?p chung h?n các gói ph?n m?m khác nhau thành m?t t?ng th? th?ng nh?t. Các b?n ph?n ph?i th??ng s? d?ng trình qu?n l? gói nh? apt, yum, zypper, pacman ho?c portage ?? cài ??t, g? b? và c?p nh?t t?t c? ph?n m?m c?a h? th?ng t? m?t v? trí trung t?m. IntelliJ IDEAGi?i thi?uIntelliJ IDEA là m?t m?i tr??ng phát tri?n tích h?p (IDE) ???c vi?t b?ng Java ?? phát tri?n ph?n m?m máy tính. Nó ???c phát tri?n b?i JetBrains (tr??c ??y g?i là IntelliJ) và có s?n d??i d?ng phiên b?n c?ng ??ng ???c c?p phép Apache 2, và trong m?t phiên b?n th??ng m?i ??c quy?n. C? hai ??u có th? ???c s? d?ng ?? phát tri?n th??ng m?i.L?ch s?Phiên b?n ??u tiên c?a IntelliJ IDEA ???c phát hành vào tháng 1 n?m 2001 và là m?t trong nh?ng Java IDE ??u tiên có s?n v?i kh? n?ng ?i?u h??ng m? và tái c?u trúc m? n?ng cao ???c tích h?p. Trong m?t báo cáo InfoWorld n?m 2010, IntelliJ ?? nh?n ???c ?i?m trung t?m ki?m tra cao nh?t trong s? b?n c?ng c? l?p trình Java hàng ??u: Eclipse, IntelliJ IDEA, NetBeans và JDeveloper. Vào tháng 12 n?m 2014, Google ?? c?ng b? phiên b?n 1.0 c?a Android Studio, m?t IDE m? ngu?n m? cho các ?ng d?ng Android, d?a trên phiên b?n c?ng ??ng m? ngu?n m? c?a IntelliJ IDEA. M?i tr??ng phát tri?n khác d?a trên khu?n kh? IntelliJ bao g?m AppCode, Clion, DataGrip, GoLand, PhpStorm, PyCharm, Rider, RubyMine, WebStorm, và MPS.CH??NG II: PH?N T?CH V? X?Y D?NG H? TH?NGPh??ng pháp phát tri?n ?? tàiTìm hi?u v? m? hình m?ng, m? hình OSI và TCP/IP ?? n?m v?ng ki?n th?c c? b?n v? l?p trình m?ng.Tìm hi?u k? thu?t l?p trình giao th?c SSHS? d?ng ng?n ng? java và ki?n th?c ?? h?c x?y d?ng ch??ng trình demo trên m?i tr??ng linux.C?ng ngh? ???c s? d?ng trong ?? tài H? ?i?u hành linuxH? ?i?u hành Linux ???c phát tri?n d?a vào h? ?i?u hành Unix và ???c phát hành mi?n phí. Server Linux th??ng ???c s? d?ng nhi?u h?n là Windows hay b?t kì h? ?i?u hành nào khác.?u ?i?m:Kh?ng t?n chi phí mua b?n quy?n.Tính b?o m?t t??ng ??i cao.Tính linh ho?t.Có th? ho?t ??ng t?t trên các máy tính c?u hình y?u.Nh??c ?i?m:S? l??ng ?ng d?ng h? tr? trên linux còn h?n ch?.M?t s? nhà s?n xu?t kh?ng phát tri?n driver h? tr? n?n t?ng Linux. Th? vi?n JSCH h? tr? l?p trình giao th?c SSHBan ??u, ??ng l?c c?a chúng t?i ?? phát tri?n c?ng c? này là cho phép ng??i dùng máy ch? java X thu?n túy c?a chúng t?i, Wired X, t?n h??ng các phiên X an toàn. Vì v?y, các n? l?c c?a chúng t?i ch? y?u nh?m vào vi?c tri?n khai giao th?c SSH2 cho chuy?n ti?p X11. T?t nhiên, tuy nhiên, chúng t?i hi?n c?ng quan t?m ??n vi?c thêm các ch?c n?ng khác nh? chuy?n ti?p c?ng, truy?n t?p, m? ph?ng thi?t b? ??u cu?i, v.v.Kh?ng c?n ph?i nói, SSH cung c?p h? tr? ??ng nh?p t? xa an toàn, truy?n t?p an toàn và chuy?n ti?p TCP / IP và X11 an toàn. Nó có th? t? ??ng m? hóa, xác th?c và nén d? li?u ?? truy?n.SSH2 ???c phát minh ?? tránh các v?n ?? v? b?ng sáng ch? liên quan ??n RSA (b?ng sáng ch? RSA ?? h?t h?n) và ?? kh?c ph?c m?t s? v?n ?? v? toàn v?n d? li?u mà SSH1 m?c ph?i và vì m?t s? l? do k? thu?t khác.Giao th?c SSH2 ?? ???c chu?n hóa trên nhóm làm vi?c IETF Secure Shell và các b?n th?o liên quan ??n giao th?c SSH2 có s?n trên web. Java SwingJava Swing là m?t ph?n c?a Java Foundation Classes (JFC) ???c s? d?ng ?? t?o các ?ng d?ng Window-Based. Nó ???c x?y d?ng ? trên cùng c?a AWT (Abstract Windowing Toolkit) API và ???c vi?t hoàn toàn b?ng Java.Kh?ng gi?ng AWT, Java Swing cung c?p các thành ph?n (Component) g?n nh? và ??c l?p n?n t?ng. Javax.swing. Package cung c?p các l?p cho Java Swing ch?ng h?n nh? JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, …M? t? bài toánNg??i dùng có th? ?i?u khi?n máy tính c?a mình t? xa b?ng cách s? d?ng giao th?c SSH ?? ??ng nh?p vào host m?t cách an toànM? hìnhSSH ho?t ??ng b?ng m? hình client-server cho phép ch?ng th?c an toàn gi?a 2 máy t? xa và m? hóa d? li?u ???c truy?n gi?a chúng. SSH v?n hành trên TCP port 22 m?c ??nh (có th? ???c thay ??i n?u c?n). Host (server) nghe port 22 (ho?c b?t k? port nào SSH ???c gán vào) cho nh?ng k?t n?i t?i. Nó s? thi?t l?p k?t n?i an toàn khi ch?ng th?c gi?a client và m?i tr??ng shell ?ang m? thành c?ng.Client ph?i b?t ??u k?t n?i SSH b?ng cách t?o ra TCP handshake v?i server, ??m b?o có th? thi?t l?p k?t n?i symmetric, xác th?c th?ng tin c?a server có kh?p d? li?u c? kh?ng (th?ng th??ng ???c trong RSA key store file), và so sánh th?ng tin ??ng nh?p c?a user k?t n?i ?? xác th?c ?úng k?t n?i.Có 2 giai ?o?n ?? thi?t l?p k?t n?i: tr??c tiên c? 2 bên ??ng ? chu?n m? hóa ?? b?o v? giao ti?p trong t??ng, th? 2, user ph?i ???c xác th?c. N?u th?ng tin ??ng nh?p kh?p, user có quy?n truy c?p.Giao th?cSSH s? d?ng b? giao th?c TCP/IP, ho?t ??ng ? l?p trên c?a m? hình TCP/IP. Vi?c truy?n d? li?u b?ng giao th?c này ??m b?o chuy?n giao d? li?u t?i ?ích m?t cách ?áng tin c?y và ?úng th? t?. Ngoài ra vi?c s? d?ng giao th?c TCP còn ph?n bi?t gi?a các d? li?u c?a nhi?u ?ng d?ng ??ng th?i ch?y trên m?t máy ch?.Tìm hi?u v? giao th?c TCPGiao th?c TCP là gì? Nó là giao th?c ?i?u khi?n truy?n v?n (Transmission Control Protocol) thu?c giao th?c c?t l?i c?a b? giao th?c TCP/IP. Th?ng qua TCP, các ?ng d?ng trên các máy ch? ???c n?i m?ng có th? liên l?c v?i nhau, qua ?ó chúng có th? trao ??i gi? li?u ho?c các gói tin. Giao th?c này ??m b?o chuy?n giao d? li?u t?i nh?n m?t cách ?áng tin c?y và ?úng th? t?. H?n n?a, TCP có ch?c n?ng ph?n bi?t gi?a d? li?u c?a nhi?u ?ng d?ng (nh? d?ch v? Web và d?ch v? Email) ??ng th?i ch?y trên cùng m?t máy ch?.TCP là giao th?c h??ng k?t n?i (connection-oriented), có ngh?a là bu?c ph?i thi?t l?p k?t n?i tr??c sau ?ó m?i ??n ti?n trình truy?n d? li?u.Cung c?p c? ch? ?ánh s? th? t? gói tin (sequencing): s? d?ng ?? ráp các gói tin chính xác ? ?i?m nh?n, lo?i b? gói tin trùng l?p.TCP có kh? n?ng truy?n và nh?n d? li?u cùng m?t lúc — song c?ng (full-duplex).C? ch? báo nh?n (Acknowledgement): t?c là khi A g?i gói tin cho B, n?u B nh?n ???c thì s? g?i th?ng báo cho A, tr??ng h?p A kh?ng nh?n ???c th?ng báo thì s? g?i l?i gói tin t?i khi nào B báo nh?n thì th?i.Tính n?ng ph?c h?i d? li?u b? m?t trên ???ng truy?n.Cách th?c ho?t ??ngGiao th?c ho?t ??ng trong m? hình client-server, có ngh?a là k?t n?i ???c thi?t l?p b?i máy khách SSH k?t n?i v?i máy ch? SSH. Máy khách SSH ?i?u khi?n quá trình thi?t l?p k?t n?i và s? d?ng m? hóa khóa c?ng khai ?? xác minh danh tính c?a máy ch? SSH. Sau giai ?o?n thi?t l?p, giao th?c SSH s? d?ng các thu?t toán m? hóa ??i x?ng m?nh và các thu?t toán hash ?? ??m b?o quy?n riêng t? và tính toàn v?n c?a d? li?u ???c trao ??i gi?a máy khách và máy ch?.Hình bên d??i trình bày m?t lu?ng thi?t l?p ??n gi?n c?a k?t n?i shell an toàn.Hình SEQ Hình \* ARABIC 2: Quy trình ho?t ??ng c?a SSHQuy trình ho?t ??ng c?a SSH có th? tóm g?n th?ng qua 3 b??c ??n gi?n:B??c 1: ??nh danh host – xác ??nh ??nh danh c?a h? th?ng tham gia phiên làm vi?c SSH. ??n gi?n h?n, ??y là b??c kh?i t?o k?t n?i SSH. K?t n?i này là m?t kênh giao ti?p b?o m?t gi?a server và client.B??c 2: M? hoá d? li?u – thi?t l?p kênh làm vi?c m? hoá. Sau khi Client xác ??nh ???c ??nh danh c?a Server 1 k?t n?i b?o m?t ??i x?ng ???c hình thành gi?a 2 bên.B??c 3: Ch?ng th?c và gi?i m? – xác th?c ng??i s? d?ng có quy?n ??ng nh?p h? th?ng. K?t n?i này s? ???c s? d?ng ?? Server xác th?c Client.Thu?t toán Các thu?t toán t?o khóa?? ch?ng th?c b?ng SSH key, ng??i dùng c?n ph?i l?u tr? c?p khóa này t?i máy tính c?a mình. Còn trên server, ng??i dùng c?n ph?i ?? public ket c?a mình t?i th? m?c home: ~/.ssh/authorized_keys. Hi?n có nhi?u thu?t toán ?? kh?i t?o c?p khóa SSH key này nh? RSA, DSA, ECDSA, trong ?ó RSA là thu?t toán th??ng hay ???c dùng nh?t v?i ?? dài khóa t? 2048 – 4096. S? l??c v? các thu?t toán này:RSA: ??y là thu?t toán khóa b?t ??i x?ng c? ?i?n và ???c dùng ph? bi?n nh?t hi?n nay. Keysize giao ??ng t? 1024 – 4096 bit (nên ch?n keysize t? 2048 tr? ?i vì l? do an toàn). Do thu?t toán này ?? có t? l?u, vi?c thu?t toán này b? b? khóa trong t??ng lai g?n là kh?ng th? tránh kh?i, nên ch?n 1 thu?t toán thay th? khác n?u có th?. Hi?n nay, toàn b? các SSH Client ??u h? tr? thu?t toán này.DSA: m?t thu?t toán m? hóa b?t ??i x?ng l?u ??i c?a chính ph? m? v?i keysize th??ng dùng là 1024 bit. Kh?ng nên s? d?ng thu?t toán này n?u có th?.ECDSA: thu?t toán ch? k? ?i?n t? m?i ???c tiêu chu?n hóa b?i chính ph? M?, thu?t toán ???c d?a trên cách tính ???ng cong elip, khác v?i cách tính s? nguyên t? c?a các thu?t toán c?. ??y là m?t thu?t toán t?t, b?o m?t và nên ???c dùng khi t?o c?p khóa b?t ??i x?ng. Thu?t toán h? tr? 3 lo?i key size là: 256, 384 và 521 bit. Hi?n ?a ph?n các trình SSH Client ?? h? tr? thu?t toán này.??y là thu?t toán m?i ???c thêm vào OpenSSH. Hi?n v?n ch?a có nhi?u SSH Client h? tr? thu?t toán này nên s? g?p nhi?u khó kh?n khi s? d?ng trong th?c t?Khi ng??i dùng c?n truy c?p b?ng c?p khóa b?t ??i x?ng, trình client s? báo v?i server và nói v?i server r?ng c?n dùng public key nào phù h?p. Server sau ?ó s? ??c file ~/.ssh/authorized_keys c?a ng??i dùng, kh?i t?o m?t chu?i v?i giá tr? ng?u nhiên và m? hóa chu?i này b?ng chính public key c?a ng??i dùng. Th?ng ?i?p này ch? có th? ???c m? hóa b?i private key t??ng ?ng n?m t?i máy c?a ng??i dùng. Các k? thu?t m? hóaL?i ?i?m khi?n SSH h?n h?n nh?ng giao th?c c? là kh? n?ng m? hóa và truy?n t?i d? li?u an toàn gi?a host và client. Host ??i di?n cho máy ch? t? xa b?n mu?n k?t n?i t?i và client là máy tính c?a b?n dùng ?? truy c?p t?i host. Có 3 cách khác nhau ?? m? hóa qua SSH:Symmetrical encryptionAsymmetrical encryptionHashing.Symmetric EncryptionSymmetric encryption là m?t d?ng m? hóa s? d?ng secret key ? c? 2 chi?u m? hóa và gi?i m? tin nh?n b?i c? host và client. Có ngh?a là ai n?m ???c khóa ??u có th? gi?i m? tin nh?n trong quá trình chuy?n.Hình SEQ Hình \* ARABIC 3: Symmetric EncryptionSymmetrical encryption th??ng ???c g?i là shared key ho?c shared secret encryption. Vì có m?t khóa ???c s? d?ng, ho?c m?t c?p khóa (pair key) mà m?t khóa có th? ???c tính ra t? khóa kia. Symmetric keys ???c s? d?ng ?? m? hóa toàn b? liên l?c trong phiên giao d?ch SSH. C? client và server t?o chung m?t key bí m?t nh? là m?t ph??ng th?c th?a thu?n, và key ?ó kh?ng ???c ti?t l? cho bên th? ba. Quá trình t?o symmetric key ???c th?c hi?n b?i key exchange algorithm.?i?u khi?n cho thu?t toán an toàn là vì key kh?ng ???c truy?n gi?a client và host. Thay vào ?ó, c? 2 máy tính chia s? th?ng tin chung và sau ?ó s? d?ng chúng ?? tính ra khóa bí m?t. K? c? có máy khác b?t ???c th?ng tin chung, nó c?ng kh?ng th? tính ra key bí m?t vì kh?ng bi?t ???c thu?t toán t?o key.C?ng ph?i l?u ? r?ng, tuy nhiên secret token ???c s? d?ng cho m?t phiên SSH nh?t ??nh, và ???c t?o b?i ch?ng th?c c?a client. Khi key ?? ???c t?o, t?t c? packets truy?n gi?a 2 máy ph?i ???c m? hóa b?i private key. Vi?c này bao g?m c? m?t kh?u ?i?n vào b?i user, vì v?y m?t kh?u c?ng có th? ???c b?o v? kh?i nh?ng “lính b?n t?a packet” trên m?ng.M?t s? lo?i symmetric encryption ciphers ?? t?n t?i, bao g?m, nh?ng kh?ng gi?i h?n AES (Advanced Encryption Standard), CAST128, Blowfish etc. Tr??c khi thi?t l?p k?t n?i an toàn client và host s? ??ng ? lo?i cipher nào ???c s? d?ng, b?ng cách xu?t b?n danh sách cyphers ???c h? tr? ?? tham kh?o. Cypher thích h?p nh?t ? phía client s? hi?n th? trong danh sách c?a host nh? là m?t bidirectional cypher.Asymmetrical encryptionKh?ng gi?ng v?i symmetrical encryption, asymmetrical encryption s? d?ng 2 khóa khác nhau ?? m? hóa và gi?i m?. 2 khóa này ???c g?i là public key và private key. C? 2 hình thành nên m?t c?p khóa là public-private key pair.Hình SEQ Hình \* ARABIC 4: Asymmetrical encryptionKhóa public, nh? tên g?i c?a nó s? ???c c?ng khai cho t?t c? các bên liên quan. M?c dù nó liên quan m?t thi?t ??n private key v? ch?c n?ng, nh?ng private key kh?ng th? ???c tính toán ra t? m?t public key. S? liên quan này r?t ph?c t?p: th? ???c m? hóa b?i public key c?a m?t máy, và ch? có th? ???c gi?i m? b?i private key c?a chính máy ?ó. S? liên quan m?t chi?u này có ngh?a là public key kh?ng th? gi?i m? chính th? c?a nó, ho?c kh?ng th? gi?i m? b?t k? th? gì ???c m? hóa b?ng private key.Private key ph?i lu?n lu?n ???c ??m b?o an toàn, ví d?, k?t n?i an toàn, kh?ng có bên th? 3 bi?t. S?c m?nh c?a c? chu trình k?t n?i ph? thu?c vào vi?c private key có b? ti?t l? hay kh?ng, vì ch? có nó m?i có kh? n?ng gi?i m? th? ???c truy?n ?i mà ???c m? hóa b?i public key. Vì v?y, b?t k? bên nào có th? gi?i m? th? ???c k? b?i public key có ngh?a là bên ?ó ?ang s? h?u private key t??ng ?ng.Kh?ng gi?ng v?i quan ni?m th?ng th??ng, asymmetrical encryption kh?ng ???c dùng ?? m? hóa toàn b? phiên SSH. Thay vào ?ó, nó ch? ???c s? d?ng trong quá trình trao ??i thu?t toán c?a khóa c?a symmetric encryption. tr??c khi b?t ??u m?t phiên giao d?ch an toàn, c? 2 ??ng ? t?o ra m?t c?p public-private key t?m, chia s? private keys ?? t?o m?t khóa secret key chung.Khi k?t n?i symmetrict an toàn ?? ???c thi?t l?p, server s? d?ng public key c?a client ?? t?o và challenge và truy?n nó t?i client ?? ch?ng th?c. N?u client có th? gi?i m? tin nh?n, có ngh?a là nó ?ang gi?a ?úng private key c?n thi?t cho k?t n?i. Phiên giao d?ch SSH b?t ??u.HashingHashing m?t chi?u là m?t d?ng m? hóa khác s? d?ng trong Secure Shell Connections. Hash m?t chi?u khác v?i c? 2 ph??ng th?c m? hóa trên ? ch? nó kh?ng ???c sinh ra ?? gi?i m?. Chúng t?o ra m?t giá tr? duy nh?t v?i ?? dài nh?t ??nh cho m?i l?n nh?p li?u mà kh?ng có h??ng nào khác ?? khai thác. ?i?u này khi?n nó d??ng nh? kh?ng th? quay ng??c l?i gi?i m?.Demo ch??ng trình Giao di?n ??ng nh?p SSHHình SEQ Hình \* ARABIC 5: Giao di?n ??ng nh?p SSH Giao di?n sau khi ??ng nh?p SSHHình SEQ Hình \* ARABIC 6: Giao di?n sau khi ??ng nh?p SSHK?T LU?NK?t qu? ??t ???cQua ?? tài này nhóm chúng em làm ???c m?t ?ng d?ng demo giao th?c SSH ch?y trên h? ?i?u hành linux. Giúp chúng em hi?u r? h?n v? giao th?c SSHH?n ch??ng d?ng còn quá s? sài và ??n gi?n. ?ng d?ng ch? s? d?ng v?i h? ?i?u hành linux. Chúng em v?n ch?a tìm hi?u k? v? giao th?c SSHH??ng phát tri?nTìm hi?u s?u h?n v? giao th?c SSH. N?ng c?p giao di?n c?a ?ng d?ng ??p m?t h?n.Thêm m?t s? ch?c n?ng cho ?ng d?ng ?? ng??i dung có th? d? dàng s? d?ng h?nT?I LI?U THAM KH?O Network Programming – Principles and Techniques ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches