Google problém



Ahoj , už včera mi google stránku kde jsem musel opsat text abych mohl pokračovat v googlení. A dneska mi rovnou píše tohle We're sorry...... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.See Google Help for more information. Stáhl jsem si hijackthis a ten mi našel tohle Logfile of Trend Micro HijackThis v2.0.4Scan saved at 13:26:42, on 14.2.2014Platform: Windows 7 SP1 (WinNT 6.00.3505)MSIE: Internet Explorer v11.0 (11.00.9600.16518)Boot mode: NormalRunning processes:C:\Program Files (x86)\AskPartnerNetwork\Toolbar\Updater\TBNotifier.exeC:\Users\Mikey\AppData\Local\VNT\vntldr.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exeC:\Users\Mikey\Downloads\hijackthis.exeR1 - HKCU\Software\Microsoft\Internet Explorer\Main,Search Page = [http://go.microsoft.com/fwlink/](http://go.microsoft.com/fwlink/?LinkId=54896)R0 - HKCU\Software\Microsoft\Internet Explorer\Main,Start Page = [http://start.funmoods.com/](http://start.funmoods.com/?f=1&a=ddrnw)R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default\_Page\_URL = [http://go.microsoft.com/fwlink/p/](http://go.microsoft.com/fwlink/p/?LinkId=255141)R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Default\_Search\_URL = [http://go.microsoft.com/fwlink/](http://go.microsoft.com/fwlink/?LinkId=54896)R1 - HKLM\Software\Microsoft\Internet Explorer\Main,Search Page = [http://go.microsoft.com/fwlink/](http://go.microsoft.com/fwlink/?LinkId=54896)R0 - HKLM\Software\Microsoft\Internet Explorer\Main,Start Page = [http://go.microsoft.com/fwlink/p/](http://go.microsoft.com/fwlink/p/?LinkId=255141)R0… - HKLM\Software\Microsoft\Internet Explorer\Search,SearchAssistant = R0 - HKLM\Software\Microsoft\Internet Explorer\Search,CustomizeSearch = R0 - HKLM\Software\Microsoft\Internet Explorer\Main,Local Page = C:\Windows\SysWOW64\blank.htmR0 - HKCU\Software\Microsoft\Internet Explorer\Toolbar,LinksFolderName = R3 - URLSearchHook: IObit Apps Toolbar - {03EB0E9C-7A91-4381-A220-9B52B641CDB1} - C:\Program Files (x86)\IObit Apps Toolbar\IE\8.0\iobitappsToolbarIE.dllF2 - REG:system.ini: UserInit=userinit.exe,O2 - BHO: IObit Apps Toolbar - {03EB0E9C-7A91-4381-A220-9B52B641CDB1} - C:\Program Files (x86)\IObit Apps Toolbar\IE\8.0\iobitappsToolbarIE.dllO2 - BHO: AcroIEHelperStub - {18DF081C-E8AD-4283-A596-FA578C2EBDC3} - C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX\AcroIEHelperShim.dllO2 - BHO: Ask Toolbar BHO - {5054562D-5247-006A-76A7-7A786E7484D7} - "C:\Program Files (x86)\AskPartnerNetwork\Toolbar\PTV-RG\Passport.dll" (file missing)O2 - BHO: Java(tm) Plug-In SSV Helper - {761497BB-D6F0-462C-B6EB-D4DAF1D92D43} - C:\Program Files (x86)\Java\jre7\bin\ssv.dllO2 - BHO: Pomocná služba pro přihlášení k účtu Microsoft - {9030D464-4C02-4ABF-8ECC-5164760863C6} - C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live\WindowsLiveLogin.dllO2 - BHO: Advanced SystemCare Browser Protection - {BA0C978D-D909-49B6-AFE2-8BDE245DC7E6} - C:\PROGRA~2\IObit\SURFIN~1\BROWER~1\ASCPLU~1.DLLO2 - BHO: Surftastic - {c6673938-a52b-4dc6-af05-783e7e2c8b65} - C:\Program Files (x86)\Surftastic\Surftasticbho.dllO2 - BHO: Java(tm) Plug-In 2 SSV Helper - {DBC80044-A445-435b-BC74-9C25C1C588A9} - C:\Program Files (x86)\Java\jre7\bin\jp2ssv.dllO3 - Toolbar: Ask Toolbar - {5054562D-5247-006A-76A7-7A786E7484D7} - "C:\Program Files (x86)\AskPartnerNetwork\Toolbar\PTV-RG\Passport.dll" (file missing)O3 - Toolbar: IObit Apps Toolbar - {03EB0E9C-7A91-4381-A220-9B52B641CDB1} - C:\Program Files (x86)\IObit Apps Toolbar\IE\8.0\iobitappsToolbarIE.dllO4 - HKLM\..\Run: [ApnTBMon] "C:\Program Files (x86)\AskPartnerNetwork\Toolbar\Updater\TBNotifier.exe"O4 - HKLM\..\Run: [VNT] C:\Program Files (x86)\VNT\vntldr.exeO4 - HKCU\..\Run: [uTorrent] "C:\Users\Mikey\AppData\Roaming\uTorrent\uTorrent.exe" /MINIMIZEDO9 - Extra button: @C:\Program Files (x86)\Windows Live\Writer\WindowsLiveWriterShortcuts.dll,-1004 - {219C3416-8CB2-491a-A3C7-D9FCDDC9D600} - C:\Program Files (x86)\Windows Live\Writer\WriterBrowserExtension.dllO9 - Extra 'Tools' menuitem: @C:\Program Files (x86)\Windows Live\Writer\WindowsLiveWriterShortcuts.dll,-1003 - {219C3416-8CB2-491a-A3C7-D9FCDDC9D600} - C:\Program Files (x86)\Windows Live\Writer\WriterBrowserExtension.dllO10 - Unknown file in Winsock LSP: c:\program files (x86)\common files\microsoft shared\windows live\wlidnsp.dllO10 - Unknown file in Winsock LSP: c:\program files (x86)\common files\microsoft shared\windows live\wlidnsp.dllO10 - Unknown file in Winsock LSP: c:\windows\system32\wtfastdrv.dllO10 - Unknown file in Winsock LSP: c:\windows\system32\wtfastdrv.dllO10 - Unknown file in Winsock LSP: c:\windows\system32\wtfastdrv.dllO10 - Unknown file in Winsock LSP: c:\windows\system32\wtfastdrv.dllO10 - Unknown file in Winsock LSP: c:\windows\system32\wtfastdrv.dllO11 - Options group: [ACCELERATED\_GRAPHICS] Accelerated graphicsO18 - Protocol: skype4com - {FFC8B962-9B40-4DFF-9458-1830C7DD7F5D} - C:\PROGRA~2\COMMON~1\Skype\SKYPE4~1.DLLO18 - Protocol: wlpg - {E43EF6CD-A37A-4A9B-9E6F-83F89B8E6324} - C:\Program Files (x86)\Windows Live\Photo Gallery\AlbumDownloadProtocolHandler.dllO23 - Service: Adobe Acrobat Update Service (AdobeARMservice) - Adobe Systems Incorporated - C:\Program Files (x86)\Common Files\Adobe\ARM\1.0\armsvc.exeO23 - Service: Advanced SystemCare Service 7 (AdvancedSystemCareService7) - IObit - C:\Program Files (x86)\IObit\Advanced SystemCare 7\ASCService.exeO23 - Service: @%SystemRoot%\system32\Alg.exe,-112 (ALG) - Unknown owner - C:\Windows\System32\alg.exe (file missing)O23 - Service: AMD External Events Utility - Unknown owner - C:\Windows\system32\atiesrxx.exe (file missing)O23 - Service: Ask Update Service (APNMCP) - APN LLC. - C:\Program Files (x86)\AskPartnerNetwork\Toolbar\apnmcp.exeO23 - Service: Application Updater - Spigot, Inc. - C:\Program Files (x86)\Application Updater\ApplicationUpdater.exeO23 - Service: Computer Backup (MyPC Backup) (BackupStack) - Just Develop It - C:\Program Files (x86)\MyPC Backup\BackupStack.exeO23 - Service: @%SystemRoot%\system32\efssvc.dll,-100 (EFS) - Unknown owner - C:\Windows\System32\lsass.exe (file missing)O23 - Service: @%systemroot%\system32\fxsresm.dll,-118 (Fax) - Unknown owner - C:\Windows\system32\fxssvc.exe (file missing)O23 - Service: Služba Google Update (gupdate) (gupdate) - Google Inc. - C:\Program Files (x86)\Google\Update\GoogleUpdate.exeO23 - Service: Služba Google Update (gupdatem) (gupdatem) - Google Inc. - C:\Program Files (x86)\Google\Update\GoogleUpdate.exeO23 - Service: @%SystemRoot%\system32\ieetwcollectorres.dll,-1000 (IEEtwCollectorService) - Unknown owner - C:\Windows\system32\IEEtwCollector.exe (file missing)O23 - Service: @keyiso.dll,-100 (KeyIso) - Unknown owner - C:\Windows\system32\lsass.exe (file missing)O23 - Service: LiveUpdate (LiveUpdateSvc) - IObit - C:\Program Files (x86)\IObit\LiveUpdate\LiveUpdate.exeO23 - Service: Mozilla Maintenance Service (MozillaMaintenance) - Mozilla Foundation - C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exeO23 - Service: @comres.dll,-2797 (MSDTC) - Unknown owner - C:\Windows\System32\msdtc.exe (file missing)O23 - Service: PnkBstrA - Unknown owner - C:\Windows\system32\PnkBstrA.exeO23 - Service: @%systemroot%\system32\psbase.dll,-300 (ProtectedStorage) - Unknown owner - C:\Windows\system32\lsass.exe (file missing)O23 - Service: @%systemroot%\system32\Locator.exe,-2 (RpcLocator) - Unknown owner - C:\Windows\system32\locator.exe (file missing)O23 - Service: @%SystemRoot%\system32\samsrv.dll,-1 (SamSs) - Unknown owner - C:\Windows\system32\lsass.exe (file missing)O23 - Service: Skype Updater (SkypeUpdate) - Skype Technologies - C:\Program Files (x86)\Skype\Updater\Updater.exeO23 - Service: @%systemroot%\system32\spoolsv.exe,-1 (Spooler) - Unknown owner - C:\Windows\System32\spoolsv.exe (file missing)O23 - Service: @%SystemRoot%\system32\sppsvc.exe,-101 (sppsvc) - Unknown owner - C:\Windows\system32\sppsvc.exe (file missing)O23 - Service: Steam Client Service - Valve Corporation - C:\Program Files (x86)\Common Files\Steam\SteamService.exeO23 - Service: @%SystemRoot%\system32\ui0detect.exe,-101 (UI0Detect) - Unknown owner - C:\Windows\system32\UI0Detect.exe (file missing)O23 - Service: Update Surftastic - Unknown owner - C:\Program Files (x86)\Surftastic\updateSurftastic.exeO23 - Service: Util Surftastic - Unknown owner - C:\Program Files (x86)\Surftastic\bin\utilSurftastic.exeO23 - Service: @%SystemRoot%\system32\vaultsvc.dll,-1003 (VaultSvc) - Unknown owner - C:\Windows\system32\lsass.exe (file missing)O23 - Service: @%SystemRoot%\system32\vds.exe,-100 (vds) - Unknown owner - C:\Windows\System32\vds.exe (file missing)O23 - Service: @%systemroot%\system32\vssvc.exe,-102 (VSS) - Unknown owner - C:\Windows\system32\vssvc.exe (file missing)O23 - Service: @%SystemRoot%\system32\Wat\WatUX.exe,-601 (WatAdminSvc) - Unknown owner - C:\Windows\system32\Wat\WatAdminSvc.exe (file missing)O23 - Service: @%systemroot%\system32\wbengine.exe,-104 (wbengine) - Unknown owner - C:\Windows\system32\wbengine.exe (file missing)O23 - Service: @%Systemroot%\system32\wbem\wmiapsrv.exe,-110 (wmiApSrv) - Unknown owner - C:\Windows\system32\wbem\WmiApSrv.exe (file missing)O23 - Service: @%PROGRAMFILES%\Windows Media Player\wmpnetwk.exe,-101 (WMPNetworkSvc) - Unknown owner - C:\Program Files (x86)\Windows Media Player\wmpnetwk.exe (file missing)--End of file - 9375 bytesNeví někdo co bych měl udělat aby mi to fungovalo ? :) [Ukázat celý příspěvek](javascript:void(0))
Já to číst nebudu, nauč se ukládat tyhle "tapety" do *.txt a ten sem upni, pak se podívám.
<h1>řešení</h1><p>běh:</p><pre class="lang-sh prettyprint-override"><code>$ sudo apt update </code></pre><p>toto je <code>apt</code> a<strong> not </strong><code>apt-get</code></p><p>poté zadejte <code>y</code> a přijměte změnu:</p><pre class="lang-sh prettyprint-override"><code>e: repository 'http://dl.google.com/linux/chrome/deb stable release' changed its 'origin' value from 'google, inc.' to 'google llc' n: this must be accepted explicitly before updates for this repository can be applied. see apt-secure(8) manpage for details. do you want to accept these changes and continue updating from this repository? [y/n] y </code></pre><p>chyba se znovu nezobrazí. chcete-li aktualizovat, je třeba spustit <code>sudo apt-get update</code> a <code>sudo apt-get upgrade</code> jako obvykle.</p><h1>podrobnosti</h1><p>jak je uvedeno v této otázce, tato chybová zpráva má zajistit, aby nový subjekt pojmenovaný<strong> google llc </strong>který stahujete aktualizace google chrome, byl stejný jako<strong> google, inc. </strong>že váš systém důvěřuje a ví podpis. přijetím této změny požádáte váš systém, aby důvěřoval<strong> google llc </strong>a v budoucnu od něj přijímal aktualizace google chrome.</p> <p>ach bože, myslím, že problém pramení ze smíchání schématu mysql různých verzí mysql. nejprve spusťte tento dotaz:</p><pre><code>desc mysql.user; </code></pre><p>pro mysql 5.6 získáte 43 sloupců</p><pre><code>mysql&gt; desc mysql.user; +++++++ | field | type | null | key | default | extra | +++++++ | host | char(60) | no | pri | | | | user | char(16) | no | pri | | | | password | char(41) | no | | | | | select\_priv | enum('n','y') | no | | n | | | insert\_priv | enum('n','y') | no | | n | | | update\_priv | enum('n','y') | no | | n | | | delete\_priv | enum('n','y') | no | | n | | | create\_priv | enum('n','y') | no | | n | | | drop\_priv | enum('n','y') | no | | n | | | reload\_priv | enum('n','y') | no | | n | | | shutdown\_priv | enum('n','y') | no | | n | | | process\_priv | enum('n','y') | no | | n | | | file\_priv | enum('n','y') | no | | n | | | grant\_priv | enum('n','y') | no | | n | | | references\_priv | enum('n','y') | no | | n | | | index\_priv | enum('n','y') | no | | n | | | alter\_priv | enum('n','y') | no | | n | | | show\_db\_priv | enum('n','y') | no | | n | | | super\_priv | enum('n','y') | no | | n | | | create\_tmp\_table\_priv | enum('n','y') | no | | n | | | lock\_tables\_priv | enum('n','y') | no | | n | | | execute\_priv | enum('n','y') | no | | n | | | repl\_slave\_priv | enum('n','y') | no | | n | | | repl\_client\_priv | enum('n','y') | no | | n | | | create\_view\_priv | enum('n','y') | no | | n | | | show\_view\_priv | enum('n','y') | no | | n | | | create\_routine\_priv | enum('n','y') | no | | n | | | alter\_routine\_priv | enum('n','y') | no | | n | | | create\_user\_priv | enum('n','y') | no | | n | | | event\_priv | enum('n','y') | no | | n | | | trigger\_priv | enum('n','y') | no | | n | | | create\_tablespace\_priv | enum('n','y') | no | | n | | | ssl\_type | enum('','any','x509','specified') | no | | | | | ssl\_cipher | blob | no | | null | | | x509\_issuer | blob | no | | null | | | x509\_subject | blob | no | | null | | | max\_questions | int(11) unsigned | no | | 0 | | | max\_updates | int(11) unsigned | no | | 0 | | | max\_connections | int(11) unsigned | no | | 0 | | | max\_user\_connections | int(11) unsigned | no | | 0 | | | plugin | char(64) | yes | | | | | authentication\_string | text | yes | | null | | | password\_expired | enum('n','y') | no | | n | | +++++++ 43 rows in set (0.15 sec) </code></pre><p>pro mysql 5.5 získáte 42 sloupců</p><pre><code>mysql&gt; desc mysql.user; +++++++ | field | type | null | key | default | extra | +++++++ | host | char(60) | no | pri | | | | user | char(16) | no | pri | | | | password | char(41) | no | | | | | select\_priv | enum('n','y') | no | | n | | | insert\_priv | enum('n','y') | no | | n | | | update\_priv | enum('n','y') | no | | n | | | delete\_priv | enum('n','y') | no | | n | | | create\_priv | enum('n','y') | no | | n | | | drop\_priv | enum('n','y') | no | | n | | | reload\_priv | enum('n','y') | no | | n | | | shutdown\_priv | enum('n','y') | no | | n | | | process\_priv | enum('n','y') | no | | n | | | file\_priv | enum('n','y') | no | | n | | | grant\_priv | enum('n','y') | no | | n | | | references\_priv | enum('n','y') | no | | n | | | index\_priv | enum('n','y') | no | | n | | | alter\_priv | enum('n','y') | no | | n | | | show\_db\_priv | enum('n','y') | no | | n | | | super\_priv | enum('n','y') | no | | n | | | create\_tmp\_table\_priv | enum('n','y') | no | | n | | | lock\_tables\_priv | enum('n','y') | no | | n | | | execute\_priv | enum('n','y') | no | | n | | | repl\_slave\_priv | enum('n','y') | no | | n | | | repl\_client\_priv | enum('n','y') | no | | n | | | create\_view\_priv | enum('n','y') | no | | n | | | show\_view\_priv | enum('n','y') | no | | n | | | create\_routine\_priv | enum('n','y') | no | | n | | | alter\_routine\_priv | enum('n','y') | no | | n | | | create\_user\_priv | enum('n','y') | no | | n | | | event\_priv | enum('n','y') | no | | n | | | trigger\_priv | enum('n','y') | no | | n | | | create\_tablespace\_priv | enum('n','y') | no | | n | | | ssl\_type | enum('','any','x509','specified') | no | | | | | ssl\_cipher | blob | no | | null | | | x509\_issuer | blob | no | | null | | | x509\_subject | blob | no | | null | | | max\_questions | int(11) unsigned | no | | 0 | | | max\_updates | int(11) unsigned | no | | 0 | | | max\_connections | int(11) unsigned | no | | 0 | | | max\_user\_connections | int(11) unsigned | no | | 0 | | | plugin | char(64) | yes | | | | | authentication\_string | text | yes | | null | | +++++++ 42 rows in set (0.01 sec) mysql&gt; </code></pre><p>pro mysql 5.1 získáte 39 sloupců</p><pre><code>mysql&gt; desc mysql.user; +++++++ | field | type | null | key | default | extra | +++++++ | host | char(60) | no | pri | | | | user | char(16) | no | pri | | | | password | char(41) | no | | | | | select\_priv | enum('n','y') | no | | n | | | insert\_priv | enum('n','y') | no | | n | | | update\_priv | enum('n','y') | no | | n | | | delete\_priv | enum('n','y') | no | | n | | | create\_priv | enum('n','y') | no | | n | | | drop\_priv | enum('n','y') | no | | n | | | reload\_priv | enum('n','y') | no | | n | | | shutdown\_priv | enum('n','y') | no | | n | | | process\_priv | enum('n','y') | no | | n | | | file\_priv | enum('n','y') | no | | n | | | grant\_priv | enum('n','y') | no | | n | | | references\_priv | enum('n','y') | no | | n | | | index\_priv | enum('n','y') | no | | n | | | alter\_priv | enum('n','y') | no | | n | | | show\_db\_priv | enum('n','y') | no | | n | | | super\_priv | enum('n','y') | no | | n | | | create\_tmp\_table\_priv | enum('n','y') | no | | n | | | lock\_tables\_priv | enum('n','y') | no | | n | | | execute\_priv | enum('n','y') | no | | n | | | repl\_slave\_priv | enum('n','y') | no | | n | | | repl\_client\_priv | enum('n','y') | no | | n | | | create\_view\_priv | enum('n','y') | no | | n | | | show\_view\_priv | enum('n','y') | no | | n | | | create\_routine\_priv | enum('n','y') | no | | n | | | alter\_routine\_priv | enum('n','y') | no | | n | | | create\_user\_priv | enum('n','y') | no | | n | | | event\_priv | enum('n','y') | no | | n | | | trigger\_priv | enum('n','y') | no | | n | | | ssl\_type | enum('','any','x509','specified') | no | | | | | ssl\_cipher | blob | no | | null | | | x509\_issuer | blob | no | | null | | | x509\_subject | blob | no | | null | | | max\_questions | int(11) unsigned | no | | 0 | | | max\_updates | int(11) unsigned | no | | 0 | | | max\_connections | int(11) unsigned | no | | 0 | | | max\_user\_connections | int(11) unsigned | no | | 0 | | +++++++ 39 rows in set (0.00 sec) mysql&gt; </code></pre><p>pro mysql 5.0 získáte 37 sloupců</p><pre><code>mysql&gt; desc mysql.user; +++++++ | field | type | null | key | default | extra | +++++++ | host | char(60) | no | pri | | | | user | char(16) | no | pri | | | | password | char(41) | no | | | | | select\_priv | enum('n','y') | no | | n | | | insert\_priv | enum('n','y') | no | | n | | | update\_priv | enum('n','y') | no | | n | | | delete\_priv | enum('n','y') | no | | n | | | create\_priv | enum('n','y') | no | | n | | | drop\_priv | enum('n','y') | no | | n | | | reload\_priv | enum('n','y') | no | | n | | | shutdown\_priv | enum('n','y') | no | | n | | | process\_priv | enum('n','y') | no | | n | | | file\_priv | enum('n','y') | no | | n | | | grant\_priv | enum('n','y') | no | | n | | | references\_priv | enum('n','y') | no | | n | | | index\_priv | enum('n','y') | no | | n | | | alter\_priv | enum('n','y') | no | | n | | | show\_db\_priv | enum('n','y') | no | | n | | | super\_priv | enum('n','y') | no | | n | | | create\_tmp\_table\_priv | enum('n','y') | no | | n | | | lock\_tables\_priv | enum('n','y') | no | | n | | | execute\_priv | enum('n','y') | no | | n | | | repl\_slave\_priv | enum('n','y') | no | | n | | | repl\_client\_priv | enum('n','y') | no | | n | | | create\_view\_priv | enum('n','y') | no | | n | | | show\_view\_priv | enum('n','y') | no | | n | | | create\_routine\_priv | enum('n','y') | no | | n | | | alter\_routine\_priv | enum('n','y') | no | | n | | | create\_user\_priv | enum('n','y') | no | | n | | | ssl\_type | enum('','any','x509','specified') | no | | | | | ssl\_cipher | blob | no | | null | | | x509\_issuer | blob | no | | null | | | x509\_subject | blob | no | | null | | | max\_questions | int(11) unsigned | no | | 0 | | | max\_updates | int(11) unsigned | no | | 0 | | | max\_connections | int(11) unsigned | no | | 0 | | | max\_user\_connections | int(11) unsigned | no | | 0 | | +++++++ 37 rows in set (0.01 sec) mysql&gt; </code></pre><p>pro mysql 4.x získáte 31 sloupců</p><pre><code>mysql&gt; desc mysql.user; +++++++ | field | type | null | key | default | extra | +++++++ | host | varchar(60) binary | | pri | | | | user | varchar(16) binary | | pri | | | | password | varchar(16) binary | | | | | | select\_priv | enum('n','y') | | | n | | | insert\_priv | enum('n','y') | | | n | | | update\_priv | enum('n','y') | | | n | | | delete\_priv | enum('n','y') | | | n | | | create\_priv | enum('n','y') | | | n | | | drop\_priv | enum('n','y') | | | n | | | reload\_priv | enum('n','y') | | | n | | | shutdown\_priv | enum('n','y') | | | n | | | process\_priv | enum('n','y') | | | n | | | file\_priv | enum('n','y') | | | n | | | grant\_priv | enum('n','y') | | | n | | | references\_priv | enum('n','y') | | | n | | | index\_priv | enum('n','y') | | | n | | | alter\_priv | enum('n','y') | | | n | | | show\_db\_priv | enum('n','y') | | | n | | | super\_priv | enum('n','y') | | | n | | | create\_tmp\_table\_priv | enum('n','y') | | | n | | | lock\_tables\_priv | enum('n','y') | | | n | | | execute\_priv | enum('n','y') | | | n | | | repl\_slave\_priv | enum('n','y') | | | n | | | repl\_client\_priv | enum('n','y') | | | n | | | ssl\_type | enum('','any','x509','specified') | | | | | | ssl\_cipher | blob | | | | | | x509\_issuer | blob | | | | | | x509\_subject | blob | | | | | | max\_questions | int(11) unsigned | | | 0 | | | max\_updates | int(11) unsigned | | | 0 | | | max\_connections | int(11) unsigned | | | 0 | | +++++++ 31 rows in set (0.01 sec) </code></pre><p>představte si tento scénář:</p><ul> <li>nainstalujete 5.0</li> <li>odinstalujete 5.0</li> <li>zapomněli jste se přesunout/var/lib/mysql z cesty</li> <li>nainstalujete 5.1</li> </ul><p>uživatelská oprávnění se začnou posouvat. kdykoli spustíte <code>show grants;</code>, je obtížné očekávat sloupce na specifických místech v mysql.user (vzhledem k tomu, že mysql.user je myisam a jeho row\_format je dynamic (výchozí)). je velmi snadné vidět, jak uživatel náhle ztratí oprávnění, když znovu načtete verzi mysql 5.0 mysql.user do instance mysql 5.1.</p><p>v budoucnu, pokud byste se někdy rozhodli znovu načíst uživatele do mysql, zkuste uživatele výpisem do textového souboru pomocí <a href="http://www.percona.com/doc/percona-toolkit/2.0/pt-show-grants.html"><strong> pt-show-grantů </strong></a> spíše než mysqldump.</p><p>vlastně jsem psal svou vlastní verzi pt-show-grantů takto:</p><pre><code>mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -a -e"select concat('show grants for ''',user,'''@''',host,''';') from mysql.user where user&lt;&gt;''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -a | sed 's/$/;/g' &gt; mysqlusergrants.sql </code></pre><p>tím vzniknou všechny uživatelské granty jako sql, což je mnohem přenosnější než standardní techniky mysql. jednoduše znovu načtěte skript sql a provedou se granty. samozřejmě, že takové překládky jsou kompatibilní pouze dopředu, nikdy zpět.</p> <p><strong> aktualizace 5 </strong> kořenovým problémem (heh) u modelu ca je to, že v obecné praxi může kterýkoli ca vydávat certifikáty pro jakoukoli doménu, takže jste zranitelní na nejslabší článek. pokud jde o to, komu můžete věřit, pochybuji, že seznam je vůbec dlouhý, protože sázky jsou vysoké a bezpečnost je tvrdá. doporučuji příspěvek christophera soghoiana k tomuto tématu, který objasňuje různé přístupy, které vlády po celém světě používají k získání přístupu k soukromým uživatelským datům - ať už přímým požadováním od společností, které provozují cloudové služby, prostřednictvím odposlechu, nebo stále více prostřednictvím nátlaku ca or hacks: <a href="http://paranoia.dubfire.net/2011/09/forces-that-led-to-diginotar-hack.html">slabá paranoia: síly, které vedly k hacknutí diginotar</a> .</p><p>zde uvádím některá specifika a končí odkazy na některé potenciální opravy.</p><p>v roce 2009 společnost etisalat (60% vlastněná vládou spojených arabských emirátů) představila neškodně vypadající opravu blackberry, která do zařízení rim vložila spyware, což umožnilo monitorování e-mailů, takže ji lze jen stěží považovat za důvěryhodnou. je to však v mnoha důvěryhodných seznamech ca: <a href="http://arstechnica.com/business/news/2009/07/mobile-carrier-rolls-out-spyware-as-a-3g-update.ars">http://arstechnica.com/business/news/2009/07/mobile-carrier-rolls-out-spyware-as-a-3g-update.ars</a> </p><p><strong> aktualizace 1 </strong> viz také příklad úspěšného útoku, údajně íránského jménem <a href="http://pastebin.com/u/comodohacker">comodohacker</a> , proti comodo: <a href="http://www.f-secure.com/weblog/archives/00002128.html">rogue ssl certifikáty ("case comodogate") - f-secure weblog</a> . f-secure bere na vědomí, že mozilla zahrnuje certifikáty vydané ca v číně, izraeli, bermudě, jižní africe, estonsku, rumunsku, slovensku, španělsku, norsku, kolumbii, francii, tchaj-wanu, velké británii, nizozemsku, turecku, usa, hongkongu, japonsku , maďarsko, německo a švýcarsko.</p><p>tunisko je další zemí, která provozuje široce důvěryhodnou certifikační autoritu, a existuje také dobrá dokumentace opatření jejich vlády k invazi do soukromí: <a href="http://www.theatlantic.com/technology/archive/2011/01/the-inside-story-of-how-facebook-responded-to-tunisian-hacks/70044/">vnitřní příběh o tom, jak facebook reagoval na tuniské hacky - alexis madrigal - technologie - atlantik</a> </p><p>mozilla zaznamenává další sporný postup, na který si dejte pozor: ca, které umožňují partnerovi ra vydávat certs přímo z kořenového adresáře, spíše než prostřednictvím zprostředkovatele: <a href="http://blog.mozilla.com/security/2011/03/25/comodo-certificate-issue-follow-up/">vydání certifikátu comodo - pokračování na blogu mozilla security</a> .<br> viz také podrobnější informace, včetně spekulací o nároku na zodpovědnost osamělého íránského hackera <a href="http://www.freedom-to-tinker.com/blog/sjs/web-browsers-and-comodo-disclose-successful-certificate-authority-attack-perhaps-iran">webové prohlížeče a comodo zveřejňují úspěšný útok certifikační autority, snad od íránu | svoboda tinker</a> </p><p><strong> aktualizace 3 </strong>: další úspěšný útok zdánlivě také comodohackerem byl proti <a href="http://en.wikipedia.org/wiki/diginotar">diginotar</a> ca. jejich web byl od roku 2009 kompromitován, ale to nebylo zaznamenáno, dokud diginotar nebyl v roce 2011 v íránu použit k podepisování falešných certifikátů pro weby google, yahoo !, mozilla wordpress a projekt tor. diginotar neodhalil své znalosti o vniknutí na své stránky déle než měsíc. více na <a href="https://freedom-to-tinker.com/blog/sjs/diginotar-hack-highlights-critical-failures-our-ssl-web-security-model">diginotar hack upozorňuje na kritická selhání našeho ssl modelu webové bezpečnosti | svoboda tinker</a> .</p><p>hádal bych, že rozsah zranitelnosti různých ca je velmi různý, stejně jako jejich užitečnost. takže bych navrhl přeorientovat vaši strategii. když ji můžete zúžit na konkrétní aktiva, která se pokoušíte chránit, stačí smazat všechny ca, s výjimkou těch, které jsou nezbytné pro použití těchto aktiv. v opačném případě zvažte vyloučení certifikačních autorit, které považujete za nejzranitelnější vůči těm, kteří se zajímají o vaše aktiva, nebo o nejméně populární, jen kvůli redukci povrchu útoku. přijměte však skutečnost, že budete i nadále náchylní k sofistikovaným útokům i proti nejoblíbenějším a nejpečlivějším ca.</p><p><strong> aktualizace 2 </strong>: existuje skvělý příspěvek o tom, jak opravit naši nebezpečnou infrastrukturu ca ve společnosti freedom to tinker: <a href="http://www.freedom-to-tinker.com/blog/dwallach/building-better-ca-infrastructure">budování lepší infrastruktury ca</a> </p><p>hovoří o těchto inovacích:</p><ul> <li> <p> <a href="http://www.imperialviolet.org/2010/08/16/dnssectls.html">imperialviolet - dnssec a tls</a> </p> </li> <li> <p> <a href="http://www.networknotary.org/">síťový notář - perspektivy: vylepšení autentizace hostitele ve stylu ssh pomocí vícecestné síťové sondy</a> </p> </li> <li> <p> <a href="http://googleonlinesecurity.blogspot.com/2011/04/improving-ssl-certificate-security.html">blog zabezpečení google online: zlepšení zabezpečení certifikátů ssl</a> </p> </li> </ul><p><strong> aktualizace 4 </strong> jeden z našich blogů o bezpečnosti it v srpnu 2011 zahrnuje také případ přechodu na server dnssec: <a href="http://security.blogoverflow.com/2011/08/31/a-risk-based-look-at-fixing-the-certificate-authority-problem/">pohled na opravu zaměřený na rizika problém s certifikační autoritou "stack exchange security blog</a> </p><p><strong> aktualizace 6 </strong> několik certifikačních autorit bylo chyceno v rozporu s pravidly. to zahrnuje francouzskou agenturu pro kybernetickou energii (anssi) a společnost trustwave, z nichž každá byla <a href="http://arstechnica.com/security/2013/12/french-agency-caught-minting-ssl-certificates-impersonating-google/">spojená se spoofingem digitálních certifikátů</a> .</p><p><strong> aktualizace 7 </strong> ještě další sada „nesprávně vydaných certifikátů“ prostřednictvím indického kontrolóra certifikačních orgánů (indie cca) v roce 2014: <a href="http://googleonlinesecurity.blogspot.com.es/2014/07/maintaining-digital-certificate-security.html">google online security blog: zachování zabezpečení digitálních certifikátů</a> </p><p>viz také otázka <a href="https://security.stackexchange.com/q/47230/453">transparentnost certifikát</a> , která vypadá jako užitečný přístup k objevování špatných certifikátů a porušování zásad dříve.</p> <p><em> aktualizovat: chrome 58+ skryl tyto a další ladicí zprávy ve výchozím nastavení. chcete-li je zobrazit, klepněte na šipku vedle položky „info&ldquo; a vyberte položku „verbose&ldquo;. </em></p><p><em> aktualizace 2: chrome 57 je ve výchozím nastavení zapnut. chcete-li je znovu zapnout, musíte povolit filtry a zrušit zaškrtnutí políčka „skrýt porušení&ldquo;. </em></p><blockquote> <p>najednou se objeví, když se do projektu zapojí někdo jiný</p> </blockquote><p>myslím, že je to více pravděpodobné, že jste aktualizovali na chrome 56. toto varování je (imo) báječná nová funkce - prosím, vypněte ji pouze v případě, že jste zoufalí a váš hodnotitel vás odtrhne. základní problémy jsou v jiných prohlížečích, ale prohlížeče vám neříkají, že je problém. vstupenka chromium je zde, ale na ní není žádná zajímavá diskuse: <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=662497">https://bugs.chromium.org/p/chromium/issues/detail?id=662497</a> </p><p>tyto zprávy jsou varování namísto chyb, protože to opravdu nebude způsobovat velké problémy. to může způsobit upuštění rámců nebo jinak způsobit méně hladký zážitek.</p><p>stojí za to prozkoumat a upevnit, aby se zvýšila kvalita vaší aplikace. způsob, jak toho dosáhnout, je věnovat pozornost okolnostem, ve kterých se zprávy zobrazují, a provádět testování výkonu, aby se zúžit, kde se problém vyskytuje. nejjednodušším způsobem, jak spustit testování výkonu, je vložit nějaký kód takto:</p><pre><code>function somemethodithinkmightbeslow() { const starttime = performance.now(); // do the normal stuff for this function const duration = performance.now() - starttime; console.log(`somemethodithinkmightbeslow took ${duration}ms`); } </code></pre><p>chcete-li být pokročilejší, můžete také použít profiler chrome: <a href="https://developers.google.com/web/tools/chrome-devtools/rendering-tools/">https://developers.google.com/web/tools/chrome-devtools/rendering-tools/</a> </p><p>nebo použijte knihovnu benchmarking, jako je tato: <a href="https://benchmarkjs.com/">https://benchmarkjs.com/</a> </p><p>jakmile najdete nějaký kód, který trvá dlouhou dobu (50 ms je práh chrome), máte několik možností:</p><ol> <li>vystřihněte některé z těchto úkolů, které mohou být zbytečné</li> <li>zjistěte, jak dělat stejný úkol rychleji</li> <li>rozdělte kód do několika asynchronních kroků</li> </ol><p>(1) a (2) může být obtížné nebo nemožné. ale někdy je to opravdu snadné a měly by to být vaše první pokusy. v případě potřeby by mělo být vždy možné (3). k tomu budete používat něco jako</p><pre><code>settimeout(functiontorunverysoonbutnotnow); </code></pre><p>nebo</p><pre><code>// this one is not available natively in ie, but there are polyfills available. promise.resolve().then(functiontorunverysoonbutnotnow); </code></pre><p>více o asynchronní povaze javascriptu si můžete přečíst zde:</p><p> <a href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/</a> </p> <p>udělali jsme to (uvedené v dmoz) pro stack overflow, server fault a super user.</p><p>od té doby jsem si všiml, že text dmoz pro stack overflow se objevuje na mnoha místech.</p><blockquote> <p> <a href="http://search.dmoz.org/cgi-bin/search?search=stack+overflow">http://search.dmoz.org/cgi-bin/search?search=stack+overflow</a> </p> <p>webové stránky s otevřeným adresářem (1-5 z 5)</p> <p>stack overflow - <strong> jazykově nezávislý spolupracující editační web s otázkami a odpověďmi pro programátory. </strong><br> - <a href="https://stackoverflow.com/">https://stackoverflow.com/</a> reference: zeptejte se odborníka: počítače a technologie (1)</p> </blockquote><p>a konkrétně poznamenávám, že naše shrnutí výsledků google je <em> přesný text </em></p><blockquote> <p> <a href="http://www.google.com/#hl=en&amp;source=hp&amp;q=stack+overflow">http://www.google.com/#hl=cs&amp;source=hp&amp;q=stack+overflow</a> </p> <p>přetečení zásobníku<br> <strong> jazykově nezávislá spolupracující editovaná stránka otázek a odpovědí pro programátory </strong></p> </blockquote><p>takže bych hlasoval „ano“, stále je vybírána řada adresářů - a google.</p><p>více:<br> <a href="http://sites.google.com/site/jeanmanco/googleanddmoz">http://sites.google.com/site/jeanmanco/googleanddmoz</a> </p> Zálohujte si věci jinam, formátujte pomalým formátem nebo přepište ve skartovacím programu (pokud nechcete, aby někdo časem zneužil uložená data) a reklamujte. Zřejmě nějaká mechanická závada ... nezlepší se to <p><strong> [~ # ~] aktualizováno [~ # ~] </strong></p><p>zkontroloval bych následující:</p><ol> <li> <p>protokoly. pokud máte root přístup, měli byste zkontrolovat věci jako <code>history</code>, které vám poskytnou historii příkazů a protokolované soubory v <code>/var/logs</code>.</p> </li> <li> <p>základní hodnota. pokud máte základní linii jako hash souborů pro práci s aplikačními a systémovými soubory, pomůže vám to hodně. zálohy můžete také použít k porovnání předchozího stavu. pokud používáte zálohu k porovnání souborů, použijte, pokud je to možné, o něco starší. stránka mohla být před nějakou dobou ohrožena a teprve nyní je přesměrování aktivováno.</p> </li> <li> <p>zkontrolujte jakékoli položky. soubory nemusí být na vašem serveru. mohou to být skripty, jako jsou značky typu <code>&lt;script src=”http://baddomain.com/s.js” /&gt;</code> nebo <code>iframe</code>. nevylučujte také obrázky, soubory pdf flash (swf), video soubory. je docela běžným trikem vkládání odkazů do souborů jiného typu obsahu. navrhuji, abyste je zkontrolovali ručně, zejména na začátku a na konci souboru. soubor může být kompletně odkazem/html/javascript nebo se může jednat o legitimní obrazový soubor s koncem odkazu na konci souboru.</p> </li> <li> <p>zkontrolujte neobvyklá data souborů, velikosti a oprávnění, např. 777.</p> </li> <li> <p>zkontrolujte neobvyklé úlohy u cron. někdo ohrožující systém často opustí zadní dveře, aby se sem dostal znovu a znovu. cron je velmi populární způsob, jak toho dosáhnout, pokud se jim podaří dostat se tak daleko.</p> </li> <li> <p>zkontrolujte, zda neexistují soubory. pravděpodobně nebudete mít přístup k protokolům, ale jejich absence je stejně známkou, že někdo po sobě vyčistil.</p> </li> <li> <p>použijte vyhledávače. není divu, že vyhledávače dokáží najít vše. použijte direktivy jako <code>site:</code> <code>site:yoursitehere.com baddomain.com</code> zjistěte, zda se vám nepodaří získat nějaké zásahy.</p> </li> <li> <p>často bude odkaz nebo přesměrování zamlženo, takže by měl být pečlivě analyzován dlouhý javascriptový kód s proměnnými s jedním písmenem.</p> </li> <li> <p>zachyťte pakety pomocí nástroje jako wireshark nebo tcpdump ze zabezpečené pracovní stanice na web. uložte jej do souboru a vyhledejte v něm části adresy url.</p> </li> <li> <p>zkontrolujte záznamy databáze, které mohou být dotazovány nebo aktualizovány. odkaz mohl být vložen do databáze, nikoli do php.</p> </li> <li> <p>nevylučujte pracovní stanici klienta. v případě potřeby použijte bezplatný online antivirový program. zkontrolujte také <code>nslookup</code> a podívejte se, k čemu se to vyřeší. zkontrolujte rozšíření prohlížeče, vymažte mezipaměť a zkontrolujte soubory <code>hosts</code>.</p> </li> </ol><p>chcete-li to vyčistit (pokud jste ohroženi), musíte se vrátit zpět na holý kov a znovu jej nainstalovat. je to bolestivé, ale je to jediný způsob, jak se ujistit, že máte všechno.</p><p>chcete-li tomu zabránit v budoucnu, měli byste dělat následující (i když již možná některé z nich děláte):</p><ol> <li> <p>vytvářejte servery, včetně používání doporučení výrobce o bezpečných konfiguracích, pomocí aktuálního softwaru. používejte přísnou kontrolu zabezpečení, jako jsou oprávnění, zásady týkající se hesel. viz také <a href="https://security.stackexchange.com/questions/7141/folder-and-file-permission-shared-host-advice/7171#7171">sdílená oprávnění ke složkám a souborům doporučení hostitele</a> .</p> </li> <li> <p>implementujte postupy kontroly kvality, jako je testování v prostředí s nízkým zabezpečením, kontrola kódu a testování.</p> </li> <li> <p>nechte zranitelnost své webové aplikace/webu ověřit alespoň jednou profesionálním certifikovaným testerem. podívejte se na testery certifikované evropskou radou, iso 27001 a pci. <a href="http://www.eccouncil.org/certification/licensed\_penetration\_tester.aspx">http://www.eccouncil.org/certification/licensed\_penetration\_tester.aspx</a> </p> </li> <li> <p>podívejte se na stránky owasp www.owasp.org a <a href="http://phpsec.org/projects/guide/2.html">http://phpsec.org/projects/guide/2.html</a> , kde najdete zdroje zabezpečení webových aplikací.</p> </li> <li> <p>použijte nástroje systému prevence narušení (ips). v závislosti na poskytovateli hostingu však můžete mít omezení ohledně toho, co můžete použít. host založené ips nástroje by měly být v pořádku, pokud máte vyhrazený virtuální počítač.</p> </li> </ol><p>doufám, že to pomůže. jinak byste mohli poskytnout více informací o systémech, které používáte?</p> <p>testoval jsem několik různých algoritmů, měření rychlosti a počtu kolizí.</p><p>použil jsem tři různé sady klíčů:</p><ul> <li> <a href="http://www.sitopreferito.it/html/all\_english\_words.html">seznam 216 553 anglických slov</a> <sup> <a href="https://web.archive.org/web/20061231134037/http://www.sitopreferito.it/html/all\_english\_words.html">???? archiv</a> </sup>(malými písmeny)</li> <li>čísla <code>"1"</code> to <code>"216553"</code> (přemýšlejte o kódech zip a <a href="https://web.archive.org/web/20190119000003/https://blogs.msdn.microsoft.com/ericlippert/2003/09/19/arrrrr-capn-eric-be-learnin-about-threadin-the-harrrrd-way/">jak špatný hash stáhl msn.com</a> <sup> <a href="https://archive.ph/m7h87">???? archiv</a> </sup>)</li> <li>216 553 „náhodných“ (tj. <a href="http://www.ietf.org/rfc/rfc4122.txt">id typu 4</a> ) guid</li> </ul><p>pro každý korpus byl zaznamenán počet srážek a průměrná doba strávená hashováním.</p><p>testoval jsem:</p><ul> <li> <a href="http://www.cse.yorku.ca/~oz/hash.html">djb2</a> </li> <li> <a href="http://www.cse.yorku.ca/~oz/hash.html">djb2a</a> (varianta používající <code>xor</code> spíše než <code>+</code>)</li> <li> <a href="http://en.wikipedia.org/wiki/fowler%e2%80%93noll%e2%80%93vo\_hash\_function">fnv-1</a> (32-bit)</li> <li> <a href="http://en.wikipedia.org/wiki/fowler%e2%80%93noll%e2%80%93vo\_hash\_function">fnv-1a</a> (32-bit)</li> <li> <a href="http://www.cse.yorku.ca/~oz/hash.html"> sdbm </a> </li> <li>crc32</li> <li> <a href="http://en.wikipedia.org/wiki/murmurhash">murmur2</a> (32-bit)</li> <li> <a href="http://landman-code.blogspot.ca/2008/06/superfasthash-from-paul-hsieh.html">superfasthash</a> </li> </ul><h2>výsledek</h2><p>každý výsledek obsahuje průměrnou dobu hash a počet srážek</p><pre><code>hash lowercase random uuid numbers     murmur 145 ns 259 ns 92 ns 6 collis 5 collis 0 collis fnv-1a 152 ns 504 ns 86 ns 4 collis 4 collis 0 collis fnv-1 184 ns 730 ns 92 ns 1 collis 5 collis 0 collis▪ dbj2a 158 ns 443 ns 91 ns 5 collis 6 collis 0 collis▪▪▪ djb2 156 ns 437 ns 93 ns 7 collis 6 collis 0 collis▪▪▪ sdbm 148 ns 484 ns 90 ns 4 collis 6 collis 0 collis** superfasthash 164 ns 344 ns 118 ns 85 collis 4 collis 18742 collis crc32 250 ns 946 ns 130 ns 2 collis 0 collis 0 collis loselose 338 ns - - 215178 collis </code></pre><p><strong> poznámky </strong>:</p><ul> <li> <a href="http://www.cse.yorku.ca/~oz/hash.html">loselose algoritmus</a> (kde hash = hash + character) je skutečně <strong> <em> hrozné </em> </strong>. všechno se srazí do stejných 1375 kbelíků</li> <li>superfasthash je rychlý a věci vypadají docela rozptýleny; podle mého dobrota srážky <em> číslo </em>. doufám, že <a href="http://landman-code.blogspot.ca/2008/06/superfasthash-from-paul-hsieh.html">ten, kdo to přenesl, má něco špatného; je to docela špatné</a> </li> <li>crc32 je <em> celkem dobrá </em>. pomalejší a 1k tabulka vyhledávání</li> </ul><h2>dochází ke kolizím?</h2><p>ano. začal jsem psát svůj testovací program, abych zjistil, zda ke kolizím hashů <em> skutečně </em> došlo - a nejde jen o teoretický konstrukt. stávají se skutečně:</p><p><strong> fnv-1 srážky </strong></p><ul> <li><code>creamwove</code> srazí s <code>quists</code></li> </ul><p><strong> srážky fnv-1a </strong></p><ul> <li><code>costarring</code> srazí s <code>liquid</code></li> <li><code>declinate</code> srazí s <code>macallums</code></li> <li><code>altarage</code> srazí s <code>zinke</code></li> <li><code>altarages</code> srazí s <code>zinkes</code></li> </ul><p><strong> kolize murmur2 </strong></p><ul> <li><code>cataract</code> srazí s <code>periti</code></li> <li><code>roquette</code> srazí s <code>skivie</code></li> <li><code>shawl</code> srazí s <code>stormbound</code></li> <li><code>dowlases</code> srazí s <code>tramontane</code></li> <li><code>cricketings</code> srazí s <code>twanger</code></li> <li><code>longans</code> srazí s <code>whigs</code></li> </ul><p><strong> srážky djb2 </strong></p><ul> <li><code>hetairas</code> srazí s <code>mentioner</code></li> <li><code>heliotropes</code> srazí s <code>neurospora</code></li> <li><code>depravement</code> srazí s <code>serafins</code></li> <li><code>stylist</code> srazí s <code>subgenera</code></li> <li><code>joyful</code> srazí s <code>synaphea</code></li> <li><code>redescribed</code> srazí s <code>urites</code></li> <li><code>dram</code> srazí s <code>vivency</code></li> </ul><p><strong> srážky djb2a </strong></p><ul> <li><code>haggadot</code> srazí s <code>loathsomenesses</code></li> <li><code>adorablenesses</code> srazí s <code>rentability</code></li> <li><code>playwright</code> srazí s <code>snush</code></li> <li><code>playwrighting</code> srazí s <code>snushing</code></li> <li><code>treponematoses</code> srazí s <code>waterbeds</code></li> </ul><p><strong> kolize crc32 </strong></p><ul> <li><code>codding</code> srazí s <code>gnu</code></li> <li><code>exhibiters</code> srazí s <code>schlager</code></li> </ul><p><strong> kolize superfasthash </strong></p><ul> <li><code>dahabiah</code> srazí s <code>drapability</code></li> <li><code>encharm</code> srazí s <code>enclave</code></li> <li><code>grahams</code> srazí s <code>gramary</code></li> <li>... odstřihněte 79 kolizí ...</li> <li><code>night</code> srazí s <code>vigil</code></li> <li><code>nights</code> srazí s <code>vigils</code></li> <li><code>finks</code> srazí s <code>vinic</code></li> </ul><h2>náhodnost</h2><p>dalším subjektivním měřítkem je, jak náhodně jsou hash rozděleny. mapování výsledných tabulek ukazuje, jak rovnoměrně jsou data distribuována. všechny hašovací funkce vykazují dobré rozdělení při lineárním mapování tabulky:</p><p><img src="https://i.stack.imgur.com/bmysu.png" alt="enter image description here"></p><p>nebo jako <a href="http://en.wikipedia.org/wiki/hilbert\_curve"><em> hilbertova mapa </em></a> ( <a href="http://xkcd.com/195/">xkcd je vždy relevantní</a> ):</p><p><img src="https://i.stack.imgur.com/n8r3k.png" alt="enter image description here"></p><p>s výjimkou hashovacích řetězců čísel (<code>"1"</code>, <code>"2"</code>, ..., <code>"216553"</code>) (například <a href="https://web.archive.org/web/20190119000003/https://blogs.msdn.microsoft.com/ericlippert/2003/09/19/arrrrr-capn-eric-be-learnin-about-threadin-the-harrrrd-way/">psč</a> ), kde se ve většině hashovacích algoritmů začínají objevovat vzorce:</p><p><strong> [~ # ~] sdbm [~ # ~] </strong>:</p><p><img src="https://i.stack.imgur.com/1juxp.jpg" alt="enter image description here"></p><p><strong> djb2a </strong>:</p><p><img src="https://i.stack.imgur.com/0wjpn.jpg" alt="enter image description here"></p><p><strong> fnv-1 </strong>:</p><p><img src="https://i.stack.imgur.com/0f4l3.jpg" alt="enter image description here"></p><p>všechny kromě <strong> fnv-1a </strong>, které mi stále vypadají celkem náhodně:</p><p><img src="https://i.stack.imgur.com/wevjm.jpg" alt="enter image description here"></p><p>zdá se, že <strong> murmur2 </strong> má ještě lepší náhodnost s <code>numbers</code> než <code>fnv-1a</code>:</p><p><img src="https://i.stack.imgur.com/jywbf.png" alt="enter image description here"></p><blockquote> <p><em> když se podívám na <code>fnv-1a</code> "number" map, i <strong> think </strong> vidím jemné vertikální vzory. s murmurem nevidím vůbec žádné vzory. co si myslíte? </em></p> </blockquote><hr><p>extra <strong> <code>*</code> </strong> v tabulce označuje, jak špatná je náhodnost. s <code>fnv-1a</code> je nejlepší a <strong> <code>djb2x</code> </strong> je nejhorší:</p><pre><code> murmur2: . fnv-1a: . fnv-1: ▪ djb2: ▪▪ djb2a: ▪▪ sdbm: ▪▪▪ superfasthash: . crc: ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ loselose: ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ ▪ ▪▪▪▪▪▪▪▪▪▪▪▪▪ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ </code></pre><p>původně jsem napsal tento program, abych se rozhodl, jestli jsem dokonce musel <em> worry </em> o kolizích: ano.</p><p>a pak se ukázalo, že hashovací funkce byly dostatečně náhodné.</p><h2>algoritmus fnv-1a</h2><p>hash fnv1 přichází ve variantách, které vracejí 32, 64, 128, 256, 512 a 1024 bitů hashe.</p><p> <a href="http://en.wikipedia.org/wiki/fowler%e2%80%93noll%e2%80%93vo\_hash\_function">fnv-1a algoritmus</a> je:</p><pre><code>hash = fnv\_offset\_basis for each octetofdata to be hashed hash = hash xor octetofdata hash = hash * fnv\_prime return hash </code></pre><p>kde konstanty <code>fnv\_offset\_basis</code> a <code>fnv\_prime</code> záleží na požadované velikosti hash:</p><pre><code>hash size  32-bit prime: 2^24 + 2^8 + 0x93 = 16777619 offset: 2166136261 64-bit prime: 2^40 + 2^8 + 0xb3 = 1099511628211 offset: 14695981039346656037 128-bit prime: 2^88 + 2^8 + 0x3b = 309485009821345068724781371 offset: 144066263297769815596495629667062367629 256-bit prime: 2^168 + 2^8 + 0x63 = 374144419156711147060143317175368453031918731002211 offset: 100029257958052580907070968620625704837092796014241193945225284501741471925557 512-bit prime: 2^344 + 2^8 + 0x57 = 35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759 offset: 9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785 1024-bit prime: 2^680 + 2^8 + 0x8d = 5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573 offset: 1419779506494762106872207064140321832088062279544193396087847491461758272325229673230371772250864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915 </code></pre><p>podrobnosti viz <a href="http://www.isthe.com/chongo/tech/comp/fnv/index.html#fnv-param">hlavní stránka fnv</a> .</p><p>všechny mé výsledky jsou u 32bitové varianty.</p><h2>fnv-1 lepší než fnv-1a?</h2><p>ne. fnv-1a je všude lepší. při použití korpusu anglického slova došlo k dalším kolizím s fnv-1a:</p><pre><code>hash word collisions   fnv-1 1 fnv-1a 4 </code></pre><p>nyní porovnejte malá a velká písmena:</p><pre><code>hash lowercase word collisions uppercase word collisions    fnv-1 1 9 fnv-1a 4 11 </code></pre><p>v tomto případě fnv-1a není <em> "400%" </em> horší než fn-1, pouze o 20% horší.</p><p>myslím, že důležitější s sebou je, že existují dvě třídy algoritmů, pokud jde o kolize:</p><ul> <li><strong> vzácné srážky </strong>: fnv-1, fnv-1a, djb2, djb2a, sdbm</li> <li><strong> běžné srážky </strong>: superfasthash, loselose</li> </ul><p>a pak je tu, jak rovnoměrně jsou hashe:</p><ul> <li><strong> vynikající distribuce: </strong> murmur2, fnv-1a, superfasthas</li> <li><strong> vynikající distribuce: </strong> fnv-1</li> <li><strong> dobrá distribuce: </strong> sdbm, djb2, djb2a</li> <li><strong> hrozné rozdělení: </strong> loselose</li> </ul><hr><p><strong> aktualizace </strong></p><p>mumlání? <em> jistě, proč ne </em></p><hr><p><strong> aktualizace </strong></p><p>@whatshisname přemýšlel, jak by <strong> crc32 </strong> provedl přidaná čísla do tabulky.</p><p>crc32 je <em> celkem dobrá </em>. několik kolizí, ale pomalejší, a režie 1k tabulky vyhledávání.</p><p><em> vystřihněte všechny chybné informace o distribuci crc - můj špatný </em></p><hr><p>až do dneška jsem měl v úmyslu používat fnv-1a jako můj <em> de facto </em> hash-hashovací algoritmus tabulky. ale teď přecházím na murmur2:</p><ul> <li>rychleji</li> <li>lepší <em> randomnessification </em> všech tříd vstupů</li> </ul><p>a opravdu, <em> opravdu </em> doufám, že je něco špatného s <a href="http://landman-code.blogspot.ca/2008/06/superfasthash-from-paul-hsieh.html"><code>superfasthash</code> algoritmus, který jsem našel</a> ; je příliš špatné na to, aby byl tak populární, jak je.</p><p><strong> aktualizace: </strong> z <a href="http://code.google.com/p/smhasher/wiki/murmurhash3">domovská stránka murmurhash3 na googl</a> :</p><blockquote> <p>(1) - superfasthash má velmi špatné kolizní vlastnosti, které byly dokumentovány jinde.</p> </blockquote><p>takže to nejsem jen já.</p><p><strong> aktualizace: </strong> uvědomil jsem si, proč je <code>murmur</code> rychlejší než ostatní. murmurhash2 pracuje na čtyřech bytech najednou. většina algoritmů je <em> byte byte </em>:</p><pre><code>for each octet in key addtheoctettothehash </code></pre><p>to znamená, že jak se klíče prodlužují, murmur dostane svou šanci září.</p><hr><p><strong> aktualizace </strong></p><h2> <a href="http://blogs.msdn.com/b/oldnewthing/archive/2012/05/23/10309199.aspx">guid jsou navrženy tak, aby byly jedinečné, nikoli náhodné</a> </h2><p>včasný příspěvek od raymonda chena opakuje skutečnost, že guid <em> "random" </em> guid nejsou určeny pro jejich náhodnost. oni nebo jejich podmnožina jsou nevhodní jako hashovací klíč:</p><blockquote> <p>ani u verze 4 guid algoritmus není zaručeno, že bude nepředvídatelný, protože tento algoritmus nespecifikuje kvalitu generátoru náhodných čísel. <a href="http://en.wikipedia.org/wiki/globally\_unique\_identifier">článek wikipedia pro guid obsahuje primární výzkum, který navrhuje</a> , že budoucí a předchozí guid lze předpovídat na základě znalosti stavu generátoru náhodných čísel, protože generátor není kryptograficky silný.</p> </blockquote><p>náhodnost není totéž jako vyhýbání se kolizi; což je důvod, proč by bylo chybou pokusit se vymyslet svůj vlastní „hashovací“ algoritmus tím, že vezme nějakou podskupinu „náhodného“ průvodce:</p><pre><code>int hashkeyfromguid(guid type4uuid) { //a "4" is put somewhere in the guid. //i can't remember exactly where, but it doesn't matter for //the illustrative purposes of this pseudocode int guidversion = ((type4uuid.d3 &amp; 0x0f00) &gt;&gt; 8); assert(guidversion == 4); return (int)getfirstfourbytesofguid(type4uuid); } </code></pre><p><strong> poznámka </strong>: znovu jsem v uvozovkách uvedl <em> "náhodné guid" </em>, protože se jedná o "náhodnou" variantu guid. přesnější popis by byl <code>type 4 uuid</code>. ale nikdo neví, co je typu 4 nebo typu 1, 3 a 5. takže je to jednodušší nazvat je „náhodnými“ guid.</p><h1>všechna anglická slova zrcadla</h1><ul> <li> <a href="https://web.archive.org/web/20070221060514/http://www.sitopreferito.it/html/all\_english\_words.html">https://web.archive.org/web/20070221060514/http://www.sitopreferito.it/html/all\_english\_words.html</a> </li> <li> <a href="https://drive.google.com/file/d/0b3blwu7vb2u-dew1vkuxc3u4sg8/view?usp=sharing">https://drive.google.com/file/d/0b3blwu7vb2u-dew1vkuxc3u4sg8/view?usp=sharing</a> </li> </ul> <p>účelem certifikátů rozšířené validace je zviditelnit uživatele, instituci, které byly vydány. technické aspekty samotných certifikátů jsou kombinovány s vizuálními vodítky v uživatelském rozhraní aplikace, která je ověřuje: zelený pruh a viditelný název vedle umístění v prohlížeči.</p><p>například certifikát ev na <a href="http://www.paypal.com/">http://www.paypal.com/</a> způsobí, že prohlížeč zobrazí zelený pruh a zobrazí „paypal, inc.“ vedle toho. účelem je nejen propojit certifikát s vlastníkem domény (jako standardní certifikáty ověřené v doméně), ale také ho propojit s fyzičtější institucí (zde, paypal, inc.). k tomu musí certifikační autorita ověřit, že pojmenovaná instituce je skutečně ta, která vlastní doménu.</p><p>v konečném důsledku jde spíše o vytvoření autentičtějšího propojení mezi názvem domény a názvem společnosti, než o vytvoření „bezpečnějších“ certifikátů. z hlediska sady šifry (což je to, co určuje šifrovací algoritmus a velikost klíče), se certifikáty ev neliší od certifikátů dv (modrý pruh).</p><p>trochu ustoupíte, musíte si uvědomit, že účinnost https závisí na tom, že uživatel zkontroluje, zda je používán správně. (server nemá způsob, jak zjistit, zda se klient stal obětí útoku mitm jinak, pokud nepoužívají také klientské certifikáty.) to znamená, že uživatelé musí:</p><ul> <li>zkontrolovat, zda se používá https, když očekávají, že to bude,</li> <li>zkontrolovat, že neexistují žádná varování,</li> <li>zkontrolujte, zda web, který používají, je opravdu ten, který hodlá navštívit, což vede k několika bodům: <ul> <li>kontrola, že to je doménové jméno, které očekávají,</li> <li>ověření, zda název domény patří společnosti, kterou očekávají.</li> </ul> </li> </ul><p>účelem certifikátů ev je vyřešit tento poslední bod. pokud již víte, že <code>amazon.com</code> patří společnosti amazon.com, inc. nebo tomu <code>google.com</code> patří společnosti google inc., opravdu je nepotřebujete.</p><p>nejsem osobně přesvědčen, že tento přístup funguje úplně, protože mohou být zneužity (viz příklad natwest/rbs níže) a zdá se, že některé ca šíří vágní (a potenciálně zavádějící) informace o tom, co ve skutečnosti jsou, ve snaze propagovat jim.</p><p>obecně platí, že pokud vaši uživatelé již vědí, že vaše doménové jméno je vaše, nepotřebujete jej.</p><p>zde jsou další podrobnosti z <a href="https://security.stackexchange.com/a/13614/2435">předchozí odpověď, kterou jsem dal na podobnou otázk</a> :</p><blockquote> <p>[...]</p> <p>certifikáty ověřené doménou vám zaručují, že certifikát byl vydán vlastníkovi této domény. nic víc, ale nic méně (předpokládám, že validační postup zde byl správný). v mnoha případech to stačí. vše záleží na tom, zda web, který propagujete, musí být propojen s institucí, která je již dobře známa off-line. certifikáty, které jsou validovány proti organizaci (ov a ev certs), jsou užitečné zejména v případě, že potřebujete doménu také svázat s fyzickou organizací.</p> <p>například je užitečné, aby instituce, která byla původně známá prostřednictvím své budovy (např. bank of america), mohla říci, že certifikát pro <code>bankofamerica.com</code> je skutečně místem, kde jste dali své fyzické peníze. v tomto případě má smysl použít certifikát ov nebo ev. to může být také užitečné, pokud existuje nejasnost ohledně toho, která instituce je za názvem domény (např. <code>apple.com</code> a <code>apple.co.uk</code>), což je ještě důležitější, je podobné doménové jméno vlastněné soupeřem/útočníkem, který používá podobnost názvu pro špatné účely.</p> <p>v porovnání, <a href="https://www.google.com/"><code>www.google.com</code></a> je to, co definuje google pro veřejnost; google nemusí dokazovat, že <code>google.com</code> patří skutečnému googlu. výsledkem je, že používá certifikát ověřený doménou (stejný pro <code>amazon.com</code>).</p> <p>to je opět užitečné, pokud uživatel ví, jak to zkontrolovat. prohlížeče zde opravdu nepomáhají. firefox pouze říká, „který je spuštěn (neznámý)“, pokud chcete o certifikátu získat další podrobnosti na <code>www.google.com</code>, aniž bychom skutečně řekli, co se tím myslí.</p> <p>certifikáty s rozšířenou validací jsou pokusem o zlepšení, a to zpřísněním postupu validace organizace a zviditelněním výsledku: zelený pruh a viditelnější organizace.</p> <p>bohužel se to někdy používá způsobem, který zvyšuje zmatek, myslím. zde je příklad, který si můžete zkontrolovat sami: jedna z velkých britských bank (natwest) používá <a href="https://www.nwolb.com/"><code>https://www.nwolb.com/</code></a> pro on-line bankovní služby. není jasné, že doménové jméno patří natwestu (který také vlastní logičtější <code>natwest.co.uk</code> mimochodem). horší je, že rozšířená validace (pokud zaškrtnete jméno vedle zeleného pruhu) se provede proti „royal bank of scotland group plc“.</p> <p>pro ty, kteří sledují finanční zprávy, to dává smysl, protože jak rbs, tak natwest patří do stejné skupiny, ale technicky jsou rbs a natwest konkurenty (a oba mají pobočky na hlavní ulici ve velké británii - i když se to změní). pokud váš uživatel nemá takovou zvláštní znalost o tom, které skupiny obchodují pod tímto jménem, ​​měla by výstražná zvonit zazvonit skutečnost, že certifikát je vydán na jméno potenciálního konkurenta. pokud jste jako uživatel viděli certifikát na <code>gooooogle.com</code> vydáno společnosti microsoft nebo yahoo, i když je tato lišta zelená, neměli byste to považovat za web společnosti google.</p> <p>jeden bod, který je třeba mít na paměti u certifikátů ev, je to, že <a href="https://security.stackexchange.com/a/14064/2435">jejich konfigurace je pevně zakódována do prohlížečů</a> . toto je nastavení kompilace, které nelze později nakonfigurovat (na rozdíl od běžných důvěryhodných úložišť certifikátů, do kterých můžete přidat například vlastní institucionální certifikační úřad). z cyničtějšího hlediska by to někteří mohli považovat za vhodný způsob, jak si hlavní hráči udržet silnou pozici na trhu.</p> </blockquote> <p>jsem chlap, který provedl všechny prototypy v dynamickém vyhledávání google, a <strong> jsem se zúčastnil&gt; 90% uživatelských studií </strong>, které jsme provedli na googlu. (a pokusím se být neobjektivní!)</p><p>na základě našeho interního testování jsme prošli několika iteracemi prototypů. zjistili jsme, že se současnou implementací opravdu dobře fungovalo to, že účastníci studie (1) viděli výsledky, když psali, a pokračovali v klikání na to, co chtěli, nebo (2) nikdy si nevšimli nic, co se změnilo, protože lovili a klovali na klávesnici, nebo příliš zaneprázdněný pohledem na návrhy. to potvrdilo náš cíl, který by <strong> nebyl příliš rušivý </strong>. samozřejmě, když se velká část stránky změní stejně jako v instantu, uživatelé si nemohou pomoci všimnout změny; důležitá věc je, že by to nemělo zasahovat do jejich úkolu.</p><p>ano, může to pro určité dotazy znamenat, že google pro vás přemýšlí, a věci pro vás automaticky doplňovat. i když se to stává mnohem méně často, než byste si mysleli, ale nakonec si budete pamatovat živěji. pokaždé, když jste ušetřili čas tím, že nemuseli zadávat celý dotaz, nebo protože google navrhl lepší dotaz, než co jste chtěli napsat, nebo protože jste viděli rychlý náhled výsledků a rozhodli se dotaz dále upřesnit - <strong> na všechny tyto instance se snadněji zapomíná </strong>, protože očekáváte, že google tak bude fungovat. zkuste sledovat všechny případy, kdy to pro vás dobře fungovalo, a porovnejte je s tím, kolikrát vám připadalo zvláštní.</p><p>jeden z našich účastníků řekl: <strong> „našel jsem způsob, jak se zeptat na otázku, kterou jsem ani nezvažoval.“ </strong> (doslovně, ze studijního přepisu.) dynamické vyhledávání google pomáhá mnoha uživatelům lépe formulovat svůj dotaz. mnozí z nás si neumí představit, že formulace dotazů je velkým problémem, ale je to tak. instant se to snaží trochu vylepšit.</p><p>minimalizujeme také množství blikání na obrazovce při změně výsledků. vzhledem k realitě síťové latence při zasílání nové sady výsledků ze serveru klientovi se v rozhraní děje spousta černé magie, která se při přechodu výsledků snaží minimalizovat vizuální šum. například, když jsou k dispozici nové výsledky, <strong> staré zmizí rychle přechodem na šedou; naši uživatelé to zaznamenali jako silný ukazatel, že „google přemýšlí“ </strong>; bez toho by si uživatelé neuvědomili, že výsledky jsou odlišné, pokud uprostřed nové stránky výsledků nebyla velká mapa nebo velký obrázek.</p><p>zde je <a href="http://news.cnet.com/8301-30684\_3-20019652-265.html">delší popis uživatelských studií</a> , které jsme provedli.</p>