SlideShare a Scribd company logo
1 of 132
Download to read offline
TRÆŻ NG I H C KHOA H C T NHIÊN TP HCM
KHOA CÔNG NGH THÔNG TIN
B MÔN H TH NG THÔNG TIN
Khu t Th Ng c BĂ­ch -- LĂȘ Th TrĂșc LĂąm
TĂŹm hi u vĂ  phĂĄt tri n
cÆĄ ch b o m t trĂȘn mĂŁ ngu n m
c a mySQL
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 1
TRÆŻ NG I H C KHOA H C T NHIÊN TP HCM
KHOA CÔNG NGH THÔNG TIN
B MÔN H TH NG THÔNG TIN
Khu t Th Ng c BĂ­ch -0112046
LĂȘ Th TrĂșc LĂąm -0112101
TĂŹm hi u vĂ  phĂĄt tri n
cÆĄ ch b o m t trĂȘn mĂŁ ngu n m
c a mySQL
LU N VĂN C NHÂN TIN H C
GIÁO VIÊN HÆŻ NG D N:
Th.S: PH M TH B CH HU
NIÊN KHOÁ: 2001-2005
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 2
GIÁO VIÊN HÆŻ NG D N
...............................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 3
NH N XÉT C A GIÁO VIÊN PH N BI N
...............................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 4
L I C M Æ N
ChĂșng em xin chĂąn thĂ nh cĂĄm ÆĄn Khoa CĂŽng Ngh ThĂŽng Tin, trÆ° ng i
H c Khoa H c T NhiĂȘn, i h c Qu c gia Tp. H ChĂ­ Minh ĂŁ t o i u ki n
thu n l i cho chĂșng em th c hi n tĂ i lu n văn t t nghi p nĂ y.
ChĂșng em xin nĂłi lĂȘn lĂČng bi t ÆĄn sĂąu s c i v i ThS. Ph m Th B ch
Hu . Xin chĂąn thĂ nh cĂĄm ÆĄn CĂŽ ĂŁ luĂŽn quan tĂąm, t n tĂŹnh hÆ° ng d n em trong
quĂĄ trĂŹnh h c t p, nghiĂȘn c u vĂ  th c hi n tĂ i.
Em xin chĂąn thĂ nh cĂĄm ÆĄn quĂœ Th y CĂŽ trong Khoa CĂŽng Ngh ThĂŽng Tin
ĂŁ t n tĂŹnh gi ng d y, trang b cho em nh ng ki n th c quĂœ bĂĄu, ĂŁ truy n th
cho em nh ng ki n th c, kinh nghi m, ĂŁ quan tĂąm dĂŹu d t vĂ  giĂșp em trong
quĂĄ trĂŹnh h c t p cĆ©ng nhÆ° trong lĂșc th c hi n tĂ i nĂ y.
ChĂșng con luĂŽn nh mĂŁi cĂŽng ÆĄn c a Ông BĂ , Cha M ĂŁ luĂŽn thÆ°ÆĄng yĂȘu,
lo l ng, chăm sĂłc vĂ  nuĂŽi d y con thĂ nh ngÆ° i.
Cu i cĂčng chĂșng em xin g i l i cĂĄm ÆĄn n cĂĄc anh ch , cĂĄc b n ĂŁ quan
tĂąm ng viĂȘn vĂ  giĂșp chĂșng em trong quĂĄ trĂŹnh th c hi n tĂ i. c bi t,
chĂșng em xin g i l i c m ÆĄn chĂąn thĂ nh n th y Nguy n ĂŹnh ThĂșc, ch Tr n
H ng Ng c, ch TrÆ°ÆĄng Th M Trang ĂŁ ng viĂȘn, giĂșp chĂșng em trong
th i gian th c hi n tĂ i.
M c dĂč ĂŁ c g ng hoĂ n thĂ nh lu n văn trong ph m vi vĂ  kh năng cho
phĂ©p nhÆ°ng ch c ch n s khĂŽng trĂĄnh kh i nh ng thi u sĂłt, kĂ­nh mong nh n
Æ° c s t n tĂŹnh ch b o c a quĂœ Th y CĂŽ vĂ  cĂĄc b n.
M t l n n a, chĂșng em xin chĂąn thĂ nh cĂĄm ÆĄn vĂ  mong luĂŽn nh n Æ° c
nh ng tĂŹnh c m chĂąn thĂ nh c a t t c m i ngÆ° i.
Tp. H Chí Minh, thång 6 năm 2005
Khu t Th Ng c BĂ­ch – LĂȘ Th TrĂșc LĂąm
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 5
M C L C
ChÆ°ÆĄng 1. Gi i thi u..................................................................................12
1.1. T ng quan b o m t ...................................................................12
1.1.1. Nh n nh v b o m t...............................................................12
1.1.2. CĂĄc chi u hÆ° ng b o m t thĂŽng tin :........................................13
1.1.3. B o m t thĂŽng tin .....................................................................15
1.2. TĂŹnh hĂŹnh an toĂ n vĂ  b o m t trĂȘn th gi i vĂ  Vi t Nam......17
1.2.1. TrĂȘn th gi i : nhu c u ang gia tăng.......................................17
1.2.2. Vi t Nam...............................................................................18
1.3. Xu hÆ° ng mĂŁ ngu n m ...........................................................19
1.3.1. L i Ă­ch c a ph n m m mĂŁ ngu n m (PMNM) .......................19
1.3.2. Vi t Nam...................................................................................19
1.4. M c tiĂȘu c a tĂ i....................................................................20
ChÆ°ÆĄng 2. CĂĄc cÆĄ s lĂœ thuy t b o m t .....................................................21
2.1. Secret Key Cryptography(H MĂŁ hoĂĄ quy Æ° c).......................21
2.1.1. Gi i thi u..................................................................................21
2.1.2. PhĂąn lo i thu t toĂĄn ..................................................................22
2.1.3. M t vĂ i thu t toĂĄn SKC Æ° c s d ng ngĂ y nay .....................23
2.1.4. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła quy Æ° c...................................23
2.2. Public Key Crytography (MĂŁ hoĂĄ cĂŽng khai) ..........................24
2.2.1. Gi i thi u chung .......................................................................24
2.2.2. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła cĂŽng khai................................24
2.3. Hash Function (hàm Băm)........................................................26
2.3.1. Gi i thi u hàm Băm..................................................................26
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 6
2.3.2. Tính ch t c a hàm băm.............................................................27
2.3.3. C u trĂșc c a hĂ m băm ..............................................................28
2.3.4. Gi i thi u m t s hàm băm ......................................................28
ChÆ°ÆĄng 3. H qu n tr cÆĄ s d li u MySQL ............................................30
3.1. Gi i thi u h qu n tr cÆĄ s d li u MySQL............................30
3.1.1. Gi i thi u..................................................................................30
3.1.2. B n ch t ....................................................................................31
3.1.3. CĂĄc ki u d li u........................................................................32
3.1.4. Statement vĂ  function ...............................................................32
3.1.5. B o m t.....................................................................................33
3.1.6. Kh năng m r ng và gi i h n .................................................33
3.1.7. K t n i ......................................................................................34
3.1.8. M c h n nh............................................................................35
3.2. CÆĄ ch b o m t trong MySQL .................................................35
3.2.1. T ng quan b o m t ...................................................................35
3.2.2. B o m t trong mĂŽi trÆ° ng m ng ..............................................36
3.2.3. CĂĄc khĂĄi ni m cÆĄ b n ...............................................................36
3.2.4. B o m t cÆĄ s d li u...............................................................44
ChÆ°ÆĄng 4. Thu t toĂĄn b o m t password trong MySQL ...........................60
4.1. Thu t toĂĄn SHA-1.....................................................................60
4.1.1. Ý tÆ° ng thu t toĂĄn BĂM SHA.................................................60
4.1.2. Thu t toĂĄn SHA-1.....................................................................66
4.1.3. ĂĄnh giĂĄ Æ°u khuy t i m..........................................................68
4.2. CĂĄc thu t toĂĄn xu t ..............................................................70
4.2.1. SHA-224, SHA-256, SHA-384 vĂ  SHA-512...........................70
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 7
4.2.2. Thu t toĂĄn Tiger .......................................................................75
4.2.3. Thu t toĂĄn Whirlpool................................................................78
4.2.4. So sĂĄnh SHA-1, Tiger, Whirlpool............................................87
ChÆ°ÆĄng 5. CĂ i t th nghi m....................................................................89
5.1. YĂȘu c u ch c năng chÆ°ÆĄng trĂŹnh..............................................89
5.2. ChÆ°ÆĄng trĂŹnh cĂ i t .................................................................89
5.2.1. HÆ° ng d n cĂ i t MySQL t source code ..............................89
5.2.2. HÆ° ng d n th c thi chÆ°ÆĄng trĂŹnh .............................................94
5.3. GĂ­ i thi u chÆ°ÆĄng trĂŹnh cĂ i t.................................................94
5.3.1. ChÆ°ÆĄng trĂŹnh chĂ­nh...................................................................94
5.3.2. ChÆ°ÆĄng trĂŹnh ph ....................................................................102
5.4. K t qu th c nghi m...............................................................104
ChÆ°ÆĄng 6. K t lu n vĂ  hÆ° ng phĂĄt tri n ..................................................106
6.1. K t lu n...................................................................................106
6.1.1. CÆĄ ch b o m t trĂȘn HQT CSDL MySQL .............................106
6.1.2. ChÆ°ÆĄng trĂŹnh HashFunction ...................................................107
6.2. HÆ° ng phĂĄt tri n.....................................................................107
6.2.1. CÆĄ ch b o m t trong HQTCSDL MySQL............................107
6.2.2. ChÆ°ÆĄng trĂŹnh ng d ng...........................................................107
TĂ i li u tham kh o..........................................................................................109
Ph l c
........................................................................................................112
Ph l c A Thu t toĂĄn SHA ............................................................................112
A.1. H ng s s d ng trong SHA ..............................................................112
A.1.1 H ng s c a SHA-1......................................................................112
A.1.2 H ng s c a SHA-224 vĂ  SHA-256 ............................................112
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 8
A.1.3 H ng s c a SHA-384 vĂ  SHA-512 ............................................113
A.2 GiĂĄ tr kh i t o trong SHA..................................................................115
A.3 CĂĄc thao tĂĄc ti n x lĂœ trong SHA ......................................................115
A.4 Thu t toán tính hàm BĂM trong SHA................................................116
A.4.1 SHA-1 ..........................................................................................116
A.4.2 SHA-224 ......................................................................................118
A.4.3 SHA-256 ......................................................................................119
A.4.4 SHA-384 ......................................................................................121
A.4.5 SHA-512 ......................................................................................123
Ph l c B Thu t toĂĄn Tiger............................................................................125
Ph l c C T n cĂŽng SHA-1 ...........................................................................128
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 9
Danh sĂĄch cĂĄc b ng
B ng 1.1.2 CĂĄc chi u hÆ° ng b o m t ..................................................................14
B ng 2.2.2 : KĂ­ch thÆ° c khĂła gi a mĂŁ hĂła quy Æ° c vĂ  mĂŁ hĂła khĂła cĂŽng khai
v i cĂčng m c b o m t.....................................................................................25
B ng 3.1.6 KĂ­ch thÆ° c gi i h n c a file h th ng trong MySQL........................34
B ng 3.2.4.2.a Danh sĂĄch cĂĄc c t c a b ng user, host, db trong MySQL...........46
B ng 3.2.4.2.b B ng tables_priv, columns_priv trong MySQL ..........................48
B ng 3.2.4.2.d Ph m vi cĂĄc c t trong cĂĄc b ng ...................................................50
B ng 3.2.4.2.e CĂĄc giĂĄ tr trong cĂĄc c t phĂąn quy n ...........................................51
B ng 3.2.4.3.a Danh sĂĄch cĂĄc c quy n.............................................................53
B ng 3.2.4.3.b Danh sĂĄch cĂĄc c quy n qu n tr ...............................................54
B ng 4.2.1.1 Cåc tính ch t c a cåc thu t toån băm an toàn.................................71
B nng 5.3.2.2 So sĂĄnh SHA-1, Tiger, Whirlpool................................................88
B nng 5.3.2.2 CĂĄc hĂ m chĂ­nh trong SHA-1, Tiger,Whirlpool ..........................103
B ng B.1. MĂĄy CPU Celeron 950MHz, SDRAM 128 MB, HDD 40GB,
Processor 32bit...................................................................................................104
B ng B.2. MĂĄy CPU PentiumIV 1,5 GHz, DDRAM 384MB, HDD 30 GB,
Processor 32bit...................................................................................................104
B ng B.3. MĂĄy CPU PentiumIV 2.26 GHz, DDRAM 225MB, HDD 40GB,
Processor 32bit...................................................................................................105
B ng B.4. MĂĄy CPU PentiumIV 2.4 GHz, DRAM 225 MB, HDD 40 GB,
Processor 32bit...................................................................................................105
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 10
Danh sĂĄch cĂĄc hĂŹnh
HĂŹnh 2.1.1 Secret Key Cryptography...................................................................21
HĂŹnh 2.2.1 Public Key Crytography.....................................................................24
HĂŹnh 2.3.1 Hash Function ....................................................................................26
HĂŹnh 3.2.4.4 Ki m tra yĂȘu c u .............................................................................59
HĂŹnh 5.3.2 ChÆ°ÆĄng trĂŹnh Hash Function............................................................102
HÏnh phåc th o ch c năng nén c a Tiger...........................................................127
Danh sĂĄch cĂĄc t vi t t t
BM b o m t
csdl cÆĄ s d li u
HQTCSDL h qu n tr cÆĄ s d li u
CNTT cĂŽng ngh thĂŽng tin
PMNM ph n m m ngu n m
SSL Secure Sockets Layer
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 11
Tóm t t n i dung c a lu n văn
‱ ChÆ°ÆĄng 1 : TrĂŹnh bĂ y t ng quan v b o m t d li u, cĂĄc chi u hÆ° ng b o
m t thĂŽng tin hi n t i, cĂĄc yĂȘu c u trong b o m t d li u, tĂŹnh hĂŹnh nghiĂȘn
c u hi n nay trĂȘn th gi i vĂ  trong nÆ° c v lÄ©nh v c nĂ y, ng th i nĂȘu
lĂȘn m c Ă­ch, n i dung vĂ  Ăœ nghÄ©a c a tĂ i.
‱ ChÆ°ÆĄng 2 : TrĂŹnh bĂ y tĂłm t t m t s phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ hi n nay, phĂąn
lo i cĆ©ng nhÆ° ĂĄnh giĂĄ Æ°u khuy t i m c a t ng phÆ°ÆĄng phĂĄp. c bi t,
trong chÆ°ÆĄng nĂ y s gi i thi u khĂĄ kÄ© v hĂ m BĂM, t o cÆĄ s ti n ta
nghiĂȘn c u cĂĄc chÆ°ÆĄng sau.
‱ ChÆ°ÆĄng 3 : TrĂŹnh bĂ y khĂĄi quĂĄt v h qu n tr cÆĄ s d li u MySQL.
Trong chÆ°ÆĄng nĂ y, cÆĄ ch b o m t c a MySQL s Æ° c trĂŹnh bĂ y c th .
CÆĄ ch b o m t trong mĂŽi trÆ° ng m ng, trong cÆĄ s d li u cĆ©ng nhÆ° cĂĄch
lÆ°u tr password, quĂĄ trĂŹnh ki m tra password, cÆĄ ch phĂąn quy n s Æ° c
trĂŹnh bĂ y trong chÆ°ÆĄng nĂ y.
‱ ChÆ°ÆĄng 4 : TrĂŹnh bĂ y v thu t toĂĄn b o m t password trong MySQL : Ăœ
tÆ° ng, cĂĄc bÆ° c c a thu t toĂĄn, ĂĄnh giĂĄ Æ°u khuy t i m. ng th i,
chĂșng tĂŽi s xu t m t s thu t toĂĄn t t hÆĄn cĂł th h n ch Æ° c khuy t
i m c a thu t toĂĄn hi n t i.
‱ ChÆ°ÆĄng 5 : Gi i thi u sÆĄ lÆ° c mĂŁ ngu n m c a MySQL, tĂŹm hi u cĂĄc
hĂ m mĂŁ hoĂĄ password, hĂ m lÆ°u password trong CSDL. ng th i cĂ i t
th nghi m m t s thu t toĂĄn m i vĂ  ng d ng phĂĄt tri n cÆĄ ch b o m t
c a HQTCSDL MySQL.
‱ ChÆ°ÆĄng 6 : K t lu n vĂ  hÆ° ng phĂĄt tri n c a tĂ i.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 12
ChÆ°ÆĄng 1.Gi i thi u
N i dung c a chÆ°ÆĄng 1 trĂŹnh bĂ y t ng quan v xu hÆ° ng mĂŁ ngu n m vĂ 
chi u hÆ° ng b o m t thĂŽng tin hi n t i, cĂĄc yĂȘu c u trong b o m t d li u, tĂŹnh
hĂŹnh nghiĂȘn c u hi n nay trĂȘn th gi i vĂ  trong nÆ° c v lÄ©nh v c nĂ y, ng th i
nĂȘu lĂȘn m c Ă­ch, n i dung vĂ  Ăœ nghÄ©a c a tĂ i.
1.1. T ng quan b o m t
1.1.1. Nh n nh v b o m t
B o m t thĂŽng tin nh hÆ° ng r t l n n s t n t i vĂ  phĂĄt tri n c a doanh
nghi p hay t ch c. Do Ăł vi c b o m t thĂŽng tin b o m t thĂŽng tin cĂł Ăœ nghÄ©a
h t s c quan tr ng.
NgĂ y nay v i s phĂĄt tri n khĂŽng ng ng c a cĂŽng ngh thĂŽng tin, d li u c a
cĂĄc doanh, nghi p, t ch c, cĂĄc nhĂąn khĂŽng ch lÆ°u tr trĂȘn gi y t mĂ  Æ° c t
ch c thĂ nh m t cÆĄ s d li u (csdl). Csdl s Æ° c qu n lĂœ b ng m t h qu n tr
cÆĄ s d li u (hqtcsdl). TĂčy thu c vĂ o l n c a csdl, tĂŹnh hĂŹnh tĂ i chĂ­nh, kh
năng c a mĂŹnh mĂ  m i cĂŽng ty s ch n l a m t h qu n tr phĂč h p.
NgĂ y nay, s phĂĄt tri n c a internet giĂșp cho cĂĄc giao d ch trĂȘn m ng ngĂ y
cĂ ng tăng, lÆ° ng thĂŽng tin trao i trĂȘn m ng cĆ©ng tăng tÆ°ÆĄng ng. VĂŹ th cÆĄ h i
cho các i th , các “hacker” thñm nh p ánh c p d li u càng tăng.
ThĂŽng tin c n Æ° c b o v kh i cĂĄc m i e d a nhÆ° :
Vi c m o danh truy c p thĂŽng tin b t h p phĂĄp vĂ  s d ng thĂŽng tin cho
cĂĄc m c Ă­ch riĂȘng c a mĂŹnh.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 13
S t n cĂŽng c a cĂĄc hacker vĂ o cĂĄc d li u nh m phĂĄ ho i d li u ph c
v cho cĂĄc m c Ă­ch riĂȘng nhÆ° c nh tranh khĂŽng lĂ nh m nh gi a cĂĄc
doanh nghi p.
CĂĄc thĂŽng tin nh y c m cĂł th b l y tr m.
ThĂŽng tin c n Æ° c b o v ngay trong csdl, trĂȘn Æ° ng m ng trĂĄnh b ĂĄnh
c p, b thay i.
Các nh n nh sai l m v “m t mát thîng tin” :
ThĂŽng tin b m t thÆ° ng lĂ  do cĂĄc hacker bĂȘn ngoĂ i t nh p vĂ o vĂ  ĂĄnh
c p. NhÆ°ng th c t thĂŹ 80% d li u b m t lĂ  do nh ng ngÆ° i bĂȘn trong h
th ng gĂąy ra.
Ch c n mã hóa d li u là ã kh năng b o m t d li u. Th c ch t mã
hĂła ch lĂ  m t bÆ° c trong m t cÆĄ ch b o m t mĂ  thĂŽi.
Do Ăł, ta c n ph i cĂł cÆĄ ch b o m t thĂ­ch h p cho h th ng. M t cÆĄ ch b o
m t thÆ° ng g m cĂĄc v n sau :
MĂŁ hĂła d li u.
CĂĄch th c trao i thĂŽng tin.
CĂĄch th c lÆ°u tr thĂŽng tin.
CĂĄc phÆ°ÆĄng phĂĄp ch ng th c user.
CĂĄch th c nh n bi t quy n h p phĂĄp c a user i v i thĂŽng tin d li u.
1.1.2. CĂĄc chi u hÆ° ng b o m t thĂŽng tin :
ThĂŽng tin thÆ° ng Æ° c lÆ°u t i cĂĄc server vĂ  Æ° c t ch c thĂ nh cĂĄc file v t lĂœ
cĂł c u trĂșc vĂ  Æ° c qu n tr b ng m t h qu n tr cÆĄ s d li u thĂ­ch h p. ThĂŽng
tin Æ° c truy n trĂȘn cĂĄc Æ° ng m ng s Æ° c b o v theo cĂĄc cÆĄ ch riĂȘng.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 14
DĂč trong hĂŹnh th c nĂ o thĂŹ thĂŽng tin u c n Æ° c b o m t theo cĂĄc chi u
hÆ° ng sau:
HÆ° ng b o m t NguyĂȘn t c b o m t
V t lĂœ User chÆ°a Æ° c ch ng th c thĂŹ khĂŽng Æ° c phĂ©p truy c p
vĂ o mĂĄy m c v t lĂœ.
CĂĄ nhĂąn Qu n tr viĂȘn cĂł trĂĄch nhi m qu n tr vĂ  b o m t d li u
trong h th ng. Do Ăł qu n tr viĂȘn ph i lĂ  ngÆ° i ĂĄng tin
c y, cĂł tÆ° cĂĄch v o c.
Th t c CĂĄc th t c dĂčng trong h th ng ph i dĂčng Ășng cĂĄc d
li u theo Ășng ch c năng c a mĂŹnh.
VĂ­ d m t ngÆ° i th c hi n cĂŽng vi c back up d li u thĂŹ
nhi m v duy nh t c a ngÆ° i Ăł lĂ  m b o d li u back up
vĂ  running. M t ngÆ° i ch u trĂĄch nhi m th c hi n t o cĂĄc
bĂĄo cĂĄo v b ng lÆ°ÆĄng vĂ  bĂĄn hĂ ng thĂŹ ngÆ° i Ăł ch cĂł
nhi m v ki m tra vĂ  xĂĄc nh n tĂ­nh toĂ n v n c a d li u.
VĂŹ th cĂĄch qu n lĂœ khĂ©o lĂ©o nh t lĂ  phĂąn chia nhi m v ,
vai trĂČ cho t ng user theo Ășng ph m vi ch c năng ph n s .
K thu t LÆ°u tr , truy c p, s d ng vĂ  truy n d li u ph i Æ° c an
toĂ n b ng nh ng k thu t thi hĂ nh theo nh ng chĂ­nh sĂĄch
phĂč h p.
B ng 1.1.2 CĂĄc chi u hÆ° ng b o m t
V y khi Æ°a ra m t gi i phĂĄp nĂ o, ta c n ph i cĂąn nh c th t c n th n v v n
b o m t. Tuy nhiĂȘn, cĂł m t s trÆ° ng h p mĂ  v n k thu t khĂŽng th gi i
quy t Æ° c. Ăł lĂ  cĂĄc v n v “b o m t trong mĂŽi trÆ° ng lĂ m vi c”. VĂ­ d ,
m t nhĂąn viĂȘn r i kh i bĂ n lĂ m vi c c a mĂŹnh trong m t lĂĄt vĂŹ m t lĂœ do nĂ o Ăł
vĂ  m t ngÆ° i khĂĄc l i d ng xĂąm nh p ĂĄnh c p ho c thay i d li u.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 15
1.1.3. B o m t thĂŽng tin
1.1.3.1. B o m t thĂŽng tin truy n trong mĂŽi trÆ° ng m ng
Khi d li u truy n trĂȘn Æ° ng m ng thĂŽng tin cĂł th b l y m t b t c lĂșc
nĂ o. N u d li u truy n i mĂ  khĂŽng cĂł phÆ°ÆĄng phĂĄp nĂ o b o m t thĂŹ k x u
d dĂ ng l y Æ° c thĂŽng tin vĂ  dĂčng nĂł vĂ o nh ng m c Ă­ch riĂȘng c a mĂŹnh.
Do Ăł c n ph i cĂł nh ng phÆ°ÆĄng phĂĄp b o m t d li u trĂȘn m ng.
1.1.3.2. B o m t thĂŽng tin CSDL
a) B o m t CDSL g m cĂł cĂĄc tiĂȘu chu n sau :
‱ Bí m t
H th ng ch cho phĂ©p m i user khi ăng nh p thĂ nh cĂŽng ch Æ° c
th c hi n cĂĄc thao tĂĄc mĂ  user Ăł cĂł cĂĄc quy n th c thi thao tĂĄc.
‱ Toàn v n
D li u ph i Æ° c b o toĂ n, khĂŽng b xĂła l i.
‱ S n sàng
D li u ph i luĂŽn s n sĂ ng ph c v khĂŽng Æ° c ch m tr .
B o m t csdl lĂ  ch ra ai lĂ  ngÆ° i Æ° c truy c p vĂ o d li u, user Æ° c
th y nh ng d li u nĂ o c a csdl, user cĂł th th c hi n cĂĄc thao tĂĄc nĂ o
trĂȘn csdl, user cĂł th xem cĂĄc d li u nh y c m khi c n thi t hay khĂŽng ?
b) B o m t username vĂ  password
D li u trong csdl trĂȘn server luĂŽn c n Æ° c b o m t vĂ  ch cĂł m t s
ngÆ° i cĂł ch c năng m i Æ° c phĂ©p truy c p vĂ  s d ng. ch ng th c
m t user thĂŹ phÆ°ÆĄng phĂĄp thÆ° ng th y nh t lĂ  dĂčng m t nh danh
username vĂ  password. Tuy nhiĂȘn, username vĂ  password cĂł th b ĂĄnh
c p b t c lĂșc nĂ o.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 16
c) S truy c p b t h p phĂĄp vĂ o d li u
Trong csdl thÏ khÎng ph i b t kỳ m t user nào cƩng có quy n truy c p
vĂ  th c hiĂȘn cĂĄc thao tĂĄc nhÆ° nhau. TĂčy theo m i ch c v , cĂŽng vi c,
ph m vi th c hi n c a m i user mĂ  h cĂł quy n vĂ  cĂł th th c hi n m t s
thao tĂĄc khĂĄc nhau trĂȘn csdl. Ăł chĂ­nh lĂ  vi c phĂąn quy n cho user.
y quy n lĂ  cĂŽng vi c trao cho user, program hay process quy n Æ° c
truy c p th c th ho c t p cĂĄc th c th . CĂĄc quy n nĂ y cĂł th lĂ  ch lĂ  read
hay read/write.
Quy n h n lĂ  s cho phĂ©p truy c p mang tĂ­nh thi hĂ nh, vĂ­ d nhÆ° quy n
Æ° c truy v n trĂȘn table. Quy n h n Æ° c c p cho user theo quy t nh
c a user c p cao hÆĄn (thÆ° ng lĂ  qu n tr viĂȘn Administrator). Quy n h n
Æ° c c p cho user h p l k t n i csdl, thao tĂĄc trĂȘn csdl. CĂł 2 m ng
quy n chĂ­nh :
System Privileges
Ăąy lĂ  quy n c p cao. ThÆ° ng thĂŹ cĂĄc quy n nĂ y ch Æ° c c p
cho qu n tr viĂȘn vĂ  cĂĄc ngÆ° i phĂĄt tri n ng d ng. Quy n nĂ y cho
phĂ©p user Æ° c phĂ©p thao tĂĄc trĂȘn toĂ n b csdl vĂ  Æ° c phĂ©p c p
quy n cho cĂĄc user khĂĄc.
Object Privileges
Ăąy lĂ  cĂĄc quy n thao tĂĄc trĂȘn cĂĄc i tÆ° ng c a csdl nhÆ°
database, table, row, column. CĂĄc quy n nĂ y bao g m cĂĄc thao tĂĄc
INSERT, UPDATE, DELETE, SELECT, CREATE 

TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 17
1.2. TĂŹnh hĂŹnh an toĂ n vĂ  b o m t trĂȘn th gi i vĂ  Vi t Nam
1.2.1. TrĂȘn th gi i : nhu c u ang gia tăng
Theo k t qu kh o sĂĄt do Vi n An ninh MĂĄy tĂ­nh (CSI) ph i h p v i C c i u
tra LiĂȘn bang M (FBI) th c hi n v ch t i ph m vĂ  an ninh m ng, cĂĄc v
ĂĄnh c p thĂŽng tin m t gĂąy thi t h i l n nh t lĂ  2,7 tri u USD m i v . CĂČn theo
t Computer Economics, trong năm 2003 cåc lo i sùu và virus måy tính ã gùy
thi t h i 12,5 t USD trĂȘn toĂ n c u. Trong an ninh m ng, cĂĄc doanh nghi p v a
vĂ  nh (SMB) d tr thĂ nh n n nhĂąn c a cĂĄc v t n cĂŽng nh t, b i i tÆ° ng nĂ y
thi u ngu n l c vĂ  i ngĆ© chuyĂȘn gia cĂŽng ngh thĂŽng tin. Ngay t i nÆ° c M ,
theo s li u th ng kĂȘ, ch 35% cĂĄc doanh nghi p v a vĂ  nh lĂ  cĂł s d ng h
th ng tÆ° ng l a (firewalls).
CĆ©ng gi ng nhÆ° mĂŽi trÆ° ng an ninh nĂłi chung, mĂŽi trÆ° ng an ninh trĂȘn
Internet ang ngĂ y cĂ ng tr nĂȘn ph c t p. V n b o m t h th ng vĂ  song hĂ nh
v i nĂł lĂ  v n lÆ°u tr thĂŽng tin ang Ăłng vai trĂČ ngĂ y cĂ ng quan tr ng. Theo
nhĂłm nghiĂȘn c u th trÆ° ng Meta Group:
Hi n t i ch cĂł kho ng 3-4% ngĂąn sĂĄch CNTT dĂ nh cho v n b o m t
vĂ  an toĂ n thĂŽng tin, nhÆ°ng theo d bĂĄo n năm 2006 t l nĂ y s tăng
lĂȘn 8-10%.
Th trÆ° ng an ninh CNTT ChĂąu ĂĄ d tĂ­nh cĆ©ng s t m c tăng trÆ° ng
22% t năm 2003 n năm 2008, con s g p g n 2 l n t l tăng trư ng
c a th trÆ° ng d ch v CNTT nĂłi chung.
CĂČn theo s li u t hĂŁng nghiĂȘn c u th trÆ° ng IDC, th trÆ° ng an ninh,
b o m t ChĂąu ĂĄ-ThĂĄi BĂŹnh DÆ°ÆĄng (tr Nh t B n) cĆ©ng s tăng trÆ° ng
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 18
15% t năm 2002 n năm 2007 và s t t ng giå tr 4,1 t USD vào
năm 2007.
1.2.2. Vi t Nam
ChÆ°a bao gi v n b o m t vĂ  an toĂ n d li u l i Æ° c coi tr ng nhÆ° hi n
nay, trong b i c nh m ng mĂĄy tĂ­nh phĂĄ b m i ngăn cĂĄch, “m i lĂșc, m i nÆĄi”
ngÆ° i ta u cĂł th l y Æ° c thĂŽng tin c n thi t. ThĂŽng tin ĂŁ tr thĂ nh m t trong
nh ng ngu n tĂ i nguyĂȘn quan tr ng nh t v i t ch c, doanh nghi p. Con ngÆ° i
t p trung nhi u s c l c, trĂ­ tu cĂł thĂŽng tin nhanh, chĂ­nh xĂĄc. Ai cĂł thĂŽng tin,
k Ăł chi n th ng. B i v y, thĂŽng tin ĂŁ tr thĂ nh m c tiĂȘu săn u i c a nh ng
ai mu n vÆ° t lĂȘn, vĂ  ng th i lĂ  cĂĄi mĂ  ai cĆ©ng c g ng gi .
V i s phĂĄt tri n c a CNTT, h u nhÆ° m i th u Æ° c “s hĂła”, c bi t lĂ 
thĂŽng tin. So n th o h p ng b ng Word, g i thÆ° qua e-mail, thanh toĂĄn v i
ngĂąn hĂ ng b ng th tĂ­n d ng ...; nĂłi chung m i ngÆ° i lĂ m vi c, giao d ch u qua
mĂĄy tĂ­nh vĂ  m ng. Ta khĂŽng th lĂ m khĂĄc i b i s b cĂŽ l p, s luĂŽn ch m hÆĄn,
m t kh năng c nh tranh vĂ  cu i cĂčng s thua cu c.
DĂč n m trong mĂĄy tĂ­nh hay kĂ©t s t thĂŹ d li u c a ngÆ° i dĂčng v n lĂ  m c tiĂȘu
nh m t i c a cĂĄc i th c nh tranh. Trong trÆ° ng h p nĂ y, “tin t c” lĂ  nh ng
tay ĂĄng ng i nh t. NgÆ° i dĂčng ph i bi t cĂĄch phĂČng ch ng.
T i VN, v n BM h th ng thĂŽng tin b t u nĂłng d n lĂȘn vĂ  ang s n sĂ ng
cho nhu c u BM t quy mĂŽ nh cho n l n.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 19
1.3. Xu hÆ° ng mĂŁ ngu n m
1.3.1. L i Ă­ch c a ph n m m mĂŁ ngu n m (PMNM)
c tĂ­nh chia s mĂŁ ngu n khi n PMNM cĂł vai trĂČ th c s quan tr ng trong
lÄ©nh v c Ă o t o vĂ  nghiĂȘn c u. Nh ng thÆ° vi n mĂŁ ngu n m s giĂșp sinh viĂȘn
hi u rĂ” vĂ  nhanh chĂłng n m b t Æ° c cĂŽng ngh , rĂșt ng n Æ° c th i gian Ă o t o
sinh viĂȘn CNTT.
KhĂŽng ch trong lÄ©nh v c giĂĄo d c, Ă o t o hay nghiĂȘn c u, i u ĂĄng ng c
nhiĂȘn lĂ  PMNM cĆ©ng h a h n nh ng cÆĄ h i kinh doanh khĂŽng nh i v i cĂĄc
doanh nghi p, nh ng ngÆ° i luĂŽn t v n l i Ă­ch lĂȘn hĂ ng u. CÆĄ h i kinh
doanh mĂ  PMNM mang l i khĂŽng nh hÆĄn nh ng cÆĄ h i kinh doanh d a trĂȘn
n n t ng c a Microsoft Windows.
1.3.2. Vi t Nam
PMNM ĂŁ t ng Æ° c vĂ­ nhÆ° l i thoĂĄt hi m c a Vi t Nam trÆ° c ĂĄp l c v b n
quy n s h u trĂ­ tu trong quĂĄ trĂŹnh h i nh p qu c t . Khi nÆ° c nhĂ  chu n b gia
nh p T ch c ThÆ°ÆĄng m i Th gi i WTO, Khu v c M u d ch T do (AFTA) vĂ 
th c hi n Hi p nh ThÆ°ÆĄng m i Vi t-M thĂŹ PMNM lĂ  Æ° ng thoĂĄt hi m duy
nh t thoĂĄt kh i tĂŹnh tr ng vi ph m b n quy n ph n m m Vi t Nam
H i th o qu c gia l n th nh t v PMNM Æ° c t ch c thĂĄng 12/2000 cĂł th
Æ° c xem nhÆ° m t c t m c ĂĄnh d u s xu t hi n chĂ­nh th c c a PMNM t i
Vi t Nam. Hai năm sau ó, H i th o Qu c gia v PMNM l n th hai, thång
12/2002, Æ° c coi lĂ  bÆ° c chu n b vĂ  nĂąng cao nh n th c v PMNM. ChĂ­nh t i
H i th o nĂ y ĂŁ cho th y PMNM ang lĂ  m t xu hÆ° ng phĂĄt tri n trĂȘn th gi i :
CĂĄc t ch c qu c t u khuy n cĂĄo s d ng PMNM.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 20
CĂĄc nÆ° c ChĂąu Á nhÆ° Trung Qu c, HĂ n Qu c, Nh t B n ang phĂĄt tri n
r t m nh PMNM. Malaysia g n Ăąy ĂŁ u tÆ° 30 tri u USD cho PMNM.
Năm 2003 Nh t B n cƩng dành 10 tri u USD cho PMNM.
KhĂŽng ch c p ChĂ­nh ph , nhi u cĂŽng ty a qu c gia nhÆ° Oracle, IBM,
HP... cĆ©ng ang phĂĄt tri n m nh theo xu hÆ° ng PMNM.
IBM hi n cĂł m t trung tĂąm v i 700 ngÆ° i chuyĂȘn nghiĂȘn c u v
PMNM.
Quy t nh s 235/Q -TTg, ngĂ y 2/3/2004, c a Th tÆ° ng ChĂ­nh ph phĂȘ
duy t D án t ng th “ ng d ng và phát tri n ph n m m ngu n m Vi t Nam
giai o n 2004-2008” là i m m c ánh d u vi c b t u tri n khai PMNM t i
Vi t Nam.
1.4. M c tiĂȘu c a tĂ i
V n b o m t h th ng vĂ  song hĂ nh v i nĂł lĂ  v n lÆ°u tr thĂŽng tin ang
Ăłng vai trĂČ ngĂ y cĂ ng quan tr ng. i v i m t t ch c hay cĂĄ nhĂąn khi l a ch n
m t h qu n tr CSDL, ngoĂ i tiĂȘu chĂ­ ch n h qu n tr cĂł quy mĂŽ phĂč h p v i
l n c a CSDL thĂŹ v n b o m t c a h qu n tr Ăł cĆ©ng r t Æ° c quan tĂąm.
tĂ i “TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t trĂȘn mĂŁ ngu n m c a MySQL”
Æ° c th c hi n nh m m c tiĂȘu:
‱ TĂŹm hi u cĂĄc cÆĄ s lĂœ thuy t v b o m t, gi i thi u tĂłm t t m t s phÆ°ÆĄng
phĂĄp mĂŁ hoĂĄ
‱ TĂŹm hi u cÆĄ ch b o m t c a m t h qu n tr mĂŁ ngu n m : MySQL.
‱ Tìm hi u, phñn tích, ánh giá thu t toán mã hoá password trong MySQL
‱ TrĂȘn cÆĄ s nghiĂȘn c u m t s gi i thu t m i, cĂł an toĂ n cao, xĂąy d ng
m t s cÆĄ ch mĂŁ hoĂĄ password m i c a riĂȘng mĂŹnh trong MySQL.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 21
ChÆ°ÆĄng 2.CĂĄc cÆĄ s lĂœ thuy t b o m t
N i dung c a chÆ°ÆĄng 2 s trĂŹnh bĂ y tĂłm t t m t s phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ
hi n nay, phĂąn lo i cĆ©ng nhÆ° ĂĄnh giĂĄ Æ°u khuy t i m c a t ng phÆ°ÆĄng phĂĄp.
c bi t, trong chÆ°ÆĄng nĂ y s gi i thi u khĂĄ kÄ© v hĂ m BĂM, t o cÆĄ s ti n
ta nghiĂȘn c u cĂĄc chÆ°ÆĄng sau.
Thu t toĂĄn mĂŁ hĂła d li u hi n nay phĂąn lo i theo s khoĂĄ Æ° c dĂčng mĂŁ
hoĂĄ vĂ  gi i mĂŁ cĂł 3 lo i :
1. Secret Key Cryptography (SKC) : s d ng m t khoĂĄ chung cho quĂĄ trĂŹnh
mĂŁ hoĂĄ vĂ  gi i mĂŁ.
2. Public Key Cryptography (PKC) : s d ng m t khoĂĄ cho ph n mĂŁ hoĂĄ vĂ 
m t khoĂĄ khĂĄc gi i mĂŁ.
3. Hash Functions: s d ng m t phép bi n i mã hóa thÎng tin m t chi u.
i u nĂ y cĂł nghÄ©a lĂ  m t khi thĂŽng tin ĂŁ Æ° c mĂŁ hĂła thĂŹ khĂŽng th cĂł
cĂĄch nĂ o l y l i Æ° c thĂŽng tin ban u.
2.1. Secret Key Cryptography(H MĂŁ hoĂĄ quy Æ° c)
2.1.1. Gi i thi u
HĂŹnh 2.1.1 Secret Key Cryptography
CĂĄc th Ăąt toĂĄn mĂŁ hoĂĄ quy Æ° c (hay mĂŁ khoĂĄ bĂ­ m t hay h mĂŁ i x ng)
dĂčng m t khoĂĄ bĂ­ m t ÆĄn mĂŁ hoĂĄ vĂ  gi i mĂŁ d li u. D li u ngu n x Æ° c
ngÆ° i g i A mĂŁ hoĂĄ b ng thu t toĂĄn mĂŁ hoĂĄ quy Æ° c v i khoĂĄ bĂ­ m t k Æ° c
th ng nh t trÆ° c gi a ngÆ° i g i A vĂ  ngÆ° i nh n B. D li u sau khi mĂŁ hoĂĄ y s
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 22
Æ° c truy n cho ngÆ° i nh n B. Sau khi nh n, B s s d ng khoĂĄ bĂ­ m t k gi i
mĂŁ y cĂł Æ° c thĂŽng i p ngu n x ban u.
N u m t ngÆ° i C cĂł Æ° c khoĂĄ bĂ­ m t k thĂŹ C s cĂł kh năng gi i mĂŁ t t c d
li u c a A b ng khoĂĄ k r i thay i d li u vĂ  mĂŁ hĂła l i b ng khĂła k sau Ăł g i
cho B. Do Ăł v n b o m t thĂŽng tin Æ° c mĂŁ hoĂĄ ph thu c vĂ o vi c gi bĂ­
m t n i dung mĂŁ khoĂĄ k.
MĂŁ hoĂĄ khoĂĄ bĂ­ m t cĆ©ng Æ° c g i lĂ  mĂŁ hoĂĄ khoĂĄ i x ng vĂŹ ch dĂčng m t
khoĂĄ cho mĂŁ hoĂĄ l n gi i mĂŁ. Thu t toĂĄn mĂŁ hoĂĄ nĂ y cĂł t c c c nhanh vĂ 
thĂ­ch h p i v i vi c mĂŁ hoĂĄ kh i lÆ° ng d li u l n.
2.1.2. PhĂąn lo i thu t toĂĄn
2.1.2.1. MĂŁ hĂła theo chu i bit
Trong h mĂŁ hoĂĄ theo chu i bit, thĂŽng i p lĂ  cĂĄc bit vĂ  khoĂĄ Æ° c phĂĄt
sinh b i m t b phĂĄt sinh ng u nhiĂȘn. B ng rĂ” mĂŁ hoĂĄ theo t ng bÆ° c
Æ° c b n mĂŁ.
2.1.2.2. MĂŁ hĂła theo ch
CĂĄc h mĂŁ ban u d a trĂȘn cÆĄ s phĂ©p bi n i m t ch cĂĄi trong b ng rĂ”
thĂ nh m t ch cĂĄi khĂĄc trong b ng mĂŁ. K thu t mĂŁ hoĂĄ nĂ y cĂČn Æ° c g i lĂ 
mĂŁ hoĂĄ thay th . th c hi n phÆ°ÆĄng phĂĄp nĂ y, trÆ° c tiĂȘn c n nh nghÄ©a 1
b ng mĂŁ (nhÆ° b ng mĂŁ ASCII) s hoĂĄ b ng rĂ”, vĂŹ cĂĄc phĂ©p toĂĄn s lĂ m
vi c trĂȘn cĂĄc s thay vĂŹ cĂĄc kĂ­ t .
2.1.2.3. MĂŁ hĂła theo kh i
Ta th y, h mĂŁ hoĂĄ theo ch cĂł an toĂ n khĂŽng cao vĂŹ m t ch cĂĄi luĂŽn
Æ° c mĂŁ hoĂĄ thĂ nh 1 ch cĂĄi khĂĄc trong b ng mĂŁ. V i kh năng c a mĂĄy tĂ­nh
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 23
hi n i, khĂŽng khĂł cĂł th gi i mĂŁ 1 b ng mĂŁ theo ch nhÆ° th . tăng
an toĂ n, ta cĂł th mĂŁ hoĂĄ theo kh i. Trong mĂŁ hoĂĄ theo kh i, b n rĂ” vĂ 
b ng mĂŁ Æ° c chia thĂ nh t ng kh i kĂ­ t trÆ° c khi thi hĂ nh mĂŁ hoĂĄ vĂ  gi i
mĂŁ.
2.1.2.4. Mã mƩ
Do Pohlig vĂ  Hellman gi i thi u năm 1976. CĂł th Æ° c mĂŽ t nhÆ° sau :
Ch n p lĂ  1 s nguyĂȘn t , M lĂ  1 s tÆ°ÆĄng ng c a b n rĂ” v i m i kĂ­ t trong
b ng rĂ” Æ° c thay th b ng mĂŁ tÆ°ÆĄng ng nhÆ° trong b ng.
‘’ A B C D E F G H I J K
00 01 02 03 04 05 06 07 08 09 10 11
2.1.3. M t vĂ i thu t toĂĄn SKC Æ° c s d ng ngĂ y nay
Nh ng thu t toĂĄn SKC Æ° c s d ng ngĂ y nay : Data Encryption Standard
(DES), Triple-DES (3DES), DESX, RC1,RC2, RC3, RC4, RC5, RC6, Blowfish,
Twofish, Camellia, MISTY1, SAFER, KASUMI, SkipJack.
2.1.4. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła quy Æ° c
M c dĂč h th ng mĂŁ hoĂĄ quy Æ° c cung c p khĂĄ nhi u thu t toĂĄn mĂŁ hoĂĄ cĂł
b o m t r t cao nhÆ°ng nĂł cĂł cĂĄc h n ch sau :
H n ch v kh năng trao i khoĂĄ : do c ngÆ° i nh n vĂ  ngÆ° i g i u
c n ph i bi t khoĂĄ nĂȘn phĂĄt sinh v n an toĂ n khi truy n khoĂĄ. N u khoĂĄ
b ĂĄnh c p trong quĂĄ trĂŹnh truy n khoĂĄ thĂŹ thĂŽng tin Æ° c mĂŁ hoĂĄ b ng
khoĂĄ Ăł khĂŽng cĂČn Æ° c b o m t vĂ  an toĂ n. NgoĂ i ra v i mĂŁ hoĂĄ quy Æ° c
khĂŽng m b o ngu n g c thĂŽng tin Æ° c g i nĂȘn khĂŽng bi t khĂĄo cĂł b
m t c p hay khĂŽng.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 24
H n ch kh năng qu n lĂœ khoĂĄ : i v i t ng ngÆ° i c n liĂȘn l c vĂ  v i
t ng n i dung thĂŽng tin c n ph i cĂł m t khoĂĄ quy Æ° c mĂŁ hoĂĄ vĂ  gi i
mĂŁ. Do Ăł n u trĂȘn 1 m ng liĂȘn l c l n, s lÆ° ng khoĂĄ c n ph i lÆ°u gi r t
nhi u nĂȘn n y sinh v n qu n lĂœ khoĂĄ quy Æ° c vĂ  b o m t thi t b khoĂĄ
quy Æ° c.
2.2. Public Key Crytography (MĂŁ hoĂĄ cĂŽng khai)
2.2.1. Gi i thi u chung
HĂŹnh 2.2.1 Public Key Crytography
NgÆ° i g i A s d ng khoĂĄ cĂŽng khai (h mĂŁ khĂŽng i x ng) pk c a ngÆ° i
nh n B mĂŁ hoĂĄ d li u g c x. D li u sau khi Æ° c mĂŁ hoĂĄ, y Æ° c truy n cho
B. NgÆ° i nh n B sau khi nh n Æ° c y s s d ng khoĂĄ riĂȘng sk c a mĂŹnh gi i
mĂŁ d li u vĂ  nh n l i d li u ngu n x ban u.
N u 1 ngÆ° i C cĂł Æ° c d li u ĂŁ mĂŁ hoĂĄ y vĂ  khoĂĄ cĂŽng khai pk thĂŹ C v n
khĂŽng th gi i mĂŁ Æ° c y. Do khoĂĄ riĂȘng sk Æ° c gi bĂ­ m t hoĂ n toĂ n, ch cĂł
NgÆ° i B bi t Æ° c sk vĂ  sk khĂŽng Æ° c giao d ch hay truy n i nĂȘn r i ro d n
n vi c khoĂĄ sk b ĂĄnh c p lĂ  r t th p.
Gi i thi u m t s thu t toĂĄn : EEC, RSA
2.2.2. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła cĂŽng khai
H th ng mĂŁ hĂła khĂła cĂŽng khai ra i ĂŁ gi i quy t cĂĄc h n ch c a mĂŁ hĂła
quy Æ° c. MĂŁ hĂła khĂła cĂŽng khai s d ng m t c p khĂła, m t khĂła (thĂŽng thÆ° ng
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 25
lĂ  khĂła riĂȘng) dĂčng mĂŁ hĂła vĂ  m t khĂła (khĂła riĂȘng) dĂčng gi i mĂŁ. MĂŁ
hĂła khĂła cĂŽng khai giĂșp trĂĄnh b t n cĂŽng khi trao i khĂła do khĂła gi i mĂŁ
(khĂła riĂȘng) khĂŽng c n ph i truy n ho c chia s v i ngÆ° i khĂĄc. NgoĂ i ra, m i
ngÆ° i ch c n s h u m t c p khĂła cĂŽng khai – khĂła riĂȘng vĂ  ngÆ° i g i thĂŽng
tin ch c n gi khĂła cĂŽng khai c a ngÆ° i nh n do Ăł s lÆ° ng khĂła c n ph i
qu n lĂœ gi m khĂĄ nhi u. M i ngÆ° i ch c n lÆ°u tr b o m t m t khĂła riĂȘng c a
chĂ­nh mĂŹnh.
Tuy nhiĂȘn, do nhu c u mĂŁ hĂła vĂ  gi i mĂŁ b ng hai khĂła khĂĄc nhau trong cĂčng
m t c p khĂła nĂȘn m b o b o m t, kĂ­ch thÆ° c khĂła cĂŽng khai – khĂła riĂȘng
l n hÆĄn r t nhi u so v i khĂła cĂŽng khai. Do Ăł t c mĂŁ hĂła khĂła cĂŽng khai
ch m hÆĄn t c mĂŁ hĂła khĂła quy Æ° c. T c mĂŁ hĂła b ng ph n m m c a thu t
toĂĄn DES nhanh hÆĄn kho ng 100 l n so v i mĂŁ hĂła RSA v i cĂčng m c b o
m t.
KĂ­ch thÆ° c khĂła (tĂ­nh b ng bit)
KhĂła cĂŽng khai 56 80 112 128 192 256
RSA/DSA 512 1K 2K 3K 7.5K 15K
ECC 160 224 256 384 512
B ng 2.2.2 : KĂ­ch thÆ° c khĂła gi a mĂŁ hĂła quy Æ° c vĂ  mĂŁ hĂła khĂła cĂŽng
khai v i cĂčng m c b o m t.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 26
2.3. Hash Function (hàm Băm)
2.3.1. Gi i thi u hàm Băm
HĂŹnh 2.3.1 Hash Function
Hàm băm m t mã là hàm toån h c chuy n i m t thÎng i p có dài b t kỳ
thĂ nh m t dĂŁy bit cĂł dĂ i c nh (tĂčy thu c vĂ o thu t toĂĄn băm). DĂŁy bit nĂ y
Æ° c g i lĂ  thĂŽng i p rĂșt g n (message digest) hay giĂĄ tr băm (hash value), i
di n cho thĂŽng i p ban u.
D dàng nh n th y r ng hàm băm h khÎng ph i là m t song ånh. Do ó, v i
thĂŽng i p x b t kỳ, t n t i thĂŽng i p x’ ≠ x sao cho h(x) = h(x’). LĂșc nĂ y, ta
nói r ng “có s ng x y ra”.
M t hĂ m băm h Æ° c g i lĂ  an toĂ n (hay “ít b ng ”) khi khĂŽng th xĂĄc
nh Æ° c (b ng cĂĄch tĂ­nh toĂĄn) c p thĂŽng i p x vĂ  x’ th a mĂŁn x ≠ x’ vĂ  h(x) =
h(x’). TrĂȘn th c t , cĂĄc thu t toĂĄn băm lĂ  hĂ m m t chi u, do Ăł, r t khĂł xĂąy
d ng l i thĂŽng i p ban u t thĂŽng i p rĂșt g n.
HĂ m băm giĂșp xĂĄc nh Æ° c tĂ­nh toĂ n v n d li u c a thĂŽng tin : m i thay
i, dĂč lĂ  r t nh , trĂȘn thĂŽng i p cho trÆ° c, vĂ­ d nhÆ° i giĂĄ tr 1 bit, u lĂ m
thay i thĂŽng i p rĂșt g n tÆ°ÆĄng ng. TĂ­nh ch t nĂ y h u Ă­ch trong vi c phĂĄt
sinh, ki m tra ch kĂœ i n t , cĂĄc o n mĂŁ ch ng nh n thĂŽng i p, phĂĄt sinh s
ng u nhiĂȘn, t o ra khĂła cho quĂĄ trĂŹnh mĂŁ hĂła

TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 27
HĂ m BĂM Æ° c dĂčng trong ch kĂœ i n t . M t c tĂ­nh cÆĄ b n c a hĂ m
BĂM lĂ  vi c t o mĂŁ khĂła thĂŽng i p r t d nhÆ°ng vi c phĂĄ mĂŁ chuy n ngÆ° c
mĂŁ thĂŽng i p thĂ nh b n rĂ” ban u r t khĂł n u khĂŽng mu n nĂłi lĂ  khĂŽng th .
2.3.2. Tính ch t c a hàm băm
2.3.2.1. TĂ­nh m t chi u
HĂ m băm Æ° c xem lĂ  hĂ m m t chi u khi cho trÆ° c giĂĄ tr băm, khĂŽng th
tĂĄi t o l i thĂŽng i p ban u, hay cĂČn g i lĂ  “ti n nh” (“pre-image”).
NhÆ° v y, trong trÆ° ng h p lĂœ tÆ° ng, c n ph i th c hi n hĂ m băm cho
kho ng 2n
thĂŽng i p tĂŹm ra Æ° c “ti n nh” tÆ°ÆĄng ng v i m t giĂĄ tr
băm.
N u tĂŹm ra Æ° c m t phÆ°ÆĄng phĂĄp t n cĂŽng cho phĂ©p xĂĄc nh Æ° c “ti n
nh” tÆ°ÆĄng ng v i m t giĂĄ tr băm cho trÆ° c thĂŹ thu t toĂĄn băm s khĂŽng
cĂČn an toĂ n n a.
CĂĄch t n cĂŽng nh m t o ra m t thĂŽng i p khĂĄc v i thĂŽng i p ban u
nhÆ°ng cĂł cĂčng giĂĄ tr băm g i lĂ  t n cĂŽng “ti n nh th hai” (second pre-
image attack).
2.3.2.2. TĂ­nh an toĂ n c a hĂ m băm i v i hi n tÆ° ng ng
HĂ m băm Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng ng khi r t khĂł tĂŹm
Æ° c hai thĂŽng i p cĂł cĂčng giĂĄ tr băm.
Nh n xét : Trong m t t p h p mà cåc ph n t mang m t trong N giå tr cho
trÆ° c v i xĂĄc su t b ng nhau, chĂșng ta c n kho ng N phĂ©p th ng u nhiĂȘn
tĂŹm ra m t c p ph n t cĂł cĂčng giĂĄ tr .
NhÆ° v y, phÆ°ÆĄng phĂĄp hĂ m băm Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng
ng n u chÆ°a cĂł phÆ°ÆĄng phĂĄp t n cĂŽng nĂ o cĂł th tĂŹm ra c p thĂŽng i p
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 28
cĂł cĂčng giĂĄ tr hĂ m băm v i s lÆ° ng tĂ­nh toĂĄn Ă­t hÆĄn ĂĄng k so v i ngÆ° ng
2n/2
, v i n lĂ  kĂ­ch thÆ° c (tĂ­nh b ng bit) c a giĂĄ tr băm.
PhÆ°ÆĄng phĂĄp t n cĂŽng d a vĂ o ng :
‱ TĂŹm ra 2 thĂŽng i p cĂł n i dung khĂĄc nhau nhÆ°ng cĂčng giĂĄ tr băm
‱ KĂœ trĂȘn m t thĂŽng i p, sau Ăł, ngÆ° i kĂœ s khĂŽng th a nh n Ăąy lĂ  ch
kĂœ c a mĂŹnh mĂ  nĂłi r ng mĂŹnh ĂŁ kĂœ trĂȘn m t thĂŽng i p khĂĄc.
NhÆ° v y, c n ph i ch n 2 thĂŽng i p “ ng ” v i nhau trÆ° c khi kĂœ.
2.3.3. C u trĂșc c a hĂ m băm
H u h t cĂĄc hĂ m băm m t mĂŁ u cĂł c u trĂșc gi i thu t nhÆ° sau :
‱ Cho trÆ° c m t thĂŽng i p M cĂł dĂ i b t kỳ. TĂčy theo thu t toĂĄn Æ° c s
d ng, chĂșng ta cĂł th c n b sung m t s bit vĂ o thĂŽng i p nĂ y nh n
Æ° c thĂŽng i p cĂł dĂ i lĂ  b i s c a m t h ng s cho trÆ° c. Chia nh
thĂŽng i p thĂ nh t ng kh i cĂł kĂ­ch thÆ° c b ng nhau: M1, M2, 
Ms
‱ G i H lĂ  tr ng thĂĄi cĂł kĂ­ch thÆ° c n bit, f lĂ  “hĂ m nĂ©n” th c hi n thao tĂĄc
tr n kh i d li u v i tr ng thĂĄi hi n hĂ nh
Kh i gĂĄn H0 b ng m t vector kh i t o nĂ o Ăł
Hi = f(Hi-1, Mi) v i i = 1, 2, 3, 
, s
Hs chĂ­nh lĂ  thĂŽng i p rĂșt g n c a thĂŽng i p M ban u
2.3.4. Gi i thi u m t s hàm băm
Hàm băm là n n t ng cho nhi u ng d ng mã hóa. Có nhi u thu t toån th c
hi n hĂ m băm, trong s Ăł, phÆ°ÆĄng phĂĄp SHA-1 vĂ  MD5 thÆ° ng Æ° c s d ng
khĂĄ ph bi n t th p niĂȘn 1990 n nay.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 29
NgĂ y 26/08/2002, Vi n TiĂȘu chu n vĂ  CĂŽng ngh qu c gia c a Hoa Kỳ
(National Institute of Standard and Technology - NIST) ĂŁ xu t h th ng
chu n hàm băm an toàn (Secure Hash Standard) g m 4 thu t toån hàm băm
SHA-1, SHA-256, SHA-384, SHA-512. n 25/03/2004, NIST ĂŁ ch p nh n
thĂȘm thu t toĂĄn hĂ m băm SHA-224 vĂ o h th ng chu n hĂ m băm.
Tiger ra i năm 1996 b i Ross Anderson và Eli Biham.
Hàm BĂM Whirlpool do Paul S.L.M Barreto và Vincent Rijment xu t năm
2001 vĂ  Æ° c cĂŽng nh n tĂ­nh b o m t t i h i th o b o m t NESSIE t i Lund,
Th y i n vĂ o ngĂ y 26/02/2003, t chu n ISO ISO/IEC 10118-3.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 30
ChÆ°ÆĄng 3.H qu n tr cÆĄ s d li u MySQL
TrĂŹnh bĂ y khĂĄi quĂĄt v h qu n tr cÆĄ s d li u MySQL. Trong chÆ°ÆĄng
nĂ y, cÆĄ ch b o m t c a MySQL s Æ° c trĂŹnh bĂ y c th . CÆĄ ch b o m t trong
mĂŽi trÆ° ng m ng, trong cÆĄ s d li u cĆ©ng nhÆ° cĂĄch lÆ°u tr password, quĂĄ trĂŹnh
ki m tra password, cÆĄ ch phĂąn quy n s Æ° c trĂŹnh bĂ y trong chÆ°ÆĄng nĂ y.
3.1. Gi i thi u h qu n tr cÆĄ s d li u MySQL
3.1.1. Gi i thi u
MySQL lĂ  1 h qu n tr cÆĄ s d li u quan h mĂŁ ngu n m ph bi n nh t
hi n nay. NĂł Æ° c phĂĄt tri n, phĂąn chia, h tr b i MySQL AB. Ăąy lĂ 
m t cĂŽng ty thÆ°ÆĄng m i, Æ° c thĂ nh l p b i nhĂłm phĂĄt tri n MySQL.
MySQL server nhanh, ĂĄng ting c y, d s d ng. S d ng mĂŽi trÆ° ng
client/server c l p ho c nhĂșng vĂ o cĂĄc chÆ°ÆĄng trĂŹnh khĂĄc.
Hi n nay MySQL Æ° c dĂčng trĂȘn 4 tri u b n cĂ i t trĂȘn toĂ n th gi i.
CĂĄc cĂŽng ty l n cĂł th truy c p mĂŁ ngu n MySQL t o ra m t b n khĂĄc
dĂčng n i b cĂŽng ty v i m c Ă­ch phi thÆ°ÆĄng m i mĂ  khĂŽng s vi ph m
b n quy n.
T c MySQL khĂĄ nhanh, b ng c a MySQL lĂȘn n 8 GB dĂčng cho
cĂĄc cĂŽng ty khĂŽng quĂĄ l n.
CĂĄc tĂ­nh năng m nh c a MySQL ang Æ° c b sung d n qua t ng phiĂȘn
b n. PhiĂȘn b n 4.1 hi n t i khĂŽng Ă­t hÆĄn tĂ­nh năng lĂ  m y so v i SQL
Server.
S nhĂ  phĂĄt tri n dĂčng MySQL lĂ  r t l n trĂȘn th gi i cho nĂȘn s cĂĄc ng
d ng ch y trĂȘn MySQL lĂ  nhi u vĂ  cĆ©ng mi n phĂ­.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 31
CĂł m t s phĂąn bi t khĂĄc r t quan tr ng ngÆ° i ta ch n MySQL, Ăł lĂ 
t c . M c dĂč MySQL x lĂœ transaction khĂŽng t t nhÆ° Oracle, nhÆ°ng v
t c , nĂł ch y nhanh hÆĄn Oracle r t nhi u. C ng thĂȘm mĂŁ ngu n m vĂ 
mi n phĂ­, nĂł lĂ  gi i phĂĄp database t t nh t cho cĂĄc website, ngo i tr cĂĄc
website l n c n x lĂœ cĂĄc tĂĄc v c bi t.
3.1.2. B n ch t
‱ ChÆ°ÆĄng trĂŹnh Æ° c vi t b ng C vĂ  C++.
‱ Æ° c ki m tra b ng cĂĄc trĂŹnh biĂȘn d ch khĂĄc nhau.
‱ LĂ m vi c trĂȘn nhi u n n khĂĄc nhau.
‱ S d ng Automake, Autoconf, và libtool t o tính năng ng.
‱ CĂĄc hĂ m API cho cĂł giĂĄ tr trĂȘn C, C++, Eiffel, Java, Perl, PHP, Python,
Ruby, vĂ  Tcl.
‱ Nh ng ti n trĂŹnh nhĂąn (kernel thread) s d ng a ti n trĂŹnh nĂȘn cĂł th s
d ng nhi u CPU n u ngÆ° i dĂčng cĂł.
‱ H th ng c p phĂĄt b nh d a trĂȘn ti n trĂŹnh r t nhanh.
‱ CĂł nh ng b ng BAM b nh trong (in_memory) Æ° c s d ng nhÆ° nh ng
b ng t m.
‱ Nh ng hĂ m SQL th c thi nhanh do s d ng cĂĄc thÆ° vi n.
‱ Server cĂł giĂĄ tr nhÆ° 1 chÆ°ÆĄng trĂŹnh c l p trong mĂŽi trÆ° ng m ng
client/server, cĆ©ng cĂł giĂĄ tr nhÆ° 1 thÆ° vi n cĂł th nhĂșng vĂ o cĂĄc chÆ°ÆĄng
trĂŹnh ng d ng c l p.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 32
3.1.3. CĂĄc ki u d li u
‱ Các ki u d li u :
SIGNED/UNSIGNED INTEGERS 1, 2, 3, 4, and 8 BYTES LONG
FLOAT
DOUBLE
CHAR
VARCHAR
TEXT
BLOB
DATE
TIME
DATETIME
TIMESTAMP
YEAR
SET
ENUM
‱ Fixed-length và variable-length records
3.1.4. Statement vĂ  function
‱ H tr toàn b các toán t và ch c năng trong cñu l nh truy v n SELECT
vĂ  WHERE.
VD :
Mysql> SELECT CONCAT(first_name, ‘’, last_name)
FROM citizen
WHERE income/dependents > 10000 AND age > 30;
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 33
‱ H tr cĂĄc cĂąu truy v n SQL GROUP BY vĂ  ORDER BY. NgoĂ i ra cĂČn
h tr các hàm gom nhóm (COUNT(), COUNT(DISTNCT 
), AVG(),
STD(), SUM(), MAX(), MIN(), GROUP_CONCAT()).
‱ H tr cho LEFT OUTER JOIN vĂ  RIGHT OUTER JOIN theo cĂș phĂĄp
chu n c a SQL vĂ  ODBC.
‱ H tr vi c ghi các alias cho table, column.
‱ DELETE, INSERT, REPLACE, UPDATE tr v s dĂČng nh hÆ° ng.
‱ CĂąu l nh c bi t MySQL: SHOW cĂł th Æ° c s d ng nh n thĂŽng tin v
cÆĄ s d li u, table, index. CĂąu l nh EXPLAIN cĂł th Æ° c dĂčng ch nh
cåch th c gi i quy t thÔa cùu truy v n.
‱ TĂȘn cĂĄc hĂ m khĂŽng xung t v i tĂȘn cĂĄc table vĂ  column.
‱ NgÆ° i dĂčng cĂł th s a ch a cĂĄc table trong cĂĄc database khĂĄc nhau trong
cĂčng m t cĂąu truy v n (nhÆ° MySQL 3.22).
3.1.5. B o m t
H th ng c quy n và password r t linh ho t, an toàn, cho phép xåc nh n
d a trĂȘn mĂĄy ch (host). Password Æ° c b o m t vĂŹ t t c cĂĄc dĂČng di chuy n
password Æ° c mĂŁ hoĂĄ khi user k t n i vĂ o server.
3.1.6. Kh năng m r ng và gi i h n
‱ Handles c a database l n. MySQL server v i các database có th ch a
n 50 tri u record. Ta cĂł th bi t Æ° c cĂĄc user s d ng MySQL Server
v i 60.000 tables vĂ  kho ng 5.000.000.000 dĂČng.
‱ CĂł th t o 64 indexes trong 1 table (32 indexes i v i cĂĄc phiĂȘn b n
trÆ° c 4.1.2). M i index cĂł th g m t 1 n 16 c t hay cĂĄc ph n c a c t.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 34
l n t i thi u c a index lĂ  1000 bytes (500 bytes i v i cĂĄc phiĂȘn b n
trÆ° c 4.1.2). M t index cĂł th s d ng ti n t (prefix) c a c t cĂł cĂĄc ki u
d li u CHAR, VARCHAR, BLOB, hay TEXT.
‱ Gi i h n các b ng trong MySQL
MySQL 3.22 cĂł gi i h n c a table lĂ  4GB. V i k thu t lÆ°u tr MySIAM
trong MySQL 3.23, kĂ­ch thÆ° c t i a c a table Æ° c tăng 263
byte.
Operating System File-size Limit
Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
Linux 2.4 (using ext3 filesystem) 4TB
Solaris 9/10 16TB
NetWare w/NSS filesystem 8TB
win32 w/ FAT/FAT32 2GB/4GB
win32 w/ NTFS 2TB (possibly larger)
MacOS X w/ HFS+ 2TB
B ng 3.1.6 KĂ­ch thÆ° c gi i h n c a file h th ng trong MySQL
3.1.7. K t n i
‱ Clients có th k t n i v i MySQL server b ng cách s d ng nh ng socket
TCP/IP trĂȘn b t kĂŹ n n nĂ o. TrĂȘn n n windows dĂČng NT, client cĂł th k t
n i s d ng pipes. TrĂȘn n n Unix, clients k t n i s d ng Unix domain
socket files.
‱ Windows có h tr k t n i chia s b nh n u kh i ng v i l a ch n
share-memory. Client cĂł th k t n i qua b nh chia s b ng cĂĄch s d ng
l a ch n --protocol=memory.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 35
‱ Giao di n Connector/ODBC (MyODBC) cung c p MySQL h tr các
chÆ°ÆĄng trĂŹnh client s d ng k t n i ODBC (Open Database Connectivity).
‱ Giao di n Connector/J interface cung c p MySQL h tr chÆ°ÆĄng trĂŹnh
client Java s d ng k t n i JDBC.
3.1.8. M c h n nh
‱ Có th s d ng c p thîng i p l i cho client b t kì ngîn ng nào do có
r t nhi u b kĂ­ t .
‱ D li u Æ° c lÆ°u tr theo b kĂ­ t ĂŁ ch n.
3.2. CÆĄ ch b o m t trong MySQL
3.2.1. T ng quan b o m t
B o m t cÆĄ s d li u lĂ  m t y u t c n thi t trong b t kĂŹ h th ng cÆĄ s d
li u nào. B o m t là b o v d li u ch ng l i cåc crackers, ng th i cƩng b o v
d li u t ngÆ° i dĂčng. VĂ­ d , ngÆ° i dĂčng cĂł th xoĂĄ, s a, xem ho c thĂȘm nh ng
record mĂ  h khĂŽng Æ° c phĂ©p. trĂĄnh nh ng tĂŹnh tr ng nĂ y, ngÆ° i dĂčng cĂł
th t o nĂȘn m t cÆĄ ch b o m t trĂȘn cÆĄ s d li u ngăn ch n cĂĄc thao tĂĄc mĂ 
user khĂŽng Æ° c phĂ©p thao tĂĄc trĂȘn CSDL. B o m t Ăłng vai trĂČ chĂ­nh trong b t
kĂŹ ng d ng nĂ o mĂ  ngÆ° i dĂčng cĂł th truy c p vĂ o Ă­t nh t m t l n. CÆĄ ch b o
m t c a HQTCSDL MySQL r t t t, lĂ  m t trong cĂĄc h qu n tr cÆĄ s d li u an
toĂ n nh t hi n nay. CÆĄ ch b o m t c a HQTCSDL MySQL g m hai lÄ©nh v c
chĂ­nh :
B o m t trong mĂŽi trÆ° ng m ng.
B o m t cÆĄ s d li u.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 36
3.2.2. B o m t trong mĂŽi trÆ° ng m ng
B t u t phiĂȘn b n 4.0.0, MySQL h tr cho cĂĄc k t n i an toĂ n gi a cĂĄc
MySQL client vĂ  server dĂčng giao th c Secure Sockets Layer (SSL).
C u hĂŹnh chu n c a MySQL cĂł khuynh hÆ° ng sao cho ch y nhanh nh t cĂł
th , nhÆ°ng vi c mĂŁ hĂła cĂĄc k t n i khĂŽng th dĂčng m c nh. LĂ m nhÆ° th cĂł
th s lĂ m cho client/server ch m hÆĄn. MĂŁ hoĂĄ d li u lĂ  thao tĂĄc CPU-intensive
mĂ  ĂČi h i mĂĄy tĂ­nh c n ph i th c hi n thĂȘm m t s cĂŽng vi c vĂ  cĂł th lĂ m trĂŹ
hoĂŁn cĂĄc nhi m v khĂĄc c a MySQL. i v i cĂĄc ng d ng mĂ  ĂČi h i b o m t
Æ° c cung c p b i cĂĄc k t n i mĂŁ hoĂĄ, s tĂ­nh toĂĄn thĂȘm vĂ o lĂ  Æ° c cho phĂ©p.
3.2.3. CĂĄc khĂĄi ni m cÆĄ b n
hi u MySQL dĂčng SSL nhÆ° th nĂ o, ta c n bi t căn b n v cĂĄc khĂĄi ni m
SSL vĂ  X509. M c nh, MySQL dĂčng cĂĄc k t n i gi i mĂŁ gi a client vĂ  server.
i u nĂ y cĂł nghÄ©a lĂ  m t ngÆ° i khi truy c p Æ° c vĂ o m ng thĂŹ cĂł th bi t Æ° c
m i ho t ng c a ngÆ° i dĂčng vĂ  th y Æ° c t t c d li u ang Æ° c nh n hay
g i i. Th m chĂ­ h cĆ©ng cĂł th thay i d li u trong khi nĂł Æ° c chuy n i
gi a client vĂ  server. lĂ m tăng tĂ­nh b o m t lĂȘn m t chĂșt, ngÆ° i dĂčng cĂł th
nén client/server traffic b ng cåch s d ng l a ch n --compress khi g i cåc
chÆ°ÆĄng trĂŹnh client. Tuy nhiĂȘn, nĂł khĂŽng ĂĄnh l c hÆ° ng Æ° c attacker.
Khi ngÆ° i dĂčng c n chuy n thĂŽng tin thĂŽng qua m ng theo thi t k an toĂ n,
k t n i gi i mĂŁ lĂ  khĂŽng ch p nh n Æ° c. MĂŁ hoĂĄ lĂ  cĂĄch lĂ m cho b t kỳ lo i d
li u nĂ o cĆ©ng khĂŽng c Æ° c. Th t ra, th c ti n yĂȘu c u thĂȘm nhi u y u t b o
m t t cĂĄc thu t toĂĄn mĂŁ hoĂĄ. ChĂșng cĂł th ch ng l i nhi u cĂĄch t n cĂŽng nhÆ°
thay i tr t t c a cĂĄc message ĂŁ mĂŁ hoĂĄ ho c l p l i hai l n d li u.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 37
‱ SSL protocol
Secure Socket Layer (SSL) protocol Æ° c t o ra b i Netscape m
b o b o m t cĂĄc giao tĂĄc gi a server vĂ  client.
SSL lĂ  giao th c mĂ  s d ng cĂĄc thu t toĂĄn mĂŁ hĂła khĂĄc nhau b o
m r ng d li u nh n Æ° c thĂŽng qua m ng chung cĂł th lĂ  Ășng. Ăł lĂ 
k thu t dĂČ tĂŹm cĂĄc d li u b l p, b m t ho c b thay i. SLL cĆ©ng
k t h p ch t ch cĂĄc thu t toĂĄn cung c p s ki m tra nh n d ng s d ng
chu n X509.
‱ Chu n X509
X509 lĂ m cho nĂł cĂł th nh n d ng m t ai Ăł trĂȘn m ng. NĂł khĂŽng
Æ° c s d ng thĂŽng d ng nh t trong cĂĄc ng d ng i n t . Trong cĂĄc gi i
h n cÆĄ b n, m t vĂ i cĂŽng ty g i nĂł “Certificate Authority” (CA : b ng
ch ng nh n quy n) mĂ  thi t k cĂĄc ch ng th c i n t cho nh ng ai c n
n chĂșng. CĂĄc ch ng th c ĂĄp l i cĂĄc thu t toĂĄn mĂŁ hoĂĄ b t i x ng.
Ch nhĂąn c a (b ng) ch ng th c cĂł th ch ch ng th c cho party khĂĄc nhÆ°
lĂ  b ng ch ng v nh n d ng. Ch ng th c g m khoĂĄ chung c a ch nhĂąn
c a nĂł. B t kỳ d li u nĂ o Æ° c mĂŁ hoĂĄ v i khoĂĄ cĂŽng c ng nĂ y ch cĂł th
gi i mĂŁ b ng khoĂĄ bĂ­ m t tÆ°ÆĄng ng, khoĂĄ nĂ y Æ° c gi b i ch nhĂąn c a
ch ng th c.
3.2.3.1. YĂȘu c u (Requirements)
s d ng cĂĄc k t n i SSL gi a MySQL server vĂ  cĂĄc chÆ°ÆĄng trĂŹnh
client, h th ng c a ngÆ° i dĂčng c n ph i h tr OpenSSL vĂ  phiĂȘn b n
MySQL ph i t 4.0.0 tr lĂȘn. cĂł cĂĄc k t n i b o m t lĂ m vi c v i
MySQL, ngÆ° i dĂčng c n ph i th c hi n cĂĄc cĂŽng vi c sau :
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 38
1. CĂ i t thÆ° vi n OpenSSL
2. Khi ngÆ° i dĂčng c u hĂŹnh MySQL, ch y configure script v i cĂĄc l a ch n
--with-vio vĂ  -with-openssl.
3. Ph i ch c r ng ngÆ° i dĂčng nĂąng c p cĂĄc b n phĂąn quy n bao g m cĂĄc c t
SSL-related trong b ng mysql.user. Ăąy lĂ  i u c n thi t n u cĂĄc b n phĂąn
quy n c a ngÆ° i dĂčng cĂł t cĂĄc phiĂȘn b n trÆ° c 4.0.0. Th t c nĂąng c p
4. ki m tra mysql server cĂł h tr OpenSSL hay khĂŽng, ki m tra giĂĄ tr
c a bi n h th ng have_openssl:
mysql> SHOW VARIABLES LIKE 'have_openssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | YES |
+---------------+-------+
N u giĂĄ tr lĂ  yes, server h tr cĂĄc k t n i OpenSSL
3.2.3.2. CĂĄch th c ho t ng c a SSL protocol
SSL ho t ng g m 7 bÆ° c sau :
1. Client g i yĂȘu c u hay data t i server
2. Server g i l i cho client public key v i cĂĄc certificate c a nĂł.
3. Client s ki m tra certificate Æ° c c p phĂĄt b i party tin c y (thÆ° ng l
root CA tin c y), Ăł lĂ  cĂĄc certificate cĂČn giĂĄ tr vĂ  certificate ph i liĂȘn
quan n (site contacted).
4. Sau Ăł client s dĂčng pubic key mĂŁ hĂła secret key Æ° c l y ng u
nhiĂȘn. VĂ  g i nĂł t i cho server cĂčng v i thĂŽng tin ĂŁ Æ° c mĂŁ hĂła b ng
secret key.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 39
5. Server s gi i mĂŁ l y secret key (symmetric key) b ng chĂ­nh private key
c a nĂł vĂ  dĂčng nĂł gi i mĂŁ thĂŽng tin mĂ  client ĂŁ g i qua.
6. Server l i mĂŁ hĂła thĂŽng tin mĂ  nĂł tr l i cho client b ng chĂ­nh secret key
vĂ  g i thĂŽng tin ĂŁ mĂŁ hĂła cho client.
7. Client gi i mĂŁ l i thĂŽng tin tr l i v a nh n Æ° c b ng secret key vĂ  hi n
th thĂŽng tin.
3.2.3.3. CĂĄc l a ch n phĂąn quy n c a SSL
MySQL cĂł th ki m tra cĂĄc thu c tĂ­nh ch ng th c X509 thĂȘm vĂ o trong s
ch ng th c thĂŽng thÆ° ng cÆĄ b n lĂ  d a trĂȘn username vĂ  password. i v i
cĂĄc l a ch n SSL-related cho tĂ i kho n MySQL, s d ng m nd REQUIRE
c a cĂș phĂĄp GRANT satement.
Cåc kh năng khåc nhau cho gi i h n cåc lo i k t n i tài Kho n :
N u tĂ i kho n khĂŽng cĂł cĂĄc yĂȘu c u SSL hay X509, cĂĄc k t n i gi i mĂŁ
Æ° c cho phĂ©p n u username vĂ  password cĂł giĂĄ tr . Tuy nhiĂȘn, cĂĄc k t
n i mã hoå cƩng có th s d ng t i l a ch n c a client, n u client có
ch ng th c chĂ­nh xĂĄc vĂ  cĂĄc key file.
L a ch n REQUIRE SSL gi i h n server ch cho phép cåc k t n i mã
hĂła SSL cho cĂĄc tĂ i kho n. ChĂș Ăœ r ng l a ch n nĂ y cĂł th b b qua n u
nhÆ° cĂł b t kỳ dĂČng d li u ACL mĂ  cho phĂ©p cĂĄc k t n i non-SSL.
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret' REQUIRE SSL;
REQUIRE X509 có nghĩa là client ph i có ch ng th c có giå tr tuy
nhiĂȘn ch ng th c chĂ­nh xĂĄc, ngÆ° i yĂȘu c u, vĂ  ch lĂ  khĂŽng quan
tr ng. Ch cĂł yĂȘu c u mĂ  cĂł th th c hi n ki m tra ch kĂœ c a nĂł v i
m t trong cĂĄc ch ng th c CA.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 40
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret' REQUIRE X509;
REQUIRE ISSUER 'issuer' t s h n ch i v i vi c k t n i mĂ  client
ph i trĂŹnh ch ng th c X509 cĂł giĂĄ tr Æ° c c p b i CA 'issuer'. N u
client trĂŹnh ch ng th c cĂł giĂĄ tr nhÆ°ng khĂĄc issuer, server lo i b k t
n i. s d ng cĂĄc ch ng th c X509 luĂŽn luĂŽn bao hĂ m mĂŁ hoĂĄ, vĂŹ th l a
ch n SSL lĂ  khĂŽng c n thi t.
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret'
-> REQUIRE ISSUER '/C=FI/ST=Some-State/L=Helsinki/
O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com'
ChĂș Ăœ r ng giĂĄ tr ISSUER c n Æ° c nh p nhÆ° lĂ  m t chu i ÆĄn.
REQUIRE SUBJECT 'subject' t s h n ch i v i vi c k t n i mĂ 
client ph i trĂŹnh ch ng th c X509 cĂł giĂĄ tr v i ch 'subject' trĂȘn nĂł.
N u client trĂŹnh ch ng th c cĂł giĂĄ tr nhÆ°ng khĂĄc ch , server lo i b
k t n i.
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret'
-> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/
O=MySQL demo client certificate/
CN=Tonu Samuel/Email=tonu@example.com';
ChĂș Ăœ r ng giĂĄ tr SUBJECT c n Æ° c nh p nhÆ° lĂ  m t chu i ÆĄn.
REQUIRE CIPHER 'cipher' c n Æ° c b o m lĂ  tĂ­nh toĂĄn vĂ  chi u dĂ i
c a key Æ° c dĂčng m nh. SSL cĂł th y u n u cĂĄc thu t toĂĄn cĆ© v i
cĂĄc khĂła mĂŁ hoĂĄ cĂł chi u dĂ i ng n Æ° c dĂčng. S d ng l a ch n nĂ y,
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 41
chĂșng ta cĂł th yĂȘu c u vĂ i phÆ°ÆĄng phĂĄp tĂ­nh toĂĄn chĂ­nh xĂĄc cho
phép k t n i.
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret'
-> REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';
CĂĄc ch n l a SUBJECT, ISSUER, vĂ  CIPHER cĂł th k t h p v i nhau
trong m nh REQUIRE nhÆ° sau :
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
-> IDENTIFIED BY 'goodsecret'
-> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/
O=MySQL demo client certificate/
CN=Tonu Samuel/Email=tonu@example.com'
-> AND ISSUER '/C=FI/ST=Some-State/L=Helsinki/
O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com'
-> AND CIPHER 'EDH-RSA-DES-CBC3-SHA';
ChĂș Ăœ r ng m i giĂĄ tr SUBJECT vĂ  ISSURE cĂł th Æ° c nh p vĂ o
nhÆ° lĂ  m t chu i ÆĄn. B t u t MySQL 4.0.4, t khoĂĄ AND lĂ  ch n
l a tuỳ Ăœ gi a cĂĄc l a ch n REQUIRE. CĂĄc l a ch n cĆ© hÆĄn khĂŽng
quan tĂąm, nhÆ°ng khĂŽng cĂł l a ch n cĂł th Æ° c nh rĂ” 2 l n.
3.2.3.4. CĂĄc ch n l a SSL Command-line
Chu i mĂŽ t cĂĄc l a ch n Æ° c dĂčng ch nh s d ng cho SSL, cĂĄc
certificate file, cĂĄc key file. CĂĄc l a ch n cĂł giĂĄ tr b t u t MySQL 4.0.
ChĂșng cĂł th Æ° c Æ°a ra b ng cĂĄc dĂČng l nh ho c trong option file.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 42
--ssl
i v i server, ch n l a này ch nh là server cho phép cåc k t n i
SSL. i v i chÆ°ÆĄng trĂŹnh client, nĂł cho phĂ©p client k t n i vĂ o server
s d ng SSL. L a ch n nĂ y khĂŽng khĂŽng cho chĂ­nh nĂł th hi n
k t n i SSL Æ° c s d ng. NgÆ° i dĂčng cĆ©ng ph i ch rĂ” cĂĄc option --
ssl-ca, --ssl-cert, vĂ  --ssl-key.
L a ch n nĂ y thÆ° ng Æ° c s d ng nhi u hÆĄn trong form trĂĄi ngÆ° c
l i c a nĂł ch ra r ng SSL cĂł th khĂŽng Æ° c dĂčng. lĂ m nhÆ° v y,
ch nh l a ch n nhÆ° --skip-ssl ho c --ssl=0. ChĂș Ăœ lĂ  s d ng –ssl
khĂŽng ĂČi h i k t n i SSL. VĂ­ d , n u server ho c client Æ° c biĂȘn
d ch mĂ  khĂŽng h tr SSL, k t n i gi i mĂŁ thĂŽng thÆ° ng Æ° c s d ng.
CĂĄch b o m t ch c r ng k t n i SSL Æ° c dĂčng lĂ  t o tĂ i
kho n trĂȘn server bao g m m nh REQUIRE SSL trong GRANT
statement. Sau Ăł s d ng tĂ i kho n nĂ y k t n i vĂ o server, v i c
server vĂ  client cĂł h tr SSL Æ° c enable.
--ssl-ca=file_name
Æ° ng d n t i file v i danh sĂĄch c a SSL CAs Æ° c tin c y.
--ssl-capath=directory_name
Æ° ng d n t i thÆ° m c ch a cĂĄc ch ng th c SSL CA Æ° c tin cĂąy
trong nh d ng pem.
--ssl-cert=file_name
TĂȘn c a file ch ng th c SSL dĂčng cho thi t l p k t n i an toĂ n.
--ssl-cipher=cipher_list
Danh sĂĄch cĂĄc tĂ­nh toĂĄn cho Æ° c cho phĂ©p dĂčng cho mĂŁ hoĂĄ
SSL, Cipher_list cĂł cĂčng nh d ng openssl ciphers command.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 43
--ssl-key=file_name
TĂȘn c a file khoĂĄ SSL dĂčng thi t l p k t n i an toĂ n
3.2.3.5. K t n i v i MySQL Remotely t Windows v i SSH
Ăąy lĂ  ghi chĂș v cĂĄch k t n i cĂł m t k t n i an toĂ n t i MySQL server
xa v i SSH
1. CĂ i t SSH client trĂȘn mĂĄy Windowns c a ngÆ° i dĂčng.
2. Start Win ows SSH client c a ngÆ° i dĂčng.
t Host_Name = yourmysqlserver_URL_or_IP.
t userid=your_userid ăng nh p vĂ o server c a ngÆ° i dĂčng. GiĂĄ
tr userid nĂ y cĂł th khĂŽng gi ng nhÆ° username c a tĂ i kho n MySQL c a
ngÆ° i dĂčng.
3. t port forwarding. Th c hi n remote forward ( t local_port: 3306,
remote_host: yourmysqlservername_or_ip, remote_port: 3306) ho c local
forward ( t Set port: 3306, host: localhost, remote port: 3306).
4. LÆ°u m i th , m t khĂĄc ngÆ° i dĂčng s ph i th c hi n l i trong l n k ti p.
5. ăng nh p vĂ o server c a ngÆ° i dĂčng v i SSH session ngÆ° i dĂčng v a
m i t o.
6. TrĂȘn mĂĄy Windows c a ngÆ° i dĂčng, start vĂ i ng d ng ODBC (ch ng h n
nhÆ° Access).
7. T o m i file trong Windows vĂ  link t i MySQL s d ng Æ° ng d n
ODBC cĂčng v i cĂĄch ngÆ° i dĂčng thÆ° ng hay lĂ m, tr lo i trong localhost
cho MySQL host server, ch khĂŽng ph i mysql server name c a ngÆ° i
dĂčng. NgÆ° i dĂčng c n ph i cĂł k t n i ODBC t i MySQL, mĂŁ hoĂĄ dĂčng
SSH.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 44
3.2.4. B o m t cÆĄ s d li u
3.2.4.1. CÆĄ ch b o m t cÆĄ s d li u (CSDL) trong MySQL
H th ng b o m t trong MySQL tÆ°ÆĄng i ph c t p. MySQL th c hi n b o
m t CSDL d a vĂ o h th ng quy n truy c p.
Ch c năng chính c a h th ng i u khi n truy c p g m :
Ch ng th c s k t n i c a user vĂ o MySQL Server.
K t h p user v i cĂĄc quy n riĂȘng trĂȘn CSDL ch ng h n nhÆ°
SELECT, UPDATE, INSERT, DELETE.
th c hi n i u khi n h th ng c n ph i truy c p m t s thĂŽng tin c
bi t. CĂĄc thĂŽng tin nĂ y Æ° c t ch c thĂ nh m t CSDL chĂ­nh lĂ  mysql.
3.2.4.2. CÆĄ s d li u mysql
Ngay sau khi cĂ i t h qu n tr MySQL, s cĂł 2 CSDL Æ° c t o ra :
mysql : lÆ°u tr cĂĄc thĂŽng tin ph c v cho vi c qu n tr .
test : lĂ  csdl mĂ  b t kỳ user nĂ o cĆ©ng cĂł y cĂĄc quy n trĂȘn Ăł.
Ăąy ta ch quan tĂąm n CSDL mysql. CSDL mysql lÆ°u tr thĂŽng tin
chung vĂ  cĂĄc c quy n c a user ki m tra k t n i vĂ  quy n th c hi n cĂĄc
cĂąu l nh. DĂł Ăł ch cĂł cĂĄc nhĂ  qu n tr CSDL m i cĂł quy n truy c p vĂ  thao
tĂĄc trĂȘn CSDL nĂ y. CSDL mysql cĆ©ng gi ng nhÆ° b t kĂŹ m t CSDL nĂ o khĂĄc
trong MySQL. T t c cĂĄc t p tin d li u c a nĂł lÆ°u tr d li u trong m t thÆ°
m c dÆ° i thÆ° m c g c mysql (mysql parent directory).
CĂĄc b ng trong CSDL mysql s d ng cho m c Ă­ch b o m t :
user
db
host
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 45
columns_priv
tables_priv
Procs_priv
NgÆ° i dĂčng cĂł th th c thi cĂĄc cĂąu l nh trĂȘn cĂĄc b ng nĂ y nhÆ° b t kĂŹ b ng
nĂ o trong cĂĄc CSDL bĂŹnh thÆ° ng khĂĄc.
CĂĄc b ng nĂ y trong CSDL mysql cĂČn Æ° c g i lĂ  cĂĄc b ng phĂąn quy n
(Grant tables).
a) Gi i thi u cĂĄc b ng trong csdl mysql
B ng user, db, host
Table Name user db host
Scope columns Host Host Host
User Db Db
Password User
Privilege columns Select_priv Select_priv Select_priv
Insert_priv Insert_priv Insert_priv
Update_priv Update_priv Update_priv
Delete_priv Delete_priv Delete_priv
Index_priv Index_priv Index_priv
Alter_priv Alter_priv Alter_priv
Create_priv Create_priv Create_priv
Drop_priv Drop_priv Drop_priv
Grant_priv Grant_priv Grant_priv
Create_view_priv Create_view_priv Create_view_priv
Show_view_priv Show_view_priv Show_view_priv
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 46
Create_routine_priv Create_routine_priv
Alter_routine_priv Alter_routine_priv
References_priv References_priv References_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Show_db_priv
Super_priv
Create_tmp_table_priv Create_tmp_table_priv Create_tmp_table_priv
Lock_tables_priv Lock_tables_priv Lock_tables_priv
Execute_priv
Repl_slave_priv
Repl_client_priv
Security columns ssl_type
ssl_cipher
X509_issuer
X509_subject
Resource control
columns
max_questions
max_updates
max_connections
max_user_connections
B ng 3.2.4.2.a Danh sĂĄch cĂĄc c t c a b ng user, host, db trong MySQL
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 47
CĂĄc c t ssl_type, ssl_cipher, x509_issuer, and x509_subject columns
Æ° c thĂȘm vĂ o t MySQL 4.0.0.
CĂĄc c t Create_tmp_table_priv, Execute_priv, Lock_tables_priv,
Repl_client_priv, Repl_slave_priv, Show_db_priv, Super_priv,
max_questions, max_updates, and max_connections Æ° c thĂȘm vĂ o t
MySQL 4.0.2. tuy nhiĂȘn Execute_priv khĂŽng Æ° c dĂčng cho t i MySQL
5.0.3.
CĂĄc c t The Create_view_priv and Show_view_priv Æ° c thĂȘm vĂ o t
MySQL 5.0.1.
CĂĄc c t Create_routine_priv, Alter_routine_priv vĂ 
max_user_connections Æ° c thĂȘm vĂ o t MySQL 5.0.3.
Server s d ng thĂŽng tin trong c 3 b ng nĂ y trong c 2 giai o n i u
khi n truy c p.
B ng tables_priv, columns_priv
Trong su t giai o n 2 c a i u khi n truy c p, server ki m tra cĂĄc yĂȘu
c u ch c r ng client Æ°a ra yĂȘu c u cĂł quy n th c hi n yĂȘu c u Ăł.
Khi Ăł server d a vĂ o cĂĄc thĂŽng tin trong cĂĄc b ng user, db, host. NgoĂ i ra
server cĂČn tham kh o thĂȘm trong cĂĄc b ng tables_priv and columns_priv.
cĂĄc b ng nĂ y cung c p cĂĄc quy n riĂȘng c n thi t i v i m c table vĂ 
column.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 48
Table Name tables_priv columns_priv
Scope columns Host Host
Db Db
User User
Table_name Table_name
Column_name
Privilege columns Table_priv Column_priv
Column_priv
Other columns Timestamp Timestamp
Grantor
B ng 3.2.4.2.b B ng tables_priv, columns_priv trong MySQL
C t Timestamp vĂ  Grantor khĂŽng s d ng.
B ng procs_priv :
T phiĂȘn 5.0.3 CSDL mysql cĂł thĂȘm b ng procs_priv. B ng nĂ y Æ° c
dĂčng th m nh l i cĂĄc yĂȘu c u mĂ  Æ° c lÆ°u tr thÆ° ng xuyĂȘn.
Table Name Procs_priv
Scope columns Host
Db
User
Routine_name
Privilege columns Proc_priv
Other columns Timestamp
Grantor
B ng 3.2.4.2.c Danh sĂĄch cĂĄc c t c a b ng Procs_priv trong MySQL
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 49
b) Ch c năng vĂ  c u trĂșc c a cĂĄc column trong cĂĄc table c a csdl mysql
Ch c năng
M i table u cĂł cĂĄc c t ph m vi (scope columns) vĂ  cĂĄc c t quy n
(privilege column).
CĂĄc c t ph m vi dĂčng ch nh rĂ” ph m vi cho m i m c
c a table hay chĂ­nh lĂ  ng c nh mĂ  dĂČng d li u ĂĄp d ng.
CĂĄc c t quy n ch nh thĂŽng tin v cĂĄc quy n trĂȘn m t m c
c a CSDL tĂčy theo t ng table.
Server k t h p cĂĄc thĂŽng tin trong nhi u b ng phĂąn quy n th c hi n
hoĂ n thĂ nh vi c mĂŽ t cĂĄc c quy n c a user.
N i dung c a cĂĄc column
CĂĄc c t ph m vi :
Host : TĂȘn mĂĄy ngÆ° i dĂčng. Trong MySQL, ngÆ° i dĂčng cĂł th
gi i h n s ngÆ° i truy c p d a vĂ o location mĂ  ngÆ° i Ăł k t n i.
User : TĂȘn mĂ  ngÆ° i dĂčng dĂčng truy c p vĂ o MySQL
Password : m t kh u ngÆ° i dung.
Db : TĂȘn CSDL
Table_name : TĂȘn b ng trong CSDL
Column_name : TĂȘn c a c t trong m t b ng trong CSDL
CĂĄc c t quy n : LÆ°u cĂĄc thĂŽng tin v cĂĄc quy n c a user trĂȘn
t ng m c c a CSDL tĂčy theo nĂł thu c b ng nĂ o.
C u trĂșc cĂĄc c t
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 50
CĂĄc c t ph m vi :
Column Name Type
Host CHAR(60)
User CHAR(16)
Password CHAR(16)
Db CHAR(64)
Table_name CHAR(64)
Column_name CHAR(64)
Routine_name CHAR(64)
B ng 3.2.4.2.d Ph m vi cĂĄc c t trong cĂĄc b ng
i v i cĂĄc phiĂȘn b n MySQL trÆ° c 3.23, c t Db lĂ 
CHAR(32) trong m t vĂ i table vĂ  lĂ  CHAR(60) trong m t s
table khĂĄc.
CĂĄc c t quy n
Trong cĂĄc b ng user, db, host, m i quy n Æ° c li t kĂȘ
trong cĂĄc c t quy n khĂĄc nhau Æ° c khai bĂĄo nhÆ° ENUM
(‘N’, ‘Y’) giá tr m c nh ‘N’. Trong các t , m i quy n có
th Æ° c disabled ho c enabled, v i m c nh lĂ  disabled.
Trong cĂĄc table tables_priv, columns_priv vĂ  procs_priv,
cĂĄc c t quy n Æ° c khai bĂĄo nhÆ° lĂ  cĂĄc c t SET columns.
M i dĂČng c a table ch ra m t quy n c a user mĂ  thĂŽi. Do Ăł
bi t Æ° c y cĂĄc quy n c a user trĂȘn m t table,
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 51
column, proc c n ph i k t h p m t t p cĂĄc record. CĂĄc giĂĄ tr
cĂł th lÆ°u trong cĂĄc c t :
Table Name Column Name Possible Set Elements
Tables_priv Table_priv
'Select', 'Insert', 'Update', 'Delete', 'Create',
'Drop', 'Grant', 'References', 'Index', 'Alter'
Tables_priv Column_priv 'Select', 'Insert', 'Update', 'References'
columns_priv Column_priv 'Select', 'Insert', 'Update', 'References'
procs_priv Proc_priv 'Execute', 'Alter Routine', 'Grant'
B ng 3.2.4.2.e CĂĄc giĂĄ tr trong cĂĄc c t phĂąn quy n
c) S d ng cĂĄc table phĂąn quy n
Server s d ng cĂĄc b ng nhÆ° sau :
CĂĄc c t ph m vi trong b ng user nh rĂ” khi nĂ o thĂŹ lo i b hay cho
phĂ©p cĂĄc k t n i th c hi n. Khi cĂĄc k t n i Æ° c cho phĂ©p, m t s
c quy n ĂŁ c p trong cĂĄc b ng user ch cho toĂ n b cĂĄc quy n c a
user. CĂĄc c quy n nĂ y Æ° c ĂĄp d ng cho t t c cĂĄc csdl trĂȘn
server.
CĂĄc c t ph m vi trong b ng db nh rĂ” user nĂ o Æ° c phĂ©p truy c p
vĂ o cĂĄc csdl nĂ o t cĂĄc host nĂ o. CĂĄc c t c quy n nh rĂ” thao tĂĄc
nĂ o Æ° c phĂ©p. M t c quy n ĂŁ c p trong m t m c csdl ĂĄp d ng
vĂ o vĂ  t t c cĂĄc b ng c a nĂł. (cĂĄc quy n ĂĄp d ng i v i csdl)
B ng host Æ° c dĂčng trong liĂȘn k t v i b ng db khi ngÆ° i dĂčng
mu n ch ra cĂĄc dĂČng trong b ng db ĂĄp d ng vĂ o cĂĄc host riĂȘng.
B ng host khĂŽng nh hÆ° ng b i cĂĄc l nh GRANT vĂ  REVOKE.
CĂĄc b ng tables_priv and columns_priv thĂŹ tÆ°ÆĄng t nhÆ° b ng db,
nhÆ°ng cĂł nhi u fine-grained : chĂșng ĂĄp d ng t i cĂĄc m c b ng
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 52
vĂ  c t hÆĄn lĂ  m c csdl. CĂĄc quy n c quy n ĂŁ c p cho m c
b ng thĂŹ ĂĄp d ng cho b ng vĂ  cho t t c cĂĄc c t trong b ng. CĂĄc
c quy n Æ° c c p cho t i c t nĂ o thĂŹ nĂł ch cĂł tĂĄc d ng cho c t Ăł
mĂ  thĂŽi.
B ng procs_priv ĂĄp d ng cho cĂĄc th t c lÆ°u tr (stored routines).
c quy n ĂŁ c p t i m c th t c ch ĂĄp d ng cho cĂĄc th t c ÆĄn.
3.2.4.3. CĂĄc quy n MySQL h tr
CĂĄc c quy n :
Privilege Column Context
CREATE Create_priv databases, tables, or indexes
DROP Drop_priv databases or tables
GRANT Grant_priv databases, tables, or stored routines
REFERENCES References_priv databases or tables
ALTER Alter_priv tables
DELETE Delete_priv tables
INDEX Index_priv tables
INSERT Insert_priv tables
SELECT Select_priv tables
UPDATE Update_priv tables
CREATE VIEW Create_view_priv views
SHOW VIEW Show_view_priv views
ALTER ROUTINE Alter_routine_priv stored routines
CREATE ROUTINE Create_routine_priv stored routines
EXECUTE Execute_priv stored routines
CREATE Create_tmp_table_priv server administration
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 53
TEMPORARY TABLES
FILE File_priv file access on server host
LOCK TABLES Lock_tables_priv server administration
PROCESS Process_priv server administration
RELOAD Reload_priv server administration
REPLICATION
CLIENT
Repl_client_priv server administration
REPLICATION SLAVE Repl_slave_priv server administration
SHOW DATABASES Show_db_priv server administration
SHUTDOWN Shutdown_priv server administration
SUPER Super_priv server administration
B ng 3.2.4.3.a Danh sĂĄch cĂĄc c quy n
CĂĄc quy n CREATE TEMPORARY TABLES, EXECUTE, LOCK
TABLES, REPLICATION CLIENT, REPLICATION SLAVE, SHOW
DATABASES, vĂ  SUPER Æ° c thĂȘm trong MySQL 4.0.2. (EXECUTE
khĂŽng Æ° c th c thi cho t i MySQL 5.0.3.)
CREATE VIEW vĂ  SHOW VIEW Æ° c thĂȘm trong MySQL 5.0.1.
CREATE ROUTINE vĂ  ALTER ROUTINE Æ° c thĂȘm trong MySQL
5.0.3.
s d ng cĂĄc c quy n nĂ y khi nĂąng c p t cĂĄc phiĂȘn b n cĆ© c a
MySQL mĂ  khĂŽng cĂł chĂșng, ngÆ° i dĂčng c n ph i nĂąng c p cĂĄc b ng c
quy n c a ngÆ° i dĂčng.
M t s c quy n qu n tr cĂł th th c hi n b ng cĂĄch s d ng chÆ°ÆĄng trĂŹnh
mysqladmin ho c Æ°a ra cĂĄc cĂąu l nh SQL.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 54
B ng sau th hi n cĂĄc cĂąu l nh SQL tÆ°ÆĄng ng v i c quy n qu n tr
Æ° c th c thi :
Privilege Commands Permitted to Privilege Holders
RELOAD
flush-hosts, flush-logs, flush-privileges, flush-status,
flush-tables, flush-threads, refresh, reload.
SHUTDOWN shutdown
PROCESS processlist
SUPER kill
B ng 3.2.4.3.b Danh sĂĄch cĂĄc c quy n qu n tr
L nh reload th c hi n vi c c l i cĂĄc b ng phĂąn quy n vĂ o trong b nh .
3.2.4.4. i u khi n truy c p c quy n
Khi ngÆ° i dĂčng k t n i v i CSDL MySQL :
MySQL tĂŹm xem trong b ng user cĂł hostname, username, and password
Ăł khĂŽng.
N u cĂł, ngÆ° i dĂčng Æ° c quy n truy c p vĂ o h th ng. Khi ngÆ° i Ăł
th c thi m t cĂąu query, trÆ° c tiĂȘn MySQL xem trong b ng user xem
ngÆ° i dĂčng cĂł nh ng quy n gĂŹ. N u ngÆ° i dĂčng nĂ y khĂŽng cĂł c quy n
trong b ng Ăł thĂŹ MySQL s tĂŹm ti p trong b ng db. H th ng s d a
trĂȘn the hostname, username, vĂ  CSDL xem cĂĄc c quy n mĂ  ngÆ° i nĂ y
cĂł. N u trong b ng nĂ y khĂŽng cĂł quy n th c thi cĂąu truy v n thĂŹ
MySQL s tĂŹm ti p trong b ng tables_priv vĂ  sau Ăł lĂ  b ng
columns_priv xem ngÆ° i Ăł cĂł quy n th c thi cĂąu truy v n. N u khĂŽng
tĂŹm th y thĂŹ h th ng s bĂĄo l i.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 55
NhÆ° v y cĂł 2 trÆ° ng h p ki m tra k t n i :
‱ Ki m tra k t n i (connection verification)
‱ Ki m tra yĂȘu c u (request verification).
a) Giai o n 1 : ki m tra k t n i
Khi ngÆ° i dĂčng c g ng k t n i vĂ o MySQL server, server ch p nh n
ho c t ch i cĂĄc k t n i cÆĄ b n d a trĂȘn nh n d ng c a b ng vĂ  b t c khi
nĂ o ngÆ° i dĂčng ki m tra l i nh n d ng c a mĂŹnh b ng cĂĄch cung c p Ășng
m t kh u. N u khĂŽng, server c m truy c p. N u Ășng. server ch p nh n
k t n i, sau Ăł chuy n sang giai o n 2 vĂ  ch i cĂĄc yĂȘu c u.
Nh n d ng c a user Æ° c d a trĂȘn 2 ph n thĂŽng tin sau:
client host t k t n i c a ngÆ° i dĂčng
username MySQL c a ngÆ° i dĂčng
B t kĂŹ ai k t n i vĂ o MySQL, h th ng u ĂČi h i username, password,
vĂ  hostname.
username lĂ  tĂȘn ngÆ° i mu n k t n i
password lĂ  cĂŽng c Æ° c thĂȘm vĂ o xĂĄc nh n ngÆ° i dĂčng
hostname lĂ  tĂȘn mĂĄy mĂ  ngÆ° i dĂčng k t n i. MySQL khĂŽng th gi i
h n s lÆ° ng ngÆ° i k t n i mĂ  cĂł th h n ch s mĂĄy k t n i.
CĂĄc giĂĄ tr host trong b ng user cĂł th Æ° c ch nhÆ° sau :
Giá tr Host có th là hostname ho c s IP, ho c ‘localhost’ ch
local host.
NgÆ° i dĂčng cĂł th s d ng cĂĄc kĂœ t m r ng nhÆ° ‘%’ vĂ  ‘_’ trong
cĂĄc giĂĄ tr c a c t Host. i u nĂ y cĂł cĂčng Ăœ nghÄ©a v i thao tĂĄc vi c
dĂčng kĂœ t thay th v i toĂĄn t LIKE.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 56
QuĂĄ trĂŹnh ki m tra k t n i khĂĄ ÆĄn gi n. MySQL ki m tra thĂŽng tin
username, password, vĂ  hostname nh p vĂ o cĂł trong b ng user hay
khĂŽng? N u cĂł, ngÆ° i dĂčng Æ° c phĂ©p k t n i, n u khĂŽng s khĂŽng cho
phĂ©p truy c p. Vi c ki m tra nh n d ng Æ° c th c hi n b ng cĂĄch s d ng
3 c t ph m vi c a b ng user (Host, User vĂ  Password). Server ch p nh n
k t n i ch khi cĂĄc c t Host vĂ  User trong vĂ i record trong b ng user tÆ°ÆĄng
ng v i hostname vĂ  username c a client, vĂ  client cung c p password
Æ° c ch rĂ” trong record Ăł.
C t password cĂł th lĂ  khĂŽng cĂł d li u. Khi Ăł user k t n i mĂ  khĂŽng
c n password. CĂĄc giĂĄ tr Password non-blank trong b ng user i di n
cho password ĂŁ mĂŁ hoĂĄ. MySQL khĂŽng lÆ°u tr d ng tÆ° ng t n c a
password (plaintext) mĂ  nĂł Æ° c mĂŁ hoĂĄ (b ng hĂ m PASSWORD()).
Password ĂŁ Æ° c mĂŁ hoĂĄ s Æ° c dĂčng trong su t qĂșa trĂŹnh k t n i khi
ki m tra password ĂŁ Ășng. Theo cĂĄch nhĂŹn nh n c a MySQL thĂŹ
password ĂŁ Æ° c mĂŁ hoĂĄ lĂ  password Ășng, vĂŹ th ngÆ° i dĂčng khĂŽng nĂȘn
Æ°a nĂł cho b t kỳ ngÆ° i nĂ o truy c p vĂ o nĂł! c bi t, khĂŽng cho phĂ©p
cĂĄc user khĂŽng ph i lĂ  qu n tr c cĂĄc b ng trong csdl mysql!
T phiĂȘn b n 4.1, MySQL dĂčng phÆ°ÆĄng phĂĄp ch ng th c b o v
password m nh hÆĄn trong su t quĂĄ trĂŹnh k t n i hÆĄn lĂ  cĂĄc phiĂȘn b n
trÆ° c Ăł. NĂł b o m t ngay c cĂĄc gĂłi tin TCP/IP b sniffed ho c csdl
mysql b ĂĄnh c p.
T phiĂȘn b n 4.1.1 MySQL dĂčng thu t toĂĄn SHA-1 mĂŁ hĂła
password. Password Æ° c lÆ°u trong CSDL mysql lĂ  giĂĄ tr băm c a
password sau khi dĂčng SHA-1 băm hai l n liĂȘn tiĂȘp.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 57
QuĂĄ trĂŹnh ch ng th c password :
1. Khi nh n Æ° c yĂȘu c u k t n i t client, Server s t o m t message
ng u nhiĂȘn public_seed vĂ  g i nĂł cho client.
2. Client nh n public_seed. Sau Ăł dĂčng thu t toĂĄn băm SHA-1 băm hai
l n trĂȘn password c a mĂŹnh giĂĄ tr nh n Æ° c lĂ  hash_stage2. Sau Ăł
l i t o giĂĄ tr băm h n h p d a trĂȘn public_seed vĂ  hash_stage2 r i
xor nó v i hash_stage1 (là giå tr băm SHA-1 c a password l n 1).
Chu i nh n Æ° c cu i cĂčng lĂ  reply. Chu i nĂ y Æ° c g i l i cho
server.
3. Server nh n Æ° c giĂĄ tr reply do client tr v vĂ  dĂčng nĂł ki m tra
password Ășng hay sai. TrÆ° c tiĂȘn server s l y giĂĄ tr c a password
trong CSDL mysql là hash_stage2. Sau ó server th c hi n vi c băm
h n h p hash_stage2 vĂ  public_seed. Chu i giĂĄ tr nh n Æ° c Æ° c
em xor v i reply. Khi Ăł k t qu ta nh n Æ° c chĂ­nh lĂ  hash_stage1
( Ăąy chĂ­nh lĂ  giĂĄ tr nh n Æ° c do băm password l n th nh t). L i
dĂčng SHA-1 băm hash_stage1 nh n Æ° c giĂĄ tr băm m i
candidate_hash2. N u candidate_hash2 b ng v i hash_stage2 thĂŹ
password lĂ  Ășng ngÆ° c l i password lĂ  sai.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 58
SERVER: public_seed=create_random_string()
send(public_seed)
CLIENT: recv(public_seed)
hash_stage1=sha1("password")
hash_stage2=sha1(hash_stage1)
reply=xor(hash_stage1, sha1(public_seed,hash_stage2)
send(reply)
SERVER: recv(reply)
hash_stage1=xor(reply, sha1(public_seed,hash_stage2))
candidate_hash2=sha1(hash_stage1)
check(candidate_hash2==hash_stage2)
b) Giai o n 2 : ki m tra yĂȘu c u
Ki m tra yĂȘu c u x y ra m i khi ngÆ° i dĂčng th c hi n cĂąu truy v n vĂ o
CSDL Sau khi quĂĄ trĂŹnh k t n i Æ° c thi t l p, m i dĂČng l nh u i qua
cĂčng m t ti n trĂŹnh. i u nĂ y m b o ngÆ° i dĂčng u cĂł gi i h n lĂ m
vi c. QuĂĄ trĂŹnh nĂ y cĆ©ng khĂĄ ÆĄn gi n. M i khi cĂł yĂȘu c u Æ°a ra, trÆ° c
tiĂȘn MySQL ki m tra xem ngÆ° i dĂčng nĂ y cĂł Æ° c phĂąn quy n c p
user hay khĂŽng? N u cĂł, thĂŹ ngÆ° i dĂčng nĂ y s Æ° c phĂ©p lĂ m b t c vi c
gĂŹ trĂȘn csdl trong HQTCSDL MySQL. N u khĂŽng tĂŹm th y thĂŹ My SQL s
tĂŹm ti p trong b ng db. B ng db lĂ  cÆĄ ch b o m t c p ti p theo. c
quy n ch Æ° c c p trĂȘn 1 CSDL c th . c quy n SELECT c p nĂ y
cho phĂ©p ngÆ° i dĂčng xem d li u trĂȘn t t c cĂĄc b ng c a 1 CSDL c th .
CĂČn n u ngÆ° i dĂčng mu n phĂąn quy n c th hÆĄn thĂŹ hĂŁy s d ng b ng
tables_priv vĂ  columns_priv. B ng columns_priv lĂ  nÆĄi cu i cĂčng MySQl
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 59
c p quy n cho ngÆ° i dĂčng. N u ngÆ° i dĂčng khĂŽng Æ° c c p quy n c p
nĂ y thĂŹ MySQl s bĂĄo l i. QuĂĄ trĂŹnh nĂ y di n ra r t nhanh n n i ta
khĂŽng th bi t Æ° c. Do Ăł CSDL c a ngÆ° i dĂčng cĂł an toĂ n cao. HĂŹnh
dÆ° i Ăąy mĂŽ t quĂĄ trĂŹnh ki m tra :
HĂŹnh 3.2.4.4 Ki m tra yĂȘu c u
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 60
ChÆ°ÆĄng 4.Thu t toĂĄn b o m t password trong MySQL
ChÆ°ÆĄng nĂ y s trĂŹnh bĂ y v thu t toĂĄn b o m t password trong MySQL-
SHA-1: Ăœ tÆ° ng, cĂĄc bÆ° c c a thu t toĂĄn, ĂĄnh giĂĄ Æ°u khuy t i m. ng th i,
chĂșng tĂŽi xu t m t s thu t toĂĄn t t hÆĄn cĂł th h n ch Æ° c khuy t i m c a
thu t toĂĄn hi n t i.
T phiĂȘn b n 4.1 tr v sau MySQL mĂŁ hĂła password b ng thu t toĂĄn
SHA-1
4.1. Thu t toĂĄn SHA-1
4.1.1. Ý tÆ° ng thu t toĂĄn BĂM SHA
CĂĄc thu t toĂĄn hĂ m băm SHA g m 2 bu c: ti n x lĂœ vĂ  tĂ­nh toĂĄn giĂĄ tr băm.
BÆ° c ti n x lĂœ bao g m cĂĄc thao tĂĄc:
M r ng thĂŽng i p
PhĂąn tĂ­ch thĂŽng i p ĂŁ m r ng thĂ nh cĂĄc kh i m bit.
Kh i t o giå tr băm ban u.
BÆ° c tĂ­nh toĂĄn giĂĄ tr băm bao g m cĂĄc thao tĂĄc:
LĂ m N l n cĂĄc cĂŽng vi c sau:
T o b ng phĂąn b thĂŽng i p (message schedule) t kh i th i.
DĂčng b ng phĂąn b thĂŽng i p cĂčng v i cĂĄc hĂ m, h ng s , cĂĄc
thao tĂĄc trĂȘn t t o ra giĂĄ tr băm i.
S d ng giĂĄ tr băm cu i cĂčng t o thĂŽng i p rĂșt g n.
ThĂŽng i p M Æ° c m r ng trÆ° c khi th c hi n băm. M c Ă­ch c a vi c m
r ng nĂ y nh m m b o thĂŽng i p m r ng cĂł dĂ i lĂ  b i s c a 512 ho c
1024 bit tĂčy thu c vĂ o thu t toĂĄn.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 61
Sau khi thĂŽng i p ĂŁ m r ng, thĂŽng i p c n Æ° c phĂąn tĂ­ch thĂ nh N kh i
m-bit trư c khi th c hi n băm.
i v i SHA-1 vĂ  SHA-256, thĂŽng i p m r ng Æ° c phĂąn tĂ­ch thĂ nh N kh i
512-bit M(1), M(2),..., M(N). Do Ăł 512 bit c a kh i d li u u vĂ o cĂł th
Æ° c th hi n b ng 16 t 32-bit, M0
(i)
ch a 32 bit u c a kh i thĂŽng i p i, M0
(i)
ch a 32 bit k ti p...
i v i SHA-384 vĂ  SHA-512, thĂŽng i p m r ng Æ° c phĂąn tĂ­ch thĂ nh N
kh i 1024-bit M(1), M(2),..., M(N). Do Ăł 1024 bit c a kh i d li u u vĂ o cĂł
th Æ° c th hi n b ng 16 t 64-bit, M0
(i)
ch a 64 bit u c a kh i thĂŽng i p i,
M0
(i)
ch a 64 bit k ti p...
TrÆ° c khi th c hi n băm, v i m i thu t toĂĄn băm an toĂ n, giĂĄ tr băm ban u
H(0) ph i Æ° c thi t l p. KĂ­ch thÆ° c vĂ  s lÆ° ng t trong H(0) tĂčy thu c vĂ o
kĂ­ch thÆ° c thĂŽng i p rĂșt g n. CĂĄc giĂĄ tr băm ban u c a cĂĄc thu t toĂĄn SHA
Æ° c trĂŹnh bĂ y trong ph n Ph l c A.
CĂĄc c p thu t toĂĄn SHA-224 vĂ  SHA-256; SHA-384 vĂ  SHA-512 cĂł cĂĄc thao
tĂĄc th c hi n gi ng nhau, ch khĂĄc nhau v s lÆ° ng bit k t qu c a thĂŽng i p
rĂșt g n. NĂłi cĂĄch khĂĄc, SHA-224 s d ng 224 bit u tiĂȘn trong k t qu thĂŽng
i p rĂșt g n sau khi ĂĄp d ng thu t toĂĄn SHA-256. TÆ°ÆĄng t SHA-384 s d ng
384 bit u tiĂȘn trong k t qu thĂŽng i p rĂșt g n sau khi ĂĄp d ng thu t toĂĄn
SHA-512.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 62
CĂĄc tham s , kĂœ hi u vĂ  cĂĄc thu t ng Æ° c s d ng trong SHA.
Tham s :
a, b,c, ...,h Cåc bi n là cåc t w bit s d ng trong vi c tính toån giå tr băm
H(i).
H(i) Giå tr băm th i. H(0) là giå tr băm kh i u. H(N) là giå tr băm
cu i cĂčng vĂ  Æ° c s d ng xĂĄc nh thĂŽng i p rĂșt g n.
Kt H ng s s d ng cho vĂČng l p th t trong vi c th c hi n băm.
k S lÆ° ng cĂĄc s 0 thĂȘm vĂ o thĂŽng i p trong giai o n m r ng
thĂŽng i p.
l Chi u dĂ i thĂŽng i p M (tĂ­nh b ng ÆĄn v bit).
m S bit trong m t kh i thĂŽng i p, M(t).
M(i) Kh i thĂŽng i p i, v i giĂĄ tr m bit.
M(i)j T th j c a kh i thĂŽng i p th i, M(t)0 lĂ  t c c trĂĄi c a kh i
thĂŽng i p i.
n S lÆ° ng bit Æ° c d ch chuy n khi x lĂœ m t t .
N S lÆ° ng kh i trong thĂŽng i p m r ng.
T w-bit t t m s d ng trong vi c th c hi n băm.
w S lÆ° ng bit trong m t t .
Wt T w-bit th t c a b ng phĂąn b thĂŽng i p.
KĂœ hi u:
CĂĄc kĂœ hi u sau Æ° c s d ng trong SHA vĂ  x lĂœ trĂȘn cĂĄc t w-bit.
^ Thao tĂĄc AND trĂȘn bit.
√ Thao tĂĄc OR trĂȘn bit.
⊕ Thao tĂĄc XOR trĂȘn bit.
ÂŹ Thao tĂĄc o bit.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 63
+ Thao tĂĄc c ng modulo 2w.
<< Thao tĂĄc d ch trĂĄi, x << n lo i b n bit c c trĂĄi c a t x vĂ  thĂȘm n bit
0 vĂ o bĂȘn ph i c a k t qu .
>> Thao tĂĄc d ch ph i, x >> n lo i b n bit c c ph i c a t x vĂ  thĂȘm n
bit 0 vĂ o bĂȘn trĂĄi c a k t qu .
Thu t ng :
CĂĄc thu t ng liĂȘn quan n chu i bit vĂ  s nguyĂȘn Æ° c s d ng:
a) M t kĂœ s th p l c (hexa) lĂ  m t ph n t trong t p h p {0, 1,..., 9, a, ..., f}.
M t kĂœ s th p l c bi u di n m t chu i 4-bit. VĂ­ d , kĂœ s th p l c "7"
bi u di n chu i 4-bit "0111", kĂœ s hexa "a" bi u di n chu i 4 bit "1010".
b) M t t lĂ  m t chu i w-bit cĂł th Æ° c bi u di n dÆ° i d ng m t dĂŁy cĂĄc kĂœ
s hexa. chuy n i m t t sang kĂœ s hexa, m i chu i 4-bit Æ° c
chuy n sang giĂĄ tr hexa tÆ°ÆĄng ng nhÆ° ph n (a). VĂ­ d , chu i 32-bit
1010 0001 0000 0011 1111 1110 0010 0011
cĂł th Æ° c bi u di n nhÆ° sau "a103fe23", vĂ  chu i 64 bit
1010 0001 0000 0011 1111 1110 0010 0011
0011 0010 1110 1111 0011 0000 0001 1010
cĂł th Æ° c bi u di n nhÆ° sau "a103fe2332ef301a"
c) Quy Æ° c "big-endian" Æ° c s d ng trong tĂ i li u nĂ y khi bi u di n t cĂł
32 vĂ  64 bit. Do Ăł v i m i t , bit u tiĂȘn n m v trĂ­ c c trĂĄi.
d) M t s nguyĂȘn cĂł th Æ° c bi u di n dÆ° i d ng m t t ho c m t c p t .
M t t bi u di n dĂ i thĂŽng i p theo bit, l, Æ° c s d ng trong thao tĂĄc
m r ng thĂŽng i p (ph n b).
M t s nguyĂȘn n m trong kho ng 0 vĂ  232-1 cĂł th Æ° c bi u di n
b mg m t t 32-bit. 4 bit cu i cĂčng c a s nguyĂȘn Æ° c bi u di n b ng kĂœ
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 64
s hexa c c ph i c a t . VĂ­ d s nguyĂȘn 291 = 28 + 25 + 21 + 20 = 258 +
32 + 2 + 1 Æ° c bi u di n b ng t hexa 0x00000123.
TÆ°ÆĄng t , s nguyĂȘn trong kho ng 0 vĂ  264-1 cĂł th bi u di n b ng t
64-bit.
N u Z lĂ  m t s nguyĂȘn, 0 ≀ Z < 264 thĂŹ Z = 232X + Y, trong Ăł 0 ≀ X <
232 vĂ  0 ≀ Y < 232. Do X vĂ  Y cĂł th Æ° c bi u di n b ng t 32-bit x vĂ 
y, nĂȘn s nguyĂȘn Z cĆ©ng cĂł th bi u di n b ng m t c p t (x, y). TĂ­nh ch t
nĂ y Æ° c s d ng trong SHA-1 vĂ  SHA-256.
N u Z lĂ  m t s nguyĂȘn, 0 ≀ Z < 2128 thĂŹ Z = 264X + Y, trong Ăł 0 ≀
X < 264 vĂ  0 ≀ Y < 264. Do X vĂ  Y cĂł th Æ° c bi u di n b ng t 64-bit x
vĂ  y, nĂȘn s nguyĂȘn Z cĆ©ng cĂł th bi u di n b ng m t c p t (x, y). TĂ­nh
ch t nĂ y Æ° c s d ng trong SHA-384 vĂ  SHA-512.
e) Trong thu t toĂĄn băm an toĂ n, kĂ­ch thÆ° c c a kh i thĂŽng i p m bit d a
vĂ o thu t toĂĄn sau:
i v i SHA-1 vĂ  SHA-256, m i kh i thĂŽng i p cĂł 512 bit bi u
di n dÆ° i d ng m t dĂŁy 16 t 32-bit.
i v i SHA-384 vĂ  SHA-512, m i kh i thĂŽng i p cĂł 1024 bit
bi u di n dÆ° i d ng m t dĂŁy 16 t 64-bit.
CĂĄc thao tĂĄc x lĂœ dÆ° i Ăąy Æ° c ĂĄp d ng cho t w-bit trong c 5 thu t toĂĄn :
SHA-1, SHA-224 vĂ  SHA-256 thao tĂĄc trĂȘn t 32-bit (w = 32), SHA-384 vĂ 
SHA-512 thao tĂĄc trĂȘn t 64-bit (w = 64).
‱ CĂĄc phĂ©p toĂĄn lu n lĂœ trĂȘn bit: ∧, √, ⊕ vĂ  ÂŹ
‱ PhĂ©p c ng modulo 2w.
PhĂ©p c ng x + y Æ° c nh nghÄ©a nhÆ° sau. T x vĂ  y bi u di n s nguyĂȘn
X vĂ  Y trong Ăł 0 ≀ X < 2w vĂ  0 ≀ Y < 2w.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 65
Z = (X + Y) mod 2w. ( 4.1)
thĂŹ 0 ≀ Z < 2w. Bi n i s nguyĂȘn Z thĂ nh t z, ta cĂł z = x + y.
PhĂ©p toĂĄn d ch ph i SHRn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn 0≀n<w
nh nghĩa như sau
SHRn(x) = x >> n. ( 4.2)
PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-256, SHA-384 vĂ  SHA-512.
‱ PhĂ©p toĂĄn quay ph i ROTRn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn
0≀n<w, Æ° c nh nghÄ©a nhÆ° sau:
ROTRn(x) = (x >> n) ∹ (x <<w – n) ( 4.3)
NhÆ° v y, ROTRn(x) tÆ°ÆĄng Æ°ÆĄng cho m t thao tĂĄc xoay vĂČng t x v
phĂ­a ph i n v trĂ­.
PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-256, SHA-384 vĂ  SHA-512.
‱ PhĂ©p toĂĄn quay trĂĄi ROTLn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn 0≀n<w,
ư c nh nghĩa như sau:
ROTLn(x) = (x << n) ∹ (x >>w – n) ( 4.4)
NhÆ° v y, ROTLn(x) tÆ°ÆĄng Æ°ÆĄng cho m t thao tĂĄc xoay vĂČng t x v
phĂ­a trĂĄi n v trĂ­. PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-1.
‱ LÆ°u Ăœ r ng cĂĄc phĂ©p toĂĄn sau lĂ  tÆ°ÆĄng Æ°ÆĄng v i w lĂ  khĂŽng i.
ROTLn(x) ≈ ROTRw-n(x)
ROTRn(x) ≈ ROTLw-n(x).
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 66
4.1.2. Thu t toĂĄn SHA-1
4.1.2.1. Gi i thi u
SHA-1 d a trĂȘn cĂĄc nguyĂȘn lĂœ tÆ°ÆĄng t v i nh ng nguyĂȘn lĂœ mĂ  giĂĄo sÆ°
Ronald L.Rivest c a MIT khi thi t k thu t toĂĄn băm MD4, SHA-1 Æ° c
xu t vào thång 4 năm 1995.
Khi nh p vĂ o m t thĂŽng i p cĂł chi u dĂ i b t kỳ nh hÆĄn 264
bit, SHA-1
cho ra k t qu lĂ  m t thĂŽng i p rĂșt g n (hay giĂĄ tr băm) dĂ i 160 bits.
TrÆ° c Ăą y, SHA-1 Æ° c g i lĂ  an toĂ n vĂŹ khĂŽng th tĂŹm ra thĂŽng i p liĂȘn
quan n thĂŽng i p rĂșt g n hay tĂŹm ra hai thĂŽng i p khĂĄc nhau nhÆ°ng cĂł
cĂčng thĂŽng i p rĂșt g n. B t kỳ thay i nĂ o c a thĂŽng i p, v i xĂĄc su t cao,
k t qu v n cho ra cĂĄc thĂŽng i p rĂșt g n khĂĄc nhau.
4.1.2.2. Thao tĂĄc ti n x lĂœ
a) CĂĄc hĂ m vĂ  cĂĄc h ng s Æ° c dĂčng trong thu t toĂĄn SHA-1 xem ph n
ph l c A.3
b) M r ng thĂŽng i p
ThĂŽng i p M Æ° c m r ng trÆ° c khi th c hi n băm. M c Ă­ch c a
vi c m r ng nĂ y lĂ  m b o thĂŽng i p m r ng cĂł dĂ i lĂ  b i s
c a 512bit
Gi s dĂ i c a thĂŽng i p M lĂ  l bit. ThĂȘm bit 1 vĂ o cu i thĂŽng i p,
theo sau lĂ  k bit 0 (k lĂ  s khĂŽng Ăąm nh nh t sao cho
l+1+k=448(mod512)). Sau Ăł thĂȘm kh i 64 bit lĂ  bi u di n nh phĂąn c a l.
VĂ­ d , thĂŽng i p (8-bit ASCII) "abc" cĂł dĂ i 8x3=24, do Ăł thĂŽng
i p Æ° c m r ng b ng 1 bit "1", 448-(24+1) = 423 bit "0" vĂ  chi u dĂ i
thĂŽng i p tr thĂ nh thĂŽng i p m r ng 512 bit.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 67
c) PhĂąn tĂ­ch thĂŽng i p ĂŁ m r ng
Sau khi thĂŽng i p ĂŁ m r ng, thĂŽng i p c n Æ° c phĂąn tĂ­ch thĂ nh N
kh i m-bit trÆ° c khi th c hi n băm. ThĂŽng i p m r ng Æ° c phĂąn tĂ­ch
thĂ nh N kh i 512-bit M(1), M(2),..., M(N). Do Ăł 512 bit c a kh i d li u
u vĂ o cĂł th Æ° c th hi n b ng 16 t 32-bit, M0
(i)
ch a 32 bit u c a
kh i thĂŽng i p i, M0
(i)
ch a 32 bit k ti p...
d) Kh i t o giå tr băm
GiĂĄ tr băm lĂ  m t chu i bit cĂł kĂ­ch thÆ° c b ng kĂ­ch thÆ° c message
digest (tr SHA-384) g m cåc words ghép l i. Trong ó Hj
(i)
lĂ  word j
trong giĂĄ tr băm l n l p i, v i 0 ≀ i ≀ N (s block cĂł Æ° c sau khi chia
văn b n Æ° c m) vĂ  0 ≀ j ≀ s word trong giĂĄ tr băm – 1. TrÆ° c khi
th c hi n băm, v i m i thu t toån băm an toàn, giå tr băm ban u H(0)
ph i Æ° c thi t l p. KĂ­ch thÆ° c vĂ  s lÆ° ng t trong H(0) tĂčy thu c vĂ o
kĂ­ch thÆ° c thĂŽng i p rĂșt g n.
H ng s vĂ  giĂĄ tr kh i t o c a SHA-1 xem ph n ph l c A.1
4.1.2.3. Thu t toĂĄn c a bÆ° c tĂ­nh toĂĄn giĂĄ tr băm SHA-1:
SHA-1 Æ° c s d ng băm thĂŽng i p M dĂ i l bit 0 ≀ l ≀ 264
. Thu t toĂĄn
s d ng :
‱ M t b ng phñn b thîng i p g m 80 t 32-bit.
‱ 5 bi n 32 bit.
‱ M t giá tr băm g m 5 t 32-bit.
K t qu c a SHA-1 lĂ  thĂŽng i p rĂșt g n 160-bit.
CĂĄc t c a b ng phĂąn b thĂŽng i p Æ° c kĂœ hi u W0, W1, ..., W79. 5 bi n
kĂœ hi u a, b, c, d, vĂ  e. CĂĄc t c a giĂĄ tr băm kĂœ hi u H0
(i)
, H1
(i)
, 
, H4
(i)
,
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 68
H(0) gi giĂĄ tr băm ban u, Æ° c thay th b ng cĂĄc giĂĄ tr băm thĂ nh cĂŽng
H(i) sau khi m i kh i thĂŽng i p Æ° c x lĂœ vĂ  k t thĂșc b ng giĂĄ tr băm cu i
cĂčng H(N). Xem chi ti t ph n ph l c A.4.1
4.1.3. ĂĄnh giĂĄ Æ°u khuy t i m
4.1.3.1. ÆŻu i m
CĂčng v i MD5, SHA-1 Æ° c xem lĂ  2 thu t toĂĄn BĂM ph bi n nh t
hi n nay.
SHA-1 Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng ng vĂŹ r t khĂł tĂŹm
Æ° c hai thĂŽng i p cĂł cĂčng giĂĄ tr băm.
Chu n SHA-1 Æ° c ch ng nh n b i Vi n CĂŽng ngh vĂ  TiĂȘu chu n qu c
gia (NIST) M , vĂ  lĂ  phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ duy nh t Æ° c ch p nh n
trong n i b chĂ­nh ph M .
Æ° c coi lĂ  chu n c a vi c b o v cĂĄc kĂȘnh liĂȘn l c tr c tuy n t n t i 9
năm qua.
4.1.3.2. Khuy t i m
SHA-1 Æ° c thi t k trĂȘn cĂĄc b vi x lĂœ 32-bit, th h s p t i c a cĂĄc b
vi x lĂœ cĂł dĂčng cĂĄc t 64-bit (word), mĂ  SHA-1 khĂŽng x kĂœ hi u qu
trĂȘn b vi x lĂœ nĂ y.
ThĂĄng 2 năm 2005, SHA-1 ĂŁ b t n cĂŽng b i m t nhĂłm 3 chuyĂȘn gia
Xiaoyun Wang, Yiqun Lisa Yin, vĂ  Hongbo Yu, m t nhĂłm cĂĄc nhĂ 
nghiĂȘn c u c a trÆ° ng i h c Qu ng ĂŽng, Vi n Khoa h c Trung
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 69
Qu c vĂ  TrÆ° ng i h c Shanghai Jiaotong. Thu t toĂĄn nĂ y ĂŁ b gi i
mĂŁ thĂŽng qua phÆ°ÆĄng phĂĄp tĂ­nh toĂĄn phĂąn b 1
.
Vi c tĂŹm ki m giĂĄ tr ng c a SHA thÆ° ng ĂČi h i m t s c m nh
tĂ­nh toĂĄn r t l n. CĂĄc nhĂ  nghiĂȘn c u Trung Qu c khi t n cĂŽng SHA-1
ĂŁ khĂŽng cĂł nhi u siĂȘu mĂĄy tĂ­nh trong tay, nĂȘn thay vĂ o Ăł, h s d ng
m t chÆ°ÆĄng trĂŹnh i n toĂĄn phĂąn tĂĄn khai thĂĄc s c m nh nhĂ n r i c a
hĂ ng nghĂŹn mĂĄy tĂ­nh trĂȘn th gi i vĂ  hoĂ n t t cĂŽng vi c. PhĂĄ SHA-1, khĂł
hÆĄn g p 16 l n t n cĂŽng MD5, c n 300.000 mĂĄy tĂ­nh nhÆ°ng ph i m t x p
x 74 năm. Tuy nhiĂȘn, v i vi c t n d ng Æ° c s c m nh liĂȘn k t c a
nhi u mĂĄy tĂ­nh gia ĂŹnh nhÆ° cĂĄc nhĂ  khoa h c Trung Qu c ĂŁ lĂ m nĂłi
trĂȘn, th i gian th c hi n i u nĂ y ĂŁ Æ° c rĂșt ng n r t nhi u.
Xem chi ti t t n cĂŽng ph n Ph l c C
(1)
PhÆ°ÆĄng phĂĄp tĂ­nh toĂĄn phĂąn b : LĂ  m t d ng tĂ­nh toĂĄn trong Ăł cĂĄc thĂ nh ph n
vĂ  i tÆ° ng khĂĄc nhau (t o nĂȘn m t ng d ng) Æ° c t trĂȘn nhi u mĂĄy tĂ­nh
khĂĄc nhau k t n i vĂ o m ng. VĂ­ d : cĂł th ĂĄnh giĂĄ ng d ng x lĂœ văn b n
Word b ng cĂĄch phĂąn chia nh ng tĂ­nh năng chĂ­nh c a chĂșng cho nhi u mĂĄy tĂ­nh
khĂĄc nhau: thĂ nh ph n biĂȘn t p, i tÆ° ng ki m tra chĂ­nh t , tĂ­nh năng b o m t...
Trong m t s h th ng tĂ­nh toĂĄn phĂąn b khĂĄc, ngÆ° i ta cĂł th t m i m t i
tÆ° ng trong m t mĂŽi trÆ° ng h i u hĂ nh khĂĄc nhau.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 70
4.2. CĂĄc thu t toĂĄn xu t
4.2.1. SHA-2242
, SHA-256, SHA-384 vĂ  SHA-512
4.2.1.1. Gi i thi u:
Chu n SHS c t 5 thu t toån băm an toàn SHA-1, SHA-224, SHA-256,
SHA-384 vĂ  SHA-512.
S khĂĄc bi t chĂ­nh c a cĂĄc thu t toĂĄn lĂ  s lÆ° ng bit b o m t c a d li u
Æ° c băm – i u nĂ y cĂł nh hÆ° ng tr c ti p n chi u dĂ i c a thĂŽng i p rĂșt
g n. Khi m t thu t toĂĄn băm Æ° c s d ng k t h p v i thu t toĂĄn khĂĄc ĂČi
h i ph i cho k t qu s lÆ° ng bit tÆ°ÆĄng ng. VĂ­ d , n u m t thĂŽng i p
Æ° c kĂœ v i thu t toĂĄn ch kĂœ i n t cung c p 128 bit thĂŹ thu t toĂĄn ch kĂœ
Ăł cĂł th ĂČi h i s d ng m t thu t toĂĄn băm an toĂ n cung c p 128 bit nhÆ°
SHA-256.
NgoĂ i ra, cĂĄc thu t toĂĄn khĂĄc nhau v kĂ­ch thÆ° c kh i vĂ  kĂ­ch thÆ° c t d
li u (word size) Æ° c s d ng th hi n cĂĄc tĂ­nh ch t cÆĄ b n c a b n thu t toĂĄn
băm an toàn.
(2)
Ăąy lĂ  thu t toĂĄn hĂ m băm v a Æ° c NIST cĂŽng nh n thĂ nh chu n hĂ m băm an toĂ n vĂ o
02/2004.
TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL
Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 71
KĂ­ch thÆ° c ( ÆĄn v : bit)
Thu t
toĂĄn
ThĂŽng
i p
Kh i T ThĂŽng i p
rĂșt g n
an toĂ n3
( ÆĄn v : bit)
SHA-1 < 264 512 32 160 80
SHA-224 < 264 512 32 224 112
SHA-256 < 264 512 32 256 128
SHA-384 < 2128 1024 64 384 192
SHA-512 < 2128 1024 64 512 256
B ng 4.2.1.1 Cåc tính ch t c a cåc thu t toån băm an toàn.
4.2.1.2. Thao tĂĄc ti n x lĂœ
a) CĂĄc hĂ m vĂ  cĂĄc h ng s Æ° c dĂčng trong thu t toĂĄn SHA-2244
, SHA-256,
SHA-384 vĂ  SHA-512 : xem ph n ph l c A.3
b) M r ng thĂŽng i p
SHA-224 vĂ  SHA-256 : gi ng SHA-1
SHA-384 vĂ  SHA-512
Gi s dĂ i c a thĂŽng i p M lĂ  l bit. ThĂȘm bit 1 vĂ o cu i thĂŽng i p,
theo sau lĂ  k bit 0 (k lĂ  s khĂŽng Ăąm nh nh t sao cho
l + 1 + k ≡ 896 (mod 1024)
Sau Ăł thĂȘm kh i 128 bit lĂ  bi u di n nh phĂąn c a l.
VĂ­ d , thĂŽng i p (8-bit ASCII) "abc" cĂł dĂ i 8x3=24, do Ăł thĂŽng
i p Æ° c m r ng b ng 1 bit "1", 896-(24+1) = 871 bit "0" vĂ  chi u dĂ i
thĂŽng i p tr thĂ nh thĂŽng i p m r ng 1024 bit.
3
" an toĂ n" lĂ  vi c s d ng phÆ°ÆĄng phĂĄp t n cĂŽng vĂ o thĂŽng i p rĂșt g n kĂ­ch thu c n, ĂČi h i x lĂœ x p x 2n/2
.
4
Ăąy lĂ  thu t toĂĄn hĂ m băm v a Æ° c NIST cĂŽng nh n thĂ nh chu n hĂ m băm an toĂ n vĂ o 02/2004.
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql
Bao mat ma_nguon_tren_mysql

More Related Content

Viewers also liked

Web hox thi_toeft
Web hox thi_toeftWeb hox thi_toeft
Web hox thi_toeftDuy Vọng
 
Xay dung dich_vu_thuong_mai_dien_tu
Xay dung dich_vu_thuong_mai_dien_tuXay dung dich_vu_thuong_mai_dien_tu
Xay dung dich_vu_thuong_mai_dien_tuDuy Vọng
 
Bao mat ung_dung_web
Bao mat ung_dung_webBao mat ung_dung_web
Bao mat ung_dung_webDuy Vọng
 
Dao tao tu_xa_net
Dao tao tu_xa_netDao tao tu_xa_net
Dao tao tu_xa_netDuy Vọng
 
Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_clientDuy Vọng
 
8 nang luc tu duy
8 nang luc tu duy8 nang luc tu duy
8 nang luc tu duyDuy Vọng
 
Search engine viet
Search engine vietSearch engine viet
Search engine vietDuy Vọng
 
Tim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docTim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docDuy Vọng
 
Tri tue nhan_tao_xay_dung_game
Tri tue nhan_tao_xay_dung_gameTri tue nhan_tao_xay_dung_game
Tri tue nhan_tao_xay_dung_gameDuy Vọng
 
Phan loai tin_tuc_bao_dien_tu
Phan loai tin_tuc_bao_dien_tuPhan loai tin_tuc_bao_dien_tu
Phan loai tin_tuc_bao_dien_tuDuy Vọng
 
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyQuan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyDuy Vọng
 
Co so di_truyen_chon_giong_thuc_vat
Co so di_truyen_chon_giong_thuc_vatCo so di_truyen_chon_giong_thuc_vat
Co so di_truyen_chon_giong_thuc_vatDuy Vọng
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungDuy Vọng
 
Giao trinh pptinh
Giao trinh pptinhGiao trinh pptinh
Giao trinh pptinhDuy Vọng
 
Ho tro giai_toan_bat_dang_thuc
Ho tro giai_toan_bat_dang_thucHo tro giai_toan_bat_dang_thuc
Ho tro giai_toan_bat_dang_thucDuy Vọng
 
Xay dung ung_dung_voi_sematic_web
Xay dung ung_dung_voi_sematic_webXay dung ung_dung_voi_sematic_web
Xay dung ung_dung_voi_sematic_webDuy Vọng
 
Nnt gt lich_sunb_quyen1
Nnt gt lich_sunb_quyen1Nnt gt lich_sunb_quyen1
Nnt gt lich_sunb_quyen1Duy Vọng
 
Vietnamese biosafety manualweb
Vietnamese biosafety manualwebVietnamese biosafety manualweb
Vietnamese biosafety manualwebDuy Vọng
 
Intro bioinformaticsv
Intro bioinformaticsvIntro bioinformaticsv
Intro bioinformaticsvDuy Vọng
 

Viewers also liked (19)

Web hox thi_toeft
Web hox thi_toeftWeb hox thi_toeft
Web hox thi_toeft
 
Xay dung dich_vu_thuong_mai_dien_tu
Xay dung dich_vu_thuong_mai_dien_tuXay dung dich_vu_thuong_mai_dien_tu
Xay dung dich_vu_thuong_mai_dien_tu
 
Bao mat ung_dung_web
Bao mat ung_dung_webBao mat ung_dung_web
Bao mat ung_dung_web
 
Dao tao tu_xa_net
Dao tao tu_xa_netDao tao tu_xa_net
Dao tao tu_xa_net
 
Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_client
 
8 nang luc tu duy
8 nang luc tu duy8 nang luc tu duy
8 nang luc tu duy
 
Search engine viet
Search engine vietSearch engine viet
Search engine viet
 
Tim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docTim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_doc
 
Tri tue nhan_tao_xay_dung_game
Tri tue nhan_tao_xay_dung_gameTri tue nhan_tao_xay_dung_game
Tri tue nhan_tao_xay_dung_game
 
Phan loai tin_tuc_bao_dien_tu
Phan loai tin_tuc_bao_dien_tuPhan loai tin_tuc_bao_dien_tu
Phan loai tin_tuc_bao_dien_tu
 
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyQuan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
 
Co so di_truyen_chon_giong_thuc_vat
Co so di_truyen_chon_giong_thuc_vatCo so di_truyen_chon_giong_thuc_vat
Co so di_truyen_chon_giong_thuc_vat
 
Cong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dungCong nghe bluetooth_va_ung_dung
Cong nghe bluetooth_va_ung_dung
 
Giao trinh pptinh
Giao trinh pptinhGiao trinh pptinh
Giao trinh pptinh
 
Ho tro giai_toan_bat_dang_thuc
Ho tro giai_toan_bat_dang_thucHo tro giai_toan_bat_dang_thuc
Ho tro giai_toan_bat_dang_thuc
 
Xay dung ung_dung_voi_sematic_web
Xay dung ung_dung_voi_sematic_webXay dung ung_dung_voi_sematic_web
Xay dung ung_dung_voi_sematic_web
 
Nnt gt lich_sunb_quyen1
Nnt gt lich_sunb_quyen1Nnt gt lich_sunb_quyen1
Nnt gt lich_sunb_quyen1
 
Vietnamese biosafety manualweb
Vietnamese biosafety manualwebVietnamese biosafety manualweb
Vietnamese biosafety manualweb
 
Intro bioinformaticsv
Intro bioinformaticsvIntro bioinformaticsv
Intro bioinformaticsv
 

Similar to Bao mat ma_nguon_tren_mysql

Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mangDuy Vọng
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mangViet Nam
 
Xd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyXd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyVcoi Vit
 
Xd he thong thong tin dia ly
Xd he thong thong tin dia lyXd he thong thong tin dia ly
Xd he thong thong tin dia lyVcoi Vit
 
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyQuan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyViet Nam
 
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdf
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdfChiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdf
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdfTieuNgocLy
 
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...nataliej4
 
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...Man_Ebook
 
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAY
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAYĐề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAY
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAYViáșżt thuĂȘ trọn gĂłi ZALO 0934573149
 
Vo minh truong 10299191 bao cao thuc tap
Vo minh truong 10299191 bao cao thuc tapVo minh truong 10299191 bao cao thuc tap
Vo minh truong 10299191 bao cao thuc tapCu Sock
 
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...nataliej4
 
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...jackjohn45
 
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam nataliej4
 
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...https://www.facebook.com/garmentspace
 
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș N
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș NDI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș N
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș NChau Duong
 
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...luanvantrust
 
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...Dịch vỄ viáșżt thuĂȘ KhĂła Luáș­n - ZALO 0932091562
 
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...Viáșżt thuĂȘ trọn gĂłi ZALO 0934573149
 

Similar to Bao mat ma_nguon_tren_mysql (20)

Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mang
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mang
 
Xd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyXd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan ly
 
Xd he thong thong tin dia ly
Xd he thong thong tin dia lyXd he thong thong tin dia ly
Xd he thong thong tin dia ly
 
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_lyQuan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
 
Bc data mining_chung
Bc data mining_chungBc data mining_chung
Bc data mining_chung
 
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdf
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdfChiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdf
Chiáșżt lọc thĂŽng tin phĂĄp luáș­t trong dữ liệu văn báșŁn.pdf
 
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...
ĐỀ TÀI GIáșąI PHÁP NÂNG CAO CHáș€T LÆŻá»ąNG DỊCH VỀ CÔNG TÁC Xà HỘI Táș I CÁC BỆNH VIỆ...
 
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...
QuáșŁn Trị Rủi Ro TĂ­n DỄng Đối Với KhĂĄch HĂ ng CĂĄ NhĂąn TáșĄi NgĂąn HĂ ng TMCP Ká»č ThÆ°...
 
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAY
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAYĐề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAY
Đề tĂ i: XĂąy dá»±ng hệ thống thĂŽng tin quáșŁn lĂœ bĂĄn hĂ ng cĂŽng ty xi măng, HAY
 
Vo minh truong 10299191 bao cao thuc tap
Vo minh truong 10299191 bao cao thuc tapVo minh truong 10299191 bao cao thuc tap
Vo minh truong 10299191 bao cao thuc tap
 
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...
đáNh giĂĄ hiện tráșĄng ĂŽ nhiễm mĂŽi trường đáș„t một số vĂčng đáș„t trồng rau chuyĂȘn c...
 
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi thÆ° viện quốc gia việt nam...
 
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam
HoáșĄt động truyền thĂŽng marketing trĂȘn internet táșĄi ThÆ° viện Quốc gia Việt Nam
 
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...
Th s01.087 thá»±c tráșĄng vĂ  giáșŁi phĂĄp chủ yáșżu nháș±m phĂĄt triển ứng dỄng cĂŽng nghệ...
 
LV: NĂąng cao cháș„t lÆ°á»Łng đội ngĆ© cĂĄn bộ, cĂŽng chức cáș„p xĂŁ ở huyện Gio Linh
LV: NĂąng cao cháș„t lÆ°á»Łng đội ngĆ© cĂĄn bộ, cĂŽng chức cáș„p xĂŁ ở huyện Gio LinhLV: NĂąng cao cháș„t lÆ°á»Łng đội ngĆ© cĂĄn bộ, cĂŽng chức cáș„p xĂŁ ở huyện Gio Linh
LV: NĂąng cao cháș„t lÆ°á»Łng đội ngĆ© cĂĄn bộ, cĂŽng chức cáș„p xĂŁ ở huyện Gio Linh
 
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș N
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș NDI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș N
DI TÍCH LỊCH Sỏ - VĂN HÓA TỈNH BáșźC Káș N
 
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...
Ớng dỄng cĂŽng nghệ thĂŽng tin trong thá»±c hiện thủ tỄc hĂ nh chĂ­nh của Ịy ban nh...
 
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...
Luáș­n văn: NghiĂȘn cứu xĂąy dá»±ng quy trĂŹnh quáșŁn lĂœ đáș§u tÆ° ứng dỄng cĂŽng nghệ thĂŽ...
 
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...
Luáș­n văn: Tiáșżp cáș­n vĂ  phĂąn tĂ­ch động thĂĄi giĂĄ cáșŁ - láșĄm phĂĄt của VN trong thời...
 

More from Duy Vọng

Cn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30zCn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30zDuy Vọng
 
C05143 tech and app - cnsh
C05143 tech and app - cnshC05143 tech and app - cnsh
C05143 tech and app - cnshDuy Vọng
 
2010 khoa cnsh
2010 khoa cnsh2010 khoa cnsh
2010 khoa cnshDuy Vọng
 
3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtvDuy Vọng
 
Bg quan tri chat luong
Bg quan tri chat luongBg quan tri chat luong
Bg quan tri chat luongDuy Vọng
 
He thong phan loai dnnvn
He thong phan loai dnnvnHe thong phan loai dnnvn
He thong phan loai dnnvnDuy Vọng
 
File goc 771908
File goc 771908File goc 771908
File goc 771908Duy Vọng
 
Erca fg 20130730_p1-18
Erca fg 20130730_p1-18Erca fg 20130730_p1-18
Erca fg 20130730_p1-18Duy Vọng
 
Dung sai ká»č thuáș­t đo lường
Dung sai   ká»č thuáș­t đo lườngDung sai   ká»č thuáș­t đo lường
Dung sai ká»č thuáș­t đo lườngDuy Vọng
 
Dm -chapter_4_-_classification
Dm  -chapter_4_-_classificationDm  -chapter_4_-_classification
Dm -chapter_4_-_classificationDuy Vọng
 
Chuong 12 khai quat ve phan loai dong vat
Chuong 12  khai quat ve phan loai dong vatChuong 12  khai quat ve phan loai dong vat
Chuong 12 khai quat ve phan loai dong vatDuy Vọng
 
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...Duy Vọng
 
Cau truc may tinh
Cau truc may tinhCau truc may tinh
Cau truc may tinhDuy Vọng
 
Cau tao bao duong oto
Cau tao   bao duong otoCau tao   bao duong oto
Cau tao bao duong otoDuy Vọng
 
Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1Duy Vọng
 
Bang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wtoBang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wtoDuy Vọng
 
A35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvucA35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvucDuy Vọng
 

More from Duy Vọng (20)

Dia+ly+co+so
Dia+ly+co+so  Dia+ly+co+so
Dia+ly+co+so
 
Cnsh thay tam
Cnsh thay tamCnsh thay tam
Cnsh thay tam
 
Cn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30zCn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30z
 
C05143 tech and app - cnsh
C05143 tech and app - cnshC05143 tech and app - cnsh
C05143 tech and app - cnsh
 
2010 khoa cnsh
2010 khoa cnsh2010 khoa cnsh
2010 khoa cnsh
 
3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv
 
Bg quan tri chat luong
Bg quan tri chat luongBg quan tri chat luong
Bg quan tri chat luong
 
He thong phan loai dnnvn
He thong phan loai dnnvnHe thong phan loai dnnvn
He thong phan loai dnnvn
 
File goc 771908
File goc 771908File goc 771908
File goc 771908
 
Erca fg 20130730_p1-18
Erca fg 20130730_p1-18Erca fg 20130730_p1-18
Erca fg 20130730_p1-18
 
Dung sai ká»č thuáș­t đo lường
Dung sai   ká»č thuáș­t đo lườngDung sai   ká»č thuáș­t đo lường
Dung sai ká»č thuáș­t đo lường
 
Dm -chapter_4_-_classification
Dm  -chapter_4_-_classificationDm  -chapter_4_-_classification
Dm -chapter_4_-_classification
 
Co xuong khop
Co xuong khopCo xuong khop
Co xuong khop
 
Chuong 12 khai quat ve phan loai dong vat
Chuong 12  khai quat ve phan loai dong vatChuong 12  khai quat ve phan loai dong vat
Chuong 12 khai quat ve phan loai dong vat
 
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...
Chiáșżn lÆ°á»Łc toĂ n cáș§u trong cháș©n đoĂĄn, quáșŁn lĂœ vĂ  dá»± phĂČng bệnh phổi táșŻc ngháșœn ...
 
Cau truc may tinh
Cau truc may tinhCau truc may tinh
Cau truc may tinh
 
Cau tao bao duong oto
Cau tao   bao duong otoCau tao   bao duong oto
Cau tao bao duong oto
 
Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1
 
Bang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wtoBang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wto
 
A35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvucA35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvuc
 

Bao mat ma_nguon_tren_mysql

  • 1. TRÆŻ NG I H C KHOA H C T NHIÊN TP HCM KHOA CÔNG NGH THÔNG TIN B MÔN H TH NG THÔNG TIN Khu t Th Ng c BĂ­ch -- LĂȘ Th TrĂșc LĂąm TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t trĂȘn mĂŁ ngu n m c a mySQL
  • 2. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 1 TRÆŻ NG I H C KHOA H C T NHIÊN TP HCM KHOA CÔNG NGH THÔNG TIN B MÔN H TH NG THÔNG TIN Khu t Th Ng c BĂ­ch -0112046 LĂȘ Th TrĂșc LĂąm -0112101 TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t trĂȘn mĂŁ ngu n m c a mySQL LU N VĂN C NHÂN TIN H C GIÁO VIÊN HÆŻ NG D N: Th.S: PH M TH B CH HU NIÊN KHOÁ: 2001-2005
  • 3. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 2 GIÁO VIÊN HÆŻ NG D N ............................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................
  • 4. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 3 NH N XÉT C A GIÁO VIÊN PH N BI N ............................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................
  • 5. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 4 L I C M Æ N ChĂșng em xin chĂąn thĂ nh cĂĄm ÆĄn Khoa CĂŽng Ngh ThĂŽng Tin, trÆ° ng i H c Khoa H c T NhiĂȘn, i h c Qu c gia Tp. H ChĂ­ Minh ĂŁ t o i u ki n thu n l i cho chĂșng em th c hi n tĂ i lu n văn t t nghi p nĂ y. ChĂșng em xin nĂłi lĂȘn lĂČng bi t ÆĄn sĂąu s c i v i ThS. Ph m Th B ch Hu . Xin chĂąn thĂ nh cĂĄm ÆĄn CĂŽ ĂŁ luĂŽn quan tĂąm, t n tĂŹnh hÆ° ng d n em trong quĂĄ trĂŹnh h c t p, nghiĂȘn c u vĂ  th c hi n tĂ i. Em xin chĂąn thĂ nh cĂĄm ÆĄn quĂœ Th y CĂŽ trong Khoa CĂŽng Ngh ThĂŽng Tin ĂŁ t n tĂŹnh gi ng d y, trang b cho em nh ng ki n th c quĂœ bĂĄu, ĂŁ truy n th cho em nh ng ki n th c, kinh nghi m, ĂŁ quan tĂąm dĂŹu d t vĂ  giĂșp em trong quĂĄ trĂŹnh h c t p cĆ©ng nhÆ° trong lĂșc th c hi n tĂ i nĂ y. ChĂșng con luĂŽn nh mĂŁi cĂŽng ÆĄn c a Ông BĂ , Cha M ĂŁ luĂŽn thÆ°ÆĄng yĂȘu, lo l ng, chăm sĂłc vĂ  nuĂŽi d y con thĂ nh ngÆ° i. Cu i cĂčng chĂșng em xin g i l i cĂĄm ÆĄn n cĂĄc anh ch , cĂĄc b n ĂŁ quan tĂąm ng viĂȘn vĂ  giĂșp chĂșng em trong quĂĄ trĂŹnh th c hi n tĂ i. c bi t, chĂșng em xin g i l i c m ÆĄn chĂąn thĂ nh n th y Nguy n ĂŹnh ThĂșc, ch Tr n H ng Ng c, ch TrÆ°ÆĄng Th M Trang ĂŁ ng viĂȘn, giĂșp chĂșng em trong th i gian th c hi n tĂ i. M c dĂč ĂŁ c g ng hoĂ n thĂ nh lu n văn trong ph m vi vĂ  kh năng cho phĂ©p nhÆ°ng ch c ch n s khĂŽng trĂĄnh kh i nh ng thi u sĂłt, kĂ­nh mong nh n Æ° c s t n tĂŹnh ch b o c a quĂœ Th y CĂŽ vĂ  cĂĄc b n. M t l n n a, chĂșng em xin chĂąn thĂ nh cĂĄm ÆĄn vĂ  mong luĂŽn nh n Æ° c nh ng tĂŹnh c m chĂąn thĂ nh c a t t c m i ngÆ° i. Tp. H ChĂ­ Minh, thĂĄng 6 năm 2005 Khu t Th Ng c BĂ­ch – LĂȘ Th TrĂșc LĂąm
  • 6. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 5 M C L C ChÆ°ÆĄng 1. Gi i thi u..................................................................................12 1.1. T ng quan b o m t ...................................................................12 1.1.1. Nh n nh v b o m t...............................................................12 1.1.2. CĂĄc chi u hÆ° ng b o m t thĂŽng tin :........................................13 1.1.3. B o m t thĂŽng tin .....................................................................15 1.2. TĂŹnh hĂŹnh an toĂ n vĂ  b o m t trĂȘn th gi i vĂ  Vi t Nam......17 1.2.1. TrĂȘn th gi i : nhu c u ang gia tăng.......................................17 1.2.2. Vi t Nam...............................................................................18 1.3. Xu hÆ° ng mĂŁ ngu n m ...........................................................19 1.3.1. L i Ă­ch c a ph n m m mĂŁ ngu n m (PMNM) .......................19 1.3.2. Vi t Nam...................................................................................19 1.4. M c tiĂȘu c a tĂ i....................................................................20 ChÆ°ÆĄng 2. CĂĄc cÆĄ s lĂœ thuy t b o m t .....................................................21 2.1. Secret Key Cryptography(H MĂŁ hoĂĄ quy Æ° c).......................21 2.1.1. Gi i thi u..................................................................................21 2.1.2. PhĂąn lo i thu t toĂĄn ..................................................................22 2.1.3. M t vĂ i thu t toĂĄn SKC Æ° c s d ng ngĂ y nay .....................23 2.1.4. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła quy Æ° c...................................23 2.2. Public Key Crytography (MĂŁ hoĂĄ cĂŽng khai) ..........................24 2.2.1. Gi i thi u chung .......................................................................24 2.2.2. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła cĂŽng khai................................24 2.3. Hash Function (hĂ m Băm)........................................................26 2.3.1. Gi i thi u hĂ m Băm..................................................................26
  • 7. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 6 2.3.2. TĂ­nh ch t c a hĂ m băm.............................................................27 2.3.3. C u trĂșc c a hĂ m băm ..............................................................28 2.3.4. Gi i thi u m t s hĂ m băm ......................................................28 ChÆ°ÆĄng 3. H qu n tr cÆĄ s d li u MySQL ............................................30 3.1. Gi i thi u h qu n tr cÆĄ s d li u MySQL............................30 3.1.1. Gi i thi u..................................................................................30 3.1.2. B n ch t ....................................................................................31 3.1.3. CĂĄc ki u d li u........................................................................32 3.1.4. Statement vĂ  function ...............................................................32 3.1.5. B o m t.....................................................................................33 3.1.6. Kh năng m r ng vĂ  gi i h n .................................................33 3.1.7. K t n i ......................................................................................34 3.1.8. M c h n nh............................................................................35 3.2. CÆĄ ch b o m t trong MySQL .................................................35 3.2.1. T ng quan b o m t ...................................................................35 3.2.2. B o m t trong mĂŽi trÆ° ng m ng ..............................................36 3.2.3. CĂĄc khĂĄi ni m cÆĄ b n ...............................................................36 3.2.4. B o m t cÆĄ s d li u...............................................................44 ChÆ°ÆĄng 4. Thu t toĂĄn b o m t password trong MySQL ...........................60 4.1. Thu t toĂĄn SHA-1.....................................................................60 4.1.1. Ý tÆ° ng thu t toĂĄn BĂM SHA.................................................60 4.1.2. Thu t toĂĄn SHA-1.....................................................................66 4.1.3. ĂĄnh giĂĄ Æ°u khuy t i m..........................................................68 4.2. CĂĄc thu t toĂĄn xu t ..............................................................70 4.2.1. SHA-224, SHA-256, SHA-384 vĂ  SHA-512...........................70
  • 8. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 7 4.2.2. Thu t toĂĄn Tiger .......................................................................75 4.2.3. Thu t toĂĄn Whirlpool................................................................78 4.2.4. So sĂĄnh SHA-1, Tiger, Whirlpool............................................87 ChÆ°ÆĄng 5. CĂ i t th nghi m....................................................................89 5.1. YĂȘu c u ch c năng chÆ°ÆĄng trĂŹnh..............................................89 5.2. ChÆ°ÆĄng trĂŹnh cĂ i t .................................................................89 5.2.1. HÆ° ng d n cĂ i t MySQL t source code ..............................89 5.2.2. HÆ° ng d n th c thi chÆ°ÆĄng trĂŹnh .............................................94 5.3. GĂ­ i thi u chÆ°ÆĄng trĂŹnh cĂ i t.................................................94 5.3.1. ChÆ°ÆĄng trĂŹnh chĂ­nh...................................................................94 5.3.2. ChÆ°ÆĄng trĂŹnh ph ....................................................................102 5.4. K t qu th c nghi m...............................................................104 ChÆ°ÆĄng 6. K t lu n vĂ  hÆ° ng phĂĄt tri n ..................................................106 6.1. K t lu n...................................................................................106 6.1.1. CÆĄ ch b o m t trĂȘn HQT CSDL MySQL .............................106 6.1.2. ChÆ°ÆĄng trĂŹnh HashFunction ...................................................107 6.2. HÆ° ng phĂĄt tri n.....................................................................107 6.2.1. CÆĄ ch b o m t trong HQTCSDL MySQL............................107 6.2.2. ChÆ°ÆĄng trĂŹnh ng d ng...........................................................107 TĂ i li u tham kh o..........................................................................................109 Ph l c
........................................................................................................112 Ph l c A Thu t toĂĄn SHA ............................................................................112 A.1. H ng s s d ng trong SHA ..............................................................112 A.1.1 H ng s c a SHA-1......................................................................112 A.1.2 H ng s c a SHA-224 vĂ  SHA-256 ............................................112
  • 9. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 8 A.1.3 H ng s c a SHA-384 vĂ  SHA-512 ............................................113 A.2 GiĂĄ tr kh i t o trong SHA..................................................................115 A.3 CĂĄc thao tĂĄc ti n x lĂœ trong SHA ......................................................115 A.4 Thu t toĂĄn tĂ­nh hĂ m BĂM trong SHA................................................116 A.4.1 SHA-1 ..........................................................................................116 A.4.2 SHA-224 ......................................................................................118 A.4.3 SHA-256 ......................................................................................119 A.4.4 SHA-384 ......................................................................................121 A.4.5 SHA-512 ......................................................................................123 Ph l c B Thu t toĂĄn Tiger............................................................................125 Ph l c C T n cĂŽng SHA-1 ...........................................................................128
  • 10. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 9 Danh sĂĄch cĂĄc b ng B ng 1.1.2 CĂĄc chi u hÆ° ng b o m t ..................................................................14 B ng 2.2.2 : KĂ­ch thÆ° c khĂła gi a mĂŁ hĂła quy Æ° c vĂ  mĂŁ hĂła khĂła cĂŽng khai v i cĂčng m c b o m t.....................................................................................25 B ng 3.1.6 KĂ­ch thÆ° c gi i h n c a file h th ng trong MySQL........................34 B ng 3.2.4.2.a Danh sĂĄch cĂĄc c t c a b ng user, host, db trong MySQL...........46 B ng 3.2.4.2.b B ng tables_priv, columns_priv trong MySQL ..........................48 B ng 3.2.4.2.d Ph m vi cĂĄc c t trong cĂĄc b ng ...................................................50 B ng 3.2.4.2.e CĂĄc giĂĄ tr trong cĂĄc c t phĂąn quy n ...........................................51 B ng 3.2.4.3.a Danh sĂĄch cĂĄc c quy n.............................................................53 B ng 3.2.4.3.b Danh sĂĄch cĂĄc c quy n qu n tr ...............................................54 B ng 4.2.1.1 CĂĄc tĂ­nh ch t c a cĂĄc thu t toĂĄn băm an toĂ n.................................71 B nng 5.3.2.2 So sĂĄnh SHA-1, Tiger, Whirlpool................................................88 B nng 5.3.2.2 CĂĄc hĂ m chĂ­nh trong SHA-1, Tiger,Whirlpool ..........................103 B ng B.1. MĂĄy CPU Celeron 950MHz, SDRAM 128 MB, HDD 40GB, Processor 32bit...................................................................................................104 B ng B.2. MĂĄy CPU PentiumIV 1,5 GHz, DDRAM 384MB, HDD 30 GB, Processor 32bit...................................................................................................104 B ng B.3. MĂĄy CPU PentiumIV 2.26 GHz, DDRAM 225MB, HDD 40GB, Processor 32bit...................................................................................................105 B ng B.4. MĂĄy CPU PentiumIV 2.4 GHz, DRAM 225 MB, HDD 40 GB, Processor 32bit...................................................................................................105
  • 11. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 10 Danh sĂĄch cĂĄc hĂŹnh HĂŹnh 2.1.1 Secret Key Cryptography...................................................................21 HĂŹnh 2.2.1 Public Key Crytography.....................................................................24 HĂŹnh 2.3.1 Hash Function ....................................................................................26 HĂŹnh 3.2.4.4 Ki m tra yĂȘu c u .............................................................................59 HĂŹnh 5.3.2 ChÆ°ÆĄng trĂŹnh Hash Function............................................................102 HĂŹnh phĂĄc th o ch c năng nĂ©n c a Tiger...........................................................127 Danh sĂĄch cĂĄc t vi t t t BM b o m t csdl cÆĄ s d li u HQTCSDL h qu n tr cÆĄ s d li u CNTT cĂŽng ngh thĂŽng tin PMNM ph n m m ngu n m SSL Secure Sockets Layer
  • 12. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 11 TĂłm t t n i dung c a lu n văn ‱ ChÆ°ÆĄng 1 : TrĂŹnh bĂ y t ng quan v b o m t d li u, cĂĄc chi u hÆ° ng b o m t thĂŽng tin hi n t i, cĂĄc yĂȘu c u trong b o m t d li u, tĂŹnh hĂŹnh nghiĂȘn c u hi n nay trĂȘn th gi i vĂ  trong nÆ° c v lÄ©nh v c nĂ y, ng th i nĂȘu lĂȘn m c Ă­ch, n i dung vĂ  Ăœ nghÄ©a c a tĂ i. ‱ ChÆ°ÆĄng 2 : TrĂŹnh bĂ y tĂłm t t m t s phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ hi n nay, phĂąn lo i cĆ©ng nhÆ° ĂĄnh giĂĄ Æ°u khuy t i m c a t ng phÆ°ÆĄng phĂĄp. c bi t, trong chÆ°ÆĄng nĂ y s gi i thi u khĂĄ kÄ© v hĂ m BĂM, t o cÆĄ s ti n ta nghiĂȘn c u cĂĄc chÆ°ÆĄng sau. ‱ ChÆ°ÆĄng 3 : TrĂŹnh bĂ y khĂĄi quĂĄt v h qu n tr cÆĄ s d li u MySQL. Trong chÆ°ÆĄng nĂ y, cÆĄ ch b o m t c a MySQL s Æ° c trĂŹnh bĂ y c th . CÆĄ ch b o m t trong mĂŽi trÆ° ng m ng, trong cÆĄ s d li u cĆ©ng nhÆ° cĂĄch lÆ°u tr password, quĂĄ trĂŹnh ki m tra password, cÆĄ ch phĂąn quy n s Æ° c trĂŹnh bĂ y trong chÆ°ÆĄng nĂ y. ‱ ChÆ°ÆĄng 4 : TrĂŹnh bĂ y v thu t toĂĄn b o m t password trong MySQL : Ăœ tÆ° ng, cĂĄc bÆ° c c a thu t toĂĄn, ĂĄnh giĂĄ Æ°u khuy t i m. ng th i, chĂșng tĂŽi s xu t m t s thu t toĂĄn t t hÆĄn cĂł th h n ch Æ° c khuy t i m c a thu t toĂĄn hi n t i. ‱ ChÆ°ÆĄng 5 : Gi i thi u sÆĄ lÆ° c mĂŁ ngu n m c a MySQL, tĂŹm hi u cĂĄc hĂ m mĂŁ hoĂĄ password, hĂ m lÆ°u password trong CSDL. ng th i cĂ i t th nghi m m t s thu t toĂĄn m i vĂ  ng d ng phĂĄt tri n cÆĄ ch b o m t c a HQTCSDL MySQL. ‱ ChÆ°ÆĄng 6 : K t lu n vĂ  hÆ° ng phĂĄt tri n c a tĂ i.
  • 13. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 12 ChÆ°ÆĄng 1.Gi i thi u N i dung c a chÆ°ÆĄng 1 trĂŹnh bĂ y t ng quan v xu hÆ° ng mĂŁ ngu n m vĂ  chi u hÆ° ng b o m t thĂŽng tin hi n t i, cĂĄc yĂȘu c u trong b o m t d li u, tĂŹnh hĂŹnh nghiĂȘn c u hi n nay trĂȘn th gi i vĂ  trong nÆ° c v lÄ©nh v c nĂ y, ng th i nĂȘu lĂȘn m c Ă­ch, n i dung vĂ  Ăœ nghÄ©a c a tĂ i. 1.1. T ng quan b o m t 1.1.1. Nh n nh v b o m t B o m t thĂŽng tin nh hÆ° ng r t l n n s t n t i vĂ  phĂĄt tri n c a doanh nghi p hay t ch c. Do Ăł vi c b o m t thĂŽng tin b o m t thĂŽng tin cĂł Ăœ nghÄ©a h t s c quan tr ng. NgĂ y nay v i s phĂĄt tri n khĂŽng ng ng c a cĂŽng ngh thĂŽng tin, d li u c a cĂĄc doanh, nghi p, t ch c, cĂĄc nhĂąn khĂŽng ch lÆ°u tr trĂȘn gi y t mĂ  Æ° c t ch c thĂ nh m t cÆĄ s d li u (csdl). Csdl s Æ° c qu n lĂœ b ng m t h qu n tr cÆĄ s d li u (hqtcsdl). TĂčy thu c vĂ o l n c a csdl, tĂŹnh hĂŹnh tĂ i chĂ­nh, kh năng c a mĂŹnh mĂ  m i cĂŽng ty s ch n l a m t h qu n tr phĂč h p. NgĂ y nay, s phĂĄt tri n c a internet giĂșp cho cĂĄc giao d ch trĂȘn m ng ngĂ y cĂ ng tăng, lÆ° ng thĂŽng tin trao i trĂȘn m ng cĆ©ng tăng tÆ°ÆĄng ng. VĂŹ th cÆĄ h i cho cĂĄc i th , cĂĄc “hacker” thĂąm nh p ĂĄnh c p d li u cĂ ng tăng. ThĂŽng tin c n Æ° c b o v kh i cĂĄc m i e d a nhÆ° : Vi c m o danh truy c p thĂŽng tin b t h p phĂĄp vĂ  s d ng thĂŽng tin cho cĂĄc m c Ă­ch riĂȘng c a mĂŹnh.
  • 14. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 13 S t n cĂŽng c a cĂĄc hacker vĂ o cĂĄc d li u nh m phĂĄ ho i d li u ph c v cho cĂĄc m c Ă­ch riĂȘng nhÆ° c nh tranh khĂŽng lĂ nh m nh gi a cĂĄc doanh nghi p. CĂĄc thĂŽng tin nh y c m cĂł th b l y tr m. ThĂŽng tin c n Æ° c b o v ngay trong csdl, trĂȘn Æ° ng m ng trĂĄnh b ĂĄnh c p, b thay i. CĂĄc nh n nh sai l m v “m t mĂĄt thĂŽng tin” : ThĂŽng tin b m t thÆ° ng lĂ  do cĂĄc hacker bĂȘn ngoĂ i t nh p vĂ o vĂ  ĂĄnh c p. NhÆ°ng th c t thĂŹ 80% d li u b m t lĂ  do nh ng ngÆ° i bĂȘn trong h th ng gĂąy ra. Ch c n mĂŁ hĂła d li u lĂ  ĂŁ kh năng b o m t d li u. Th c ch t mĂŁ hĂła ch lĂ  m t bÆ° c trong m t cÆĄ ch b o m t mĂ  thĂŽi. Do Ăł, ta c n ph i cĂł cÆĄ ch b o m t thĂ­ch h p cho h th ng. M t cÆĄ ch b o m t thÆ° ng g m cĂĄc v n sau : MĂŁ hĂła d li u. CĂĄch th c trao i thĂŽng tin. CĂĄch th c lÆ°u tr thĂŽng tin. CĂĄc phÆ°ÆĄng phĂĄp ch ng th c user. CĂĄch th c nh n bi t quy n h p phĂĄp c a user i v i thĂŽng tin d li u. 1.1.2. CĂĄc chi u hÆ° ng b o m t thĂŽng tin : ThĂŽng tin thÆ° ng Æ° c lÆ°u t i cĂĄc server vĂ  Æ° c t ch c thĂ nh cĂĄc file v t lĂœ cĂł c u trĂșc vĂ  Æ° c qu n tr b ng m t h qu n tr cÆĄ s d li u thĂ­ch h p. ThĂŽng tin Æ° c truy n trĂȘn cĂĄc Æ° ng m ng s Æ° c b o v theo cĂĄc cÆĄ ch riĂȘng.
  • 15. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 14 DĂč trong hĂŹnh th c nĂ o thĂŹ thĂŽng tin u c n Æ° c b o m t theo cĂĄc chi u hÆ° ng sau: HÆ° ng b o m t NguyĂȘn t c b o m t V t lĂœ User chÆ°a Æ° c ch ng th c thĂŹ khĂŽng Æ° c phĂ©p truy c p vĂ o mĂĄy m c v t lĂœ. CĂĄ nhĂąn Qu n tr viĂȘn cĂł trĂĄch nhi m qu n tr vĂ  b o m t d li u trong h th ng. Do Ăł qu n tr viĂȘn ph i lĂ  ngÆ° i ĂĄng tin c y, cĂł tÆ° cĂĄch v o c. Th t c CĂĄc th t c dĂčng trong h th ng ph i dĂčng Ășng cĂĄc d li u theo Ășng ch c năng c a mĂŹnh. VĂ­ d m t ngÆ° i th c hi n cĂŽng vi c back up d li u thĂŹ nhi m v duy nh t c a ngÆ° i Ăł lĂ  m b o d li u back up vĂ  running. M t ngÆ° i ch u trĂĄch nhi m th c hi n t o cĂĄc bĂĄo cĂĄo v b ng lÆ°ÆĄng vĂ  bĂĄn hĂ ng thĂŹ ngÆ° i Ăł ch cĂł nhi m v ki m tra vĂ  xĂĄc nh n tĂ­nh toĂ n v n c a d li u. VĂŹ th cĂĄch qu n lĂœ khĂ©o lĂ©o nh t lĂ  phĂąn chia nhi m v , vai trĂČ cho t ng user theo Ășng ph m vi ch c năng ph n s . K thu t LÆ°u tr , truy c p, s d ng vĂ  truy n d li u ph i Æ° c an toĂ n b ng nh ng k thu t thi hĂ nh theo nh ng chĂ­nh sĂĄch phĂč h p. B ng 1.1.2 CĂĄc chi u hÆ° ng b o m t V y khi Æ°a ra m t gi i phĂĄp nĂ o, ta c n ph i cĂąn nh c th t c n th n v v n b o m t. Tuy nhiĂȘn, cĂł m t s trÆ° ng h p mĂ  v n k thu t khĂŽng th gi i quy t Æ° c. Ăł lĂ  cĂĄc v n v “b o m t trong mĂŽi trÆ° ng lĂ m vi c”. VĂ­ d , m t nhĂąn viĂȘn r i kh i bĂ n lĂ m vi c c a mĂŹnh trong m t lĂĄt vĂŹ m t lĂœ do nĂ o Ăł vĂ  m t ngÆ° i khĂĄc l i d ng xĂąm nh p ĂĄnh c p ho c thay i d li u.
  • 16. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 15 1.1.3. B o m t thĂŽng tin 1.1.3.1. B o m t thĂŽng tin truy n trong mĂŽi trÆ° ng m ng Khi d li u truy n trĂȘn Æ° ng m ng thĂŽng tin cĂł th b l y m t b t c lĂșc nĂ o. N u d li u truy n i mĂ  khĂŽng cĂł phÆ°ÆĄng phĂĄp nĂ o b o m t thĂŹ k x u d dĂ ng l y Æ° c thĂŽng tin vĂ  dĂčng nĂł vĂ o nh ng m c Ă­ch riĂȘng c a mĂŹnh. Do Ăł c n ph i cĂł nh ng phÆ°ÆĄng phĂĄp b o m t d li u trĂȘn m ng. 1.1.3.2. B o m t thĂŽng tin CSDL a) B o m t CDSL g m cĂł cĂĄc tiĂȘu chu n sau : ‱ BĂ­ m t H th ng ch cho phĂ©p m i user khi ăng nh p thĂ nh cĂŽng ch Æ° c th c hi n cĂĄc thao tĂĄc mĂ  user Ăł cĂł cĂĄc quy n th c thi thao tĂĄc. ‱ ToĂ n v n D li u ph i Æ° c b o toĂ n, khĂŽng b xĂła l i. ‱ S n sĂ ng D li u ph i luĂŽn s n sĂ ng ph c v khĂŽng Æ° c ch m tr . B o m t csdl lĂ  ch ra ai lĂ  ngÆ° i Æ° c truy c p vĂ o d li u, user Æ° c th y nh ng d li u nĂ o c a csdl, user cĂł th th c hi n cĂĄc thao tĂĄc nĂ o trĂȘn csdl, user cĂł th xem cĂĄc d li u nh y c m khi c n thi t hay khĂŽng ? b) B o m t username vĂ  password D li u trong csdl trĂȘn server luĂŽn c n Æ° c b o m t vĂ  ch cĂł m t s ngÆ° i cĂł ch c năng m i Æ° c phĂ©p truy c p vĂ  s d ng. ch ng th c m t user thĂŹ phÆ°ÆĄng phĂĄp thÆ° ng th y nh t lĂ  dĂčng m t nh danh username vĂ  password. Tuy nhiĂȘn, username vĂ  password cĂł th b ĂĄnh c p b t c lĂșc nĂ o.
  • 17. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 16 c) S truy c p b t h p phĂĄp vĂ o d li u Trong csdl thĂŹ khĂŽng ph i b t kỳ m t user nĂ o cĆ©ng cĂł quy n truy c p vĂ  th c hiĂȘn cĂĄc thao tĂĄc nhÆ° nhau. TĂčy theo m i ch c v , cĂŽng vi c, ph m vi th c hi n c a m i user mĂ  h cĂł quy n vĂ  cĂł th th c hi n m t s thao tĂĄc khĂĄc nhau trĂȘn csdl. Ăł chĂ­nh lĂ  vi c phĂąn quy n cho user. y quy n lĂ  cĂŽng vi c trao cho user, program hay process quy n Æ° c truy c p th c th ho c t p cĂĄc th c th . CĂĄc quy n nĂ y cĂł th lĂ  ch lĂ  read hay read/write. Quy n h n lĂ  s cho phĂ©p truy c p mang tĂ­nh thi hĂ nh, vĂ­ d nhÆ° quy n Æ° c truy v n trĂȘn table. Quy n h n Æ° c c p cho user theo quy t nh c a user c p cao hÆĄn (thÆ° ng lĂ  qu n tr viĂȘn Administrator). Quy n h n Æ° c c p cho user h p l k t n i csdl, thao tĂĄc trĂȘn csdl. CĂł 2 m ng quy n chĂ­nh : System Privileges Ăąy lĂ  quy n c p cao. ThÆ° ng thĂŹ cĂĄc quy n nĂ y ch Æ° c c p cho qu n tr viĂȘn vĂ  cĂĄc ngÆ° i phĂĄt tri n ng d ng. Quy n nĂ y cho phĂ©p user Æ° c phĂ©p thao tĂĄc trĂȘn toĂ n b csdl vĂ  Æ° c phĂ©p c p quy n cho cĂĄc user khĂĄc. Object Privileges Ăąy lĂ  cĂĄc quy n thao tĂĄc trĂȘn cĂĄc i tÆ° ng c a csdl nhÆ° database, table, row, column. CĂĄc quy n nĂ y bao g m cĂĄc thao tĂĄc INSERT, UPDATE, DELETE, SELECT, CREATE 

  • 18. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 17 1.2. TĂŹnh hĂŹnh an toĂ n vĂ  b o m t trĂȘn th gi i vĂ  Vi t Nam 1.2.1. TrĂȘn th gi i : nhu c u ang gia tăng Theo k t qu kh o sĂĄt do Vi n An ninh MĂĄy tĂ­nh (CSI) ph i h p v i C c i u tra LiĂȘn bang M (FBI) th c hi n v ch t i ph m vĂ  an ninh m ng, cĂĄc v ĂĄnh c p thĂŽng tin m t gĂąy thi t h i l n nh t lĂ  2,7 tri u USD m i v . CĂČn theo t Computer Economics, trong năm 2003 cĂĄc lo i sĂąu vĂ  virus mĂĄy tĂ­nh ĂŁ gĂąy thi t h i 12,5 t USD trĂȘn toĂ n c u. Trong an ninh m ng, cĂĄc doanh nghi p v a vĂ  nh (SMB) d tr thĂ nh n n nhĂąn c a cĂĄc v t n cĂŽng nh t, b i i tÆ° ng nĂ y thi u ngu n l c vĂ  i ngĆ© chuyĂȘn gia cĂŽng ngh thĂŽng tin. Ngay t i nÆ° c M , theo s li u th ng kĂȘ, ch 35% cĂĄc doanh nghi p v a vĂ  nh lĂ  cĂł s d ng h th ng tÆ° ng l a (firewalls). CĆ©ng gi ng nhÆ° mĂŽi trÆ° ng an ninh nĂłi chung, mĂŽi trÆ° ng an ninh trĂȘn Internet ang ngĂ y cĂ ng tr nĂȘn ph c t p. V n b o m t h th ng vĂ  song hĂ nh v i nĂł lĂ  v n lÆ°u tr thĂŽng tin ang Ăłng vai trĂČ ngĂ y cĂ ng quan tr ng. Theo nhĂłm nghiĂȘn c u th trÆ° ng Meta Group: Hi n t i ch cĂł kho ng 3-4% ngĂąn sĂĄch CNTT dĂ nh cho v n b o m t vĂ  an toĂ n thĂŽng tin, nhÆ°ng theo d bĂĄo n năm 2006 t l nĂ y s tăng lĂȘn 8-10%. Th trÆ° ng an ninh CNTT ChĂąu ĂĄ d tĂ­nh cĆ©ng s t m c tăng trÆ° ng 22% t năm 2003 n năm 2008, con s g p g n 2 l n t l tăng trÆ° ng c a th trÆ° ng d ch v CNTT nĂłi chung. CĂČn theo s li u t hĂŁng nghiĂȘn c u th trÆ° ng IDC, th trÆ° ng an ninh, b o m t ChĂąu ĂĄ-ThĂĄi BĂŹnh DÆ°ÆĄng (tr Nh t B n) cĆ©ng s tăng trÆ° ng
  • 19. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 18 15% t năm 2002 n năm 2007 vĂ  s t t ng giĂĄ tr 4,1 t USD vĂ o năm 2007. 1.2.2. Vi t Nam ChÆ°a bao gi v n b o m t vĂ  an toĂ n d li u l i Æ° c coi tr ng nhÆ° hi n nay, trong b i c nh m ng mĂĄy tĂ­nh phĂĄ b m i ngăn cĂĄch, “m i lĂșc, m i nÆĄi” ngÆ° i ta u cĂł th l y Æ° c thĂŽng tin c n thi t. ThĂŽng tin ĂŁ tr thĂ nh m t trong nh ng ngu n tĂ i nguyĂȘn quan tr ng nh t v i t ch c, doanh nghi p. Con ngÆ° i t p trung nhi u s c l c, trĂ­ tu cĂł thĂŽng tin nhanh, chĂ­nh xĂĄc. Ai cĂł thĂŽng tin, k Ăł chi n th ng. B i v y, thĂŽng tin ĂŁ tr thĂ nh m c tiĂȘu săn u i c a nh ng ai mu n vÆ° t lĂȘn, vĂ  ng th i lĂ  cĂĄi mĂ  ai cĆ©ng c g ng gi . V i s phĂĄt tri n c a CNTT, h u nhÆ° m i th u Æ° c “s hĂła”, c bi t lĂ  thĂŽng tin. So n th o h p ng b ng Word, g i thÆ° qua e-mail, thanh toĂĄn v i ngĂąn hĂ ng b ng th tĂ­n d ng ...; nĂłi chung m i ngÆ° i lĂ m vi c, giao d ch u qua mĂĄy tĂ­nh vĂ  m ng. Ta khĂŽng th lĂ m khĂĄc i b i s b cĂŽ l p, s luĂŽn ch m hÆĄn, m t kh năng c nh tranh vĂ  cu i cĂčng s thua cu c. DĂč n m trong mĂĄy tĂ­nh hay kĂ©t s t thĂŹ d li u c a ngÆ° i dĂčng v n lĂ  m c tiĂȘu nh m t i c a cĂĄc i th c nh tranh. Trong trÆ° ng h p nĂ y, “tin t c” lĂ  nh ng tay ĂĄng ng i nh t. NgÆ° i dĂčng ph i bi t cĂĄch phĂČng ch ng. T i VN, v n BM h th ng thĂŽng tin b t u nĂłng d n lĂȘn vĂ  ang s n sĂ ng cho nhu c u BM t quy mĂŽ nh cho n l n.
  • 20. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 19 1.3. Xu hÆ° ng mĂŁ ngu n m 1.3.1. L i Ă­ch c a ph n m m mĂŁ ngu n m (PMNM) c tĂ­nh chia s mĂŁ ngu n khi n PMNM cĂł vai trĂČ th c s quan tr ng trong lÄ©nh v c Ă o t o vĂ  nghiĂȘn c u. Nh ng thÆ° vi n mĂŁ ngu n m s giĂșp sinh viĂȘn hi u rĂ” vĂ  nhanh chĂłng n m b t Æ° c cĂŽng ngh , rĂșt ng n Æ° c th i gian Ă o t o sinh viĂȘn CNTT. KhĂŽng ch trong lÄ©nh v c giĂĄo d c, Ă o t o hay nghiĂȘn c u, i u ĂĄng ng c nhiĂȘn lĂ  PMNM cĆ©ng h a h n nh ng cÆĄ h i kinh doanh khĂŽng nh i v i cĂĄc doanh nghi p, nh ng ngÆ° i luĂŽn t v n l i Ă­ch lĂȘn hĂ ng u. CÆĄ h i kinh doanh mĂ  PMNM mang l i khĂŽng nh hÆĄn nh ng cÆĄ h i kinh doanh d a trĂȘn n n t ng c a Microsoft Windows. 1.3.2. Vi t Nam PMNM ĂŁ t ng Æ° c vĂ­ nhÆ° l i thoĂĄt hi m c a Vi t Nam trÆ° c ĂĄp l c v b n quy n s h u trĂ­ tu trong quĂĄ trĂŹnh h i nh p qu c t . Khi nÆ° c nhĂ  chu n b gia nh p T ch c ThÆ°ÆĄng m i Th gi i WTO, Khu v c M u d ch T do (AFTA) vĂ  th c hi n Hi p nh ThÆ°ÆĄng m i Vi t-M thĂŹ PMNM lĂ  Æ° ng thoĂĄt hi m duy nh t thoĂĄt kh i tĂŹnh tr ng vi ph m b n quy n ph n m m Vi t Nam H i th o qu c gia l n th nh t v PMNM Æ° c t ch c thĂĄng 12/2000 cĂł th Æ° c xem nhÆ° m t c t m c ĂĄnh d u s xu t hi n chĂ­nh th c c a PMNM t i Vi t Nam. Hai năm sau Ăł, H i th o Qu c gia v PMNM l n th hai, thĂĄng 12/2002, Æ° c coi lĂ  bÆ° c chu n b vĂ  nĂąng cao nh n th c v PMNM. ChĂ­nh t i H i th o nĂ y ĂŁ cho th y PMNM ang lĂ  m t xu hÆ° ng phĂĄt tri n trĂȘn th gi i : CĂĄc t ch c qu c t u khuy n cĂĄo s d ng PMNM.
  • 21. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 20 CĂĄc nÆ° c ChĂąu Á nhÆ° Trung Qu c, HĂ n Qu c, Nh t B n ang phĂĄt tri n r t m nh PMNM. Malaysia g n Ăąy ĂŁ u tÆ° 30 tri u USD cho PMNM. Năm 2003 Nh t B n cĆ©ng dĂ nh 10 tri u USD cho PMNM. KhĂŽng ch c p ChĂ­nh ph , nhi u cĂŽng ty a qu c gia nhÆ° Oracle, IBM, HP... cĆ©ng ang phĂĄt tri n m nh theo xu hÆ° ng PMNM. IBM hi n cĂł m t trung tĂąm v i 700 ngÆ° i chuyĂȘn nghiĂȘn c u v PMNM. Quy t nh s 235/Q -TTg, ngĂ y 2/3/2004, c a Th tÆ° ng ChĂ­nh ph phĂȘ duy t D ĂĄn t ng th “ ng d ng vĂ  phĂĄt tri n ph n m m ngu n m Vi t Nam giai o n 2004-2008” lĂ  i m m c ĂĄnh d u vi c b t u tri n khai PMNM t i Vi t Nam. 1.4. M c tiĂȘu c a tĂ i V n b o m t h th ng vĂ  song hĂ nh v i nĂł lĂ  v n lÆ°u tr thĂŽng tin ang Ăłng vai trĂČ ngĂ y cĂ ng quan tr ng. i v i m t t ch c hay cĂĄ nhĂąn khi l a ch n m t h qu n tr CSDL, ngoĂ i tiĂȘu chĂ­ ch n h qu n tr cĂł quy mĂŽ phĂč h p v i l n c a CSDL thĂŹ v n b o m t c a h qu n tr Ăł cĆ©ng r t Æ° c quan tĂąm. tĂ i “TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t trĂȘn mĂŁ ngu n m c a MySQL” Æ° c th c hi n nh m m c tiĂȘu: ‱ TĂŹm hi u cĂĄc cÆĄ s lĂœ thuy t v b o m t, gi i thi u tĂłm t t m t s phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ ‱ TĂŹm hi u cÆĄ ch b o m t c a m t h qu n tr mĂŁ ngu n m : MySQL. ‱ TĂŹm hi u, phĂąn tĂ­ch, ĂĄnh giĂĄ thu t toĂĄn mĂŁ hoĂĄ password trong MySQL ‱ TrĂȘn cÆĄ s nghiĂȘn c u m t s gi i thu t m i, cĂł an toĂ n cao, xĂąy d ng m t s cÆĄ ch mĂŁ hoĂĄ password m i c a riĂȘng mĂŹnh trong MySQL.
  • 22. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 21 ChÆ°ÆĄng 2.CĂĄc cÆĄ s lĂœ thuy t b o m t N i dung c a chÆ°ÆĄng 2 s trĂŹnh bĂ y tĂłm t t m t s phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ hi n nay, phĂąn lo i cĆ©ng nhÆ° ĂĄnh giĂĄ Æ°u khuy t i m c a t ng phÆ°ÆĄng phĂĄp. c bi t, trong chÆ°ÆĄng nĂ y s gi i thi u khĂĄ kÄ© v hĂ m BĂM, t o cÆĄ s ti n ta nghiĂȘn c u cĂĄc chÆ°ÆĄng sau. Thu t toĂĄn mĂŁ hĂła d li u hi n nay phĂąn lo i theo s khoĂĄ Æ° c dĂčng mĂŁ hoĂĄ vĂ  gi i mĂŁ cĂł 3 lo i : 1. Secret Key Cryptography (SKC) : s d ng m t khoĂĄ chung cho quĂĄ trĂŹnh mĂŁ hoĂĄ vĂ  gi i mĂŁ. 2. Public Key Cryptography (PKC) : s d ng m t khoĂĄ cho ph n mĂŁ hoĂĄ vĂ  m t khoĂĄ khĂĄc gi i mĂŁ. 3. Hash Functions: s d ng m t phĂ©p bi n i mĂŁ hĂła thĂŽng tin m t chi u. i u nĂ y cĂł nghÄ©a lĂ  m t khi thĂŽng tin ĂŁ Æ° c mĂŁ hĂła thĂŹ khĂŽng th cĂł cĂĄch nĂ o l y l i Æ° c thĂŽng tin ban u. 2.1. Secret Key Cryptography(H MĂŁ hoĂĄ quy Æ° c) 2.1.1. Gi i thi u HĂŹnh 2.1.1 Secret Key Cryptography CĂĄc th Ăąt toĂĄn mĂŁ hoĂĄ quy Æ° c (hay mĂŁ khoĂĄ bĂ­ m t hay h mĂŁ i x ng) dĂčng m t khoĂĄ bĂ­ m t ÆĄn mĂŁ hoĂĄ vĂ  gi i mĂŁ d li u. D li u ngu n x Æ° c ngÆ° i g i A mĂŁ hoĂĄ b ng thu t toĂĄn mĂŁ hoĂĄ quy Æ° c v i khoĂĄ bĂ­ m t k Æ° c th ng nh t trÆ° c gi a ngÆ° i g i A vĂ  ngÆ° i nh n B. D li u sau khi mĂŁ hoĂĄ y s
  • 23. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 22 Æ° c truy n cho ngÆ° i nh n B. Sau khi nh n, B s s d ng khoĂĄ bĂ­ m t k gi i mĂŁ y cĂł Æ° c thĂŽng i p ngu n x ban u. N u m t ngÆ° i C cĂł Æ° c khoĂĄ bĂ­ m t k thĂŹ C s cĂł kh năng gi i mĂŁ t t c d li u c a A b ng khoĂĄ k r i thay i d li u vĂ  mĂŁ hĂła l i b ng khĂła k sau Ăł g i cho B. Do Ăł v n b o m t thĂŽng tin Æ° c mĂŁ hoĂĄ ph thu c vĂ o vi c gi bĂ­ m t n i dung mĂŁ khoĂĄ k. MĂŁ hoĂĄ khoĂĄ bĂ­ m t cĆ©ng Æ° c g i lĂ  mĂŁ hoĂĄ khoĂĄ i x ng vĂŹ ch dĂčng m t khoĂĄ cho mĂŁ hoĂĄ l n gi i mĂŁ. Thu t toĂĄn mĂŁ hoĂĄ nĂ y cĂł t c c c nhanh vĂ  thĂ­ch h p i v i vi c mĂŁ hoĂĄ kh i lÆ° ng d li u l n. 2.1.2. PhĂąn lo i thu t toĂĄn 2.1.2.1. MĂŁ hĂła theo chu i bit Trong h mĂŁ hoĂĄ theo chu i bit, thĂŽng i p lĂ  cĂĄc bit vĂ  khoĂĄ Æ° c phĂĄt sinh b i m t b phĂĄt sinh ng u nhiĂȘn. B ng rĂ” mĂŁ hoĂĄ theo t ng bÆ° c Æ° c b n mĂŁ. 2.1.2.2. MĂŁ hĂła theo ch CĂĄc h mĂŁ ban u d a trĂȘn cÆĄ s phĂ©p bi n i m t ch cĂĄi trong b ng rĂ” thĂ nh m t ch cĂĄi khĂĄc trong b ng mĂŁ. K thu t mĂŁ hoĂĄ nĂ y cĂČn Æ° c g i lĂ  mĂŁ hoĂĄ thay th . th c hi n phÆ°ÆĄng phĂĄp nĂ y, trÆ° c tiĂȘn c n nh nghÄ©a 1 b ng mĂŁ (nhÆ° b ng mĂŁ ASCII) s hoĂĄ b ng rĂ”, vĂŹ cĂĄc phĂ©p toĂĄn s lĂ m vi c trĂȘn cĂĄc s thay vĂŹ cĂĄc kĂ­ t . 2.1.2.3. MĂŁ hĂła theo kh i Ta th y, h mĂŁ hoĂĄ theo ch cĂł an toĂ n khĂŽng cao vĂŹ m t ch cĂĄi luĂŽn Æ° c mĂŁ hoĂĄ thĂ nh 1 ch cĂĄi khĂĄc trong b ng mĂŁ. V i kh năng c a mĂĄy tĂ­nh
  • 24. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 23 hi n i, khĂŽng khĂł cĂł th gi i mĂŁ 1 b ng mĂŁ theo ch nhÆ° th . tăng an toĂ n, ta cĂł th mĂŁ hoĂĄ theo kh i. Trong mĂŁ hoĂĄ theo kh i, b n rĂ” vĂ  b ng mĂŁ Æ° c chia thĂ nh t ng kh i kĂ­ t trÆ° c khi thi hĂ nh mĂŁ hoĂĄ vĂ  gi i mĂŁ. 2.1.2.4. MĂŁ mĆ© Do Pohlig vĂ  Hellman gi i thi u năm 1976. CĂł th Æ° c mĂŽ t nhÆ° sau : Ch n p lĂ  1 s nguyĂȘn t , M lĂ  1 s tÆ°ÆĄng ng c a b n rĂ” v i m i kĂ­ t trong b ng rĂ” Æ° c thay th b ng mĂŁ tÆ°ÆĄng ng nhÆ° trong b ng. ‘’ A B C D E F G H I J K 00 01 02 03 04 05 06 07 08 09 10 11 2.1.3. M t vĂ i thu t toĂĄn SKC Æ° c s d ng ngĂ y nay Nh ng thu t toĂĄn SKC Æ° c s d ng ngĂ y nay : Data Encryption Standard (DES), Triple-DES (3DES), DESX, RC1,RC2, RC3, RC4, RC5, RC6, Blowfish, Twofish, Camellia, MISTY1, SAFER, KASUMI, SkipJack. 2.1.4. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła quy Æ° c M c dĂč h th ng mĂŁ hoĂĄ quy Æ° c cung c p khĂĄ nhi u thu t toĂĄn mĂŁ hoĂĄ cĂł b o m t r t cao nhÆ°ng nĂł cĂł cĂĄc h n ch sau : H n ch v kh năng trao i khoĂĄ : do c ngÆ° i nh n vĂ  ngÆ° i g i u c n ph i bi t khoĂĄ nĂȘn phĂĄt sinh v n an toĂ n khi truy n khoĂĄ. N u khoĂĄ b ĂĄnh c p trong quĂĄ trĂŹnh truy n khoĂĄ thĂŹ thĂŽng tin Æ° c mĂŁ hoĂĄ b ng khoĂĄ Ăł khĂŽng cĂČn Æ° c b o m t vĂ  an toĂ n. NgoĂ i ra v i mĂŁ hoĂĄ quy Æ° c khĂŽng m b o ngu n g c thĂŽng tin Æ° c g i nĂȘn khĂŽng bi t khĂĄo cĂł b m t c p hay khĂŽng.
  • 25. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 24 H n ch kh năng qu n lĂœ khoĂĄ : i v i t ng ngÆ° i c n liĂȘn l c vĂ  v i t ng n i dung thĂŽng tin c n ph i cĂł m t khoĂĄ quy Æ° c mĂŁ hoĂĄ vĂ  gi i mĂŁ. Do Ăł n u trĂȘn 1 m ng liĂȘn l c l n, s lÆ° ng khoĂĄ c n ph i lÆ°u gi r t nhi u nĂȘn n y sinh v n qu n lĂœ khoĂĄ quy Æ° c vĂ  b o m t thi t b khoĂĄ quy Æ° c. 2.2. Public Key Crytography (MĂŁ hoĂĄ cĂŽng khai) 2.2.1. Gi i thi u chung HĂŹnh 2.2.1 Public Key Crytography NgÆ° i g i A s d ng khoĂĄ cĂŽng khai (h mĂŁ khĂŽng i x ng) pk c a ngÆ° i nh n B mĂŁ hoĂĄ d li u g c x. D li u sau khi Æ° c mĂŁ hoĂĄ, y Æ° c truy n cho B. NgÆ° i nh n B sau khi nh n Æ° c y s s d ng khoĂĄ riĂȘng sk c a mĂŹnh gi i mĂŁ d li u vĂ  nh n l i d li u ngu n x ban u. N u 1 ngÆ° i C cĂł Æ° c d li u ĂŁ mĂŁ hoĂĄ y vĂ  khoĂĄ cĂŽng khai pk thĂŹ C v n khĂŽng th gi i mĂŁ Æ° c y. Do khoĂĄ riĂȘng sk Æ° c gi bĂ­ m t hoĂ n toĂ n, ch cĂł NgÆ° i B bi t Æ° c sk vĂ  sk khĂŽng Æ° c giao d ch hay truy n i nĂȘn r i ro d n n vi c khoĂĄ sk b ĂĄnh c p lĂ  r t th p. Gi i thi u m t s thu t toĂĄn : EEC, RSA 2.2.2. ĂĄnh giĂĄ phÆ°ÆĄng phĂĄp mĂŁ hĂła cĂŽng khai H th ng mĂŁ hĂła khĂła cĂŽng khai ra i ĂŁ gi i quy t cĂĄc h n ch c a mĂŁ hĂła quy Æ° c. MĂŁ hĂła khĂła cĂŽng khai s d ng m t c p khĂła, m t khĂła (thĂŽng thÆ° ng
  • 26. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 25 lĂ  khĂła riĂȘng) dĂčng mĂŁ hĂła vĂ  m t khĂła (khĂła riĂȘng) dĂčng gi i mĂŁ. MĂŁ hĂła khĂła cĂŽng khai giĂșp trĂĄnh b t n cĂŽng khi trao i khĂła do khĂła gi i mĂŁ (khĂła riĂȘng) khĂŽng c n ph i truy n ho c chia s v i ngÆ° i khĂĄc. NgoĂ i ra, m i ngÆ° i ch c n s h u m t c p khĂła cĂŽng khai – khĂła riĂȘng vĂ  ngÆ° i g i thĂŽng tin ch c n gi khĂła cĂŽng khai c a ngÆ° i nh n do Ăł s lÆ° ng khĂła c n ph i qu n lĂœ gi m khĂĄ nhi u. M i ngÆ° i ch c n lÆ°u tr b o m t m t khĂła riĂȘng c a chĂ­nh mĂŹnh. Tuy nhiĂȘn, do nhu c u mĂŁ hĂła vĂ  gi i mĂŁ b ng hai khĂła khĂĄc nhau trong cĂčng m t c p khĂła nĂȘn m b o b o m t, kĂ­ch thÆ° c khĂła cĂŽng khai – khĂła riĂȘng l n hÆĄn r t nhi u so v i khĂła cĂŽng khai. Do Ăł t c mĂŁ hĂła khĂła cĂŽng khai ch m hÆĄn t c mĂŁ hĂła khĂła quy Æ° c. T c mĂŁ hĂła b ng ph n m m c a thu t toĂĄn DES nhanh hÆĄn kho ng 100 l n so v i mĂŁ hĂła RSA v i cĂčng m c b o m t. KĂ­ch thÆ° c khĂła (tĂ­nh b ng bit) KhĂła cĂŽng khai 56 80 112 128 192 256 RSA/DSA 512 1K 2K 3K 7.5K 15K ECC 160 224 256 384 512 B ng 2.2.2 : KĂ­ch thÆ° c khĂła gi a mĂŁ hĂła quy Æ° c vĂ  mĂŁ hĂła khĂła cĂŽng khai v i cĂčng m c b o m t.
  • 27. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 26 2.3. Hash Function (hĂ m Băm) 2.3.1. Gi i thi u hĂ m Băm HĂŹnh 2.3.1 Hash Function HĂ m băm m t mĂŁ lĂ  hĂ m toĂĄn h c chuy n i m t thĂŽng i p cĂł dĂ i b t kỳ thĂ nh m t dĂŁy bit cĂł dĂ i c nh (tĂčy thu c vĂ o thu t toĂĄn băm). DĂŁy bit nĂ y Æ° c g i lĂ  thĂŽng i p rĂșt g n (message digest) hay giĂĄ tr băm (hash value), i di n cho thĂŽng i p ban u. D dĂ ng nh n th y r ng hĂ m băm h khĂŽng ph i lĂ  m t song ĂĄnh. Do Ăł, v i thĂŽng i p x b t kỳ, t n t i thĂŽng i p x’ ≠ x sao cho h(x) = h(x’). LĂșc nĂ y, ta nĂłi r ng “cĂł s ng x y ra”. M t hĂ m băm h Æ° c g i lĂ  an toĂ n (hay “ít b ng ”) khi khĂŽng th xĂĄc nh Æ° c (b ng cĂĄch tĂ­nh toĂĄn) c p thĂŽng i p x vĂ  x’ th a mĂŁn x ≠ x’ vĂ  h(x) = h(x’). TrĂȘn th c t , cĂĄc thu t toĂĄn băm lĂ  hĂ m m t chi u, do Ăł, r t khĂł xĂąy d ng l i thĂŽng i p ban u t thĂŽng i p rĂșt g n. HĂ m băm giĂșp xĂĄc nh Æ° c tĂ­nh toĂ n v n d li u c a thĂŽng tin : m i thay i, dĂč lĂ  r t nh , trĂȘn thĂŽng i p cho trÆ° c, vĂ­ d nhÆ° i giĂĄ tr 1 bit, u lĂ m thay i thĂŽng i p rĂșt g n tÆ°ÆĄng ng. TĂ­nh ch t nĂ y h u Ă­ch trong vi c phĂĄt sinh, ki m tra ch kĂœ i n t , cĂĄc o n mĂŁ ch ng nh n thĂŽng i p, phĂĄt sinh s ng u nhiĂȘn, t o ra khĂła cho quĂĄ trĂŹnh mĂŁ hĂła

  • 28. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 27 HĂ m BĂM Æ° c dĂčng trong ch kĂœ i n t . M t c tĂ­nh cÆĄ b n c a hĂ m BĂM lĂ  vi c t o mĂŁ khĂła thĂŽng i p r t d nhÆ°ng vi c phĂĄ mĂŁ chuy n ngÆ° c mĂŁ thĂŽng i p thĂ nh b n rĂ” ban u r t khĂł n u khĂŽng mu n nĂłi lĂ  khĂŽng th . 2.3.2. TĂ­nh ch t c a hĂ m băm 2.3.2.1. TĂ­nh m t chi u HĂ m băm Æ° c xem lĂ  hĂ m m t chi u khi cho trÆ° c giĂĄ tr băm, khĂŽng th tĂĄi t o l i thĂŽng i p ban u, hay cĂČn g i lĂ  “ti n nh” (“pre-image”). NhÆ° v y, trong trÆ° ng h p lĂœ tÆ° ng, c n ph i th c hi n hĂ m băm cho kho ng 2n thĂŽng i p tĂŹm ra Æ° c “ti n nh” tÆ°ÆĄng ng v i m t giĂĄ tr băm. N u tĂŹm ra Æ° c m t phÆ°ÆĄng phĂĄp t n cĂŽng cho phĂ©p xĂĄc nh Æ° c “ti n nh” tÆ°ÆĄng ng v i m t giĂĄ tr băm cho trÆ° c thĂŹ thu t toĂĄn băm s khĂŽng cĂČn an toĂ n n a. CĂĄch t n cĂŽng nh m t o ra m t thĂŽng i p khĂĄc v i thĂŽng i p ban u nhÆ°ng cĂł cĂčng giĂĄ tr băm g i lĂ  t n cĂŽng “ti n nh th hai” (second pre- image attack). 2.3.2.2. TĂ­nh an toĂ n c a hĂ m băm i v i hi n tÆ° ng ng HĂ m băm Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng ng khi r t khĂł tĂŹm Æ° c hai thĂŽng i p cĂł cĂčng giĂĄ tr băm. Nh n xĂ©t : Trong m t t p h p mĂ  cĂĄc ph n t mang m t trong N giĂĄ tr cho trÆ° c v i xĂĄc su t b ng nhau, chĂșng ta c n kho ng N phĂ©p th ng u nhiĂȘn tĂŹm ra m t c p ph n t cĂł cĂčng giĂĄ tr . NhÆ° v y, phÆ°ÆĄng phĂĄp hĂ m băm Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng ng n u chÆ°a cĂł phÆ°ÆĄng phĂĄp t n cĂŽng nĂ o cĂł th tĂŹm ra c p thĂŽng i p
  • 29. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 28 cĂł cĂčng giĂĄ tr hĂ m băm v i s lÆ° ng tĂ­nh toĂĄn Ă­t hÆĄn ĂĄng k so v i ngÆ° ng 2n/2 , v i n lĂ  kĂ­ch thÆ° c (tĂ­nh b ng bit) c a giĂĄ tr băm. PhÆ°ÆĄng phĂĄp t n cĂŽng d a vĂ o ng : ‱ TĂŹm ra 2 thĂŽng i p cĂł n i dung khĂĄc nhau nhÆ°ng cĂčng giĂĄ tr băm ‱ KĂœ trĂȘn m t thĂŽng i p, sau Ăł, ngÆ° i kĂœ s khĂŽng th a nh n Ăąy lĂ  ch kĂœ c a mĂŹnh mĂ  nĂłi r ng mĂŹnh ĂŁ kĂœ trĂȘn m t thĂŽng i p khĂĄc. NhÆ° v y, c n ph i ch n 2 thĂŽng i p “ ng ” v i nhau trÆ° c khi kĂœ. 2.3.3. C u trĂșc c a hĂ m băm H u h t cĂĄc hĂ m băm m t mĂŁ u cĂł c u trĂșc gi i thu t nhÆ° sau : ‱ Cho trÆ° c m t thĂŽng i p M cĂł dĂ i b t kỳ. TĂčy theo thu t toĂĄn Æ° c s d ng, chĂșng ta cĂł th c n b sung m t s bit vĂ o thĂŽng i p nĂ y nh n Æ° c thĂŽng i p cĂł dĂ i lĂ  b i s c a m t h ng s cho trÆ° c. Chia nh thĂŽng i p thĂ nh t ng kh i cĂł kĂ­ch thÆ° c b ng nhau: M1, M2, 
Ms ‱ G i H lĂ  tr ng thĂĄi cĂł kĂ­ch thÆ° c n bit, f lĂ  “hĂ m nĂ©n” th c hi n thao tĂĄc tr n kh i d li u v i tr ng thĂĄi hi n hĂ nh Kh i gĂĄn H0 b ng m t vector kh i t o nĂ o Ăł Hi = f(Hi-1, Mi) v i i = 1, 2, 3, 
, s Hs chĂ­nh lĂ  thĂŽng i p rĂșt g n c a thĂŽng i p M ban u 2.3.4. Gi i thi u m t s hĂ m băm HĂ m băm lĂ  n n t ng cho nhi u ng d ng mĂŁ hĂła. CĂł nhi u thu t toĂĄn th c hi n hĂ m băm, trong s Ăł, phÆ°ÆĄng phĂĄp SHA-1 vĂ  MD5 thÆ° ng Æ° c s d ng khĂĄ ph bi n t th p niĂȘn 1990 n nay.
  • 30. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 29 NgĂ y 26/08/2002, Vi n TiĂȘu chu n vĂ  CĂŽng ngh qu c gia c a Hoa Kỳ (National Institute of Standard and Technology - NIST) ĂŁ xu t h th ng chu n hĂ m băm an toĂ n (Secure Hash Standard) g m 4 thu t toĂĄn hĂ m băm SHA-1, SHA-256, SHA-384, SHA-512. n 25/03/2004, NIST ĂŁ ch p nh n thĂȘm thu t toĂĄn hĂ m băm SHA-224 vĂ o h th ng chu n hĂ m băm. Tiger ra i năm 1996 b i Ross Anderson vĂ  Eli Biham. HĂ m BĂM Whirlpool do Paul S.L.M Barreto vĂ  Vincent Rijment xu t năm 2001 vĂ  Æ° c cĂŽng nh n tĂ­nh b o m t t i h i th o b o m t NESSIE t i Lund, Th y i n vĂ o ngĂ y 26/02/2003, t chu n ISO ISO/IEC 10118-3.
  • 31. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 30 ChÆ°ÆĄng 3.H qu n tr cÆĄ s d li u MySQL TrĂŹnh bĂ y khĂĄi quĂĄt v h qu n tr cÆĄ s d li u MySQL. Trong chÆ°ÆĄng nĂ y, cÆĄ ch b o m t c a MySQL s Æ° c trĂŹnh bĂ y c th . CÆĄ ch b o m t trong mĂŽi trÆ° ng m ng, trong cÆĄ s d li u cĆ©ng nhÆ° cĂĄch lÆ°u tr password, quĂĄ trĂŹnh ki m tra password, cÆĄ ch phĂąn quy n s Æ° c trĂŹnh bĂ y trong chÆ°ÆĄng nĂ y. 3.1. Gi i thi u h qu n tr cÆĄ s d li u MySQL 3.1.1. Gi i thi u MySQL lĂ  1 h qu n tr cÆĄ s d li u quan h mĂŁ ngu n m ph bi n nh t hi n nay. NĂł Æ° c phĂĄt tri n, phĂąn chia, h tr b i MySQL AB. Ăąy lĂ  m t cĂŽng ty thÆ°ÆĄng m i, Æ° c thĂ nh l p b i nhĂłm phĂĄt tri n MySQL. MySQL server nhanh, ĂĄng ting c y, d s d ng. S d ng mĂŽi trÆ° ng client/server c l p ho c nhĂșng vĂ o cĂĄc chÆ°ÆĄng trĂŹnh khĂĄc. Hi n nay MySQL Æ° c dĂčng trĂȘn 4 tri u b n cĂ i t trĂȘn toĂ n th gi i. CĂĄc cĂŽng ty l n cĂł th truy c p mĂŁ ngu n MySQL t o ra m t b n khĂĄc dĂčng n i b cĂŽng ty v i m c Ă­ch phi thÆ°ÆĄng m i mĂ  khĂŽng s vi ph m b n quy n. T c MySQL khĂĄ nhanh, b ng c a MySQL lĂȘn n 8 GB dĂčng cho cĂĄc cĂŽng ty khĂŽng quĂĄ l n. CĂĄc tĂ­nh năng m nh c a MySQL ang Æ° c b sung d n qua t ng phiĂȘn b n. PhiĂȘn b n 4.1 hi n t i khĂŽng Ă­t hÆĄn tĂ­nh năng lĂ  m y so v i SQL Server. S nhĂ  phĂĄt tri n dĂčng MySQL lĂ  r t l n trĂȘn th gi i cho nĂȘn s cĂĄc ng d ng ch y trĂȘn MySQL lĂ  nhi u vĂ  cĆ©ng mi n phĂ­.
  • 32. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 31 CĂł m t s phĂąn bi t khĂĄc r t quan tr ng ngÆ° i ta ch n MySQL, Ăł lĂ  t c . M c dĂč MySQL x lĂœ transaction khĂŽng t t nhÆ° Oracle, nhÆ°ng v t c , nĂł ch y nhanh hÆĄn Oracle r t nhi u. C ng thĂȘm mĂŁ ngu n m vĂ  mi n phĂ­, nĂł lĂ  gi i phĂĄp database t t nh t cho cĂĄc website, ngo i tr cĂĄc website l n c n x lĂœ cĂĄc tĂĄc v c bi t. 3.1.2. B n ch t ‱ ChÆ°ÆĄng trĂŹnh Æ° c vi t b ng C vĂ  C++. ‱ Æ° c ki m tra b ng cĂĄc trĂŹnh biĂȘn d ch khĂĄc nhau. ‱ LĂ m vi c trĂȘn nhi u n n khĂĄc nhau. ‱ S d ng Automake, Autoconf, vĂ  libtool t o tĂ­nh năng ng. ‱ CĂĄc hĂ m API cho cĂł giĂĄ tr trĂȘn C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, vĂ  Tcl. ‱ Nh ng ti n trĂŹnh nhĂąn (kernel thread) s d ng a ti n trĂŹnh nĂȘn cĂł th s d ng nhi u CPU n u ngÆ° i dĂčng cĂł. ‱ H th ng c p phĂĄt b nh d a trĂȘn ti n trĂŹnh r t nhanh. ‱ CĂł nh ng b ng BAM b nh trong (in_memory) Æ° c s d ng nhÆ° nh ng b ng t m. ‱ Nh ng hĂ m SQL th c thi nhanh do s d ng cĂĄc thÆ° vi n. ‱ Server cĂł giĂĄ tr nhÆ° 1 chÆ°ÆĄng trĂŹnh c l p trong mĂŽi trÆ° ng m ng client/server, cĆ©ng cĂł giĂĄ tr nhÆ° 1 thÆ° vi n cĂł th nhĂșng vĂ o cĂĄc chÆ°ÆĄng trĂŹnh ng d ng c l p.
  • 33. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 32 3.1.3. CĂĄc ki u d li u ‱ CĂĄc ki u d li u : SIGNED/UNSIGNED INTEGERS 1, 2, 3, 4, and 8 BYTES LONG FLOAT DOUBLE CHAR VARCHAR TEXT BLOB DATE TIME DATETIME TIMESTAMP YEAR SET ENUM ‱ Fixed-length vĂ  variable-length records 3.1.4. Statement vĂ  function ‱ H tr toĂ n b cĂĄc toĂĄn t vĂ  ch c năng trong cĂąu l nh truy v n SELECT vĂ  WHERE. VD : Mysql> SELECT CONCAT(first_name, ‘’, last_name) FROM citizen WHERE income/dependents > 10000 AND age > 30;
  • 34. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 33 ‱ H tr cĂĄc cĂąu truy v n SQL GROUP BY vĂ  ORDER BY. NgoĂ i ra cĂČn h tr cĂĄc hĂ m gom nhĂłm (COUNT(), COUNT(DISTNCT 
), AVG(), STD(), SUM(), MAX(), MIN(), GROUP_CONCAT()). ‱ H tr cho LEFT OUTER JOIN vĂ  RIGHT OUTER JOIN theo cĂș phĂĄp chu n c a SQL vĂ  ODBC. ‱ H tr vi c ghi cĂĄc alias cho table, column. ‱ DELETE, INSERT, REPLACE, UPDATE tr v s dĂČng nh hÆ° ng. ‱ CĂąu l nh c bi t MySQL: SHOW cĂł th Æ° c s d ng nh n thĂŽng tin v cÆĄ s d li u, table, index. CĂąu l nh EXPLAIN cĂł th Æ° c dĂčng ch nh cĂĄch th c gi i quy t thĂ”a cĂąu truy v n. ‱ TĂȘn cĂĄc hĂ m khĂŽng xung t v i tĂȘn cĂĄc table vĂ  column. ‱ NgÆ° i dĂčng cĂł th s a ch a cĂĄc table trong cĂĄc database khĂĄc nhau trong cĂčng m t cĂąu truy v n (nhÆ° MySQL 3.22). 3.1.5. B o m t H th ng c quy n vĂ  password r t linh ho t, an toĂ n, cho phĂ©p xĂĄc nh n d a trĂȘn mĂĄy ch (host). Password Æ° c b o m t vĂŹ t t c cĂĄc dĂČng di chuy n password Æ° c mĂŁ hoĂĄ khi user k t n i vĂ o server. 3.1.6. Kh năng m r ng vĂ  gi i h n ‱ Handles c a database l n. MySQL server v i cĂĄc database cĂł th ch a n 50 tri u record. Ta cĂł th bi t Æ° c cĂĄc user s d ng MySQL Server v i 60.000 tables vĂ  kho ng 5.000.000.000 dĂČng. ‱ CĂł th t o 64 indexes trong 1 table (32 indexes i v i cĂĄc phiĂȘn b n trÆ° c 4.1.2). M i index cĂł th g m t 1 n 16 c t hay cĂĄc ph n c a c t.
  • 35. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 34 l n t i thi u c a index lĂ  1000 bytes (500 bytes i v i cĂĄc phiĂȘn b n trÆ° c 4.1.2). M t index cĂł th s d ng ti n t (prefix) c a c t cĂł cĂĄc ki u d li u CHAR, VARCHAR, BLOB, hay TEXT. ‱ Gi i h n cĂĄc b ng trong MySQL MySQL 3.22 cĂł gi i h n c a table lĂ  4GB. V i k thu t lÆ°u tr MySIAM trong MySQL 3.23, kĂ­ch thÆ° c t i a c a table Æ° c tăng 263 byte. Operating System File-size Limit Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) Linux 2.4 (using ext3 filesystem) 4TB Solaris 9/10 16TB NetWare w/NSS filesystem 8TB win32 w/ FAT/FAT32 2GB/4GB win32 w/ NTFS 2TB (possibly larger) MacOS X w/ HFS+ 2TB B ng 3.1.6 KĂ­ch thÆ° c gi i h n c a file h th ng trong MySQL 3.1.7. K t n i ‱ Clients cĂł th k t n i v i MySQL server b ng cĂĄch s d ng nh ng socket TCP/IP trĂȘn b t kĂŹ n n nĂ o. TrĂȘn n n windows dĂČng NT, client cĂł th k t n i s d ng pipes. TrĂȘn n n Unix, clients k t n i s d ng Unix domain socket files. ‱ Windows cĂł h tr k t n i chia s b nh n u kh i ng v i l a ch n share-memory. Client cĂł th k t n i qua b nh chia s b ng cĂĄch s d ng l a ch n --protocol=memory.
  • 36. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 35 ‱ Giao di n Connector/ODBC (MyODBC) cung c p MySQL h tr cĂĄc chÆ°ÆĄng trĂŹnh client s d ng k t n i ODBC (Open Database Connectivity). ‱ Giao di n Connector/J interface cung c p MySQL h tr chÆ°ÆĄng trĂŹnh client Java s d ng k t n i JDBC. 3.1.8. M c h n nh ‱ CĂł th s d ng c p thĂŽng i p l i cho client b t kĂŹ ngĂŽn ng nĂ o do cĂł r t nhi u b kĂ­ t . ‱ D li u Æ° c lÆ°u tr theo b kĂ­ t ĂŁ ch n. 3.2. CÆĄ ch b o m t trong MySQL 3.2.1. T ng quan b o m t B o m t cÆĄ s d li u lĂ  m t y u t c n thi t trong b t kĂŹ h th ng cÆĄ s d li u nĂ o. B o m t lĂ  b o v d li u ch ng l i cĂĄc crackers, ng th i cĆ©ng b o v d li u t ngÆ° i dĂčng. VĂ­ d , ngÆ° i dĂčng cĂł th xoĂĄ, s a, xem ho c thĂȘm nh ng record mĂ  h khĂŽng Æ° c phĂ©p. trĂĄnh nh ng tĂŹnh tr ng nĂ y, ngÆ° i dĂčng cĂł th t o nĂȘn m t cÆĄ ch b o m t trĂȘn cÆĄ s d li u ngăn ch n cĂĄc thao tĂĄc mĂ  user khĂŽng Æ° c phĂ©p thao tĂĄc trĂȘn CSDL. B o m t Ăłng vai trĂČ chĂ­nh trong b t kĂŹ ng d ng nĂ o mĂ  ngÆ° i dĂčng cĂł th truy c p vĂ o Ă­t nh t m t l n. CÆĄ ch b o m t c a HQTCSDL MySQL r t t t, lĂ  m t trong cĂĄc h qu n tr cÆĄ s d li u an toĂ n nh t hi n nay. CÆĄ ch b o m t c a HQTCSDL MySQL g m hai lÄ©nh v c chĂ­nh : B o m t trong mĂŽi trÆ° ng m ng. B o m t cÆĄ s d li u.
  • 37. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 36 3.2.2. B o m t trong mĂŽi trÆ° ng m ng B t u t phiĂȘn b n 4.0.0, MySQL h tr cho cĂĄc k t n i an toĂ n gi a cĂĄc MySQL client vĂ  server dĂčng giao th c Secure Sockets Layer (SSL). C u hĂŹnh chu n c a MySQL cĂł khuynh hÆ° ng sao cho ch y nhanh nh t cĂł th , nhÆ°ng vi c mĂŁ hĂła cĂĄc k t n i khĂŽng th dĂčng m c nh. LĂ m nhÆ° th cĂł th s lĂ m cho client/server ch m hÆĄn. MĂŁ hoĂĄ d li u lĂ  thao tĂĄc CPU-intensive mĂ  ĂČi h i mĂĄy tĂ­nh c n ph i th c hi n thĂȘm m t s cĂŽng vi c vĂ  cĂł th lĂ m trĂŹ hoĂŁn cĂĄc nhi m v khĂĄc c a MySQL. i v i cĂĄc ng d ng mĂ  ĂČi h i b o m t Æ° c cung c p b i cĂĄc k t n i mĂŁ hoĂĄ, s tĂ­nh toĂĄn thĂȘm vĂ o lĂ  Æ° c cho phĂ©p. 3.2.3. CĂĄc khĂĄi ni m cÆĄ b n hi u MySQL dĂčng SSL nhÆ° th nĂ o, ta c n bi t căn b n v cĂĄc khĂĄi ni m SSL vĂ  X509. M c nh, MySQL dĂčng cĂĄc k t n i gi i mĂŁ gi a client vĂ  server. i u nĂ y cĂł nghÄ©a lĂ  m t ngÆ° i khi truy c p Æ° c vĂ o m ng thĂŹ cĂł th bi t Æ° c m i ho t ng c a ngÆ° i dĂčng vĂ  th y Æ° c t t c d li u ang Æ° c nh n hay g i i. Th m chĂ­ h cĆ©ng cĂł th thay i d li u trong khi nĂł Æ° c chuy n i gi a client vĂ  server. lĂ m tăng tĂ­nh b o m t lĂȘn m t chĂșt, ngÆ° i dĂčng cĂł th nĂ©n client/server traffic b ng cĂĄch s d ng l a ch n --compress khi g i cĂĄc chÆ°ÆĄng trĂŹnh client. Tuy nhiĂȘn, nĂł khĂŽng ĂĄnh l c hÆ° ng Æ° c attacker. Khi ngÆ° i dĂčng c n chuy n thĂŽng tin thĂŽng qua m ng theo thi t k an toĂ n, k t n i gi i mĂŁ lĂ  khĂŽng ch p nh n Æ° c. MĂŁ hoĂĄ lĂ  cĂĄch lĂ m cho b t kỳ lo i d li u nĂ o cĆ©ng khĂŽng c Æ° c. Th t ra, th c ti n yĂȘu c u thĂȘm nhi u y u t b o m t t cĂĄc thu t toĂĄn mĂŁ hoĂĄ. ChĂșng cĂł th ch ng l i nhi u cĂĄch t n cĂŽng nhÆ° thay i tr t t c a cĂĄc message ĂŁ mĂŁ hoĂĄ ho c l p l i hai l n d li u.
  • 38. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 37 ‱ SSL protocol Secure Socket Layer (SSL) protocol Æ° c t o ra b i Netscape m b o b o m t cĂĄc giao tĂĄc gi a server vĂ  client. SSL lĂ  giao th c mĂ  s d ng cĂĄc thu t toĂĄn mĂŁ hĂła khĂĄc nhau b o m r ng d li u nh n Æ° c thĂŽng qua m ng chung cĂł th lĂ  Ășng. Ăł lĂ  k thu t dĂČ tĂŹm cĂĄc d li u b l p, b m t ho c b thay i. SLL cĆ©ng k t h p ch t ch cĂĄc thu t toĂĄn cung c p s ki m tra nh n d ng s d ng chu n X509. ‱ Chu n X509 X509 lĂ m cho nĂł cĂł th nh n d ng m t ai Ăł trĂȘn m ng. NĂł khĂŽng Æ° c s d ng thĂŽng d ng nh t trong cĂĄc ng d ng i n t . Trong cĂĄc gi i h n cÆĄ b n, m t vĂ i cĂŽng ty g i nĂł “Certificate Authority” (CA : b ng ch ng nh n quy n) mĂ  thi t k cĂĄc ch ng th c i n t cho nh ng ai c n n chĂșng. CĂĄc ch ng th c ĂĄp l i cĂĄc thu t toĂĄn mĂŁ hoĂĄ b t i x ng. Ch nhĂąn c a (b ng) ch ng th c cĂł th ch ch ng th c cho party khĂĄc nhÆ° lĂ  b ng ch ng v nh n d ng. Ch ng th c g m khoĂĄ chung c a ch nhĂąn c a nĂł. B t kỳ d li u nĂ o Æ° c mĂŁ hoĂĄ v i khoĂĄ cĂŽng c ng nĂ y ch cĂł th gi i mĂŁ b ng khoĂĄ bĂ­ m t tÆ°ÆĄng ng, khoĂĄ nĂ y Æ° c gi b i ch nhĂąn c a ch ng th c. 3.2.3.1. YĂȘu c u (Requirements) s d ng cĂĄc k t n i SSL gi a MySQL server vĂ  cĂĄc chÆ°ÆĄng trĂŹnh client, h th ng c a ngÆ° i dĂčng c n ph i h tr OpenSSL vĂ  phiĂȘn b n MySQL ph i t 4.0.0 tr lĂȘn. cĂł cĂĄc k t n i b o m t lĂ m vi c v i MySQL, ngÆ° i dĂčng c n ph i th c hi n cĂĄc cĂŽng vi c sau :
  • 39. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 38 1. CĂ i t thÆ° vi n OpenSSL 2. Khi ngÆ° i dĂčng c u hĂŹnh MySQL, ch y configure script v i cĂĄc l a ch n --with-vio vĂ  -with-openssl. 3. Ph i ch c r ng ngÆ° i dĂčng nĂąng c p cĂĄc b n phĂąn quy n bao g m cĂĄc c t SSL-related trong b ng mysql.user. Ăąy lĂ  i u c n thi t n u cĂĄc b n phĂąn quy n c a ngÆ° i dĂčng cĂł t cĂĄc phiĂȘn b n trÆ° c 4.0.0. Th t c nĂąng c p 4. ki m tra mysql server cĂł h tr OpenSSL hay khĂŽng, ki m tra giĂĄ tr c a bi n h th ng have_openssl: mysql> SHOW VARIABLES LIKE 'have_openssl'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_openssl | YES | +---------------+-------+ N u giĂĄ tr lĂ  yes, server h tr cĂĄc k t n i OpenSSL 3.2.3.2. CĂĄch th c ho t ng c a SSL protocol SSL ho t ng g m 7 bÆ° c sau : 1. Client g i yĂȘu c u hay data t i server 2. Server g i l i cho client public key v i cĂĄc certificate c a nĂł. 3. Client s ki m tra certificate Æ° c c p phĂĄt b i party tin c y (thÆ° ng l root CA tin c y), Ăł lĂ  cĂĄc certificate cĂČn giĂĄ tr vĂ  certificate ph i liĂȘn quan n (site contacted). 4. Sau Ăł client s dĂčng pubic key mĂŁ hĂła secret key Æ° c l y ng u nhiĂȘn. VĂ  g i nĂł t i cho server cĂčng v i thĂŽng tin ĂŁ Æ° c mĂŁ hĂła b ng secret key.
  • 40. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 39 5. Server s gi i mĂŁ l y secret key (symmetric key) b ng chĂ­nh private key c a nĂł vĂ  dĂčng nĂł gi i mĂŁ thĂŽng tin mĂ  client ĂŁ g i qua. 6. Server l i mĂŁ hĂła thĂŽng tin mĂ  nĂł tr l i cho client b ng chĂ­nh secret key vĂ  g i thĂŽng tin ĂŁ mĂŁ hĂła cho client. 7. Client gi i mĂŁ l i thĂŽng tin tr l i v a nh n Æ° c b ng secret key vĂ  hi n th thĂŽng tin. 3.2.3.3. CĂĄc l a ch n phĂąn quy n c a SSL MySQL cĂł th ki m tra cĂĄc thu c tĂ­nh ch ng th c X509 thĂȘm vĂ o trong s ch ng th c thĂŽng thÆ° ng cÆĄ b n lĂ  d a trĂȘn username vĂ  password. i v i cĂĄc l a ch n SSL-related cho tĂ i kho n MySQL, s d ng m nd REQUIRE c a cĂș phĂĄp GRANT satement. CĂĄc kh năng khĂĄc nhau cho gi i h n cĂĄc lo i k t n i tĂ i Kho n : N u tĂ i kho n khĂŽng cĂł cĂĄc yĂȘu c u SSL hay X509, cĂĄc k t n i gi i mĂŁ Æ° c cho phĂ©p n u username vĂ  password cĂł giĂĄ tr . Tuy nhiĂȘn, cĂĄc k t n i mĂŁ hoĂĄ cĆ©ng cĂł th s d ng t i l a ch n c a client, n u client cĂł ch ng th c chĂ­nh xĂĄc vĂ  cĂĄc key file. L a ch n REQUIRE SSL gi i h n server ch cho phĂ©p cĂĄc k t n i mĂŁ hĂła SSL cho cĂĄc tĂ i kho n. ChĂș Ăœ r ng l a ch n nĂ y cĂł th b b qua n u nhÆ° cĂł b t kỳ dĂČng d li u ACL mĂ  cho phĂ©p cĂĄc k t n i non-SSL. mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' REQUIRE SSL; REQUIRE X509 cĂł nghÄ©a lĂ  client ph i cĂł ch ng th c cĂł giĂĄ tr tuy nhiĂȘn ch ng th c chĂ­nh xĂĄc, ngÆ° i yĂȘu c u, vĂ  ch lĂ  khĂŽng quan tr ng. Ch cĂł yĂȘu c u mĂ  cĂł th th c hi n ki m tra ch kĂœ c a nĂł v i m t trong cĂĄc ch ng th c CA.
  • 41. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 40 mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' REQUIRE X509; REQUIRE ISSUER 'issuer' t s h n ch i v i vi c k t n i mĂ  client ph i trĂŹnh ch ng th c X509 cĂł giĂĄ tr Æ° c c p b i CA 'issuer'. N u client trĂŹnh ch ng th c cĂł giĂĄ tr nhÆ°ng khĂĄc issuer, server lo i b k t n i. s d ng cĂĄc ch ng th c X509 luĂŽn luĂŽn bao hĂ m mĂŁ hoĂĄ, vĂŹ th l a ch n SSL lĂ  khĂŽng c n thi t. mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' -> REQUIRE ISSUER '/C=FI/ST=Some-State/L=Helsinki/ O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com' ChĂș Ăœ r ng giĂĄ tr ISSUER c n Æ° c nh p nhÆ° lĂ  m t chu i ÆĄn. REQUIRE SUBJECT 'subject' t s h n ch i v i vi c k t n i mĂ  client ph i trĂŹnh ch ng th c X509 cĂł giĂĄ tr v i ch 'subject' trĂȘn nĂł. N u client trĂŹnh ch ng th c cĂł giĂĄ tr nhÆ°ng khĂĄc ch , server lo i b k t n i. mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' -> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/ O=MySQL demo client certificate/ CN=Tonu Samuel/Email=tonu@example.com'; ChĂș Ăœ r ng giĂĄ tr SUBJECT c n Æ° c nh p nhÆ° lĂ  m t chu i ÆĄn. REQUIRE CIPHER 'cipher' c n Æ° c b o m lĂ  tĂ­nh toĂĄn vĂ  chi u dĂ i c a key Æ° c dĂčng m nh. SSL cĂł th y u n u cĂĄc thu t toĂĄn cĆ© v i cĂĄc khĂła mĂŁ hoĂĄ cĂł chi u dĂ i ng n Æ° c dĂčng. S d ng l a ch n nĂ y,
  • 42. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 41 chĂșng ta cĂł th yĂȘu c u vĂ i phÆ°ÆĄng phĂĄp tĂ­nh toĂĄn chĂ­nh xĂĄc cho phĂ©p k t n i. mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' -> REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'; CĂĄc ch n l a SUBJECT, ISSUER, vĂ  CIPHER cĂł th k t h p v i nhau trong m nh REQUIRE nhÆ° sau : mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' -> IDENTIFIED BY 'goodsecret' -> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/ O=MySQL demo client certificate/ CN=Tonu Samuel/Email=tonu@example.com' -> AND ISSUER '/C=FI/ST=Some-State/L=Helsinki/ O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com' -> AND CIPHER 'EDH-RSA-DES-CBC3-SHA'; ChĂș Ăœ r ng m i giĂĄ tr SUBJECT vĂ  ISSURE cĂł th Æ° c nh p vĂ o nhÆ° lĂ  m t chu i ÆĄn. B t u t MySQL 4.0.4, t khoĂĄ AND lĂ  ch n l a tuỳ Ăœ gi a cĂĄc l a ch n REQUIRE. CĂĄc l a ch n cĆ© hÆĄn khĂŽng quan tĂąm, nhÆ°ng khĂŽng cĂł l a ch n cĂł th Æ° c nh rĂ” 2 l n. 3.2.3.4. CĂĄc ch n l a SSL Command-line Chu i mĂŽ t cĂĄc l a ch n Æ° c dĂčng ch nh s d ng cho SSL, cĂĄc certificate file, cĂĄc key file. CĂĄc l a ch n cĂł giĂĄ tr b t u t MySQL 4.0. ChĂșng cĂł th Æ° c Æ°a ra b ng cĂĄc dĂČng l nh ho c trong option file.
  • 43. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 42 --ssl i v i server, ch n l a nĂ y ch nh lĂ  server cho phĂ©p cĂĄc k t n i SSL. i v i chÆ°ÆĄng trĂŹnh client, nĂł cho phĂ©p client k t n i vĂ o server s d ng SSL. L a ch n nĂ y khĂŽng khĂŽng cho chĂ­nh nĂł th hi n k t n i SSL Æ° c s d ng. NgÆ° i dĂčng cĆ©ng ph i ch rĂ” cĂĄc option -- ssl-ca, --ssl-cert, vĂ  --ssl-key. L a ch n nĂ y thÆ° ng Æ° c s d ng nhi u hÆĄn trong form trĂĄi ngÆ° c l i c a nĂł ch ra r ng SSL cĂł th khĂŽng Æ° c dĂčng. lĂ m nhÆ° v y, ch nh l a ch n nhÆ° --skip-ssl ho c --ssl=0. ChĂș Ăœ lĂ  s d ng –ssl khĂŽng ĂČi h i k t n i SSL. VĂ­ d , n u server ho c client Æ° c biĂȘn d ch mĂ  khĂŽng h tr SSL, k t n i gi i mĂŁ thĂŽng thÆ° ng Æ° c s d ng. CĂĄch b o m t ch c r ng k t n i SSL Æ° c dĂčng lĂ  t o tĂ i kho n trĂȘn server bao g m m nh REQUIRE SSL trong GRANT statement. Sau Ăł s d ng tĂ i kho n nĂ y k t n i vĂ o server, v i c server vĂ  client cĂł h tr SSL Æ° c enable. --ssl-ca=file_name Æ° ng d n t i file v i danh sĂĄch c a SSL CAs Æ° c tin c y. --ssl-capath=directory_name Æ° ng d n t i thÆ° m c ch a cĂĄc ch ng th c SSL CA Æ° c tin cĂąy trong nh d ng pem. --ssl-cert=file_name TĂȘn c a file ch ng th c SSL dĂčng cho thi t l p k t n i an toĂ n. --ssl-cipher=cipher_list Danh sĂĄch cĂĄc tĂ­nh toĂĄn cho Æ° c cho phĂ©p dĂčng cho mĂŁ hoĂĄ SSL, Cipher_list cĂł cĂčng nh d ng openssl ciphers command.
  • 44. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 43 --ssl-key=file_name TĂȘn c a file khoĂĄ SSL dĂčng thi t l p k t n i an toĂ n 3.2.3.5. K t n i v i MySQL Remotely t Windows v i SSH Ăąy lĂ  ghi chĂș v cĂĄch k t n i cĂł m t k t n i an toĂ n t i MySQL server xa v i SSH 1. CĂ i t SSH client trĂȘn mĂĄy Windowns c a ngÆ° i dĂčng. 2. Start Win ows SSH client c a ngÆ° i dĂčng. t Host_Name = yourmysqlserver_URL_or_IP. t userid=your_userid ăng nh p vĂ o server c a ngÆ° i dĂčng. GiĂĄ tr userid nĂ y cĂł th khĂŽng gi ng nhÆ° username c a tĂ i kho n MySQL c a ngÆ° i dĂčng. 3. t port forwarding. Th c hi n remote forward ( t local_port: 3306, remote_host: yourmysqlservername_or_ip, remote_port: 3306) ho c local forward ( t Set port: 3306, host: localhost, remote port: 3306). 4. LÆ°u m i th , m t khĂĄc ngÆ° i dĂčng s ph i th c hi n l i trong l n k ti p. 5. ăng nh p vĂ o server c a ngÆ° i dĂčng v i SSH session ngÆ° i dĂčng v a m i t o. 6. TrĂȘn mĂĄy Windows c a ngÆ° i dĂčng, start vĂ i ng d ng ODBC (ch ng h n nhÆ° Access). 7. T o m i file trong Windows vĂ  link t i MySQL s d ng Æ° ng d n ODBC cĂčng v i cĂĄch ngÆ° i dĂčng thÆ° ng hay lĂ m, tr lo i trong localhost cho MySQL host server, ch khĂŽng ph i mysql server name c a ngÆ° i dĂčng. NgÆ° i dĂčng c n ph i cĂł k t n i ODBC t i MySQL, mĂŁ hoĂĄ dĂčng SSH.
  • 45. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 44 3.2.4. B o m t cÆĄ s d li u 3.2.4.1. CÆĄ ch b o m t cÆĄ s d li u (CSDL) trong MySQL H th ng b o m t trong MySQL tÆ°ÆĄng i ph c t p. MySQL th c hi n b o m t CSDL d a vĂ o h th ng quy n truy c p. Ch c năng chĂ­nh c a h th ng i u khi n truy c p g m : Ch ng th c s k t n i c a user vĂ o MySQL Server. K t h p user v i cĂĄc quy n riĂȘng trĂȘn CSDL ch ng h n nhÆ° SELECT, UPDATE, INSERT, DELETE. th c hi n i u khi n h th ng c n ph i truy c p m t s thĂŽng tin c bi t. CĂĄc thĂŽng tin nĂ y Æ° c t ch c thĂ nh m t CSDL chĂ­nh lĂ  mysql. 3.2.4.2. CÆĄ s d li u mysql Ngay sau khi cĂ i t h qu n tr MySQL, s cĂł 2 CSDL Æ° c t o ra : mysql : lÆ°u tr cĂĄc thĂŽng tin ph c v cho vi c qu n tr . test : lĂ  csdl mĂ  b t kỳ user nĂ o cĆ©ng cĂł y cĂĄc quy n trĂȘn Ăł. Ăąy ta ch quan tĂąm n CSDL mysql. CSDL mysql lÆ°u tr thĂŽng tin chung vĂ  cĂĄc c quy n c a user ki m tra k t n i vĂ  quy n th c hi n cĂĄc cĂąu l nh. DĂł Ăł ch cĂł cĂĄc nhĂ  qu n tr CSDL m i cĂł quy n truy c p vĂ  thao tĂĄc trĂȘn CSDL nĂ y. CSDL mysql cĆ©ng gi ng nhÆ° b t kĂŹ m t CSDL nĂ o khĂĄc trong MySQL. T t c cĂĄc t p tin d li u c a nĂł lÆ°u tr d li u trong m t thÆ° m c dÆ° i thÆ° m c g c mysql (mysql parent directory). CĂĄc b ng trong CSDL mysql s d ng cho m c Ă­ch b o m t : user db host
  • 46. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 45 columns_priv tables_priv Procs_priv NgÆ° i dĂčng cĂł th th c thi cĂĄc cĂąu l nh trĂȘn cĂĄc b ng nĂ y nhÆ° b t kĂŹ b ng nĂ o trong cĂĄc CSDL bĂŹnh thÆ° ng khĂĄc. CĂĄc b ng nĂ y trong CSDL mysql cĂČn Æ° c g i lĂ  cĂĄc b ng phĂąn quy n (Grant tables). a) Gi i thi u cĂĄc b ng trong csdl mysql B ng user, db, host Table Name user db host Scope columns Host Host Host User Db Db Password User Privilege columns Select_priv Select_priv Select_priv Insert_priv Insert_priv Insert_priv Update_priv Update_priv Update_priv Delete_priv Delete_priv Delete_priv Index_priv Index_priv Index_priv Alter_priv Alter_priv Alter_priv Create_priv Create_priv Create_priv Drop_priv Drop_priv Drop_priv Grant_priv Grant_priv Grant_priv Create_view_priv Create_view_priv Create_view_priv Show_view_priv Show_view_priv Show_view_priv
  • 47. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 46 Create_routine_priv Create_routine_priv Alter_routine_priv Alter_routine_priv References_priv References_priv References_priv Reload_priv Shutdown_priv Process_priv File_priv Show_db_priv Super_priv Create_tmp_table_priv Create_tmp_table_priv Create_tmp_table_priv Lock_tables_priv Lock_tables_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Security columns ssl_type ssl_cipher X509_issuer X509_subject Resource control columns max_questions max_updates max_connections max_user_connections B ng 3.2.4.2.a Danh sĂĄch cĂĄc c t c a b ng user, host, db trong MySQL
  • 48. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 47 CĂĄc c t ssl_type, ssl_cipher, x509_issuer, and x509_subject columns Æ° c thĂȘm vĂ o t MySQL 4.0.0. CĂĄc c t Create_tmp_table_priv, Execute_priv, Lock_tables_priv, Repl_client_priv, Repl_slave_priv, Show_db_priv, Super_priv, max_questions, max_updates, and max_connections Æ° c thĂȘm vĂ o t MySQL 4.0.2. tuy nhiĂȘn Execute_priv khĂŽng Æ° c dĂčng cho t i MySQL 5.0.3. CĂĄc c t The Create_view_priv and Show_view_priv Æ° c thĂȘm vĂ o t MySQL 5.0.1. CĂĄc c t Create_routine_priv, Alter_routine_priv vĂ  max_user_connections Æ° c thĂȘm vĂ o t MySQL 5.0.3. Server s d ng thĂŽng tin trong c 3 b ng nĂ y trong c 2 giai o n i u khi n truy c p. B ng tables_priv, columns_priv Trong su t giai o n 2 c a i u khi n truy c p, server ki m tra cĂĄc yĂȘu c u ch c r ng client Æ°a ra yĂȘu c u cĂł quy n th c hi n yĂȘu c u Ăł. Khi Ăł server d a vĂ o cĂĄc thĂŽng tin trong cĂĄc b ng user, db, host. NgoĂ i ra server cĂČn tham kh o thĂȘm trong cĂĄc b ng tables_priv and columns_priv. cĂĄc b ng nĂ y cung c p cĂĄc quy n riĂȘng c n thi t i v i m c table vĂ  column.
  • 49. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 48 Table Name tables_priv columns_priv Scope columns Host Host Db Db User User Table_name Table_name Column_name Privilege columns Table_priv Column_priv Column_priv Other columns Timestamp Timestamp Grantor B ng 3.2.4.2.b B ng tables_priv, columns_priv trong MySQL C t Timestamp vĂ  Grantor khĂŽng s d ng. B ng procs_priv : T phiĂȘn 5.0.3 CSDL mysql cĂł thĂȘm b ng procs_priv. B ng nĂ y Æ° c dĂčng th m nh l i cĂĄc yĂȘu c u mĂ  Æ° c lÆ°u tr thÆ° ng xuyĂȘn. Table Name Procs_priv Scope columns Host Db User Routine_name Privilege columns Proc_priv Other columns Timestamp Grantor B ng 3.2.4.2.c Danh sĂĄch cĂĄc c t c a b ng Procs_priv trong MySQL
  • 50. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 49 b) Ch c năng vĂ  c u trĂșc c a cĂĄc column trong cĂĄc table c a csdl mysql Ch c năng M i table u cĂł cĂĄc c t ph m vi (scope columns) vĂ  cĂĄc c t quy n (privilege column). CĂĄc c t ph m vi dĂčng ch nh rĂ” ph m vi cho m i m c c a table hay chĂ­nh lĂ  ng c nh mĂ  dĂČng d li u ĂĄp d ng. CĂĄc c t quy n ch nh thĂŽng tin v cĂĄc quy n trĂȘn m t m c c a CSDL tĂčy theo t ng table. Server k t h p cĂĄc thĂŽng tin trong nhi u b ng phĂąn quy n th c hi n hoĂ n thĂ nh vi c mĂŽ t cĂĄc c quy n c a user. N i dung c a cĂĄc column CĂĄc c t ph m vi : Host : TĂȘn mĂĄy ngÆ° i dĂčng. Trong MySQL, ngÆ° i dĂčng cĂł th gi i h n s ngÆ° i truy c p d a vĂ o location mĂ  ngÆ° i Ăł k t n i. User : TĂȘn mĂ  ngÆ° i dĂčng dĂčng truy c p vĂ o MySQL Password : m t kh u ngÆ° i dung. Db : TĂȘn CSDL Table_name : TĂȘn b ng trong CSDL Column_name : TĂȘn c a c t trong m t b ng trong CSDL CĂĄc c t quy n : LÆ°u cĂĄc thĂŽng tin v cĂĄc quy n c a user trĂȘn t ng m c c a CSDL tĂčy theo nĂł thu c b ng nĂ o. C u trĂșc cĂĄc c t
  • 51. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 50 CĂĄc c t ph m vi : Column Name Type Host CHAR(60) User CHAR(16) Password CHAR(16) Db CHAR(64) Table_name CHAR(64) Column_name CHAR(64) Routine_name CHAR(64) B ng 3.2.4.2.d Ph m vi cĂĄc c t trong cĂĄc b ng i v i cĂĄc phiĂȘn b n MySQL trÆ° c 3.23, c t Db lĂ  CHAR(32) trong m t vĂ i table vĂ  lĂ  CHAR(60) trong m t s table khĂĄc. CĂĄc c t quy n Trong cĂĄc b ng user, db, host, m i quy n Æ° c li t kĂȘ trong cĂĄc c t quy n khĂĄc nhau Æ° c khai bĂĄo nhÆ° ENUM (‘N’, ‘Y’) giĂĄ tr m c nh ‘N’. Trong cĂĄc t , m i quy n cĂł th Æ° c disabled ho c enabled, v i m c nh lĂ  disabled. Trong cĂĄc table tables_priv, columns_priv vĂ  procs_priv, cĂĄc c t quy n Æ° c khai bĂĄo nhÆ° lĂ  cĂĄc c t SET columns. M i dĂČng c a table ch ra m t quy n c a user mĂ  thĂŽi. Do Ăł bi t Æ° c y cĂĄc quy n c a user trĂȘn m t table,
  • 52. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 51 column, proc c n ph i k t h p m t t p cĂĄc record. CĂĄc giĂĄ tr cĂł th lÆ°u trong cĂĄc c t : Table Name Column Name Possible Set Elements Tables_priv Table_priv 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter' Tables_priv Column_priv 'Select', 'Insert', 'Update', 'References' columns_priv Column_priv 'Select', 'Insert', 'Update', 'References' procs_priv Proc_priv 'Execute', 'Alter Routine', 'Grant' B ng 3.2.4.2.e CĂĄc giĂĄ tr trong cĂĄc c t phĂąn quy n c) S d ng cĂĄc table phĂąn quy n Server s d ng cĂĄc b ng nhÆ° sau : CĂĄc c t ph m vi trong b ng user nh rĂ” khi nĂ o thĂŹ lo i b hay cho phĂ©p cĂĄc k t n i th c hi n. Khi cĂĄc k t n i Æ° c cho phĂ©p, m t s c quy n ĂŁ c p trong cĂĄc b ng user ch cho toĂ n b cĂĄc quy n c a user. CĂĄc c quy n nĂ y Æ° c ĂĄp d ng cho t t c cĂĄc csdl trĂȘn server. CĂĄc c t ph m vi trong b ng db nh rĂ” user nĂ o Æ° c phĂ©p truy c p vĂ o cĂĄc csdl nĂ o t cĂĄc host nĂ o. CĂĄc c t c quy n nh rĂ” thao tĂĄc nĂ o Æ° c phĂ©p. M t c quy n ĂŁ c p trong m t m c csdl ĂĄp d ng vĂ o vĂ  t t c cĂĄc b ng c a nĂł. (cĂĄc quy n ĂĄp d ng i v i csdl) B ng host Æ° c dĂčng trong liĂȘn k t v i b ng db khi ngÆ° i dĂčng mu n ch ra cĂĄc dĂČng trong b ng db ĂĄp d ng vĂ o cĂĄc host riĂȘng. B ng host khĂŽng nh hÆ° ng b i cĂĄc l nh GRANT vĂ  REVOKE. CĂĄc b ng tables_priv and columns_priv thĂŹ tÆ°ÆĄng t nhÆ° b ng db, nhÆ°ng cĂł nhi u fine-grained : chĂșng ĂĄp d ng t i cĂĄc m c b ng
  • 53. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 52 vĂ  c t hÆĄn lĂ  m c csdl. CĂĄc quy n c quy n ĂŁ c p cho m c b ng thĂŹ ĂĄp d ng cho b ng vĂ  cho t t c cĂĄc c t trong b ng. CĂĄc c quy n Æ° c c p cho t i c t nĂ o thĂŹ nĂł ch cĂł tĂĄc d ng cho c t Ăł mĂ  thĂŽi. B ng procs_priv ĂĄp d ng cho cĂĄc th t c lÆ°u tr (stored routines). c quy n ĂŁ c p t i m c th t c ch ĂĄp d ng cho cĂĄc th t c ÆĄn. 3.2.4.3. CĂĄc quy n MySQL h tr CĂĄc c quy n : Privilege Column Context CREATE Create_priv databases, tables, or indexes DROP Drop_priv databases or tables GRANT Grant_priv databases, tables, or stored routines REFERENCES References_priv databases or tables ALTER Alter_priv tables DELETE Delete_priv tables INDEX Index_priv tables INSERT Insert_priv tables SELECT Select_priv tables UPDATE Update_priv tables CREATE VIEW Create_view_priv views SHOW VIEW Show_view_priv views ALTER ROUTINE Alter_routine_priv stored routines CREATE ROUTINE Create_routine_priv stored routines EXECUTE Execute_priv stored routines CREATE Create_tmp_table_priv server administration
  • 54. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 53 TEMPORARY TABLES FILE File_priv file access on server host LOCK TABLES Lock_tables_priv server administration PROCESS Process_priv server administration RELOAD Reload_priv server administration REPLICATION CLIENT Repl_client_priv server administration REPLICATION SLAVE Repl_slave_priv server administration SHOW DATABASES Show_db_priv server administration SHUTDOWN Shutdown_priv server administration SUPER Super_priv server administration B ng 3.2.4.3.a Danh sĂĄch cĂĄc c quy n CĂĄc quy n CREATE TEMPORARY TABLES, EXECUTE, LOCK TABLES, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, vĂ  SUPER Æ° c thĂȘm trong MySQL 4.0.2. (EXECUTE khĂŽng Æ° c th c thi cho t i MySQL 5.0.3.) CREATE VIEW vĂ  SHOW VIEW Æ° c thĂȘm trong MySQL 5.0.1. CREATE ROUTINE vĂ  ALTER ROUTINE Æ° c thĂȘm trong MySQL 5.0.3. s d ng cĂĄc c quy n nĂ y khi nĂąng c p t cĂĄc phiĂȘn b n cĆ© c a MySQL mĂ  khĂŽng cĂł chĂșng, ngÆ° i dĂčng c n ph i nĂąng c p cĂĄc b ng c quy n c a ngÆ° i dĂčng. M t s c quy n qu n tr cĂł th th c hi n b ng cĂĄch s d ng chÆ°ÆĄng trĂŹnh mysqladmin ho c Æ°a ra cĂĄc cĂąu l nh SQL.
  • 55. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 54 B ng sau th hi n cĂĄc cĂąu l nh SQL tÆ°ÆĄng ng v i c quy n qu n tr Æ° c th c thi : Privilege Commands Permitted to Privilege Holders RELOAD flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload. SHUTDOWN shutdown PROCESS processlist SUPER kill B ng 3.2.4.3.b Danh sĂĄch cĂĄc c quy n qu n tr L nh reload th c hi n vi c c l i cĂĄc b ng phĂąn quy n vĂ o trong b nh . 3.2.4.4. i u khi n truy c p c quy n Khi ngÆ° i dĂčng k t n i v i CSDL MySQL : MySQL tĂŹm xem trong b ng user cĂł hostname, username, and password Ăł khĂŽng. N u cĂł, ngÆ° i dĂčng Æ° c quy n truy c p vĂ o h th ng. Khi ngÆ° i Ăł th c thi m t cĂąu query, trÆ° c tiĂȘn MySQL xem trong b ng user xem ngÆ° i dĂčng cĂł nh ng quy n gĂŹ. N u ngÆ° i dĂčng nĂ y khĂŽng cĂł c quy n trong b ng Ăł thĂŹ MySQL s tĂŹm ti p trong b ng db. H th ng s d a trĂȘn the hostname, username, vĂ  CSDL xem cĂĄc c quy n mĂ  ngÆ° i nĂ y cĂł. N u trong b ng nĂ y khĂŽng cĂł quy n th c thi cĂąu truy v n thĂŹ MySQL s tĂŹm ti p trong b ng tables_priv vĂ  sau Ăł lĂ  b ng columns_priv xem ngÆ° i Ăł cĂł quy n th c thi cĂąu truy v n. N u khĂŽng tĂŹm th y thĂŹ h th ng s bĂĄo l i.
  • 56. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 55 NhÆ° v y cĂł 2 trÆ° ng h p ki m tra k t n i : ‱ Ki m tra k t n i (connection verification) ‱ Ki m tra yĂȘu c u (request verification). a) Giai o n 1 : ki m tra k t n i Khi ngÆ° i dĂčng c g ng k t n i vĂ o MySQL server, server ch p nh n ho c t ch i cĂĄc k t n i cÆĄ b n d a trĂȘn nh n d ng c a b ng vĂ  b t c khi nĂ o ngÆ° i dĂčng ki m tra l i nh n d ng c a mĂŹnh b ng cĂĄch cung c p Ășng m t kh u. N u khĂŽng, server c m truy c p. N u Ășng. server ch p nh n k t n i, sau Ăł chuy n sang giai o n 2 vĂ  ch i cĂĄc yĂȘu c u. Nh n d ng c a user Æ° c d a trĂȘn 2 ph n thĂŽng tin sau: client host t k t n i c a ngÆ° i dĂčng username MySQL c a ngÆ° i dĂčng B t kĂŹ ai k t n i vĂ o MySQL, h th ng u ĂČi h i username, password, vĂ  hostname. username lĂ  tĂȘn ngÆ° i mu n k t n i password lĂ  cĂŽng c Æ° c thĂȘm vĂ o xĂĄc nh n ngÆ° i dĂčng hostname lĂ  tĂȘn mĂĄy mĂ  ngÆ° i dĂčng k t n i. MySQL khĂŽng th gi i h n s lÆ° ng ngÆ° i k t n i mĂ  cĂł th h n ch s mĂĄy k t n i. CĂĄc giĂĄ tr host trong b ng user cĂł th Æ° c ch nhÆ° sau : GiĂĄ tr Host cĂł th lĂ  hostname ho c s IP, ho c ‘localhost’ ch local host. NgÆ° i dĂčng cĂł th s d ng cĂĄc kĂœ t m r ng nhÆ° ‘%’ vĂ  ‘_’ trong cĂĄc giĂĄ tr c a c t Host. i u nĂ y cĂł cĂčng Ăœ nghÄ©a v i thao tĂĄc vi c dĂčng kĂœ t thay th v i toĂĄn t LIKE.
  • 57. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 56 QuĂĄ trĂŹnh ki m tra k t n i khĂĄ ÆĄn gi n. MySQL ki m tra thĂŽng tin username, password, vĂ  hostname nh p vĂ o cĂł trong b ng user hay khĂŽng? N u cĂł, ngÆ° i dĂčng Æ° c phĂ©p k t n i, n u khĂŽng s khĂŽng cho phĂ©p truy c p. Vi c ki m tra nh n d ng Æ° c th c hi n b ng cĂĄch s d ng 3 c t ph m vi c a b ng user (Host, User vĂ  Password). Server ch p nh n k t n i ch khi cĂĄc c t Host vĂ  User trong vĂ i record trong b ng user tÆ°ÆĄng ng v i hostname vĂ  username c a client, vĂ  client cung c p password Æ° c ch rĂ” trong record Ăł. C t password cĂł th lĂ  khĂŽng cĂł d li u. Khi Ăł user k t n i mĂ  khĂŽng c n password. CĂĄc giĂĄ tr Password non-blank trong b ng user i di n cho password ĂŁ mĂŁ hoĂĄ. MySQL khĂŽng lÆ°u tr d ng tÆ° ng t n c a password (plaintext) mĂ  nĂł Æ° c mĂŁ hoĂĄ (b ng hĂ m PASSWORD()). Password ĂŁ Æ° c mĂŁ hoĂĄ s Æ° c dĂčng trong su t qĂșa trĂŹnh k t n i khi ki m tra password ĂŁ Ășng. Theo cĂĄch nhĂŹn nh n c a MySQL thĂŹ password ĂŁ Æ° c mĂŁ hoĂĄ lĂ  password Ășng, vĂŹ th ngÆ° i dĂčng khĂŽng nĂȘn Æ°a nĂł cho b t kỳ ngÆ° i nĂ o truy c p vĂ o nĂł! c bi t, khĂŽng cho phĂ©p cĂĄc user khĂŽng ph i lĂ  qu n tr c cĂĄc b ng trong csdl mysql! T phiĂȘn b n 4.1, MySQL dĂčng phÆ°ÆĄng phĂĄp ch ng th c b o v password m nh hÆĄn trong su t quĂĄ trĂŹnh k t n i hÆĄn lĂ  cĂĄc phiĂȘn b n trÆ° c Ăł. NĂł b o m t ngay c cĂĄc gĂłi tin TCP/IP b sniffed ho c csdl mysql b ĂĄnh c p. T phiĂȘn b n 4.1.1 MySQL dĂčng thu t toĂĄn SHA-1 mĂŁ hĂła password. Password Æ° c lÆ°u trong CSDL mysql lĂ  giĂĄ tr băm c a password sau khi dĂčng SHA-1 băm hai l n liĂȘn tiĂȘp.
  • 58. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 57 QuĂĄ trĂŹnh ch ng th c password : 1. Khi nh n Æ° c yĂȘu c u k t n i t client, Server s t o m t message ng u nhiĂȘn public_seed vĂ  g i nĂł cho client. 2. Client nh n public_seed. Sau Ăł dĂčng thu t toĂĄn băm SHA-1 băm hai l n trĂȘn password c a mĂŹnh giĂĄ tr nh n Æ° c lĂ  hash_stage2. Sau Ăł l i t o giĂĄ tr băm h n h p d a trĂȘn public_seed vĂ  hash_stage2 r i xor nĂł v i hash_stage1 (lĂ  giĂĄ tr băm SHA-1 c a password l n 1). Chu i nh n Æ° c cu i cĂčng lĂ  reply. Chu i nĂ y Æ° c g i l i cho server. 3. Server nh n Æ° c giĂĄ tr reply do client tr v vĂ  dĂčng nĂł ki m tra password Ășng hay sai. TrÆ° c tiĂȘn server s l y giĂĄ tr c a password trong CSDL mysql lĂ  hash_stage2. Sau Ăł server th c hi n vi c băm h n h p hash_stage2 vĂ  public_seed. Chu i giĂĄ tr nh n Æ° c Æ° c em xor v i reply. Khi Ăł k t qu ta nh n Æ° c chĂ­nh lĂ  hash_stage1 ( Ăąy chĂ­nh lĂ  giĂĄ tr nh n Æ° c do băm password l n th nh t). L i dĂčng SHA-1 băm hash_stage1 nh n Æ° c giĂĄ tr băm m i candidate_hash2. N u candidate_hash2 b ng v i hash_stage2 thĂŹ password lĂ  Ășng ngÆ° c l i password lĂ  sai.
  • 59. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 58 SERVER: public_seed=create_random_string() send(public_seed) CLIENT: recv(public_seed) hash_stage1=sha1("password") hash_stage2=sha1(hash_stage1) reply=xor(hash_stage1, sha1(public_seed,hash_stage2) send(reply) SERVER: recv(reply) hash_stage1=xor(reply, sha1(public_seed,hash_stage2)) candidate_hash2=sha1(hash_stage1) check(candidate_hash2==hash_stage2) b) Giai o n 2 : ki m tra yĂȘu c u Ki m tra yĂȘu c u x y ra m i khi ngÆ° i dĂčng th c hi n cĂąu truy v n vĂ o CSDL Sau khi quĂĄ trĂŹnh k t n i Æ° c thi t l p, m i dĂČng l nh u i qua cĂčng m t ti n trĂŹnh. i u nĂ y m b o ngÆ° i dĂčng u cĂł gi i h n lĂ m vi c. QuĂĄ trĂŹnh nĂ y cĆ©ng khĂĄ ÆĄn gi n. M i khi cĂł yĂȘu c u Æ°a ra, trÆ° c tiĂȘn MySQL ki m tra xem ngÆ° i dĂčng nĂ y cĂł Æ° c phĂąn quy n c p user hay khĂŽng? N u cĂł, thĂŹ ngÆ° i dĂčng nĂ y s Æ° c phĂ©p lĂ m b t c vi c gĂŹ trĂȘn csdl trong HQTCSDL MySQL. N u khĂŽng tĂŹm th y thĂŹ My SQL s tĂŹm ti p trong b ng db. B ng db lĂ  cÆĄ ch b o m t c p ti p theo. c quy n ch Æ° c c p trĂȘn 1 CSDL c th . c quy n SELECT c p nĂ y cho phĂ©p ngÆ° i dĂčng xem d li u trĂȘn t t c cĂĄc b ng c a 1 CSDL c th . CĂČn n u ngÆ° i dĂčng mu n phĂąn quy n c th hÆĄn thĂŹ hĂŁy s d ng b ng tables_priv vĂ  columns_priv. B ng columns_priv lĂ  nÆĄi cu i cĂčng MySQl
  • 60. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 59 c p quy n cho ngÆ° i dĂčng. N u ngÆ° i dĂčng khĂŽng Æ° c c p quy n c p nĂ y thĂŹ MySQl s bĂĄo l i. QuĂĄ trĂŹnh nĂ y di n ra r t nhanh n n i ta khĂŽng th bi t Æ° c. Do Ăł CSDL c a ngÆ° i dĂčng cĂł an toĂ n cao. HĂŹnh dÆ° i Ăąy mĂŽ t quĂĄ trĂŹnh ki m tra : HĂŹnh 3.2.4.4 Ki m tra yĂȘu c u
  • 61. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 60 ChÆ°ÆĄng 4.Thu t toĂĄn b o m t password trong MySQL ChÆ°ÆĄng nĂ y s trĂŹnh bĂ y v thu t toĂĄn b o m t password trong MySQL- SHA-1: Ăœ tÆ° ng, cĂĄc bÆ° c c a thu t toĂĄn, ĂĄnh giĂĄ Æ°u khuy t i m. ng th i, chĂșng tĂŽi xu t m t s thu t toĂĄn t t hÆĄn cĂł th h n ch Æ° c khuy t i m c a thu t toĂĄn hi n t i. T phiĂȘn b n 4.1 tr v sau MySQL mĂŁ hĂła password b ng thu t toĂĄn SHA-1 4.1. Thu t toĂĄn SHA-1 4.1.1. Ý tÆ° ng thu t toĂĄn BĂM SHA CĂĄc thu t toĂĄn hĂ m băm SHA g m 2 bu c: ti n x lĂœ vĂ  tĂ­nh toĂĄn giĂĄ tr băm. BÆ° c ti n x lĂœ bao g m cĂĄc thao tĂĄc: M r ng thĂŽng i p PhĂąn tĂ­ch thĂŽng i p ĂŁ m r ng thĂ nh cĂĄc kh i m bit. Kh i t o giĂĄ tr băm ban u. BÆ° c tĂ­nh toĂĄn giĂĄ tr băm bao g m cĂĄc thao tĂĄc: LĂ m N l n cĂĄc cĂŽng vi c sau: T o b ng phĂąn b thĂŽng i p (message schedule) t kh i th i. DĂčng b ng phĂąn b thĂŽng i p cĂčng v i cĂĄc hĂ m, h ng s , cĂĄc thao tĂĄc trĂȘn t t o ra giĂĄ tr băm i. S d ng giĂĄ tr băm cu i cĂčng t o thĂŽng i p rĂșt g n. ThĂŽng i p M Æ° c m r ng trÆ° c khi th c hi n băm. M c Ă­ch c a vi c m r ng nĂ y nh m m b o thĂŽng i p m r ng cĂł dĂ i lĂ  b i s c a 512 ho c 1024 bit tĂčy thu c vĂ o thu t toĂĄn.
  • 62. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 61 Sau khi thĂŽng i p ĂŁ m r ng, thĂŽng i p c n Æ° c phĂąn tĂ­ch thĂ nh N kh i m-bit trÆ° c khi th c hi n băm. i v i SHA-1 vĂ  SHA-256, thĂŽng i p m r ng Æ° c phĂąn tĂ­ch thĂ nh N kh i 512-bit M(1), M(2),..., M(N). Do Ăł 512 bit c a kh i d li u u vĂ o cĂł th Æ° c th hi n b ng 16 t 32-bit, M0 (i) ch a 32 bit u c a kh i thĂŽng i p i, M0 (i) ch a 32 bit k ti p... i v i SHA-384 vĂ  SHA-512, thĂŽng i p m r ng Æ° c phĂąn tĂ­ch thĂ nh N kh i 1024-bit M(1), M(2),..., M(N). Do Ăł 1024 bit c a kh i d li u u vĂ o cĂł th Æ° c th hi n b ng 16 t 64-bit, M0 (i) ch a 64 bit u c a kh i thĂŽng i p i, M0 (i) ch a 64 bit k ti p... TrÆ° c khi th c hi n băm, v i m i thu t toĂĄn băm an toĂ n, giĂĄ tr băm ban u H(0) ph i Æ° c thi t l p. KĂ­ch thÆ° c vĂ  s lÆ° ng t trong H(0) tĂčy thu c vĂ o kĂ­ch thÆ° c thĂŽng i p rĂșt g n. CĂĄc giĂĄ tr băm ban u c a cĂĄc thu t toĂĄn SHA Æ° c trĂŹnh bĂ y trong ph n Ph l c A. CĂĄc c p thu t toĂĄn SHA-224 vĂ  SHA-256; SHA-384 vĂ  SHA-512 cĂł cĂĄc thao tĂĄc th c hi n gi ng nhau, ch khĂĄc nhau v s lÆ° ng bit k t qu c a thĂŽng i p rĂșt g n. NĂłi cĂĄch khĂĄc, SHA-224 s d ng 224 bit u tiĂȘn trong k t qu thĂŽng i p rĂșt g n sau khi ĂĄp d ng thu t toĂĄn SHA-256. TÆ°ÆĄng t SHA-384 s d ng 384 bit u tiĂȘn trong k t qu thĂŽng i p rĂșt g n sau khi ĂĄp d ng thu t toĂĄn SHA-512.
  • 63. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 62 CĂĄc tham s , kĂœ hi u vĂ  cĂĄc thu t ng Æ° c s d ng trong SHA. Tham s : a, b,c, ...,h CĂĄc bi n lĂ  cĂĄc t w bit s d ng trong vi c tĂ­nh toĂĄn giĂĄ tr băm H(i). H(i) GiĂĄ tr băm th i. H(0) lĂ  giĂĄ tr băm kh i u. H(N) lĂ  giĂĄ tr băm cu i cĂčng vĂ  Æ° c s d ng xĂĄc nh thĂŽng i p rĂșt g n. Kt H ng s s d ng cho vĂČng l p th t trong vi c th c hi n băm. k S lÆ° ng cĂĄc s 0 thĂȘm vĂ o thĂŽng i p trong giai o n m r ng thĂŽng i p. l Chi u dĂ i thĂŽng i p M (tĂ­nh b ng ÆĄn v bit). m S bit trong m t kh i thĂŽng i p, M(t). M(i) Kh i thĂŽng i p i, v i giĂĄ tr m bit. M(i)j T th j c a kh i thĂŽng i p th i, M(t)0 lĂ  t c c trĂĄi c a kh i thĂŽng i p i. n S lÆ° ng bit Æ° c d ch chuy n khi x lĂœ m t t . N S lÆ° ng kh i trong thĂŽng i p m r ng. T w-bit t t m s d ng trong vi c th c hi n băm. w S lÆ° ng bit trong m t t . Wt T w-bit th t c a b ng phĂąn b thĂŽng i p. KĂœ hi u: CĂĄc kĂœ hi u sau Æ° c s d ng trong SHA vĂ  x lĂœ trĂȘn cĂĄc t w-bit. ^ Thao tĂĄc AND trĂȘn bit. √ Thao tĂĄc OR trĂȘn bit. ⊕ Thao tĂĄc XOR trĂȘn bit. ÂŹ Thao tĂĄc o bit.
  • 64. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 63 + Thao tĂĄc c ng modulo 2w. << Thao tĂĄc d ch trĂĄi, x << n lo i b n bit c c trĂĄi c a t x vĂ  thĂȘm n bit 0 vĂ o bĂȘn ph i c a k t qu . >> Thao tĂĄc d ch ph i, x >> n lo i b n bit c c ph i c a t x vĂ  thĂȘm n bit 0 vĂ o bĂȘn trĂĄi c a k t qu . Thu t ng : CĂĄc thu t ng liĂȘn quan n chu i bit vĂ  s nguyĂȘn Æ° c s d ng: a) M t kĂœ s th p l c (hexa) lĂ  m t ph n t trong t p h p {0, 1,..., 9, a, ..., f}. M t kĂœ s th p l c bi u di n m t chu i 4-bit. VĂ­ d , kĂœ s th p l c "7" bi u di n chu i 4-bit "0111", kĂœ s hexa "a" bi u di n chu i 4 bit "1010". b) M t t lĂ  m t chu i w-bit cĂł th Æ° c bi u di n dÆ° i d ng m t dĂŁy cĂĄc kĂœ s hexa. chuy n i m t t sang kĂœ s hexa, m i chu i 4-bit Æ° c chuy n sang giĂĄ tr hexa tÆ°ÆĄng ng nhÆ° ph n (a). VĂ­ d , chu i 32-bit 1010 0001 0000 0011 1111 1110 0010 0011 cĂł th Æ° c bi u di n nhÆ° sau "a103fe23", vĂ  chu i 64 bit 1010 0001 0000 0011 1111 1110 0010 0011 0011 0010 1110 1111 0011 0000 0001 1010 cĂł th Æ° c bi u di n nhÆ° sau "a103fe2332ef301a" c) Quy Æ° c "big-endian" Æ° c s d ng trong tĂ i li u nĂ y khi bi u di n t cĂł 32 vĂ  64 bit. Do Ăł v i m i t , bit u tiĂȘn n m v trĂ­ c c trĂĄi. d) M t s nguyĂȘn cĂł th Æ° c bi u di n dÆ° i d ng m t t ho c m t c p t . M t t bi u di n dĂ i thĂŽng i p theo bit, l, Æ° c s d ng trong thao tĂĄc m r ng thĂŽng i p (ph n b). M t s nguyĂȘn n m trong kho ng 0 vĂ  232-1 cĂł th Æ° c bi u di n b mg m t t 32-bit. 4 bit cu i cĂčng c a s nguyĂȘn Æ° c bi u di n b ng kĂœ
  • 65. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 64 s hexa c c ph i c a t . VĂ­ d s nguyĂȘn 291 = 28 + 25 + 21 + 20 = 258 + 32 + 2 + 1 Æ° c bi u di n b ng t hexa 0x00000123. TÆ°ÆĄng t , s nguyĂȘn trong kho ng 0 vĂ  264-1 cĂł th bi u di n b ng t 64-bit. N u Z lĂ  m t s nguyĂȘn, 0 ≀ Z < 264 thĂŹ Z = 232X + Y, trong Ăł 0 ≀ X < 232 vĂ  0 ≀ Y < 232. Do X vĂ  Y cĂł th Æ° c bi u di n b ng t 32-bit x vĂ  y, nĂȘn s nguyĂȘn Z cĆ©ng cĂł th bi u di n b ng m t c p t (x, y). TĂ­nh ch t nĂ y Æ° c s d ng trong SHA-1 vĂ  SHA-256. N u Z lĂ  m t s nguyĂȘn, 0 ≀ Z < 2128 thĂŹ Z = 264X + Y, trong Ăł 0 ≀ X < 264 vĂ  0 ≀ Y < 264. Do X vĂ  Y cĂł th Æ° c bi u di n b ng t 64-bit x vĂ  y, nĂȘn s nguyĂȘn Z cĆ©ng cĂł th bi u di n b ng m t c p t (x, y). TĂ­nh ch t nĂ y Æ° c s d ng trong SHA-384 vĂ  SHA-512. e) Trong thu t toĂĄn băm an toĂ n, kĂ­ch thÆ° c c a kh i thĂŽng i p m bit d a vĂ o thu t toĂĄn sau: i v i SHA-1 vĂ  SHA-256, m i kh i thĂŽng i p cĂł 512 bit bi u di n dÆ° i d ng m t dĂŁy 16 t 32-bit. i v i SHA-384 vĂ  SHA-512, m i kh i thĂŽng i p cĂł 1024 bit bi u di n dÆ° i d ng m t dĂŁy 16 t 64-bit. CĂĄc thao tĂĄc x lĂœ dÆ° i Ăąy Æ° c ĂĄp d ng cho t w-bit trong c 5 thu t toĂĄn : SHA-1, SHA-224 vĂ  SHA-256 thao tĂĄc trĂȘn t 32-bit (w = 32), SHA-384 vĂ  SHA-512 thao tĂĄc trĂȘn t 64-bit (w = 64). ‱ CĂĄc phĂ©p toĂĄn lu n lĂœ trĂȘn bit: ∧, √, ⊕ vĂ  ÂŹ ‱ PhĂ©p c ng modulo 2w. PhĂ©p c ng x + y Æ° c nh nghÄ©a nhÆ° sau. T x vĂ  y bi u di n s nguyĂȘn X vĂ  Y trong Ăł 0 ≀ X < 2w vĂ  0 ≀ Y < 2w.
  • 66. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 65 Z = (X + Y) mod 2w. ( 4.1) thĂŹ 0 ≀ Z < 2w. Bi n i s nguyĂȘn Z thĂ nh t z, ta cĂł z = x + y. PhĂ©p toĂĄn d ch ph i SHRn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn 0≀n<w nh nghÄ©a nhÆ° sau SHRn(x) = x >> n. ( 4.2) PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-256, SHA-384 vĂ  SHA-512. ‱ PhĂ©p toĂĄn quay ph i ROTRn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn 0≀n<w, Æ° c nh nghÄ©a nhÆ° sau: ROTRn(x) = (x >> n) √ (x <<w – n) ( 4.3) NhÆ° v y, ROTRn(x) tÆ°ÆĄng Æ°ÆĄng cho m t thao tĂĄc xoay vĂČng t x v phĂ­a ph i n v trĂ­. PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-256, SHA-384 vĂ  SHA-512. ‱ PhĂ©p toĂĄn quay trĂĄi ROTLn(x) v i x lĂ  t w-bit vĂ  n lĂ  s nguyĂȘn 0≀n<w, Æ° c nh nghÄ©a nhÆ° sau: ROTLn(x) = (x << n) √ (x >>w – n) ( 4.4) NhÆ° v y, ROTLn(x) tÆ°ÆĄng Æ°ÆĄng cho m t thao tĂĄc xoay vĂČng t x v phĂ­a trĂĄi n v trĂ­. PhĂ©p toĂĄn nĂ y Æ° c s d ng trong SHA-1. ‱ LÆ°u Ăœ r ng cĂĄc phĂ©p toĂĄn sau lĂ  tÆ°ÆĄng Æ°ÆĄng v i w lĂ  khĂŽng i. ROTLn(x) ≈ ROTRw-n(x) ROTRn(x) ≈ ROTLw-n(x).
  • 67. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 66 4.1.2. Thu t toĂĄn SHA-1 4.1.2.1. Gi i thi u SHA-1 d a trĂȘn cĂĄc nguyĂȘn lĂœ tÆ°ÆĄng t v i nh ng nguyĂȘn lĂœ mĂ  giĂĄo sÆ° Ronald L.Rivest c a MIT khi thi t k thu t toĂĄn băm MD4, SHA-1 Æ° c xu t vĂ o thĂĄng 4 năm 1995. Khi nh p vĂ o m t thĂŽng i p cĂł chi u dĂ i b t kỳ nh hÆĄn 264 bit, SHA-1 cho ra k t qu lĂ  m t thĂŽng i p rĂșt g n (hay giĂĄ tr băm) dĂ i 160 bits. TrÆ° c Ăą y, SHA-1 Æ° c g i lĂ  an toĂ n vĂŹ khĂŽng th tĂŹm ra thĂŽng i p liĂȘn quan n thĂŽng i p rĂșt g n hay tĂŹm ra hai thĂŽng i p khĂĄc nhau nhÆ°ng cĂł cĂčng thĂŽng i p rĂșt g n. B t kỳ thay i nĂ o c a thĂŽng i p, v i xĂĄc su t cao, k t qu v n cho ra cĂĄc thĂŽng i p rĂșt g n khĂĄc nhau. 4.1.2.2. Thao tĂĄc ti n x lĂœ a) CĂĄc hĂ m vĂ  cĂĄc h ng s Æ° c dĂčng trong thu t toĂĄn SHA-1 xem ph n ph l c A.3 b) M r ng thĂŽng i p ThĂŽng i p M Æ° c m r ng trÆ° c khi th c hi n băm. M c Ă­ch c a vi c m r ng nĂ y lĂ  m b o thĂŽng i p m r ng cĂł dĂ i lĂ  b i s c a 512bit Gi s dĂ i c a thĂŽng i p M lĂ  l bit. ThĂȘm bit 1 vĂ o cu i thĂŽng i p, theo sau lĂ  k bit 0 (k lĂ  s khĂŽng Ăąm nh nh t sao cho l+1+k=448(mod512)). Sau Ăł thĂȘm kh i 64 bit lĂ  bi u di n nh phĂąn c a l. VĂ­ d , thĂŽng i p (8-bit ASCII) "abc" cĂł dĂ i 8x3=24, do Ăł thĂŽng i p Æ° c m r ng b ng 1 bit "1", 448-(24+1) = 423 bit "0" vĂ  chi u dĂ i thĂŽng i p tr thĂ nh thĂŽng i p m r ng 512 bit.
  • 68. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 67 c) PhĂąn tĂ­ch thĂŽng i p ĂŁ m r ng Sau khi thĂŽng i p ĂŁ m r ng, thĂŽng i p c n Æ° c phĂąn tĂ­ch thĂ nh N kh i m-bit trÆ° c khi th c hi n băm. ThĂŽng i p m r ng Æ° c phĂąn tĂ­ch thĂ nh N kh i 512-bit M(1), M(2),..., M(N). Do Ăł 512 bit c a kh i d li u u vĂ o cĂł th Æ° c th hi n b ng 16 t 32-bit, M0 (i) ch a 32 bit u c a kh i thĂŽng i p i, M0 (i) ch a 32 bit k ti p... d) Kh i t o giĂĄ tr băm GiĂĄ tr băm lĂ  m t chu i bit cĂł kĂ­ch thÆ° c b ng kĂ­ch thÆ° c message digest (tr SHA-384) g m cĂĄc words ghĂ©p l i. Trong Ăł Hj (i) lĂ  word j trong giĂĄ tr băm l n l p i, v i 0 ≀ i ≀ N (s block cĂł Æ° c sau khi chia văn b n Æ° c m) vĂ  0 ≀ j ≀ s word trong giĂĄ tr băm – 1. TrÆ° c khi th c hi n băm, v i m i thu t toĂĄn băm an toĂ n, giĂĄ tr băm ban u H(0) ph i Æ° c thi t l p. KĂ­ch thÆ° c vĂ  s lÆ° ng t trong H(0) tĂčy thu c vĂ o kĂ­ch thÆ° c thĂŽng i p rĂșt g n. H ng s vĂ  giĂĄ tr kh i t o c a SHA-1 xem ph n ph l c A.1 4.1.2.3. Thu t toĂĄn c a bÆ° c tĂ­nh toĂĄn giĂĄ tr băm SHA-1: SHA-1 Æ° c s d ng băm thĂŽng i p M dĂ i l bit 0 ≀ l ≀ 264 . Thu t toĂĄn s d ng : ‱ M t b ng phĂąn b thĂŽng i p g m 80 t 32-bit. ‱ 5 bi n 32 bit. ‱ M t giĂĄ tr băm g m 5 t 32-bit. K t qu c a SHA-1 lĂ  thĂŽng i p rĂșt g n 160-bit. CĂĄc t c a b ng phĂąn b thĂŽng i p Æ° c kĂœ hi u W0, W1, ..., W79. 5 bi n kĂœ hi u a, b, c, d, vĂ  e. CĂĄc t c a giĂĄ tr băm kĂœ hi u H0 (i) , H1 (i) , 
, H4 (i) ,
  • 69. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 68 H(0) gi giĂĄ tr băm ban u, Æ° c thay th b ng cĂĄc giĂĄ tr băm thĂ nh cĂŽng H(i) sau khi m i kh i thĂŽng i p Æ° c x lĂœ vĂ  k t thĂșc b ng giĂĄ tr băm cu i cĂčng H(N). Xem chi ti t ph n ph l c A.4.1 4.1.3. ĂĄnh giĂĄ Æ°u khuy t i m 4.1.3.1. ÆŻu i m CĂčng v i MD5, SHA-1 Æ° c xem lĂ  2 thu t toĂĄn BĂM ph bi n nh t hi n nay. SHA-1 Æ° c xem lĂ  an toĂ n i v i hi n tÆ° ng ng vĂŹ r t khĂł tĂŹm Æ° c hai thĂŽng i p cĂł cĂčng giĂĄ tr băm. Chu n SHA-1 Æ° c ch ng nh n b i Vi n CĂŽng ngh vĂ  TiĂȘu chu n qu c gia (NIST) M , vĂ  lĂ  phÆ°ÆĄng phĂĄp mĂŁ hoĂĄ duy nh t Æ° c ch p nh n trong n i b chĂ­nh ph M . Æ° c coi lĂ  chu n c a vi c b o v cĂĄc kĂȘnh liĂȘn l c tr c tuy n t n t i 9 năm qua. 4.1.3.2. Khuy t i m SHA-1 Æ° c thi t k trĂȘn cĂĄc b vi x lĂœ 32-bit, th h s p t i c a cĂĄc b vi x lĂœ cĂł dĂčng cĂĄc t 64-bit (word), mĂ  SHA-1 khĂŽng x kĂœ hi u qu trĂȘn b vi x lĂœ nĂ y. ThĂĄng 2 năm 2005, SHA-1 ĂŁ b t n cĂŽng b i m t nhĂłm 3 chuyĂȘn gia Xiaoyun Wang, Yiqun Lisa Yin, vĂ  Hongbo Yu, m t nhĂłm cĂĄc nhĂ  nghiĂȘn c u c a trÆ° ng i h c Qu ng ĂŽng, Vi n Khoa h c Trung
  • 70. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 69 Qu c vĂ  TrÆ° ng i h c Shanghai Jiaotong. Thu t toĂĄn nĂ y ĂŁ b gi i mĂŁ thĂŽng qua phÆ°ÆĄng phĂĄp tĂ­nh toĂĄn phĂąn b 1 . Vi c tĂŹm ki m giĂĄ tr ng c a SHA thÆ° ng ĂČi h i m t s c m nh tĂ­nh toĂĄn r t l n. CĂĄc nhĂ  nghiĂȘn c u Trung Qu c khi t n cĂŽng SHA-1 ĂŁ khĂŽng cĂł nhi u siĂȘu mĂĄy tĂ­nh trong tay, nĂȘn thay vĂ o Ăł, h s d ng m t chÆ°ÆĄng trĂŹnh i n toĂĄn phĂąn tĂĄn khai thĂĄc s c m nh nhĂ n r i c a hĂ ng nghĂŹn mĂĄy tĂ­nh trĂȘn th gi i vĂ  hoĂ n t t cĂŽng vi c. PhĂĄ SHA-1, khĂł hÆĄn g p 16 l n t n cĂŽng MD5, c n 300.000 mĂĄy tĂ­nh nhÆ°ng ph i m t x p x 74 năm. Tuy nhiĂȘn, v i vi c t n d ng Æ° c s c m nh liĂȘn k t c a nhi u mĂĄy tĂ­nh gia ĂŹnh nhÆ° cĂĄc nhĂ  khoa h c Trung Qu c ĂŁ lĂ m nĂłi trĂȘn, th i gian th c hi n i u nĂ y ĂŁ Æ° c rĂșt ng n r t nhi u. Xem chi ti t t n cĂŽng ph n Ph l c C (1) PhÆ°ÆĄng phĂĄp tĂ­nh toĂĄn phĂąn b : LĂ  m t d ng tĂ­nh toĂĄn trong Ăł cĂĄc thĂ nh ph n vĂ  i tÆ° ng khĂĄc nhau (t o nĂȘn m t ng d ng) Æ° c t trĂȘn nhi u mĂĄy tĂ­nh khĂĄc nhau k t n i vĂ o m ng. VĂ­ d : cĂł th ĂĄnh giĂĄ ng d ng x lĂœ văn b n Word b ng cĂĄch phĂąn chia nh ng tĂ­nh năng chĂ­nh c a chĂșng cho nhi u mĂĄy tĂ­nh khĂĄc nhau: thĂ nh ph n biĂȘn t p, i tÆ° ng ki m tra chĂ­nh t , tĂ­nh năng b o m t... Trong m t s h th ng tĂ­nh toĂĄn phĂąn b khĂĄc, ngÆ° i ta cĂł th t m i m t i tÆ° ng trong m t mĂŽi trÆ° ng h i u hĂ nh khĂĄc nhau.
  • 71. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 70 4.2. CĂĄc thu t toĂĄn xu t 4.2.1. SHA-2242 , SHA-256, SHA-384 vĂ  SHA-512 4.2.1.1. Gi i thi u: Chu n SHS c t 5 thu t toĂĄn băm an toĂ n SHA-1, SHA-224, SHA-256, SHA-384 vĂ  SHA-512. S khĂĄc bi t chĂ­nh c a cĂĄc thu t toĂĄn lĂ  s lÆ° ng bit b o m t c a d li u Æ° c băm – i u nĂ y cĂł nh hÆ° ng tr c ti p n chi u dĂ i c a thĂŽng i p rĂșt g n. Khi m t thu t toĂĄn băm Æ° c s d ng k t h p v i thu t toĂĄn khĂĄc ĂČi h i ph i cho k t qu s lÆ° ng bit tÆ°ÆĄng ng. VĂ­ d , n u m t thĂŽng i p Æ° c kĂœ v i thu t toĂĄn ch kĂœ i n t cung c p 128 bit thĂŹ thu t toĂĄn ch kĂœ Ăł cĂł th ĂČi h i s d ng m t thu t toĂĄn băm an toĂ n cung c p 128 bit nhÆ° SHA-256. NgoĂ i ra, cĂĄc thu t toĂĄn khĂĄc nhau v kĂ­ch thÆ° c kh i vĂ  kĂ­ch thÆ° c t d li u (word size) Æ° c s d ng th hi n cĂĄc tĂ­nh ch t cÆĄ b n c a b n thu t toĂĄn băm an toĂ n. (2) Ăąy lĂ  thu t toĂĄn hĂ m băm v a Æ° c NIST cĂŽng nh n thĂ nh chu n hĂ m băm an toĂ n vĂ o 02/2004.
  • 72. TĂŹm hi u vĂ  phĂĄt tri n cÆĄ ch b o m t h qu n tr cÆĄ s d li u MySQL Khu t Th Ng c BĂ­ch - LĂȘ Th TrĂșc LĂąm 71 KĂ­ch thÆ° c ( ÆĄn v : bit) Thu t toĂĄn ThĂŽng i p Kh i T ThĂŽng i p rĂșt g n an toĂ n3 ( ÆĄn v : bit) SHA-1 < 264 512 32 160 80 SHA-224 < 264 512 32 224 112 SHA-256 < 264 512 32 256 128 SHA-384 < 2128 1024 64 384 192 SHA-512 < 2128 1024 64 512 256 B ng 4.2.1.1 CĂĄc tĂ­nh ch t c a cĂĄc thu t toĂĄn băm an toĂ n. 4.2.1.2. Thao tĂĄc ti n x lĂœ a) CĂĄc hĂ m vĂ  cĂĄc h ng s Æ° c dĂčng trong thu t toĂĄn SHA-2244 , SHA-256, SHA-384 vĂ  SHA-512 : xem ph n ph l c A.3 b) M r ng thĂŽng i p SHA-224 vĂ  SHA-256 : gi ng SHA-1 SHA-384 vĂ  SHA-512 Gi s dĂ i c a thĂŽng i p M lĂ  l bit. ThĂȘm bit 1 vĂ o cu i thĂŽng i p, theo sau lĂ  k bit 0 (k lĂ  s khĂŽng Ăąm nh nh t sao cho l + 1 + k ≡ 896 (mod 1024) Sau Ăł thĂȘm kh i 128 bit lĂ  bi u di n nh phĂąn c a l. VĂ­ d , thĂŽng i p (8-bit ASCII) "abc" cĂł dĂ i 8x3=24, do Ăł thĂŽng i p Æ° c m r ng b ng 1 bit "1", 896-(24+1) = 871 bit "0" vĂ  chi u dĂ i thĂŽng i p tr thĂ nh thĂŽng i p m r ng 1024 bit. 3 " an toĂ n" lĂ  vi c s d ng phÆ°ÆĄng phĂĄp t n cĂŽng vĂ o thĂŽng i p rĂșt g n kĂ­ch thu c n, ĂČi h i x lĂœ x p x 2n/2 . 4 Ăąy lĂ  thu t toĂĄn hĂ m băm v a Æ° c NIST cĂŽng nh n thĂ nh chu n hĂ m băm an toĂ n vĂ o 02/2004.